From 2c81c39c9bca829cc6eac6c2f62daccc38a86487 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 9 Sep 2021 15:48:14 +0530 Subject: [PATCH 001/956] chore(packages): Import Tron Client Library --- package.json | 1 + yarn.lock | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 128 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index bc28c6d0e..391028e1b 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "ethers": "^5.4.1", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", + "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/migration-validator#master" } } diff --git a/yarn.lock b/yarn.lock index 02cd673f9..ee12d72f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,6 +37,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.0.0": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" + integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.14.6": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" @@ -177,6 +184,21 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/abi@5.4.1": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.1.tgz#6ac28fafc9ef6f5a7a37e30356a2eb31fa05d39b" + integrity sha512-9mhbjUk76BiSluiiW4BaYyI58KSbDMMQpCLdsAR+RsT2GyATiNYxVv+pGWRrekmsIdY3I+hOqsYQSTkc8L/mcg== + dependencies: + "@ethersproject/address" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/constants" "^5.4.0" + "@ethersproject/hash" "^5.4.0" + "@ethersproject/keccak256" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/strings" "^5.4.0" + "@ethersproject/abstract-provider@5.4.0", "@ethersproject/abstract-provider@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.0.tgz#415331031b0f678388971e1987305244edc04e1d" @@ -379,6 +401,11 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.0.tgz#f39adadf62ad610c420bcd156fd41270e91b3ca9" integrity sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ== +"@ethersproject/logger@5.4.1": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" + integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== + "@ethersproject/networks@5.4.1", "@ethersproject/networks@^5.4.0": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.1.tgz#2ce83b8e42aa85216e5d277a7952d97b6ce8d852" @@ -408,6 +435,13 @@ dependencies: "@ethersproject/logger" "^5.4.0" +"@ethersproject/properties@5.4.1": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.1.tgz#9f051f976ce790142c6261ccb7b826eaae1f2f36" + integrity sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w== + dependencies: + "@ethersproject/logger" "^5.4.0" + "@ethersproject/providers@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.1.tgz#654267b563b833046b9c9647647cfc8267cb93b4" @@ -458,6 +492,31 @@ bech32 "1.1.4" ws "7.4.6" +"@ethersproject/providers@5.4.5": + version "5.4.5" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" + integrity sha512-1GkrvkiAw3Fj28cwi1Sqm8ED1RtERtpdXmRfwIBGmqBSN5MoeRUHuwHPppMtbPayPgpFcvD7/Gdc9doO5fGYgw== + dependencies: + "@ethersproject/abstract-provider" "^5.4.0" + "@ethersproject/abstract-signer" "^5.4.0" + "@ethersproject/address" "^5.4.0" + "@ethersproject/basex" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/constants" "^5.4.0" + "@ethersproject/hash" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/networks" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/random" "^5.4.0" + "@ethersproject/rlp" "^5.4.0" + "@ethersproject/sha2" "^5.4.0" + "@ethersproject/strings" "^5.4.0" + "@ethersproject/transactions" "^5.4.0" + "@ethersproject/web" "^5.4.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/random@5.4.0", "@ethersproject/random@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" @@ -2548,11 +2607,52 @@ ethers@^5.4.2: "@ethersproject/web" "5.4.0" "@ethersproject/wordlists" "5.4.0" +ethers@^5.4.4: + version "5.4.6" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.6.tgz#fe0a023956b5502c947f58e82fbcf9a73e5e75b6" + integrity sha512-F7LXARyB/Px3AQC6/QKedWZ8eqCkgOLORqL4B/F0Mag/K+qJSFGqsR36EaOZ6fKg3ZonI+pdbhb4A8Knt/43jQ== + dependencies: + "@ethersproject/abi" "5.4.1" + "@ethersproject/abstract-provider" "5.4.1" + "@ethersproject/abstract-signer" "5.4.1" + "@ethersproject/address" "5.4.0" + "@ethersproject/base64" "5.4.0" + "@ethersproject/basex" "5.4.0" + "@ethersproject/bignumber" "5.4.1" + "@ethersproject/bytes" "5.4.0" + "@ethersproject/constants" "5.4.0" + "@ethersproject/contracts" "5.4.1" + "@ethersproject/hash" "5.4.0" + "@ethersproject/hdnode" "5.4.0" + "@ethersproject/json-wallets" "5.4.0" + "@ethersproject/keccak256" "5.4.0" + "@ethersproject/logger" "5.4.1" + "@ethersproject/networks" "5.4.2" + "@ethersproject/pbkdf2" "5.4.0" + "@ethersproject/properties" "5.4.1" + "@ethersproject/providers" "5.4.5" + "@ethersproject/random" "5.4.0" + "@ethersproject/rlp" "5.4.0" + "@ethersproject/sha2" "5.4.0" + "@ethersproject/signing-key" "5.4.0" + "@ethersproject/solidity" "5.4.0" + "@ethersproject/strings" "5.4.0" + "@ethersproject/transactions" "5.4.0" + "@ethersproject/units" "5.4.0" + "@ethersproject/wallet" "5.4.0" + "@ethersproject/web" "5.4.0" + "@ethersproject/wordlists" "5.4.0" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + eventemitter3@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -3013,6 +3113,11 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +injectpromise@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/injectpromise/-/injectpromise-1.0.0.tgz#c621f7df2bbfc1164d714f1fb229adec2079da39" + integrity sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA== + interpret@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" @@ -4100,7 +4205,7 @@ semver@7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@^5.4.1, semver@^5.5.0: +semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -4468,6 +4573,22 @@ to-regex-range@^5.0.1: resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= +tronweb@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.0.0.tgz#a3677d4d2ee1a06231aa0fd75c15ab0d6d55fc91" + integrity sha512-yKRkEe9A5RJCRiDcKXfXhfF6CDJl7QWhBLleaW+GlTwVXKGNJdpGomuYhCXvQyFQVlY6cKzOfH7pXPH69rcfNQ== + dependencies: + "@babel/runtime" "^7.0.0" + axios "^0.21.1" + bignumber.js "^9.0.1" + elliptic "^6.5.4" + ethers "^5.4.4" + eventemitter3 "^3.1.0" + injectpromise "^1.0.0" + lodash "^4.17.21" + semver "^5.6.0" + validator "^13.6.0" + tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -4663,6 +4784,11 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== +validator@^13.6.0: + version "13.6.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" + integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== + "validator@git+https://github.com/xp-network/migration-validator#master": version "1.0.0" resolved "git+https://github.com/xp-network/migration-validator#af59e3f92a1c8c26240e96cda6e04dbd1c653572" From aebd8ba6bc366457a437113301e373f324da8f32 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 9 Sep 2021 16:08:52 +0530 Subject: [PATCH 002/956] chore(lint): ESLint --- src/fakeERC1155.json | 155 +++----- src/fakeERC721.json | 691 ++++++++++++++++------------------ src/helpers/chain.ts | 28 +- src/helpers/elrond.ts | 812 ++++++++++++++++++++-------------------- src/helpers/polkadot.ts | 162 ++++---- src/helpers/web3.ts | 366 +++++++++--------- src/socket.ts | 170 ++++----- 7 files changed, 1157 insertions(+), 1227 deletions(-) diff --git a/src/fakeERC1155.json b/src/fakeERC1155.json index 50e1189f7..3cfde9c12 100644 --- a/src/fakeERC1155.json +++ b/src/fakeERC1155.json @@ -1,14 +1,12 @@ { - "abi": [ - { + "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, - "inputs": [ - { + "inputs": [{ "indexed": true, "internalType": "address", "name": "account", @@ -32,8 +30,7 @@ }, { "anonymous": false, - "inputs": [ - { + "inputs": [{ "indexed": true, "internalType": "address", "name": "previousOwner", @@ -51,8 +48,7 @@ }, { "anonymous": false, - "inputs": [ - { + "inputs": [{ "indexed": true, "internalType": "address", "name": "operator", @@ -88,8 +84,7 @@ }, { "anonymous": false, - "inputs": [ - { + "inputs": [{ "indexed": true, "internalType": "address", "name": "operator", @@ -125,8 +120,7 @@ }, { "anonymous": false, - "inputs": [ - { + "inputs": [{ "indexed": false, "internalType": "string", "name": "value", @@ -143,8 +137,7 @@ "type": "event" }, { - "inputs": [ - { + "inputs": [{ "internalType": "address", "name": "account", "type": "address" @@ -156,19 +149,16 @@ } ], "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], + "outputs": [{ + "internalType": "uint256", + "name": "", + "type": "uint256" + }], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { + "inputs": [{ "internalType": "address[]", "name": "accounts", "type": "address[]" @@ -180,19 +170,16 @@ } ], "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], + "outputs": [{ + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { + "inputs": [{ "internalType": "address", "name": "from", "type": "address" @@ -214,8 +201,7 @@ "type": "function" }, { - "inputs": [ - { + "inputs": [{ "internalType": "address", "name": "account", "type": "address" @@ -227,19 +213,16 @@ } ], "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], + "outputs": [{ + "internalType": "bool", + "name": "", + "type": "bool" + }], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { + "inputs": [{ "internalType": "address", "name": "to", "type": "address" @@ -263,13 +246,11 @@ { "inputs": [], "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], + "outputs": [{ + "internalType": "address", + "name": "", + "type": "address" + }], "stateMutability": "view", "type": "function" }, @@ -281,8 +262,7 @@ "type": "function" }, { - "inputs": [ - { + "inputs": [{ "internalType": "address", "name": "from", "type": "address" @@ -314,8 +294,7 @@ "type": "function" }, { - "inputs": [ - { + "inputs": [{ "internalType": "address", "name": "from", "type": "address" @@ -347,8 +326,7 @@ "type": "function" }, { - "inputs": [ - { + "inputs": [{ "internalType": "address", "name": "operator", "type": "address" @@ -365,8 +343,7 @@ "type": "function" }, { - "inputs": [ - { + "inputs": [{ "internalType": "uint256", "name": "id", "type": "uint256" @@ -383,55 +360,45 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], + "inputs": [{ + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + }], "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], + "outputs": [{ + "internalType": "bool", + "name": "", + "type": "bool" + }], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], + "inputs": [{ + "internalType": "address", + "name": "newOwner", + "type": "address" + }], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], + "inputs": [{ + "internalType": "uint256", + "name": "id", + "type": "uint256" + }], "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], + "outputs": [{ + "internalType": "string", + "name": "", + "type": "string" + }], "stateMutability": "view", "type": "function" } ] -} +} \ No newline at end of file diff --git a/src/fakeERC721.json b/src/fakeERC721.json index 8a0718e80..1e156d8a0 100644 --- a/src/fakeERC721.json +++ b/src/fakeERC721.json @@ -1,365 +1,328 @@ { - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "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" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "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" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "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" - }, - { - "inputs": [], - "name": "CANNOT_TRANSFER_TO_ZERO_ADDRESS", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "NOT_CURRENT_OWNER", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_approved", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "address", - "name": "_operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "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" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceID", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ] -} + "abi": [{ + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "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" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "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" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "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" + }, + { + "inputs": [], + "name": "CANNOT_TRANSFER_TO_ZERO_ADDRESS", + "outputs": [{ + "internalType": "string", + "name": "", + "type": "string" + }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NOT_CURRENT_OWNER", + "outputs": [{ + "internalType": "string", + "name": "", + "type": "string" + }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ + "internalType": "address", + "name": "_approved", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ + "internalType": "address", + "name": "_owner", + "type": "address" + }], + "name": "balanceOf", + "outputs": [{ + "internalType": "uint256", + "name": "", + "type": "uint256" + }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + }], + "name": "getApproved", + "outputs": [{ + "internalType": "address", + "name": "", + "type": "address" + }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [{ + "internalType": "bool", + "name": "", + "type": "bool" + }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [{ + "internalType": "address", + "name": "", + "type": "address" + }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + }], + "name": "ownerOf", + "outputs": [{ + "internalType": "address", + "name": "_owner", + "type": "address" + }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "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" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ + "internalType": "address", + "name": "_operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ + "internalType": "bytes4", + "name": "_interfaceID", + "type": "bytes4" + }], + "name": "supportsInterface", + "outputs": [{ + "internalType": "bool", + "name": "", + "type": "bool" + }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ + "internalType": "address", + "name": "_newOwner", + "type": "address" + }], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 99608989f..9c1cb6634 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -84,10 +84,10 @@ export interface BalanceCheck { * @param chain_nonce nonce of the foreign chain */ export interface WrappedBalanceCheck { - balanceWrapped( - address: Addr, - chain_nonce: number - ): Promise; + balanceWrapped( + address: Addr, + chain_nonce: number + ): Promise; } /** @@ -97,10 +97,10 @@ export interface WrappedBalanceCheck { * @returns Mapping of chain_nonce to balance */ export interface BatchWrappedBalanceCheck { - balanceWrappedBatch( - address: Addr, - chain_nonces: number[] - ): Promise>; + balanceWrappedBatch( + address: Addr, + chain_nonces: number[] + ): Promise>; } /** @@ -128,23 +128,23 @@ export interface ListNft { * Get the original data of a locked NFT (uri, name, etc) */ export interface GetLockedNft { - getLockedNft(ident: Ident): Promise; + getLockedNft(ident: Ident): Promise; } export type WrappedNft = { - chain_nonce: number, - data: Uint8Array + chain_nonce: number, + data: Uint8Array } export interface DecodeWrappedNft { - decodeWrappedNft(raw_data: Data): WrappedNft; + decodeWrappedNft(raw_data: Data): WrappedNft; } export interface DecodeRawNft { - decodeUrlFromRaw(data: Uint8Array): Promise; + decodeUrlFromRaw(data: Uint8Array): Promise; } export function ConcurrentSendError(): Error { - return new Error("concurrent_send") + return new Error("concurrent_send") } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 6bdb248b6..6f5028fbf 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -150,11 +150,11 @@ export interface SetESDTRoles { /** * Unsigned Transaction for [[setESDTRole]] */ - unsignedSetESDTRoles( - token: string, - target: Address, - roles: [ESDTRole] - ): Transaction; + unsignedSetESDTRoles( + token: string, + target: Address, + roles: [ESDTRole] + ): Transaction; /** * @@ -164,11 +164,11 @@ export interface SetESDTRoles { * @param token ESDT Identifier * @param roles Roles to set */ - setESDTRole( - sender: ISigner, - token: string, - roles: [ESDTRole] - ): Promise; + setESDTRole( + sender: ISigner, + token: string, + roles: [ESDTRole] + ): Promise; } /** @@ -187,9 +187,9 @@ export type ElrondHelper = BalanceCheck & UnfreezeForeignNft & IssueESDTNFT & MintNft & - ListNft & + ListNft & GetLockedNft & - DecodeWrappedNft & + DecodeWrappedNft & DecodeRawNft & { /** * Unsigned Transaction for [[TransferForeign]] @@ -216,7 +216,7 @@ export type ElrondHelper = BalanceCheck & * * @param tx_hash Hash of the transaction */ - rawTxnResult(tx_hash: TransactionHash): Promise; // TODO: Typed transaction result + rawTxnResult(tx_hash: TransactionHash): Promise; // TODO: Typed transaction result }; /** @@ -239,438 +239,438 @@ export const elrondHelperFactory: ( esdt: string, esdt_nft: string ) => { - const provider = new ProxyProvider(node_uri); - await NetworkConfig.getDefault().sync(provider); - const mintContract = new Address(minter_address); - const providerRest = axios.create({ - baseURL: node_uri - }); - const esdtHex = Buffer.from(esdt, "utf-8"); - const esdtNftHex = Buffer.from(esdt_nft, "utf-8"); - const decoder = new TextDecoder(); - - const syncAccount = async (signer: ISigner) => { - const account = new Account(signer.getAddress()); - await account.sync(provider); - - return account; - }; + const provider = new ProxyProvider(node_uri); + await NetworkConfig.getDefault().sync(provider); + const mintContract = new Address(minter_address); + const providerRest = axios.create({ + baseURL: node_uri + }); + const esdtHex = Buffer.from(esdt, "utf-8"); + const esdtNftHex = Buffer.from(esdt_nft, "utf-8"); + const decoder = new TextDecoder(); + + const syncAccount = async (signer: ISigner) => { + const account = new Account(signer.getAddress()); + await account.sync(provider); + + return account; + }; + + const signAndSend = async (signer: ISigner, tx: Transaction) => { + const acc = await syncAccount(signer); + + tx.setNonce(acc.nonce); + await signer.sign(tx); + + try { + await tx.send(provider); + } catch (e) { + if (e.message.includes("lowerNonceInTx")) { + throw ConcurrentSendError(); + } else { + throw e; + } + } + return tx; + } - const signAndSend = async (signer: ISigner, tx: Transaction) => { - const acc = await syncAccount(signer); - - tx.setNonce(acc.nonce); - await signer.sign(tx); - - try { - await tx.send(provider); - } catch (e) { - if (e.message.includes("lowerNonceInTx")) { - throw ConcurrentSendError(); - } else { - throw e; - } - } - return tx; - } + const transactionResult = async (tx_hash: TransactionHash) => { + const uri = `/transaction/${tx_hash.toString()}?withResults=true`; + let tries = 0; + + while (tries < 10) { + tries += 1; + let err; + // TODO: type safety + const res = await providerRest.get(uri).catch(e => err = e); + if (err) { + await new Promise(r => setTimeout(r, 3000)) + continue; + } + const data = res.data; + if (data["code"] != "successful") { + throw Error("failed to execute txn") + } - const transactionResult = async (tx_hash: TransactionHash) => { - const uri = `/transaction/${tx_hash.toString()}?withResults=true`; - let tries = 0; - - while (tries < 10) { - tries += 1; - let err; - // TODO: type safety - const res = await providerRest.get(uri).catch(e => err = e); - if (err) { - await new Promise(r => setTimeout(r, 3000)) - continue; - } - const data = res.data; - if (data["code"] != "successful") { - throw Error("failed to execute txn") - } + const tx_info = data["data"]["transaction"] + if (tx_info["status"] == "pending") { + await new Promise(r => setTimeout(r, 5000)); + continue; + } + if (tx_info["status"] != "success") { + throw Error("failed to execute txn") + } - const tx_info = data["data"]["transaction"] - if (tx_info["status"] == "pending") { - await new Promise(r => setTimeout(r, 5000)); - continue; - } - if (tx_info["status"] != "success") { - throw Error("failed to execute txn") + return tx_info; } - return tx_info; + throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); } - throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); - } - - const unsignedTransferTxn = ( - chain_nonce: number, - to: string, - value: EasyBalance - ) => { - - return new Transaction({ - receiver: mintContract, - gasLimit: new GasLimit(50000000), - value: new Balance(value.toString()), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("freezeSend")) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; + const unsignedTransferTxn = ( + chain_nonce: number, + to: string, + value: EasyBalance + ) => { + + return new Transaction({ + receiver: mintContract, + gasLimit: new GasLimit(50000000), + value: new Balance(value.toString()), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("freezeSend")) + .addArg(new U64Value(new BigNumber(chain_nonce))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + }; + + const unsignedMintNftTxn = ( + owner: Address, + { + identifier, + quantity, + name, + royalties, + hash, + attrs, + uris + }: NftIssueArgs + ) => { + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTNFTCreate")) + .addArg(new TokenIdentifierValue(Buffer.from(identifier, 'utf-8'))) + .addArg(new BigUIntValue(new BigNumber(quantity ?? 1))) + .addArg(new BytesValue(Buffer.from(name, 'utf-8'))) + .addArg(new U64Value(new BigNumber(royalties ?? 0))) + .addArg(new BytesValue(hash ? Buffer.from(hash, 'utf-8') : Buffer.alloc(0))) + .addArg(new BytesValue(attrs ? Buffer.from(attrs, 'utf-8') : Buffer.alloc(0))); + + for (const uri of uris) { + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(uri, 'utf-8'))); + } - const unsignedMintNftTxn = ( - owner: Address, - { - identifier, - quantity, - name, - royalties, - hash, - attrs, - uris - }: NftIssueArgs - ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTCreate")) - .addArg(new TokenIdentifierValue(Buffer.from(identifier, 'utf-8'))) - .addArg(new BigUIntValue(new BigNumber(quantity ?? 1))) - .addArg(new BytesValue(Buffer.from(name, 'utf-8'))) - .addArg(new U64Value(new BigNumber(royalties ?? 0))) - .addArg(new BytesValue(hash ? Buffer.from(hash, 'utf-8') : Buffer.alloc(0))) - .addArg(new BytesValue(attrs ? Buffer.from(attrs, 'utf-8') : Buffer.alloc(0))); - - for (const uri of uris) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(uri, 'utf-8'))); + return new Transaction({ + receiver: owner, + gasLimit: new GasLimit(70000000), // TODO: Auto derive + data: baseArgs.build() + }); } - return new Transaction({ - receiver: owner, - gasLimit: new GasLimit(70000000), // TODO: Auto derive - data: baseArgs.build() - }); - } - - const unsignedTransferNftTxn = ( - chain_nonce: number, - address: Address, - to: string, - { token, nonce }: NftInfo - ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(70000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTTransfer")) - .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) - .addArg(new U64Value(new BigNumber(nonce))) - .addArg(new BigUIntValue(new BigNumber(1))) - .addArg(new AddressValue(mintContract)) - .addArg(new BytesValue(Buffer.from("freezeSendNft", "ascii"))) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; - - const unsignedUnfreezeNftTxn = ( - address: Address, - to: string, - id: number - ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(70000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTTransfer")) - .addArg(new TokenIdentifierValue(esdtNftHex)) - .addArg(new U64Value(new BigNumber(id))) - .addArg(new BigUIntValue(new BigNumber(1))) - .addArg(new AddressValue(mintContract)) - .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - } + const unsignedTransferNftTxn = ( + chain_nonce: number, + address: Address, + to: string, + { token, nonce }: NftInfo + ) => { + return new Transaction({ + receiver: address, + gasLimit: new GasLimit(70000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTNFTTransfer")) + .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) + .addArg(new U64Value(new BigNumber(nonce))) + .addArg(new BigUIntValue(new BigNumber(1))) + .addArg(new AddressValue(mintContract)) + .addArg(new BytesValue(Buffer.from("freezeSendNft", "ascii"))) + .addArg(new U64Value(new BigNumber(chain_nonce))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + }; + + const unsignedUnfreezeNftTxn = ( + address: Address, + to: string, + id: number + ) => { + return new Transaction({ + receiver: address, + gasLimit: new GasLimit(70000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTNFTTransfer")) + .addArg(new TokenIdentifierValue(esdtNftHex)) + .addArg(new U64Value(new BigNumber(id))) + .addArg(new BigUIntValue(new BigNumber(1))) + .addArg(new AddressValue(mintContract)) + .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + } - const unsignedUnfreezeTxn = ( - chain_nonce: number, - address: Address, - to: string, - value: EasyBalance - ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(50000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTTransfer")) - .addArg(new TokenIdentifierValue(esdtHex)) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BigUIntValue(new BigNumber(value))) - .addArg(new AddressValue(mintContract)) - .addArg(new BytesValue(Buffer.from("withdraw", "ascii"))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - } + const unsignedUnfreezeTxn = ( + chain_nonce: number, + address: Address, + to: string, + value: EasyBalance + ) => { + return new Transaction({ + receiver: address, + gasLimit: new GasLimit(50000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTNFTTransfer")) + .addArg(new TokenIdentifierValue(esdtHex)) + .addArg(new U64Value(new BigNumber(chain_nonce))) + .addArg(new BigUIntValue(new BigNumber(value))) + .addArg(new AddressValue(mintContract)) + .addArg(new BytesValue(Buffer.from("withdraw", "ascii"))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + } - const listEsdt = async (owner: string) => { - const raw = await providerRest(`/address/${owner}/esdt`); - const dat = raw.data.data.esdts as { [index: string]: MaybeEsdtNftInfo }; + const listEsdt = async (owner: string) => { + const raw = await providerRest(`/address/${owner}/esdt`); + const dat = raw.data.data.esdts as { [index: string]: MaybeEsdtNftInfo }; - return dat; - } + return dat; + } - async function listNft(owner: string): Promise> { - const ents: [string, MaybeEsdtNftInfo][] = Object.entries(await listEsdt(owner)); + async function listNft(owner: string): Promise> { + const ents: [string, MaybeEsdtNftInfo][] = Object.entries(await listEsdt(owner)); - const fmapCb: (tok: [string, MaybeEsdtNftInfo]) => [] | [[string, EsdtNftInfo]] = ([tok, info]) => { - if (!isEsdtNftInfo(info)) { - return []; - } + const fmapCb: (tok: [string, MaybeEsdtNftInfo]) => [] | [[string, EsdtNftInfo]] = ([tok, info]) => { + if (!isEsdtNftInfo(info)) { + return []; + } - let sp = tok.split("-"); - let nonce = sp.pop() ?? ""; - return [[`${sp.join("-")}-${parseInt(nonce, 16).toString()}`, info]] - } + let sp = tok.split("-"); + let nonce = sp.pop() ?? ""; + return [[`${sp.join("-")}-${parseInt(nonce, 16).toString()}`, info]] + } - return new Map(ents.flatMap(fmapCb)); - } + return new Map(ents.flatMap(fmapCb)); + } - const unsignedIssueESDTNft = ( + const unsignedIssueESDTNft = ( name: string, ticker: string, canFreeze: boolean | undefined, canWipe: boolean | undefined, canTransferNFTCreateRole: boolean | undefined - ) => { - let baseArgs = TransactionPayload.contractCall() + ) => { + let baseArgs = TransactionPayload.contractCall() .setFunction(new ContractFunction("issueNonFungible")) .addArg(new TokenIdentifierValue(Buffer.from(name, 'utf-8'))) .addArg(new TokenIdentifierValue(Buffer.from(ticker, 'utf-8'))); - if (canFreeze !== undefined) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from("canFreeze", 'ascii'))) - .addArg(new BytesValue(Buffer.from(canFreeze ? "true" : "false", 'ascii'))); - } - if (canWipe !== undefined) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from("canWipe", 'ascii'))) - .addArg(new BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii"))); - } - if (canTransferNFTCreateRole !== undefined) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from('canTransferNFTCreateRole', 'ascii'))) - .addArg(new BytesValue(Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii"))); - } - - return new Transaction({ - receiver: ESDT_ISSUE_ADDR, - value: new Balance(ESDT_ISSUE_COST), - gasLimit: new GasLimit(60000000), - data: baseArgs.build() - }); - }; + if (canFreeze !== undefined) { + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from("canFreeze", 'ascii'))) + .addArg(new BytesValue(Buffer.from(canFreeze ? "true" : "false", 'ascii'))); + } + if (canWipe !== undefined) { + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from("canWipe", 'ascii'))) + .addArg(new BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii"))); + } + if (canTransferNFTCreateRole !== undefined) { + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from('canTransferNFTCreateRole', 'ascii'))) + .addArg(new BytesValue(Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii"))); + } + return new Transaction({ + receiver: ESDT_ISSUE_ADDR, + value: new Balance(ESDT_ISSUE_COST), + gasLimit: new GasLimit(60000000), + data: baseArgs.build() + }); + }; - const unsignedSetESDTRoles = ( - token: string, - target: Address, - roles: [ESDTRole] - ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("setSpecialRole")) - .addArg(new TokenIdentifierValue(Buffer.from(token))) - .addArg(new AddressValue(target)); - - for (const role of roles) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(role, 'utf-8'))); - } - - return new Transaction({ - receiver: ESDT_ISSUE_ADDR, - gasLimit: new GasLimit(70000000), // TODO: auto derive - data: baseArgs.build() - }); - } - async function getLockedNft({token, nonce}: NftInfo): Promise { - const nfts = await listNft(minter_address); - return nfts.get(`${token}-${nonce.toString()}`); - } + const unsignedSetESDTRoles = ( + token: string, + target: Address, + roles: [ESDTRole] + ) => { + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("setSpecialRole")) + .addArg(new TokenIdentifierValue(Buffer.from(token))) + .addArg(new AddressValue(target)); + + for (const role of roles) { + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(role, 'utf-8'))); + } - const rawNftDecoder = (nftDat: Uint8Array) => { - /// TokenLen(4 by), TokenIdent(TokenLen by), Nonce(8 by) - /// BinaryCodec is broken for browsers. Decode manually :| - if (nftDat.length < 12) { - throw Error("not a wrapped nft") - } + return new Transaction({ + receiver: ESDT_ISSUE_ADDR, + gasLimit: new GasLimit(70000000), // TODO: auto derive + data: baseArgs.build() + }); + } - const tokenLen = (new Uint32Array(nftDat.slice(0, 4).reverse()))[0]; - if (nftDat.length !== 12 + tokenLen) { - throw Error("not a wrapped nft"); - } - const token = decoder.decode(nftDat.slice(4, 4+tokenLen)); - // TODO: Consider LO - // tfw js can't convert be bytes to u64 - const nonce = (new Uint32Array(nftDat.slice(4+tokenLen, 12 + tokenLen).reverse()))[0]; + async function getLockedNft({ token, nonce }: NftInfo): Promise { + const nfts = await listNft(minter_address); + return nfts.get(`${token}-${nonce.toString()}`); + } - return { token, nonce }; - } + const rawNftDecoder = (nftDat: Uint8Array) => { + /// TokenLen(4 by), TokenIdent(TokenLen by), Nonce(8 by) + /// BinaryCodec is broken for browsers. Decode manually :| + if (nftDat.length < 12) { + throw Error("not a wrapped nft") + } - async function extractId(tx: Transaction): Promise<[Transaction, EventIdent]> { - let err; - await tx.awaitExecuted(provider).catch(e => err = e); - if (err) { - await new Promise(r => setTimeout(r, 3000)); - return extractId(tx); - } + const tokenLen = (new Uint32Array(nftDat.slice(0, 4).reverse()))[0]; + if (nftDat.length !== 12 + tokenLen) { + throw Error("not a wrapped nft"); + } + const token = decoder.decode(nftDat.slice(4, 4 + tokenLen)); + // TODO: Consider LO + // tfw js can't convert be bytes to u64 + const nonce = (new Uint32Array(nftDat.slice(4 + tokenLen, 12 + tokenLen).reverse()))[0]; - const txr = await transactionResult(tx.getHash()); + return { token, nonce }; + } - const id = filterEventId(txr["smartContractResults"]); + async function extractId(tx: Transaction): Promise<[Transaction, EventIdent]> { + let err; + await tx.awaitExecuted(provider).catch(e => err = e); + if (err) { + await new Promise(r => setTimeout(r, 3000)); + return extractId(tx); + } - return [tx, id]; - } - - return { - rawTxnResult: transactionResult, - unsignedTransferTxn, - unsignedUnfreezeTxn, - unsignedTransferNftTxn, - unsignedUnfreezeNftTxn, - unsignedMintNftTxn, - unsignedSetESDTRoles, - async balance( - address: string | Address - ): Promise { - const wallet = new Account(new Address(address)); - - await wallet.sync(provider); - - return wallet.balance.valueOf(); - }, - async balanceWrappedBatch( - address: string | Address, - chain_nonces: number[] - ): Promise> { - const esdts = Object.values(await listEsdt(address.toString())); - - const res = new Map(chain_nonces.map(v => [v, new BigNumber(0)])); - - for (const esdt of esdts) { - esdt.nonce && esdt.tokenIdentifier.startsWith(esdt.tokenIdentifier) && res.set(esdt.nonce, new BigNumber(esdt.balance)) - } - - return res; - }, - async transferNativeToForeign( - sender: ISigner, - chain_nonce: number, - to: string, - value: EasyBalance - ): Promise<[Transaction, EventIdent]> { - const txu = unsignedTransferTxn(chain_nonce, to, value) - const tx = await signAndSend(sender, txu); - - return await extractId(tx); - }, - async unfreezeWrapped( - sender: ISigner, - chain_nonce: number, - to: string, - value: EasyBalance - ): Promise<[Transaction, EventIdent]> { - const txu = unsignedUnfreezeTxn(chain_nonce, sender.getAddress(), to, value); - const tx = await signAndSend(sender, txu); - - return await extractId(tx); - }, - async transferNftToForeign( - sender: ISigner, - chain_nonce: number, - to: string, - info: NftInfo - ): Promise<[Transaction, EventIdent]> { - const txu = unsignedTransferNftTxn(chain_nonce, sender.getAddress(), to, info); - const tx = await signAndSend(sender, txu); - - return await extractId(tx); - }, - async unfreezeWrappedNft( - sender: ISigner, - to: string, - nonce: number - ): Promise<[Transaction, EventIdent]> { - const txu = unsignedUnfreezeNftTxn(sender.getAddress(), to, nonce); - const tx = await signAndSend(sender, txu); - - return await extractId(tx); - }, - unsignedIssueESDTNft, - async issueESDTNft( - sender: ISigner, - name: string, - ticker: string, - canFreeze: boolean = false, - canWipe: boolean = false, - canTransferNFTCreateRole: boolean = false - ): Promise { - const txu = unsignedIssueESDTNft(name, ticker, canFreeze, canWipe, canTransferNFTCreateRole); - - await signAndSend(sender, txu); - }, - async mintNft( - owner: ISigner, - args: NftIssueArgs - ): Promise { - const txu = unsignedMintNftTxn(owner.getAddress(), args); - - await signAndSend(owner, txu); - }, - listNft, - getLockedNft, - async setESDTRole( - manager: ISigner, - token: string, - target: Address, - roles: [ESDTRole] - ): Promise { - const txu = unsignedSetESDTRoles(token, target, roles); - - await signAndSend(manager, txu); - }, - decodeWrappedNft( - raw_data: EsdtNftInfo - ): WrappedNft { - if (!raw_data.attributes) { - throw Error("can't decode chain nonce"); - } - return { - // TODO: CONSIDER ALL BE BYTES - chain_nonce: Base64.toUint8Array(raw_data.attributes!!)[0], - data: Base64.toUint8Array(raw_data.uris[0]) - } - }, - async decodeUrlFromRaw( - data: Uint8Array - ): Promise { - const nft_info = rawNftDecoder(data); - const locked = await getLockedNft(nft_info); - - if (locked === undefined) { - throw Error("Not a wrapped nft"); - } - - return Base64.atob(locked!.uris[0]); - } + const txr = await transactionResult(tx.getHash()); + + const id = filterEventId(txr["smartContractResults"]); + + return [tx, id]; + } + + return { + rawTxnResult: transactionResult, + unsignedTransferTxn, + unsignedUnfreezeTxn, + unsignedTransferNftTxn, + unsignedUnfreezeNftTxn, + unsignedMintNftTxn, + unsignedSetESDTRoles, + async balance( + address: string | Address + ): Promise { + const wallet = new Account(new Address(address)); + + await wallet.sync(provider); + + return wallet.balance.valueOf(); + }, + async balanceWrappedBatch( + address: string | Address, + chain_nonces: number[] + ): Promise> { + const esdts = Object.values(await listEsdt(address.toString())); + + const res = new Map(chain_nonces.map(v => [v, new BigNumber(0)])); + + for (const esdt of esdts) { + esdt.nonce && esdt.tokenIdentifier.startsWith(esdt.tokenIdentifier) && res.set(esdt.nonce, new BigNumber(esdt.balance)) + } + + return res; + }, + async transferNativeToForeign( + sender: ISigner, + chain_nonce: number, + to: string, + value: EasyBalance + ): Promise<[Transaction, EventIdent]> { + const txu = unsignedTransferTxn(chain_nonce, to, value) + const tx = await signAndSend(sender, txu); + + return await extractId(tx); + }, + async unfreezeWrapped( + sender: ISigner, + chain_nonce: number, + to: string, + value: EasyBalance + ): Promise<[Transaction, EventIdent]> { + const txu = unsignedUnfreezeTxn(chain_nonce, sender.getAddress(), to, value); + const tx = await signAndSend(sender, txu); + + return await extractId(tx); + }, + async transferNftToForeign( + sender: ISigner, + chain_nonce: number, + to: string, + info: NftInfo + ): Promise<[Transaction, EventIdent]> { + const txu = unsignedTransferNftTxn(chain_nonce, sender.getAddress(), to, info); + const tx = await signAndSend(sender, txu); + + return await extractId(tx); + }, + async unfreezeWrappedNft( + sender: ISigner, + to: string, + nonce: number + ): Promise<[Transaction, EventIdent]> { + const txu = unsignedUnfreezeNftTxn(sender.getAddress(), to, nonce); + const tx = await signAndSend(sender, txu); + + return await extractId(tx); + }, + unsignedIssueESDTNft, + async issueESDTNft( + sender: ISigner, + name: string, + ticker: string, + canFreeze: boolean = false, + canWipe: boolean = false, + canTransferNFTCreateRole: boolean = false + ): Promise { + const txu = unsignedIssueESDTNft(name, ticker, canFreeze, canWipe, canTransferNFTCreateRole); + + await signAndSend(sender, txu); + }, + async mintNft( + owner: ISigner, + args: NftIssueArgs + ): Promise { + const txu = unsignedMintNftTxn(owner.getAddress(), args); + + await signAndSend(owner, txu); + }, + listNft, + getLockedNft, + async setESDTRole( + manager: ISigner, + token: string, + target: Address, + roles: [ESDTRole] + ): Promise { + const txu = unsignedSetESDTRoles(token, target, roles); + + await signAndSend(manager, txu); + }, + decodeWrappedNft( + raw_data: EsdtNftInfo + ): WrappedNft { + if (!raw_data.attributes) { + throw Error("can't decode chain nonce"); + } + return { + // TODO: CONSIDER ALL BE BYTES + chain_nonce: Base64.toUint8Array(raw_data.attributes!!)[0], + data: Base64.toUint8Array(raw_data.uris[0]) + } + }, + async decodeUrlFromRaw( + data: Uint8Array + ): Promise { + const nft_info = rawNftDecoder(data); + const locked = await getLockedNft(nft_info); + + if (locked === undefined) { + throw Error("Not a wrapped nft"); + } + + return Base64.atob(locked!.uris[0]); + } + }; }; -}; function filterEventId(results: Array): number { for (const res of results) { diff --git a/src/helpers/polkadot.ts b/src/helpers/polkadot.ts index 81b815893..833dbf8ac 100644 --- a/src/helpers/polkadot.ts +++ b/src/helpers/polkadot.ts @@ -24,7 +24,7 @@ import { } from "./chain"; import { AddressOrPair } from "@polkadot/api/types"; import { SignerOptions, SubmittableExtrinsic } from "@polkadot/api/submittable/types"; -import {BTreeMap, Bytes, Option, Tuple, U8aFixed} from "@polkadot/types"; +import { BTreeMap, Bytes, Option, Tuple, U8aFixed } from "@polkadot/types"; import { NftPacked } from "validator/dist/encoding" /** @@ -86,22 +86,22 @@ export function toHex(buffer: Uint8Array) { async function basePolkadotHelper( node_uri: string - ): Promise<[BasePolkadot, ApiPromise]> { - const provider = new WsProvider(node_uri); - const api = await ApiPromise.create({ provider, types: runtimeTypes }); - - const base = { - async balance( - address: EasyAddr - ): Promise { +): Promise<[BasePolkadot, ApiPromise]> { + const provider = new WsProvider(node_uri); + const api = await ApiPromise.create({ provider, types: runtimeTypes }); - const res: any = await api.query.system.account(address); - - return new BigNumber(res['data']['free'].toString()); - } + const base = { + async balance( + address: EasyAddr + ): Promise { + + const res: any = await api.query.system.account(address); + + return new BigNumber(res['data']['free'].toString()); } + } - return [base, api] + return [base, api] } function hasAddrField(ob: any): ob is { address: string } { @@ -111,7 +111,7 @@ function hasAddrField(ob: any): ob is { address: string } { async function resolve_event_id(ext: SubmittableExtrinsic<'promise', R>, filter: string, signer: AddressOrPair, options?: Partial): Promise<[Hash, EventIdent]> { let call: (cb: Callback) => Promise<() => void>; if (options) { - options.nonce = -1; + options.nonce = -1; call = async (cb: Callback) => await ext.signAndSend(signer, options, cb); } else { call = async (cb: Callback) => await ext.signAndSend(signer, { nonce: -1 }, cb); @@ -137,12 +137,12 @@ async function resolve_event_id(ext: SubmittableEx }); try { - return await evP; + return await evP; } catch (e) { - if (e.message.contains("Priority is too low")) { - throw ConcurrentSendError(); - } - throw e; + if (e.message.contains("Priority is too low")) { + throw ConcurrentSendError(); + } + throw e; } } @@ -160,40 +160,40 @@ export const polkadotPalletHelperFactory: ( const decoder = new TextDecoder(); function nftListMapper([nft_id, data]: [H256, Bytes]): [string, Uint8Array] { - return [nft_id.toString(), data]; + return [nft_id.toString(), data]; } async function getLockedNft( - hash: H256 + hash: H256 ): Promise { - const com = await api.query.nft.lockedCommodities(hash) as Option; - if (com.isNone) { - return undefined; - } + const com = await api.query.nft.lockedCommodities(hash) as Option; + if (com.isNone) { + return undefined; + } - const [_owner, dat] = com.unwrap(); - return dat as Bytes; + const [_owner, dat] = com.unwrap(); + return dat as Bytes; } return { ...base, - async balanceWrapped( - address: EasyAddr, - chain_nonce: number - ): Promise { - const res = await api.query.erc1155.balances(address, chain_nonce); - return new BigNumber(res.toString()) - }, - async balanceWrappedBatch( - address: EasyAddr, - chain_nonces: number[] - ): Promise> { - // Multi query with address, chain_nonce - const res: Option[] = await api.query.erc1155.balances.multi(chain_nonces.map(c => [address, c])); + async balanceWrapped( + address: EasyAddr, + chain_nonce: number + ): Promise { + const res = await api.query.erc1155.balances(address, chain_nonce); + return new BigNumber(res.toString()) + }, + async balanceWrappedBatch( + address: EasyAddr, + chain_nonces: number[] + ): Promise> { + // Multi query with address, chain_nonce + const res: Option[] = await api.query.erc1155.balances.multi(chain_nonces.map(c => [address, c])); - // Convert list of balances to [chain_nonce, balance] - return new Map(res.map((b: Option, i) => [chain_nonces[i], b.isSome ? new BigNumber(b.unwrap().toString()) : new BigNumber(0)])) - }, + // Convert list of balances to [chain_nonce, balance] + return new Map(res.map((b: Option, i) => [chain_nonces[i], b.isSome ? new BigNumber(b.unwrap().toString()) : new BigNumber(0)])) + }, async transferNativeToForeign( sender: Signer, chain_nonce: number, @@ -213,9 +213,9 @@ export const polkadotPalletHelperFactory: ( value: EasyBalance ): Promise<[Hash, EventIdent]> { return await resolve_event_id( - api.tx.freezer.withdrawWrapped(chain_nonce, to, value.toString()), - "UnfreezeWrapped", - sender.sender, sender.options + api.tx.freezer.withdrawWrapped(chain_nonce, to, value.toString()), + "UnfreezeWrapped", + sender.sender, sender.options ); }, async transferNftToForeign( @@ -245,51 +245,51 @@ export const polkadotPalletHelperFactory: ( owner: Signer, info: Uint8Array ): Promise { - let addr; - // "static typing :|" - if (typeof owner.sender == "string") { - addr = owner.sender; - } else if (hasAddrField(owner.sender)) { - addr = owner.sender.address; - } else { - addr = owner.sender.toString(); - } + let addr; + // "static typing :|" + if (typeof owner.sender == "string") { + addr = owner.sender; + } else if (hasAddrField(owner.sender)) { + addr = owner.sender.address; + } else { + addr = owner.sender.toString(); + } - await api.tx.sudo.sudo( - api.tx.nft.mint(addr, toHex(info)) - ).signAndSend(sudoSigner, { nonce: -1 }); + await api.tx.sudo.sudo( + api.tx.nft.mint(addr, toHex(info)) + ).signAndSend(sudoSigner, { nonce: -1 }); }, async listNft( owner: EasyAddr ): Promise> { const com = await api.query.nft.commoditiesForAccount(owner.toString()) as Option>; - if (com.isNone) { - return new Map(); - } + if (com.isNone) { + return new Map(); + } const c = Array.from(com.unwrap()).map(nftListMapper); return new Map(c); }, - getLockedNft, - decodeWrappedNft( - raw_data: Uint8Array - ): WrappedNft { - const packed = NftPacked.deserializeBinary(Uint8Array.from(raw_data)); + getLockedNft, + decodeWrappedNft( + raw_data: Uint8Array + ): WrappedNft { + const packed = NftPacked.deserializeBinary(Uint8Array.from(raw_data)); - return { - chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8() - } - }, - async decodeUrlFromRaw( - data: Uint8Array - ): Promise { - const locked = await getLockedNft(new U8aFixed(api.registry, data, 256)); - if (locked === undefined) { - throw Error("not a locked nft"); - } + return { + chain_nonce: packed.getChainNonce(), + data: packed.getData_asU8() + } + }, + async decodeUrlFromRaw( + data: Uint8Array + ): Promise { + const locked = await getLockedNft(new U8aFixed(api.registry, data, 256)); + if (locked === undefined) { + throw Error("not a locked nft"); + } - return decoder.decode(locked.slice(-24)); - } + return decoder.decode(locked.slice(-24)); + } }; }; diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 839fa6850..45b6f6cf4 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -10,16 +10,16 @@ import { Interface } from "ethers/lib/utils"; import { abi as ERC721_abi } from "../fakeERC721.json"; import { abi as ERC1155_abi } from "../fakeERC1155.json"; import * as ERC1155_contract from "../XPNet.json"; -import {NftEthNative, NftPacked} from "validator/dist/encoding"; +import { NftEthNative, NftPacked } from "validator/dist/encoding"; import { Base64 } from "js-base64"; type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain */ export type EthNftInfo = { - contract_type: "ERC721" | "ERC1155" - contract: string, - token: EthBN + contract_type: "ERC721" | "ERC1155" + contract: string, + token: EthBN } /** @@ -31,53 +31,53 @@ export type EthNftInfo = { * uri: uri of the nft */ export type MintArgs = { - contract: string, - token: EasyBalance, - owner: string, - uri: string + contract: string, + token: EasyBalance, + owner: string, + uri: string }; /** * Base util traits */ export type BaseWeb3Helper = BalanceCheck & - /** - * Mint an nft in the given ERC1155 smart contract - * - * @argument signer owner of the smart contract - * @argument args See [[MintArgs]] - */ - MintNft & { - /** - * - * Deploy an ERC1155 smart contract - * - * @argument owner Owner of this smart contract - * @returns Address of the deployed smart contract - */ - deployErc1155(owner: Signer): Promise; - } + /** + * Mint an nft in the given ERC1155 smart contract + * + * @argument signer owner of the smart contract + * @argument args See [[MintArgs]] + */ + MintNft & { + /** + * + * Deploy an ERC1155 smart contract + * + * @argument owner Owner of this smart contract + * @returns Address of the deployed smart contract + */ + deployErc1155(owner: Signer): Promise; + } /** * Traits implemented by this module */ export type Web3Helper = BaseWeb3Helper & - WrappedBalanceCheck & - BatchWrappedBalanceCheck & - TransferForeign & - TransferNftForeign & - UnfreezeForeign & - UnfreezeForeignNft & - DecodeWrappedNft & - DecodeRawNft & { - /** - * Get the uri of an nft given nft info - */ - nftUri(info: EthNftInfo): Promise; - }; + WrappedBalanceCheck & + BatchWrappedBalanceCheck & + TransferForeign & + TransferNftForeign & + UnfreezeForeign & + UnfreezeForeignNft & + DecodeWrappedNft & + DecodeRawNft & { + /** + * Get the uri of an nft given nft info + */ + nftUri(info: EthNftInfo): Promise; + }; function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { - return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155" + return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155" } /** @@ -86,40 +86,40 @@ function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { * @param provider An ethers.js provider object */ export async function baseWeb3HelperFactory( - provider: Provider + provider: Provider ): Promise { - const w3 = provider; - const erc1155_abi = new Interface(ERC1155_abi); - - return { - async balance(address: string): Promise { - const bal = await w3.getBalance(address); - - // ethers BigNumber is not compatible with our bignumber - return new BigNumber(bal.toString()); - }, - async deployErc1155( - owner: Signer - ): Promise { - const factory = ContractFactory.fromSolidity(ERC1155_contract, owner); - const contract = await factory.deploy(); - - return contract.address; - }, - async mintNft( - contract_owner: Signer, - { - contract, - token, - owner, - uri - }: MintArgs - ): Promise { - const erc1155 = new Contract(contract, erc1155_abi, contract_owner); - await erc1155.mint(owner, EthBN.from(token.toString()), 1); - await erc1155.setURI(token, uri); - } - } + const w3 = provider; + const erc1155_abi = new Interface(ERC1155_abi); + + return { + async balance(address: string): Promise { + const bal = await w3.getBalance(address); + + // ethers BigNumber is not compatible with our bignumber + return new BigNumber(bal.toString()); + }, + async deployErc1155( + owner: Signer + ): Promise { + const factory = ContractFactory.fromSolidity(ERC1155_contract, owner); + const contract = await factory.deploy(); + + return contract.address; + }, + async mintNft( + contract_owner: Signer, + { + contract, + token, + owner, + uri + }: MintArgs + ): Promise { + const erc1155 = new Contract(contract, erc1155_abi, contract_owner); + await erc1155.mint(owner, EthBN.from(token.toString()), 1); + await erc1155.setURI(token, uri); + } + } } /** @@ -130,123 +130,123 @@ export async function baseWeb3HelperFactory( * @param minter_abi ABI of the minter smart contract */ export async function web3HelperFactory( - provider: Provider, - minter_addr: string, - minter_abi: Interface, - erc1155_addr: string + provider: Provider, + minter_addr: string, + minter_abi: Interface, + erc1155_addr: string ): Promise { - const w3 = provider; + const w3 = provider; + + const minter = new Contract(minter_addr, minter_abi, w3); - const minter = new Contract(minter_addr, minter_abi, w3); + const erc1155_abi = new Interface(ERC1155_abi); + const erc1155 = new Contract(erc1155_addr, erc1155_abi, w3); - const erc1155_abi = new Interface(ERC1155_abi); - const erc1155 = new Contract(erc1155_addr, erc1155_abi, w3); + function signedMinter(signer: Signer): Contract { + return minter.connect(signer); + } - function signedMinter(signer: Signer): Contract { - return minter.connect(signer); + async function extractTxn(txr: TransactionResponse, _evName: string): Promise<[TransactionReceipt, string]> { + const receipt = await txr.wait(); + const log = receipt.logs.find((log) => log.address === minter.address); + if (log === undefined) { + throw Error("Couldn't extract action_id"); } - async function extractTxn(txr: TransactionResponse, _evName: string): Promise<[TransactionReceipt, string]> { - const receipt = await txr.wait(); - const log = receipt.logs.find((log) => log.address === minter.address); - if (log === undefined) { - throw Error("Couldn't extract action_id"); - } - - const evdat = minter_abi.parseLog(log); - const action_id: string = evdat.args[0].toString(); - return [receipt, action_id]; - } - - async function nftUri( - info: EthNftInfo - ): Promise { - if (info.contract_type == "ERC721") { - const erc = new Contract(info.contract, ERC721_abi, w3); - return await erc.tokenURI(info.token); - } else { - const erc = new Contract(info.contract, erc1155_abi, w3); - return await erc.uri(info.token) - } - } - - const base = await baseWeb3HelperFactory(provider); - - return { - ...base, - async balanceWrapped(address: string, chain_nonce: number): Promise { - const bal = await erc1155.balanceOf(address, chain_nonce); - - return new BigNumber(bal.toString()); - }, - async balanceWrappedBatch(address: string, chain_nonces: number[]): Promise> { - const bals: EthBN[] = await erc1155.balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces); - - return new Map(bals.map((v, i) => [chain_nonces[i], new BigNumber(v.toString())])); - }, - async transferNativeToForeign(sender: Signer, chain_nonce: number, to: string, value: EasyBalance): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender) - .freeze(chain_nonce, to, { value }); - return await extractTxn(res, 'Transfer'); - }, - async transferNftToForeign(sender: Signer, chain_nonce: number, to: string, id: EthNftInfo): Promise<[TransactionReceipt, string]> { - let txr; - let ev; - const calldata = Buffer.concat([ - Buffer.from((new Int32Array([0])).buffer), // 4 bytes padidng - Buffer.from((new Int32Array([chain_nonce])).buffer).reverse(), // BE, gotta reverse - Buffer.from(to, "utf-8") - ]); - - if (id.contract_type == "ERC721") { - ev = "TransferErc721"; - const erc = new Contract(id.contract, ERC721_abi, w3); - txr = await erc.connect(sender)['safeTransferFrom(address,address,uint256,bytes)'](await sender.getAddress(), minter_addr, id.token, calldata); - } else { - ev = "TransferErc1155"; - const erc = new Contract(id.contract, erc1155_abi, w3); - txr = await erc.connect(sender).safeTransferFrom(await sender.getAddress(), minter_addr, id.token, EthBN.from(1), calldata); - } - - return await extractTxn(txr, ev); - }, - async unfreezeWrapped(sender: Signer, chain_nonce: number, to: string, value: EasyBalance): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender) - .withdraw(chain_nonce, to, value); - - return await extractTxn(res, 'Unfreeze'); - }, - async unfreezeWrappedNft(sender: Signer, to: string, id: BigNumber): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender) - .withdraw_nft(to, id); - - return await extractTxn(res, 'UnfreezeNft'); - }, - nftUri, - decodeWrappedNft( - raw_data: string - ): WrappedNft { - const u8D = Base64.toUint8Array(raw_data); - const packed = NftPacked.deserializeBinary(u8D); - - - return { - chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8() - } - }, - async decodeUrlFromRaw( - data: Uint8Array - ): Promise { - const packed = NftEthNative.deserializeBinary(data); - const nft_info = { - contract_type: contractTypeFromNftKind(packed.getNftKind()), - contract: packed.getContractAddr(), - token: EthBN.from(packed.getId()) - } - - - return await nftUri(nft_info); - }, + const evdat = minter_abi.parseLog(log); + const action_id: string = evdat.args[0].toString(); + return [receipt, action_id]; + } + + async function nftUri( + info: EthNftInfo + ): Promise { + if (info.contract_type == "ERC721") { + const erc = new Contract(info.contract, ERC721_abi, w3); + return await erc.tokenURI(info.token); + } else { + const erc = new Contract(info.contract, erc1155_abi, w3); + return await erc.uri(info.token) } + } + + const base = await baseWeb3HelperFactory(provider); + + return { + ...base, + async balanceWrapped(address: string, chain_nonce: number): Promise { + const bal = await erc1155.balanceOf(address, chain_nonce); + + return new BigNumber(bal.toString()); + }, + async balanceWrappedBatch(address: string, chain_nonces: number[]): Promise> { + const bals: EthBN[] = await erc1155.balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces); + + return new Map(bals.map((v, i) => [chain_nonces[i], new BigNumber(v.toString())])); + }, + async transferNativeToForeign(sender: Signer, chain_nonce: number, to: string, value: EasyBalance): Promise<[TransactionReceipt, string]> { + const res = await signedMinter(sender) + .freeze(chain_nonce, to, { value }); + return await extractTxn(res, 'Transfer'); + }, + async transferNftToForeign(sender: Signer, chain_nonce: number, to: string, id: EthNftInfo): Promise<[TransactionReceipt, string]> { + let txr; + let ev; + const calldata = Buffer.concat([ + Buffer.from((new Int32Array([0])).buffer), // 4 bytes padidng + Buffer.from((new Int32Array([chain_nonce])).buffer).reverse(), // BE, gotta reverse + Buffer.from(to, "utf-8") + ]); + + if (id.contract_type == "ERC721") { + ev = "TransferErc721"; + const erc = new Contract(id.contract, ERC721_abi, w3); + txr = await erc.connect(sender)['safeTransferFrom(address,address,uint256,bytes)'](await sender.getAddress(), minter_addr, id.token, calldata); + } else { + ev = "TransferErc1155"; + const erc = new Contract(id.contract, erc1155_abi, w3); + txr = await erc.connect(sender).safeTransferFrom(await sender.getAddress(), minter_addr, id.token, EthBN.from(1), calldata); + } + + return await extractTxn(txr, ev); + }, + async unfreezeWrapped(sender: Signer, chain_nonce: number, to: string, value: EasyBalance): Promise<[TransactionReceipt, string]> { + const res = await signedMinter(sender) + .withdraw(chain_nonce, to, value); + + return await extractTxn(res, 'Unfreeze'); + }, + async unfreezeWrappedNft(sender: Signer, to: string, id: BigNumber): Promise<[TransactionReceipt, string]> { + const res = await signedMinter(sender) + .withdraw_nft(to, id); + + return await extractTxn(res, 'UnfreezeNft'); + }, + nftUri, + decodeWrappedNft( + raw_data: string + ): WrappedNft { + const u8D = Base64.toUint8Array(raw_data); + const packed = NftPacked.deserializeBinary(u8D); + + + return { + chain_nonce: packed.getChainNonce(), + data: packed.getData_asU8() + } + }, + async decodeUrlFromRaw( + data: Uint8Array + ): Promise { + const packed = NftEthNative.deserializeBinary(data); + const nft_info = { + contract_type: contractTypeFromNftKind(packed.getNftKind()), + contract: packed.getContractAddr(), + token: EthBN.from(packed.getId()) + } + + + return await nftUri(nft_info); + }, + } } diff --git a/src/socket.ts b/src/socket.ts index f1be02801..9b7e0f40e 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -1,73 +1,73 @@ import { io, ManagerOptions, SocketOptions } from "socket.io-client"; type ChainAwaiter = { - [action_id: string]: { - resolve?: (hash: string) => void; - event_res?: string; - } | undefined; + [action_id: string]: { + resolve?: (hash: string) => void; + event_res?: string; + } | undefined; }; type TxResInnerBuf = { - [chain: number]: ChainAwaiter; + [chain: number]: ChainAwaiter; } type TxResBuf = { - getResolver(chain_id: number, action_id: string): ((hash: string) => void) | undefined; - setResolver(chain_id: number, action_id: string, resolver: (hash: string) => void): void; - getEventRes(chain_id: number, action_id: string): string | undefined; - setEventRes(chain_id: number, action_id: string, res: string): void; - unsetAction(chain_id: number, action_id: string): void; + getResolver(chain_id: number, action_id: string): ((hash: string) => void) | undefined; + setResolver(chain_id: number, action_id: string, resolver: (hash: string) => void): void; + getEventRes(chain_id: number, action_id: string): string | undefined; + setEventRes(chain_id: number, action_id: string, res: string): void; + unsetAction(chain_id: number, action_id: string): void; }; /** * Tracker for cross chain transaction */ export type TxnSocketHelper = { - /** - * - * @param chain Nonce of the target chain - * @param action_id Identifier for tracking a cross chain transaction - * @returns transaction hash on the foreign chain - */ - waitTxHash(chain: number, action_id: string): Promise; + /** + * + * @param chain Nonce of the target chain + * @param action_id Identifier for tracking a cross chain transaction + * @returns transaction hash on the foreign chain + */ + waitTxHash(chain: number, action_id: string): Promise; } function txResBuf(): TxResBuf { - const inner: TxResInnerBuf = {}; - - const requireChain = (chain_id: number) => { - if (inner[chain_id] === undefined) { - inner[chain_id] = {}; - } - } - - return { - getResolver(chain_id: number, action_id: string): ((hash: string) => void) | undefined { - requireChain(chain_id); - - return inner[chain_id][action_id]?.resolve; - }, - setResolver(chain_id: number, action_id: string, resolver: (hash: string) => void): void { - requireChain(chain_id); - - inner[chain_id][action_id] = { resolve: resolver }; - }, - getEventRes(chain_id: number, action_id: string): string | undefined { - requireChain(chain_id); - - return inner[chain_id][action_id]?.event_res; - }, - setEventRes(chain_id: number, action_id: string, res: string): void { - requireChain(chain_id); - - inner[chain_id][action_id] = { event_res: res }; - }, - unsetAction(chain_id: number, action_id: string): void { - requireChain(chain_id); - - inner[chain_id][action_id] = undefined; - } - } + const inner: TxResInnerBuf = {}; + + const requireChain = (chain_id: number) => { + if (inner[chain_id] === undefined) { + inner[chain_id] = {}; + } + } + + return { + getResolver(chain_id: number, action_id: string): ((hash: string) => void) | undefined { + requireChain(chain_id); + + return inner[chain_id][action_id]?.resolve; + }, + setResolver(chain_id: number, action_id: string, resolver: (hash: string) => void): void { + requireChain(chain_id); + + inner[chain_id][action_id] = { resolve: resolver }; + }, + getEventRes(chain_id: number, action_id: string): string | undefined { + requireChain(chain_id); + + return inner[chain_id][action_id]?.event_res; + }, + setEventRes(chain_id: number, action_id: string, res: string): void { + requireChain(chain_id); + + inner[chain_id][action_id] = { event_res: res }; + }, + unsetAction(chain_id: number, action_id: string): void { + requireChain(chain_id); + + inner[chain_id][action_id] = undefined; + } + } } /** @@ -77,39 +77,39 @@ function txResBuf(): TxResBuf { * @param options socket.io options */ export function txnSocketHelper(uri: string, options?: Partial): TxnSocketHelper { - const socket = io(uri, options); - const buf: TxResBuf = txResBuf(); - - function add_event(chain: number, id: string, hash: string) { - const resolve = buf.getResolver(chain, id); - if (resolve === undefined) { - buf.setEventRes(chain, id, hash); - return; - } - resolve(hash); + const socket = io(uri, options); + const buf: TxResBuf = txResBuf(); + + function add_event(chain: number, id: string, hash: string) { + const resolve = buf.getResolver(chain, id); + if (resolve === undefined) { + buf.setEventRes(chain, id, hash); + return; + } + resolve(hash); + } + + socket.on( + "tx_executed_event", + (chain: number, action_id: string, hash: string) => { + add_event(chain, action_id, hash); } + ); + - socket.on( - "tx_executed_event", - (chain: number, action_id: string, hash: string) => { - add_event(chain, action_id, hash); - } - ); - - - return { - async waitTxHash(chain: number, action_id: string): Promise { - const hash = buf.getEventRes(chain, action_id); - if (hash !== undefined) { - buf.unsetAction(chain, action_id); - return hash; - } - - const hashP: Promise = new Promise(r => { - buf.setResolver(chain, action_id, r); - }); - - return await hashP; - } - } + return { + async waitTxHash(chain: number, action_id: string): Promise { + const hash = buf.getEventRes(chain, action_id); + if (hash !== undefined) { + buf.unsetAction(chain, action_id); + return hash; + } + + const hashP: Promise = new Promise(r => { + buf.setResolver(chain, action_id, r); + }); + + return await hashP; + } + } } From f00f643f1b8219b121038cefbec66ec112786923 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 11 Sep 2021 15:15:55 +0530 Subject: [PATCH 003/956] chore(packages): Import Some ESLint Packages --- package.json | 2 ++ yarn.lock | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 391028e1b..bb9ae735d 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,11 @@ "build": "tsc -p tsconfig.json" }, "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.31.0", "@typescript-eslint/parser": "^4.28.3", "eslint": "^7.30.0", "eslint-config-prettier": "^8.3.0", + "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-functional": "^3.2.1", "prettier": "^2.3.2", "typedoc": "^0.21.0", diff --git a/yarn.lock b/yarn.lock index ee12d72f9..23a55bc91 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1361,6 +1361,31 @@ dependencies: "@types/node" "*" +"@typescript-eslint/eslint-plugin@^4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" + integrity sha512-iPKZTZNavAlOhfF4gymiSuUkgLne/nh5Oz2/mdiUmuZVD42m9PapnCnzjxuDsnpnbH3wT5s2D8bw6S39TC6GNw== + dependencies: + "@typescript-eslint/experimental-utils" "4.31.0" + "@typescript-eslint/scope-manager" "4.31.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.0.tgz#0ef1d5d86c334f983a00f310e43c1ce4c14e054d" + integrity sha512-Hld+EQiKLMppgKKkdUsLeVIeEOrwKc2G983NmznY/r5/ZtZCDvIOXnXtwqJIgYz/ymsy7n7RGvMyrzf1WaSQrw== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.31.0" + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/typescript-estree" "4.31.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + "@typescript-eslint/experimental-utils@^4.9.1": version "4.28.3" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.3.tgz#976f8c1191b37105fd06658ed57ddfee4be361ca" @@ -1391,11 +1416,24 @@ "@typescript-eslint/types" "4.28.3" "@typescript-eslint/visitor-keys" "4.28.3" +"@typescript-eslint/scope-manager@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.0.tgz#9be33aed4e9901db753803ba233b70d79a87fc3e" + integrity sha512-LJ+xtl34W76JMRLjbaQorhR0hfRAlp3Lscdiz9NeI/8i+q0hdBZ7BsiYieLoYWqy+AnRigaD3hUwPFugSzdocg== + dependencies: + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/visitor-keys" "4.31.0" + "@typescript-eslint/types@4.28.3": version "4.28.3" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.3.tgz#8fffd436a3bada422c2c1da56060a0566a9506c7" integrity sha512-kQFaEsQBQVtA9VGVyciyTbIg7S3WoKHNuOp/UF5RG40900KtGqfoiETWD/v0lzRXc+euVE9NXmfer9dLkUJrkA== +"@typescript-eslint/types@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.0.tgz#9a7c86fcc1620189567dc4e46cad7efa07ee8dce" + integrity sha512-9XR5q9mk7DCXgXLS7REIVs+BaAswfdHhx91XqlJklmqWpTALGjygWVIb/UnLh4NWhfwhR5wNe1yTyCInxVhLqQ== + "@typescript-eslint/typescript-estree@4.28.3": version "4.28.3" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.3.tgz#253d7088100b2a38aefe3c8dd7bd1f8232ec46fb" @@ -1409,6 +1447,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.0.tgz#4da4cb6274a7ef3b21d53f9e7147cc76f278a078" + integrity sha512-QHl2014t3ptg+xpmOSSPn5hm4mY8D4s97ftzyk9BZ8RxYQ3j73XcwuijnJ9cMa6DO4aLXeo8XS3z1omT9LA/Eg== + dependencies: + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/visitor-keys" "4.31.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/visitor-keys@4.28.3": version "4.28.3" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.3.tgz#26ac91e84b23529968361045829da80a4e5251c4" @@ -1417,6 +1468,14 @@ "@typescript-eslint/types" "4.28.3" eslint-visitor-keys "^2.0.0" +"@typescript-eslint/visitor-keys@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.0.tgz#4e87b7761cb4e0e627dc2047021aa693fc76ea2b" + integrity sha512-HUcRp2a9I+P21+O21yu3ezv3GEPGjyGiXoEUQwZXjR8UxRApGeLyWH4ZIIUSalE28aG4YsV6GjtaAVB3QKOu0w== + dependencies: + "@typescript-eslint/types" "4.31.0" + eslint-visitor-keys "^2.0.0" + "@walletconnect/browser-utils@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.4.1.tgz#a8d5a038d28c19b739eb0ff4194ced140c922d36" @@ -2403,6 +2462,14 @@ eslint-config-prettier@^8.3.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== +eslint-plugin-eslint-comments@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa" + integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ== + dependencies: + escape-string-regexp "^1.0.5" + ignore "^5.0.5" + eslint-plugin-functional@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-functional/-/eslint-plugin-functional-3.2.1.tgz#d5ad668b57646ad24f4ef0476328408681d59061" @@ -3077,7 +3144,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.4: +ignore@^5.0.5, ignore@^5.1.4: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== From 66b6e3104d80acc50b761ef4b893d8452c3afb18 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 11 Sep 2021 15:16:25 +0530 Subject: [PATCH 004/956] feat(compat): Introduce Tron --- src/helpers/tron.ts | 159 ++++++++++++++++++++++++++++++++++++++++++++ src/index.ts | 1 + 2 files changed, 160 insertions(+) create mode 100644 src/helpers/tron.ts diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts new file mode 100644 index 000000000..aa3a16086 --- /dev/null +++ b/src/helpers/tron.ts @@ -0,0 +1,159 @@ +import {BigNumber} from "bignumber.js"; +import { + BalanceCheck, + BatchWrappedBalanceCheck, + DecodeRawNft, + DecodeWrappedNft, + MintNft, + TransferForeign, + TransferNftForeign, + UnfreezeForeign, + UnfreezeForeignNft, + WrappedBalanceCheck, + WrappedNft +} from "./chain"; +import {abi as ERC1155_abi} from "../fakeERC1155.json"; + +// @ts-ignore +import {TronWeb} from "tronweb"; +import {EthNftInfo, MintArgs} from "./web3"; + +import {BigNumber as EthBN} from "@ethersproject/bignumber/lib/bignumber"; +import {Interface} from "ethers/lib/utils"; +import {abi as ERC721_abi} from "../fakeERC721.json"; +import {Base64} from "js-base64"; +import {NftEthNative, NftPacked} from "validator/dist/encoding"; + + +export type TronHelper = + BalanceCheck & + MintNft & + WrappedBalanceCheck & + BatchWrappedBalanceCheck & + TransferForeign & + TransferNftForeign & + UnfreezeForeign & + UnfreezeForeignNft & + DecodeWrappedNft & + DecodeRawNft & { + nftUri(info: EthNftInfo): Promise; +} +// BalanceCheck +// & WrappedBalanceCheck +// & BatchWrappedBalanceCheck & MintNft; + +export async function tronHelperFactory( + provider: TronWeb, + erc1155_addr: string, + minter_addr: string, + minter_abi: Interface +): Promise { + const erc1155 = await provider.contract(ERC1155_abi, erc1155_addr); + const minter = await provider.contract(minter_abi, minter_addr) + + const setSigner = (signer: string) => { + return provider.setPrivateKey(signer) + } + + async function extractTxn(hash: string): Promise<[string, string]> { + const evs = await provider.getEventByTransactionID(hash) + const ev = evs.find((e: any) => e?.contract_address == minter_addr); + const action_id: string = ev.result["action_id"].toString() + return [hash, action_id]; + } + + const nftUri = async (info: EthNftInfo): Promise => { + if (info.contract_type == "ERC721") { + const erc = await provider.contract(ERC721_abi, info.contract); + return await erc.tokenURI(info.token).call(); + } else { + const erc = await provider.contract(ERC1155_abi, info.contract); + return await erc.uri(info.token).call() + } + } + + function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { + return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155" + } + + return { + async decodeUrlFromRaw(data: Uint8Array): Promise { + const packed = NftEthNative.deserializeBinary(data); + const nft_info = { + contract_type: contractTypeFromNftKind(packed.getNftKind()), + contract: packed.getContractAddr(), + token: EthBN.from(packed.getId()) + } + + + return await nftUri(nft_info); + }, + decodeWrappedNft(raw_data: string): WrappedNft { + const u8D = Base64.toUint8Array(raw_data); + const packed = NftPacked.deserializeBinary(u8D); + return { + chain_nonce: packed.getChainNonce(), + data: packed.getData_asU8() + }; + }, + async mintNft(owner: string, options: MintArgs): Promise { + const erc = await provider.contract(ERC1155_abi, options.contract); + await erc.mint(owner, EthBN.from(options.token.toString()), 1).send(); + await erc.setURI(options.token, options.uri).send(); + }, + nftUri: nftUri + , + async transferNativeToForeign(sender: string, chain_nonce: number, to: string, value: string): Promise<[string, string]> { + setSigner(sender) + let res = await minter.freeze(chain_nonce, to).send({callValue: value}) + return await extractTxn(res.hash) + }, + async unfreezeWrapped(sender: string, chain_nonce: number, to: string, value: string): Promise<[string, string]> { + setSigner(sender) + const res = await minter.withdraw(chain_nonce, to, value).send(); + return await extractTxn(res.hash) + }, + async unfreezeWrappedNft(sender: string, to: string, id: BigNumber): Promise<[string, string]> { + setSigner(sender) + const res = await minter.withdraw_nft(to, id).send(); + return await extractTxn(res.hash) + }, + async transferNftToForeign(sender: string, chain_nonce: number, to: string, id: EthNftInfo): Promise<[string, string]> { + let txr; + let ev; + const call_data = Buffer.concat([ + Buffer.from((new Int32Array([0])).buffer), // 4 bytes padding + Buffer.from((new Int32Array([chain_nonce])).buffer).reverse(), // BE, gotta reverse + Buffer.from(to, "utf-8") + ]); + setSigner(sender) + if (id.contract_type == "ERC721") { + ev = "TransferErc721"; + const erc = await provider.contract(ERC721_abi, id.contract) + await erc.safeTransferFrom(sender, minter_addr, id.token, call_data).send() + } else { + ev = "TransferErc1155"; + const erc = await provider.contract(ERC1155_abi, id.contract) + txr = await erc.safeTransferFrom(sender, minter_addr, id.token, EthBN.from(1), call_data).send(); + } + ev.toString() + return await extractTxn(txr.hash) + }, + async balanceWrappedBatch(address: string, chain_nonces: number[]): Promise> { + const res = new Map() + const balance = await erc1155.balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces).call() + balance.map((e: any, i: any) => { + res.set(chain_nonces[i], new BigNumber(e.toString())) + }) + return res + }, + async balance(address: string): Promise { + const balance = await provider.trx.getBalance(address); + return new BigNumber(balance) + }, + async balanceWrapped(address: string, chain_nonce: number): Promise { + const bal = await erc1155.balanceOf(address, chain_nonce).call(); + return new BigNumber(bal.toString()) + } + } +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index ff67f35ee..ede12fd64 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,4 +2,5 @@ export * from "./helpers/chain"; export * from "./helpers/polkadot"; export * from "./helpers/elrond"; export * from "./helpers/web3"; +export * from "./helpers/tron"; export * from "./socket"; From 5ed2011f64579254167bc7856dae3c87a8b99b7c Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 12 Sep 2021 20:15:27 +0530 Subject: [PATCH 005/956] tron: add base tron helper --- dist/helpers/chain.js | 2 +- dist/helpers/elrond.d.ts | 2 +- dist/helpers/elrond.js | 64 +-- dist/helpers/polkadot.js | 50 ++- dist/helpers/tron.d.ts | 20 + dist/helpers/tron.js | 155 +++++++ dist/helpers/web3.d.ts | 6 +- dist/helpers/web3.js | 36 +- dist/index.d.ts | 1 + dist/index.js | 3 +- dist/socket.js | 8 +- src/fakeERC1155.json | 155 ++++--- src/fakeERC721.json | 191 +++++---- src/helpers/chain.ts | 68 +-- src/helpers/elrond.ts | 883 ++++++++++++++++++++------------------- src/helpers/polkadot.ts | 147 ++++--- src/helpers/tron.ts | 234 +++++++---- src/helpers/web3.ts | 188 +++++---- src/socket.ts | 58 ++- 19 files changed, 1375 insertions(+), 896 deletions(-) create mode 100644 dist/helpers/tron.d.ts create mode 100644 dist/helpers/tron.js diff --git a/dist/helpers/chain.js b/dist/helpers/chain.js index 9dbe66eed..8ad72830d 100644 --- a/dist/helpers/chain.js +++ b/dist/helpers/chain.js @@ -5,4 +5,4 @@ function ConcurrentSendError() { return new Error("concurrent_send"); } exports.ConcurrentSendError = ConcurrentSendError; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtSkEsU0FBZ0IsbUJBQW1CO0lBQ2xDLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUNwQyxDQUFDO0FBRkQsa0RBRUMifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5SkEsU0FBZ0IsbUJBQW1CO0lBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsa0RBRUMifQ== \ No newline at end of file diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts index a6e394b7e..0287057c9 100644 --- a/dist/helpers/elrond.d.ts +++ b/dist/helpers/elrond.d.ts @@ -114,7 +114,7 @@ export declare type ElrondHelper = BalanceCheck & B unsignedTransferNftTxn(chain_nonce: number, address: Address, to: string, info: NftInfo): Transaction; /** * Unsigned Transaction for [[UnfreezeForeignNft]] - */ + */ unsignedUnfreezeNftTxn(address: Address, to: string, id: number): Transaction; /** * Unsigned transaction for Minting an NFT diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js index 6df45defa..605e00d8e 100644 --- a/dist/helpers/elrond.js +++ b/dist/helpers/elrond.js @@ -20,7 +20,6 @@ const ESDT_ISSUE_COST = "50000000000000000"; function isEsdtNftInfo(maybe) { return maybe.creator != undefined && maybe.balance == "1"; } -; /** * Create an object implementing cross chain utilities for elrond * @@ -35,7 +34,7 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => await erdjs_1.NetworkConfig.getDefault().sync(provider); const mintContract = new erdjs_1.Address(minter_address); const providerRest = axios_1.default.create({ - baseURL: node_uri + baseURL: node_uri, }); const esdtHex = Buffer.from(esdt, "utf-8"); const esdtNftHex = Buffer.from(esdt_nft, "utf-8"); @@ -69,9 +68,9 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => tries += 1; let err; // TODO: type safety - const res = await providerRest.get(uri).catch(e => err = e); + const res = await providerRest.get(uri).catch((e) => (err = e)); if (err) { - await new Promise(r => setTimeout(r, 3000)); + await new Promise((r) => setTimeout(r, 3000)); continue; } const data = res.data; @@ -80,7 +79,7 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => } const tx_info = data["data"]["transaction"]; if (tx_info["status"] == "pending") { - await new Promise(r => setTimeout(r, 5000)); + await new Promise((r) => setTimeout(r, 5000)); continue; } if (tx_info["status"] != "success") { @@ -105,19 +104,19 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => const unsignedMintNftTxn = (owner, { identifier, quantity, name, royalties, hash, attrs, uris }) => { let baseArgs = erdjs_1.TransactionPayload.contractCall() .setFunction(new erdjs_1.ContractFunction("ESDTNFTCreate")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(identifier, 'utf-8'))) + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(identifier, "utf-8"))) .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(quantity !== null && quantity !== void 0 ? quantity : 1))) - .addArg(new erdjs_1.BytesValue(Buffer.from(name, 'utf-8'))) + .addArg(new erdjs_1.BytesValue(Buffer.from(name, "utf-8"))) .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(royalties !== null && royalties !== void 0 ? royalties : 0))) - .addArg(new erdjs_1.BytesValue(hash ? Buffer.from(hash, 'utf-8') : Buffer.alloc(0))) - .addArg(new erdjs_1.BytesValue(attrs ? Buffer.from(attrs, 'utf-8') : Buffer.alloc(0))); + .addArg(new erdjs_1.BytesValue(hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0))) + .addArg(new erdjs_1.BytesValue(attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0))); for (const uri of uris) { - baseArgs = baseArgs.addArg(new erdjs_1.BytesValue(Buffer.from(uri, 'utf-8'))); + baseArgs = baseArgs.addArg(new erdjs_1.BytesValue(Buffer.from(uri, "utf-8"))); } return new erdjs_1.Transaction({ receiver: owner, gasLimit: new erdjs_1.GasLimit(70000000), - data: baseArgs.build() + data: baseArgs.build(), }); }; const unsignedTransferNftTxn = (chain_nonce, address, to, { token, nonce }) => { @@ -187,25 +186,28 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => const unsignedIssueESDTNft = (name, ticker, canFreeze, canWipe, canTransferNFTCreateRole) => { let baseArgs = erdjs_1.TransactionPayload.contractCall() .setFunction(new erdjs_1.ContractFunction("issueNonFungible")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(name, 'utf-8'))) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(ticker, 'utf-8'))); + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(name, "utf-8"))) + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); if (canFreeze !== undefined) { - baseArgs = baseArgs.addArg(new erdjs_1.BytesValue(Buffer.from("canFreeze", 'ascii'))) - .addArg(new erdjs_1.BytesValue(Buffer.from(canFreeze ? "true" : "false", 'ascii'))); + baseArgs = baseArgs + .addArg(new erdjs_1.BytesValue(Buffer.from("canFreeze", "ascii"))) + .addArg(new erdjs_1.BytesValue(Buffer.from(canFreeze ? "true" : "false", "ascii"))); } if (canWipe !== undefined) { - baseArgs = baseArgs.addArg(new erdjs_1.BytesValue(Buffer.from("canWipe", 'ascii'))) + baseArgs = baseArgs + .addArg(new erdjs_1.BytesValue(Buffer.from("canWipe", "ascii"))) .addArg(new erdjs_1.BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii"))); } if (canTransferNFTCreateRole !== undefined) { - baseArgs = baseArgs.addArg(new erdjs_1.BytesValue(Buffer.from('canTransferNFTCreateRole', 'ascii'))) + baseArgs = baseArgs + .addArg(new erdjs_1.BytesValue(Buffer.from("canTransferNFTCreateRole", "ascii"))) .addArg(new erdjs_1.BytesValue(Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii"))); } return new erdjs_1.Transaction({ receiver: ESDT_ISSUE_ADDR, value: new erdjs_1.Balance(ESDT_ISSUE_COST), gasLimit: new erdjs_1.GasLimit(60000000), - data: baseArgs.build() + data: baseArgs.build(), }); }; const unsignedSetESDTRoles = (token, target, roles) => { @@ -214,15 +216,15 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token))) .addArg(new erdjs_1.AddressValue(target)); for (const role of roles) { - baseArgs = baseArgs.addArg(new erdjs_1.BytesValue(Buffer.from(role, 'utf-8'))); + baseArgs = baseArgs.addArg(new erdjs_1.BytesValue(Buffer.from(role, "utf-8"))); } return new erdjs_1.Transaction({ receiver: ESDT_ISSUE_ADDR, gasLimit: new erdjs_1.GasLimit(70000000), - data: baseArgs.build() + data: baseArgs.build(), }); }; - async function getLockedNft({ token, nonce }) { + async function getLockedNft({ token, nonce, }) { const nfts = await listNft(minter_address); return nfts.get(`${token}-${nonce.toString()}`); } @@ -232,21 +234,21 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => if (nftDat.length < 12) { throw Error("not a wrapped nft"); } - const tokenLen = (new Uint32Array(nftDat.slice(0, 4).reverse()))[0]; + const tokenLen = new Uint32Array(nftDat.slice(0, 4).reverse())[0]; if (nftDat.length !== 12 + tokenLen) { throw Error("not a wrapped nft"); } const token = decoder.decode(nftDat.slice(4, 4 + tokenLen)); // TODO: Consider LO // tfw js can't convert be bytes to u64 - const nonce = (new Uint32Array(nftDat.slice(4 + tokenLen, 12 + tokenLen).reverse()))[0]; + const nonce = new Uint32Array(nftDat.slice(4 + tokenLen, 12 + tokenLen).reverse())[0]; return { token, nonce }; }; async function extractId(tx) { let err; - await tx.awaitExecuted(provider).catch(e => err = e); + await tx.awaitExecuted(provider).catch((e) => (err = e)); if (err) { - await new Promise(r => setTimeout(r, 3000)); + await new Promise((r) => setTimeout(r, 3000)); return extractId(tx); } const txr = await transactionResult(tx.getHash()); @@ -268,9 +270,11 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => }, async balanceWrappedBatch(address, chain_nonces) { const esdts = Object.values(await listEsdt(address.toString())); - const res = new Map(chain_nonces.map(v => [v, new bignumber_js_1.default(0)])); + const res = new Map(chain_nonces.map((v) => [v, new bignumber_js_1.default(0)])); for (const esdt of esdts) { - esdt.nonce && esdt.tokenIdentifier.startsWith(esdt.tokenIdentifier) && res.set(esdt.nonce, new bignumber_js_1.default(esdt.balance)); + esdt.nonce && + esdt.tokenIdentifier.startsWith(esdt.tokenIdentifier) && + res.set(esdt.nonce, new bignumber_js_1.default(esdt.balance)); } return res; }, @@ -316,7 +320,7 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => return { // TODO: CONSIDER ALL BE BYTES chain_nonce: js_base64_1.Base64.toUint8Array(raw_data.attributes)[0], - data: js_base64_1.Base64.toUint8Array(raw_data.uris[0]) + data: js_base64_1.Base64.toUint8Array(raw_data.uris[0]), }; }, async decodeUrlFromRaw(data) { @@ -326,7 +330,7 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => throw Error("Not a wrapped nft"); } return js_base64_1.Base64.atob(locked.uris[0]); - } + }, }; }; exports.elrondHelperFactory = elrondHelperFactory; @@ -348,4 +352,4 @@ function filterEventId(results) { } throw Error(`invalid result: ${results.toString()}`); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztBQUN0RyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQXNDNUMsU0FBUyxhQUFhLENBQUMsS0FBdUI7SUFDNUMsT0FBTyxLQUFLLENBQUMsT0FBTyxJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztBQUM1RCxDQUFDO0FBZ0RBLENBQUM7QUF1RkY7Ozs7Ozs7O0dBUUc7QUFDSSxNQUFNLG1CQUFtQixHQUtILEtBQUssRUFDaEMsUUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsTUFBTSxxQkFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxNQUFNLFlBQVksR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE9BQU8sRUFBRSxRQUFRO0tBQ2xCLENBQUMsQ0FBQztJQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFFbEMsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLE1BQWUsRUFBRSxFQUFFO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsTUFBZSxFQUFFLEVBQWUsRUFBRSxFQUFFO1FBQzdELE1BQU0sR0FBRyxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV6QixJQUFJO1lBQ0EsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzNCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7Z0JBQ3pDLE1BQU0sMkJBQW1CLEVBQUUsQ0FBQzthQUM1QjtpQkFBTTtnQkFDTixNQUFNLENBQUMsQ0FBQzthQUNSO1NBQ0Q7UUFDRSxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQTtJQUVELE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLE9BQXdCLEVBQUUsRUFBRTtRQUMzRCxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsT0FBTyxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQztRQUNyRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFWCxPQUFPLEtBQUssR0FBRyxFQUFFLEVBQUU7WUFDcEIsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUNYLElBQUksR0FBRyxDQUFDO1lBQ1Isb0JBQW9CO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxHQUFHLEVBQUU7Z0JBQ1IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtnQkFDM0MsU0FBUzthQUNUO1lBQ0UsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hDLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUE7YUFDckM7WUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUE7WUFDM0MsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxFQUFFO2dCQUNsQyxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxTQUFTO2FBQ1Y7WUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLEVBQUU7Z0JBQ2xDLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUE7YUFDckM7WUFFRCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVKLE1BQU0sS0FBSyxDQUFDLG1EQUFtRCxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUMsQ0FBQTtJQUVELE1BQU0sbUJBQW1CLEdBQUcsQ0FDMUIsV0FBbUIsRUFDbkIsRUFBVSxFQUNWLEtBQWtCLEVBQ2xCLEVBQUU7UUFFRixPQUFPLElBQUksbUJBQVcsQ0FBQztZQUNyQixRQUFRLEVBQUUsWUFBWTtZQUN0QixRQUFRLEVBQUUsSUFBSSxnQkFBUSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxLQUFLLEVBQUUsSUFBSSxlQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksRUFBRSwwQkFBa0IsQ0FBQyxZQUFZLEVBQUU7aUJBQ3BDLFdBQVcsQ0FBQyxJQUFJLHdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUMvQyxNQUFNLENBQUMsSUFBSSxnQkFBUSxDQUFDLElBQUksc0JBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2lCQUNoRCxNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ2hELEtBQUssRUFBRTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsS0FBYyxFQUNkLEVBQ0UsVUFBVSxFQUNWLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNULElBQUksRUFDSixLQUFLLEVBQ0wsSUFBSSxFQUNTLEVBQ2YsRUFBRTtRQUNGLElBQUksUUFBUSxHQUFHLDBCQUFrQixDQUFDLFlBQVksRUFBRTthQUM3QyxXQUFXLENBQUMsSUFBSSx3QkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUNsRCxNQUFNLENBQUMsSUFBSSw0QkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2xFLE1BQU0sQ0FBQyxJQUFJLG9CQUFZLENBQUMsSUFBSSxzQkFBUyxDQUFDLFFBQVEsYUFBUixRQUFRLGNBQVIsUUFBUSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEQsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2xELE1BQU0sQ0FBQyxJQUFJLGdCQUFRLENBQUMsSUFBSSxzQkFBUyxDQUFDLFNBQVMsYUFBVCxTQUFTLGNBQVQsU0FBUyxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkQsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0UsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqRixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUN0QixRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGtCQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsT0FBTyxJQUFJLG1CQUFXLENBQUM7WUFDckIsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsSUFBSSxnQkFBUSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRTtTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUE7SUFFRCxNQUFNLHNCQUFzQixHQUFHLENBQzdCLFdBQW1CLEVBQ25CLE9BQWdCLEVBQ2hCLEVBQVUsRUFDVixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQVcsRUFDekIsRUFBRTtRQUNGLE9BQU8sSUFBSSxtQkFBVyxDQUFDO1lBQ3JCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLGdCQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2hDLElBQUksRUFBRSwwQkFBa0IsQ0FBQyxZQUFZLEVBQUU7aUJBQ3BDLFdBQVcsQ0FBQyxJQUFJLHdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7aUJBQ3BELE1BQU0sQ0FBQyxJQUFJLDRCQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQzdELE1BQU0sQ0FBQyxJQUFJLGdCQUFRLENBQUMsSUFBSSxzQkFBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQzFDLE1BQU0sQ0FBQyxJQUFJLG9CQUFZLENBQUMsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzFDLE1BQU0sQ0FBQyxJQUFJLG9CQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3RDLE1BQU0sQ0FBQyxJQUFJLGtCQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDN0QsTUFBTSxDQUFDLElBQUksZ0JBQVEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDaEQsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNoRCxLQUFLLEVBQUU7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixNQUFNLHNCQUFzQixHQUFHLENBQzdCLE9BQWdCLEVBQ2hCLEVBQVUsRUFDVixFQUFVLEVBQ1YsRUFBRTtRQUNGLE9BQU8sSUFBSSxtQkFBVyxDQUFDO1lBQ3JCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLGdCQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2hDLElBQUksRUFBRSwwQkFBa0IsQ0FBQyxZQUFZLEVBQUU7aUJBQ3BDLFdBQVcsQ0FBQyxJQUFJLHdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7aUJBQ3BELE1BQU0sQ0FBQyxJQUFJLDRCQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUM1QyxNQUFNLENBQUMsSUFBSSxnQkFBUSxDQUFDLElBQUksc0JBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUN2QyxNQUFNLENBQUMsSUFBSSxvQkFBWSxDQUFDLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMxQyxNQUFNLENBQUMsSUFBSSxvQkFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUN0QyxNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQzNELE1BQU0sQ0FBQyxJQUFJLGtCQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDaEQsS0FBSyxFQUFFO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFBO0lBRUQsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixXQUFtQixFQUN0QixPQUFnQixFQUNiLEVBQVUsRUFDVixLQUFrQixFQUNsQixFQUFFO1FBQ0YsT0FBTyxJQUFJLG1CQUFXLENBQUM7WUFDckIsUUFBUSxFQUFFLE9BQU87WUFDakIsUUFBUSxFQUFFLElBQUksZ0JBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEMsSUFBSSxFQUFFLDBCQUFrQixDQUFDLFlBQVksRUFBRTtpQkFDcEMsV0FBVyxDQUFDLElBQUksd0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztpQkFDcEQsTUFBTSxDQUFDLElBQUksNEJBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ3pDLE1BQU0sQ0FBQyxJQUFJLGdCQUFRLENBQUMsSUFBSSxzQkFBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7aUJBQ2hELE1BQU0sQ0FBQyxJQUFJLG9CQUFZLENBQUMsSUFBSSxzQkFBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ3BELE1BQU0sQ0FBQyxJQUFJLG9CQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ2hDLE1BQU0sQ0FBQyxJQUFJLGtCQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDeEQsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNoRCxLQUFLLEVBQUU7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUE7SUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsS0FBYSxFQUFFLEVBQUU7UUFDeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQThDLENBQUM7UUFFekUsT0FBTyxHQUFHLENBQUM7SUFDWixDQUFDLENBQUE7SUFFRCxLQUFLLFVBQVUsT0FBTyxDQUFDLEtBQWE7UUFDckMsTUFBTSxJQUFJLEdBQWlDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVqRixNQUFNLE1BQU0sR0FBc0UsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFOztZQUNqRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN4QixPQUFPLEVBQUUsQ0FBQzthQUNYO1lBRUQsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixJQUFJLEtBQUssR0FBRyxNQUFBLEVBQUUsQ0FBQyxHQUFHLEVBQUUsbUNBQUksRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNyRSxDQUFDLENBQUE7UUFFQSxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBR0QsTUFBTSxvQkFBb0IsR0FBSSxDQUMxQixJQUFZLEVBQ1osTUFBYyxFQUNkLFNBQThCLEVBQzlCLE9BQTRCLEVBQzVCLHdCQUE2QyxFQUMvQyxFQUFFO1FBQ0wsSUFBSSxRQUFRLEdBQUcsMEJBQWtCLENBQUMsWUFBWSxFQUFFO2FBQ3hDLFdBQVcsQ0FBQyxJQUFJLHdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDckQsTUFBTSxDQUFDLElBQUksNEJBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUM1RCxNQUFNLENBQUMsSUFBSSw0QkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkUsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQzVCLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUMxRSxNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUU7UUFDRCxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ3hFLE1BQU0sQ0FBQyxJQUFJLGtCQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RTtRQUNELElBQUksd0JBQXdCLEtBQUssU0FBUyxFQUFFO1lBQzNDLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ3pGLE1BQU0sQ0FBQyxJQUFJLGtCQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdGO1FBRUUsT0FBTyxJQUFJLG1CQUFXLENBQUM7WUFDckIsUUFBUSxFQUFFLGVBQWU7WUFDekIsS0FBSyxFQUFFLElBQUksZUFBTyxDQUFDLGVBQWUsQ0FBQztZQUNuQyxRQUFRLEVBQUUsSUFBSSxnQkFBUSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRTtTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFHRixNQUFNLG9CQUFvQixHQUFHLENBQzVCLEtBQWEsRUFDYixNQUFlLEVBQ2YsS0FBaUIsRUFDaEIsRUFBRTtRQUNGLElBQUksUUFBUSxHQUFHLDBCQUFrQixDQUFDLFlBQVksRUFBRTthQUNoRCxXQUFXLENBQUMsSUFBSSx3QkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQ25ELE1BQU0sQ0FBQyxJQUFJLDRCQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNwRCxNQUFNLENBQUMsSUFBSSxvQkFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFbEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDM0IsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyRTtRQUVELE9BQU8sSUFBSSxtQkFBVyxDQUFDO1lBQ3RCLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLGdCQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2hDLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFO1NBQ3RCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQTtJQUVGLEtBQUssVUFBVSxZQUFZLENBQUMsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFVO1FBQ2pELE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWtCLEVBQUUsRUFBRTtRQUM3Qyx3REFBd0Q7UUFDbkQsMERBQTBEO1FBQzFELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtTQUNuQztRQUVELE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLEdBQUcsUUFBUSxFQUFFO1lBQ2pDLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDcEM7UUFDRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFELG9CQUFvQjtRQUNwQix1Q0FBdUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzlCLENBQUMsQ0FBQTtJQUVELEtBQUssVUFBVSxTQUFTLENBQUMsRUFBZTtRQUN2QyxJQUFJLEdBQUcsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckQsSUFBSSxHQUFHLEVBQUU7WUFDUixNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3JCO1FBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVsRCxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUV0RCxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPO1FBQ0wsWUFBWSxFQUFFLGlCQUFpQjtRQUMvQixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsa0JBQWtCO1FBQ25CLG9CQUFvQjtRQUNuQixLQUFLLENBQUMsT0FBTyxDQUNYLE9BQXlCO1lBRXpCLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBTyxDQUFDLElBQUksZUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFFakQsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTVCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQ0osS0FBSyxDQUFDLG1CQUFtQixDQUN4QixPQUF5QixFQUN6QixZQUFzQjtZQUV0QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFaEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVsRSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDekIsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksc0JBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTthQUN2SDtZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ1osQ0FBQztRQUNFLEtBQUssQ0FBQyx1QkFBdUIsQ0FDM0IsTUFBZSxFQUNmLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixLQUFrQjtZQUVsQixNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ3ZELE1BQU0sRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUU3QyxPQUFPLE1BQU0sU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsZUFBZSxDQUNuQixNQUFlLEVBQ2YsV0FBbUIsRUFDbkIsRUFBVSxFQUNWLEtBQWtCO1lBRWxCLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdFLE1BQU0sRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUUxQyxPQUFPLE1BQU0sU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxLQUFLLENBQUMsb0JBQW9CLENBQ3hCLE1BQWUsRUFDZixXQUFtQixFQUNuQixFQUFVLEVBQ1YsSUFBYTtZQUViLE1BQU0sR0FBRyxHQUFHLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9FLE1BQU0sRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUUxQyxPQUFPLE1BQU0sU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxLQUFLLENBQUMsa0JBQWtCLENBQ3RCLE1BQWUsRUFDZixFQUFVLEVBQ1YsS0FBYTtZQUViLE1BQU0sR0FBRyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkUsTUFBTSxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRTFDLE9BQU8sTUFBTSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELG9CQUFvQjtRQUNwQixLQUFLLENBQUMsWUFBWSxDQUNoQixNQUFlLEVBQ2YsSUFBWSxFQUNaLE1BQWMsRUFDZCxZQUFxQixLQUFLLEVBQzFCLFVBQW1CLEtBQUssRUFDeEIsMkJBQW9DLEtBQUs7WUFFekMsTUFBTSxHQUFHLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixDQUFDLENBQUM7WUFFN0YsTUFBTSxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUNYLEtBQWMsRUFDZCxJQUFrQjtZQUVsQixNQUFNLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFekQsTUFBTSxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPO1FBQ1YsWUFBWTtRQUNaLEtBQUssQ0FBQyxXQUFXLENBQ2YsT0FBZ0IsRUFDaEIsS0FBYSxFQUNiLE1BQWUsRUFDWixLQUFpQjtZQUVqQixNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRTFELE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsZ0JBQWdCLENBQ2YsUUFBcUI7WUFFckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3pCLE1BQU0sS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDeEM7WUFDRCxPQUFPO2dCQUNOLDhCQUE4QjtnQkFDOUIsV0FBVyxFQUFFLGtCQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELElBQUksRUFBRSxrQkFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNDLENBQUE7UUFDRixDQUFDO1FBQ0QsS0FBSyxDQUFDLGdCQUFnQixDQUNyQixJQUFnQjtZQUVoQixNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFNUMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUN6QixNQUFNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ2pDO1lBRUQsT0FBTyxrQkFBTSxDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQztLQUNDLENBQUM7QUFDSixDQUFDLENBQUM7QUExYlcsUUFBQSxtQkFBbUIsdUJBMGI5QjtBQUVGLFNBQVMsYUFBYSxDQUFDLE9BQTJCO0lBQ2hELEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1FBQ3pCLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QixTQUFTO1NBQ1Y7UUFDRCxNQUFNLElBQUksR0FBSSxHQUFHLENBQUMsSUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMxRCxTQUFTO1NBQ1Y7UUFFRCxJQUFJO1lBQ0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzlCO1FBQUMsT0FBTyxxQkFBcUIsRUFBRTtZQUM5QixTQUFTO1NBQ1Y7S0FDRjtJQUVELE1BQU0sS0FBSyxDQUFDLG1CQUFtQixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZELENBQUMifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQXdKRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBS0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLElBQUkscUJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLHFCQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFX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 \ No newline at end of file diff --git a/dist/helpers/polkadot.js b/dist/helpers/polkadot.js index 7c4c1bcb9..dbf0e8a7f 100644 --- a/dist/helpers/polkadot.js +++ b/dist/helpers/polkadot.js @@ -13,17 +13,34 @@ const bignumber_js_1 = __importDefault(require("bignumber.js")); const chain_1 = require("./chain"); const types_1 = require("@polkadot/types"); const encoding_1 = require("validator/dist/encoding"); -const LUT_HEX_4b = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']; +const LUT_HEX_4b = [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", +]; const LUT_HEX_8b = new Array(0x100); for (let n = 0; n < 0x100; n++) { - LUT_HEX_8b[n] = `${LUT_HEX_4b[(n >>> 4) & 0xF]}${LUT_HEX_4b[n & 0xF]}`; + LUT_HEX_8b[n] = `${LUT_HEX_4b[(n >>> 4) & 0xf]}${LUT_HEX_4b[n & 0xf]}`; } /** * @internal */ // End Pre-Init function toHex(buffer) { - let out = ''; + let out = ""; for (let idx = 0, edx = buffer.length; idx < edx; idx++) { out += LUT_HEX_8b[buffer[idx]]; } @@ -36,13 +53,13 @@ async function basePolkadotHelper(node_uri) { const base = { async balance(address) { const res = await api.query.system.account(address); - return new bignumber_js_1.default(res['data']['free'].toString()); - } + return new bignumber_js_1.default(res["data"]["free"].toString()); + }, }; return [base, api]; } function hasAddrField(ob) { - return ob.hasOwnField('address') && typeof ob.address == "string"; + return ob.hasOwnField("address") && typeof ob.address == "string"; } async function resolve_event_id(ext, filter, signer, options) { let call; @@ -58,7 +75,7 @@ async function resolve_event_id(ext, filter, signer, options) { if (!status.isInBlock) { return; } - const ev = events.find(e => e.event.method == filter); + const ev = events.find((e) => e.event.method == filter); if (ev === undefined) { rej(); return; @@ -92,7 +109,7 @@ const polkadotPalletHelperFactory = async (node_uri) => { return [nft_id.toString(), data]; } async function getLockedNft(hash) { - const com = await api.query.nft.lockedCommodities(hash); + const com = (await api.query.nft.lockedCommodities(hash)); if (com.isNone) { return undefined; } @@ -105,9 +122,12 @@ const polkadotPalletHelperFactory = async (node_uri) => { }, async balanceWrappedBatch(address, chain_nonces) { // Multi query with address, chain_nonce - const res = await api.query.erc1155.balances.multi(chain_nonces.map(c => [address, c])); + const res = await api.query.erc1155.balances.multi(chain_nonces.map((c) => [address, c])); // Convert list of balances to [chain_nonce, balance] - return new Map(res.map((b, i) => [chain_nonces[i], b.isSome ? new bignumber_js_1.default(b.unwrap().toString()) : new bignumber_js_1.default(0)])); + return new Map(res.map((b, i) => [ + chain_nonces[i], + b.isSome ? new bignumber_js_1.default(b.unwrap().toString()) : new bignumber_js_1.default(0), + ])); }, async transferNativeToForeign(sender, chain_nonce, to, value) { return await resolve_event_id(api.tx.freezer.send(chain_nonce, to, value.toString()), "TransferFrozen", sender.sender, sender.options); @@ -133,10 +153,12 @@ const polkadotPalletHelperFactory = async (node_uri) => { else { addr = owner.sender.toString(); } - await api.tx.sudo.sudo(api.tx.nft.mint(addr, toHex(info))).signAndSend(sudoSigner, { nonce: -1 }); + await api.tx.sudo + .sudo(api.tx.nft.mint(addr, toHex(info))) + .signAndSend(sudoSigner, { nonce: -1 }); }, async listNft(owner) { - const com = await api.query.nft.commoditiesForAccount(owner.toString()); + const com = (await api.query.nft.commoditiesForAccount(owner.toString())); if (com.isNone) { return new Map(); } @@ -148,7 +170,7 @@ const polkadotPalletHelperFactory = async (node_uri) => { const packed = encoding_1.NftPacked.deserializeBinary(Uint8Array.from(raw_data)); return { chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8() + data: packed.getData_asU8(), }; }, async decodeUrlFromRaw(data) { @@ -193,4 +215,4 @@ const runtimeTypes = { validators: "BTreeSet", }, }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9sa2Fkb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9wb2xrYWRvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7O0dBR0c7QUFDSCx1Q0FBZ0U7QUFHaEUsZ0VBQXFDO0FBQ3JDLG1DQWVpQjtBQUdqQiwyQ0FBeUU7QUFDekUsc0RBQW1EO0FBMENuRCxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3BHLE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDOUIsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztDQUN4RTtBQUNEOztHQUVHO0FBQ0gsZUFBZTtBQUNmLFNBQWdCLEtBQUssQ0FBQyxNQUFrQjtJQUN0QyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3ZELEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDaEM7SUFDRCxPQUFP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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9sa2Fkb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9wb2xrYWRvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7O0dBR0c7QUFDSCx1Q0FBZ0U7QUFPaEUsZ0VBQXFDO0FBQ3JDLG1DQWVpQjtBQU1qQiwyQ0FBMkU7QUFDM0Usc0RBQW9EO0FBeUNwRCxNQUFNLFVBQVUsR0FBRztJQUNqQixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0NBQ0osQ0FBQztBQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDOUIsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztDQUN4RTtBQUNEOztHQUVHO0FBQ0gsZUFBZTtBQUNmLFNBQWdCLEtBQUssQ0FBQyxNQUFrQjtJQUN0QyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3ZELEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDaEM7SUFDRCxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDcEIsQ0FBQztBQU5ELHNCQU1DO0FBRUQsS0FBSyxVQUFVLGtCQUFrQixDQUMvQixRQUFnQjtJQUVoQixNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxnQkFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUV2RSxNQUFNLElBQUksR0FBRztRQUNYLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBaUI7WUFDN0IsTUFBTSxHQUFHLEdBQVEsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFekQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztLQUNGLENBQUM7SUFFRixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxFQUFPO0lBQzNCLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDO0FBQ3BFLENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLEdBQXVDLEVBQ3ZDLE1BQWMsRUFDZCxNQUFxQixFQUNyQixPQUFnQztJQUVoQyxJQUFJLElBQThDLENBQUM7SUFDbkQsSUFBSSxPQUFPLEVBQUU7UUFDWCxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25CLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBZSxFQUFFLEVBQUUsQ0FDL0IsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUM7U0FBTTtRQUNMLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBZSxFQUFFLEVBQUUsQ0FDL0IsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ3BEO0lBRUQsTUFBTSxHQUFHLEdBQWdDLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2hFLElBQUksQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3JCLE9BQU87YUFDUjtZQUVELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRTtnQkFDcEIsR0FBRyxFQUFFLENBQUM7Z0JBQ04sT0FBTzthQUNSO1lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxzQkFBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDN0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUU5QixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSTtRQUNGLE9BQU8sTUFBTSxHQUFHLENBQUM7S0FDbEI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRTtZQUM3QyxNQUFNLDJCQUFtQixFQUFFLENBQUM7U0FDN0I7UUFDRCxNQUFNLENBQUMsQ0FBQztLQUNUO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSSxNQUFNLDJCQUEyQixHQUVILEtBQUssRUFBRSxRQUFnQixFQUFFLEVBQUU7SUFDOUQsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksYUFBTyxFQUFFLENBQUM7SUFDOUIsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFFbEMsU0FBUyxhQUFhLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFnQjtRQUNsRCxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLFVBQVUsWUFBWSxDQUFDLElBQVU7UUFDcEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFrQixDQUFDO1FBQzNFLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUNkLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkMsT0FBTyxHQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELHVDQUNLLElBQUksS0FDUCxLQUFLLENBQUMsY0FBYyxDQUNsQixPQUFpQixFQUNqQixXQUFtQjtZQUVuQixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbkUsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsT0FBaUIsRUFDakIsWUFBc0I7WUFFdEIsd0NBQXdDO1lBQ3hDLE1BQU0sR0FBRyxHQUFrQixNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQy9ELFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3RDLENBQUM7WUFFRixxREFBcUQ7WUFDckQsT0FBTyxJQUFJLEdBQUcsQ0FDWixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBYyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzdCLFlBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDO2FBQ25FLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztRQUNELEtBQUssQ0FBQyx1QkFBdUIsQ0FDM0IsTUFBYyxFQUNkLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixLQUFrQjtZQUVsQixPQUFPLE1BQU0sZ0JBQWdCLENBQzNCLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUN0RCxnQkFBZ0IsRUFDaEIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsT0FBTyxDQUNmLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsTUFBYyxFQUNkLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixLQUFrQjtZQUVsQixPQUFPLE1BQU0sZ0JBQWdCLENBQzNCLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUNqRSxpQkFBaUIsRUFDakIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsT0FBTyxDQUNmLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixNQUFjLEVBQ2QsV0FBbUIsRUFDbkIsRUFBVSxFQUNWLE1BQVk7WUFFWixPQUFPLE1BQU0sZ0JBQWdCLENBQzNCLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUMvQyxzQkFBc0IsRUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsT0FBTyxDQUNmLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixNQUFjLEVBQ2QsRUFBVSxFQUNWLE1BQVk7WUFFWixPQUFPLE1BQU0sZ0JBQWdCLENBQzNCLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFDN0MsdUJBQXVCLEVBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLE9BQU8sQ0FDZixDQUFDO1FBQ0osQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBYSxFQUFFLElBQWdCO1lBQzNDLElBQUksSUFBSSxDQUFDO1lBQ1QscUJBQXFCO1lBQ3JCLElBQUksT0FBTyxLQUFLLENBQUMsTUFBTSxJQUFJLFFBQVEsRUFBRTtnQkFDbkMsSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDckI7aUJBQU0sSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNyQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7YUFDN0I7aUJBQU07Z0JBQ0wsSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDaEM7WUFFRCxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSTtpQkFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEMsV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBZTtZQUMzQixNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQ3BELEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDakIsQ0FBa0MsQ0FBQztZQUNwQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2QsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdEQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixDQUFDO1FBQ0QsWUFBWTtRQUNaLGdCQUFnQixDQUFDLFFBQW9CO1lBQ25DLE1BQU0sTUFBTSxHQUFHLG9CQUFTLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBRXRFLE9BQU87Z0JBQ0wsV0FBVyxFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUU7Z0JBQ25DLElBQUksRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFO2FBQzVCLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQWdCO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksZ0JBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDeEIsTUFBTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUNqQztZQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLElBQ0Q7QUFDSixDQUFDLENBQUM7QUE5SVcsUUFBQSwyQkFBMkIsK0JBOEl0QztBQUVGLE1BQU0sWUFBWSxHQUFrQjtJQUNsQyxRQUFRLEVBQUUsTUFBTTtJQUNoQixPQUFPLEVBQUUsS0FBSztJQUNkLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGFBQWEsRUFBRSxPQUFPO0lBQ3RCLEtBQUssRUFBRSxNQUFNO0lBQ2IsT0FBTyxFQUFFLE9BQU87SUFDaEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsV0FBVyxFQUFFO1FBQ1gsS0FBSyxFQUFFO1lBQ0wsOEJBQThCO1lBQzlCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsV0FBVztnQkFDZixLQUFLLEVBQUUsU0FBUzthQUNqQjtZQUNELDhCQUE4QjtZQUM5QixPQUFPLEVBQUU7Z0JBQ1AsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFNBQVMsRUFBRSxPQUFPO2FBQ25CO1lBQ0QsOEJBQThCO1lBQzlCLGVBQWUsRUFBRTtnQkFDZixFQUFFLEVBQUUsV0FBVztnQkFDZixLQUFLLEVBQUUsU0FBUzthQUNqQjtTQUNGO0tBQ0Y7SUFDRCxVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUsYUFBYTtRQUNyQixVQUFVLEVBQUUscUJBQXFCO0tBQ2xDO0NBQ0YsQ0FBQyJ9 \ No newline at end of file diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts new file mode 100644 index 000000000..7a4916876 --- /dev/null +++ b/dist/helpers/tron.d.ts @@ -0,0 +1,20 @@ +import { BigNumber } from "bignumber.js"; +import { BalanceCheck, BatchWrappedBalanceCheck, DecodeRawNft, DecodeWrappedNft, MintNft, TransferForeign, TransferNftForeign, UnfreezeForeign, UnfreezeForeignNft, WrappedBalanceCheck } from "./chain"; +import { TronWeb } from "tronweb"; +import { EthNftInfo, MintArgs } from "./web3"; +import { Interface } from "ethers/lib/utils"; +export declare type BaseTronHelper = BalanceCheck & MintNft & { + /** + * + * Deploy an ERC1155 smart contract + * + * @argument owner Owner of this smart contract + * @returns Address of the deployed smart contract + */ + deployErc1155(owner: string): Promise; +}; +export declare type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { + nftUri(info: EthNftInfo): Promise; +}; +export declare function baseTronHelperFactory(provider: TronWeb): Promise; +export declare function tronHelperFactory(provider: TronWeb, erc1155_addr: string, minter_addr: string, minter_abi: Interface): Promise; diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js new file mode 100644 index 000000000..a45478c86 --- /dev/null +++ b/dist/helpers/tron.js @@ -0,0 +1,155 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tronHelperFactory = exports.baseTronHelperFactory = void 0; +const bignumber_js_1 = require("bignumber.js"); +const fakeERC1155_json_1 = require("../fakeERC1155.json"); +const bignumber_1 = require("@ethersproject/bignumber/lib/bignumber"); +const fakeERC721_json_1 = require("../fakeERC721.json"); +const js_base64_1 = require("js-base64"); +const encoding_1 = require("validator/dist/encoding"); +const ERC1155_contract = __importStar(require("../XPNet.json")); +async function baseTronHelperFactory(provider) { + const setSigner = (signer) => { + return provider.setPrivateKey(signer); + }; + return { + async mintNft(owner, options) { + setSigner(owner); + const erc = await provider.contract(fakeERC1155_json_1.abi, options.contract); + await erc.mint(owner, bignumber_1.BigNumber.from(options.token.toString()), 1).send(); + await erc.setURI(options.token, options.uri).send(); + }, + async balance(address) { + const balance = await provider.trx.getBalance(address); + return new bignumber_js_1.BigNumber(balance); + }, + async deployErc1155(owner) { + setSigner(owner); + const contract = await provider.contract().new({ + abi: fakeERC1155_json_1.abi, + bytecode: ERC1155_contract.bytecode, + }); + return contract.address; + }, + }; +} +exports.baseTronHelperFactory = baseTronHelperFactory; +async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi) { + const base = await baseTronHelperFactory(provider); + const erc1155 = await provider.contract(fakeERC1155_json_1.abi, erc1155_addr); + const minter = await provider.contract(minter_abi, minter_addr); + const setSigner = (signer) => { + return provider.setPrivateKey(signer); + }; + async function extractTxn(hash) { + const evs = await provider.getEventByTransactionID(hash); + const ev = evs.find((e) => (e === null || e === void 0 ? void 0 : e.contract_address) == minter_addr); + const action_id = ev.result["action_id"].toString(); + return [hash, action_id]; + } + const nftUri = async (info) => { + if (info.contract_type == "ERC721") { + const erc = await provider.contract(fakeERC721_json_1.abi, info.contract); + return await erc.tokenURI(info.token).call(); + } + else { + const erc = await provider.contract(fakeERC1155_json_1.abi, info.contract); + return await erc.uri(info.token).call(); + } + }; + function contractTypeFromNftKind(kind) { + return kind === encoding_1.NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; + } + return Object.assign(Object.assign({}, base), { async decodeUrlFromRaw(data) { + const packed = encoding_1.NftEthNative.deserializeBinary(data); + const nft_info = { + contract_type: contractTypeFromNftKind(packed.getNftKind()), + contract: packed.getContractAddr(), + token: bignumber_1.BigNumber.from(packed.getId()), + }; + return await nftUri(nft_info); + }, + decodeWrappedNft(raw_data) { + const u8D = js_base64_1.Base64.toUint8Array(raw_data); + const packed = encoding_1.NftPacked.deserializeBinary(u8D); + return { + chain_nonce: packed.getChainNonce(), + data: packed.getData_asU8(), + }; + }, nftUri: nftUri, async transferNativeToForeign(sender, chain_nonce, to, value) { + setSigner(sender); + let res = await minter.freeze(chain_nonce, to).send({ callValue: value }); + return await extractTxn(res.hash); + }, + async unfreezeWrapped(sender, chain_nonce, to, value) { + setSigner(sender); + const res = await minter.withdraw(chain_nonce, to, value).send(); + return await extractTxn(res.hash); + }, + async unfreezeWrappedNft(sender, to, id) { + setSigner(sender); + const res = await minter.withdraw_nft(to, id).send(); + return await extractTxn(res.hash); + }, + async transferNftToForeign(sender, chain_nonce, to, id) { + let txr; + let ev; + const call_data = Buffer.concat([ + Buffer.from(new Int32Array([0]).buffer), + Buffer.from(new Int32Array([chain_nonce]).buffer).reverse(), + Buffer.from(to, "utf-8"), + ]); + setSigner(sender); + if (id.contract_type == "ERC721") { + ev = "TransferErc721"; + const erc = await provider.contract(fakeERC721_json_1.abi, id.contract); + await erc + .safeTransferFrom(sender, minter_addr, id.token, call_data) + .send(); + } + else { + ev = "TransferErc1155"; + const erc = await provider.contract(fakeERC1155_json_1.abi, id.contract); + txr = await erc + .safeTransferFrom(sender, minter_addr, id.token, bignumber_1.BigNumber.from(1), call_data) + .send(); + } + ev.toString(); + return await extractTxn(txr.hash); + }, + async balanceWrappedBatch(address, chain_nonces) { + const res = new Map(); + const balance = await erc1155 + .balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces) + .call(); + balance.map((e, i) => { + res.set(chain_nonces[i], new bignumber_js_1.BigNumber(e.toString())); + }); + return res; + }, + async balanceWrapped(address, chain_nonce) { + const bal = await erc1155.balanceOf(address, chain_nonce).call(); + return new bignumber_js_1.BigNumber(bal.toString()); + } }); +} +exports.tronHelperFactory = tronHelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBRTVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQTBCM0MsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFpQjtJQUVqQixNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ25DLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLHFCQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0RSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEQsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZTtZQUMzQixNQUFNLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sSUFBSSx3QkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFD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 \ No newline at end of file diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index 672ec4ea1..5708ee060 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -4,7 +4,7 @@ */ import BigNumber from "bignumber.js"; import { TransferForeign, UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, TransferNftForeign, WrappedBalanceCheck, BatchWrappedBalanceCheck, DecodeWrappedNft, DecodeRawNft, MintNft } from "./chain"; -import { Signer, BigNumber as EthBN } from 'ethers'; +import { Signer, BigNumber as EthBN } from "ethers"; import { TransactionReceipt, Provider } from "@ethersproject/providers"; import { Interface } from "ethers/lib/utils"; declare type EasyBalance = string | number | EthBN; @@ -55,8 +55,8 @@ MintNft & { */ export declare type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { /** - * Get the uri of an nft given nft info - */ + * Get the uri of an nft given nft info + */ nftUri(info: EthNftInfo): Promise; }; /** diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 6b9ac8d34..6ebea3bde 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -61,7 +61,7 @@ async function baseWeb3HelperFactory(provider) { const erc1155 = new ethers_1.Contract(contract, erc1155_abi, contract_owner); await erc1155.mint(owner, ethers_1.BigNumber.from(token.toString()), 1); await erc1155.setURI(token, uri); - } + }, }; } exports.baseWeb3HelperFactory = baseWeb3HelperFactory; @@ -110,39 +110,39 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr return new Map(bals.map((v, i) => [chain_nonces[i], new bignumber_js_1.default(v.toString())])); }, async transferNativeToForeign(sender, chain_nonce, to, value) { - const res = await signedMinter(sender) - .freeze(chain_nonce, to, { value }); - return await extractTxn(res, 'Transfer'); + const res = await signedMinter(sender).freeze(chain_nonce, to, { value }); + return await extractTxn(res, "Transfer"); }, async transferNftToForeign(sender, chain_nonce, to, id) { let txr; let ev; const calldata = Buffer.concat([ - Buffer.from((new Int32Array([0])).buffer), - Buffer.from((new Int32Array([chain_nonce])).buffer).reverse(), - Buffer.from(to, "utf-8") + Buffer.from(new Int32Array([0]).buffer), + Buffer.from(new Int32Array([chain_nonce]).buffer).reverse(), + Buffer.from(to, "utf-8"), ]); if (id.contract_type == "ERC721") { ev = "TransferErc721"; const erc = new ethers_1.Contract(id.contract, fakeERC721_json_1.abi, w3); - txr = await erc.connect(sender)['safeTransferFrom(address,address,uint256,bytes)'](await sender.getAddress(), minter_addr, id.token, calldata); + txr = await erc + .connect(sender)["safeTransferFrom(address,address,uint256,bytes)"](await sender.getAddress(), minter_addr, id.token, calldata); } else { ev = "TransferErc1155"; const erc = new ethers_1.Contract(id.contract, erc1155_abi, w3); - txr = await erc.connect(sender).safeTransferFrom(await sender.getAddress(), minter_addr, id.token, ethers_1.BigNumber.from(1), calldata); + txr = await erc + .connect(sender) + .safeTransferFrom(await sender.getAddress(), minter_addr, id.token, ethers_1.BigNumber.from(1), calldata); } return await extractTxn(txr, ev); }, async unfreezeWrapped(sender, chain_nonce, to, value) { - const res = await signedMinter(sender) - .withdraw(chain_nonce, to, value); - return await extractTxn(res, 'Unfreeze'); + const res = await signedMinter(sender).withdraw(chain_nonce, to, value); + return await extractTxn(res, "Unfreeze"); }, async unfreezeWrappedNft(sender, to, id) { - const res = await signedMinter(sender) - .withdraw_nft(to, id); - return await extractTxn(res, 'UnfreezeNft'); + const res = await signedMinter(sender).withdraw_nft(to, id); + return await extractTxn(res, "UnfreezeNft"); }, nftUri, decodeWrappedNft(raw_data) { @@ -150,7 +150,7 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr const packed = encoding_1.NftPacked.deserializeBinary(u8D); return { chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8() + data: packed.getData_asU8(), }; }, async decodeUrlFromRaw(data) { @@ -158,10 +158,10 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr const nft_info = { contract_type: contractTypeFromNftKind(packed.getNftKind()), contract: packed.getContractAddr(), - token: ethers_1.BigNumber.from(packed.getId()) + token: ethers_1.BigNumber.from(packed.getId()), }; return await nftUri(nft_info); } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQUVyQyxtQ0FBK0U7QUFFL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsZ0VBQWtEO0FBQ2xELHNEQUFnRTtBQUNoRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMzQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0FBQ25FLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUMxQyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHNCQUFXLENBQUMsQ0FBQztJQUUvQyxPQUFPO1FBQ0EsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQ3pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNQLEtBQUssQ0FBQyxhQUFhLENBQ2xCLEtBQWE7WUFFYixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RSxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUV4QyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDekIsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQ1gsY0FBc0IsRUFDdkIsRUFDQyxRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssRUFDTCxHQUFHLEVBQ087WUFFWCxNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFRLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNwRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGtCQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsQ0FBQztLQUNELENBQUE7QUFDRixDQUFDO0FBbkNELHNEQW1DQztBQUVEOzs7Ozs7R0FNRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FDdEMsUUFBa0IsRUFDZixXQUFtQixFQUNuQixVQUFxQixFQUN4QixZQUFvQjtJQUVqQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFFcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBUSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFNUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHNCQUFXLENBQUMsQ0FBQztJQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFRLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV6RCxTQUFTLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUosS0FBSyxVQUFVLFVBQVUsQ0FBQyxHQUF3QixFQUFFLE9BQWU7UUFDbEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtZQUN0QixNQUFNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxNQUFNLFNBQVMsR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssVUFBVSxNQUFNLENBQ3BCLElBQWdCO1FBRWhCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxRQUFRLEVBQUU7WUFDbkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUscUJBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4RCxPQUFPLE1BQU0sR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEM7YUFBTTtZQUNOLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6RCxPQUFPLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDaEM7SUFDRixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVoRCx1Q0FDQyxJQUFJLEtBQ1AsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFlLEVBQUUsV0FBbUI7WUFDeEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUUxRCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLG1CQUFtQixDQUFDLE9BQWUsRUFBRSxZQUFzQjtZQUNoRSxNQUFNLElBQUksR0FBWSxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFFM0csT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7UUFDSyxLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBYyxFQUFFLFdBQW1CLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1lBQ3RHLE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sQ0FBQztpQkFDcEMsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sTUFBTSxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDUCxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBYyxFQUFFLFdBQW1CLEVBQUUsRUFBVSxFQUFFLEVBQWM7WUFDekYsSUFBSSxHQUFHLENBQUM7WUFDUixJQUFJLEVBQUUsQ0FBQztZQUNQLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUU7Z0JBQzdELE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQzthQUN4QixDQUFDLENBQUM7WUFFSCxJQUFJLEVBQUUsQ0FBQyxhQUFhLElBQUksUUFBUSxFQUFFO2dCQUNqQyxFQUFFLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQ3RCLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLHFCQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RELEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsaURBQWlELENBQUMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQzthQUMvSTtpQkFBTTtnQkFDTixFQUFFLEdBQUcsaUJBQWlCLENBQUM7Z0JBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdkQsR0FBRyxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxrQkFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUM1SDtZQUVELE9BQU8sTUFBTSxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDSyxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQWMsRUFBRSxXQUFtQixFQUFFLEVBQVUsRUFBRSxLQUFrQjtZQUNyRixNQUFNLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxNQUFNLENBQUM7aUJBQ2pDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRS9DLE9BQU8sTUFBTSxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDUCxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBYyxFQUFFLEVBQVUsRUFBRSxFQUFhO1lBQ2pFLE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sQ0FBQztpQkFDcEMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUV2QixPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsTUFBTTtRQUNOLGdCQUFnQixDQUNmLFFBQWdCO1lBRWhCLE1BQU0sR0FBRyxHQUFHLGtCQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sTUFBTSxHQUFHLG9CQUFTLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFHaEQsT0FBTztnQkFDTixXQUFXLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDbkMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEVBQUU7YUFDM0IsQ0FBQTtRQUNGLENBQUM7UUFDRCxLQUFLLENBQUMsZ0JBQWdCLENBQ3JCLElBQWdCO1lBRWhCLE1BQU0sTUFBTSxHQUFHLHVCQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEQsTUFBTSxRQUFRLEdBQUc7Z0JBQ2hCLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzNELFFBQVEsRUFBRSxNQUFNLENBQUMsZUFBZSxFQUFFO2dCQUNsQyxLQUFLLEVBQUUsa0JBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2pDLENBQUE7WUFHRCxPQUFPLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLENBQUMsSUFDRTtBQUNMLENBQUM7QUF4SEQsOENBd0hDIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBK0U7QUFNL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsZ0VBQWtEO0FBQ2xELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHNCQUFXLENBQUMsQ0FBQztJQUUvQyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBYTtZQUMvQixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RSxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUV4QyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDMUIsQ0FBQztRQUNELEtBQUssQ0FB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 \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index ff67f35ee..ede12fd64 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -2,4 +2,5 @@ export * from "./helpers/chain"; export * from "./helpers/polkadot"; export * from "./helpers/elrond"; export * from "./helpers/web3"; +export * from "./helpers/tron"; export * from "./socket"; diff --git a/dist/index.js b/dist/index.js index db333d15b..e7cc1e4b9 100644 --- a/dist/index.js +++ b/dist/index.js @@ -14,5 +14,6 @@ __exportStar(require("./helpers/chain"), exports); __exportStar(require("./helpers/polkadot"), exports); __exportStar(require("./helpers/elrond"), exports); __exportStar(require("./helpers/web3"), exports); +__exportStar(require("./helpers/tron"), exports); __exportStar(require("./socket"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLDJDQUF5QiJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwyQ0FBeUIifQ== \ No newline at end of file diff --git a/dist/socket.js b/dist/socket.js index adf6bde55..fe20cc5f8 100644 --- a/dist/socket.js +++ b/dist/socket.js @@ -31,7 +31,7 @@ function txResBuf() { unsetAction(chain_id, action_id) { requireChain(chain_id); inner[chain_id][action_id] = undefined; - } + }, }; } /** @@ -61,12 +61,12 @@ function txnSocketHelper(uri, options) { buf.unsetAction(chain, action_id); return hash; } - const hashP = new Promise(r => { + const hashP = new Promise((r) => { buf.setResolver(chain, action_id, r); }); return await hashP; - } + }, }; } exports.txnSocketHelper = txnSocketHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBcUU7QUFrQ3JFLFNBQVMsUUFBUTtJQUNoQixNQUFNLEtBQUssR0FBa0IsRUFBRSxDQUFDO0lBRWhDLE1BQU0sWUFBWSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUFFO1FBQ3pDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNsQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ3JCO0lBQ0YsQ0FBQyxDQUFBO0lBRUQsT0FBTztRQUNOLFdBQVcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCOztZQUM5QyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsT0FBTyxNQUFBLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsMENBQUUsT0FBTyxDQUFDO1FBQzVDLENBQUM7UUFDRCxXQUFXLENBQUMsUUFBZ0IsRUFBRSxTQUFpQixFQUFFLFFBQWdDO1lBQ2hGLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDcEQsQ0FBQztRQUNELFdBQVcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCOztZQUM5QyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsT0FBTyxNQUFBLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsMENBQUUsU0FBUyxDQUFDO1FBQzlDLENBQUM7UUFDRCxXQUFXLENBQUMsUUFBZ0IsRUFBRSxTQUFpQixFQUFFLEdBQVc7WUFDM0QsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXZCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsV0FBVyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7WUFDOUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXZCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDeEMsQ0FBQztLQUNELENBQUE7QUFDRixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsR0FBVyxFQUFFLE9BQWlEO0lBQzFGLE1BQU0sTUFBTSxHQUFHLHFCQUFFLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLE1BQU0sR0FBRyxHQUFhLFFBQVEsRUFBRSxDQUFDO0lBRTlCLFNBQVMsU0FBUyxDQUFDLEtBQWEsRUFBRSxFQUFVLEVBQUUsSUFBWTtRQUM1RCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDMUIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pDLE9BQU87U0FDUDtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBRSxDQUNMLG1CQUFtQixFQUNuQixDQUFDLEtBQWEsRUFBRSxTQUFpQixFQUFFLElBQVksRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FDSixDQUFDO0lBR0YsT0FBTztRQUNULEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBYSxFQUFFLFNBQWlCO1lBQ2hELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQy9DLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDdkIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDO2FBQ1o7WUFFRCxNQUFNLEtBQUssR0FBb0IsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzlDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sTUFBTSxLQUFLLENBQUM7UUFDcEIsQ0FBQztLQUNHLENBQUE7QUFDTixDQUFDO0FBcENELDBDQW9DQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBcUU7QUEyQ3JFLFNBQVMsUUFBUTtJQUNmLE1BQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7SUFFaEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsV0FBVyxDQUNULFFBQWdCLEVBQ2hCLFNBQWlCOztZQUVqQixZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsT0FBTyxNQUFBLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsMENBQUUsT0FBTyxDQUFDO1FBQzdDLENBQUM7UUFDRCxXQUFXLENBQ1QsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsUUFBZ0M7WUFFaEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXZCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsV0FBVyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7O1lBQzdDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QixPQUFPLE1BQUEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQywwQ0FBRSxTQUFTLENBQUM7UUFDL0MsQ0FBQztRQUNELFdBQVcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCLEVBQUUsR0FBVztZQUMxRCxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2xELENBQUM7UUFDRCxXQUFXLENBQUMsUUFBZ0IsRUFBRSxTQUFpQjtZQUM3QyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN6QyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FDN0IsR0FBVyxFQUNYLE9BQWlEO0lBRWpELE1BQU0sTUFBTSxHQUFHLHFCQUFFLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sR0FBRyxHQUFhLFFBQVEsRUFBRSxDQUFDO0lBRWpDLFNBQVMsU0FBUyxDQUFDLEtBQWEsRUFBRSxFQUFVLEVBQUUsSUFBWTtRQUN4RCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pDLE9BQU87U0FDUjtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQUUsQ0FDUCxtQkFBbUIsRUFDbkIsQ0FBQyxLQUFhLEVBQUUsU0FBaUIsRUFBRSxJQUFZLEVBQUUsRUFBRTtRQUNqRCxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQ0YsQ0FBQztJQUVGLE9BQU87UUFDTCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWEsRUFBRSxTQUFpQjtZQUMvQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMvQyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ3RCLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNsQyxPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsTUFBTSxLQUFLLEdBQW9CLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQy9DLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sTUFBTSxLQUFLLENBQUM7UUFDckIsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBdENELDBDQXNDQyJ9 \ No newline at end of file diff --git a/src/fakeERC1155.json b/src/fakeERC1155.json index 3cfde9c12..50e1189f7 100644 --- a/src/fakeERC1155.json +++ b/src/fakeERC1155.json @@ -1,12 +1,14 @@ { - "abi": [{ + "abi": [ + { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, - "inputs": [{ + "inputs": [ + { "indexed": true, "internalType": "address", "name": "account", @@ -30,7 +32,8 @@ }, { "anonymous": false, - "inputs": [{ + "inputs": [ + { "indexed": true, "internalType": "address", "name": "previousOwner", @@ -48,7 +51,8 @@ }, { "anonymous": false, - "inputs": [{ + "inputs": [ + { "indexed": true, "internalType": "address", "name": "operator", @@ -84,7 +88,8 @@ }, { "anonymous": false, - "inputs": [{ + "inputs": [ + { "indexed": true, "internalType": "address", "name": "operator", @@ -120,7 +125,8 @@ }, { "anonymous": false, - "inputs": [{ + "inputs": [ + { "indexed": false, "internalType": "string", "name": "value", @@ -137,7 +143,8 @@ "type": "event" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "account", "type": "address" @@ -149,16 +156,19 @@ } ], "name": "balanceOf", - "outputs": [{ - "internalType": "uint256", - "name": "", - "type": "uint256" - }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address[]", "name": "accounts", "type": "address[]" @@ -170,16 +180,19 @@ } ], "name": "balanceOfBatch", - "outputs": [{ - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }], + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "from", "type": "address" @@ -201,7 +214,8 @@ "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "account", "type": "address" @@ -213,16 +227,19 @@ } ], "name": "isApprovedForAll", - "outputs": [{ - "internalType": "bool", - "name": "", - "type": "bool" - }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "to", "type": "address" @@ -246,11 +263,13 @@ { "inputs": [], "name": "owner", - "outputs": [{ - "internalType": "address", - "name": "", - "type": "address" - }], + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, @@ -262,7 +281,8 @@ "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "from", "type": "address" @@ -294,7 +314,8 @@ "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "from", "type": "address" @@ -326,7 +347,8 @@ "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "operator", "type": "address" @@ -343,7 +365,8 @@ "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "uint256", "name": "id", "type": "uint256" @@ -360,45 +383,55 @@ "type": "function" }, { - "inputs": [{ - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - }], + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], "name": "supportsInterface", - "outputs": [{ - "internalType": "bool", - "name": "", - "type": "bool" - }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ - "internalType": "address", - "name": "newOwner", - "type": "address" - }], + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [{ - "internalType": "uint256", - "name": "id", - "type": "uint256" - }], + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], "name": "uri", - "outputs": [{ - "internalType": "string", - "name": "", - "type": "string" - }], + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], "stateMutability": "view", "type": "function" } ] -} \ No newline at end of file +} diff --git a/src/fakeERC721.json b/src/fakeERC721.json index 1e156d8a0..e090aefbe 100644 --- a/src/fakeERC721.json +++ b/src/fakeERC721.json @@ -1,12 +1,14 @@ { - "abi": [{ + "abi": [ + { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, - "inputs": [{ + "inputs": [ + { "indexed": true, "internalType": "address", "name": "_owner", @@ -30,7 +32,8 @@ }, { "anonymous": false, - "inputs": [{ + "inputs": [ + { "indexed": true, "internalType": "address", "name": "_owner", @@ -54,7 +57,8 @@ }, { "anonymous": false, - "inputs": [{ + "inputs": [ + { "indexed": true, "internalType": "address", "name": "previousOwner", @@ -72,7 +76,8 @@ }, { "anonymous": false, - "inputs": [{ + "inputs": [ + { "indexed": true, "internalType": "address", "name": "_from", @@ -97,27 +102,32 @@ { "inputs": [], "name": "CANNOT_TRANSFER_TO_ZERO_ADDRESS", - "outputs": [{ - "internalType": "string", - "name": "", - "type": "string" - }], + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NOT_CURRENT_OWNER", - "outputs": [{ - "internalType": "string", - "name": "", - "type": "string" - }], + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "_approved", "type": "address" @@ -134,37 +144,46 @@ "type": "function" }, { - "inputs": [{ - "internalType": "address", - "name": "_owner", - "type": "address" - }], + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], "name": "balanceOf", - "outputs": [{ - "internalType": "uint256", - "name": "", - "type": "uint256" - }], + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - }], + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], "name": "getApproved", - "outputs": [{ - "internalType": "address", - "name": "", - "type": "address" - }], + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "_owner", "type": "address" @@ -176,42 +195,51 @@ } ], "name": "isApprovedForAll", - "outputs": [{ - "internalType": "bool", - "name": "", - "type": "bool" - }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", - "outputs": [{ - "internalType": "address", - "name": "", - "type": "address" - }], + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - }], + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], "name": "ownerOf", - "outputs": [{ - "internalType": "address", - "name": "_owner", - "type": "address" - }], + "outputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "_from", "type": "address" @@ -233,7 +261,8 @@ "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "_from", "type": "address" @@ -260,7 +289,8 @@ "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "_operator", "type": "address" @@ -277,22 +307,27 @@ "type": "function" }, { - "inputs": [{ - "internalType": "bytes4", - "name": "_interfaceID", - "type": "bytes4" - }], + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceID", + "type": "bytes4" + } + ], "name": "supportsInterface", - "outputs": [{ - "internalType": "bool", - "name": "", - "type": "bool" - }], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "view", "type": "function" }, { - "inputs": [{ + "inputs": [ + { "internalType": "address", "name": "_from", "type": "address" @@ -314,15 +349,17 @@ "type": "function" }, { - "inputs": [{ - "internalType": "address", - "name": "_newOwner", - "type": "address" - }], + "inputs": [ + { + "internalType": "address", + "name": "_newOwner", + "type": "address" + } + ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] -} \ No newline at end of file +} diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 9c1cb6634..ac83c3324 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,11 +1,11 @@ /** * Transfer Liquidity to a foregin chain, freezing the original liquidity - * + * * @param sender Account which owns the liquidity on the native chain, able to sign transactions * @param chain_nonce Nonce of the target chain * @param to Address of the receiver on the foreign chain * @param value Amount of liquidity to send - * + * * @returns Transaction and the Identifier of this action to track the status */ export interface TransferForeign { @@ -19,29 +19,40 @@ export interface TransferForeign { /** * Unfreeze native liquidity existing on a foreign chain(Send back Liquidity) - * + * * @param sender Account which owns the wrapped liquidity on this chain, able to sign transactions * @param chain_nonce Nonce of the original chain * @param to Address of the receiver on the original chain * @param value Amount of liquidity to unfreeze - * + * * @returns Transaction and the Identifier of this action to track the status */ export interface UnfreezeForeign { - unfreezeWrapped(sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance): Promise<[Tx, EventIdent]>; + unfreezeWrapped( + sender: Signer, + chain_nonce: number, + to: ForeignAddr, + value: Balance + ): Promise<[Tx, EventIdent]>; } /** * Transfer NFT to a foreign chain, freezing the original one - * + * * @param sender Account which owns the NFT on the native chain, able to sign transactions * @param chain_nonce Nonce of the target chain * @param to Address of the receiver on the foreign chain * @param id Information required to freeze this nft - * + * * @returns Transaction and the Identifier of this action to track the status */ -export interface TransferNftForeign { +export interface TransferNftForeign< + Signer, + ForeignAddr, + NftIdent, + Tx, + EventIdent +> { transferNftToForeign( sender: Signer, chain_nonce: number, @@ -53,14 +64,20 @@ export interface TransferNftForeign { +export interface UnfreezeForeignNft< + Signer, + ForeignAddr, + NftIdent, + Tx, + EventIdent +> { unfreezeWrappedNft( sender: Signer, to: ForeignAddr, @@ -72,9 +89,7 @@ export interface UnfreezeForeignNft { - balance( - address: Addr - ): Promise; + balance(address: Addr): Promise; } /** @@ -84,10 +99,7 @@ export interface BalanceCheck { * @param chain_nonce nonce of the foreign chain */ export interface WrappedBalanceCheck { - balanceWrapped( - address: Addr, - chain_nonce: number - ): Promise; + balanceWrapped(address: Addr, chain_nonce: number): Promise; } /** @@ -105,23 +117,18 @@ export interface BatchWrappedBalanceCheck { /** * Create a new NFT on this chain - * + * * @param options Arguments required to mint the nft */ export interface MintNft { - mintNft( - owner: Signer, - options: Args - ): Promise + mintNft(owner: Signer, options: Args): Promise; } /** * Get the list of NFTs for a given account */ export interface ListNft { - listNft( - owner: Addr - ): Promise> + listNft(owner: Addr): Promise>; } /** @@ -132,9 +139,9 @@ export interface GetLockedNft { } export type WrappedNft = { - chain_nonce: number, - data: Uint8Array -} + chain_nonce: number; + data: Uint8Array; +}; export interface DecodeWrappedNft { decodeWrappedNft(raw_data: Data): WrappedNft; @@ -144,7 +151,6 @@ export interface DecodeRawNft { decodeUrlFromRaw(data: Uint8Array): Promise; } - export function ConcurrentSendError(): Error { - return new Error("concurrent_send") + return new Error("concurrent_send"); } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 6f5028fbf..3e47054bb 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -43,7 +43,9 @@ import { Base64 } from "js-base64"; type EasyBalance = string | number | BigNumber; -const ESDT_ISSUE_ADDR = new Address("erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u"); +const ESDT_ISSUE_ADDR = new Address( + "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" +); const ESDT_ISSUE_COST = "50000000000000000"; /** @@ -56,7 +58,7 @@ export type NftInfo = { type ContractRes = { readonly [idx: string]: number | string; -} +}; /** * Information associated with an ESDT Token @@ -64,7 +66,7 @@ type ContractRes = { export type EsdtTokenInfo = { readonly balance: string; readonly tokenIdentifier: string; -} +}; type BEsdtNftInfo = { readonly attributes?: string; @@ -73,7 +75,7 @@ type BEsdtNftInfo = { readonly nonce: number; readonly royalties: string; readonly uris: string[]; -} +}; type MaybeEsdtNftInfo = EsdtTokenInfo & (BEsdtNftInfo | undefined); @@ -90,14 +92,14 @@ function isEsdtNftInfo(maybe: MaybeEsdtNftInfo): maybe is EsdtNftInfo { * arguments required to issue an NFT */ export type NftIssueArgs = { - readonly identifier: string, - readonly quantity: number | undefined, - readonly name: string, - readonly royalties: number | undefined, - readonly hash: string | undefined, - readonly attrs: string | undefined, - readonly uris: Array -} + readonly identifier: string; + readonly quantity: number | undefined; + readonly name: string; + readonly royalties: number | undefined; + readonly hash: string | undefined; + readonly attrs: string | undefined; + readonly uris: Array; +}; /** * Utility for issuing ESDT which supports NFT minting @@ -116,7 +118,7 @@ export interface IssueESDTNFT { /** * Issue a new ESDT supporting NFTs - * + * * @param sender Owner of this ESDT * @param name Name of the ESDT * @param ticker Ticker of the ESDT @@ -132,16 +134,19 @@ export interface IssueESDTNFT { canWipe: boolean | undefined, canTransferNFTCreateRole: boolean | undefined ): Promise; -}; +} /** * Possible roles for an ESDT - * + * * ESDTRoleNFTCreate: Allow creating NFTs * ESDTRoleNFTBurn: Allow burning NFTs * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) */ -export type ESDTRole = "ESDTRoleNFTCreate" | "ESDTRoleNFTBurn" | "ESDTRoleNFTAddQuantity"; +export type ESDTRole = + | "ESDTRoleNFTCreate" + | "ESDTRoleNFTBurn" + | "ESDTRoleNFTAddQuantity"; /** * Utility for setting ESDT roles @@ -157,18 +162,14 @@ export interface SetESDTRoles { ): Transaction; /** - * + * * Set the roles for a given account for an esdt - * + * * @param sender Target account * @param token ESDT Identifier * @param roles Roles to set */ - setESDTRole( - sender: ISigner, - token: string, - roles: [ESDTRole] - ): Promise; + setESDTRole(sender: ISigner, token: string, roles: [ESDTRole]): Promise; } /** @@ -194,26 +195,44 @@ export type ElrondHelper = BalanceCheck & /** * Unsigned Transaction for [[TransferForeign]] */ - unsignedTransferTxn(chain_nonce: number, to: string, value: EasyBalance): Transaction; + unsignedTransferTxn( + chain_nonce: number, + to: string, + value: EasyBalance + ): Transaction; /** * Unsigned Transaction for [[UnfreezeForeign]] */ - unsignedUnfreezeTxn(chain_nonce: number, address: Address, to: string, value: EasyBalance): Transaction; + unsignedUnfreezeTxn( + chain_nonce: number, + address: Address, + to: string, + value: EasyBalance + ): Transaction; /** * Unsigned Transaction for [[TransferNftForeign]] */ - unsignedTransferNftTxn(chain_nonce: number, address: Address, to: string, info: NftInfo): Transaction; - /** + unsignedTransferNftTxn( + chain_nonce: number, + address: Address, + to: string, + info: NftInfo + ): Transaction; + /** * Unsigned Transaction for [[UnfreezeForeignNft]] - */ - unsignedUnfreezeNftTxn(address: Address, to: string, id: number): Transaction; + */ + unsignedUnfreezeNftTxn( + address: Address, + to: string, + id: number + ): Transaction; /** * Unsigned transaction for Minting an NFT */ unsignedMintNftTxn(owner: Address, args: NftIssueArgs): Transaction; /** * Raw result of a transaction - * + * * @param tx_hash Hash of the transaction */ rawTxnResult(tx_hash: TransactionHash): Promise; // TODO: Typed transaction result @@ -221,7 +240,7 @@ export type ElrondHelper = BalanceCheck & /** * Create an object implementing cross chain utilities for elrond - * + * * @param node_uri URI of the elrond node * @param minter_address Address of the minter smart contract * @param middleware_uri REST API of elrond-event-middleware @@ -239,438 +258,460 @@ export const elrondHelperFactory: ( esdt: string, esdt_nft: string ) => { - const provider = new ProxyProvider(node_uri); - await NetworkConfig.getDefault().sync(provider); - const mintContract = new Address(minter_address); - const providerRest = axios.create({ - baseURL: node_uri - }); - const esdtHex = Buffer.from(esdt, "utf-8"); - const esdtNftHex = Buffer.from(esdt_nft, "utf-8"); - const decoder = new TextDecoder(); - - const syncAccount = async (signer: ISigner) => { - const account = new Account(signer.getAddress()); - await account.sync(provider); - - return account; - }; + const provider = new ProxyProvider(node_uri); + await NetworkConfig.getDefault().sync(provider); + const mintContract = new Address(minter_address); + const providerRest = axios.create({ + baseURL: node_uri, + }); + const esdtHex = Buffer.from(esdt, "utf-8"); + const esdtNftHex = Buffer.from(esdt_nft, "utf-8"); + const decoder = new TextDecoder(); + + const syncAccount = async (signer: ISigner) => { + const account = new Account(signer.getAddress()); + await account.sync(provider); + + return account; + }; - const signAndSend = async (signer: ISigner, tx: Transaction) => { - const acc = await syncAccount(signer); + const signAndSend = async (signer: ISigner, tx: Transaction) => { + const acc = await syncAccount(signer); - tx.setNonce(acc.nonce); - await signer.sign(tx); + tx.setNonce(acc.nonce); + await signer.sign(tx); - try { - await tx.send(provider); - } catch (e) { - if (e.message.includes("lowerNonceInTx")) { - throw ConcurrentSendError(); - } else { - throw e; - } + try { + await tx.send(provider); + } catch (e) { + if (e.message.includes("lowerNonceInTx")) { + throw ConcurrentSendError(); + } else { + throw e; } - return tx; } + return tx; + }; - const transactionResult = async (tx_hash: TransactionHash) => { - const uri = `/transaction/${tx_hash.toString()}?withResults=true`; - let tries = 0; - - while (tries < 10) { - tries += 1; - let err; - // TODO: type safety - const res = await providerRest.get(uri).catch(e => err = e); - if (err) { - await new Promise(r => setTimeout(r, 3000)) - continue; - } - const data = res.data; - if (data["code"] != "successful") { - throw Error("failed to execute txn") - } - - const tx_info = data["data"]["transaction"] - if (tx_info["status"] == "pending") { - await new Promise(r => setTimeout(r, 5000)); - continue; - } - if (tx_info["status"] != "success") { - throw Error("failed to execute txn") - } - - return tx_info; - } + const transactionResult = async (tx_hash: TransactionHash) => { + const uri = `/transaction/${tx_hash.toString()}?withResults=true`; + let tries = 0; - throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); - } - - const unsignedTransferTxn = ( - chain_nonce: number, - to: string, - value: EasyBalance - ) => { - - return new Transaction({ - receiver: mintContract, - gasLimit: new GasLimit(50000000), - value: new Balance(value.toString()), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("freezeSend")) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; + while (tries < 10) { + tries += 1; + let err; + // TODO: type safety + const res = await providerRest.get(uri).catch((e) => (err = e)); + if (err) { + await new Promise((r) => setTimeout(r, 3000)); + continue; + } + const data = res.data; + if (data["code"] != "successful") { + throw Error("failed to execute txn"); + } - const unsignedMintNftTxn = ( - owner: Address, - { - identifier, - quantity, - name, - royalties, - hash, - attrs, - uris - }: NftIssueArgs - ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTCreate")) - .addArg(new TokenIdentifierValue(Buffer.from(identifier, 'utf-8'))) - .addArg(new BigUIntValue(new BigNumber(quantity ?? 1))) - .addArg(new BytesValue(Buffer.from(name, 'utf-8'))) - .addArg(new U64Value(new BigNumber(royalties ?? 0))) - .addArg(new BytesValue(hash ? Buffer.from(hash, 'utf-8') : Buffer.alloc(0))) - .addArg(new BytesValue(attrs ? Buffer.from(attrs, 'utf-8') : Buffer.alloc(0))); - - for (const uri of uris) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(uri, 'utf-8'))); + const tx_info = data["data"]["transaction"]; + if (tx_info["status"] == "pending") { + await new Promise((r) => setTimeout(r, 5000)); + continue; + } + if (tx_info["status"] != "success") { + throw Error("failed to execute txn"); } - return new Transaction({ - receiver: owner, - gasLimit: new GasLimit(70000000), // TODO: Auto derive - data: baseArgs.build() - }); + return tx_info; } - const unsignedTransferNftTxn = ( - chain_nonce: number, - address: Address, - to: string, - { token, nonce }: NftInfo - ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(70000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTTransfer")) - .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) - .addArg(new U64Value(new BigNumber(nonce))) - .addArg(new BigUIntValue(new BigNumber(1))) - .addArg(new AddressValue(mintContract)) - .addArg(new BytesValue(Buffer.from("freezeSendNft", "ascii"))) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; + throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); + }; - const unsignedUnfreezeNftTxn = ( - address: Address, - to: string, - id: number - ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(70000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTTransfer")) - .addArg(new TokenIdentifierValue(esdtNftHex)) - .addArg(new U64Value(new BigNumber(id))) - .addArg(new BigUIntValue(new BigNumber(1))) - .addArg(new AddressValue(mintContract)) - .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - } + const unsignedTransferTxn = ( + chain_nonce: number, + to: string, + value: EasyBalance + ) => { + return new Transaction({ + receiver: mintContract, + gasLimit: new GasLimit(50000000), + value: new Balance(value.toString()), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("freezeSend")) + .addArg(new U64Value(new BigNumber(chain_nonce))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + }; - const unsignedUnfreezeTxn = ( - chain_nonce: number, - address: Address, - to: string, - value: EasyBalance - ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(50000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTTransfer")) - .addArg(new TokenIdentifierValue(esdtHex)) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BigUIntValue(new BigNumber(value))) - .addArg(new AddressValue(mintContract)) - .addArg(new BytesValue(Buffer.from("withdraw", "ascii"))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); + const unsignedMintNftTxn = ( + owner: Address, + { identifier, quantity, name, royalties, hash, attrs, uris }: NftIssueArgs + ) => { + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTNFTCreate")) + .addArg(new TokenIdentifierValue(Buffer.from(identifier, "utf-8"))) + .addArg(new BigUIntValue(new BigNumber(quantity ?? 1))) + .addArg(new BytesValue(Buffer.from(name, "utf-8"))) + .addArg(new U64Value(new BigNumber(royalties ?? 0))) + .addArg( + new BytesValue(hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0)) + ) + .addArg( + new BytesValue(attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0)) + ); + + for (const uri of uris) { + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(uri, "utf-8"))); } - const listEsdt = async (owner: string) => { - const raw = await providerRest(`/address/${owner}/esdt`); - const dat = raw.data.data.esdts as { [index: string]: MaybeEsdtNftInfo }; + return new Transaction({ + receiver: owner, + gasLimit: new GasLimit(70000000), // TODO: Auto derive + data: baseArgs.build(), + }); + }; - return dat; - } + const unsignedTransferNftTxn = ( + chain_nonce: number, + address: Address, + to: string, + { token, nonce }: NftInfo + ) => { + return new Transaction({ + receiver: address, + gasLimit: new GasLimit(70000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTNFTTransfer")) + .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) + .addArg(new U64Value(new BigNumber(nonce))) + .addArg(new BigUIntValue(new BigNumber(1))) + .addArg(new AddressValue(mintContract)) + .addArg(new BytesValue(Buffer.from("freezeSendNft", "ascii"))) + .addArg(new U64Value(new BigNumber(chain_nonce))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + }; - async function listNft(owner: string): Promise> { - const ents: [string, MaybeEsdtNftInfo][] = Object.entries(await listEsdt(owner)); + const unsignedUnfreezeNftTxn = (address: Address, to: string, id: number) => { + return new Transaction({ + receiver: address, + gasLimit: new GasLimit(70000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTNFTTransfer")) + .addArg(new TokenIdentifierValue(esdtNftHex)) + .addArg(new U64Value(new BigNumber(id))) + .addArg(new BigUIntValue(new BigNumber(1))) + .addArg(new AddressValue(mintContract)) + .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + }; - const fmapCb: (tok: [string, MaybeEsdtNftInfo]) => [] | [[string, EsdtNftInfo]] = ([tok, info]) => { - if (!isEsdtNftInfo(info)) { - return []; - } + const unsignedUnfreezeTxn = ( + chain_nonce: number, + address: Address, + to: string, + value: EasyBalance + ) => { + return new Transaction({ + receiver: address, + gasLimit: new GasLimit(50000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTNFTTransfer")) + .addArg(new TokenIdentifierValue(esdtHex)) + .addArg(new U64Value(new BigNumber(chain_nonce))) + .addArg(new BigUIntValue(new BigNumber(value))) + .addArg(new AddressValue(mintContract)) + .addArg(new BytesValue(Buffer.from("withdraw", "ascii"))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + }; - let sp = tok.split("-"); - let nonce = sp.pop() ?? ""; - return [[`${sp.join("-")}-${parseInt(nonce, 16).toString()}`, info]] - } + const listEsdt = async (owner: string) => { + const raw = await providerRest(`/address/${owner}/esdt`); + const dat = raw.data.data.esdts as { [index: string]: MaybeEsdtNftInfo }; - return new Map(ents.flatMap(fmapCb)); - } + return dat; + }; + async function listNft(owner: string): Promise> { + const ents: [string, MaybeEsdtNftInfo][] = Object.entries( + await listEsdt(owner) + ); - const unsignedIssueESDTNft = ( - name: string, - ticker: string, - canFreeze: boolean | undefined, - canWipe: boolean | undefined, - canTransferNFTCreateRole: boolean | undefined - ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("issueNonFungible")) - .addArg(new TokenIdentifierValue(Buffer.from(name, 'utf-8'))) - .addArg(new TokenIdentifierValue(Buffer.from(ticker, 'utf-8'))); - - if (canFreeze !== undefined) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from("canFreeze", 'ascii'))) - .addArg(new BytesValue(Buffer.from(canFreeze ? "true" : "false", 'ascii'))); - } - if (canWipe !== undefined) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from("canWipe", 'ascii'))) - .addArg(new BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii"))); - } - if (canTransferNFTCreateRole !== undefined) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from('canTransferNFTCreateRole', 'ascii'))) - .addArg(new BytesValue(Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii"))); + const fmapCb: ( + tok: [string, MaybeEsdtNftInfo] + ) => [] | [[string, EsdtNftInfo]] = ([tok, info]) => { + if (!isEsdtNftInfo(info)) { + return []; } - return new Transaction({ - receiver: ESDT_ISSUE_ADDR, - value: new Balance(ESDT_ISSUE_COST), - gasLimit: new GasLimit(60000000), - data: baseArgs.build() - }); + let sp = tok.split("-"); + let nonce = sp.pop() ?? ""; + return [[`${sp.join("-")}-${parseInt(nonce, 16).toString()}`, info]]; }; + return new Map(ents.flatMap(fmapCb)); + } - const unsignedSetESDTRoles = ( - token: string, - target: Address, - roles: [ESDTRole] - ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("setSpecialRole")) - .addArg(new TokenIdentifierValue(Buffer.from(token))) - .addArg(new AddressValue(target)); - - for (const role of roles) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(role, 'utf-8'))); - } - - return new Transaction({ - receiver: ESDT_ISSUE_ADDR, - gasLimit: new GasLimit(70000000), // TODO: auto derive - data: baseArgs.build() - }); + const unsignedIssueESDTNft = ( + name: string, + ticker: string, + canFreeze: boolean | undefined, + canWipe: boolean | undefined, + canTransferNFTCreateRole: boolean | undefined + ) => { + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("issueNonFungible")) + .addArg(new TokenIdentifierValue(Buffer.from(name, "utf-8"))) + .addArg(new TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); + + if (canFreeze !== undefined) { + baseArgs = baseArgs + .addArg(new BytesValue(Buffer.from("canFreeze", "ascii"))) + .addArg( + new BytesValue(Buffer.from(canFreeze ? "true" : "false", "ascii")) + ); + } + if (canWipe !== undefined) { + baseArgs = baseArgs + .addArg(new BytesValue(Buffer.from("canWipe", "ascii"))) + .addArg( + new BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii")) + ); + } + if (canTransferNFTCreateRole !== undefined) { + baseArgs = baseArgs + .addArg( + new BytesValue(Buffer.from("canTransferNFTCreateRole", "ascii")) + ) + .addArg( + new BytesValue( + Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") + ) + ); } - async function getLockedNft({ token, nonce }: NftInfo): Promise { - const nfts = await listNft(minter_address); - return nfts.get(`${token}-${nonce.toString()}`); + return new Transaction({ + receiver: ESDT_ISSUE_ADDR, + value: new Balance(ESDT_ISSUE_COST), + gasLimit: new GasLimit(60000000), + data: baseArgs.build(), + }); + }; + + const unsignedSetESDTRoles = ( + token: string, + target: Address, + roles: [ESDTRole] + ) => { + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("setSpecialRole")) + .addArg(new TokenIdentifierValue(Buffer.from(token))) + .addArg(new AddressValue(target)); + + for (const role of roles) { + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(role, "utf-8"))); } - const rawNftDecoder = (nftDat: Uint8Array) => { - /// TokenLen(4 by), TokenIdent(TokenLen by), Nonce(8 by) - /// BinaryCodec is broken for browsers. Decode manually :| - if (nftDat.length < 12) { - throw Error("not a wrapped nft") - } + return new Transaction({ + receiver: ESDT_ISSUE_ADDR, + gasLimit: new GasLimit(70000000), // TODO: auto derive + data: baseArgs.build(), + }); + }; - const tokenLen = (new Uint32Array(nftDat.slice(0, 4).reverse()))[0]; - if (nftDat.length !== 12 + tokenLen) { - throw Error("not a wrapped nft"); - } - const token = decoder.decode(nftDat.slice(4, 4 + tokenLen)); - // TODO: Consider LO - // tfw js can't convert be bytes to u64 - const nonce = (new Uint32Array(nftDat.slice(4 + tokenLen, 12 + tokenLen).reverse()))[0]; + async function getLockedNft({ + token, + nonce, + }: NftInfo): Promise { + const nfts = await listNft(minter_address); + return nfts.get(`${token}-${nonce.toString()}`); + } - return { token, nonce }; + const rawNftDecoder = (nftDat: Uint8Array) => { + /// TokenLen(4 by), TokenIdent(TokenLen by), Nonce(8 by) + /// BinaryCodec is broken for browsers. Decode manually :| + if (nftDat.length < 12) { + throw Error("not a wrapped nft"); } - async function extractId(tx: Transaction): Promise<[Transaction, EventIdent]> { - let err; - await tx.awaitExecuted(provider).catch(e => err = e); - if (err) { - await new Promise(r => setTimeout(r, 3000)); - return extractId(tx); - } + const tokenLen = new Uint32Array(nftDat.slice(0, 4).reverse())[0]; + if (nftDat.length !== 12 + tokenLen) { + throw Error("not a wrapped nft"); + } + const token = decoder.decode(nftDat.slice(4, 4 + tokenLen)); + // TODO: Consider LO + // tfw js can't convert be bytes to u64 + const nonce = new Uint32Array( + nftDat.slice(4 + tokenLen, 12 + tokenLen).reverse() + )[0]; + + return { token, nonce }; + }; - const txr = await transactionResult(tx.getHash()); + async function extractId( + tx: Transaction + ): Promise<[Transaction, EventIdent]> { + let err; + await tx.awaitExecuted(provider).catch((e) => (err = e)); + if (err) { + await new Promise((r) => setTimeout(r, 3000)); + return extractId(tx); + } - const id = filterEventId(txr["smartContractResults"]); + const txr = await transactionResult(tx.getHash()); - return [tx, id]; - } + const id = filterEventId(txr["smartContractResults"]); + + return [tx, id]; + } - return { - rawTxnResult: transactionResult, - unsignedTransferTxn, - unsignedUnfreezeTxn, - unsignedTransferNftTxn, - unsignedUnfreezeNftTxn, - unsignedMintNftTxn, - unsignedSetESDTRoles, - async balance( - address: string | Address - ): Promise { - const wallet = new Account(new Address(address)); - - await wallet.sync(provider); - - return wallet.balance.valueOf(); - }, - async balanceWrappedBatch( - address: string | Address, - chain_nonces: number[] - ): Promise> { - const esdts = Object.values(await listEsdt(address.toString())); - - const res = new Map(chain_nonces.map(v => [v, new BigNumber(0)])); - - for (const esdt of esdts) { - esdt.nonce && esdt.tokenIdentifier.startsWith(esdt.tokenIdentifier) && res.set(esdt.nonce, new BigNumber(esdt.balance)) - } - - return res; - }, - async transferNativeToForeign( - sender: ISigner, - chain_nonce: number, - to: string, - value: EasyBalance - ): Promise<[Transaction, EventIdent]> { - const txu = unsignedTransferTxn(chain_nonce, to, value) - const tx = await signAndSend(sender, txu); - - return await extractId(tx); - }, - async unfreezeWrapped( - sender: ISigner, - chain_nonce: number, - to: string, - value: EasyBalance - ): Promise<[Transaction, EventIdent]> { - const txu = unsignedUnfreezeTxn(chain_nonce, sender.getAddress(), to, value); - const tx = await signAndSend(sender, txu); - - return await extractId(tx); - }, - async transferNftToForeign( - sender: ISigner, - chain_nonce: number, - to: string, - info: NftInfo - ): Promise<[Transaction, EventIdent]> { - const txu = unsignedTransferNftTxn(chain_nonce, sender.getAddress(), to, info); - const tx = await signAndSend(sender, txu); - - return await extractId(tx); - }, - async unfreezeWrappedNft( - sender: ISigner, - to: string, - nonce: number - ): Promise<[Transaction, EventIdent]> { - const txu = unsignedUnfreezeNftTxn(sender.getAddress(), to, nonce); - const tx = await signAndSend(sender, txu); - - return await extractId(tx); - }, - unsignedIssueESDTNft, - async issueESDTNft( - sender: ISigner, - name: string, - ticker: string, - canFreeze: boolean = false, - canWipe: boolean = false, - canTransferNFTCreateRole: boolean = false - ): Promise { - const txu = unsignedIssueESDTNft(name, ticker, canFreeze, canWipe, canTransferNFTCreateRole); - - await signAndSend(sender, txu); - }, - async mintNft( - owner: ISigner, - args: NftIssueArgs - ): Promise { - const txu = unsignedMintNftTxn(owner.getAddress(), args); - - await signAndSend(owner, txu); - }, - listNft, - getLockedNft, - async setESDTRole( - manager: ISigner, - token: string, - target: Address, - roles: [ESDTRole] - ): Promise { - const txu = unsignedSetESDTRoles(token, target, roles); - - await signAndSend(manager, txu); - }, - decodeWrappedNft( - raw_data: EsdtNftInfo - ): WrappedNft { - if (!raw_data.attributes) { - throw Error("can't decode chain nonce"); - } - return { - // TODO: CONSIDER ALL BE BYTES - chain_nonce: Base64.toUint8Array(raw_data.attributes!!)[0], - data: Base64.toUint8Array(raw_data.uris[0]) - } - }, - async decodeUrlFromRaw( - data: Uint8Array - ): Promise { - const nft_info = rawNftDecoder(data); - const locked = await getLockedNft(nft_info); - - if (locked === undefined) { - throw Error("Not a wrapped nft"); - } - - return Base64.atob(locked!.uris[0]); + return { + rawTxnResult: transactionResult, + unsignedTransferTxn, + unsignedUnfreezeTxn, + unsignedTransferNftTxn, + unsignedUnfreezeNftTxn, + unsignedMintNftTxn, + unsignedSetESDTRoles, + async balance(address: string | Address): Promise { + const wallet = new Account(new Address(address)); + + await wallet.sync(provider); + + return wallet.balance.valueOf(); + }, + async balanceWrappedBatch( + address: string | Address, + chain_nonces: number[] + ): Promise> { + const esdts = Object.values(await listEsdt(address.toString())); + + const res = new Map(chain_nonces.map((v) => [v, new BigNumber(0)])); + + for (const esdt of esdts) { + esdt.nonce && + esdt.tokenIdentifier.startsWith(esdt.tokenIdentifier) && + res.set(esdt.nonce, new BigNumber(esdt.balance)); } - }; + + return res; + }, + async transferNativeToForeign( + sender: ISigner, + chain_nonce: number, + to: string, + value: EasyBalance + ): Promise<[Transaction, EventIdent]> { + const txu = unsignedTransferTxn(chain_nonce, to, value); + const tx = await signAndSend(sender, txu); + + return await extractId(tx); + }, + async unfreezeWrapped( + sender: ISigner, + chain_nonce: number, + to: string, + value: EasyBalance + ): Promise<[Transaction, EventIdent]> { + const txu = unsignedUnfreezeTxn( + chain_nonce, + sender.getAddress(), + to, + value + ); + const tx = await signAndSend(sender, txu); + + return await extractId(tx); + }, + async transferNftToForeign( + sender: ISigner, + chain_nonce: number, + to: string, + info: NftInfo + ): Promise<[Transaction, EventIdent]> { + const txu = unsignedTransferNftTxn( + chain_nonce, + sender.getAddress(), + to, + info + ); + const tx = await signAndSend(sender, txu); + + return await extractId(tx); + }, + async unfreezeWrappedNft( + sender: ISigner, + to: string, + nonce: number + ): Promise<[Transaction, EventIdent]> { + const txu = unsignedUnfreezeNftTxn(sender.getAddress(), to, nonce); + const tx = await signAndSend(sender, txu); + + return await extractId(tx); + }, + unsignedIssueESDTNft, + async issueESDTNft( + sender: ISigner, + name: string, + ticker: string, + canFreeze: boolean = false, + canWipe: boolean = false, + canTransferNFTCreateRole: boolean = false + ): Promise { + const txu = unsignedIssueESDTNft( + name, + ticker, + canFreeze, + canWipe, + canTransferNFTCreateRole + ); + + await signAndSend(sender, txu); + }, + async mintNft(owner: ISigner, args: NftIssueArgs): Promise { + const txu = unsignedMintNftTxn(owner.getAddress(), args); + + await signAndSend(owner, txu); + }, + listNft, + getLockedNft, + async setESDTRole( + manager: ISigner, + token: string, + target: Address, + roles: [ESDTRole] + ): Promise { + const txu = unsignedSetESDTRoles(token, target, roles); + + await signAndSend(manager, txu); + }, + decodeWrappedNft(raw_data: EsdtNftInfo): WrappedNft { + if (!raw_data.attributes) { + throw Error("can't decode chain nonce"); + } + return { + // TODO: CONSIDER ALL BE BYTES + chain_nonce: Base64.toUint8Array(raw_data.attributes!!)[0], + data: Base64.toUint8Array(raw_data.uris[0]), + }; + }, + async decodeUrlFromRaw(data: Uint8Array): Promise { + const nft_info = rawNftDecoder(data); + const locked = await getLockedNft(nft_info); + + if (locked === undefined) { + throw Error("Not a wrapped nft"); + } + + return Base64.atob(locked!.uris[0]); + }, }; +}; function filterEventId(results: Array): number { for (const res of results) { diff --git a/src/helpers/polkadot.ts b/src/helpers/polkadot.ts index 833dbf8ac..7c22587de 100644 --- a/src/helpers/polkadot.ts +++ b/src/helpers/polkadot.ts @@ -3,7 +3,11 @@ * @module */ import { ApiPromise, Keyring, WsProvider } from "@polkadot/api"; -import { Callback, ISubmittableResult, RegistryTypes } from "@polkadot/types/types"; +import { + Callback, + ISubmittableResult, + RegistryTypes, +} from "@polkadot/types/types"; import { Address, H256, Hash, LookupSource } from "@polkadot/types/interfaces"; import BigNumber from "bignumber.js"; import { @@ -20,23 +24,26 @@ import { ConcurrentSendError, DecodeWrappedNft, WrappedNft, - DecodeRawNft + DecodeRawNft, } from "./chain"; import { AddressOrPair } from "@polkadot/api/types"; -import { SignerOptions, SubmittableExtrinsic } from "@polkadot/api/submittable/types"; +import { + SignerOptions, + SubmittableExtrinsic, +} from "@polkadot/api/submittable/types"; import { BTreeMap, Bytes, Option, Tuple, U8aFixed } from "@polkadot/types"; -import { NftPacked } from "validator/dist/encoding" +import { NftPacked } from "validator/dist/encoding"; /** * Type of sender expected by this module - * + * * @param sender Address of the sender, or a Keypair * @param options Options for sigining this transaction. Mandatory if sender is an address */ export type Signer = { - sender: AddressOrPair, - options?: Partial -} + sender: AddressOrPair; + options?: Partial; +}; type EasyBalance = string | number | BigNumber; type EasyAddr = string | LookupSource | Address; @@ -44,7 +51,7 @@ type EasyAddr = string | LookupSource | Address; type BasePolkadot = BalanceCheck; /** - * identifier for tracking an action + * identifier for tracking an action */ type EventIdent = BigNumber; @@ -66,18 +73,34 @@ export type PolkadotPalletHelper = PolkadotHelper & DecodeWrappedNft & DecodeRawNft; - -const LUT_HEX_4b = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']; +const LUT_HEX_4b = [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "A", + "B", + "C", + "D", + "E", + "F", +]; const LUT_HEX_8b = new Array(0x100); for (let n = 0; n < 0x100; n++) { - LUT_HEX_8b[n] = `${LUT_HEX_4b[(n >>> 4) & 0xF]}${LUT_HEX_4b[n & 0xF]}`; + LUT_HEX_8b[n] = `${LUT_HEX_4b[(n >>> 4) & 0xf]}${LUT_HEX_4b[n & 0xf]}`; } /** * @internal */ // End Pre-Init export function toHex(buffer: Uint8Array) { - let out = ''; + let out = ""; for (let idx = 0, edx = buffer.length; idx < edx; idx++) { out += LUT_HEX_8b[buffer[idx]]; } @@ -91,30 +114,34 @@ async function basePolkadotHelper( const api = await ApiPromise.create({ provider, types: runtimeTypes }); const base = { - async balance( - address: EasyAddr - ): Promise { - + async balance(address: EasyAddr): Promise { const res: any = await api.query.system.account(address); - return new BigNumber(res['data']['free'].toString()); - } - } + return new BigNumber(res["data"]["free"].toString()); + }, + }; - return [base, api] + return [base, api]; } function hasAddrField(ob: any): ob is { address: string } { - return ob.hasOwnField('address') && typeof ob.address == "string"; + return ob.hasOwnField("address") && typeof ob.address == "string"; } -async function resolve_event_id(ext: SubmittableExtrinsic<'promise', R>, filter: string, signer: AddressOrPair, options?: Partial): Promise<[Hash, EventIdent]> { +async function resolve_event_id( + ext: SubmittableExtrinsic<"promise", R>, + filter: string, + signer: AddressOrPair, + options?: Partial +): Promise<[Hash, EventIdent]> { let call: (cb: Callback) => Promise<() => void>; if (options) { options.nonce = -1; - call = async (cb: Callback) => await ext.signAndSend(signer, options, cb); + call = async (cb: Callback) => + await ext.signAndSend(signer, options, cb); } else { - call = async (cb: Callback) => await ext.signAndSend(signer, { nonce: -1 }, cb); + call = async (cb: Callback) => + await ext.signAndSend(signer, { nonce: -1 }, cb); } const evP: Promise<[Hash, EventIdent]> = new Promise((res, rej) => { @@ -123,7 +150,7 @@ async function resolve_event_id(ext: SubmittableEx return; } - const ev = events.find(e => e.event.method == filter); + const ev = events.find((e) => e.event.method == filter); if (ev === undefined) { rej(); return; @@ -133,7 +160,7 @@ async function resolve_event_id(ext: SubmittableEx const hash = status.asInBlock; res([hash, action_id]); - }) + }); }); try { @@ -148,7 +175,7 @@ async function resolve_event_id(ext: SubmittableEx /** * Create an object implementing Cross Chain utilities for Polkadot - * + * * @param node_uri URI of the polkadot node */ export const polkadotPalletHelperFactory: ( @@ -163,10 +190,8 @@ export const polkadotPalletHelperFactory: ( return [nft_id.toString(), data]; } - async function getLockedNft( - hash: H256 - ): Promise { - const com = await api.query.nft.lockedCommodities(hash) as Option; + async function getLockedNft(hash: H256): Promise { + const com = (await api.query.nft.lockedCommodities(hash)) as Option; if (com.isNone) { return undefined; } @@ -182,17 +207,24 @@ export const polkadotPalletHelperFactory: ( chain_nonce: number ): Promise { const res = await api.query.erc1155.balances(address, chain_nonce); - return new BigNumber(res.toString()) + return new BigNumber(res.toString()); }, async balanceWrappedBatch( address: EasyAddr, chain_nonces: number[] ): Promise> { // Multi query with address, chain_nonce - const res: Option[] = await api.query.erc1155.balances.multi(chain_nonces.map(c => [address, c])); + const res: Option[] = await api.query.erc1155.balances.multi( + chain_nonces.map((c) => [address, c]) + ); // Convert list of balances to [chain_nonce, balance] - return new Map(res.map((b: Option, i) => [chain_nonces[i], b.isSome ? new BigNumber(b.unwrap().toString()) : new BigNumber(0)])) + return new Map( + res.map((b: Option, i) => [ + chain_nonces[i], + b.isSome ? new BigNumber(b.unwrap().toString()) : new BigNumber(0), + ]) + ); }, async transferNativeToForeign( sender: Signer, @@ -203,7 +235,8 @@ export const polkadotPalletHelperFactory: ( return await resolve_event_id( api.tx.freezer.send(chain_nonce, to, value.toString()), "TransferFrozen", - sender.sender, sender.options + sender.sender, + sender.options ); }, async unfreezeWrapped( @@ -215,7 +248,8 @@ export const polkadotPalletHelperFactory: ( return await resolve_event_id( api.tx.freezer.withdrawWrapped(chain_nonce, to, value.toString()), "UnfreezeWrapped", - sender.sender, sender.options + sender.sender, + sender.options ); }, async transferNftToForeign( @@ -227,7 +261,8 @@ export const polkadotPalletHelperFactory: ( return await resolve_event_id( api.tx.freezer.sendNft(chain_nonce, to, nft_id), "TransferUniqueFrozen", - sender.sender, sender.options + sender.sender, + sender.options ); }, async unfreezeWrappedNft( @@ -238,13 +273,11 @@ export const polkadotPalletHelperFactory: ( return await resolve_event_id( api.tx.freezer.withdrawWrappedNft(to, nft_id), "UnfreezeUniqueWrapped", - sender.sender, sender.options + sender.sender, + sender.options ); }, - async mintNft( - owner: Signer, - info: Uint8Array - ): Promise { + async mintNft(owner: Signer, info: Uint8Array): Promise { let addr; // "static typing :|" if (typeof owner.sender == "string") { @@ -255,14 +288,14 @@ export const polkadotPalletHelperFactory: ( addr = owner.sender.toString(); } - await api.tx.sudo.sudo( - api.tx.nft.mint(addr, toHex(info)) - ).signAndSend(sudoSigner, { nonce: -1 }); + await api.tx.sudo + .sudo(api.tx.nft.mint(addr, toHex(info))) + .signAndSend(sudoSigner, { nonce: -1 }); }, - async listNft( - owner: EasyAddr - ): Promise> { - const com = await api.query.nft.commoditiesForAccount(owner.toString()) as Option>; + async listNft(owner: EasyAddr): Promise> { + const com = (await api.query.nft.commoditiesForAccount( + owner.toString() + )) as Option>; if (com.isNone) { return new Map(); } @@ -270,26 +303,22 @@ export const polkadotPalletHelperFactory: ( return new Map(c); }, getLockedNft, - decodeWrappedNft( - raw_data: Uint8Array - ): WrappedNft { + decodeWrappedNft(raw_data: Uint8Array): WrappedNft { const packed = NftPacked.deserializeBinary(Uint8Array.from(raw_data)); return { chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8() - } + data: packed.getData_asU8(), + }; }, - async decodeUrlFromRaw( - data: Uint8Array - ): Promise { + async decodeUrlFromRaw(data: Uint8Array): Promise { const locked = await getLockedNft(new U8aFixed(api.registry, data, 256)); if (locked === undefined) { throw Error("not a locked nft"); } return decoder.decode(locked.slice(-24)); - } + }, }; }; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index aa3a16086..b685827fb 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -1,4 +1,4 @@ -import {BigNumber} from "bignumber.js"; +import { BigNumber } from "bignumber.js"; import { BalanceCheck, BatchWrappedBalanceCheck, @@ -10,55 +10,94 @@ import { UnfreezeForeign, UnfreezeForeignNft, WrappedBalanceCheck, - WrappedNft + WrappedNft, } from "./chain"; -import {abi as ERC1155_abi} from "../fakeERC1155.json"; +import { abi as ERC1155_abi } from "../fakeERC1155.json"; // @ts-ignore -import {TronWeb} from "tronweb"; -import {EthNftInfo, MintArgs} from "./web3"; +import { TronWeb } from "tronweb"; +import { EthNftInfo, MintArgs } from "./web3"; -import {BigNumber as EthBN} from "@ethersproject/bignumber/lib/bignumber"; -import {Interface} from "ethers/lib/utils"; -import {abi as ERC721_abi} from "../fakeERC721.json"; -import {Base64} from "js-base64"; -import {NftEthNative, NftPacked} from "validator/dist/encoding"; +import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; +import { Interface } from "ethers/lib/utils"; +import { abi as ERC721_abi } from "../fakeERC721.json"; +import { Base64 } from "js-base64"; +import { NftEthNative, NftPacked } from "validator/dist/encoding"; +import * as ERC1155_contract from "../XPNet.json"; +export type BaseTronHelper = BalanceCheck & + MintNft & { + /** + * + * Deploy an ERC1155 smart contract + * + * @argument owner Owner of this smart contract + * @returns Address of the deployed smart contract + */ + deployErc1155(owner: string): Promise; + }; -export type TronHelper = - BalanceCheck & - MintNft & - WrappedBalanceCheck & - BatchWrappedBalanceCheck & - TransferForeign & - TransferNftForeign & - UnfreezeForeign & - UnfreezeForeignNft & - DecodeWrappedNft & - DecodeRawNft & { - nftUri(info: EthNftInfo): Promise; +export type TronHelper = BaseTronHelper & + WrappedBalanceCheck & + BatchWrappedBalanceCheck & + TransferForeign & + TransferNftForeign & + UnfreezeForeign & + UnfreezeForeignNft & + DecodeWrappedNft & + DecodeRawNft & { + nftUri(info: EthNftInfo): Promise; + }; + +export async function baseTronHelperFactory( + provider: TronWeb +): Promise { + const setSigner = (signer: string) => { + return provider.setPrivateKey(signer); + }; + + return { + async mintNft(owner: string, options: MintArgs): Promise { + setSigner(owner); + const erc = await provider.contract(ERC1155_abi, options.contract); + await erc.mint(owner, EthBN.from(options.token.toString()), 1).send(); + await erc.setURI(options.token, options.uri).send(); + }, + async balance(address: string): Promise { + const balance = await provider.trx.getBalance(address); + return new BigNumber(balance); + }, + async deployErc1155(owner: string): Promise { + setSigner(owner); + + const contract = await provider.contract().new({ + abi: ERC1155_abi, + bytecode: ERC1155_contract.bytecode, + }); + + return contract.address; + }, + }; } -// BalanceCheck -// & WrappedBalanceCheck -// & BatchWrappedBalanceCheck & MintNft; export async function tronHelperFactory( - provider: TronWeb, - erc1155_addr: string, - minter_addr: string, - minter_abi: Interface + provider: TronWeb, + erc1155_addr: string, + minter_addr: string, + minter_abi: Interface ): Promise { + const base = await baseTronHelperFactory(provider); const erc1155 = await provider.contract(ERC1155_abi, erc1155_addr); - const minter = await provider.contract(minter_abi, minter_addr) + const minter = await provider.contract(minter_abi, minter_addr); const setSigner = (signer: string) => { - return provider.setPrivateKey(signer) - } + return provider.setPrivateKey(signer); + }; async function extractTxn(hash: string): Promise<[string, string]> { - const evs = await provider.getEventByTransactionID(hash) + const evs = await provider.getEventByTransactionID(hash); const ev = evs.find((e: any) => e?.contract_address == minter_addr); - const action_id: string = ev.result["action_id"].toString() + const action_id: string = ev.result["action_id"].toString(); return [hash, action_id]; } @@ -68,23 +107,23 @@ export async function tronHelperFactory( return await erc.tokenURI(info.token).call(); } else { const erc = await provider.contract(ERC1155_abi, info.contract); - return await erc.uri(info.token).call() + return await erc.uri(info.token).call(); } - } + }; function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { - return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155" + return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; } return { + ...base, async decodeUrlFromRaw(data: Uint8Array): Promise { const packed = NftEthNative.deserializeBinary(data); const nft_info = { contract_type: contractTypeFromNftKind(packed.getNftKind()), contract: packed.getContractAddr(), - token: EthBN.from(packed.getId()) - } - + token: EthBN.from(packed.getId()), + }; return await nftUri(nft_info); }, @@ -93,67 +132,94 @@ export async function tronHelperFactory( const packed = NftPacked.deserializeBinary(u8D); return { chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8() + data: packed.getData_asU8(), }; }, - async mintNft(owner: string, options: MintArgs): Promise { - const erc = await provider.contract(ERC1155_abi, options.contract); - await erc.mint(owner, EthBN.from(options.token.toString()), 1).send(); - await erc.setURI(options.token, options.uri).send(); - }, - nftUri: nftUri - , - async transferNativeToForeign(sender: string, chain_nonce: number, to: string, value: string): Promise<[string, string]> { - setSigner(sender) - let res = await minter.freeze(chain_nonce, to).send({callValue: value}) - return await extractTxn(res.hash) + nftUri: nftUri, + async transferNativeToForeign( + sender: string, + chain_nonce: number, + to: string, + value: string + ): Promise<[string, string]> { + setSigner(sender); + let res = await minter.freeze(chain_nonce, to).send({ callValue: value }); + return await extractTxn(res.hash); }, - async unfreezeWrapped(sender: string, chain_nonce: number, to: string, value: string): Promise<[string, string]> { - setSigner(sender) + async unfreezeWrapped( + sender: string, + chain_nonce: number, + to: string, + value: string + ): Promise<[string, string]> { + setSigner(sender); const res = await minter.withdraw(chain_nonce, to, value).send(); - return await extractTxn(res.hash) + return await extractTxn(res.hash); }, - async unfreezeWrappedNft(sender: string, to: string, id: BigNumber): Promise<[string, string]> { - setSigner(sender) + async unfreezeWrappedNft( + sender: string, + to: string, + id: BigNumber + ): Promise<[string, string]> { + setSigner(sender); const res = await minter.withdraw_nft(to, id).send(); - return await extractTxn(res.hash) + return await extractTxn(res.hash); }, - async transferNftToForeign(sender: string, chain_nonce: number, to: string, id: EthNftInfo): Promise<[string, string]> { + async transferNftToForeign( + sender: string, + chain_nonce: number, + to: string, + id: EthNftInfo + ): Promise<[string, string]> { let txr; let ev; const call_data = Buffer.concat([ - Buffer.from((new Int32Array([0])).buffer), // 4 bytes padding - Buffer.from((new Int32Array([chain_nonce])).buffer).reverse(), // BE, gotta reverse - Buffer.from(to, "utf-8") + Buffer.from(new Int32Array([0]).buffer), // 4 bytes padding + Buffer.from(new Int32Array([chain_nonce]).buffer).reverse(), // BE, gotta reverse + Buffer.from(to, "utf-8"), ]); - setSigner(sender) + setSigner(sender); if (id.contract_type == "ERC721") { ev = "TransferErc721"; - const erc = await provider.contract(ERC721_abi, id.contract) - await erc.safeTransferFrom(sender, minter_addr, id.token, call_data).send() + const erc = await provider.contract(ERC721_abi, id.contract); + await erc + .safeTransferFrom(sender, minter_addr, id.token, call_data) + .send(); } else { ev = "TransferErc1155"; - const erc = await provider.contract(ERC1155_abi, id.contract) - txr = await erc.safeTransferFrom(sender, minter_addr, id.token, EthBN.from(1), call_data).send(); + const erc = await provider.contract(ERC1155_abi, id.contract); + txr = await erc + .safeTransferFrom( + sender, + minter_addr, + id.token, + EthBN.from(1), + call_data + ) + .send(); } - ev.toString() - return await extractTxn(txr.hash) + ev.toString(); + return await extractTxn(txr.hash); }, - async balanceWrappedBatch(address: string, chain_nonces: number[]): Promise> { - const res = new Map() - const balance = await erc1155.balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces).call() + async balanceWrappedBatch( + address: string, + chain_nonces: number[] + ): Promise> { + const res = new Map(); + const balance = await erc1155 + .balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces) + .call(); balance.map((e: any, i: any) => { - res.set(chain_nonces[i], new BigNumber(e.toString())) - }) - return res - }, - async balance(address: string): Promise { - const balance = await provider.trx.getBalance(address); - return new BigNumber(balance) + res.set(chain_nonces[i], new BigNumber(e.toString())); + }); + return res; }, - async balanceWrapped(address: string, chain_nonce: number): Promise { + async balanceWrapped( + address: string, + chain_nonce: number + ): Promise { const bal = await erc1155.balanceOf(address, chain_nonce).call(); - return new BigNumber(bal.toString()) - } - } -} \ No newline at end of file + return new BigNumber(bal.toString()); + }, + }; +} diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 45b6f6cf4..9b1bbbd31 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -3,9 +3,25 @@ * @module */ import BigNumber from "bignumber.js"; -import { TransferForeign, UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, TransferNftForeign, WrappedBalanceCheck, BatchWrappedBalanceCheck, DecodeWrappedNft, WrappedNft, DecodeRawNft, MintNft } from "./chain"; -import { Contract, Signer, BigNumber as EthBN, ContractFactory } from 'ethers'; -import { TransactionReceipt, TransactionResponse, Provider } from "@ethersproject/providers"; +import { + TransferForeign, + UnfreezeForeign, + UnfreezeForeignNft, + BalanceCheck, + TransferNftForeign, + WrappedBalanceCheck, + BatchWrappedBalanceCheck, + DecodeWrappedNft, + WrappedNft, + DecodeRawNft, + MintNft, +} from "./chain"; +import { Contract, Signer, BigNumber as EthBN, ContractFactory } from "ethers"; +import { + TransactionReceipt, + TransactionResponse, + Provider, +} from "@ethersproject/providers"; import { Interface } from "ethers/lib/utils"; import { abi as ERC721_abi } from "../fakeERC721.json"; import { abi as ERC1155_abi } from "../fakeERC1155.json"; @@ -17,24 +33,24 @@ type EasyBalance = string | number | EthBN; * Information required to perform NFT transfers in this chain */ export type EthNftInfo = { - contract_type: "ERC721" | "ERC1155" - contract: string, - token: EthBN -} + contract_type: "ERC721" | "ERC1155"; + contract: string; + token: EthBN; +}; /** * Arguments required for minting a new nft * - * contract: address of the sc - * token: token ID of the newly minted nft + * contract: address of the sc + * token: token ID of the newly minted nft * owner: Owner of the newly minted nft * uri: uri of the nft */ export type MintArgs = { - contract: string, - token: EasyBalance, - owner: string, - uri: string + contract: string; + token: EasyBalance; + owner: string; + uri: string; }; /** @@ -49,14 +65,14 @@ export type BaseWeb3Helper = BalanceCheck & */ MintNft & { /** - * + * * Deploy an ERC1155 smart contract * * @argument owner Owner of this smart contract * @returns Address of the deployed smart contract */ deployErc1155(owner: Signer): Promise; - } + }; /** * Traits implemented by this module @@ -71,18 +87,18 @@ export type Web3Helper = BaseWeb3Helper & DecodeWrappedNft & DecodeRawNft & { /** - * Get the uri of an nft given nft info - */ + * Get the uri of an nft given nft info + */ nftUri(info: EthNftInfo): Promise; }; function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { - return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155" + return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; } /** * Create an object implementing minimal utilities for a web3 chain - * + * * @param provider An ethers.js provider object */ export async function baseWeb3HelperFactory( @@ -98,9 +114,7 @@ export async function baseWeb3HelperFactory( // ethers BigNumber is not compatible with our bignumber return new BigNumber(bal.toString()); }, - async deployErc1155( - owner: Signer - ): Promise { + async deployErc1155(owner: Signer): Promise { const factory = ContractFactory.fromSolidity(ERC1155_contract, owner); const contract = await factory.deploy(); @@ -108,23 +122,18 @@ export async function baseWeb3HelperFactory( }, async mintNft( contract_owner: Signer, - { - contract, - token, - owner, - uri - }: MintArgs + { contract, token, owner, uri }: MintArgs ): Promise { const erc1155 = new Contract(contract, erc1155_abi, contract_owner); await erc1155.mint(owner, EthBN.from(token.toString()), 1); await erc1155.setURI(token, uri); - } - } + }, + }; } /** * Create an object implementing cross chain utilities for a web3 chain - * + * * @param provider An ethers.js provider object * @param minter_addr Address of the minter smart contract * @param minter_abi ABI of the minter smart contract @@ -146,7 +155,10 @@ export async function web3HelperFactory( return minter.connect(signer); } - async function extractTxn(txr: TransactionResponse, _evName: string): Promise<[TransactionReceipt, string]> { + async function extractTxn( + txr: TransactionResponse, + _evName: string + ): Promise<[TransactionReceipt, string]> { const receipt = await txr.wait(); const log = receipt.logs.find((log) => log.address === minter.address); if (log === undefined) { @@ -158,15 +170,13 @@ export async function web3HelperFactory( return [receipt, action_id]; } - async function nftUri( - info: EthNftInfo - ): Promise { + async function nftUri(info: EthNftInfo): Promise { if (info.contract_type == "ERC721") { const erc = new Contract(info.contract, ERC721_abi, w3); return await erc.tokenURI(info.token); } else { const erc = new Contract(info.contract, erc1155_abi, w3); - return await erc.uri(info.token) + return await erc.uri(info.token); } } @@ -174,79 +184,115 @@ export async function web3HelperFactory( return { ...base, - async balanceWrapped(address: string, chain_nonce: number): Promise { + async balanceWrapped( + address: string, + chain_nonce: number + ): Promise { const bal = await erc1155.balanceOf(address, chain_nonce); return new BigNumber(bal.toString()); }, - async balanceWrappedBatch(address: string, chain_nonces: number[]): Promise> { - const bals: EthBN[] = await erc1155.balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces); + async balanceWrappedBatch( + address: string, + chain_nonces: number[] + ): Promise> { + const bals: EthBN[] = await erc1155.balanceOfBatch( + Array(chain_nonces.length).fill(address), + chain_nonces + ); - return new Map(bals.map((v, i) => [chain_nonces[i], new BigNumber(v.toString())])); + return new Map( + bals.map((v, i) => [chain_nonces[i], new BigNumber(v.toString())]) + ); }, - async transferNativeToForeign(sender: Signer, chain_nonce: number, to: string, value: EasyBalance): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender) - .freeze(chain_nonce, to, { value }); - return await extractTxn(res, 'Transfer'); + async transferNativeToForeign( + sender: Signer, + chain_nonce: number, + to: string, + value: EasyBalance + ): Promise<[TransactionReceipt, string]> { + const res = await signedMinter(sender).freeze(chain_nonce, to, { value }); + return await extractTxn(res, "Transfer"); }, - async transferNftToForeign(sender: Signer, chain_nonce: number, to: string, id: EthNftInfo): Promise<[TransactionReceipt, string]> { + async transferNftToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: EthNftInfo + ): Promise<[TransactionReceipt, string]> { let txr; let ev; const calldata = Buffer.concat([ - Buffer.from((new Int32Array([0])).buffer), // 4 bytes padidng - Buffer.from((new Int32Array([chain_nonce])).buffer).reverse(), // BE, gotta reverse - Buffer.from(to, "utf-8") + Buffer.from(new Int32Array([0]).buffer), // 4 bytes padidng + Buffer.from(new Int32Array([chain_nonce]).buffer).reverse(), // BE, gotta reverse + Buffer.from(to, "utf-8"), ]); if (id.contract_type == "ERC721") { ev = "TransferErc721"; const erc = new Contract(id.contract, ERC721_abi, w3); - txr = await erc.connect(sender)['safeTransferFrom(address,address,uint256,bytes)'](await sender.getAddress(), minter_addr, id.token, calldata); + txr = await erc + .connect(sender) + ["safeTransferFrom(address,address,uint256,bytes)"]( + await sender.getAddress(), + minter_addr, + id.token, + calldata + ); } else { ev = "TransferErc1155"; const erc = new Contract(id.contract, erc1155_abi, w3); - txr = await erc.connect(sender).safeTransferFrom(await sender.getAddress(), minter_addr, id.token, EthBN.from(1), calldata); + txr = await erc + .connect(sender) + .safeTransferFrom( + await sender.getAddress(), + minter_addr, + id.token, + EthBN.from(1), + calldata + ); } return await extractTxn(txr, ev); }, - async unfreezeWrapped(sender: Signer, chain_nonce: number, to: string, value: EasyBalance): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender) - .withdraw(chain_nonce, to, value); + async unfreezeWrapped( + sender: Signer, + chain_nonce: number, + to: string, + value: EasyBalance + ): Promise<[TransactionReceipt, string]> { + const res = await signedMinter(sender).withdraw(chain_nonce, to, value); - return await extractTxn(res, 'Unfreeze'); + return await extractTxn(res, "Unfreeze"); }, - async unfreezeWrappedNft(sender: Signer, to: string, id: BigNumber): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender) - .withdraw_nft(to, id); + async unfreezeWrappedNft( + sender: Signer, + to: string, + id: BigNumber + ): Promise<[TransactionReceipt, string]> { + const res = await signedMinter(sender).withdraw_nft(to, id); - return await extractTxn(res, 'UnfreezeNft'); + return await extractTxn(res, "UnfreezeNft"); }, nftUri, - decodeWrappedNft( - raw_data: string - ): WrappedNft { + decodeWrappedNft(raw_data: string): WrappedNft { const u8D = Base64.toUint8Array(raw_data); const packed = NftPacked.deserializeBinary(u8D); - return { chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8() - } + data: packed.getData_asU8(), + }; }, - async decodeUrlFromRaw( - data: Uint8Array - ): Promise { + async decodeUrlFromRaw(data: Uint8Array): Promise { const packed = NftEthNative.deserializeBinary(data); const nft_info = { contract_type: contractTypeFromNftKind(packed.getNftKind()), contract: packed.getContractAddr(), - token: EthBN.from(packed.getId()) - } - + token: EthBN.from(packed.getId()), + }; return await nftUri(nft_info); }, - } + }; } diff --git a/src/socket.ts b/src/socket.ts index 9b7e0f40e..4574edd08 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -1,19 +1,28 @@ import { io, ManagerOptions, SocketOptions } from "socket.io-client"; type ChainAwaiter = { - [action_id: string]: { - resolve?: (hash: string) => void; - event_res?: string; - } | undefined; + [action_id: string]: + | { + resolve?: (hash: string) => void; + event_res?: string; + } + | undefined; }; type TxResInnerBuf = { [chain: number]: ChainAwaiter; -} +}; type TxResBuf = { - getResolver(chain_id: number, action_id: string): ((hash: string) => void) | undefined; - setResolver(chain_id: number, action_id: string, resolver: (hash: string) => void): void; + getResolver( + chain_id: number, + action_id: string + ): ((hash: string) => void) | undefined; + setResolver( + chain_id: number, + action_id: string, + resolver: (hash: string) => void + ): void; getEventRes(chain_id: number, action_id: string): string | undefined; setEventRes(chain_id: number, action_id: string, res: string): void; unsetAction(chain_id: number, action_id: string): void; @@ -24,13 +33,13 @@ type TxResBuf = { */ export type TxnSocketHelper = { /** - * + * * @param chain Nonce of the target chain * @param action_id Identifier for tracking a cross chain transaction * @returns transaction hash on the foreign chain */ waitTxHash(chain: number, action_id: string): Promise; -} +}; function txResBuf(): TxResBuf { const inner: TxResInnerBuf = {}; @@ -39,15 +48,22 @@ function txResBuf(): TxResBuf { if (inner[chain_id] === undefined) { inner[chain_id] = {}; } - } + }; return { - getResolver(chain_id: number, action_id: string): ((hash: string) => void) | undefined { + getResolver( + chain_id: number, + action_id: string + ): ((hash: string) => void) | undefined { requireChain(chain_id); return inner[chain_id][action_id]?.resolve; }, - setResolver(chain_id: number, action_id: string, resolver: (hash: string) => void): void { + setResolver( + chain_id: number, + action_id: string, + resolver: (hash: string) => void + ): void { requireChain(chain_id); inner[chain_id][action_id] = { resolve: resolver }; @@ -66,17 +82,20 @@ function txResBuf(): TxResBuf { requireChain(chain_id); inner[chain_id][action_id] = undefined; - } - } + }, + }; } /** * Create a [[TxnSocketHelper]] - * + * * @param uri URI of the Migration-Validator socket api * @param options socket.io options */ -export function txnSocketHelper(uri: string, options?: Partial): TxnSocketHelper { +export function txnSocketHelper( + uri: string, + options?: Partial +): TxnSocketHelper { const socket = io(uri, options); const buf: TxResBuf = txResBuf(); @@ -96,7 +115,6 @@ export function txnSocketHelper(uri: string, options?: Partial { const hash = buf.getEventRes(chain, action_id); @@ -105,11 +123,11 @@ export function txnSocketHelper(uri: string, options?: Partial = new Promise(r => { + const hashP: Promise = new Promise((r) => { buf.setResolver(chain, action_id, r); }); return await hashP; - } - } + }, + }; } From 109da4f0ea60978a3cfb27f02be68f8a00a17d27 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 12 Sep 2021 20:18:22 +0530 Subject: [PATCH 006/956] helpers: tron: fix tx hash --- dist/helpers/tron.js | 8 ++++---- src/helpers/tron.ts | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index a45478c86..21a6c03a1 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -98,17 +98,17 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi }, nftUri: nftUri, async transferNativeToForeign(sender, chain_nonce, to, value) { setSigner(sender); let res = await minter.freeze(chain_nonce, to).send({ callValue: value }); - return await extractTxn(res.hash); + return await extractTxn(res.txID); }, async unfreezeWrapped(sender, chain_nonce, to, value) { setSigner(sender); const res = await minter.withdraw(chain_nonce, to, value).send(); - return await extractTxn(res.hash); + return await extractTxn(res.txID); }, async unfreezeWrappedNft(sender, to, id) { setSigner(sender); const res = await minter.withdraw_nft(to, id).send(); - return await extractTxn(res.hash); + return await extractTxn(res.txID); }, async transferNftToForeign(sender, chain_nonce, to, id) { let txr; @@ -134,7 +134,7 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi .send(); } ev.toString(); - return await extractTxn(txr.hash); + return await extractTxn(txr.txID); }, async balanceWrappedBatch(address, chain_nonces) { const res = new Map(); diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index b685827fb..bb546f906 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -144,7 +144,7 @@ export async function tronHelperFactory( ): Promise<[string, string]> { setSigner(sender); let res = await minter.freeze(chain_nonce, to).send({ callValue: value }); - return await extractTxn(res.hash); + return await extractTxn(res.txID); }, async unfreezeWrapped( sender: string, @@ -154,7 +154,7 @@ export async function tronHelperFactory( ): Promise<[string, string]> { setSigner(sender); const res = await minter.withdraw(chain_nonce, to, value).send(); - return await extractTxn(res.hash); + return await extractTxn(res.txID); }, async unfreezeWrappedNft( sender: string, @@ -163,7 +163,7 @@ export async function tronHelperFactory( ): Promise<[string, string]> { setSigner(sender); const res = await minter.withdraw_nft(to, id).send(); - return await extractTxn(res.hash); + return await extractTxn(res.txID); }, async transferNftToForeign( sender: string, @@ -199,7 +199,7 @@ export async function tronHelperFactory( .send(); } ev.toString(); - return await extractTxn(txr.hash); + return await extractTxn(txr.txID); }, async balanceWrappedBatch( address: string, From f11efe3d0fdcc739034e004435ec5de94d405dfe Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 13 Sep 2021 15:26:26 +0530 Subject: [PATCH 007/956] tron: deploy erc1155: set explicit fee limit --- dist/helpers/tron.js | 3 ++- src/helpers/tron.ts | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index 21a6c03a1..f35f99488 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -47,6 +47,7 @@ async function baseTronHelperFactory(provider) { const contract = await provider.contract().new({ abi: fakeERC1155_json_1.abi, bytecode: ERC1155_contract.bytecode, + feeLimit: 3000000000 }); return contract.address; }, @@ -152,4 +153,4 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBRTVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQTBCM0MsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFpQjtJQUVqQixNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ25DLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLHFCQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0RSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEQsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZTtZQUMzQixNQUFNLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sSUFBSSx3QkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFD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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBRTVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQTBCM0MsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFpQjtJQUVqQixNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ25DLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLHFCQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0RSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEQsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZTtZQUMzQixNQUFNLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sSUFBSSx3QkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFD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 \ No newline at end of file diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index bb546f906..1e0fbf9cd 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -73,6 +73,7 @@ export async function baseTronHelperFactory( const contract = await provider.contract().new({ abi: ERC1155_abi, bytecode: ERC1155_contract.bytecode, + feeLimit: 3000000000 }); return contract.address; From 9ae8a19f4633516b15073994fee07b68be89ead1 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 13 Sep 2021 17:11:34 +0530 Subject: [PATCH 008/956] tron: fix mintNft --- dist/helpers/tron.js | 8 ++++---- src/helpers/tron.ts | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index f35f99488..d66b41a99 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -32,10 +32,10 @@ async function baseTronHelperFactory(provider) { return provider.setPrivateKey(signer); }; return { - async mintNft(owner, options) { - setSigner(owner); + async mintNft(contract_owner, options) { + setSigner(contract_owner); const erc = await provider.contract(fakeERC1155_json_1.abi, options.contract); - await erc.mint(owner, bignumber_1.BigNumber.from(options.token.toString()), 1).send(); + await erc.mint(options.owner, bignumber_1.BigNumber.from(options.token.toString()), 1).send(); await erc.setURI(options.token, options.uri).send(); }, async balance(address) { @@ -153,4 +153,4 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBRTVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQTBCM0MsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFpQjtJQUVqQixNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ25DLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLHFCQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0RSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEQsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZTtZQUMzQixNQUFNLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sSUFBSSx3QkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFD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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBRTVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQTBCM0MsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFpQjtJQUVqQixNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ25DLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFzQixFQUFFLE9BQWlCO1lBQ3JELFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxQixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlFLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkQsT0FBTyxJQUFJLHdCQUFTLENBQUMsT0FB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 \ No newline at end of file diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 1e0fbf9cd..a00a844ee 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -57,10 +57,10 @@ export async function baseTronHelperFactory( }; return { - async mintNft(owner: string, options: MintArgs): Promise { - setSigner(owner); + async mintNft(contract_owner: string, options: MintArgs): Promise { + setSigner(contract_owner); const erc = await provider.contract(ERC1155_abi, options.contract); - await erc.mint(owner, EthBN.from(options.token.toString()), 1).send(); + await erc.mint(options.owner, EthBN.from(options.token.toString()), 1).send(); await erc.setURI(options.token, options.uri).send(); }, async balance(address: string): Promise { From a0021b2b2677794cef05371e56b55b7a2a86c0fb Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 14 Sep 2021 16:42:43 +0530 Subject: [PATCH 009/956] helpers: tron: add deployMinter --- dist/Minter.json | 532 +++++++++++++++++++++++++++++++++++++++++ dist/helpers/tron.d.ts | 13 +- dist/helpers/tron.js | 32 ++- src/Minter.json | 532 +++++++++++++++++++++++++++++++++++++++++ src/helpers/tron.ts | 49 +++- 5 files changed, 1136 insertions(+), 22 deletions(-) create mode 100644 dist/Minter.json create mode 100644 src/Minter.json diff --git a/dist/Minter.json b/dist/Minter.json new file mode 100644 index 000000000..db64243fc --- /dev/null +++ b/dist/Minter.json @@ -0,0 +1,532 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Minter", + "sourceName": "contracts/Minter.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address[]", + "name": "_validators", + "type": "address[]" + }, + { + "internalType": "uint16", + "name": "_threshold", + "type": "uint16" + }, + { + "internalType": "contract XPNet", + "name": "_token", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "action_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "action_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "contract_addr", + "type": "address" + } + ], + "name": "TransferErc1155", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "action_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "contract_addr", + "type": "address" + } + ], + "name": "TransferErc721", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "action_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Unfreeze", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "action_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "UnfreezeNft", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "internalType": "string", + "name": "to", + "type": "string" + } + ], + "name": "freeze", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "validate_transfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "validate_transfer_nft", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "address payable", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "validate_unfreeze", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "contract IERC1155", + "name": "contract_addr", + "type": "address" + } + ], + "name": "validate_unfreeze_erc1155", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "contract IERC721", + "name": "contract_addr", + "type": "address" + } + ], + "name": "validate_unfreeze_erc721", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "validator_cnt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "withdraw_nft", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526000600155620100006002553480156200001d57600080fd5b50604051620032d4380380620032d48339818101604052810190620000439190620002e8565b60008351116200008a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008190620003c7565b60405180910390fd5b60008261ffff16118015620000a4575082518261ffff1611155b620000e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000dd90620003a5565b60405180910390fd5b60005b8351811015620001a35760026004600086848151811062000133577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555080806200019a90620004e8565b915050620000e9565b5082516005819055508161ffff1660008190555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000645565b600062000218620002128462000412565b620003e9565b905080838252602082019050828560208602820111156200023857600080fd5b60005b858110156200026c578162000251888262000276565b8452602084019350602083019250506001810190506200023b565b5050509392505050565b6000815190506200028781620005f7565b92915050565b600082601f8301126200029f57600080fd5b8151620002b184826020860162000201565b91505092915050565b600081519050620002cb8162000611565b92915050565b600081519050620002e2816200062b565b92915050565b600080600060608486031215620002fe57600080fd5b600084015167ffffffffffffffff8111156200031957600080fd5b62000327868287016200028d565b93505060206200033a86828701620002d1565b92505060406200034d86828701620002ba565b9150509250925092565b60006200036660128362000441565b91506200037382620005a5565b602082019050919050565b60006200038d601d8362000441565b91506200039a82620005ce565b602082019050919050565b60006020820190508181036000830152620003c08162000357565b9050919050565b60006020820190508181036000830152620003e2816200037e565b9050919050565b6000620003f562000408565b9050620004038282620004b2565b919050565b6000604051905090565b600067ffffffffffffffff82111562000430576200042f62000565565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006200045f8262000488565b9050919050565b6000620004738262000452565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620004bd8262000594565b810181811067ffffffffffffffff82111715620004df57620004de62000565565b5b80604052505050565b6000620004f582620004a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200052b576200052a62000536565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f696e76616c6964207468726573686f6c64210000000000000000000000000000600082015250565b7f56616c696461746f7273206d757374206e6f7420626520656d70747921000000600082015250565b620006028162000452565b81146200060e57600080fd5b50565b6200061c8162000466565b81146200062857600080fd5b50565b62000636816200047a565b81146200064257600080fd5b50565b612c7f80620006556000396000f3fe6080604052600436106100c25760003560e01c8063453d73651161007f578063b6c1d66311610059578063b6c1d66314610267578063bc197c8114610292578063ef1d0dec146102cf578063f23a6e61146102f8576100c2565b8063453d7365146101d85780635df93c7e146102155780638b202d8f1461023e576100c2565b806301ffc9a7146100c75780630d11f0a414610104578063150b7a021461012d5780631a8220b71461016a578063218130c51461019357806336490fb2146101af575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611c73565b610335565b6040516100fb919061236c565b60405180910390f35b34801561011057600080fd5b5061012b60048036038101906101269190611c9c565b6103af565b005b34801561013957600080fd5b50610154600480360381019061014f9190611b61565b6103c0565b6040516101619190612387565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c9190611df0565b6104f8565b005b6101ad60048036038101906101a89190611f85565b6105fa565b005b3480156101bb57600080fd5b506101d660048036038101906101d19190611e53565b610699565b005b3480156101e457600080fd5b506101ff60048036038101906101fa9190611d84565b610798565b60405161020c9190612502565b60405180910390f35b34801561022157600080fd5b5061023c60048036038101906102379190611d35565b610987565b005b34801561024a57600080fd5b5061026560048036038101906102609190611f19565b610a8a565b005b34801561027357600080fd5b5061027c610a9d565b6040516102899190612502565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190611a95565b610aa3565b6040516102c69190612387565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190611eb6565b610afb565b005b34801561030457600080fd5b5061031f600480360381019061031a9190611be1565b610c1c565b60405161032c9190612387565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857506103a782610e26565b5b9050919050565b6103bb33848484610e90565b505050565b60008061041b600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610487600880878790506104339190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f2d2ba3dca5c42419d9063a114d3f6be9edf8650e8b35098bcd58e5995d6c11546001548383898c6040516104c295949392919061265e565b60405180910390a160018060008282546104dc919061273b565b9250508190555063150b7a0260e01b9250505095945050505050565b6000610505856003611247565b905060006001811115610541577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561057a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105f3578173ffffffffffffffffffffffffffffffffffffffff1663f242432a30868660016040518563ffffffff1660e01b81526004016105c094939291906122a6565b600060405180830381600087803b1580156105da57600080fd5b505af11580156105ee573d6000803e3d6000fd5b505050505b5050505050565b6000341161063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906123e2565b60405180910390fd5b7fae6cc388e6cb7ad146f221b7fb33b2336c24effe84937090deacde6f0c9e4f2b6001548383346040516106749493929190612612565b60405180910390a1600180600082825461068e919061273b565b925050819055505050565b60006106a6856003611247565b9050600060018111156106e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561071b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610791578173ffffffffffffffffffffffffffffffffffffffff166342842e0e3086866040518463ffffffff1660e01b815260040161075e9392919061226f565b600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b505050505b5050505050565b6000806107a6866001611247565b9050600060018111156107e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561081b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68660025460016040518463ffffffff1660e01b8152600401610883939291906122fe565b600060405180830381600087803b15801561089d57600080fd5b505af11580156108b1573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260025486866040518463ffffffff1660e01b81526004016109169392919061251d565b600060405180830381600087803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b5050505060016002600082825461095b919061273b565b9250508190555060016002546109719190612791565b91505061097f565b60009150505b949350505050565b6000610994846002611247565b9050600060018111156109d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a84578273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90612462565b60405180910390fd5b5b50505050565b610a9733858585856116a8565b50505050565b60055481565b600080610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906124c2565b60405180910390fd5b63bc197c8160e01b905098975050505050505050565b6000610b08856000611247565b905060006001811115610b44577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c1557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68486856040518463ffffffff1660e01b8152600401610be293929190612335565b600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b505050505b5050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610caa57611000851015610c9857610c9330610c8b876117e8565b8585886116a8565b610ca5565b610ca430848488610e90565b5b610e12565b60018414610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612482565b60405180910390fd5b6000610d47600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610db360088087879050610d5f9190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f491f05df58ecacc555aeb87b5abf28becc511fb5c227c0bfbaf2da3e6109335e60015483838a33604051610dee95949392919061265e565b60405180910390a16001806000828254610e08919061273b565b9250508190555050505b63f23a6e6160e01b90509695505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e89341c836040518263ffffffff1660e01b8152600401610eed9190612502565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610f429190611cf4565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca868460016040518463ffffffff1660e01b8152600401610fa4939291906122fe565b600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b81526004016110319190612596565b600060405180830381600087803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b505050507f1e2291a96615bb70cc8395e1493605485ea5df7d0d6eed27295e95368bcd185e60015485858460405161109a949392919061254f565b60405180910390a160018060008282546110b4919061273b565b925050819055505050505050565b60006008826110d1919061273b565b83511015611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b90612402565b60405180910390fd5b60008260088501015190508091505092915050565b606081601f83611139919061273b565b101561117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612422565b60405180910390fd5b8183611186919061273b565b845110156111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c0906124a2565b60405180910390fd5b60608215600081146111ea576040519150600082526020820160405261123b565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611228578051835260208301925060208101905061120b565b50868552601f19601f8301166040525050505b50809150509392505050565b60006002600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d2906123a2565b60405180910390fd5b600060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561140b576040518060400160405280836003811115611362577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001600181525060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908360038111156113f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060208201518160010155905050611526565b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906123c2565b60405180910390fd5b600160066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461151e919061273b565b925050819055505b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060006001905060005460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561160357600090505b60055460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561169e5760066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550505b8091505092915050565b6110008467ffffffffffffffff16106116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906124e2565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161175593929190612335565b600060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050507fb58390b60b92155ee6f1561cf0f29316be0c0f26d248a7ff7e0b341f5fb2f898600154858585856040516117c09594939291906125c4565b60405180910390a160018060008282546117da919061273b565b925050819055505050505050565b600067ffffffffffffffff8016821115611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612442565b60405180910390fd5b819050919050565b600061185261184d846126dd565b6126b8565b90508281526020810184848401111561186a57600080fd5b6118758482856128c3565b509392505050565b600061189061188b846126dd565b6126b8565b9050828152602081018484840111156118a857600080fd5b6118b38482856128d2565b509392505050565b6000813590506118ca81612b91565b92915050565b6000813590506118df81612ba8565b92915050565b60008083601f8401126118f757600080fd5b8235905067ffffffffffffffff81111561191057600080fd5b60208301915083602082028301111561192857600080fd5b9250929050565b60008135905061193e81612bbf565b92915050565b60008083601f84011261195657600080fd5b8235905067ffffffffffffffff81111561196f57600080fd5b60208301915083600182028301111561198757600080fd5b9250929050565b60008135905061199d81612bd6565b92915050565b6000813590506119b281612bed565b92915050565b60008083601f8401126119ca57600080fd5b8235905067ffffffffffffffff8111156119e357600080fd5b6020830191508360018202830111156119fb57600080fd5b9250929050565b600082601f830112611a1357600080fd5b8135611a2384826020860161183f565b91505092915050565b600082601f830112611a3d57600080fd5b8151611a4d84826020860161187d565b91505092915050565b600081359050611a6581612c04565b92915050565b600081359050611a7a81612c1b565b92915050565b600081359050611a8f81612c32565b92915050565b60008060008060008060008060a0898b031215611ab157600080fd5b6000611abf8b828c016118bb565b9850506020611ad08b828c016118bb565b975050604089013567ffffffffffffffff811115611aed57600080fd5b611af98b828c016118e5565b9650965050606089013567ffffffffffffffff811115611b1857600080fd5b611b248b828c016118e5565b9450945050608089013567ffffffffffffffff811115611b4357600080fd5b611b4f8b828c01611944565b92509250509295985092959890939650565b600080600080600060808688031215611b7957600080fd5b6000611b87888289016118bb565b9550506020611b98888289016118bb565b9450506040611ba988828901611a6b565b935050606086013567ffffffffffffffff811115611bc657600080fd5b611bd288828901611944565b92509250509295509295909350565b60008060008060008060a08789031215611bfa57600080fd5b6000611c0889828a016118bb565b9650506020611c1989828a016118bb565b9550506040611c2a89828a01611a6b565b9450506060611c3b89828a01611a6b565b935050608087013567ffffffffffffffff811115611c5857600080fd5b611c6489828a01611944565b92509250509295509295509295565b600060208284031215611c8557600080fd5b6000611c938482850161192f565b91505092915050565b600080600060408486031215611cb157600080fd5b600084013567ffffffffffffffff811115611ccb57600080fd5b611cd7868287016119b8565b93509350506020611cea86828701611a6b565b9150509250925092565b600060208284031215611d0657600080fd5b600082015167ffffffffffffffff811115611d2057600080fd5b611d2c84828501611a2c565b91505092915050565b600080600060608486031215611d4a57600080fd5b6000611d5886828701611a56565b9350506020611d69868287016118d0565b9250506040611d7a86828701611a6b565b9150509250925092565b60008060008060608587031215611d9a57600080fd5b6000611da887828801611a56565b9450506020611db9878288016118bb565b935050604085013567ffffffffffffffff811115611dd657600080fd5b611de2878288016119b8565b925092505092959194509250565b60008060008060808587031215611e0657600080fd5b6000611e1487828801611a56565b9450506020611e25878288016118bb565b9350506040611e3687828801611a6b565b9250506060611e478782880161198e565b91505092959194509250565b60008060008060808587031215611e6957600080fd5b6000611e7787828801611a56565b9450506020611e88878288016118bb565b9350506040611e9987828801611a6b565b9250506060611eaa878288016119a3565b91505092959194509250565b60008060008060808587031215611ecc57600080fd5b6000611eda87828801611a56565b9450506020611eeb87828801611a80565b9350506040611efc878288016118bb565b9250506060611f0d87828801611a6b565b91505092959194509250565b60008060008060608587031215611f2f57600080fd5b6000611f3d87828801611a80565b945050602085013567ffffffffffffffff811115611f5a57600080fd5b611f66878288016119b8565b93509350506040611f7987828801611a6b565b91505092959194509250565b60008060408385031215611f9857600080fd5b6000611fa685828601611a80565b925050602083013567ffffffffffffffff811115611fc357600080fd5b611fcf85828601611a02565b9150509250929050565b611fe2816127c5565b82525050565b611ff1816127e9565b82525050565b612000816127f5565b82525050565b61200f8161289f565b82525050565b6000612021838561272a565b935061202e8385846128c3565b61203783612994565b840190509392505050565b600061204d8261270e565b612057818561272a565b93506120678185602086016128d2565b61207081612994565b840191505092915050565b600061208860108361272a565b9150612093826129a5565b602082019050919050565b60006120ab60148361272a565b91506120b6826129ce565b602082019050919050565b60006120ce60128361272a565b91506120d9826129f7565b602082019050919050565b60006120f160148361272a565b91506120fc82612a20565b602082019050919050565b6000612114600e8361272a565b915061211f82612a49565b602082019050919050565b600061213760268361272a565b915061214282612a72565b604082019050919050565b600061215a60148361272a565b915061216582612ac1565b602082019050919050565b600061217d60168361272a565b915061218882612aea565b602082019050919050565b60006121a0600083612719565b91506121ab82612b13565b600082019050919050565b60006121c360008361272a565b91506121ce82612b13565b600082019050919050565b60006121e660118361272a565b91506121f182612b16565b602082019050919050565b600061220960158361272a565b915061221482612b3f565b602082019050919050565b600061222c60158361272a565b915061223782612b68565b602082019050919050565b61224b81612881565b82525050565b61225a816128b1565b82525050565b6122698161288b565b82525050565b60006060820190506122846000830186611fd9565b6122916020830185611fd9565b61229e6040830184612242565b949350505050565b600060a0820190506122bb6000830187611fd9565b6122c86020830186611fd9565b6122d56040830185612242565b6122e26060830184612006565b81810360808301526122f381612193565b905095945050505050565b60006060820190506123136000830186611fd9565b6123206020830185612242565b61232d6040830184612006565b949350505050565b600060608201905061234a6000830186611fd9565b6123576020830185612251565b6123646040830184612242565b949350505050565b60006020820190506123816000830184611fe8565b92915050565b600060208201905061239c6000830184611ff7565b92915050565b600060208201905081810360008301526123bb8161207b565b9050919050565b600060208201905081810360008301526123db8161209e565b9050919050565b600060208201905081810360008301526123fb816120c1565b9050919050565b6000602082019050818103600083015261241b816120e4565b9050919050565b6000602082019050818103600083015261243b81612107565b9050919050565b6000602082019050818103600083015261245b8161212a565b9050919050565b6000602082019050818103600083015261247b8161214d565b9050919050565b6000602082019050818103600083015261249b81612170565b9050919050565b600060208201905081810360008301526124bb816121d9565b9050919050565b600060208201905081810360008301526124db816121fc565b9050919050565b600060208201905081810360008301526124fb8161221f565b9050919050565b60006020820190506125176000830184612242565b92915050565b60006040820190506125326000830186612242565b8181036020830152612545818486612015565b9050949350505050565b60006060820190506125646000830187612242565b8181036020830152612577818587612015565b9050818103604083015261258b8184612042565b905095945050505050565b60006040820190506125ab6000830184612242565b81810360208301526125bc816121b6565b905092915050565b60006080820190506125d96000830188612242565b6125e66020830187612260565b81810360408301526125f9818587612015565b90506126086060830184612242565b9695505050505050565b60006080820190506126276000830187612242565b6126346020830186612260565b81810360408301526126468185612042565b90506126556060830184612242565b95945050505050565b600060a0820190506126736000830188612242565b6126806020830187612260565b81810360408301526126928186612042565b90506126a16060830185612242565b6126ae6080830184611fd9565b9695505050505050565b60006126c26126d3565b90506126ce8282612905565b919050565b6000604051905090565b600067ffffffffffffffff8211156126f8576126f7612965565b5b61270182612994565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061274682612881565b915061275183612881565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561278657612785612936565b5b828201905092915050565b600061279c82612881565b91506127a783612881565b9250828210156127ba576127b9612936565b5b828203905092915050565b60006127d082612861565b9050919050565b60006127e282612861565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061282c826127c5565b9050919050565b600061283e826127c5565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006128aa82612881565b9050919050565b60006128bc8261288b565b9050919050565b82818337600083830152505050565b60005b838110156128f05780820151818401526020810190506128d5565b838111156128ff576000848401525b50505050565b61290e82612994565b810181811067ffffffffffffffff8211171561292d5761292c612965565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f76616c7565206d757374206265203e2030210000000000000000000000000000600082015250565b7f746f55696e7436345f6f75744f66426f756e6473000000000000000000000000600082015250565b7f736c6963655f6f766572666c6f77000000000000000000000000000000000000600082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203660008201527f3420626974730000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f5346542f465473206e6f7420737570706f727465642100000000000000000000600082015250565b50565b7f736c6963655f6f75744f66426f756e6473000000000000000000000000000000600082015250565b7f4d6574686f64206e6f7420737570706f72746564210000000000000000000000600082015250565b7f4e6f7420612046756e6769626c6520746f6b656e210000000000000000000000600082015250565b612b9a816127c5565b8114612ba557600080fd5b50565b612bb1816127d7565b8114612bbc57600080fd5b50565b612bc8816127f5565b8114612bd357600080fd5b50565b612bdf81612821565b8114612bea57600080fd5b50565b612bf681612833565b8114612c0157600080fd5b50565b612c0d81612845565b8114612c1857600080fd5b50565b612c2481612881565b8114612c2f57600080fd5b50565b612c3b8161288b565b8114612c4657600080fd5b5056fea2646970667358221220efd3b349cb0870470c3a67be5ced52ec66e5016b0be060f42b2a5b1efd7a9d6164736f6c63430008040033", + "deployedBytecode": "0x6080604052600436106100c25760003560e01c8063453d73651161007f578063b6c1d66311610059578063b6c1d66314610267578063bc197c8114610292578063ef1d0dec146102cf578063f23a6e61146102f8576100c2565b8063453d7365146101d85780635df93c7e146102155780638b202d8f1461023e576100c2565b806301ffc9a7146100c75780630d11f0a414610104578063150b7a021461012d5780631a8220b71461016a578063218130c51461019357806336490fb2146101af575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611c73565b610335565b6040516100fb919061236c565b60405180910390f35b34801561011057600080fd5b5061012b60048036038101906101269190611c9c565b6103af565b005b34801561013957600080fd5b50610154600480360381019061014f9190611b61565b6103c0565b6040516101619190612387565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c9190611df0565b6104f8565b005b6101ad60048036038101906101a89190611f85565b6105fa565b005b3480156101bb57600080fd5b506101d660048036038101906101d19190611e53565b610699565b005b3480156101e457600080fd5b506101ff60048036038101906101fa9190611d84565b610798565b60405161020c9190612502565b60405180910390f35b34801561022157600080fd5b5061023c60048036038101906102379190611d35565b610987565b005b34801561024a57600080fd5b5061026560048036038101906102609190611f19565b610a8a565b005b34801561027357600080fd5b5061027c610a9d565b6040516102899190612502565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190611a95565b610aa3565b6040516102c69190612387565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190611eb6565b610afb565b005b34801561030457600080fd5b5061031f600480360381019061031a9190611be1565b610c1c565b60405161032c9190612387565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857506103a782610e26565b5b9050919050565b6103bb33848484610e90565b505050565b60008061041b600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610487600880878790506104339190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f2d2ba3dca5c42419d9063a114d3f6be9edf8650e8b35098bcd58e5995d6c11546001548383898c6040516104c295949392919061265e565b60405180910390a160018060008282546104dc919061273b565b9250508190555063150b7a0260e01b9250505095945050505050565b6000610505856003611247565b905060006001811115610541577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561057a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105f3578173ffffffffffffffffffffffffffffffffffffffff1663f242432a30868660016040518563ffffffff1660e01b81526004016105c094939291906122a6565b600060405180830381600087803b1580156105da57600080fd5b505af11580156105ee573d6000803e3d6000fd5b505050505b5050505050565b6000341161063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906123e2565b60405180910390fd5b7fae6cc388e6cb7ad146f221b7fb33b2336c24effe84937090deacde6f0c9e4f2b6001548383346040516106749493929190612612565b60405180910390a1600180600082825461068e919061273b565b925050819055505050565b60006106a6856003611247565b9050600060018111156106e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561071b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610791578173ffffffffffffffffffffffffffffffffffffffff166342842e0e3086866040518463ffffffff1660e01b815260040161075e9392919061226f565b600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b505050505b5050505050565b6000806107a6866001611247565b9050600060018111156107e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561081b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68660025460016040518463ffffffff1660e01b8152600401610883939291906122fe565b600060405180830381600087803b15801561089d57600080fd5b505af11580156108b1573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260025486866040518463ffffffff1660e01b81526004016109169392919061251d565b600060405180830381600087803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b5050505060016002600082825461095b919061273b565b9250508190555060016002546109719190612791565b91505061097f565b60009150505b949350505050565b6000610994846002611247565b9050600060018111156109d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a84578273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90612462565b60405180910390fd5b5b50505050565b610a9733858585856116a8565b50505050565b60055481565b600080610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906124c2565b60405180910390fd5b63bc197c8160e01b905098975050505050505050565b6000610b08856000611247565b905060006001811115610b44577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c1557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68486856040518463ffffffff1660e01b8152600401610be293929190612335565b600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b505050505b5050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610caa57611000851015610c9857610c9330610c8b876117e8565b8585886116a8565b610ca5565b610ca430848488610e90565b5b610e12565b60018414610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612482565b60405180910390fd5b6000610d47600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610db360088087879050610d5f9190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f491f05df58ecacc555aeb87b5abf28becc511fb5c227c0bfbaf2da3e6109335e60015483838a33604051610dee95949392919061265e565b60405180910390a16001806000828254610e08919061273b565b9250508190555050505b63f23a6e6160e01b90509695505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e89341c836040518263ffffffff1660e01b8152600401610eed9190612502565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610f429190611cf4565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca868460016040518463ffffffff1660e01b8152600401610fa4939291906122fe565b600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b81526004016110319190612596565b600060405180830381600087803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b505050507f1e2291a96615bb70cc8395e1493605485ea5df7d0d6eed27295e95368bcd185e60015485858460405161109a949392919061254f565b60405180910390a160018060008282546110b4919061273b565b925050819055505050505050565b60006008826110d1919061273b565b83511015611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b90612402565b60405180910390fd5b60008260088501015190508091505092915050565b606081601f83611139919061273b565b101561117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612422565b60405180910390fd5b8183611186919061273b565b845110156111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c0906124a2565b60405180910390fd5b60608215600081146111ea576040519150600082526020820160405261123b565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611228578051835260208301925060208101905061120b565b50868552601f19601f8301166040525050505b50809150509392505050565b60006002600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d2906123a2565b60405180910390fd5b600060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561140b576040518060400160405280836003811115611362577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001600181525060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908360038111156113f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060208201518160010155905050611526565b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906123c2565b60405180910390fd5b600160066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461151e919061273b565b925050819055505b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060006001905060005460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561160357600090505b60055460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561169e5760066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550505b8091505092915050565b6110008467ffffffffffffffff16106116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906124e2565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161175593929190612335565b600060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050507fb58390b60b92155ee6f1561cf0f29316be0c0f26d248a7ff7e0b341f5fb2f898600154858585856040516117c09594939291906125c4565b60405180910390a160018060008282546117da919061273b565b925050819055505050505050565b600067ffffffffffffffff8016821115611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612442565b60405180910390fd5b819050919050565b600061185261184d846126dd565b6126b8565b90508281526020810184848401111561186a57600080fd5b6118758482856128c3565b509392505050565b600061189061188b846126dd565b6126b8565b9050828152602081018484840111156118a857600080fd5b6118b38482856128d2565b509392505050565b6000813590506118ca81612b91565b92915050565b6000813590506118df81612ba8565b92915050565b60008083601f8401126118f757600080fd5b8235905067ffffffffffffffff81111561191057600080fd5b60208301915083602082028301111561192857600080fd5b9250929050565b60008135905061193e81612bbf565b92915050565b60008083601f84011261195657600080fd5b8235905067ffffffffffffffff81111561196f57600080fd5b60208301915083600182028301111561198757600080fd5b9250929050565b60008135905061199d81612bd6565b92915050565b6000813590506119b281612bed565b92915050565b60008083601f8401126119ca57600080fd5b8235905067ffffffffffffffff8111156119e357600080fd5b6020830191508360018202830111156119fb57600080fd5b9250929050565b600082601f830112611a1357600080fd5b8135611a2384826020860161183f565b91505092915050565b600082601f830112611a3d57600080fd5b8151611a4d84826020860161187d565b91505092915050565b600081359050611a6581612c04565b92915050565b600081359050611a7a81612c1b565b92915050565b600081359050611a8f81612c32565b92915050565b60008060008060008060008060a0898b031215611ab157600080fd5b6000611abf8b828c016118bb565b9850506020611ad08b828c016118bb565b975050604089013567ffffffffffffffff811115611aed57600080fd5b611af98b828c016118e5565b9650965050606089013567ffffffffffffffff811115611b1857600080fd5b611b248b828c016118e5565b9450945050608089013567ffffffffffffffff811115611b4357600080fd5b611b4f8b828c01611944565b92509250509295985092959890939650565b600080600080600060808688031215611b7957600080fd5b6000611b87888289016118bb565b9550506020611b98888289016118bb565b9450506040611ba988828901611a6b565b935050606086013567ffffffffffffffff811115611bc657600080fd5b611bd288828901611944565b92509250509295509295909350565b60008060008060008060a08789031215611bfa57600080fd5b6000611c0889828a016118bb565b9650506020611c1989828a016118bb565b9550506040611c2a89828a01611a6b565b9450506060611c3b89828a01611a6b565b935050608087013567ffffffffffffffff811115611c5857600080fd5b611c6489828a01611944565b92509250509295509295509295565b600060208284031215611c8557600080fd5b6000611c938482850161192f565b91505092915050565b600080600060408486031215611cb157600080fd5b600084013567ffffffffffffffff811115611ccb57600080fd5b611cd7868287016119b8565b93509350506020611cea86828701611a6b565b9150509250925092565b600060208284031215611d0657600080fd5b600082015167ffffffffffffffff811115611d2057600080fd5b611d2c84828501611a2c565b91505092915050565b600080600060608486031215611d4a57600080fd5b6000611d5886828701611a56565b9350506020611d69868287016118d0565b9250506040611d7a86828701611a6b565b9150509250925092565b60008060008060608587031215611d9a57600080fd5b6000611da887828801611a56565b9450506020611db9878288016118bb565b935050604085013567ffffffffffffffff811115611dd657600080fd5b611de2878288016119b8565b925092505092959194509250565b60008060008060808587031215611e0657600080fd5b6000611e1487828801611a56565b9450506020611e25878288016118bb565b9350506040611e3687828801611a6b565b9250506060611e478782880161198e565b91505092959194509250565b60008060008060808587031215611e6957600080fd5b6000611e7787828801611a56565b9450506020611e88878288016118bb565b9350506040611e9987828801611a6b565b9250506060611eaa878288016119a3565b91505092959194509250565b60008060008060808587031215611ecc57600080fd5b6000611eda87828801611a56565b9450506020611eeb87828801611a80565b9350506040611efc878288016118bb565b9250506060611f0d87828801611a6b565b91505092959194509250565b60008060008060608587031215611f2f57600080fd5b6000611f3d87828801611a80565b945050602085013567ffffffffffffffff811115611f5a57600080fd5b611f66878288016119b8565b93509350506040611f7987828801611a6b565b91505092959194509250565b60008060408385031215611f9857600080fd5b6000611fa685828601611a80565b925050602083013567ffffffffffffffff811115611fc357600080fd5b611fcf85828601611a02565b9150509250929050565b611fe2816127c5565b82525050565b611ff1816127e9565b82525050565b612000816127f5565b82525050565b61200f8161289f565b82525050565b6000612021838561272a565b935061202e8385846128c3565b61203783612994565b840190509392505050565b600061204d8261270e565b612057818561272a565b93506120678185602086016128d2565b61207081612994565b840191505092915050565b600061208860108361272a565b9150612093826129a5565b602082019050919050565b60006120ab60148361272a565b91506120b6826129ce565b602082019050919050565b60006120ce60128361272a565b91506120d9826129f7565b602082019050919050565b60006120f160148361272a565b91506120fc82612a20565b602082019050919050565b6000612114600e8361272a565b915061211f82612a49565b602082019050919050565b600061213760268361272a565b915061214282612a72565b604082019050919050565b600061215a60148361272a565b915061216582612ac1565b602082019050919050565b600061217d60168361272a565b915061218882612aea565b602082019050919050565b60006121a0600083612719565b91506121ab82612b13565b600082019050919050565b60006121c360008361272a565b91506121ce82612b13565b600082019050919050565b60006121e660118361272a565b91506121f182612b16565b602082019050919050565b600061220960158361272a565b915061221482612b3f565b602082019050919050565b600061222c60158361272a565b915061223782612b68565b602082019050919050565b61224b81612881565b82525050565b61225a816128b1565b82525050565b6122698161288b565b82525050565b60006060820190506122846000830186611fd9565b6122916020830185611fd9565b61229e6040830184612242565b949350505050565b600060a0820190506122bb6000830187611fd9565b6122c86020830186611fd9565b6122d56040830185612242565b6122e26060830184612006565b81810360808301526122f381612193565b905095945050505050565b60006060820190506123136000830186611fd9565b6123206020830185612242565b61232d6040830184612006565b949350505050565b600060608201905061234a6000830186611fd9565b6123576020830185612251565b6123646040830184612242565b949350505050565b60006020820190506123816000830184611fe8565b92915050565b600060208201905061239c6000830184611ff7565b92915050565b600060208201905081810360008301526123bb8161207b565b9050919050565b600060208201905081810360008301526123db8161209e565b9050919050565b600060208201905081810360008301526123fb816120c1565b9050919050565b6000602082019050818103600083015261241b816120e4565b9050919050565b6000602082019050818103600083015261243b81612107565b9050919050565b6000602082019050818103600083015261245b8161212a565b9050919050565b6000602082019050818103600083015261247b8161214d565b9050919050565b6000602082019050818103600083015261249b81612170565b9050919050565b600060208201905081810360008301526124bb816121d9565b9050919050565b600060208201905081810360008301526124db816121fc565b9050919050565b600060208201905081810360008301526124fb8161221f565b9050919050565b60006020820190506125176000830184612242565b92915050565b60006040820190506125326000830186612242565b8181036020830152612545818486612015565b9050949350505050565b60006060820190506125646000830187612242565b8181036020830152612577818587612015565b9050818103604083015261258b8184612042565b905095945050505050565b60006040820190506125ab6000830184612242565b81810360208301526125bc816121b6565b905092915050565b60006080820190506125d96000830188612242565b6125e66020830187612260565b81810360408301526125f9818587612015565b90506126086060830184612242565b9695505050505050565b60006080820190506126276000830187612242565b6126346020830186612260565b81810360408301526126468185612042565b90506126556060830184612242565b95945050505050565b600060a0820190506126736000830188612242565b6126806020830187612260565b81810360408301526126928186612042565b90506126a16060830185612242565b6126ae6080830184611fd9565b9695505050505050565b60006126c26126d3565b90506126ce8282612905565b919050565b6000604051905090565b600067ffffffffffffffff8211156126f8576126f7612965565b5b61270182612994565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061274682612881565b915061275183612881565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561278657612785612936565b5b828201905092915050565b600061279c82612881565b91506127a783612881565b9250828210156127ba576127b9612936565b5b828203905092915050565b60006127d082612861565b9050919050565b60006127e282612861565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061282c826127c5565b9050919050565b600061283e826127c5565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006128aa82612881565b9050919050565b60006128bc8261288b565b9050919050565b82818337600083830152505050565b60005b838110156128f05780820151818401526020810190506128d5565b838111156128ff576000848401525b50505050565b61290e82612994565b810181811067ffffffffffffffff8211171561292d5761292c612965565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f76616c7565206d757374206265203e2030210000000000000000000000000000600082015250565b7f746f55696e7436345f6f75744f66426f756e6473000000000000000000000000600082015250565b7f736c6963655f6f766572666c6f77000000000000000000000000000000000000600082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203660008201527f3420626974730000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f5346542f465473206e6f7420737570706f727465642100000000000000000000600082015250565b50565b7f736c6963655f6f75744f66426f756e6473000000000000000000000000000000600082015250565b7f4d6574686f64206e6f7420737570706f72746564210000000000000000000000600082015250565b7f4e6f7420612046756e6769626c6520746f6b656e210000000000000000000000600082015250565b612b9a816127c5565b8114612ba557600080fd5b50565b612bb1816127d7565b8114612bbc57600080fd5b50565b612bc8816127f5565b8114612bd357600080fd5b50565b612bdf81612821565b8114612bea57600080fd5b50565b612bf681612833565b8114612c0157600080fd5b50565b612c0d81612845565b8114612c1857600080fd5b50565b612c2481612881565b8114612c2f57600080fd5b50565b612c3b8161288b565b8114612c4657600080fd5b5056fea2646970667358221220efd3b349cb0870470c3a67be5ced52ec66e5016b0be060f42b2a5b1efd7a9d6164736f6c63430008040033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts index 7a4916876..9c0e09306 100644 --- a/dist/helpers/tron.d.ts +++ b/dist/helpers/tron.d.ts @@ -2,7 +2,6 @@ import { BigNumber } from "bignumber.js"; import { BalanceCheck, BatchWrappedBalanceCheck, DecodeRawNft, DecodeWrappedNft, MintNft, TransferForeign, TransferNftForeign, UnfreezeForeign, UnfreezeForeignNft, WrappedBalanceCheck } from "./chain"; import { TronWeb } from "tronweb"; import { EthNftInfo, MintArgs } from "./web3"; -import { Interface } from "ethers/lib/utils"; export declare type BaseTronHelper = BalanceCheck & MintNft & { /** * @@ -12,9 +11,19 @@ export declare type BaseTronHelper = BalanceCheck & MintNft; + /** + * Deploy Minter Smart Contract + * + * @argument deployer deployer of the smart contract + * @argument validators address of validators of the smart contract + * @argument threshold threshold for executing an action + * + * @returns minter address, wrapper token address + */ + deployMinter(deployer: string, validators: string[], threshold: number): Promise<[string, string]>; }; export declare type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { nftUri(info: EthNftInfo): Promise; }; export declare function baseTronHelperFactory(provider: TronWeb): Promise; -export declare function tronHelperFactory(provider: TronWeb, erc1155_addr: string, minter_addr: string, minter_abi: Interface): Promise; +export declare function tronHelperFactory(provider: TronWeb, erc1155_addr: string, minter_addr: string, minter_abi: JSON): Promise; diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index d66b41a99..c2c9c3e3f 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -27,10 +27,20 @@ const fakeERC721_json_1 = require("../fakeERC721.json"); const js_base64_1 = require("js-base64"); const encoding_1 = require("validator/dist/encoding"); const ERC1155_contract = __importStar(require("../XPNet.json")); +const Minter_contract = __importStar(require("../Minter.json")); async function baseTronHelperFactory(provider) { const setSigner = (signer) => { return provider.setPrivateKey(signer); }; + const deployErc1155_i = async (owner) => { + setSigner(owner); + const contract = await provider.contract().new({ + abi: fakeERC1155_json_1.abi, + bytecode: ERC1155_contract.bytecode, + feeLimit: 3000000000 + }); + return contract; + }; return { async mintNft(contract_owner, options) { setSigner(contract_owner); @@ -42,15 +52,19 @@ async function baseTronHelperFactory(provider) { const balance = await provider.trx.getBalance(address); return new bignumber_js_1.BigNumber(balance); }, - async deployErc1155(owner) { - setSigner(owner); - const contract = await provider.contract().new({ - abi: fakeERC1155_json_1.abi, - bytecode: ERC1155_contract.bytecode, - feeLimit: 3000000000 + deployErc1155: async (owner) => await deployErc1155_i(owner).then((c) => c.address), + async deployMinter(deployer, validators, threshold) { + setSigner(deployer); // deployErc1155 sets this anyways but we don't wanna depend on side effects + const xpnet = await deployErc1155_i(deployer); + const minter = await provider.contract().new({ + abi: Minter_contract.abi, + bytecode: Minter_contract.bytecode, + feeLimit: 3000000000, + paramters: [...validators, threshold] }); - return contract.address; - }, + await xpnet.transferOwnership(minter.address).send(); + return [minter.address, xpnet.address]; + } }; } exports.baseTronHelperFactory = baseTronHelperFactory; @@ -153,4 +167,4 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBRTVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQTBCM0MsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFpQjtJQUVqQixNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ25DLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFzQixFQUFFLE9BQWlCO1lBQ3JELFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxQixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlFLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkQsT0FBTyxJQUFJLHdCQUFTLENBQUMsT0FB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFvQzNDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDOUMsR0FBRyxFQUFFLHNCQUFXO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxVQUFVO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBaUI7WUFDckQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxxQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEs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 \ No newline at end of file diff --git a/src/Minter.json b/src/Minter.json new file mode 100644 index 000000000..7b534772b --- /dev/null +++ b/src/Minter.json @@ -0,0 +1,532 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Minter", + "sourceName": "contracts/Minter.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address[]", + "name": "_validators", + "type": "address[]" + }, + { + "internalType": "uint16", + "name": "_threshold", + "type": "uint16" + }, + { + "internalType": "contract XPNet", + "name": "_token", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "action_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "action_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "contract_addr", + "type": "address" + } + ], + "name": "TransferErc1155", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "action_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "contract_addr", + "type": "address" + } + ], + "name": "TransferErc721", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "action_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Unfreeze", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "action_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "UnfreezeNft", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "internalType": "string", + "name": "to", + "type": "string" + } + ], + "name": "freeze", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "validate_transfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "string", + "name": "data", + "type": "string" + } + ], + "name": "validate_transfer_nft", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "address payable", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "validate_unfreeze", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "contract IERC1155", + "name": "contract_addr", + "type": "address" + } + ], + "name": "validate_unfreeze_erc1155", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "contract IERC721", + "name": "contract_addr", + "type": "address" + } + ], + "name": "validate_unfreeze_erc721", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "validator_cnt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" + }, + { + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "to", + "type": "string" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "withdraw_nft", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526000600155620100006002553480156200001d57600080fd5b50604051620032d4380380620032d48339818101604052810190620000439190620002e8565b60008351116200008a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008190620003c7565b60405180910390fd5b60008261ffff16118015620000a4575082518261ffff1611155b620000e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000dd90620003a5565b60405180910390fd5b60005b8351811015620001a35760026004600086848151811062000133577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555080806200019a90620004e8565b915050620000e9565b5082516005819055508161ffff1660008190555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000645565b600062000218620002128462000412565b620003e9565b905080838252602082019050828560208602820111156200023857600080fd5b60005b858110156200026c578162000251888262000276565b8452602084019350602083019250506001810190506200023b565b5050509392505050565b6000815190506200028781620005f7565b92915050565b600082601f8301126200029f57600080fd5b8151620002b184826020860162000201565b91505092915050565b600081519050620002cb8162000611565b92915050565b600081519050620002e2816200062b565b92915050565b600080600060608486031215620002fe57600080fd5b600084015167ffffffffffffffff8111156200031957600080fd5b62000327868287016200028d565b93505060206200033a86828701620002d1565b92505060406200034d86828701620002ba565b9150509250925092565b60006200036660128362000441565b91506200037382620005a5565b602082019050919050565b60006200038d601d8362000441565b91506200039a82620005ce565b602082019050919050565b60006020820190508181036000830152620003c08162000357565b9050919050565b60006020820190508181036000830152620003e2816200037e565b9050919050565b6000620003f562000408565b9050620004038282620004b2565b919050565b6000604051905090565b600067ffffffffffffffff82111562000430576200042f62000565565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006200045f8262000488565b9050919050565b6000620004738262000452565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620004bd8262000594565b810181811067ffffffffffffffff82111715620004df57620004de62000565565b5b80604052505050565b6000620004f582620004a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200052b576200052a62000536565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f696e76616c6964207468726573686f6c64210000000000000000000000000000600082015250565b7f56616c696461746f7273206d757374206e6f7420626520656d70747921000000600082015250565b620006028162000452565b81146200060e57600080fd5b50565b6200061c8162000466565b81146200062857600080fd5b50565b62000636816200047a565b81146200064257600080fd5b50565b612c7f80620006556000396000f3fe6080604052600436106100c25760003560e01c8063453d73651161007f578063b6c1d66311610059578063b6c1d66314610267578063bc197c8114610292578063ef1d0dec146102cf578063f23a6e61146102f8576100c2565b8063453d7365146101d85780635df93c7e146102155780638b202d8f1461023e576100c2565b806301ffc9a7146100c75780630d11f0a414610104578063150b7a021461012d5780631a8220b71461016a578063218130c51461019357806336490fb2146101af575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611c73565b610335565b6040516100fb919061236c565b60405180910390f35b34801561011057600080fd5b5061012b60048036038101906101269190611c9c565b6103af565b005b34801561013957600080fd5b50610154600480360381019061014f9190611b61565b6103c0565b6040516101619190612387565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c9190611df0565b6104f8565b005b6101ad60048036038101906101a89190611f85565b6105fa565b005b3480156101bb57600080fd5b506101d660048036038101906101d19190611e53565b610699565b005b3480156101e457600080fd5b506101ff60048036038101906101fa9190611d84565b610798565b60405161020c9190612502565b60405180910390f35b34801561022157600080fd5b5061023c60048036038101906102379190611d35565b610987565b005b34801561024a57600080fd5b5061026560048036038101906102609190611f19565b610a8a565b005b34801561027357600080fd5b5061027c610a9d565b6040516102899190612502565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190611a95565b610aa3565b6040516102c69190612387565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190611eb6565b610afb565b005b34801561030457600080fd5b5061031f600480360381019061031a9190611be1565b610c1c565b60405161032c9190612387565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857506103a782610e26565b5b9050919050565b6103bb33848484610e90565b505050565b60008061041b600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610487600880878790506104339190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f2d2ba3dca5c42419d9063a114d3f6be9edf8650e8b35098bcd58e5995d6c11546001548383898c6040516104c295949392919061265e565b60405180910390a160018060008282546104dc919061273b565b9250508190555063150b7a0260e01b9250505095945050505050565b6000610505856003611247565b905060006001811115610541577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561057a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105f3578173ffffffffffffffffffffffffffffffffffffffff1663f242432a30868660016040518563ffffffff1660e01b81526004016105c094939291906122a6565b600060405180830381600087803b1580156105da57600080fd5b505af11580156105ee573d6000803e3d6000fd5b505050505b5050505050565b6000341161063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906123e2565b60405180910390fd5b7fae6cc388e6cb7ad146f221b7fb33b2336c24effe84937090deacde6f0c9e4f2b6001548383346040516106749493929190612612565b60405180910390a1600180600082825461068e919061273b565b925050819055505050565b60006106a6856003611247565b9050600060018111156106e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561071b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610791578173ffffffffffffffffffffffffffffffffffffffff166342842e0e3086866040518463ffffffff1660e01b815260040161075e9392919061226f565b600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b505050505b5050505050565b6000806107a6866001611247565b9050600060018111156107e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561081b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68660025460016040518463ffffffff1660e01b8152600401610883939291906122fe565b600060405180830381600087803b15801561089d57600080fd5b505af11580156108b1573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260025486866040518463ffffffff1660e01b81526004016109169392919061251d565b600060405180830381600087803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b5050505060016002600082825461095b919061273b565b9250508190555060016002546109719190612791565b91505061097f565b60009150505b949350505050565b6000610994846002611247565b9050600060018111156109d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a84578273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90612462565b60405180910390fd5b5b50505050565b610a9733858585856116a8565b50505050565b60055481565b600080610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906124c2565b60405180910390fd5b63bc197c8160e01b905098975050505050505050565b6000610b08856000611247565b905060006001811115610b44577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c1557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68486856040518463ffffffff1660e01b8152600401610be293929190612335565b600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b505050505b5050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610caa57611000851015610c9857610c9330610c8b876117e8565b8585886116a8565b610ca5565b610ca430848488610e90565b5b610e12565b60018414610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612482565b60405180910390fd5b6000610d47600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610db360088087879050610d5f9190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f491f05df58ecacc555aeb87b5abf28becc511fb5c227c0bfbaf2da3e6109335e60015483838a33604051610dee95949392919061265e565b60405180910390a16001806000828254610e08919061273b565b9250508190555050505b63f23a6e6160e01b90509695505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e89341c836040518263ffffffff1660e01b8152600401610eed9190612502565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610f429190611cf4565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca868460016040518463ffffffff1660e01b8152600401610fa4939291906122fe565b600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b81526004016110319190612596565b600060405180830381600087803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b505050507f1e2291a96615bb70cc8395e1493605485ea5df7d0d6eed27295e95368bcd185e60015485858460405161109a949392919061254f565b60405180910390a160018060008282546110b4919061273b565b925050819055505050505050565b60006008826110d1919061273b565b83511015611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b90612402565b60405180910390fd5b60008260088501015190508091505092915050565b606081601f83611139919061273b565b101561117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612422565b60405180910390fd5b8183611186919061273b565b845110156111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c0906124a2565b60405180910390fd5b60608215600081146111ea576040519150600082526020820160405261123b565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611228578051835260208301925060208101905061120b565b50868552601f19601f8301166040525050505b50809150509392505050565b60006002600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d2906123a2565b60405180910390fd5b600060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561140b576040518060400160405280836003811115611362577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001600181525060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908360038111156113f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060208201518160010155905050611526565b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906123c2565b60405180910390fd5b600160066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461151e919061273b565b925050819055505b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060006001905060005460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561160357600090505b60055460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561169e5760066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550505b8091505092915050565b6110008467ffffffffffffffff16106116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906124e2565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161175593929190612335565b600060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050507fb58390b60b92155ee6f1561cf0f29316be0c0f26d248a7ff7e0b341f5fb2f898600154858585856040516117c09594939291906125c4565b60405180910390a160018060008282546117da919061273b565b925050819055505050505050565b600067ffffffffffffffff8016821115611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612442565b60405180910390fd5b819050919050565b600061185261184d846126dd565b6126b8565b90508281526020810184848401111561186a57600080fd5b6118758482856128c3565b509392505050565b600061189061188b846126dd565b6126b8565b9050828152602081018484840111156118a857600080fd5b6118b38482856128d2565b509392505050565b6000813590506118ca81612b91565b92915050565b6000813590506118df81612ba8565b92915050565b60008083601f8401126118f757600080fd5b8235905067ffffffffffffffff81111561191057600080fd5b60208301915083602082028301111561192857600080fd5b9250929050565b60008135905061193e81612bbf565b92915050565b60008083601f84011261195657600080fd5b8235905067ffffffffffffffff81111561196f57600080fd5b60208301915083600182028301111561198757600080fd5b9250929050565b60008135905061199d81612bd6565b92915050565b6000813590506119b281612bed565b92915050565b60008083601f8401126119ca57600080fd5b8235905067ffffffffffffffff8111156119e357600080fd5b6020830191508360018202830111156119fb57600080fd5b9250929050565b600082601f830112611a1357600080fd5b8135611a2384826020860161183f565b91505092915050565b600082601f830112611a3d57600080fd5b8151611a4d84826020860161187d565b91505092915050565b600081359050611a6581612c04565b92915050565b600081359050611a7a81612c1b565b92915050565b600081359050611a8f81612c32565b92915050565b60008060008060008060008060a0898b031215611ab157600080fd5b6000611abf8b828c016118bb565b9850506020611ad08b828c016118bb565b975050604089013567ffffffffffffffff811115611aed57600080fd5b611af98b828c016118e5565b9650965050606089013567ffffffffffffffff811115611b1857600080fd5b611b248b828c016118e5565b9450945050608089013567ffffffffffffffff811115611b4357600080fd5b611b4f8b828c01611944565b92509250509295985092959890939650565b600080600080600060808688031215611b7957600080fd5b6000611b87888289016118bb565b9550506020611b98888289016118bb565b9450506040611ba988828901611a6b565b935050606086013567ffffffffffffffff811115611bc657600080fd5b611bd288828901611944565b92509250509295509295909350565b60008060008060008060a08789031215611bfa57600080fd5b6000611c0889828a016118bb565b9650506020611c1989828a016118bb565b9550506040611c2a89828a01611a6b565b9450506060611c3b89828a01611a6b565b935050608087013567ffffffffffffffff811115611c5857600080fd5b611c6489828a01611944565b92509250509295509295509295565b600060208284031215611c8557600080fd5b6000611c938482850161192f565b91505092915050565b600080600060408486031215611cb157600080fd5b600084013567ffffffffffffffff811115611ccb57600080fd5b611cd7868287016119b8565b93509350506020611cea86828701611a6b565b9150509250925092565b600060208284031215611d0657600080fd5b600082015167ffffffffffffffff811115611d2057600080fd5b611d2c84828501611a2c565b91505092915050565b600080600060608486031215611d4a57600080fd5b6000611d5886828701611a56565b9350506020611d69868287016118d0565b9250506040611d7a86828701611a6b565b9150509250925092565b60008060008060608587031215611d9a57600080fd5b6000611da887828801611a56565b9450506020611db9878288016118bb565b935050604085013567ffffffffffffffff811115611dd657600080fd5b611de2878288016119b8565b925092505092959194509250565b60008060008060808587031215611e0657600080fd5b6000611e1487828801611a56565b9450506020611e25878288016118bb565b9350506040611e3687828801611a6b565b9250506060611e478782880161198e565b91505092959194509250565b60008060008060808587031215611e6957600080fd5b6000611e7787828801611a56565b9450506020611e88878288016118bb565b9350506040611e9987828801611a6b565b9250506060611eaa878288016119a3565b91505092959194509250565b60008060008060808587031215611ecc57600080fd5b6000611eda87828801611a56565b9450506020611eeb87828801611a80565b9350506040611efc878288016118bb565b9250506060611f0d87828801611a6b565b91505092959194509250565b60008060008060608587031215611f2f57600080fd5b6000611f3d87828801611a80565b945050602085013567ffffffffffffffff811115611f5a57600080fd5b611f66878288016119b8565b93509350506040611f7987828801611a6b565b91505092959194509250565b60008060408385031215611f9857600080fd5b6000611fa685828601611a80565b925050602083013567ffffffffffffffff811115611fc357600080fd5b611fcf85828601611a02565b9150509250929050565b611fe2816127c5565b82525050565b611ff1816127e9565b82525050565b612000816127f5565b82525050565b61200f8161289f565b82525050565b6000612021838561272a565b935061202e8385846128c3565b61203783612994565b840190509392505050565b600061204d8261270e565b612057818561272a565b93506120678185602086016128d2565b61207081612994565b840191505092915050565b600061208860108361272a565b9150612093826129a5565b602082019050919050565b60006120ab60148361272a565b91506120b6826129ce565b602082019050919050565b60006120ce60128361272a565b91506120d9826129f7565b602082019050919050565b60006120f160148361272a565b91506120fc82612a20565b602082019050919050565b6000612114600e8361272a565b915061211f82612a49565b602082019050919050565b600061213760268361272a565b915061214282612a72565b604082019050919050565b600061215a60148361272a565b915061216582612ac1565b602082019050919050565b600061217d60168361272a565b915061218882612aea565b602082019050919050565b60006121a0600083612719565b91506121ab82612b13565b600082019050919050565b60006121c360008361272a565b91506121ce82612b13565b600082019050919050565b60006121e660118361272a565b91506121f182612b16565b602082019050919050565b600061220960158361272a565b915061221482612b3f565b602082019050919050565b600061222c60158361272a565b915061223782612b68565b602082019050919050565b61224b81612881565b82525050565b61225a816128b1565b82525050565b6122698161288b565b82525050565b60006060820190506122846000830186611fd9565b6122916020830185611fd9565b61229e6040830184612242565b949350505050565b600060a0820190506122bb6000830187611fd9565b6122c86020830186611fd9565b6122d56040830185612242565b6122e26060830184612006565b81810360808301526122f381612193565b905095945050505050565b60006060820190506123136000830186611fd9565b6123206020830185612242565b61232d6040830184612006565b949350505050565b600060608201905061234a6000830186611fd9565b6123576020830185612251565b6123646040830184612242565b949350505050565b60006020820190506123816000830184611fe8565b92915050565b600060208201905061239c6000830184611ff7565b92915050565b600060208201905081810360008301526123bb8161207b565b9050919050565b600060208201905081810360008301526123db8161209e565b9050919050565b600060208201905081810360008301526123fb816120c1565b9050919050565b6000602082019050818103600083015261241b816120e4565b9050919050565b6000602082019050818103600083015261243b81612107565b9050919050565b6000602082019050818103600083015261245b8161212a565b9050919050565b6000602082019050818103600083015261247b8161214d565b9050919050565b6000602082019050818103600083015261249b81612170565b9050919050565b600060208201905081810360008301526124bb816121d9565b9050919050565b600060208201905081810360008301526124db816121fc565b9050919050565b600060208201905081810360008301526124fb8161221f565b9050919050565b60006020820190506125176000830184612242565b92915050565b60006040820190506125326000830186612242565b8181036020830152612545818486612015565b9050949350505050565b60006060820190506125646000830187612242565b8181036020830152612577818587612015565b9050818103604083015261258b8184612042565b905095945050505050565b60006040820190506125ab6000830184612242565b81810360208301526125bc816121b6565b905092915050565b60006080820190506125d96000830188612242565b6125e66020830187612260565b81810360408301526125f9818587612015565b90506126086060830184612242565b9695505050505050565b60006080820190506126276000830187612242565b6126346020830186612260565b81810360408301526126468185612042565b90506126556060830184612242565b95945050505050565b600060a0820190506126736000830188612242565b6126806020830187612260565b81810360408301526126928186612042565b90506126a16060830185612242565b6126ae6080830184611fd9565b9695505050505050565b60006126c26126d3565b90506126ce8282612905565b919050565b6000604051905090565b600067ffffffffffffffff8211156126f8576126f7612965565b5b61270182612994565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061274682612881565b915061275183612881565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561278657612785612936565b5b828201905092915050565b600061279c82612881565b91506127a783612881565b9250828210156127ba576127b9612936565b5b828203905092915050565b60006127d082612861565b9050919050565b60006127e282612861565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061282c826127c5565b9050919050565b600061283e826127c5565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006128aa82612881565b9050919050565b60006128bc8261288b565b9050919050565b82818337600083830152505050565b60005b838110156128f05780820151818401526020810190506128d5565b838111156128ff576000848401525b50505050565b61290e82612994565b810181811067ffffffffffffffff8211171561292d5761292c612965565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f76616c7565206d757374206265203e2030210000000000000000000000000000600082015250565b7f746f55696e7436345f6f75744f66426f756e6473000000000000000000000000600082015250565b7f736c6963655f6f766572666c6f77000000000000000000000000000000000000600082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203660008201527f3420626974730000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f5346542f465473206e6f7420737570706f727465642100000000000000000000600082015250565b50565b7f736c6963655f6f75744f66426f756e6473000000000000000000000000000000600082015250565b7f4d6574686f64206e6f7420737570706f72746564210000000000000000000000600082015250565b7f4e6f7420612046756e6769626c6520746f6b656e210000000000000000000000600082015250565b612b9a816127c5565b8114612ba557600080fd5b50565b612bb1816127d7565b8114612bbc57600080fd5b50565b612bc8816127f5565b8114612bd357600080fd5b50565b612bdf81612821565b8114612bea57600080fd5b50565b612bf681612833565b8114612c0157600080fd5b50565b612c0d81612845565b8114612c1857600080fd5b50565b612c2481612881565b8114612c2f57600080fd5b50565b612c3b8161288b565b8114612c4657600080fd5b5056fea2646970667358221220efd3b349cb0870470c3a67be5ced52ec66e5016b0be060f42b2a5b1efd7a9d6164736f6c63430008040033", + "deployedBytecode": "0x6080604052600436106100c25760003560e01c8063453d73651161007f578063b6c1d66311610059578063b6c1d66314610267578063bc197c8114610292578063ef1d0dec146102cf578063f23a6e61146102f8576100c2565b8063453d7365146101d85780635df93c7e146102155780638b202d8f1461023e576100c2565b806301ffc9a7146100c75780630d11f0a414610104578063150b7a021461012d5780631a8220b71461016a578063218130c51461019357806336490fb2146101af575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611c73565b610335565b6040516100fb919061236c565b60405180910390f35b34801561011057600080fd5b5061012b60048036038101906101269190611c9c565b6103af565b005b34801561013957600080fd5b50610154600480360381019061014f9190611b61565b6103c0565b6040516101619190612387565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c9190611df0565b6104f8565b005b6101ad60048036038101906101a89190611f85565b6105fa565b005b3480156101bb57600080fd5b506101d660048036038101906101d19190611e53565b610699565b005b3480156101e457600080fd5b506101ff60048036038101906101fa9190611d84565b610798565b60405161020c9190612502565b60405180910390f35b34801561022157600080fd5b5061023c60048036038101906102379190611d35565b610987565b005b34801561024a57600080fd5b5061026560048036038101906102609190611f19565b610a8a565b005b34801561027357600080fd5b5061027c610a9d565b6040516102899190612502565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190611a95565b610aa3565b6040516102c69190612387565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190611eb6565b610afb565b005b34801561030457600080fd5b5061031f600480360381019061031a9190611be1565b610c1c565b60405161032c9190612387565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857506103a782610e26565b5b9050919050565b6103bb33848484610e90565b505050565b60008061041b600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610487600880878790506104339190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f2d2ba3dca5c42419d9063a114d3f6be9edf8650e8b35098bcd58e5995d6c11546001548383898c6040516104c295949392919061265e565b60405180910390a160018060008282546104dc919061273b565b9250508190555063150b7a0260e01b9250505095945050505050565b6000610505856003611247565b905060006001811115610541577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561057a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105f3578173ffffffffffffffffffffffffffffffffffffffff1663f242432a30868660016040518563ffffffff1660e01b81526004016105c094939291906122a6565b600060405180830381600087803b1580156105da57600080fd5b505af11580156105ee573d6000803e3d6000fd5b505050505b5050505050565b6000341161063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906123e2565b60405180910390fd5b7fae6cc388e6cb7ad146f221b7fb33b2336c24effe84937090deacde6f0c9e4f2b6001548383346040516106749493929190612612565b60405180910390a1600180600082825461068e919061273b565b925050819055505050565b60006106a6856003611247565b9050600060018111156106e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561071b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610791578173ffffffffffffffffffffffffffffffffffffffff166342842e0e3086866040518463ffffffff1660e01b815260040161075e9392919061226f565b600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b505050505b5050505050565b6000806107a6866001611247565b9050600060018111156107e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561081b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68660025460016040518463ffffffff1660e01b8152600401610883939291906122fe565b600060405180830381600087803b15801561089d57600080fd5b505af11580156108b1573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260025486866040518463ffffffff1660e01b81526004016109169392919061251d565b600060405180830381600087803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b5050505060016002600082825461095b919061273b565b9250508190555060016002546109719190612791565b91505061097f565b60009150505b949350505050565b6000610994846002611247565b9050600060018111156109d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a84578273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90612462565b60405180910390fd5b5b50505050565b610a9733858585856116a8565b50505050565b60055481565b600080610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906124c2565b60405180910390fd5b63bc197c8160e01b905098975050505050505050565b6000610b08856000611247565b905060006001811115610b44577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c1557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68486856040518463ffffffff1660e01b8152600401610be293929190612335565b600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b505050505b5050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610caa57611000851015610c9857610c9330610c8b876117e8565b8585886116a8565b610ca5565b610ca430848488610e90565b5b610e12565b60018414610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612482565b60405180910390fd5b6000610d47600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610db360088087879050610d5f9190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f491f05df58ecacc555aeb87b5abf28becc511fb5c227c0bfbaf2da3e6109335e60015483838a33604051610dee95949392919061265e565b60405180910390a16001806000828254610e08919061273b565b9250508190555050505b63f23a6e6160e01b90509695505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e89341c836040518263ffffffff1660e01b8152600401610eed9190612502565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610f429190611cf4565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca868460016040518463ffffffff1660e01b8152600401610fa4939291906122fe565b600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b81526004016110319190612596565b600060405180830381600087803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b505050507f1e2291a96615bb70cc8395e1493605485ea5df7d0d6eed27295e95368bcd185e60015485858460405161109a949392919061254f565b60405180910390a160018060008282546110b4919061273b565b925050819055505050505050565b60006008826110d1919061273b565b83511015611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b90612402565b60405180910390fd5b60008260088501015190508091505092915050565b606081601f83611139919061273b565b101561117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612422565b60405180910390fd5b8183611186919061273b565b845110156111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c0906124a2565b60405180910390fd5b60608215600081146111ea576040519150600082526020820160405261123b565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611228578051835260208301925060208101905061120b565b50868552601f19601f8301166040525050505b50809150509392505050565b60006002600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d2906123a2565b60405180910390fd5b600060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561140b576040518060400160405280836003811115611362577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001600181525060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908360038111156113f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060208201518160010155905050611526565b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906123c2565b60405180910390fd5b600160066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461151e919061273b565b925050819055505b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060006001905060005460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561160357600090505b60055460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561169e5760066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550505b8091505092915050565b6110008467ffffffffffffffff16106116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906124e2565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161175593929190612335565b600060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050507fb58390b60b92155ee6f1561cf0f29316be0c0f26d248a7ff7e0b341f5fb2f898600154858585856040516117c09594939291906125c4565b60405180910390a160018060008282546117da919061273b565b925050819055505050505050565b600067ffffffffffffffff8016821115611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612442565b60405180910390fd5b819050919050565b600061185261184d846126dd565b6126b8565b90508281526020810184848401111561186a57600080fd5b6118758482856128c3565b509392505050565b600061189061188b846126dd565b6126b8565b9050828152602081018484840111156118a857600080fd5b6118b38482856128d2565b509392505050565b6000813590506118ca81612b91565b92915050565b6000813590506118df81612ba8565b92915050565b60008083601f8401126118f757600080fd5b8235905067ffffffffffffffff81111561191057600080fd5b60208301915083602082028301111561192857600080fd5b9250929050565b60008135905061193e81612bbf565b92915050565b60008083601f84011261195657600080fd5b8235905067ffffffffffffffff81111561196f57600080fd5b60208301915083600182028301111561198757600080fd5b9250929050565b60008135905061199d81612bd6565b92915050565b6000813590506119b281612bed565b92915050565b60008083601f8401126119ca57600080fd5b8235905067ffffffffffffffff8111156119e357600080fd5b6020830191508360018202830111156119fb57600080fd5b9250929050565b600082601f830112611a1357600080fd5b8135611a2384826020860161183f565b91505092915050565b600082601f830112611a3d57600080fd5b8151611a4d84826020860161187d565b91505092915050565b600081359050611a6581612c04565b92915050565b600081359050611a7a81612c1b565b92915050565b600081359050611a8f81612c32565b92915050565b60008060008060008060008060a0898b031215611ab157600080fd5b6000611abf8b828c016118bb565b9850506020611ad08b828c016118bb565b975050604089013567ffffffffffffffff811115611aed57600080fd5b611af98b828c016118e5565b9650965050606089013567ffffffffffffffff811115611b1857600080fd5b611b248b828c016118e5565b9450945050608089013567ffffffffffffffff811115611b4357600080fd5b611b4f8b828c01611944565b92509250509295985092959890939650565b600080600080600060808688031215611b7957600080fd5b6000611b87888289016118bb565b9550506020611b98888289016118bb565b9450506040611ba988828901611a6b565b935050606086013567ffffffffffffffff811115611bc657600080fd5b611bd288828901611944565b92509250509295509295909350565b60008060008060008060a08789031215611bfa57600080fd5b6000611c0889828a016118bb565b9650506020611c1989828a016118bb565b9550506040611c2a89828a01611a6b565b9450506060611c3b89828a01611a6b565b935050608087013567ffffffffffffffff811115611c5857600080fd5b611c6489828a01611944565b92509250509295509295509295565b600060208284031215611c8557600080fd5b6000611c938482850161192f565b91505092915050565b600080600060408486031215611cb157600080fd5b600084013567ffffffffffffffff811115611ccb57600080fd5b611cd7868287016119b8565b93509350506020611cea86828701611a6b565b9150509250925092565b600060208284031215611d0657600080fd5b600082015167ffffffffffffffff811115611d2057600080fd5b611d2c84828501611a2c565b91505092915050565b600080600060608486031215611d4a57600080fd5b6000611d5886828701611a56565b9350506020611d69868287016118d0565b9250506040611d7a86828701611a6b565b9150509250925092565b60008060008060608587031215611d9a57600080fd5b6000611da887828801611a56565b9450506020611db9878288016118bb565b935050604085013567ffffffffffffffff811115611dd657600080fd5b611de2878288016119b8565b925092505092959194509250565b60008060008060808587031215611e0657600080fd5b6000611e1487828801611a56565b9450506020611e25878288016118bb565b9350506040611e3687828801611a6b565b9250506060611e478782880161198e565b91505092959194509250565b60008060008060808587031215611e6957600080fd5b6000611e7787828801611a56565b9450506020611e88878288016118bb565b9350506040611e9987828801611a6b565b9250506060611eaa878288016119a3565b91505092959194509250565b60008060008060808587031215611ecc57600080fd5b6000611eda87828801611a56565b9450506020611eeb87828801611a80565b9350506040611efc878288016118bb565b9250506060611f0d87828801611a6b565b91505092959194509250565b60008060008060608587031215611f2f57600080fd5b6000611f3d87828801611a80565b945050602085013567ffffffffffffffff811115611f5a57600080fd5b611f66878288016119b8565b93509350506040611f7987828801611a6b565b91505092959194509250565b60008060408385031215611f9857600080fd5b6000611fa685828601611a80565b925050602083013567ffffffffffffffff811115611fc357600080fd5b611fcf85828601611a02565b9150509250929050565b611fe2816127c5565b82525050565b611ff1816127e9565b82525050565b612000816127f5565b82525050565b61200f8161289f565b82525050565b6000612021838561272a565b935061202e8385846128c3565b61203783612994565b840190509392505050565b600061204d8261270e565b612057818561272a565b93506120678185602086016128d2565b61207081612994565b840191505092915050565b600061208860108361272a565b9150612093826129a5565b602082019050919050565b60006120ab60148361272a565b91506120b6826129ce565b602082019050919050565b60006120ce60128361272a565b91506120d9826129f7565b602082019050919050565b60006120f160148361272a565b91506120fc82612a20565b602082019050919050565b6000612114600e8361272a565b915061211f82612a49565b602082019050919050565b600061213760268361272a565b915061214282612a72565b604082019050919050565b600061215a60148361272a565b915061216582612ac1565b602082019050919050565b600061217d60168361272a565b915061218882612aea565b602082019050919050565b60006121a0600083612719565b91506121ab82612b13565b600082019050919050565b60006121c360008361272a565b91506121ce82612b13565b600082019050919050565b60006121e660118361272a565b91506121f182612b16565b602082019050919050565b600061220960158361272a565b915061221482612b3f565b602082019050919050565b600061222c60158361272a565b915061223782612b68565b602082019050919050565b61224b81612881565b82525050565b61225a816128b1565b82525050565b6122698161288b565b82525050565b60006060820190506122846000830186611fd9565b6122916020830185611fd9565b61229e6040830184612242565b949350505050565b600060a0820190506122bb6000830187611fd9565b6122c86020830186611fd9565b6122d56040830185612242565b6122e26060830184612006565b81810360808301526122f381612193565b905095945050505050565b60006060820190506123136000830186611fd9565b6123206020830185612242565b61232d6040830184612006565b949350505050565b600060608201905061234a6000830186611fd9565b6123576020830185612251565b6123646040830184612242565b949350505050565b60006020820190506123816000830184611fe8565b92915050565b600060208201905061239c6000830184611ff7565b92915050565b600060208201905081810360008301526123bb8161207b565b9050919050565b600060208201905081810360008301526123db8161209e565b9050919050565b600060208201905081810360008301526123fb816120c1565b9050919050565b6000602082019050818103600083015261241b816120e4565b9050919050565b6000602082019050818103600083015261243b81612107565b9050919050565b6000602082019050818103600083015261245b8161212a565b9050919050565b6000602082019050818103600083015261247b8161214d565b9050919050565b6000602082019050818103600083015261249b81612170565b9050919050565b600060208201905081810360008301526124bb816121d9565b9050919050565b600060208201905081810360008301526124db816121fc565b9050919050565b600060208201905081810360008301526124fb8161221f565b9050919050565b60006020820190506125176000830184612242565b92915050565b60006040820190506125326000830186612242565b8181036020830152612545818486612015565b9050949350505050565b60006060820190506125646000830187612242565b8181036020830152612577818587612015565b9050818103604083015261258b8184612042565b905095945050505050565b60006040820190506125ab6000830184612242565b81810360208301526125bc816121b6565b905092915050565b60006080820190506125d96000830188612242565b6125e66020830187612260565b81810360408301526125f9818587612015565b90506126086060830184612242565b9695505050505050565b60006080820190506126276000830187612242565b6126346020830186612260565b81810360408301526126468185612042565b90506126556060830184612242565b95945050505050565b600060a0820190506126736000830188612242565b6126806020830187612260565b81810360408301526126928186612042565b90506126a16060830185612242565b6126ae6080830184611fd9565b9695505050505050565b60006126c26126d3565b90506126ce8282612905565b919050565b6000604051905090565b600067ffffffffffffffff8211156126f8576126f7612965565b5b61270182612994565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061274682612881565b915061275183612881565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561278657612785612936565b5b828201905092915050565b600061279c82612881565b91506127a783612881565b9250828210156127ba576127b9612936565b5b828203905092915050565b60006127d082612861565b9050919050565b60006127e282612861565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061282c826127c5565b9050919050565b600061283e826127c5565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006128aa82612881565b9050919050565b60006128bc8261288b565b9050919050565b82818337600083830152505050565b60005b838110156128f05780820151818401526020810190506128d5565b838111156128ff576000848401525b50505050565b61290e82612994565b810181811067ffffffffffffffff8211171561292d5761292c612965565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f76616c7565206d757374206265203e2030210000000000000000000000000000600082015250565b7f746f55696e7436345f6f75744f66426f756e6473000000000000000000000000600082015250565b7f736c6963655f6f766572666c6f77000000000000000000000000000000000000600082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203660008201527f3420626974730000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f5346542f465473206e6f7420737570706f727465642100000000000000000000600082015250565b50565b7f736c6963655f6f75744f66426f756e6473000000000000000000000000000000600082015250565b7f4d6574686f64206e6f7420737570706f72746564210000000000000000000000600082015250565b7f4e6f7420612046756e6769626c6520746f6b656e210000000000000000000000600082015250565b612b9a816127c5565b8114612ba557600080fd5b50565b612bb1816127d7565b8114612bbc57600080fd5b50565b612bc8816127f5565b8114612bd357600080fd5b50565b612bdf81612821565b8114612bea57600080fd5b50565b612bf681612833565b8114612c0157600080fd5b50565b612c0d81612845565b8114612c1857600080fd5b50565b612c2481612881565b8114612c2f57600080fd5b50565b612c3b8161288b565b8114612c4657600080fd5b5056fea2646970667358221220efd3b349cb0870470c3a67be5ced52ec66e5016b0be060f42b2a5b1efd7a9d6164736f6c63430008040033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index a00a844ee..407554495 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -19,11 +19,11 @@ import { TronWeb } from "tronweb"; import { EthNftInfo, MintArgs } from "./web3"; import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; -import { Interface } from "ethers/lib/utils"; import { abi as ERC721_abi } from "../fakeERC721.json"; import { Base64 } from "js-base64"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; import * as ERC1155_contract from "../XPNet.json"; +import * as Minter_contract from "../Minter.json"; export type BaseTronHelper = BalanceCheck & MintNft & { @@ -35,6 +35,16 @@ export type BaseTronHelper = BalanceCheck & * @returns Address of the deployed smart contract */ deployErc1155(owner: string): Promise; + /** + * Deploy Minter Smart Contract + * + * @argument deployer deployer of the smart contract + * @argument validators address of validators of the smart contract + * @argument threshold threshold for executing an action + * + * @returns minter address, wrapper token address + */ + deployMinter(deployer: string, validators: string[], threshold: number): Promise<[string, string]>; }; export type TronHelper = BaseTronHelper & @@ -56,6 +66,18 @@ export async function baseTronHelperFactory( return provider.setPrivateKey(signer); }; + const deployErc1155_i = async (owner: string) => { + setSigner(owner); + + const contract = await provider.contract().new({ + abi: ERC1155_abi, + bytecode: ERC1155_contract.bytecode, + feeLimit: 3000000000 + }) + + return contract; + } + return { async mintNft(contract_owner: string, options: MintArgs): Promise { setSigner(contract_owner); @@ -67,17 +89,22 @@ export async function baseTronHelperFactory( const balance = await provider.trx.getBalance(address); return new BigNumber(balance); }, - async deployErc1155(owner: string): Promise { - setSigner(owner); + deployErc1155: async (owner) => await deployErc1155_i(owner).then((c) => c.address), + async deployMinter(deployer: string, validators: string[], threshold: number): Promise<[string, string]> { + setSigner(deployer); // deployErc1155 sets this anyways but we don't wanna depend on side effects + const xpnet = await deployErc1155_i(deployer); - const contract = await provider.contract().new({ - abi: ERC1155_abi, - bytecode: ERC1155_contract.bytecode, - feeLimit: 3000000000 - }); + const minter = await provider.contract().new({ + abi: Minter_contract.abi, + bytecode: Minter_contract.bytecode, + feeLimit: 3000000000, + paramters: [...validators, threshold] + }); - return contract.address; - }, + await xpnet.transferOwnership(minter.address).send(); + + return [minter.address, xpnet.address]; + } }; } @@ -85,7 +112,7 @@ export async function tronHelperFactory( provider: TronWeb, erc1155_addr: string, minter_addr: string, - minter_abi: Interface + minter_abi: JSON ): Promise { const base = await baseTronHelperFactory(provider); const erc1155 = await provider.contract(ERC1155_abi, erc1155_addr); From f79b6c9087dd01d8f8f52b5e924ddefaa926378d Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 14 Sep 2021 19:35:37 +0530 Subject: [PATCH 010/956] helpers: tron: fix extractTxn --- dist/helpers/tron.js | 16 +++++++++++++--- src/helpers/tron.ts | 16 ++++++++++++++-- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index c2c9c3e3f..06615d8cc 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -60,7 +60,7 @@ async function baseTronHelperFactory(provider) { abi: Minter_contract.abi, bytecode: Minter_contract.bytecode, feeLimit: 3000000000, - paramters: [...validators, threshold] + parameters: [validators, threshold, xpnet.address] }); await xpnet.transferOwnership(minter.address).send(); return [minter.address, xpnet.address]; @@ -76,7 +76,17 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi return provider.setPrivateKey(signer); }; async function extractTxn(hash) { - const evs = await provider.getEventByTransactionID(hash); + await new Promise(r => setTimeout(r, 6000)); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const getEv = async () => { + const res = await provider.getEventByTransactionID(hash); + if (res.length !== 0) { + return res; + } + await new Promise(r => setTimeout(r, 3000)); + return getEv(); + }; + const evs = await getEv(); const ev = evs.find((e) => (e === null || e === void 0 ? void 0 : e.contract_address) == minter_addr); const action_id = ev.result["action_id"].toString(); return [hash, action_id]; @@ -167,4 +177,4 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFvQzNDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDOUMsR0FBRyxFQUFFLHNCQUFXO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxVQUFVO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBaUI7WUFDckQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxxQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFvQzNDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDOUMsR0FBRyxFQUFFLHNCQUFXO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxVQUFVO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBaUI7WUFDckQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxxQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEs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 \ No newline at end of file diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 407554495..508d96f64 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -98,7 +98,7 @@ export async function baseTronHelperFactory( abi: Minter_contract.abi, bytecode: Minter_contract.bytecode, feeLimit: 3000000000, - paramters: [...validators, threshold] + parameters: [validators, threshold, xpnet.address] }); await xpnet.transferOwnership(minter.address).send(); @@ -123,7 +123,19 @@ export async function tronHelperFactory( }; async function extractTxn(hash: string): Promise<[string, string]> { - const evs = await provider.getEventByTransactionID(hash); + await new Promise(r => setTimeout(r, 6000)); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const getEv: () => Promise = async () => { + const res = await provider.getEventByTransactionID(hash); + if (res.length !== 0) { + return res; + } + await new Promise(r => setTimeout(r, 3000)); + return getEv(); + }; + + const evs = await getEv(); const ev = evs.find((e: any) => e?.contract_address == minter_addr); const action_id: string = ev.result["action_id"].toString(); return [hash, action_id]; From 763034b286ef1d3dbaf47c5087486dbd3efecdef Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 14 Sep 2021 19:59:52 +0530 Subject: [PATCH 011/956] helpers: tron: fix transaction id --- dist/helpers/tron.js | 10 +++++----- src/helpers/tron.ts | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index 06615d8cc..5365119f7 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -123,17 +123,17 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi }, nftUri: nftUri, async transferNativeToForeign(sender, chain_nonce, to, value) { setSigner(sender); let res = await minter.freeze(chain_nonce, to).send({ callValue: value }); - return await extractTxn(res.txID); + return await extractTxn(res); }, async unfreezeWrapped(sender, chain_nonce, to, value) { setSigner(sender); const res = await minter.withdraw(chain_nonce, to, value).send(); - return await extractTxn(res.txID); + return await extractTxn(res); }, async unfreezeWrappedNft(sender, to, id) { setSigner(sender); const res = await minter.withdraw_nft(to, id).send(); - return await extractTxn(res.txID); + return await extractTxn(res); }, async transferNftToForeign(sender, chain_nonce, to, id) { let txr; @@ -159,7 +159,7 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi .send(); } ev.toString(); - return await extractTxn(txr.txID); + return await extractTxn(txr); }, async balanceWrappedBatch(address, chain_nonces) { const res = new Map(); @@ -177,4 +177,4 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFvQzNDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDOUMsR0FBRyxFQUFFLHNCQUFXO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxVQUFVO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBaUI7WUFDckQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxxQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFvQzNDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDOUMsR0FBRyxFQUFFLHNCQUFXO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxVQUFVO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBaUI7WUFDckQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxxQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEs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 \ No newline at end of file diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 508d96f64..731cd150c 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -184,7 +184,7 @@ export async function tronHelperFactory( ): Promise<[string, string]> { setSigner(sender); let res = await minter.freeze(chain_nonce, to).send({ callValue: value }); - return await extractTxn(res.txID); + return await extractTxn(res); }, async unfreezeWrapped( sender: string, @@ -194,7 +194,7 @@ export async function tronHelperFactory( ): Promise<[string, string]> { setSigner(sender); const res = await minter.withdraw(chain_nonce, to, value).send(); - return await extractTxn(res.txID); + return await extractTxn(res); }, async unfreezeWrappedNft( sender: string, @@ -203,7 +203,7 @@ export async function tronHelperFactory( ): Promise<[string, string]> { setSigner(sender); const res = await minter.withdraw_nft(to, id).send(); - return await extractTxn(res.txID); + return await extractTxn(res); }, async transferNftToForeign( sender: string, @@ -239,7 +239,7 @@ export async function tronHelperFactory( .send(); } ev.toString(); - return await extractTxn(txr.txID); + return await extractTxn(txr); }, async balanceWrappedBatch( address: string, From 7dbf488a6c3d6fc00be7a1e5bd8d66e361b30716 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 14 Sep 2021 20:10:02 +0530 Subject: [PATCH 012/956] helpers: tron: transferNft: set correct sender address --- dist/helpers/tron.js | 6 +++--- src/helpers/tron.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index 5365119f7..d29d5227c 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -148,14 +148,14 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi ev = "TransferErc721"; const erc = await provider.contract(fakeERC721_json_1.abi, id.contract); await erc - .safeTransferFrom(sender, minter_addr, id.token, call_data) + .safeTransferFrom(provider.defaultAddress.base58, minter_addr, id.token, call_data) .send(); } else { ev = "TransferErc1155"; const erc = await provider.contract(fakeERC1155_json_1.abi, id.contract); txr = await erc - .safeTransferFrom(sender, minter_addr, id.token, bignumber_1.BigNumber.from(1), call_data) + .safeTransferFrom(provider.defaultAddress.base58, minter_addr, id.token, bignumber_1.BigNumber.from(1), call_data) .send(); } ev.toString(); @@ -177,4 +177,4 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFvQzNDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDOUMsR0FBRyxFQUFFLHNCQUFXO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxVQUFVO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBaUI7WUFDckQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxxQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFvQzNDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDOUMsR0FBRyxFQUFFLHNCQUFXO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxVQUFVO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBaUI7WUFDckQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxxQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEs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 \ No newline at end of file diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 731cd150c..f2609cf81 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -223,14 +223,14 @@ export async function tronHelperFactory( ev = "TransferErc721"; const erc = await provider.contract(ERC721_abi, id.contract); await erc - .safeTransferFrom(sender, minter_addr, id.token, call_data) + .safeTransferFrom(provider.defaultAddress.base58, minter_addr, id.token, call_data) .send(); } else { ev = "TransferErc1155"; const erc = await provider.contract(ERC1155_abi, id.contract); txr = await erc .safeTransferFrom( - sender, + provider.defaultAddress.base58, minter_addr, id.token, EthBN.from(1), From bf615eff2ddade18cc153d57be49664775efff2d Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 14 Sep 2021 20:13:32 +0530 Subject: [PATCH 013/956] helper: tron: fix contract address field --- dist/helpers/tron.js | 4 ++-- src/helpers/tron.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index d29d5227c..c68aabe4e 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -87,7 +87,7 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi return getEv(); }; const evs = await getEv(); - const ev = evs.find((e) => (e === null || e === void 0 ? void 0 : e.contract_address) == minter_addr); + const ev = evs.find((e) => (e === null || e === void 0 ? void 0 : e.contract) == minter_addr); const action_id = ev.result["action_id"].toString(); return [hash, action_id]; } @@ -177,4 +177,4 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFvQzNDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDOUMsR0FBRyxFQUFFLHNCQUFXO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxVQUFVO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBaUI7WUFDckQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxxQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFvQzNDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDOUMsR0FBRyxFQUFFLHNCQUFXO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxVQUFVO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBaUI7WUFDckQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxxQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEs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 \ No newline at end of file diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index f2609cf81..e2bb3bb83 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -136,7 +136,7 @@ export async function tronHelperFactory( }; const evs = await getEv(); - const ev = evs.find((e: any) => e?.contract_address == minter_addr); + const ev = evs.find((e: any) => e?.contract == minter_addr); const action_id: string = ev.result["action_id"].toString(); return [hash, action_id]; } From cee3829b8cafd433142a27362e3a9766cd825bc9 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 15 Sep 2021 17:51:57 +0530 Subject: [PATCH 014/956] helpers: tron: add event middleware support --- dist/helpers/tron.d.ts | 2 +- dist/helpers/tron.js | 15 +++++++++++++-- src/helpers/tron.ts | 9 +++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts index 9c0e09306..c52b06fd3 100644 --- a/dist/helpers/tron.d.ts +++ b/dist/helpers/tron.d.ts @@ -26,4 +26,4 @@ export declare type TronHelper = BaseTronHelper & WrappedBalanceCheck; }; export declare function baseTronHelperFactory(provider: TronWeb): Promise; -export declare function tronHelperFactory(provider: TronWeb, erc1155_addr: string, minter_addr: string, minter_abi: JSON): Promise; +export declare function tronHelperFactory(provider: TronWeb, middleware_uri: string, erc1155_addr: string, minter_addr: string, minter_abi: JSON): Promise; diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index c68aabe4e..b57f046e7 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -18,6 +18,9 @@ var __importStar = (this && this.__importStar) || function (mod) { __setModuleDefault(result, mod); return result; }; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.tronHelperFactory = exports.baseTronHelperFactory = void 0; const bignumber_js_1 = require("bignumber.js"); @@ -28,6 +31,7 @@ const js_base64_1 = require("js-base64"); const encoding_1 = require("validator/dist/encoding"); const ERC1155_contract = __importStar(require("../XPNet.json")); const Minter_contract = __importStar(require("../Minter.json")); +const axios_1 = __importDefault(require("axios")); async function baseTronHelperFactory(provider) { const setSigner = (signer) => { return provider.setPrivateKey(signer); @@ -68,14 +72,21 @@ async function baseTronHelperFactory(provider) { }; } exports.baseTronHelperFactory = baseTronHelperFactory; -async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi) { +async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_addr, minter_abi) { const base = await baseTronHelperFactory(provider); const erc1155 = await provider.contract(fakeERC1155_json_1.abi, erc1155_addr); const minter = await provider.contract(minter_abi, minter_addr); + const event_middleware = axios_1.default.create({ + baseURL: middleware_uri, + headers: { + "Content-Type": "application/json" + } + }); const setSigner = (signer) => { return provider.setPrivateKey(signer); }; async function extractTxn(hash) { + await event_middleware.post("/tx/tron", { tx_hash: hash }); await new Promise(r => setTimeout(r, 6000)); // eslint-disable-next-line @typescript-eslint/no-explicit-any const getEv = async () => { @@ -177,4 +188,4 @@ async function tronHelperFactory(provider, erc1155_addr, minter_addr, minter_abi } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFvQzNDLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNuQyxPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQy9DLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDOUMsR0FBRyxFQUFFLHNCQUFXO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLFFBQVEsRUFBRSxVQUFVO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBaUI7WUFDckQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxxQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFDbEQsa0RBQTBCO0FBb0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxzQkFBVztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFzQixFQUFFLE9BQWlCO1lBQ3JELFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxQixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFD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 \ No newline at end of file diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index e2bb3bb83..84d589795 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -24,6 +24,7 @@ import { Base64 } from "js-base64"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; import * as ERC1155_contract from "../XPNet.json"; import * as Minter_contract from "../Minter.json"; +import axios from "axios"; export type BaseTronHelper = BalanceCheck & MintNft & { @@ -110,6 +111,7 @@ export async function baseTronHelperFactory( export async function tronHelperFactory( provider: TronWeb, + middleware_uri: string, erc1155_addr: string, minter_addr: string, minter_abi: JSON @@ -117,12 +119,19 @@ export async function tronHelperFactory( const base = await baseTronHelperFactory(provider); const erc1155 = await provider.contract(ERC1155_abi, erc1155_addr); const minter = await provider.contract(minter_abi, minter_addr); + const event_middleware = axios.create({ + baseURL: middleware_uri, + headers: { + "Content-Type": "application/json" + } + }); const setSigner = (signer: string) => { return provider.setPrivateKey(signer); }; async function extractTxn(hash: string): Promise<[string, string]> { + await event_middleware.post("/tx/tron", { tx_hash: hash }); await new Promise(r => setTimeout(r, 6000)); // eslint-disable-next-line @typescript-eslint/no-explicit-any From 686ccdf7c9f1cec7a98ca37d5a59610bb1bdb2f6 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 16 Sep 2021 17:17:17 +0530 Subject: [PATCH 015/956] helpers: tron: getEv: limit number of tries --- dist/helpers/tron.js | 9 ++++++--- src/helpers/tron.ts | 7 +++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index b57f046e7..ab43beb11 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -89,13 +89,16 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ await event_middleware.post("/tx/tron", { tx_hash: hash }); await new Promise(r => setTimeout(r, 6000)); // eslint-disable-next-line @typescript-eslint/no-explicit-any - const getEv = async () => { + const getEv = async (retries = 0) => { const res = await provider.getEventByTransactionID(hash); if (res.length !== 0) { return res; } + if (retries > 15) { + throw Error("Couldn't fetch transaction after more than 15 retries!"); + } await new Promise(r => setTimeout(r, 3000)); - return getEv(); + return getEv(retries + 1); }; const evs = await getEv(); const ev = evs.find((e) => (e === null || e === void 0 ? void 0 : e.contract) == minter_addr); @@ -188,4 +191,4 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFDbEQsa0RBQTBCO0FBb0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxzQkFBVztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFzQixFQUFFLE9BQWlCO1lBQ3JELFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxQixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFD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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFDbEQsa0RBQTBCO0FBb0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxzQkFBVztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFzQixFQUFFLE9BQWlCO1lBQ3JELFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxQixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFD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 \ No newline at end of file diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 84d589795..9f7e61ca5 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -135,13 +135,16 @@ export async function tronHelperFactory( await new Promise(r => setTimeout(r, 6000)); // eslint-disable-next-line @typescript-eslint/no-explicit-any - const getEv: () => Promise = async () => { + const getEv: (retries?: number) => Promise = async (retries = 0) => { const res = await provider.getEventByTransactionID(hash); if (res.length !== 0) { return res; } + if (retries > 15) { + throw Error("Couldn't fetch transaction after more than 15 retries!"); + } await new Promise(r => setTimeout(r, 3000)); - return getEv(); + return getEv(retries+1); }; const evs = await getEv(); From 0f2d84ecd102587fffec83b55e4bf37ec5894426 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 26 Sep 2021 15:04:00 +0530 Subject: [PATCH 016/956] web3: initial changes for sc --- dist/XPNft.json | 447 +++++++++++++++++++++++++++++++++++++++++ dist/fakeERC721.json | 187 +++++++++++------ dist/helpers/web3.d.ts | 4 +- dist/helpers/web3.js | 16 +- src/XPNft.json | 447 +++++++++++++++++++++++++++++++++++++++++ src/fakeERC721.json | 187 +++++++++++------ src/helpers/web3.ts | 18 +- 7 files changed, 1175 insertions(+), 131 deletions(-) create mode 100644 dist/XPNft.json create mode 100644 src/XPNft.json diff --git a/dist/XPNft.json b/dist/XPNft.json new file mode 100644 index 000000000..a6d8b97e4 --- /dev/null +++ b/dist/XPNft.json @@ -0,0 +1,447 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "XPNft", + "sourceName": "contracts/XPNft.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "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" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "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" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "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" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "string", + "name": "uri_", + "type": "string" + } + ], + "name": "setURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600981526020017f5870577261704e667400000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f58504e4654000000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620001a6565b508060019080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6132d080620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a22cb46511610071578063a22cb465146102f2578063b88d4fde1461030e578063c87b56dd1461032a578063e985e9c51461035a578063f2fde38b1461038a57610121565b806370a0823114610260578063715018a614610290578063862440e21461029a5780638da5cb5b146102b657806395d89b41146102d457610121565b806323b872dd116100f457806323b872dd146101c057806340c10f19146101dc57806342842e0e146101f857806342966c68146102145780636352211e1461023057610121565b806301ffc9a71461012657806306fdde0314610156578063081812fc14610174578063095ea7b3146101a4575b600080fd5b610140600480360381019061013b9190612258565b6103a6565b60405161014d91906126fc565b60405180910390f35b61015e610488565b60405161016b9190612717565b60405180910390f35b61018e600480360381019061018991906122aa565b61051a565b60405161019b9190612695565b60405180910390f35b6101be60048036038101906101b9919061221c565b61059f565b005b6101da60048036038101906101d59190612116565b6106b7565b005b6101f660048036038101906101f1919061221c565b610717565b005b610212600480360381019061020d9190612116565b6107a1565b005b61022e600480360381019061022991906122aa565b6107c1565b005b61024a600480360381019061024591906122aa565b610849565b6040516102579190612695565b60405180910390f35b61027a600480360381019061027591906120b1565b6108fb565b6040516102879190612979565b60405180910390f35b6102986109b3565b005b6102b460048036038101906102af91906122d3565b610a3b565b005b6102be610b0a565b6040516102cb9190612695565b60405180910390f35b6102dc610b34565b6040516102e99190612717565b60405180910390f35b61030c600480360381019061030791906121e0565b610bc6565b005b61032860048036038101906103239190612165565b610d47565b005b610344600480360381019061033f91906122aa565b610da9565b6040516103519190612717565b60405180910390f35b610374600480360381019061036f91906120da565b610efb565b60405161038191906126fc565b60405180910390f35b6103a4600480360381019061039f91906120b1565b610f8f565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610481575061048082611087565b5b9050919050565b60606000805461049790612b9e565b80601f01602080910402602001604051908101604052809291908181526020018280546104c390612b9e565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b5050505050905090565b6000610525826110f1565b610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b906128b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105aa82610849565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061290612939565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661063a61115d565b73ffffffffffffffffffffffffffffffffffffffff16148061066957506106688161066361115d565b610efb565b5b6106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906127f9565b60405180910390fd5b6106b28383611165565b505050565b6106c86106c261115d565b8261121e565b610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe90612959565b60405180910390fd5b6107128383836112fc565b505050565b61071f61115d565b73ffffffffffffffffffffffffffffffffffffffff1661073d610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a906128d9565b60405180910390fd5b61079d8282611558565b5050565b6107bc83838360405180602001604052806000815250610d47565b505050565b6107c961115d565b73ffffffffffffffffffffffffffffffffffffffff166107e7610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906128d9565b60405180910390fd5b61084681611576565b50565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e990612839565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612819565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109bb61115d565b73ffffffffffffffffffffffffffffffffffffffff166109d9610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906128d9565b60405180910390fd5b610a3960006115c9565b565b610a4361115d565b73ffffffffffffffffffffffffffffffffffffffff16610a61610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906128d9565b60405180910390fd5b610b058383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061168f565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b4390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6f90612b9e565b8015610bbc5780601f10610b9157610100808354040283529160200191610bbc565b820191906000526020600020905b815481529060010190602001808311610b9f57829003601f168201915b5050505050905090565b610bce61115d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c33906127b9565b60405180910390fd5b8060056000610c4961115d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610cf661115d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d3b91906126fc565b60405180910390a35050565b610d58610d5261115d565b8361121e565b610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612959565b60405180910390fd5b610da384848484611703565b50505050565b6060610db4826110f1565b610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90612899565b60405180910390fd5b6000600660008481526020019081526020016000208054610e1390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90612b9e565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b505050505090506000610e9d61175f565b9050600081511415610eb3578192505050610ef6565b600082511115610ee8578082604051602001610ed0929190612671565b60405160208183030381529060405292505050610ef6565b610ef184611776565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f9761115d565b73ffffffffffffffffffffffffffffffffffffffff16610fb5610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906128d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612759565b60405180910390fd5b611084816115c9565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166111d883610849565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611229826110f1565b611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906127d9565b60405180910390fd5b600061127383610849565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806112e257508373ffffffffffffffffffffffffffffffffffffffff166112ca8461051a565b73ffffffffffffffffffffffffffffffffffffffff16145b806112f357506112f28185610efb565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661131c82610849565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611369906128f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990612799565b60405180910390fd5b6113ed83838361181d565b6113f8600082611165565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114489190612ab4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461149f9190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611572828260405180602001604052806000815250611822565b5050565b61157f8161187d565b600060066000838152602001908152602001600020805461159f90612b9e565b9050146115c6576006600082815260200190815260200160002060006115c59190611eb3565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611698826110f1565b6116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612859565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906116fe929190611ef3565b505050565b61170e8484846112fc565b61171a8484848461198e565b611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612739565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060611781826110f1565b6117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612919565b60405180910390fd5b60006117ca61175f565b905060008151116117ea5760405180602001604052806000815250611815565b806117f484611b25565b604051602001611805929190612671565b6040516020818303038152906040525b915050919050565b505050565b61182c8383611cd2565b611839600084848461198e565b611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90612739565b60405180910390fd5b505050565b600061188882610849565b90506118968160008461181d565b6118a1600083611165565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118f19190612ab4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006119af8473ffffffffffffffffffffffffffffffffffffffff16611ea0565b15611b18578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119d861115d565b8786866040518563ffffffff1660e01b81526004016119fa94939291906126b0565b602060405180830381600087803b158015611a1457600080fd5b505af1925050508015611a4557506040513d601f19601f82011682018060405250810190611a429190612281565b60015b611ac8573d8060008114611a75576040519150601f19603f3d011682016040523d82523d6000602084013e611a7a565b606091505b50600081511415611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790612739565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b1d565b600190505b949350505050565b60606000821415611b6d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ccd565b600082905060005b60008214611b9f578080611b8890612c01565b915050600a82611b989190612a83565b9150611b75565b60008167ffffffffffffffff811115611be1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c135781602001600182028036833780820191505090505b5090505b60008514611cc657600182611c2c9190612ab4565b9150600a85611c3b9190612c4a565b6030611c479190612a2d565b60f81b818381518110611c83577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611cbf9190612a83565b9450611c17565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990612879565b60405180910390fd5b611d4b816110f1565b15611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612779565b60405180910390fd5b611d976000838361181d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de79190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611ebf90612b9e565b6000825580601f10611ed15750611ef0565b601f016020900490600052602060002090810190611eef9190611f79565b5b50565b828054611eff90612b9e565b90600052602060002090601f016020900481019282611f215760008555611f68565b82601f10611f3a57805160ff1916838001178555611f68565b82800160010185558215611f68579182015b82811115611f67578251825591602001919060010190611f4c565b5b509050611f759190611f79565b5090565b5b80821115611f92576000816000905550600101611f7a565b5090565b6000611fa9611fa4846129b9565b612994565b905082815260208101848484011115611fc157600080fd5b611fcc848285612b5c565b509392505050565b600081359050611fe38161323e565b92915050565b600081359050611ff881613255565b92915050565b60008135905061200d8161326c565b92915050565b6000815190506120228161326c565b92915050565b600082601f83011261203957600080fd5b8135612049848260208601611f96565b91505092915050565b60008083601f84011261206457600080fd5b8235905067ffffffffffffffff81111561207d57600080fd5b60208301915083600182028301111561209557600080fd5b9250929050565b6000813590506120ab81613283565b92915050565b6000602082840312156120c357600080fd5b60006120d184828501611fd4565b91505092915050565b600080604083850312156120ed57600080fd5b60006120fb85828601611fd4565b925050602061210c85828601611fd4565b9150509250929050565b60008060006060848603121561212b57600080fd5b600061213986828701611fd4565b935050602061214a86828701611fd4565b925050604061215b8682870161209c565b9150509250925092565b6000806000806080858703121561217b57600080fd5b600061218987828801611fd4565b945050602061219a87828801611fd4565b93505060406121ab8782880161209c565b925050606085013567ffffffffffffffff8111156121c857600080fd5b6121d487828801612028565b91505092959194509250565b600080604083850312156121f357600080fd5b600061220185828601611fd4565b925050602061221285828601611fe9565b9150509250929050565b6000806040838503121561222f57600080fd5b600061223d85828601611fd4565b925050602061224e8582860161209c565b9150509250929050565b60006020828403121561226a57600080fd5b600061227884828501611ffe565b91505092915050565b60006020828403121561229357600080fd5b60006122a184828501612013565b91505092915050565b6000602082840312156122bc57600080fd5b60006122ca8482850161209c565b91505092915050565b6000806000604084860312156122e857600080fd5b60006122f68682870161209c565b935050602084013567ffffffffffffffff81111561231357600080fd5b61231f86828701612052565b92509250509250925092565b61233481612ae8565b82525050565b61234381612afa565b82525050565b6000612354826129ea565b61235e8185612a00565b935061236e818560208601612b6b565b61237781612d37565b840191505092915050565b600061238d826129f5565b6123978185612a11565b93506123a7818560208601612b6b565b6123b081612d37565b840191505092915050565b60006123c6826129f5565b6123d08185612a22565b93506123e0818560208601612b6b565b80840191505092915050565b60006123f9603283612a11565b915061240482612d48565b604082019050919050565b600061241c602683612a11565b915061242782612d97565b604082019050919050565b600061243f601c83612a11565b915061244a82612de6565b602082019050919050565b6000612462602483612a11565b915061246d82612e0f565b604082019050919050565b6000612485601983612a11565b915061249082612e5e565b602082019050919050565b60006124a8602c83612a11565b91506124b382612e87565b604082019050919050565b60006124cb603883612a11565b91506124d682612ed6565b604082019050919050565b60006124ee602a83612a11565b91506124f982612f25565b604082019050919050565b6000612511602983612a11565b915061251c82612f74565b604082019050919050565b6000612534602e83612a11565b915061253f82612fc3565b604082019050919050565b6000612557602083612a11565b915061256282613012565b602082019050919050565b600061257a603183612a11565b91506125858261303b565b604082019050919050565b600061259d602c83612a11565b91506125a88261308a565b604082019050919050565b60006125c0602083612a11565b91506125cb826130d9565b602082019050919050565b60006125e3602983612a11565b91506125ee82613102565b604082019050919050565b6000612606602f83612a11565b915061261182613151565b604082019050919050565b6000612629602183612a11565b9150612634826131a0565b604082019050919050565b600061264c603183612a11565b9150612657826131ef565b604082019050919050565b61266b81612b52565b82525050565b600061267d82856123bb565b915061268982846123bb565b91508190509392505050565b60006020820190506126aa600083018461232b565b92915050565b60006080820190506126c5600083018761232b565b6126d2602083018661232b565b6126df6040830185612662565b81810360608301526126f18184612349565b905095945050505050565b6000602082019050612711600083018461233a565b92915050565b600060208201905081810360008301526127318184612382565b905092915050565b60006020820190508181036000830152612752816123ec565b9050919050565b600060208201905081810360008301526127728161240f565b9050919050565b6000602082019050818103600083015261279281612432565b9050919050565b600060208201905081810360008301526127b281612455565b9050919050565b600060208201905081810360008301526127d281612478565b9050919050565b600060208201905081810360008301526127f28161249b565b9050919050565b60006020820190508181036000830152612812816124be565b9050919050565b60006020820190508181036000830152612832816124e1565b9050919050565b6000602082019050818103600083015261285281612504565b9050919050565b6000602082019050818103600083015261287281612527565b9050919050565b600060208201905081810360008301526128928161254a565b9050919050565b600060208201905081810360008301526128b28161256d565b9050919050565b600060208201905081810360008301526128d281612590565b9050919050565b600060208201905081810360008301526128f2816125b3565b9050919050565b60006020820190508181036000830152612912816125d6565b9050919050565b60006020820190508181036000830152612932816125f9565b9050919050565b600060208201905081810360008301526129528161261c565b9050919050565b600060208201905081810360008301526129728161263f565b9050919050565b600060208201905061298e6000830184612662565b92915050565b600061299e6129af565b90506129aa8282612bd0565b919050565b6000604051905090565b600067ffffffffffffffff8211156129d4576129d3612d08565b5b6129dd82612d37565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a3882612b52565b9150612a4383612b52565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a7857612a77612c7b565b5b828201905092915050565b6000612a8e82612b52565b9150612a9983612b52565b925082612aa957612aa8612caa565b5b828204905092915050565b6000612abf82612b52565b9150612aca83612b52565b925082821015612add57612adc612c7b565b5b828203905092915050565b6000612af382612b32565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612b89578082015181840152602081019050612b6e565b83811115612b98576000848401525b50505050565b60006002820490506001821680612bb657607f821691505b60208210811415612bca57612bc9612cd9565b5b50919050565b612bd982612d37565b810181811067ffffffffffffffff82111715612bf857612bf7612d08565b5b80604052505050565b6000612c0c82612b52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c3f57612c3e612c7b565b5b600182019050919050565b6000612c5582612b52565b9150612c6083612b52565b925082612c7057612c6f612caa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61324781612ae8565b811461325257600080fd5b50565b61325e81612afa565b811461326957600080fd5b50565b61327581612b06565b811461328057600080fd5b50565b61328c81612b52565b811461329757600080fd5b5056fea264697066735822122030e436dff1e17326ae12faa33e250905a1949311adb6680e630d91dcc7fee75a64736f6c63430008040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a22cb46511610071578063a22cb465146102f2578063b88d4fde1461030e578063c87b56dd1461032a578063e985e9c51461035a578063f2fde38b1461038a57610121565b806370a0823114610260578063715018a614610290578063862440e21461029a5780638da5cb5b146102b657806395d89b41146102d457610121565b806323b872dd116100f457806323b872dd146101c057806340c10f19146101dc57806342842e0e146101f857806342966c68146102145780636352211e1461023057610121565b806301ffc9a71461012657806306fdde0314610156578063081812fc14610174578063095ea7b3146101a4575b600080fd5b610140600480360381019061013b9190612258565b6103a6565b60405161014d91906126fc565b60405180910390f35b61015e610488565b60405161016b9190612717565b60405180910390f35b61018e600480360381019061018991906122aa565b61051a565b60405161019b9190612695565b60405180910390f35b6101be60048036038101906101b9919061221c565b61059f565b005b6101da60048036038101906101d59190612116565b6106b7565b005b6101f660048036038101906101f1919061221c565b610717565b005b610212600480360381019061020d9190612116565b6107a1565b005b61022e600480360381019061022991906122aa565b6107c1565b005b61024a600480360381019061024591906122aa565b610849565b6040516102579190612695565b60405180910390f35b61027a600480360381019061027591906120b1565b6108fb565b6040516102879190612979565b60405180910390f35b6102986109b3565b005b6102b460048036038101906102af91906122d3565b610a3b565b005b6102be610b0a565b6040516102cb9190612695565b60405180910390f35b6102dc610b34565b6040516102e99190612717565b60405180910390f35b61030c600480360381019061030791906121e0565b610bc6565b005b61032860048036038101906103239190612165565b610d47565b005b610344600480360381019061033f91906122aa565b610da9565b6040516103519190612717565b60405180910390f35b610374600480360381019061036f91906120da565b610efb565b60405161038191906126fc565b60405180910390f35b6103a4600480360381019061039f91906120b1565b610f8f565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610481575061048082611087565b5b9050919050565b60606000805461049790612b9e565b80601f01602080910402602001604051908101604052809291908181526020018280546104c390612b9e565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b5050505050905090565b6000610525826110f1565b610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b906128b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105aa82610849565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061290612939565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661063a61115d565b73ffffffffffffffffffffffffffffffffffffffff16148061066957506106688161066361115d565b610efb565b5b6106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906127f9565b60405180910390fd5b6106b28383611165565b505050565b6106c86106c261115d565b8261121e565b610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe90612959565b60405180910390fd5b6107128383836112fc565b505050565b61071f61115d565b73ffffffffffffffffffffffffffffffffffffffff1661073d610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a906128d9565b60405180910390fd5b61079d8282611558565b5050565b6107bc83838360405180602001604052806000815250610d47565b505050565b6107c961115d565b73ffffffffffffffffffffffffffffffffffffffff166107e7610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906128d9565b60405180910390fd5b61084681611576565b50565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e990612839565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612819565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109bb61115d565b73ffffffffffffffffffffffffffffffffffffffff166109d9610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906128d9565b60405180910390fd5b610a3960006115c9565b565b610a4361115d565b73ffffffffffffffffffffffffffffffffffffffff16610a61610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906128d9565b60405180910390fd5b610b058383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061168f565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b4390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6f90612b9e565b8015610bbc5780601f10610b9157610100808354040283529160200191610bbc565b820191906000526020600020905b815481529060010190602001808311610b9f57829003601f168201915b5050505050905090565b610bce61115d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c33906127b9565b60405180910390fd5b8060056000610c4961115d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610cf661115d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d3b91906126fc565b60405180910390a35050565b610d58610d5261115d565b8361121e565b610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612959565b60405180910390fd5b610da384848484611703565b50505050565b6060610db4826110f1565b610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90612899565b60405180910390fd5b6000600660008481526020019081526020016000208054610e1390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90612b9e565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b505050505090506000610e9d61175f565b9050600081511415610eb3578192505050610ef6565b600082511115610ee8578082604051602001610ed0929190612671565b60405160208183030381529060405292505050610ef6565b610ef184611776565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f9761115d565b73ffffffffffffffffffffffffffffffffffffffff16610fb5610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906128d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612759565b60405180910390fd5b611084816115c9565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166111d883610849565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611229826110f1565b611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906127d9565b60405180910390fd5b600061127383610849565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806112e257508373ffffffffffffffffffffffffffffffffffffffff166112ca8461051a565b73ffffffffffffffffffffffffffffffffffffffff16145b806112f357506112f28185610efb565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661131c82610849565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611369906128f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990612799565b60405180910390fd5b6113ed83838361181d565b6113f8600082611165565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114489190612ab4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461149f9190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611572828260405180602001604052806000815250611822565b5050565b61157f8161187d565b600060066000838152602001908152602001600020805461159f90612b9e565b9050146115c6576006600082815260200190815260200160002060006115c59190611eb3565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611698826110f1565b6116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612859565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906116fe929190611ef3565b505050565b61170e8484846112fc565b61171a8484848461198e565b611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612739565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060611781826110f1565b6117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612919565b60405180910390fd5b60006117ca61175f565b905060008151116117ea5760405180602001604052806000815250611815565b806117f484611b25565b604051602001611805929190612671565b6040516020818303038152906040525b915050919050565b505050565b61182c8383611cd2565b611839600084848461198e565b611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90612739565b60405180910390fd5b505050565b600061188882610849565b90506118968160008461181d565b6118a1600083611165565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118f19190612ab4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006119af8473ffffffffffffffffffffffffffffffffffffffff16611ea0565b15611b18578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119d861115d565b8786866040518563ffffffff1660e01b81526004016119fa94939291906126b0565b602060405180830381600087803b158015611a1457600080fd5b505af1925050508015611a4557506040513d601f19601f82011682018060405250810190611a429190612281565b60015b611ac8573d8060008114611a75576040519150601f19603f3d011682016040523d82523d6000602084013e611a7a565b606091505b50600081511415611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790612739565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b1d565b600190505b949350505050565b60606000821415611b6d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ccd565b600082905060005b60008214611b9f578080611b8890612c01565b915050600a82611b989190612a83565b9150611b75565b60008167ffffffffffffffff811115611be1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c135781602001600182028036833780820191505090505b5090505b60008514611cc657600182611c2c9190612ab4565b9150600a85611c3b9190612c4a565b6030611c479190612a2d565b60f81b818381518110611c83577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611cbf9190612a83565b9450611c17565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990612879565b60405180910390fd5b611d4b816110f1565b15611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612779565b60405180910390fd5b611d976000838361181d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de79190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611ebf90612b9e565b6000825580601f10611ed15750611ef0565b601f016020900490600052602060002090810190611eef9190611f79565b5b50565b828054611eff90612b9e565b90600052602060002090601f016020900481019282611f215760008555611f68565b82601f10611f3a57805160ff1916838001178555611f68565b82800160010185558215611f68579182015b82811115611f67578251825591602001919060010190611f4c565b5b509050611f759190611f79565b5090565b5b80821115611f92576000816000905550600101611f7a565b5090565b6000611fa9611fa4846129b9565b612994565b905082815260208101848484011115611fc157600080fd5b611fcc848285612b5c565b509392505050565b600081359050611fe38161323e565b92915050565b600081359050611ff881613255565b92915050565b60008135905061200d8161326c565b92915050565b6000815190506120228161326c565b92915050565b600082601f83011261203957600080fd5b8135612049848260208601611f96565b91505092915050565b60008083601f84011261206457600080fd5b8235905067ffffffffffffffff81111561207d57600080fd5b60208301915083600182028301111561209557600080fd5b9250929050565b6000813590506120ab81613283565b92915050565b6000602082840312156120c357600080fd5b60006120d184828501611fd4565b91505092915050565b600080604083850312156120ed57600080fd5b60006120fb85828601611fd4565b925050602061210c85828601611fd4565b9150509250929050565b60008060006060848603121561212b57600080fd5b600061213986828701611fd4565b935050602061214a86828701611fd4565b925050604061215b8682870161209c565b9150509250925092565b6000806000806080858703121561217b57600080fd5b600061218987828801611fd4565b945050602061219a87828801611fd4565b93505060406121ab8782880161209c565b925050606085013567ffffffffffffffff8111156121c857600080fd5b6121d487828801612028565b91505092959194509250565b600080604083850312156121f357600080fd5b600061220185828601611fd4565b925050602061221285828601611fe9565b9150509250929050565b6000806040838503121561222f57600080fd5b600061223d85828601611fd4565b925050602061224e8582860161209c565b9150509250929050565b60006020828403121561226a57600080fd5b600061227884828501611ffe565b91505092915050565b60006020828403121561229357600080fd5b60006122a184828501612013565b91505092915050565b6000602082840312156122bc57600080fd5b60006122ca8482850161209c565b91505092915050565b6000806000604084860312156122e857600080fd5b60006122f68682870161209c565b935050602084013567ffffffffffffffff81111561231357600080fd5b61231f86828701612052565b92509250509250925092565b61233481612ae8565b82525050565b61234381612afa565b82525050565b6000612354826129ea565b61235e8185612a00565b935061236e818560208601612b6b565b61237781612d37565b840191505092915050565b600061238d826129f5565b6123978185612a11565b93506123a7818560208601612b6b565b6123b081612d37565b840191505092915050565b60006123c6826129f5565b6123d08185612a22565b93506123e0818560208601612b6b565b80840191505092915050565b60006123f9603283612a11565b915061240482612d48565b604082019050919050565b600061241c602683612a11565b915061242782612d97565b604082019050919050565b600061243f601c83612a11565b915061244a82612de6565b602082019050919050565b6000612462602483612a11565b915061246d82612e0f565b604082019050919050565b6000612485601983612a11565b915061249082612e5e565b602082019050919050565b60006124a8602c83612a11565b91506124b382612e87565b604082019050919050565b60006124cb603883612a11565b91506124d682612ed6565b604082019050919050565b60006124ee602a83612a11565b91506124f982612f25565b604082019050919050565b6000612511602983612a11565b915061251c82612f74565b604082019050919050565b6000612534602e83612a11565b915061253f82612fc3565b604082019050919050565b6000612557602083612a11565b915061256282613012565b602082019050919050565b600061257a603183612a11565b91506125858261303b565b604082019050919050565b600061259d602c83612a11565b91506125a88261308a565b604082019050919050565b60006125c0602083612a11565b91506125cb826130d9565b602082019050919050565b60006125e3602983612a11565b91506125ee82613102565b604082019050919050565b6000612606602f83612a11565b915061261182613151565b604082019050919050565b6000612629602183612a11565b9150612634826131a0565b604082019050919050565b600061264c603183612a11565b9150612657826131ef565b604082019050919050565b61266b81612b52565b82525050565b600061267d82856123bb565b915061268982846123bb565b91508190509392505050565b60006020820190506126aa600083018461232b565b92915050565b60006080820190506126c5600083018761232b565b6126d2602083018661232b565b6126df6040830185612662565b81810360608301526126f18184612349565b905095945050505050565b6000602082019050612711600083018461233a565b92915050565b600060208201905081810360008301526127318184612382565b905092915050565b60006020820190508181036000830152612752816123ec565b9050919050565b600060208201905081810360008301526127728161240f565b9050919050565b6000602082019050818103600083015261279281612432565b9050919050565b600060208201905081810360008301526127b281612455565b9050919050565b600060208201905081810360008301526127d281612478565b9050919050565b600060208201905081810360008301526127f28161249b565b9050919050565b60006020820190508181036000830152612812816124be565b9050919050565b60006020820190508181036000830152612832816124e1565b9050919050565b6000602082019050818103600083015261285281612504565b9050919050565b6000602082019050818103600083015261287281612527565b9050919050565b600060208201905081810360008301526128928161254a565b9050919050565b600060208201905081810360008301526128b28161256d565b9050919050565b600060208201905081810360008301526128d281612590565b9050919050565b600060208201905081810360008301526128f2816125b3565b9050919050565b60006020820190508181036000830152612912816125d6565b9050919050565b60006020820190508181036000830152612932816125f9565b9050919050565b600060208201905081810360008301526129528161261c565b9050919050565b600060208201905081810360008301526129728161263f565b9050919050565b600060208201905061298e6000830184612662565b92915050565b600061299e6129af565b90506129aa8282612bd0565b919050565b6000604051905090565b600067ffffffffffffffff8211156129d4576129d3612d08565b5b6129dd82612d37565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a3882612b52565b9150612a4383612b52565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a7857612a77612c7b565b5b828201905092915050565b6000612a8e82612b52565b9150612a9983612b52565b925082612aa957612aa8612caa565b5b828204905092915050565b6000612abf82612b52565b9150612aca83612b52565b925082821015612add57612adc612c7b565b5b828203905092915050565b6000612af382612b32565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612b89578082015181840152602081019050612b6e565b83811115612b98576000848401525b50505050565b60006002820490506001821680612bb657607f821691505b60208210811415612bca57612bc9612cd9565b5b50919050565b612bd982612d37565b810181811067ffffffffffffffff82111715612bf857612bf7612d08565b5b80604052505050565b6000612c0c82612b52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c3f57612c3e612c7b565b5b600182019050919050565b6000612c5582612b52565b9150612c6083612b52565b925082612c7057612c6f612caa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61324781612ae8565b811461325257600080fd5b50565b61325e81612afa565b811461326957600080fd5b50565b61327581612b06565b811461328057600080fd5b50565b61328c81612b52565b811461329757600080fd5b5056fea264697066735822122030e436dff1e17326ae12faa33e250905a1949311adb6680e630d91dcc7fee75a64736f6c63430008040033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/dist/fakeERC721.json b/dist/fakeERC721.json index ed5bec8d5..fd557b4c7 100644 --- a/dist/fakeERC721.json +++ b/dist/fakeERC721.json @@ -11,19 +11,19 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "_approved", + "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], @@ -36,19 +36,19 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "_operator", + "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", - "name": "_approved", + "name": "approved", "type": "bool" } ], @@ -80,61 +80,35 @@ { "indexed": true, "internalType": "address", - "name": "_from", + "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "_to", + "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, - { - "inputs": [], - "name": "CANNOT_TRANSFER_TO_ZERO_ADDRESS", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "NOT_CURRENT_OWNER", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { "internalType": "address", - "name": "_approved", + "name": "to", "type": "address" }, { "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], @@ -147,7 +121,7 @@ "inputs": [ { "internalType": "address", - "name": "_owner", + "name": "owner", "type": "address" } ], @@ -166,7 +140,20 @@ "inputs": [ { "internalType": "uint256", - "name": "_tokenId", + "name": "id", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", "type": "uint256" } ], @@ -185,12 +172,12 @@ "inputs": [ { "internalType": "address", - "name": "_owner", + "name": "owner", "type": "address" }, { "internalType": "address", - "name": "_operator", + "name": "operator", "type": "address" } ], @@ -205,6 +192,37 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -222,7 +240,7 @@ "inputs": [ { "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], @@ -230,28 +248,35 @@ "outputs": [ { "internalType": "address", - "name": "_owner", + "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "address", - "name": "_from", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "_to", + "name": "to", "type": "address" }, { "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], @@ -264,17 +289,17 @@ "inputs": [ { "internalType": "address", - "name": "_from", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "_to", + "name": "to", "type": "address" }, { "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" }, { @@ -292,12 +317,12 @@ "inputs": [ { "internalType": "address", - "name": "_operator", + "name": "operator", "type": "address" }, { "internalType": "bool", - "name": "_approved", + "name": "approved", "type": "bool" } ], @@ -306,11 +331,29 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "string", + "name": "uri_", + "type": "string" + } + ], + "name": "setURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "bytes4", - "name": "_interfaceID", + "name": "interfaceId", "type": "bytes4" } ], @@ -325,21 +368,53 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { "internalType": "address", - "name": "_from", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "_to", + "name": "to", "type": "address" }, { "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], @@ -352,7 +427,7 @@ "inputs": [ { "internalType": "address", - "name": "_newOwner", + "name": "newOwner", "type": "address" } ], diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index 5708ee060..004470d21 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -43,12 +43,12 @@ export declare type BaseWeb3Helper = BalanceCheck & MintNft & { /** * - * Deploy an ERC1155 smart contract + * Deploy an ERC721 smart contract * * @argument owner Owner of this smart contract * @returns Address of the deployed smart contract */ - deployErc1155(owner: Signer): Promise; + deployErc721(owner: Signer): Promise; }; /** * Traits implemented by this module diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 6ebea3bde..3f24f8f6c 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -32,7 +32,7 @@ const ethers_1 = require("ethers"); const utils_1 = require("ethers/lib/utils"); const fakeERC721_json_1 = require("../fakeERC721.json"); const fakeERC1155_json_1 = require("../fakeERC1155.json"); -const ERC1155_contract = __importStar(require("../XPNet.json")); +const ERC721_contract = __importStar(require("../XPNft.json")); const encoding_1 = require("validator/dist/encoding"); const js_base64_1 = require("js-base64"); function contractTypeFromNftKind(kind) { @@ -45,22 +45,22 @@ function contractTypeFromNftKind(kind) { */ async function baseWeb3HelperFactory(provider) { const w3 = provider; - const erc1155_abi = new utils_1.Interface(fakeERC1155_json_1.abi); + const erc721_abi = new utils_1.Interface(fakeERC721_json_1.abi); return { async balance(address) { const bal = await w3.getBalance(address); // ethers BigNumber is not compatible with our bignumber return new bignumber_js_1.default(bal.toString()); }, - async deployErc1155(owner) { - const factory = ethers_1.ContractFactory.fromSolidity(ERC1155_contract, owner); + async deployErc721(owner) { + const factory = ethers_1.ContractFactory.fromSolidity(ERC721_contract, owner); const contract = await factory.deploy(); return contract.address; }, async mintNft(contract_owner, { contract, token, owner, uri }) { - const erc1155 = new ethers_1.Contract(contract, erc1155_abi, contract_owner); - await erc1155.mint(owner, ethers_1.BigNumber.from(token.toString()), 1); - await erc1155.setURI(token, uri); + const erc721 = new ethers_1.Contract(contract, erc721_abi, contract_owner); + await erc721.mint(owner, ethers_1.BigNumber.from(token.toString())); + await erc721.setURI(token, uri); }, }; } @@ -164,4 +164,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBK0U7QUFNL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsZ0VBQWtEO0FBQ2xELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHNCQUFXLENBQUMsQ0FBQztJQUUvQyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBYTtZQUMvQixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RSxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUV4QyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDMUIsQ0FBQztRQUNELEtBQUssQ0FB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBK0U7QUFNL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/XPNft.json b/src/XPNft.json new file mode 100644 index 000000000..2f4e02f1a --- /dev/null +++ b/src/XPNft.json @@ -0,0 +1,447 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "XPNft", + "sourceName": "contracts/XPNft.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "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" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "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" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "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" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "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" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "string", + "name": "uri_", + "type": "string" + } + ], + "name": "setURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600981526020017f5870577261704e667400000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f58504e4654000000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620001a6565b508060019080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6132d080620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a22cb46511610071578063a22cb465146102f2578063b88d4fde1461030e578063c87b56dd1461032a578063e985e9c51461035a578063f2fde38b1461038a57610121565b806370a0823114610260578063715018a614610290578063862440e21461029a5780638da5cb5b146102b657806395d89b41146102d457610121565b806323b872dd116100f457806323b872dd146101c057806340c10f19146101dc57806342842e0e146101f857806342966c68146102145780636352211e1461023057610121565b806301ffc9a71461012657806306fdde0314610156578063081812fc14610174578063095ea7b3146101a4575b600080fd5b610140600480360381019061013b9190612258565b6103a6565b60405161014d91906126fc565b60405180910390f35b61015e610488565b60405161016b9190612717565b60405180910390f35b61018e600480360381019061018991906122aa565b61051a565b60405161019b9190612695565b60405180910390f35b6101be60048036038101906101b9919061221c565b61059f565b005b6101da60048036038101906101d59190612116565b6106b7565b005b6101f660048036038101906101f1919061221c565b610717565b005b610212600480360381019061020d9190612116565b6107a1565b005b61022e600480360381019061022991906122aa565b6107c1565b005b61024a600480360381019061024591906122aa565b610849565b6040516102579190612695565b60405180910390f35b61027a600480360381019061027591906120b1565b6108fb565b6040516102879190612979565b60405180910390f35b6102986109b3565b005b6102b460048036038101906102af91906122d3565b610a3b565b005b6102be610b0a565b6040516102cb9190612695565b60405180910390f35b6102dc610b34565b6040516102e99190612717565b60405180910390f35b61030c600480360381019061030791906121e0565b610bc6565b005b61032860048036038101906103239190612165565b610d47565b005b610344600480360381019061033f91906122aa565b610da9565b6040516103519190612717565b60405180910390f35b610374600480360381019061036f91906120da565b610efb565b60405161038191906126fc565b60405180910390f35b6103a4600480360381019061039f91906120b1565b610f8f565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610481575061048082611087565b5b9050919050565b60606000805461049790612b9e565b80601f01602080910402602001604051908101604052809291908181526020018280546104c390612b9e565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b5050505050905090565b6000610525826110f1565b610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b906128b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105aa82610849565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061290612939565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661063a61115d565b73ffffffffffffffffffffffffffffffffffffffff16148061066957506106688161066361115d565b610efb565b5b6106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906127f9565b60405180910390fd5b6106b28383611165565b505050565b6106c86106c261115d565b8261121e565b610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe90612959565b60405180910390fd5b6107128383836112fc565b505050565b61071f61115d565b73ffffffffffffffffffffffffffffffffffffffff1661073d610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a906128d9565b60405180910390fd5b61079d8282611558565b5050565b6107bc83838360405180602001604052806000815250610d47565b505050565b6107c961115d565b73ffffffffffffffffffffffffffffffffffffffff166107e7610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906128d9565b60405180910390fd5b61084681611576565b50565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e990612839565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612819565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109bb61115d565b73ffffffffffffffffffffffffffffffffffffffff166109d9610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906128d9565b60405180910390fd5b610a3960006115c9565b565b610a4361115d565b73ffffffffffffffffffffffffffffffffffffffff16610a61610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906128d9565b60405180910390fd5b610b058383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061168f565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b4390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6f90612b9e565b8015610bbc5780601f10610b9157610100808354040283529160200191610bbc565b820191906000526020600020905b815481529060010190602001808311610b9f57829003601f168201915b5050505050905090565b610bce61115d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c33906127b9565b60405180910390fd5b8060056000610c4961115d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610cf661115d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d3b91906126fc565b60405180910390a35050565b610d58610d5261115d565b8361121e565b610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612959565b60405180910390fd5b610da384848484611703565b50505050565b6060610db4826110f1565b610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90612899565b60405180910390fd5b6000600660008481526020019081526020016000208054610e1390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90612b9e565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b505050505090506000610e9d61175f565b9050600081511415610eb3578192505050610ef6565b600082511115610ee8578082604051602001610ed0929190612671565b60405160208183030381529060405292505050610ef6565b610ef184611776565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f9761115d565b73ffffffffffffffffffffffffffffffffffffffff16610fb5610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906128d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612759565b60405180910390fd5b611084816115c9565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166111d883610849565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611229826110f1565b611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906127d9565b60405180910390fd5b600061127383610849565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806112e257508373ffffffffffffffffffffffffffffffffffffffff166112ca8461051a565b73ffffffffffffffffffffffffffffffffffffffff16145b806112f357506112f28185610efb565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661131c82610849565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611369906128f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990612799565b60405180910390fd5b6113ed83838361181d565b6113f8600082611165565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114489190612ab4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461149f9190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611572828260405180602001604052806000815250611822565b5050565b61157f8161187d565b600060066000838152602001908152602001600020805461159f90612b9e565b9050146115c6576006600082815260200190815260200160002060006115c59190611eb3565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611698826110f1565b6116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612859565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906116fe929190611ef3565b505050565b61170e8484846112fc565b61171a8484848461198e565b611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612739565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060611781826110f1565b6117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612919565b60405180910390fd5b60006117ca61175f565b905060008151116117ea5760405180602001604052806000815250611815565b806117f484611b25565b604051602001611805929190612671565b6040516020818303038152906040525b915050919050565b505050565b61182c8383611cd2565b611839600084848461198e565b611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90612739565b60405180910390fd5b505050565b600061188882610849565b90506118968160008461181d565b6118a1600083611165565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118f19190612ab4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006119af8473ffffffffffffffffffffffffffffffffffffffff16611ea0565b15611b18578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119d861115d565b8786866040518563ffffffff1660e01b81526004016119fa94939291906126b0565b602060405180830381600087803b158015611a1457600080fd5b505af1925050508015611a4557506040513d601f19601f82011682018060405250810190611a429190612281565b60015b611ac8573d8060008114611a75576040519150601f19603f3d011682016040523d82523d6000602084013e611a7a565b606091505b50600081511415611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790612739565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b1d565b600190505b949350505050565b60606000821415611b6d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ccd565b600082905060005b60008214611b9f578080611b8890612c01565b915050600a82611b989190612a83565b9150611b75565b60008167ffffffffffffffff811115611be1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c135781602001600182028036833780820191505090505b5090505b60008514611cc657600182611c2c9190612ab4565b9150600a85611c3b9190612c4a565b6030611c479190612a2d565b60f81b818381518110611c83577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611cbf9190612a83565b9450611c17565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990612879565b60405180910390fd5b611d4b816110f1565b15611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612779565b60405180910390fd5b611d976000838361181d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de79190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611ebf90612b9e565b6000825580601f10611ed15750611ef0565b601f016020900490600052602060002090810190611eef9190611f79565b5b50565b828054611eff90612b9e565b90600052602060002090601f016020900481019282611f215760008555611f68565b82601f10611f3a57805160ff1916838001178555611f68565b82800160010185558215611f68579182015b82811115611f67578251825591602001919060010190611f4c565b5b509050611f759190611f79565b5090565b5b80821115611f92576000816000905550600101611f7a565b5090565b6000611fa9611fa4846129b9565b612994565b905082815260208101848484011115611fc157600080fd5b611fcc848285612b5c565b509392505050565b600081359050611fe38161323e565b92915050565b600081359050611ff881613255565b92915050565b60008135905061200d8161326c565b92915050565b6000815190506120228161326c565b92915050565b600082601f83011261203957600080fd5b8135612049848260208601611f96565b91505092915050565b60008083601f84011261206457600080fd5b8235905067ffffffffffffffff81111561207d57600080fd5b60208301915083600182028301111561209557600080fd5b9250929050565b6000813590506120ab81613283565b92915050565b6000602082840312156120c357600080fd5b60006120d184828501611fd4565b91505092915050565b600080604083850312156120ed57600080fd5b60006120fb85828601611fd4565b925050602061210c85828601611fd4565b9150509250929050565b60008060006060848603121561212b57600080fd5b600061213986828701611fd4565b935050602061214a86828701611fd4565b925050604061215b8682870161209c565b9150509250925092565b6000806000806080858703121561217b57600080fd5b600061218987828801611fd4565b945050602061219a87828801611fd4565b93505060406121ab8782880161209c565b925050606085013567ffffffffffffffff8111156121c857600080fd5b6121d487828801612028565b91505092959194509250565b600080604083850312156121f357600080fd5b600061220185828601611fd4565b925050602061221285828601611fe9565b9150509250929050565b6000806040838503121561222f57600080fd5b600061223d85828601611fd4565b925050602061224e8582860161209c565b9150509250929050565b60006020828403121561226a57600080fd5b600061227884828501611ffe565b91505092915050565b60006020828403121561229357600080fd5b60006122a184828501612013565b91505092915050565b6000602082840312156122bc57600080fd5b60006122ca8482850161209c565b91505092915050565b6000806000604084860312156122e857600080fd5b60006122f68682870161209c565b935050602084013567ffffffffffffffff81111561231357600080fd5b61231f86828701612052565b92509250509250925092565b61233481612ae8565b82525050565b61234381612afa565b82525050565b6000612354826129ea565b61235e8185612a00565b935061236e818560208601612b6b565b61237781612d37565b840191505092915050565b600061238d826129f5565b6123978185612a11565b93506123a7818560208601612b6b565b6123b081612d37565b840191505092915050565b60006123c6826129f5565b6123d08185612a22565b93506123e0818560208601612b6b565b80840191505092915050565b60006123f9603283612a11565b915061240482612d48565b604082019050919050565b600061241c602683612a11565b915061242782612d97565b604082019050919050565b600061243f601c83612a11565b915061244a82612de6565b602082019050919050565b6000612462602483612a11565b915061246d82612e0f565b604082019050919050565b6000612485601983612a11565b915061249082612e5e565b602082019050919050565b60006124a8602c83612a11565b91506124b382612e87565b604082019050919050565b60006124cb603883612a11565b91506124d682612ed6565b604082019050919050565b60006124ee602a83612a11565b91506124f982612f25565b604082019050919050565b6000612511602983612a11565b915061251c82612f74565b604082019050919050565b6000612534602e83612a11565b915061253f82612fc3565b604082019050919050565b6000612557602083612a11565b915061256282613012565b602082019050919050565b600061257a603183612a11565b91506125858261303b565b604082019050919050565b600061259d602c83612a11565b91506125a88261308a565b604082019050919050565b60006125c0602083612a11565b91506125cb826130d9565b602082019050919050565b60006125e3602983612a11565b91506125ee82613102565b604082019050919050565b6000612606602f83612a11565b915061261182613151565b604082019050919050565b6000612629602183612a11565b9150612634826131a0565b604082019050919050565b600061264c603183612a11565b9150612657826131ef565b604082019050919050565b61266b81612b52565b82525050565b600061267d82856123bb565b915061268982846123bb565b91508190509392505050565b60006020820190506126aa600083018461232b565b92915050565b60006080820190506126c5600083018761232b565b6126d2602083018661232b565b6126df6040830185612662565b81810360608301526126f18184612349565b905095945050505050565b6000602082019050612711600083018461233a565b92915050565b600060208201905081810360008301526127318184612382565b905092915050565b60006020820190508181036000830152612752816123ec565b9050919050565b600060208201905081810360008301526127728161240f565b9050919050565b6000602082019050818103600083015261279281612432565b9050919050565b600060208201905081810360008301526127b281612455565b9050919050565b600060208201905081810360008301526127d281612478565b9050919050565b600060208201905081810360008301526127f28161249b565b9050919050565b60006020820190508181036000830152612812816124be565b9050919050565b60006020820190508181036000830152612832816124e1565b9050919050565b6000602082019050818103600083015261285281612504565b9050919050565b6000602082019050818103600083015261287281612527565b9050919050565b600060208201905081810360008301526128928161254a565b9050919050565b600060208201905081810360008301526128b28161256d565b9050919050565b600060208201905081810360008301526128d281612590565b9050919050565b600060208201905081810360008301526128f2816125b3565b9050919050565b60006020820190508181036000830152612912816125d6565b9050919050565b60006020820190508181036000830152612932816125f9565b9050919050565b600060208201905081810360008301526129528161261c565b9050919050565b600060208201905081810360008301526129728161263f565b9050919050565b600060208201905061298e6000830184612662565b92915050565b600061299e6129af565b90506129aa8282612bd0565b919050565b6000604051905090565b600067ffffffffffffffff8211156129d4576129d3612d08565b5b6129dd82612d37565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a3882612b52565b9150612a4383612b52565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a7857612a77612c7b565b5b828201905092915050565b6000612a8e82612b52565b9150612a9983612b52565b925082612aa957612aa8612caa565b5b828204905092915050565b6000612abf82612b52565b9150612aca83612b52565b925082821015612add57612adc612c7b565b5b828203905092915050565b6000612af382612b32565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612b89578082015181840152602081019050612b6e565b83811115612b98576000848401525b50505050565b60006002820490506001821680612bb657607f821691505b60208210811415612bca57612bc9612cd9565b5b50919050565b612bd982612d37565b810181811067ffffffffffffffff82111715612bf857612bf7612d08565b5b80604052505050565b6000612c0c82612b52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c3f57612c3e612c7b565b5b600182019050919050565b6000612c5582612b52565b9150612c6083612b52565b925082612c7057612c6f612caa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61324781612ae8565b811461325257600080fd5b50565b61325e81612afa565b811461326957600080fd5b50565b61327581612b06565b811461328057600080fd5b50565b61328c81612b52565b811461329757600080fd5b5056fea264697066735822122030e436dff1e17326ae12faa33e250905a1949311adb6680e630d91dcc7fee75a64736f6c63430008040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a22cb46511610071578063a22cb465146102f2578063b88d4fde1461030e578063c87b56dd1461032a578063e985e9c51461035a578063f2fde38b1461038a57610121565b806370a0823114610260578063715018a614610290578063862440e21461029a5780638da5cb5b146102b657806395d89b41146102d457610121565b806323b872dd116100f457806323b872dd146101c057806340c10f19146101dc57806342842e0e146101f857806342966c68146102145780636352211e1461023057610121565b806301ffc9a71461012657806306fdde0314610156578063081812fc14610174578063095ea7b3146101a4575b600080fd5b610140600480360381019061013b9190612258565b6103a6565b60405161014d91906126fc565b60405180910390f35b61015e610488565b60405161016b9190612717565b60405180910390f35b61018e600480360381019061018991906122aa565b61051a565b60405161019b9190612695565b60405180910390f35b6101be60048036038101906101b9919061221c565b61059f565b005b6101da60048036038101906101d59190612116565b6106b7565b005b6101f660048036038101906101f1919061221c565b610717565b005b610212600480360381019061020d9190612116565b6107a1565b005b61022e600480360381019061022991906122aa565b6107c1565b005b61024a600480360381019061024591906122aa565b610849565b6040516102579190612695565b60405180910390f35b61027a600480360381019061027591906120b1565b6108fb565b6040516102879190612979565b60405180910390f35b6102986109b3565b005b6102b460048036038101906102af91906122d3565b610a3b565b005b6102be610b0a565b6040516102cb9190612695565b60405180910390f35b6102dc610b34565b6040516102e99190612717565b60405180910390f35b61030c600480360381019061030791906121e0565b610bc6565b005b61032860048036038101906103239190612165565b610d47565b005b610344600480360381019061033f91906122aa565b610da9565b6040516103519190612717565b60405180910390f35b610374600480360381019061036f91906120da565b610efb565b60405161038191906126fc565b60405180910390f35b6103a4600480360381019061039f91906120b1565b610f8f565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610481575061048082611087565b5b9050919050565b60606000805461049790612b9e565b80601f01602080910402602001604051908101604052809291908181526020018280546104c390612b9e565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b5050505050905090565b6000610525826110f1565b610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b906128b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105aa82610849565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061290612939565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661063a61115d565b73ffffffffffffffffffffffffffffffffffffffff16148061066957506106688161066361115d565b610efb565b5b6106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906127f9565b60405180910390fd5b6106b28383611165565b505050565b6106c86106c261115d565b8261121e565b610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe90612959565b60405180910390fd5b6107128383836112fc565b505050565b61071f61115d565b73ffffffffffffffffffffffffffffffffffffffff1661073d610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a906128d9565b60405180910390fd5b61079d8282611558565b5050565b6107bc83838360405180602001604052806000815250610d47565b505050565b6107c961115d565b73ffffffffffffffffffffffffffffffffffffffff166107e7610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906128d9565b60405180910390fd5b61084681611576565b50565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e990612839565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612819565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109bb61115d565b73ffffffffffffffffffffffffffffffffffffffff166109d9610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906128d9565b60405180910390fd5b610a3960006115c9565b565b610a4361115d565b73ffffffffffffffffffffffffffffffffffffffff16610a61610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906128d9565b60405180910390fd5b610b058383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061168f565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b4390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6f90612b9e565b8015610bbc5780601f10610b9157610100808354040283529160200191610bbc565b820191906000526020600020905b815481529060010190602001808311610b9f57829003601f168201915b5050505050905090565b610bce61115d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c33906127b9565b60405180910390fd5b8060056000610c4961115d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610cf661115d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d3b91906126fc565b60405180910390a35050565b610d58610d5261115d565b8361121e565b610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612959565b60405180910390fd5b610da384848484611703565b50505050565b6060610db4826110f1565b610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90612899565b60405180910390fd5b6000600660008481526020019081526020016000208054610e1390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90612b9e565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b505050505090506000610e9d61175f565b9050600081511415610eb3578192505050610ef6565b600082511115610ee8578082604051602001610ed0929190612671565b60405160208183030381529060405292505050610ef6565b610ef184611776565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f9761115d565b73ffffffffffffffffffffffffffffffffffffffff16610fb5610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906128d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612759565b60405180910390fd5b611084816115c9565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166111d883610849565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611229826110f1565b611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906127d9565b60405180910390fd5b600061127383610849565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806112e257508373ffffffffffffffffffffffffffffffffffffffff166112ca8461051a565b73ffffffffffffffffffffffffffffffffffffffff16145b806112f357506112f28185610efb565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661131c82610849565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611369906128f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990612799565b60405180910390fd5b6113ed83838361181d565b6113f8600082611165565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114489190612ab4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461149f9190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611572828260405180602001604052806000815250611822565b5050565b61157f8161187d565b600060066000838152602001908152602001600020805461159f90612b9e565b9050146115c6576006600082815260200190815260200160002060006115c59190611eb3565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611698826110f1565b6116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612859565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906116fe929190611ef3565b505050565b61170e8484846112fc565b61171a8484848461198e565b611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612739565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060611781826110f1565b6117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612919565b60405180910390fd5b60006117ca61175f565b905060008151116117ea5760405180602001604052806000815250611815565b806117f484611b25565b604051602001611805929190612671565b6040516020818303038152906040525b915050919050565b505050565b61182c8383611cd2565b611839600084848461198e565b611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90612739565b60405180910390fd5b505050565b600061188882610849565b90506118968160008461181d565b6118a1600083611165565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118f19190612ab4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006119af8473ffffffffffffffffffffffffffffffffffffffff16611ea0565b15611b18578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119d861115d565b8786866040518563ffffffff1660e01b81526004016119fa94939291906126b0565b602060405180830381600087803b158015611a1457600080fd5b505af1925050508015611a4557506040513d601f19601f82011682018060405250810190611a429190612281565b60015b611ac8573d8060008114611a75576040519150601f19603f3d011682016040523d82523d6000602084013e611a7a565b606091505b50600081511415611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790612739565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b1d565b600190505b949350505050565b60606000821415611b6d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ccd565b600082905060005b60008214611b9f578080611b8890612c01565b915050600a82611b989190612a83565b9150611b75565b60008167ffffffffffffffff811115611be1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c135781602001600182028036833780820191505090505b5090505b60008514611cc657600182611c2c9190612ab4565b9150600a85611c3b9190612c4a565b6030611c479190612a2d565b60f81b818381518110611c83577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611cbf9190612a83565b9450611c17565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990612879565b60405180910390fd5b611d4b816110f1565b15611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612779565b60405180910390fd5b611d976000838361181d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de79190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611ebf90612b9e565b6000825580601f10611ed15750611ef0565b601f016020900490600052602060002090810190611eef9190611f79565b5b50565b828054611eff90612b9e565b90600052602060002090601f016020900481019282611f215760008555611f68565b82601f10611f3a57805160ff1916838001178555611f68565b82800160010185558215611f68579182015b82811115611f67578251825591602001919060010190611f4c565b5b509050611f759190611f79565b5090565b5b80821115611f92576000816000905550600101611f7a565b5090565b6000611fa9611fa4846129b9565b612994565b905082815260208101848484011115611fc157600080fd5b611fcc848285612b5c565b509392505050565b600081359050611fe38161323e565b92915050565b600081359050611ff881613255565b92915050565b60008135905061200d8161326c565b92915050565b6000815190506120228161326c565b92915050565b600082601f83011261203957600080fd5b8135612049848260208601611f96565b91505092915050565b60008083601f84011261206457600080fd5b8235905067ffffffffffffffff81111561207d57600080fd5b60208301915083600182028301111561209557600080fd5b9250929050565b6000813590506120ab81613283565b92915050565b6000602082840312156120c357600080fd5b60006120d184828501611fd4565b91505092915050565b600080604083850312156120ed57600080fd5b60006120fb85828601611fd4565b925050602061210c85828601611fd4565b9150509250929050565b60008060006060848603121561212b57600080fd5b600061213986828701611fd4565b935050602061214a86828701611fd4565b925050604061215b8682870161209c565b9150509250925092565b6000806000806080858703121561217b57600080fd5b600061218987828801611fd4565b945050602061219a87828801611fd4565b93505060406121ab8782880161209c565b925050606085013567ffffffffffffffff8111156121c857600080fd5b6121d487828801612028565b91505092959194509250565b600080604083850312156121f357600080fd5b600061220185828601611fd4565b925050602061221285828601611fe9565b9150509250929050565b6000806040838503121561222f57600080fd5b600061223d85828601611fd4565b925050602061224e8582860161209c565b9150509250929050565b60006020828403121561226a57600080fd5b600061227884828501611ffe565b91505092915050565b60006020828403121561229357600080fd5b60006122a184828501612013565b91505092915050565b6000602082840312156122bc57600080fd5b60006122ca8482850161209c565b91505092915050565b6000806000604084860312156122e857600080fd5b60006122f68682870161209c565b935050602084013567ffffffffffffffff81111561231357600080fd5b61231f86828701612052565b92509250509250925092565b61233481612ae8565b82525050565b61234381612afa565b82525050565b6000612354826129ea565b61235e8185612a00565b935061236e818560208601612b6b565b61237781612d37565b840191505092915050565b600061238d826129f5565b6123978185612a11565b93506123a7818560208601612b6b565b6123b081612d37565b840191505092915050565b60006123c6826129f5565b6123d08185612a22565b93506123e0818560208601612b6b565b80840191505092915050565b60006123f9603283612a11565b915061240482612d48565b604082019050919050565b600061241c602683612a11565b915061242782612d97565b604082019050919050565b600061243f601c83612a11565b915061244a82612de6565b602082019050919050565b6000612462602483612a11565b915061246d82612e0f565b604082019050919050565b6000612485601983612a11565b915061249082612e5e565b602082019050919050565b60006124a8602c83612a11565b91506124b382612e87565b604082019050919050565b60006124cb603883612a11565b91506124d682612ed6565b604082019050919050565b60006124ee602a83612a11565b91506124f982612f25565b604082019050919050565b6000612511602983612a11565b915061251c82612f74565b604082019050919050565b6000612534602e83612a11565b915061253f82612fc3565b604082019050919050565b6000612557602083612a11565b915061256282613012565b602082019050919050565b600061257a603183612a11565b91506125858261303b565b604082019050919050565b600061259d602c83612a11565b91506125a88261308a565b604082019050919050565b60006125c0602083612a11565b91506125cb826130d9565b602082019050919050565b60006125e3602983612a11565b91506125ee82613102565b604082019050919050565b6000612606602f83612a11565b915061261182613151565b604082019050919050565b6000612629602183612a11565b9150612634826131a0565b604082019050919050565b600061264c603183612a11565b9150612657826131ef565b604082019050919050565b61266b81612b52565b82525050565b600061267d82856123bb565b915061268982846123bb565b91508190509392505050565b60006020820190506126aa600083018461232b565b92915050565b60006080820190506126c5600083018761232b565b6126d2602083018661232b565b6126df6040830185612662565b81810360608301526126f18184612349565b905095945050505050565b6000602082019050612711600083018461233a565b92915050565b600060208201905081810360008301526127318184612382565b905092915050565b60006020820190508181036000830152612752816123ec565b9050919050565b600060208201905081810360008301526127728161240f565b9050919050565b6000602082019050818103600083015261279281612432565b9050919050565b600060208201905081810360008301526127b281612455565b9050919050565b600060208201905081810360008301526127d281612478565b9050919050565b600060208201905081810360008301526127f28161249b565b9050919050565b60006020820190508181036000830152612812816124be565b9050919050565b60006020820190508181036000830152612832816124e1565b9050919050565b6000602082019050818103600083015261285281612504565b9050919050565b6000602082019050818103600083015261287281612527565b9050919050565b600060208201905081810360008301526128928161254a565b9050919050565b600060208201905081810360008301526128b28161256d565b9050919050565b600060208201905081810360008301526128d281612590565b9050919050565b600060208201905081810360008301526128f2816125b3565b9050919050565b60006020820190508181036000830152612912816125d6565b9050919050565b60006020820190508181036000830152612932816125f9565b9050919050565b600060208201905081810360008301526129528161261c565b9050919050565b600060208201905081810360008301526129728161263f565b9050919050565b600060208201905061298e6000830184612662565b92915050565b600061299e6129af565b90506129aa8282612bd0565b919050565b6000604051905090565b600067ffffffffffffffff8211156129d4576129d3612d08565b5b6129dd82612d37565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a3882612b52565b9150612a4383612b52565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a7857612a77612c7b565b5b828201905092915050565b6000612a8e82612b52565b9150612a9983612b52565b925082612aa957612aa8612caa565b5b828204905092915050565b6000612abf82612b52565b9150612aca83612b52565b925082821015612add57612adc612c7b565b5b828203905092915050565b6000612af382612b32565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612b89578082015181840152602081019050612b6e565b83811115612b98576000848401525b50505050565b60006002820490506001821680612bb657607f821691505b60208210811415612bca57612bc9612cd9565b5b50919050565b612bd982612d37565b810181811067ffffffffffffffff82111715612bf857612bf7612d08565b5b80604052505050565b6000612c0c82612b52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c3f57612c3e612c7b565b5b600182019050919050565b6000612c5582612b52565b9150612c6083612b52565b925082612c7057612c6f612caa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61324781612ae8565b811461325257600080fd5b50565b61325e81612afa565b811461326957600080fd5b50565b61327581612b06565b811461328057600080fd5b50565b61328c81612b52565b811461329757600080fd5b5056fea264697066735822122030e436dff1e17326ae12faa33e250905a1949311adb6680e630d91dcc7fee75a64736f6c63430008040033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/src/fakeERC721.json b/src/fakeERC721.json index e090aefbe..1309c264f 100644 --- a/src/fakeERC721.json +++ b/src/fakeERC721.json @@ -11,19 +11,19 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "_approved", + "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], @@ -36,19 +36,19 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "_operator", + "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", - "name": "_approved", + "name": "approved", "type": "bool" } ], @@ -80,61 +80,35 @@ { "indexed": true, "internalType": "address", - "name": "_from", + "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "_to", + "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, - { - "inputs": [], - "name": "CANNOT_TRANSFER_TO_ZERO_ADDRESS", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "NOT_CURRENT_OWNER", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { "internalType": "address", - "name": "_approved", + "name": "to", "type": "address" }, { "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], @@ -147,7 +121,7 @@ "inputs": [ { "internalType": "address", - "name": "_owner", + "name": "owner", "type": "address" } ], @@ -166,7 +140,20 @@ "inputs": [ { "internalType": "uint256", - "name": "_tokenId", + "name": "id", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", "type": "uint256" } ], @@ -185,12 +172,12 @@ "inputs": [ { "internalType": "address", - "name": "_owner", + "name": "owner", "type": "address" }, { "internalType": "address", - "name": "_operator", + "name": "operator", "type": "address" } ], @@ -205,6 +192,37 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -222,7 +240,7 @@ "inputs": [ { "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], @@ -230,28 +248,35 @@ "outputs": [ { "internalType": "address", - "name": "_owner", + "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "address", - "name": "_from", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "_to", + "name": "to", "type": "address" }, { "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], @@ -264,17 +289,17 @@ "inputs": [ { "internalType": "address", - "name": "_from", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "_to", + "name": "to", "type": "address" }, { "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" }, { @@ -292,12 +317,12 @@ "inputs": [ { "internalType": "address", - "name": "_operator", + "name": "operator", "type": "address" }, { "internalType": "bool", - "name": "_approved", + "name": "approved", "type": "bool" } ], @@ -306,11 +331,29 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "string", + "name": "uri_", + "type": "string" + } + ], + "name": "setURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "bytes4", - "name": "_interfaceID", + "name": "interfaceId", "type": "bytes4" } ], @@ -325,21 +368,53 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { "internalType": "address", - "name": "_from", + "name": "from", "type": "address" }, { "internalType": "address", - "name": "_to", + "name": "to", "type": "address" }, { "internalType": "uint256", - "name": "_tokenId", + "name": "tokenId", "type": "uint256" } ], @@ -352,7 +427,7 @@ "inputs": [ { "internalType": "address", - "name": "_newOwner", + "name": "newOwner", "type": "address" } ], diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 9b1bbbd31..d207024d0 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -25,7 +25,7 @@ import { import { Interface } from "ethers/lib/utils"; import { abi as ERC721_abi } from "../fakeERC721.json"; import { abi as ERC1155_abi } from "../fakeERC1155.json"; -import * as ERC1155_contract from "../XPNet.json"; +import * as ERC721_contract from "../XPNft.json"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; import { Base64 } from "js-base64"; type EasyBalance = string | number | EthBN; @@ -66,12 +66,12 @@ export type BaseWeb3Helper = BalanceCheck & MintNft & { /** * - * Deploy an ERC1155 smart contract + * Deploy an ERC721 smart contract * * @argument owner Owner of this smart contract * @returns Address of the deployed smart contract */ - deployErc1155(owner: Signer): Promise; + deployErc721(owner: Signer): Promise; }; /** @@ -105,7 +105,7 @@ export async function baseWeb3HelperFactory( provider: Provider ): Promise { const w3 = provider; - const erc1155_abi = new Interface(ERC1155_abi); + const erc721_abi = new Interface(ERC721_abi); return { async balance(address: string): Promise { @@ -114,8 +114,8 @@ export async function baseWeb3HelperFactory( // ethers BigNumber is not compatible with our bignumber return new BigNumber(bal.toString()); }, - async deployErc1155(owner: Signer): Promise { - const factory = ContractFactory.fromSolidity(ERC1155_contract, owner); + async deployErc721(owner: Signer): Promise { + const factory = ContractFactory.fromSolidity(ERC721_contract, owner); const contract = await factory.deploy(); return contract.address; @@ -124,9 +124,9 @@ export async function baseWeb3HelperFactory( contract_owner: Signer, { contract, token, owner, uri }: MintArgs ): Promise { - const erc1155 = new Contract(contract, erc1155_abi, contract_owner); - await erc1155.mint(owner, EthBN.from(token.toString()), 1); - await erc1155.setURI(token, uri); + const erc721 = new Contract(contract, erc721_abi, contract_owner); + await erc721.mint(owner, EthBN.from(token.toString())); + await erc721.setURI(token, uri); }, }; } From 5dfa7331f2ed4726069a2b81c01ea97580416d71 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 30 Sep 2021 14:28:34 +0530 Subject: [PATCH 017/956] web3: mintNft: send TokenID as BigNum --- dist/helpers/web3.js | 7 ++++--- src/helpers/web3.ts | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 3f24f8f6c..80b1c3668 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -58,9 +58,10 @@ async function baseWeb3HelperFactory(provider) { return contract.address; }, async mintNft(contract_owner, { contract, token, owner, uri }) { + const tok = ethers_1.BigNumber.from(token.toString()); const erc721 = new ethers_1.Contract(contract, erc721_abi, contract_owner); - await erc721.mint(owner, ethers_1.BigNumber.from(token.toString())); - await erc721.setURI(token, uri); + await erc721.mint(owner, tok); + await erc721.setURI(tok, uri); }, }; } @@ -164,4 +165,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBK0U7QUFNL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUNYLGNBQXNCLEVBQ3RCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFZO1lBRXpDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQVEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsa0JBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2RCxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQTVCRCxzREE0QkM7QUFFRDs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFFBQWtCLEVBQ2xCLFdBQW1CLEVBQ25CLFVBQXFCLEVBQ3JCLFlBQW9CO0lBRXBCLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUVwQixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFRLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV6RCxNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFTLENBQUMsc0JBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQVEsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTVELFNBQVMsWUFBWSxDQUFDLE1BQWM7UUFDbEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLLFVBQVUsVUFBVSxDQUN2QixHQUF3QixFQUN4QixPQUFlO1FBRWYsTUFBTSxPQUFPLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtZQUNyQixNQUFNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxNQUFNLFNBQVMsR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEtBQUssVUFBVSxNQUFNLENBQUMsSUFBZ0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLFFBQVEsRUFBRTtZQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxxQkFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0wsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRW5ELHVDQUNLLElBQUksS0FDUCxLQUFLLENBQUMsY0FBYyxDQUNsQixPQUFlLEVBQ2YsV0FBbUI7WUFFbkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUUxRCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLG1CQUFtQixDQUN2QixPQUFlLEVBQ2YsWUFBc0I7WUFFdEIsTUFBTSxJQUFJLEdBQVksTUFBTSxPQUFPLENBQUMsY0FBYyxDQUNoRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDeEMsWUFBWSxDQUNiLENBQUM7WUFFRixPQUFPLElBQUksR0FBRyxDQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNuRSxDQUFDO1FBQ0osQ0FBQztRQUNELEtBQUssQ0FBQyx1QkFBdUIsQ0FDM0IsTUFBYyxFQUNkLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixLQUFrQjtZQUVsQixNQUFNLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDMUUsT0FBTyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELEtBQUssQ0FBQyxvQkFBb0IsQ0FDeEIsTUFBYyxFQUNkLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixFQUFjO1lBRWQsSUFBSSxHQUFHLENBQUM7WUFDUixJQUFJLEVBQUUsQ0FBQztZQUNQLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUMzRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7YUFDekIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxFQUFFLENBQUMsYUFBYSxJQUFJLFFBQVEsRUFBRTtnQkFDaEMsRUFBRSxHQUFHLGdCQUFnQixDQUFDO2dCQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxxQkFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RCxHQUFHLEdBQUcsTUFBTSxHQUFHO3FCQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FDZixpREFBaUQsQ0FBQyxDQUNqRCxNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFDekIsV0FBVyxFQUNYLEVBQUUsQ0FBQyxLQUFLLEVBQ1IsUUFBUSxDQUNULENBQUM7YUFDTDtpQkFBTTtnQkFDTCxFQUFFLEdBQUcsaUJBQWlCLENBQUM7Z0JBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdkQsR0FBRyxHQUFHLE1BQU0sR0FBRztxQkFDWixPQUFPLENBQUMsTUFBTSxDQUFDO3FCQUNmLGdCQUFnQixDQUNmLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUN6QixXQUFXLEVBQ1gsRUFBRSxDQUFDLEtBQUssRUFDUixrQkFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDYixRQUFRLENBQ1QsQ0FBQzthQUNMO1lBRUQsT0FBTyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELEtBQUssQ0FBQyxlQUFlLENBQ25CLE1BQWMsRUFDZCxXQUFtQixFQUNuQixFQUFVLEVBQ1YsS0FBa0I7WUFFbEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFeEUsT0FBTyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELEtBQUssQ0FBQyxrQkFBa0IsQ0FDdEIsTUFBYyxFQUNkLEVBQVUsRUFDVixFQUFhO1lBRWIsTUFBTSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUU1RCxPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsTUFBTTtRQUNOLGdCQUFnQixDQUFDLFFBQWdCO1lBQy9CLE1BQU0sR0FBRyxHQUFHLGtCQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sTUFBTSxHQUFHLG9CQUFTLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFaEQsT0FBTztnQkFDTCxXQUFXLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDbkMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEVBQUU7YUFDNUIsQ0FBQztRQUNKLENBQUM7UUFDRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBZ0I7WUFDckMsTUFBTSxNQUFNLEdBQUcsdUJBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRztnQkFDZixhQUFhLEVBQUUsdUJBQXVCLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUMzRCxRQUFRLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRTtnQkFDbEMsS0FBSyxFQUFFLGtCQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNsQyxDQUFDO1lBRUYsT0FBTyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxDQUFDLElBQ0Q7QUFDSixDQUFDO0FBN0pELDhDQTZKQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBK0U7QUFNL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index d207024d0..8fa96ce48 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -124,9 +124,10 @@ export async function baseWeb3HelperFactory( contract_owner: Signer, { contract, token, owner, uri }: MintArgs ): Promise { + const tok = EthBN.from(token.toString()); const erc721 = new Contract(contract, erc721_abi, contract_owner); - await erc721.mint(owner, EthBN.from(token.toString())); - await erc721.setURI(token, uri); + await erc721.mint(owner, tok); + await erc721.setURI(tok, uri); }, }; } From 400de7104d657bd91f42de4e29df5f025d193af9 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 30 Sep 2021 14:34:44 +0530 Subject: [PATCH 018/956] web3: mintNft: wait before setting URI --- dist/helpers/web3.js | 8 +++++--- src/helpers/web3.ts | 8 ++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 80b1c3668..2c23751d7 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -60,8 +60,10 @@ async function baseWeb3HelperFactory(provider) { async mintNft(contract_owner, { contract, token, owner, uri }) { const tok = ethers_1.BigNumber.from(token.toString()); const erc721 = new ethers_1.Contract(contract, erc721_abi, contract_owner); - await erc721.mint(owner, tok); - await erc721.setURI(tok, uri); + const txm = await erc721.mint(owner, tok); + await txm.wait(); + const txt = await erc721.setURI(tok, uri); + await txt.wait(); }, }; } @@ -165,4 +167,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBK0U7QUFNL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBK0U7QUFNL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 8fa96ce48..f66f34b50 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -126,8 +126,12 @@ export async function baseWeb3HelperFactory( ): Promise { const tok = EthBN.from(token.toString()); const erc721 = new Contract(contract, erc721_abi, contract_owner); - await erc721.mint(owner, tok); - await erc721.setURI(tok, uri); + + const txm = await erc721.mint(owner, tok); + await txm.wait(); + + const txt = await erc721.setURI(tok, uri); + await txt.wait(); }, }; } From b0f2da50e88c8d0aef98c756518ad311dbd5f524 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 30 Sep 2021 17:04:12 +0530 Subject: [PATCH 019/956] web3: mintNft: modify for UserNftMinter --- dist/fakeERC721.json | 37 +++++++++++++------------------------ dist/helpers/tron.js | 11 +++++------ dist/helpers/web3.d.ts | 1 - dist/helpers/web3.js | 10 ++++------ src/fakeERC721.json | 37 +++++++++++++------------------------ src/helpers/tron.ts | 9 ++++----- src/helpers/web3.ts | 12 ++++-------- 7 files changed, 43 insertions(+), 74 deletions(-) diff --git a/dist/fakeERC721.json b/dist/fakeERC721.json index fd557b4c7..e9d1f440a 100644 --- a/dist/fakeERC721.json +++ b/dist/fakeERC721.json @@ -1,4 +1,7 @@ { + "_format": "hh-sol-artifact-1", + "contractName": "UserNftMinter", + "sourceName": "contracts/UserNftMinter.sol", "abi": [ { "inputs": [], @@ -194,15 +197,15 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, { "internalType": "uint256", "name": "id", "type": "uint256" + }, + { + "internalType": "string", + "name": "uri", + "type": "string" } ], "name": "mint", @@ -331,24 +334,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "uri_", - "type": "string" - } - ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -436,5 +421,9 @@ "stateMutability": "nonpayable", "type": "function" } - ] + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d540000000000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620001a6565b508060019080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61323f80620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a22cb46511610071578063a22cb465146102cb578063b88d4fde146102e7578063c87b56dd14610303578063e985e9c514610333578063f2fde38b1461036357610116565b8063715018a61461026957806377097fc8146102735780638da5cb5b1461028f57806395d89b41146102ad57610116565b806323b872dd116100e957806323b872dd146101b557806342842e0e146101d157806342966c68146101ed5780636352211e1461020957806370a082311461023957610116565b806301ffc9a71461011b57806306fdde031461014b578063081812fc14610169578063095ea7b314610199575b600080fd5b61013560048036038101906101309190612135565b61037f565b60405161014291906125fc565b60405180910390f35b610153610461565b6040516101609190612617565b60405180910390f35b610183600480360381019061017e9190612187565b6104f3565b6040516101909190612595565b60405180910390f35b6101b360048036038101906101ae91906120f9565b610578565b005b6101cf60048036038101906101ca9190611ff3565b610690565b005b6101eb60048036038101906101e69190611ff3565b6106f0565b005b61020760048036038101906102029190612187565b610710565b005b610223600480360381019061021e9190612187565b610798565b6040516102309190612595565b60405180910390f35b610253600480360381019061024e9190611f8e565b61084a565b6040516102609190612899565b60405180910390f35b610271610902565b005b61028d600480360381019061028891906121b0565b61098a565b005b6102976109e7565b6040516102a49190612595565b60405180910390f35b6102b5610a11565b6040516102c29190612617565b60405180910390f35b6102e560048036038101906102e091906120bd565b610aa3565b005b61030160048036038101906102fc9190612042565b610c24565b005b61031d60048036038101906103189190612187565b610c86565b60405161032a9190612617565b60405180910390f35b61034d60048036038101906103489190611fb7565b610dd8565b60405161035a91906125fc565b60405180910390f35b61037d60048036038101906103789190611f8e565b610e6c565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061044a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061045a575061045982610f64565b5b9050919050565b60606000805461047090612abe565b80601f016020809104026020016040519081016040528092919081815260200182805461049c90612abe565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b5050505050905090565b60006104fe82610fce565b61053d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610534906127b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061058382610798565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb90612839565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661061361103a565b73ffffffffffffffffffffffffffffffffffffffff16148061064257506106418161063c61103a565b610dd8565b5b610681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610678906126f9565b60405180910390fd5b61068b8383611042565b505050565b6106a161069b61103a565b826110fb565b6106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612859565b60405180910390fd5b6106eb8383836111d9565b505050565b61070b83838360405180602001604052806000815250610c24565b505050565b600061071b82610798565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612879565b60405180910390fd5b61079482611435565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890612739565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612719565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090a61103a565b73ffffffffffffffffffffffffffffffffffffffff166109286109e7565b73ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906127d9565b60405180910390fd5b6109886000611488565b565b610994338461154e565b6109e28383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156c565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a2090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612abe565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b610aab61103a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906126b9565b60405180910390fd5b8060056000610b2661103a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610bd361103a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906125fc565b60405180910390a35050565b610c35610c2f61103a565b836110fb565b610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90612859565b60405180910390fd5b610c80848484846115e0565b50505050565b6060610c9182610fce565b610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790612799565b60405180910390fd5b6000600660008481526020019081526020016000208054610cf090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1c90612abe565b8015610d695780601f10610d3e57610100808354040283529160200191610d69565b820191906000526020600020905b815481529060010190602001808311610d4c57829003601f168201915b505050505090506000610d7a61163c565b9050600081511415610d90578192505050610dd3565b600082511115610dc5578082604051602001610dad929190612571565b60405160208183030381529060405292505050610dd3565b610dce84611653565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e7461103a565b73ffffffffffffffffffffffffffffffffffffffff16610e926109e7565b73ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906127d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612659565b60405180910390fd5b610f6181611488565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110b583610798565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061110682610fce565b611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906126d9565b60405180910390fd5b600061115083610798565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111bf57508373ffffffffffffffffffffffffffffffffffffffff166111a7846104f3565b73ffffffffffffffffffffffffffffffffffffffff16145b806111d057506111cf8185610dd8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111f982610798565b73ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611246906127f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690612699565b60405180910390fd5b6112ca8383836116fa565b6112d5600082611042565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461132591906129d4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461137c919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61143e816116ff565b600060066000838152602001908152602001600020805461145e90612abe565b905014611485576006600082815260200190815260200160002060006114849190611d90565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611568828260405180602001604052806000815250611810565b5050565b61157582610fce565b6115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90612759565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906115db929190611dd0565b505050565b6115eb8484846111d9565b6115f78484848461186b565b611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612639565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061165e82610fce565b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612819565b60405180910390fd5b60006116a761163c565b905060008151116116c757604051806020016040528060008152506116f2565b806116d184611a02565b6040516020016116e2929190612571565b6040516020818303038152906040525b915050919050565b505050565b600061170a82610798565b9050611718816000846116fa565b611723600083611042565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461177391906129d4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61181a8383611baf565b611827600084848461186b565b611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612639565b60405180910390fd5b505050565b600061188c8473ffffffffffffffffffffffffffffffffffffffff16611d7d565b156119f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026118b561103a565b8786866040518563ffffffff1660e01b81526004016118d794939291906125b0565b602060405180830381600087803b1580156118f157600080fd5b505af192505050801561192257506040513d601f19601f8201168201806040525081019061191f919061215e565b60015b6119a5573d8060008114611952576040519150601f19603f3d011682016040523d82523d6000602084013e611957565b606091505b5060008151141561199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490612639565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506119fa565b600190505b949350505050565b60606000821415611a4a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611baa565b600082905060005b60008214611a7c578080611a6590612b21565b915050600a82611a7591906129a3565b9150611a52565b60008167ffffffffffffffff811115611abe577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611af05781602001600182028036833780820191505090505b5090505b60008514611ba357600182611b0991906129d4565b9150600a85611b189190612b6a565b6030611b24919061294d565b60f81b818381518110611b60577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b9c91906129a3565b9450611af4565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1690612779565b60405180910390fd5b611c2881610fce565b15611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f90612679565b60405180910390fd5b611c74600083836116fa565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc4919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611d9c90612abe565b6000825580601f10611dae5750611dcd565b601f016020900490600052602060002090810190611dcc9190611e56565b5b50565b828054611ddc90612abe565b90600052602060002090601f016020900481019282611dfe5760008555611e45565b82601f10611e1757805160ff1916838001178555611e45565b82800160010185558215611e45579182015b82811115611e44578251825591602001919060010190611e29565b5b509050611e529190611e56565b5090565b5b80821115611e6f576000816000905550600101611e57565b5090565b6000611e86611e81846128d9565b6128b4565b905082815260208101848484011115611e9e57600080fd5b611ea9848285612a7c565b509392505050565b600081359050611ec0816131ad565b92915050565b600081359050611ed5816131c4565b92915050565b600081359050611eea816131db565b92915050565b600081519050611eff816131db565b92915050565b600082601f830112611f1657600080fd5b8135611f26848260208601611e73565b91505092915050565b60008083601f840112611f4157600080fd5b8235905067ffffffffffffffff811115611f5a57600080fd5b602083019150836001820283011115611f7257600080fd5b9250929050565b600081359050611f88816131f2565b92915050565b600060208284031215611fa057600080fd5b6000611fae84828501611eb1565b91505092915050565b60008060408385031215611fca57600080fd5b6000611fd885828601611eb1565b9250506020611fe985828601611eb1565b9150509250929050565b60008060006060848603121561200857600080fd5b600061201686828701611eb1565b935050602061202786828701611eb1565b925050604061203886828701611f79565b9150509250925092565b6000806000806080858703121561205857600080fd5b600061206687828801611eb1565b945050602061207787828801611eb1565b935050604061208887828801611f79565b925050606085013567ffffffffffffffff8111156120a557600080fd5b6120b187828801611f05565b91505092959194509250565b600080604083850312156120d057600080fd5b60006120de85828601611eb1565b92505060206120ef85828601611ec6565b9150509250929050565b6000806040838503121561210c57600080fd5b600061211a85828601611eb1565b925050602061212b85828601611f79565b9150509250929050565b60006020828403121561214757600080fd5b600061215584828501611edb565b91505092915050565b60006020828403121561217057600080fd5b600061217e84828501611ef0565b91505092915050565b60006020828403121561219957600080fd5b60006121a784828501611f79565b91505092915050565b6000806000604084860312156121c557600080fd5b60006121d386828701611f79565b935050602084013567ffffffffffffffff8111156121f057600080fd5b6121fc86828701611f2f565b92509250509250925092565b61221181612a08565b82525050565b61222081612a1a565b82525050565b60006122318261290a565b61223b8185612920565b935061224b818560208601612a8b565b61225481612c57565b840191505092915050565b600061226a82612915565b6122748185612931565b9350612284818560208601612a8b565b61228d81612c57565b840191505092915050565b60006122a382612915565b6122ad8185612942565b93506122bd818560208601612a8b565b80840191505092915050565b60006122d6603283612931565b91506122e182612c68565b604082019050919050565b60006122f9602683612931565b915061230482612cb7565b604082019050919050565b600061231c601c83612931565b915061232782612d06565b602082019050919050565b600061233f602483612931565b915061234a82612d2f565b604082019050919050565b6000612362601983612931565b915061236d82612d7e565b602082019050919050565b6000612385602c83612931565b915061239082612da7565b604082019050919050565b60006123a8603883612931565b91506123b382612df6565b604082019050919050565b60006123cb602a83612931565b91506123d682612e45565b604082019050919050565b60006123ee602983612931565b91506123f982612e94565b604082019050919050565b6000612411602e83612931565b915061241c82612ee3565b604082019050919050565b6000612434602083612931565b915061243f82612f32565b602082019050919050565b6000612457603183612931565b915061246282612f5b565b604082019050919050565b600061247a602c83612931565b915061248582612faa565b604082019050919050565b600061249d602083612931565b91506124a882612ff9565b602082019050919050565b60006124c0602983612931565b91506124cb82613022565b604082019050919050565b60006124e3602f83612931565b91506124ee82613071565b604082019050919050565b6000612506602183612931565b9150612511826130c0565b604082019050919050565b6000612529603183612931565b91506125348261310f565b604082019050919050565b600061254c602383612931565b91506125578261315e565b604082019050919050565b61256b81612a72565b82525050565b600061257d8285612298565b91506125898284612298565b91508190509392505050565b60006020820190506125aa6000830184612208565b92915050565b60006080820190506125c56000830187612208565b6125d26020830186612208565b6125df6040830185612562565b81810360608301526125f18184612226565b905095945050505050565b60006020820190506126116000830184612217565b92915050565b60006020820190508181036000830152612631818461225f565b905092915050565b60006020820190508181036000830152612652816122c9565b9050919050565b60006020820190508181036000830152612672816122ec565b9050919050565b600060208201905081810360008301526126928161230f565b9050919050565b600060208201905081810360008301526126b281612332565b9050919050565b600060208201905081810360008301526126d281612355565b9050919050565b600060208201905081810360008301526126f281612378565b9050919050565b600060208201905081810360008301526127128161239b565b9050919050565b60006020820190508181036000830152612732816123be565b9050919050565b60006020820190508181036000830152612752816123e1565b9050919050565b6000602082019050818103600083015261277281612404565b9050919050565b6000602082019050818103600083015261279281612427565b9050919050565b600060208201905081810360008301526127b28161244a565b9050919050565b600060208201905081810360008301526127d28161246d565b9050919050565b600060208201905081810360008301526127f281612490565b9050919050565b60006020820190508181036000830152612812816124b3565b9050919050565b60006020820190508181036000830152612832816124d6565b9050919050565b60006020820190508181036000830152612852816124f9565b9050919050565b600060208201905081810360008301526128728161251c565b9050919050565b600060208201905081810360008301526128928161253f565b9050919050565b60006020820190506128ae6000830184612562565b92915050565b60006128be6128cf565b90506128ca8282612af0565b919050565b6000604051905090565b600067ffffffffffffffff8211156128f4576128f3612c28565b5b6128fd82612c57565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061295882612a72565b915061296383612a72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561299857612997612b9b565b5b828201905092915050565b60006129ae82612a72565b91506129b983612a72565b9250826129c9576129c8612bca565b5b828204905092915050565b60006129df82612a72565b91506129ea83612a72565b9250828210156129fd576129fc612b9b565b5b828203905092915050565b6000612a1382612a52565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612aa9578082015181840152602081019050612a8e565b83811115612ab8576000848401525b50505050565b60006002820490506001821680612ad657607f821691505b60208210811415612aea57612ae9612bf9565b5b50919050565b612af982612c57565b810181811067ffffffffffffffff82111715612b1857612b17612c28565b5b80604052505050565b6000612b2c82612a72565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b5f57612b5e612b9b565b5b600182019050919050565b6000612b7582612a72565b9150612b8083612a72565b925082612b9057612b8f612bca565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b6131b681612a08565b81146131c157600080fd5b50565b6131cd81612a1a565b81146131d857600080fd5b50565b6131e481612a26565b81146131ef57600080fd5b50565b6131fb81612a72565b811461320657600080fd5b5056fea2646970667358221220090aad813af943086fa67a33e003e32975d9a3c5d24a76440964583dd9205ef064736f6c63430008040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a22cb46511610071578063a22cb465146102cb578063b88d4fde146102e7578063c87b56dd14610303578063e985e9c514610333578063f2fde38b1461036357610116565b8063715018a61461026957806377097fc8146102735780638da5cb5b1461028f57806395d89b41146102ad57610116565b806323b872dd116100e957806323b872dd146101b557806342842e0e146101d157806342966c68146101ed5780636352211e1461020957806370a082311461023957610116565b806301ffc9a71461011b57806306fdde031461014b578063081812fc14610169578063095ea7b314610199575b600080fd5b61013560048036038101906101309190612135565b61037f565b60405161014291906125fc565b60405180910390f35b610153610461565b6040516101609190612617565b60405180910390f35b610183600480360381019061017e9190612187565b6104f3565b6040516101909190612595565b60405180910390f35b6101b360048036038101906101ae91906120f9565b610578565b005b6101cf60048036038101906101ca9190611ff3565b610690565b005b6101eb60048036038101906101e69190611ff3565b6106f0565b005b61020760048036038101906102029190612187565b610710565b005b610223600480360381019061021e9190612187565b610798565b6040516102309190612595565b60405180910390f35b610253600480360381019061024e9190611f8e565b61084a565b6040516102609190612899565b60405180910390f35b610271610902565b005b61028d600480360381019061028891906121b0565b61098a565b005b6102976109e7565b6040516102a49190612595565b60405180910390f35b6102b5610a11565b6040516102c29190612617565b60405180910390f35b6102e560048036038101906102e091906120bd565b610aa3565b005b61030160048036038101906102fc9190612042565b610c24565b005b61031d60048036038101906103189190612187565b610c86565b60405161032a9190612617565b60405180910390f35b61034d60048036038101906103489190611fb7565b610dd8565b60405161035a91906125fc565b60405180910390f35b61037d60048036038101906103789190611f8e565b610e6c565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061044a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061045a575061045982610f64565b5b9050919050565b60606000805461047090612abe565b80601f016020809104026020016040519081016040528092919081815260200182805461049c90612abe565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b5050505050905090565b60006104fe82610fce565b61053d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610534906127b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061058382610798565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb90612839565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661061361103a565b73ffffffffffffffffffffffffffffffffffffffff16148061064257506106418161063c61103a565b610dd8565b5b610681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610678906126f9565b60405180910390fd5b61068b8383611042565b505050565b6106a161069b61103a565b826110fb565b6106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612859565b60405180910390fd5b6106eb8383836111d9565b505050565b61070b83838360405180602001604052806000815250610c24565b505050565b600061071b82610798565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612879565b60405180910390fd5b61079482611435565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890612739565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612719565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090a61103a565b73ffffffffffffffffffffffffffffffffffffffff166109286109e7565b73ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906127d9565b60405180910390fd5b6109886000611488565b565b610994338461154e565b6109e28383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156c565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a2090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612abe565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b610aab61103a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906126b9565b60405180910390fd5b8060056000610b2661103a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610bd361103a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906125fc565b60405180910390a35050565b610c35610c2f61103a565b836110fb565b610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90612859565b60405180910390fd5b610c80848484846115e0565b50505050565b6060610c9182610fce565b610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790612799565b60405180910390fd5b6000600660008481526020019081526020016000208054610cf090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1c90612abe565b8015610d695780601f10610d3e57610100808354040283529160200191610d69565b820191906000526020600020905b815481529060010190602001808311610d4c57829003601f168201915b505050505090506000610d7a61163c565b9050600081511415610d90578192505050610dd3565b600082511115610dc5578082604051602001610dad929190612571565b60405160208183030381529060405292505050610dd3565b610dce84611653565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e7461103a565b73ffffffffffffffffffffffffffffffffffffffff16610e926109e7565b73ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906127d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612659565b60405180910390fd5b610f6181611488565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110b583610798565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061110682610fce565b611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906126d9565b60405180910390fd5b600061115083610798565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111bf57508373ffffffffffffffffffffffffffffffffffffffff166111a7846104f3565b73ffffffffffffffffffffffffffffffffffffffff16145b806111d057506111cf8185610dd8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111f982610798565b73ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611246906127f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690612699565b60405180910390fd5b6112ca8383836116fa565b6112d5600082611042565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461132591906129d4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461137c919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61143e816116ff565b600060066000838152602001908152602001600020805461145e90612abe565b905014611485576006600082815260200190815260200160002060006114849190611d90565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611568828260405180602001604052806000815250611810565b5050565b61157582610fce565b6115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90612759565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906115db929190611dd0565b505050565b6115eb8484846111d9565b6115f78484848461186b565b611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612639565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061165e82610fce565b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612819565b60405180910390fd5b60006116a761163c565b905060008151116116c757604051806020016040528060008152506116f2565b806116d184611a02565b6040516020016116e2929190612571565b6040516020818303038152906040525b915050919050565b505050565b600061170a82610798565b9050611718816000846116fa565b611723600083611042565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461177391906129d4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61181a8383611baf565b611827600084848461186b565b611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612639565b60405180910390fd5b505050565b600061188c8473ffffffffffffffffffffffffffffffffffffffff16611d7d565b156119f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026118b561103a565b8786866040518563ffffffff1660e01b81526004016118d794939291906125b0565b602060405180830381600087803b1580156118f157600080fd5b505af192505050801561192257506040513d601f19601f8201168201806040525081019061191f919061215e565b60015b6119a5573d8060008114611952576040519150601f19603f3d011682016040523d82523d6000602084013e611957565b606091505b5060008151141561199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490612639565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506119fa565b600190505b949350505050565b60606000821415611a4a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611baa565b600082905060005b60008214611a7c578080611a6590612b21565b915050600a82611a7591906129a3565b9150611a52565b60008167ffffffffffffffff811115611abe577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611af05781602001600182028036833780820191505090505b5090505b60008514611ba357600182611b0991906129d4565b9150600a85611b189190612b6a565b6030611b24919061294d565b60f81b818381518110611b60577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b9c91906129a3565b9450611af4565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1690612779565b60405180910390fd5b611c2881610fce565b15611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f90612679565b60405180910390fd5b611c74600083836116fa565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc4919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611d9c90612abe565b6000825580601f10611dae5750611dcd565b601f016020900490600052602060002090810190611dcc9190611e56565b5b50565b828054611ddc90612abe565b90600052602060002090601f016020900481019282611dfe5760008555611e45565b82601f10611e1757805160ff1916838001178555611e45565b82800160010185558215611e45579182015b82811115611e44578251825591602001919060010190611e29565b5b509050611e529190611e56565b5090565b5b80821115611e6f576000816000905550600101611e57565b5090565b6000611e86611e81846128d9565b6128b4565b905082815260208101848484011115611e9e57600080fd5b611ea9848285612a7c565b509392505050565b600081359050611ec0816131ad565b92915050565b600081359050611ed5816131c4565b92915050565b600081359050611eea816131db565b92915050565b600081519050611eff816131db565b92915050565b600082601f830112611f1657600080fd5b8135611f26848260208601611e73565b91505092915050565b60008083601f840112611f4157600080fd5b8235905067ffffffffffffffff811115611f5a57600080fd5b602083019150836001820283011115611f7257600080fd5b9250929050565b600081359050611f88816131f2565b92915050565b600060208284031215611fa057600080fd5b6000611fae84828501611eb1565b91505092915050565b60008060408385031215611fca57600080fd5b6000611fd885828601611eb1565b9250506020611fe985828601611eb1565b9150509250929050565b60008060006060848603121561200857600080fd5b600061201686828701611eb1565b935050602061202786828701611eb1565b925050604061203886828701611f79565b9150509250925092565b6000806000806080858703121561205857600080fd5b600061206687828801611eb1565b945050602061207787828801611eb1565b935050604061208887828801611f79565b925050606085013567ffffffffffffffff8111156120a557600080fd5b6120b187828801611f05565b91505092959194509250565b600080604083850312156120d057600080fd5b60006120de85828601611eb1565b92505060206120ef85828601611ec6565b9150509250929050565b6000806040838503121561210c57600080fd5b600061211a85828601611eb1565b925050602061212b85828601611f79565b9150509250929050565b60006020828403121561214757600080fd5b600061215584828501611edb565b91505092915050565b60006020828403121561217057600080fd5b600061217e84828501611ef0565b91505092915050565b60006020828403121561219957600080fd5b60006121a784828501611f79565b91505092915050565b6000806000604084860312156121c557600080fd5b60006121d386828701611f79565b935050602084013567ffffffffffffffff8111156121f057600080fd5b6121fc86828701611f2f565b92509250509250925092565b61221181612a08565b82525050565b61222081612a1a565b82525050565b60006122318261290a565b61223b8185612920565b935061224b818560208601612a8b565b61225481612c57565b840191505092915050565b600061226a82612915565b6122748185612931565b9350612284818560208601612a8b565b61228d81612c57565b840191505092915050565b60006122a382612915565b6122ad8185612942565b93506122bd818560208601612a8b565b80840191505092915050565b60006122d6603283612931565b91506122e182612c68565b604082019050919050565b60006122f9602683612931565b915061230482612cb7565b604082019050919050565b600061231c601c83612931565b915061232782612d06565b602082019050919050565b600061233f602483612931565b915061234a82612d2f565b604082019050919050565b6000612362601983612931565b915061236d82612d7e565b602082019050919050565b6000612385602c83612931565b915061239082612da7565b604082019050919050565b60006123a8603883612931565b91506123b382612df6565b604082019050919050565b60006123cb602a83612931565b91506123d682612e45565b604082019050919050565b60006123ee602983612931565b91506123f982612e94565b604082019050919050565b6000612411602e83612931565b915061241c82612ee3565b604082019050919050565b6000612434602083612931565b915061243f82612f32565b602082019050919050565b6000612457603183612931565b915061246282612f5b565b604082019050919050565b600061247a602c83612931565b915061248582612faa565b604082019050919050565b600061249d602083612931565b91506124a882612ff9565b602082019050919050565b60006124c0602983612931565b91506124cb82613022565b604082019050919050565b60006124e3602f83612931565b91506124ee82613071565b604082019050919050565b6000612506602183612931565b9150612511826130c0565b604082019050919050565b6000612529603183612931565b91506125348261310f565b604082019050919050565b600061254c602383612931565b91506125578261315e565b604082019050919050565b61256b81612a72565b82525050565b600061257d8285612298565b91506125898284612298565b91508190509392505050565b60006020820190506125aa6000830184612208565b92915050565b60006080820190506125c56000830187612208565b6125d26020830186612208565b6125df6040830185612562565b81810360608301526125f18184612226565b905095945050505050565b60006020820190506126116000830184612217565b92915050565b60006020820190508181036000830152612631818461225f565b905092915050565b60006020820190508181036000830152612652816122c9565b9050919050565b60006020820190508181036000830152612672816122ec565b9050919050565b600060208201905081810360008301526126928161230f565b9050919050565b600060208201905081810360008301526126b281612332565b9050919050565b600060208201905081810360008301526126d281612355565b9050919050565b600060208201905081810360008301526126f281612378565b9050919050565b600060208201905081810360008301526127128161239b565b9050919050565b60006020820190508181036000830152612732816123be565b9050919050565b60006020820190508181036000830152612752816123e1565b9050919050565b6000602082019050818103600083015261277281612404565b9050919050565b6000602082019050818103600083015261279281612427565b9050919050565b600060208201905081810360008301526127b28161244a565b9050919050565b600060208201905081810360008301526127d28161246d565b9050919050565b600060208201905081810360008301526127f281612490565b9050919050565b60006020820190508181036000830152612812816124b3565b9050919050565b60006020820190508181036000830152612832816124d6565b9050919050565b60006020820190508181036000830152612852816124f9565b9050919050565b600060208201905081810360008301526128728161251c565b9050919050565b600060208201905081810360008301526128928161253f565b9050919050565b60006020820190506128ae6000830184612562565b92915050565b60006128be6128cf565b90506128ca8282612af0565b919050565b6000604051905090565b600067ffffffffffffffff8211156128f4576128f3612c28565b5b6128fd82612c57565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061295882612a72565b915061296383612a72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561299857612997612b9b565b5b828201905092915050565b60006129ae82612a72565b91506129b983612a72565b9250826129c9576129c8612bca565b5b828204905092915050565b60006129df82612a72565b91506129ea83612a72565b9250828210156129fd576129fc612b9b565b5b828203905092915050565b6000612a1382612a52565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612aa9578082015181840152602081019050612a8e565b83811115612ab8576000848401525b50505050565b60006002820490506001821680612ad657607f821691505b60208210811415612aea57612ae9612bf9565b5b50919050565b612af982612c57565b810181811067ffffffffffffffff82111715612b1857612b17612c28565b5b80604052505050565b6000612b2c82612a72565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b5f57612b5e612b9b565b5b600182019050919050565b6000612b7582612a72565b9150612b8083612a72565b925082612b9057612b8f612bca565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b6131b681612a08565b81146131c157600080fd5b50565b6131cd81612a1a565b81146131d857600080fd5b50565b6131e481612a26565b81146131ef57600080fd5b50565b6131fb81612a72565b811461320657600080fd5b5056fea2646970667358221220090aad813af943086fa67a33e003e32975d9a3c5d24a76440964583dd9205ef064736f6c63430008040033", + "linkReferences": {}, + "deployedLinkReferences": {} } diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index ab43beb11..910a9abf9 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -46,11 +46,10 @@ async function baseTronHelperFactory(provider) { return contract; }; return { - async mintNft(contract_owner, options) { - setSigner(contract_owner); - const erc = await provider.contract(fakeERC1155_json_1.abi, options.contract); - await erc.mint(options.owner, bignumber_1.BigNumber.from(options.token.toString()), 1).send(); - await erc.setURI(options.token, options.uri).send(); + async mintNft(owner, options) { + setSigner(owner); + const erc = await provider.contract(fakeERC721_json_1.abi, options.contract); + await erc.mint(bignumber_1.BigNumber.from(options.token.toString()), options.uri).send(); }, async balance(address) { const balance = await provider.trx.getBalance(address); @@ -191,4 +190,4 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFDbEQsa0RBQTBCO0FBb0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxzQkFBVztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFzQixFQUFFLE9BQWlCO1lBQ3JELFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxQixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFD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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFDbEQsa0RBQTBCO0FBb0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxzQkFBVztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUs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 \ No newline at end of file diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index 004470d21..8209fa92a 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -27,7 +27,6 @@ export declare type EthNftInfo = { export declare type MintArgs = { contract: string; token: EasyBalance; - owner: string; uri: string; }; /** diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 2c23751d7..97440ead7 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -57,13 +57,11 @@ async function baseWeb3HelperFactory(provider) { const contract = await factory.deploy(); return contract.address; }, - async mintNft(contract_owner, { contract, token, owner, uri }) { + async mintNft(owner, { contract, token, uri }) { const tok = ethers_1.BigNumber.from(token.toString()); - const erc721 = new ethers_1.Contract(contract, erc721_abi, contract_owner); - const txm = await erc721.mint(owner, tok); + const erc721 = new ethers_1.Contract(contract, erc721_abi, owner); + const txm = await erc721.mint(tok, uri); await txm.wait(); - const txt = await erc721.setURI(tok, uri); - await txt.wait(); }, }; } @@ -167,4 +165,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBK0U7QUFNL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBK0U7QUFNL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFnRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/fakeERC721.json b/src/fakeERC721.json index 1309c264f..6a4ce2aeb 100644 --- a/src/fakeERC721.json +++ b/src/fakeERC721.json @@ -1,4 +1,7 @@ { + "_format": "hh-sol-artifact-1", + "contractName": "UserNftMinter", + "sourceName": "contracts/UserNftMinter.sol", "abi": [ { "inputs": [], @@ -194,15 +197,15 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, { "internalType": "uint256", "name": "id", "type": "uint256" + }, + { + "internalType": "string", + "name": "uri", + "type": "string" } ], "name": "mint", @@ -331,24 +334,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "uri_", - "type": "string" - } - ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -436,5 +421,9 @@ "stateMutability": "nonpayable", "type": "function" } - ] + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d540000000000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620001a6565b508060019080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61323f80620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a22cb46511610071578063a22cb465146102cb578063b88d4fde146102e7578063c87b56dd14610303578063e985e9c514610333578063f2fde38b1461036357610116565b8063715018a61461026957806377097fc8146102735780638da5cb5b1461028f57806395d89b41146102ad57610116565b806323b872dd116100e957806323b872dd146101b557806342842e0e146101d157806342966c68146101ed5780636352211e1461020957806370a082311461023957610116565b806301ffc9a71461011b57806306fdde031461014b578063081812fc14610169578063095ea7b314610199575b600080fd5b61013560048036038101906101309190612135565b61037f565b60405161014291906125fc565b60405180910390f35b610153610461565b6040516101609190612617565b60405180910390f35b610183600480360381019061017e9190612187565b6104f3565b6040516101909190612595565b60405180910390f35b6101b360048036038101906101ae91906120f9565b610578565b005b6101cf60048036038101906101ca9190611ff3565b610690565b005b6101eb60048036038101906101e69190611ff3565b6106f0565b005b61020760048036038101906102029190612187565b610710565b005b610223600480360381019061021e9190612187565b610798565b6040516102309190612595565b60405180910390f35b610253600480360381019061024e9190611f8e565b61084a565b6040516102609190612899565b60405180910390f35b610271610902565b005b61028d600480360381019061028891906121b0565b61098a565b005b6102976109e7565b6040516102a49190612595565b60405180910390f35b6102b5610a11565b6040516102c29190612617565b60405180910390f35b6102e560048036038101906102e091906120bd565b610aa3565b005b61030160048036038101906102fc9190612042565b610c24565b005b61031d60048036038101906103189190612187565b610c86565b60405161032a9190612617565b60405180910390f35b61034d60048036038101906103489190611fb7565b610dd8565b60405161035a91906125fc565b60405180910390f35b61037d60048036038101906103789190611f8e565b610e6c565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061044a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061045a575061045982610f64565b5b9050919050565b60606000805461047090612abe565b80601f016020809104026020016040519081016040528092919081815260200182805461049c90612abe565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b5050505050905090565b60006104fe82610fce565b61053d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610534906127b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061058382610798565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb90612839565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661061361103a565b73ffffffffffffffffffffffffffffffffffffffff16148061064257506106418161063c61103a565b610dd8565b5b610681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610678906126f9565b60405180910390fd5b61068b8383611042565b505050565b6106a161069b61103a565b826110fb565b6106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612859565b60405180910390fd5b6106eb8383836111d9565b505050565b61070b83838360405180602001604052806000815250610c24565b505050565b600061071b82610798565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612879565b60405180910390fd5b61079482611435565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890612739565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612719565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090a61103a565b73ffffffffffffffffffffffffffffffffffffffff166109286109e7565b73ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906127d9565b60405180910390fd5b6109886000611488565b565b610994338461154e565b6109e28383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156c565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a2090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612abe565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b610aab61103a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906126b9565b60405180910390fd5b8060056000610b2661103a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610bd361103a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906125fc565b60405180910390a35050565b610c35610c2f61103a565b836110fb565b610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90612859565b60405180910390fd5b610c80848484846115e0565b50505050565b6060610c9182610fce565b610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790612799565b60405180910390fd5b6000600660008481526020019081526020016000208054610cf090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1c90612abe565b8015610d695780601f10610d3e57610100808354040283529160200191610d69565b820191906000526020600020905b815481529060010190602001808311610d4c57829003601f168201915b505050505090506000610d7a61163c565b9050600081511415610d90578192505050610dd3565b600082511115610dc5578082604051602001610dad929190612571565b60405160208183030381529060405292505050610dd3565b610dce84611653565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e7461103a565b73ffffffffffffffffffffffffffffffffffffffff16610e926109e7565b73ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906127d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612659565b60405180910390fd5b610f6181611488565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110b583610798565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061110682610fce565b611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906126d9565b60405180910390fd5b600061115083610798565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111bf57508373ffffffffffffffffffffffffffffffffffffffff166111a7846104f3565b73ffffffffffffffffffffffffffffffffffffffff16145b806111d057506111cf8185610dd8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111f982610798565b73ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611246906127f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690612699565b60405180910390fd5b6112ca8383836116fa565b6112d5600082611042565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461132591906129d4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461137c919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61143e816116ff565b600060066000838152602001908152602001600020805461145e90612abe565b905014611485576006600082815260200190815260200160002060006114849190611d90565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611568828260405180602001604052806000815250611810565b5050565b61157582610fce565b6115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90612759565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906115db929190611dd0565b505050565b6115eb8484846111d9565b6115f78484848461186b565b611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612639565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061165e82610fce565b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612819565b60405180910390fd5b60006116a761163c565b905060008151116116c757604051806020016040528060008152506116f2565b806116d184611a02565b6040516020016116e2929190612571565b6040516020818303038152906040525b915050919050565b505050565b600061170a82610798565b9050611718816000846116fa565b611723600083611042565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461177391906129d4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61181a8383611baf565b611827600084848461186b565b611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612639565b60405180910390fd5b505050565b600061188c8473ffffffffffffffffffffffffffffffffffffffff16611d7d565b156119f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026118b561103a565b8786866040518563ffffffff1660e01b81526004016118d794939291906125b0565b602060405180830381600087803b1580156118f157600080fd5b505af192505050801561192257506040513d601f19601f8201168201806040525081019061191f919061215e565b60015b6119a5573d8060008114611952576040519150601f19603f3d011682016040523d82523d6000602084013e611957565b606091505b5060008151141561199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490612639565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506119fa565b600190505b949350505050565b60606000821415611a4a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611baa565b600082905060005b60008214611a7c578080611a6590612b21565b915050600a82611a7591906129a3565b9150611a52565b60008167ffffffffffffffff811115611abe577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611af05781602001600182028036833780820191505090505b5090505b60008514611ba357600182611b0991906129d4565b9150600a85611b189190612b6a565b6030611b24919061294d565b60f81b818381518110611b60577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b9c91906129a3565b9450611af4565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1690612779565b60405180910390fd5b611c2881610fce565b15611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f90612679565b60405180910390fd5b611c74600083836116fa565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc4919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611d9c90612abe565b6000825580601f10611dae5750611dcd565b601f016020900490600052602060002090810190611dcc9190611e56565b5b50565b828054611ddc90612abe565b90600052602060002090601f016020900481019282611dfe5760008555611e45565b82601f10611e1757805160ff1916838001178555611e45565b82800160010185558215611e45579182015b82811115611e44578251825591602001919060010190611e29565b5b509050611e529190611e56565b5090565b5b80821115611e6f576000816000905550600101611e57565b5090565b6000611e86611e81846128d9565b6128b4565b905082815260208101848484011115611e9e57600080fd5b611ea9848285612a7c565b509392505050565b600081359050611ec0816131ad565b92915050565b600081359050611ed5816131c4565b92915050565b600081359050611eea816131db565b92915050565b600081519050611eff816131db565b92915050565b600082601f830112611f1657600080fd5b8135611f26848260208601611e73565b91505092915050565b60008083601f840112611f4157600080fd5b8235905067ffffffffffffffff811115611f5a57600080fd5b602083019150836001820283011115611f7257600080fd5b9250929050565b600081359050611f88816131f2565b92915050565b600060208284031215611fa057600080fd5b6000611fae84828501611eb1565b91505092915050565b60008060408385031215611fca57600080fd5b6000611fd885828601611eb1565b9250506020611fe985828601611eb1565b9150509250929050565b60008060006060848603121561200857600080fd5b600061201686828701611eb1565b935050602061202786828701611eb1565b925050604061203886828701611f79565b9150509250925092565b6000806000806080858703121561205857600080fd5b600061206687828801611eb1565b945050602061207787828801611eb1565b935050604061208887828801611f79565b925050606085013567ffffffffffffffff8111156120a557600080fd5b6120b187828801611f05565b91505092959194509250565b600080604083850312156120d057600080fd5b60006120de85828601611eb1565b92505060206120ef85828601611ec6565b9150509250929050565b6000806040838503121561210c57600080fd5b600061211a85828601611eb1565b925050602061212b85828601611f79565b9150509250929050565b60006020828403121561214757600080fd5b600061215584828501611edb565b91505092915050565b60006020828403121561217057600080fd5b600061217e84828501611ef0565b91505092915050565b60006020828403121561219957600080fd5b60006121a784828501611f79565b91505092915050565b6000806000604084860312156121c557600080fd5b60006121d386828701611f79565b935050602084013567ffffffffffffffff8111156121f057600080fd5b6121fc86828701611f2f565b92509250509250925092565b61221181612a08565b82525050565b61222081612a1a565b82525050565b60006122318261290a565b61223b8185612920565b935061224b818560208601612a8b565b61225481612c57565b840191505092915050565b600061226a82612915565b6122748185612931565b9350612284818560208601612a8b565b61228d81612c57565b840191505092915050565b60006122a382612915565b6122ad8185612942565b93506122bd818560208601612a8b565b80840191505092915050565b60006122d6603283612931565b91506122e182612c68565b604082019050919050565b60006122f9602683612931565b915061230482612cb7565b604082019050919050565b600061231c601c83612931565b915061232782612d06565b602082019050919050565b600061233f602483612931565b915061234a82612d2f565b604082019050919050565b6000612362601983612931565b915061236d82612d7e565b602082019050919050565b6000612385602c83612931565b915061239082612da7565b604082019050919050565b60006123a8603883612931565b91506123b382612df6565b604082019050919050565b60006123cb602a83612931565b91506123d682612e45565b604082019050919050565b60006123ee602983612931565b91506123f982612e94565b604082019050919050565b6000612411602e83612931565b915061241c82612ee3565b604082019050919050565b6000612434602083612931565b915061243f82612f32565b602082019050919050565b6000612457603183612931565b915061246282612f5b565b604082019050919050565b600061247a602c83612931565b915061248582612faa565b604082019050919050565b600061249d602083612931565b91506124a882612ff9565b602082019050919050565b60006124c0602983612931565b91506124cb82613022565b604082019050919050565b60006124e3602f83612931565b91506124ee82613071565b604082019050919050565b6000612506602183612931565b9150612511826130c0565b604082019050919050565b6000612529603183612931565b91506125348261310f565b604082019050919050565b600061254c602383612931565b91506125578261315e565b604082019050919050565b61256b81612a72565b82525050565b600061257d8285612298565b91506125898284612298565b91508190509392505050565b60006020820190506125aa6000830184612208565b92915050565b60006080820190506125c56000830187612208565b6125d26020830186612208565b6125df6040830185612562565b81810360608301526125f18184612226565b905095945050505050565b60006020820190506126116000830184612217565b92915050565b60006020820190508181036000830152612631818461225f565b905092915050565b60006020820190508181036000830152612652816122c9565b9050919050565b60006020820190508181036000830152612672816122ec565b9050919050565b600060208201905081810360008301526126928161230f565b9050919050565b600060208201905081810360008301526126b281612332565b9050919050565b600060208201905081810360008301526126d281612355565b9050919050565b600060208201905081810360008301526126f281612378565b9050919050565b600060208201905081810360008301526127128161239b565b9050919050565b60006020820190508181036000830152612732816123be565b9050919050565b60006020820190508181036000830152612752816123e1565b9050919050565b6000602082019050818103600083015261277281612404565b9050919050565b6000602082019050818103600083015261279281612427565b9050919050565b600060208201905081810360008301526127b28161244a565b9050919050565b600060208201905081810360008301526127d28161246d565b9050919050565b600060208201905081810360008301526127f281612490565b9050919050565b60006020820190508181036000830152612812816124b3565b9050919050565b60006020820190508181036000830152612832816124d6565b9050919050565b60006020820190508181036000830152612852816124f9565b9050919050565b600060208201905081810360008301526128728161251c565b9050919050565b600060208201905081810360008301526128928161253f565b9050919050565b60006020820190506128ae6000830184612562565b92915050565b60006128be6128cf565b90506128ca8282612af0565b919050565b6000604051905090565b600067ffffffffffffffff8211156128f4576128f3612c28565b5b6128fd82612c57565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061295882612a72565b915061296383612a72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561299857612997612b9b565b5b828201905092915050565b60006129ae82612a72565b91506129b983612a72565b9250826129c9576129c8612bca565b5b828204905092915050565b60006129df82612a72565b91506129ea83612a72565b9250828210156129fd576129fc612b9b565b5b828203905092915050565b6000612a1382612a52565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612aa9578082015181840152602081019050612a8e565b83811115612ab8576000848401525b50505050565b60006002820490506001821680612ad657607f821691505b60208210811415612aea57612ae9612bf9565b5b50919050565b612af982612c57565b810181811067ffffffffffffffff82111715612b1857612b17612c28565b5b80604052505050565b6000612b2c82612a72565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b5f57612b5e612b9b565b5b600182019050919050565b6000612b7582612a72565b9150612b8083612a72565b925082612b9057612b8f612bca565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b6131b681612a08565b81146131c157600080fd5b50565b6131cd81612a1a565b81146131d857600080fd5b50565b6131e481612a26565b81146131ef57600080fd5b50565b6131fb81612a72565b811461320657600080fd5b5056fea2646970667358221220090aad813af943086fa67a33e003e32975d9a3c5d24a76440964583dd9205ef064736f6c63430008040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a22cb46511610071578063a22cb465146102cb578063b88d4fde146102e7578063c87b56dd14610303578063e985e9c514610333578063f2fde38b1461036357610116565b8063715018a61461026957806377097fc8146102735780638da5cb5b1461028f57806395d89b41146102ad57610116565b806323b872dd116100e957806323b872dd146101b557806342842e0e146101d157806342966c68146101ed5780636352211e1461020957806370a082311461023957610116565b806301ffc9a71461011b57806306fdde031461014b578063081812fc14610169578063095ea7b314610199575b600080fd5b61013560048036038101906101309190612135565b61037f565b60405161014291906125fc565b60405180910390f35b610153610461565b6040516101609190612617565b60405180910390f35b610183600480360381019061017e9190612187565b6104f3565b6040516101909190612595565b60405180910390f35b6101b360048036038101906101ae91906120f9565b610578565b005b6101cf60048036038101906101ca9190611ff3565b610690565b005b6101eb60048036038101906101e69190611ff3565b6106f0565b005b61020760048036038101906102029190612187565b610710565b005b610223600480360381019061021e9190612187565b610798565b6040516102309190612595565b60405180910390f35b610253600480360381019061024e9190611f8e565b61084a565b6040516102609190612899565b60405180910390f35b610271610902565b005b61028d600480360381019061028891906121b0565b61098a565b005b6102976109e7565b6040516102a49190612595565b60405180910390f35b6102b5610a11565b6040516102c29190612617565b60405180910390f35b6102e560048036038101906102e091906120bd565b610aa3565b005b61030160048036038101906102fc9190612042565b610c24565b005b61031d60048036038101906103189190612187565b610c86565b60405161032a9190612617565b60405180910390f35b61034d60048036038101906103489190611fb7565b610dd8565b60405161035a91906125fc565b60405180910390f35b61037d60048036038101906103789190611f8e565b610e6c565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061044a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061045a575061045982610f64565b5b9050919050565b60606000805461047090612abe565b80601f016020809104026020016040519081016040528092919081815260200182805461049c90612abe565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b5050505050905090565b60006104fe82610fce565b61053d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610534906127b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061058382610798565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb90612839565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661061361103a565b73ffffffffffffffffffffffffffffffffffffffff16148061064257506106418161063c61103a565b610dd8565b5b610681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610678906126f9565b60405180910390fd5b61068b8383611042565b505050565b6106a161069b61103a565b826110fb565b6106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612859565b60405180910390fd5b6106eb8383836111d9565b505050565b61070b83838360405180602001604052806000815250610c24565b505050565b600061071b82610798565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612879565b60405180910390fd5b61079482611435565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890612739565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612719565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090a61103a565b73ffffffffffffffffffffffffffffffffffffffff166109286109e7565b73ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906127d9565b60405180910390fd5b6109886000611488565b565b610994338461154e565b6109e28383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156c565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a2090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612abe565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b610aab61103a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906126b9565b60405180910390fd5b8060056000610b2661103a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610bd361103a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906125fc565b60405180910390a35050565b610c35610c2f61103a565b836110fb565b610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90612859565b60405180910390fd5b610c80848484846115e0565b50505050565b6060610c9182610fce565b610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790612799565b60405180910390fd5b6000600660008481526020019081526020016000208054610cf090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1c90612abe565b8015610d695780601f10610d3e57610100808354040283529160200191610d69565b820191906000526020600020905b815481529060010190602001808311610d4c57829003601f168201915b505050505090506000610d7a61163c565b9050600081511415610d90578192505050610dd3565b600082511115610dc5578082604051602001610dad929190612571565b60405160208183030381529060405292505050610dd3565b610dce84611653565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e7461103a565b73ffffffffffffffffffffffffffffffffffffffff16610e926109e7565b73ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906127d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612659565b60405180910390fd5b610f6181611488565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110b583610798565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061110682610fce565b611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906126d9565b60405180910390fd5b600061115083610798565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111bf57508373ffffffffffffffffffffffffffffffffffffffff166111a7846104f3565b73ffffffffffffffffffffffffffffffffffffffff16145b806111d057506111cf8185610dd8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111f982610798565b73ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611246906127f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690612699565b60405180910390fd5b6112ca8383836116fa565b6112d5600082611042565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461132591906129d4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461137c919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61143e816116ff565b600060066000838152602001908152602001600020805461145e90612abe565b905014611485576006600082815260200190815260200160002060006114849190611d90565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611568828260405180602001604052806000815250611810565b5050565b61157582610fce565b6115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90612759565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906115db929190611dd0565b505050565b6115eb8484846111d9565b6115f78484848461186b565b611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612639565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061165e82610fce565b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612819565b60405180910390fd5b60006116a761163c565b905060008151116116c757604051806020016040528060008152506116f2565b806116d184611a02565b6040516020016116e2929190612571565b6040516020818303038152906040525b915050919050565b505050565b600061170a82610798565b9050611718816000846116fa565b611723600083611042565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461177391906129d4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61181a8383611baf565b611827600084848461186b565b611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612639565b60405180910390fd5b505050565b600061188c8473ffffffffffffffffffffffffffffffffffffffff16611d7d565b156119f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026118b561103a565b8786866040518563ffffffff1660e01b81526004016118d794939291906125b0565b602060405180830381600087803b1580156118f157600080fd5b505af192505050801561192257506040513d601f19601f8201168201806040525081019061191f919061215e565b60015b6119a5573d8060008114611952576040519150601f19603f3d011682016040523d82523d6000602084013e611957565b606091505b5060008151141561199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490612639565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506119fa565b600190505b949350505050565b60606000821415611a4a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611baa565b600082905060005b60008214611a7c578080611a6590612b21565b915050600a82611a7591906129a3565b9150611a52565b60008167ffffffffffffffff811115611abe577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611af05781602001600182028036833780820191505090505b5090505b60008514611ba357600182611b0991906129d4565b9150600a85611b189190612b6a565b6030611b24919061294d565b60f81b818381518110611b60577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b9c91906129a3565b9450611af4565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1690612779565b60405180910390fd5b611c2881610fce565b15611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f90612679565b60405180910390fd5b611c74600083836116fa565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc4919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611d9c90612abe565b6000825580601f10611dae5750611dcd565b601f016020900490600052602060002090810190611dcc9190611e56565b5b50565b828054611ddc90612abe565b90600052602060002090601f016020900481019282611dfe5760008555611e45565b82601f10611e1757805160ff1916838001178555611e45565b82800160010185558215611e45579182015b82811115611e44578251825591602001919060010190611e29565b5b509050611e529190611e56565b5090565b5b80821115611e6f576000816000905550600101611e57565b5090565b6000611e86611e81846128d9565b6128b4565b905082815260208101848484011115611e9e57600080fd5b611ea9848285612a7c565b509392505050565b600081359050611ec0816131ad565b92915050565b600081359050611ed5816131c4565b92915050565b600081359050611eea816131db565b92915050565b600081519050611eff816131db565b92915050565b600082601f830112611f1657600080fd5b8135611f26848260208601611e73565b91505092915050565b60008083601f840112611f4157600080fd5b8235905067ffffffffffffffff811115611f5a57600080fd5b602083019150836001820283011115611f7257600080fd5b9250929050565b600081359050611f88816131f2565b92915050565b600060208284031215611fa057600080fd5b6000611fae84828501611eb1565b91505092915050565b60008060408385031215611fca57600080fd5b6000611fd885828601611eb1565b9250506020611fe985828601611eb1565b9150509250929050565b60008060006060848603121561200857600080fd5b600061201686828701611eb1565b935050602061202786828701611eb1565b925050604061203886828701611f79565b9150509250925092565b6000806000806080858703121561205857600080fd5b600061206687828801611eb1565b945050602061207787828801611eb1565b935050604061208887828801611f79565b925050606085013567ffffffffffffffff8111156120a557600080fd5b6120b187828801611f05565b91505092959194509250565b600080604083850312156120d057600080fd5b60006120de85828601611eb1565b92505060206120ef85828601611ec6565b9150509250929050565b6000806040838503121561210c57600080fd5b600061211a85828601611eb1565b925050602061212b85828601611f79565b9150509250929050565b60006020828403121561214757600080fd5b600061215584828501611edb565b91505092915050565b60006020828403121561217057600080fd5b600061217e84828501611ef0565b91505092915050565b60006020828403121561219957600080fd5b60006121a784828501611f79565b91505092915050565b6000806000604084860312156121c557600080fd5b60006121d386828701611f79565b935050602084013567ffffffffffffffff8111156121f057600080fd5b6121fc86828701611f2f565b92509250509250925092565b61221181612a08565b82525050565b61222081612a1a565b82525050565b60006122318261290a565b61223b8185612920565b935061224b818560208601612a8b565b61225481612c57565b840191505092915050565b600061226a82612915565b6122748185612931565b9350612284818560208601612a8b565b61228d81612c57565b840191505092915050565b60006122a382612915565b6122ad8185612942565b93506122bd818560208601612a8b565b80840191505092915050565b60006122d6603283612931565b91506122e182612c68565b604082019050919050565b60006122f9602683612931565b915061230482612cb7565b604082019050919050565b600061231c601c83612931565b915061232782612d06565b602082019050919050565b600061233f602483612931565b915061234a82612d2f565b604082019050919050565b6000612362601983612931565b915061236d82612d7e565b602082019050919050565b6000612385602c83612931565b915061239082612da7565b604082019050919050565b60006123a8603883612931565b91506123b382612df6565b604082019050919050565b60006123cb602a83612931565b91506123d682612e45565b604082019050919050565b60006123ee602983612931565b91506123f982612e94565b604082019050919050565b6000612411602e83612931565b915061241c82612ee3565b604082019050919050565b6000612434602083612931565b915061243f82612f32565b602082019050919050565b6000612457603183612931565b915061246282612f5b565b604082019050919050565b600061247a602c83612931565b915061248582612faa565b604082019050919050565b600061249d602083612931565b91506124a882612ff9565b602082019050919050565b60006124c0602983612931565b91506124cb82613022565b604082019050919050565b60006124e3602f83612931565b91506124ee82613071565b604082019050919050565b6000612506602183612931565b9150612511826130c0565b604082019050919050565b6000612529603183612931565b91506125348261310f565b604082019050919050565b600061254c602383612931565b91506125578261315e565b604082019050919050565b61256b81612a72565b82525050565b600061257d8285612298565b91506125898284612298565b91508190509392505050565b60006020820190506125aa6000830184612208565b92915050565b60006080820190506125c56000830187612208565b6125d26020830186612208565b6125df6040830185612562565b81810360608301526125f18184612226565b905095945050505050565b60006020820190506126116000830184612217565b92915050565b60006020820190508181036000830152612631818461225f565b905092915050565b60006020820190508181036000830152612652816122c9565b9050919050565b60006020820190508181036000830152612672816122ec565b9050919050565b600060208201905081810360008301526126928161230f565b9050919050565b600060208201905081810360008301526126b281612332565b9050919050565b600060208201905081810360008301526126d281612355565b9050919050565b600060208201905081810360008301526126f281612378565b9050919050565b600060208201905081810360008301526127128161239b565b9050919050565b60006020820190508181036000830152612732816123be565b9050919050565b60006020820190508181036000830152612752816123e1565b9050919050565b6000602082019050818103600083015261277281612404565b9050919050565b6000602082019050818103600083015261279281612427565b9050919050565b600060208201905081810360008301526127b28161244a565b9050919050565b600060208201905081810360008301526127d28161246d565b9050919050565b600060208201905081810360008301526127f281612490565b9050919050565b60006020820190508181036000830152612812816124b3565b9050919050565b60006020820190508181036000830152612832816124d6565b9050919050565b60006020820190508181036000830152612852816124f9565b9050919050565b600060208201905081810360008301526128728161251c565b9050919050565b600060208201905081810360008301526128928161253f565b9050919050565b60006020820190506128ae6000830184612562565b92915050565b60006128be6128cf565b90506128ca8282612af0565b919050565b6000604051905090565b600067ffffffffffffffff8211156128f4576128f3612c28565b5b6128fd82612c57565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061295882612a72565b915061296383612a72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561299857612997612b9b565b5b828201905092915050565b60006129ae82612a72565b91506129b983612a72565b9250826129c9576129c8612bca565b5b828204905092915050565b60006129df82612a72565b91506129ea83612a72565b9250828210156129fd576129fc612b9b565b5b828203905092915050565b6000612a1382612a52565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612aa9578082015181840152602081019050612a8e565b83811115612ab8576000848401525b50505050565b60006002820490506001821680612ad657607f821691505b60208210811415612aea57612ae9612bf9565b5b50919050565b612af982612c57565b810181811067ffffffffffffffff82111715612b1857612b17612c28565b5b80604052505050565b6000612b2c82612a72565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b5f57612b5e612b9b565b5b600182019050919050565b6000612b7582612a72565b9150612b8083612a72565b925082612b9057612b8f612bca565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b6131b681612a08565b81146131c157600080fd5b50565b6131cd81612a1a565b81146131d857600080fd5b50565b6131e481612a26565b81146131ef57600080fd5b50565b6131fb81612a72565b811461320657600080fd5b5056fea2646970667358221220090aad813af943086fa67a33e003e32975d9a3c5d24a76440964583dd9205ef064736f6c63430008040033", + "linkReferences": {}, + "deployedLinkReferences": {} } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 9f7e61ca5..79780a5e4 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -80,11 +80,10 @@ export async function baseTronHelperFactory( } return { - async mintNft(contract_owner: string, options: MintArgs): Promise { - setSigner(contract_owner); - const erc = await provider.contract(ERC1155_abi, options.contract); - await erc.mint(options.owner, EthBN.from(options.token.toString()), 1).send(); - await erc.setURI(options.token, options.uri).send(); + async mintNft(owner: string, options: MintArgs): Promise { + setSigner(owner); + const erc = await provider.contract(ERC721_abi, options.contract); + await erc.mint(EthBN.from(options.token.toString()), options.uri).send(); }, async balance(address: string): Promise { const balance = await provider.trx.getBalance(address); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index f66f34b50..4348b3e90 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -49,7 +49,6 @@ export type EthNftInfo = { export type MintArgs = { contract: string; token: EasyBalance; - owner: string; uri: string; }; @@ -121,17 +120,14 @@ export async function baseWeb3HelperFactory( return contract.address; }, async mintNft( - contract_owner: Signer, - { contract, token, owner, uri }: MintArgs + owner: Signer, + { contract, token, uri }: MintArgs ): Promise { const tok = EthBN.from(token.toString()); - const erc721 = new Contract(contract, erc721_abi, contract_owner); + const erc721 = new Contract(contract, erc721_abi, owner); - const txm = await erc721.mint(owner, tok); + const txm = await erc721.mint(tok, uri); await txm.wait(); - - const txt = await erc721.setURI(tok, uri); - await txt.wait(); }, }; } From ac13514a3a667a67e6667b89806dfcfc2525dd9d Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 3 Oct 2021 20:57:45 +0530 Subject: [PATCH 020/956] helpers: web3: add gas fees estimation helper --- dist/helpers/web3.d.ts | 4 +++- dist/helpers/web3.js | 31 +++++++++++++++++++++++++- src/helpers/web3.ts | 49 +++++++++++++++++++++++++++++++++++++++++- 3 files changed, 81 insertions(+), 3 deletions(-) diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index 8209fa92a..c05698a58 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -3,7 +3,7 @@ * @module */ import BigNumber from "bignumber.js"; -import { TransferForeign, UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, TransferNftForeign, WrappedBalanceCheck, BatchWrappedBalanceCheck, DecodeWrappedNft, DecodeRawNft, MintNft } from "./chain"; +import { TransferForeign, UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, TransferNftForeign, WrappedBalanceCheck, BatchWrappedBalanceCheck, DecodeWrappedNft, WrappedNft, DecodeRawNft, MintNft } from "./chain"; import { Signer, BigNumber as EthBN } from "ethers"; import { TransactionReceipt, Provider } from "@ethersproject/providers"; import { Interface } from "ethers/lib/utils"; @@ -57,6 +57,8 @@ export declare type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck; + estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise; + estimateValidateUnfreezeNft(validators: string[], to: string, nft: WrappedNft): Promise; }; /** * Create an object implementing minimal utilities for a web3 chain diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 97440ead7..bf8892bf3 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -101,6 +101,18 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr return await erc.uri(info.token); } } + const randomAction = () => ethers_1.BigNumber.from(Math.floor(Math.random() * (999) + (Number.MAX_SAFE_INTEGER - 1000))); + async function estimateGas(addrs, utx) { + let fee = ethers_1.BigNumber.from(0); + for (const [i, addr] of addrs.entries()) { + utx.from = addr; + let tf = await w3.estimateGas(utx); + if (i == addrs.length - 1) + tf = tf.mul(1.1); + fee = fee.add(tf); + } + return new bignumber_js_1.default(fee.toString()); + } const base = await baseWeb3HelperFactory(provider); return Object.assign(Object.assign({}, base), { async balanceWrapped(address, chain_nonce) { const bal = await erc1155.balanceOf(address, chain_nonce); @@ -162,7 +174,24 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr token: ethers_1.BigNumber.from(packed.getId()), }; return await nftUri(nft_info); + }, + async estimateValidateTransferNft(validators, to, nft) { + // Protobuf is not deterministic, though perhaps we can approximate this statically + const tokdat = new encoding_1.NftEthNative(); + tokdat.setId(nft.token.toString()); + tokdat.setNftKind(1); + tokdat.setContractAddr(nft.contract); + const encoded = new encoding_1.NftPacked(); + encoded.setChainNonce(0x1351); + encoded.setData(tokdat.serializeBinary()); + const utx = await minter.populateTransaction.validate_transfer_nft(randomAction(), to, Buffer.from(encoded.serializeBinary()).toString("base64")); + return await estimateGas(validators, utx); + }, + async estimateValidateUnfreezeNft(validators, to, nft) { + const nft_dat = encoding_1.NftEthNative.deserializeBinary(nft.data); + const utx = await minter.populateTransaction.validate_unfreeze_nft(randomAction(), to, ethers_1.BigNumber.from(nft_dat.getId().toString()), nft_dat.getContractAddr()); + return await estimateGas(validators, utx); } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBK0U7QUFNL0UsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFnRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFrRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 4348b3e90..df77d3358 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -16,7 +16,7 @@ import { DecodeRawNft, MintNft, } from "./chain"; -import { Contract, Signer, BigNumber as EthBN, ContractFactory } from "ethers"; +import { Contract, Signer, BigNumber as EthBN, ContractFactory, PopulatedTransaction } from "ethers"; import { TransactionReceipt, TransactionResponse, @@ -89,6 +89,8 @@ export type Web3Helper = BaseWeb3Helper & * Get the uri of an nft given nft info */ nftUri(info: EthNftInfo): Promise; + estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise; + estimateValidateUnfreezeNft(validators: string[], to: string, nft: WrappedNft): Promise; }; function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { @@ -181,6 +183,21 @@ export async function web3HelperFactory( } } + const randomAction = () => EthBN.from(Math.floor(Math.random() * (999) + (Number.MAX_SAFE_INTEGER - 1000))); + + async function estimateGas(addrs: string[], utx: PopulatedTransaction): Promise { + let fee = EthBN.from(0); + + for (const [i, addr] of addrs.entries()) { + utx.from = addr; + let tf = await w3.estimateGas(utx); + if (i == addrs.length - 1) tf = tf.mul(1.1); + fee = fee.add(tf); + } + + return new BigNumber(fee.toString()); + } + const base = await baseWeb3HelperFactory(provider); return { @@ -295,5 +312,35 @@ export async function web3HelperFactory( return await nftUri(nft_info); }, + async estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise { + // Protobuf is not deterministic, though perhaps we can approximate this statically + const tokdat = new NftEthNative(); + tokdat.setId(nft.token.toString()); + tokdat.setNftKind(1); + tokdat.setContractAddr(nft.contract); + + const encoded = new NftPacked(); + encoded.setChainNonce(0x1351); + encoded.setData(tokdat.serializeBinary()); + + const utx = await minter.populateTransaction.validate_transfer_nft( + randomAction(), + to, + Buffer.from(encoded.serializeBinary()).toString("base64") + ) + + return await estimateGas(validators, utx); + }, + async estimateValidateUnfreezeNft(validators: string[], to: string, nft: WrappedNft): Promise { + const nft_dat = NftEthNative.deserializeBinary(nft.data); + const utx = await minter.populateTransaction.validate_unfreeze_nft( + randomAction(), + to, + EthBN.from(nft_dat.getId().toString()), + nft_dat.getContractAddr() + ) + + return await estimateGas(validators, utx); + } }; } From e7211384b6e0f108dc7272b1e19f8df580033630 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 3 Oct 2021 21:19:35 +0530 Subject: [PATCH 021/956] helpers: web3: pay tx fees for cross chain transactions also add placeholders for other chains --- dist/helpers/chain.d.ts | 12 +++---- dist/helpers/chain.js | 2 +- dist/helpers/elrond.d.ts | 2 +- dist/helpers/elrond.js | 2 +- dist/helpers/polkadot.d.ts | 2 +- dist/helpers/polkadot.js | 2 +- dist/helpers/tron.d.ts | 2 +- dist/helpers/tron.js | 2 +- dist/helpers/web3.d.ts | 2 +- dist/helpers/web3.js | 46 +++++++++--------------- src/helpers/chain.ts | 14 +++++--- src/helpers/elrond.ts | 6 ++-- src/helpers/polkadot.ts | 6 ++-- src/helpers/tron.ts | 6 ++-- src/helpers/web3.ts | 71 +++++++++++++++++--------------------- 15 files changed, 84 insertions(+), 93 deletions(-) diff --git a/dist/helpers/chain.d.ts b/dist/helpers/chain.d.ts index cd5c88d9f..c3c29b6a2 100644 --- a/dist/helpers/chain.d.ts +++ b/dist/helpers/chain.d.ts @@ -9,7 +9,7 @@ * @returns Transaction and the Identifier of this action to track the status */ export interface TransferForeign { - transferNativeToForeign(sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance): Promise<[Tx, EventIdent]>; + transferNativeToForeign(sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance, txFees: Balance): Promise<[Tx, EventIdent]>; } /** * Unfreeze native liquidity existing on a foreign chain(Send back Liquidity) @@ -22,7 +22,7 @@ export interface TransferForeign { * @returns Transaction and the Identifier of this action to track the status */ export interface UnfreezeForeign { - unfreezeWrapped(sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance): Promise<[Tx, EventIdent]>; + unfreezeWrapped(sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance, txFees: Balance): Promise<[Tx, EventIdent]>; } /** * Transfer NFT to a foreign chain, freezing the original one @@ -34,8 +34,8 @@ export interface UnfreezeForeign { * * @returns Transaction and the Identifier of this action to track the status */ -export interface TransferNftForeign { - transferNftToForeign(sender: Signer, chain_nonce: number, to: ForeignAddr, id: NftIdent): Promise<[Tx, EventIdent]>; +export interface TransferNftForeign { + transferNftToForeign(sender: Signer, chain_nonce: number, to: ForeignAddr, id: NftIdent, txFees: Balance): Promise<[Tx, EventIdent]>; } /** * Unfreeze native NFT existing on a foreign chain(Send back NFT) @@ -47,8 +47,8 @@ export interface TransferNftForeign { - unfreezeWrappedNft(sender: Signer, to: ForeignAddr, id: NftIdent): Promise<[Tx, EventIdent]>; +export interface UnfreezeForeignNft { + unfreezeWrappedNft(sender: Signer, to: ForeignAddr, id: NftIdent, txFees: Balance): Promise<[Tx, EventIdent]>; } /** * Get the balance of an address on the chain diff --git a/dist/helpers/chain.js b/dist/helpers/chain.js index 8ad72830d..01d8642a7 100644 --- a/dist/helpers/chain.js +++ b/dist/helpers/chain.js @@ -5,4 +5,4 @@ function ConcurrentSendError() { return new Error("concurrent_send"); } exports.ConcurrentSendError = ConcurrentSendError; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5SkEsU0FBZ0IsbUJBQW1CO0lBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsa0RBRUMifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUErSkEsU0FBZ0IsbUJBQW1CO0lBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsa0RBRUMifQ== \ No newline at end of file diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts index 0287057c9..c76a58f6c 100644 --- a/dist/helpers/elrond.d.ts +++ b/dist/helpers/elrond.d.ts @@ -99,7 +99,7 @@ declare type EventIdent = number; /** * Traits implemented by this module */ -export declare type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & TransferForeign & UnfreezeForeign & TransferNftForeign & UnfreezeForeignNft & IssueESDTNFT & MintNft & ListNft & GetLockedNft & DecodeWrappedNft & DecodeRawNft & { +export declare type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & TransferForeign & UnfreezeForeign & TransferNftForeign & UnfreezeForeignNft & IssueESDTNFT & MintNft & ListNft & GetLockedNft & DecodeWrappedNft & DecodeRawNft & { /** * Unsigned Transaction for [[TransferForeign]] */ diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js index 605e00d8e..c72e636ea 100644 --- a/dist/helpers/elrond.js +++ b/dist/helpers/elrond.js @@ -352,4 +352,4 @@ function filterEventId(results) { } throw Error(`invalid result: ${results.toString()}`); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQXdKRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBS0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLElBQUkscUJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLHFCQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFX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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTBKRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBS0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLElBQUkscUJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLHFCQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFX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 \ No newline at end of file diff --git a/dist/helpers/polkadot.d.ts b/dist/helpers/polkadot.d.ts index 7790ab49e..b9c80349e 100644 --- a/dist/helpers/polkadot.d.ts +++ b/dist/helpers/polkadot.d.ts @@ -24,7 +24,7 @@ export declare type PolkadotHelper = BasePolkadot & TransferForeign & BatchWrappedBalanceCheck & TransferNftForeign & UnfreezeForeignNft & MintNft & ListNft & GetLockedNft & DecodeWrappedNft & DecodeRawNft; +export declare type PolkadotPalletHelper = PolkadotHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferNftForeign & UnfreezeForeignNft & MintNft & ListNft & GetLockedNft & DecodeWrappedNft & DecodeRawNft; /** * @internal */ diff --git a/dist/helpers/polkadot.js b/dist/helpers/polkadot.js index dbf0e8a7f..da55bb2da 100644 --- a/dist/helpers/polkadot.js +++ b/dist/helpers/polkadot.js @@ -215,4 +215,4 @@ const runtimeTypes = { validators: "BTreeSet", }, }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9sa2Fkb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9wb2xrYWRvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7O0dBR0c7QUFDSCx1Q0FBZ0U7QUFPaEUsZ0VBQXFDO0FBQ3JDLG1DQWVpQjtBQU1qQiwyQ0FBMkU7QUFDM0Usc0RBQW9EO0FBeUNwRCxNQUFNLFVBQVUsR0FBRztJQUNqQixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0NBQ0osQ0FBQztBQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDOUIsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztDQUN4RTtBQUNEOztHQUVHO0FBQ0gsZUFBZTtBQUNmLFNBQWdCLEtBQUssQ0FBQyxNQUFrQjtJQUN0QyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3ZELEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDaEM7SUFDRCxPQUFP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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9sa2Fkb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9wb2xrYWRvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7O0dBR0c7QUFDSCx1Q0FBZ0U7QUFPaEUsZ0VBQXFDO0FBQ3JDLG1DQWVpQjtBQU1qQiwyQ0FBMkU7QUFDM0Usc0RBQW9EO0FBMkNwRCxNQUFNLFVBQVUsR0FBRztJQUNqQixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0NBQ0osQ0FBQztBQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDOUIsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztDQUN4RTtBQUNEOztHQUVHO0FBQ0gsZUFBZTtBQUNmLFNBQWdCLEtBQUssQ0FBQyxNQUFrQjtJQUN0QyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3ZELEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDaEM7SUFDRCxPQUFP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 \ No newline at end of file diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts index c52b06fd3..ff7661ede 100644 --- a/dist/helpers/tron.d.ts +++ b/dist/helpers/tron.d.ts @@ -22,7 +22,7 @@ export declare type BaseTronHelper = BalanceCheck & MintNft; }; -export declare type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { +export declare type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { nftUri(info: EthNftInfo): Promise; }; export declare function baseTronHelperFactory(provider: TronWeb): Promise; diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index 910a9abf9..a03f3273e 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -190,4 +190,4 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFDbEQsa0RBQTBCO0FBb0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxzQkFBVztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFDbEQsa0RBQTBCO0FBc0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxzQkFBVztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUs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 \ No newline at end of file diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index c05698a58..4378b73ca 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -52,7 +52,7 @@ MintNft & { /** * Traits implemented by this module */ -export declare type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { +export declare type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { /** * Get the uri of an nft given nft info */ diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index bf8892bf3..1b4ddd46c 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -122,39 +122,27 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr const bals = await erc1155.balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces); return new Map(bals.map((v, i) => [chain_nonces[i], new bignumber_js_1.default(v.toString())])); }, - async transferNativeToForeign(sender, chain_nonce, to, value) { - const res = await signedMinter(sender).freeze(chain_nonce, to, { value }); + async transferNativeToForeign(sender, chain_nonce, to, value, txFees) { + const totalVal = ethers_1.BigNumber.from(value.toString()).add(ethers_1.BigNumber.from(txFees.toString())); + const res = await signedMinter(sender).freeze(chain_nonce, to, { value: totalVal }); return await extractTxn(res, "Transfer"); }, - async transferNftToForeign(sender, chain_nonce, to, id) { - let txr; - let ev; - const calldata = Buffer.concat([ - Buffer.from(new Int32Array([0]).buffer), - Buffer.from(new Int32Array([chain_nonce]).buffer).reverse(), - Buffer.from(to, "utf-8"), - ]); - if (id.contract_type == "ERC721") { - ev = "TransferErc721"; - const erc = new ethers_1.Contract(id.contract, fakeERC721_json_1.abi, w3); - txr = await erc - .connect(sender)["safeTransferFrom(address,address,uint256,bytes)"](await sender.getAddress(), minter_addr, id.token, calldata); - } - else { - ev = "TransferErc1155"; - const erc = new ethers_1.Contract(id.contract, erc1155_abi, w3); - txr = await erc - .connect(sender) - .safeTransferFrom(await sender.getAddress(), minter_addr, id.token, ethers_1.BigNumber.from(1), calldata); - } - return await extractTxn(txr, ev); + async transferNftToForeign(sender, chain_nonce, to, id, txFees) { + const erc = new ethers_1.Contract(id.contract, fakeERC721_json_1.abi, w3); + const ta = await erc + .connect(sender) + .approve(await sender.getAddress(), id.token); + await ta.wait(); + const txr = await minter.connect(sender) + .freeze_erc721(id.contract, id.token, chain_nonce, to, { value: ethers_1.BigNumber.from(txFees.toString()) }); + return await extractTxn(txr, "TransferErc721"); }, - async unfreezeWrapped(sender, chain_nonce, to, value) { - const res = await signedMinter(sender).withdraw(chain_nonce, to, value); + async unfreezeWrapped(sender, chain_nonce, to, value, txFees) { + const res = await signedMinter(sender).withdraw(chain_nonce, to, value, { value: ethers_1.BigNumber.from(txFees.toString()) }); return await extractTxn(res, "Unfreeze"); }, - async unfreezeWrappedNft(sender, to, id) { - const res = await signedMinter(sender).withdraw_nft(to, id); + async unfreezeWrappedNft(sender, to, id, txFees) { + const res = await signedMinter(sender).withdraw_nft(to, id, { value: ethers_1.BigNumber.from(txFees.toString()) }); return await extractTxn(res, "UnfreezeNft"); }, nftUri, @@ -194,4 +182,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFrRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFrRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index ac83c3324..36c379064 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -13,7 +13,8 @@ export interface TransferForeign { sender: Signer, chain_nonce: number, to: ForeignAddr, - value: Balance + value: Balance, + txFees: Balance ): Promise<[Tx, EventIdent]>; } @@ -32,7 +33,8 @@ export interface UnfreezeForeign { sender: Signer, chain_nonce: number, to: ForeignAddr, - value: Balance + value: Balance, + txFees: Balance ): Promise<[Tx, EventIdent]>; } @@ -49,6 +51,7 @@ export interface UnfreezeForeign { export interface TransferNftForeign< Signer, ForeignAddr, + Balance, NftIdent, Tx, EventIdent @@ -57,7 +60,8 @@ export interface TransferNftForeign< sender: Signer, chain_nonce: number, to: ForeignAddr, - id: NftIdent + id: NftIdent, + txFees: Balance ): Promise<[Tx, EventIdent]>; } @@ -74,6 +78,7 @@ export interface TransferNftForeign< export interface UnfreezeForeignNft< Signer, ForeignAddr, + Balance, NftIdent, Tx, EventIdent @@ -81,7 +86,8 @@ export interface UnfreezeForeignNft< unfreezeWrappedNft( sender: Signer, to: ForeignAddr, - id: NftIdent + id: NftIdent, + txFees: Balance ): Promise<[Tx, EventIdent]>; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 3e47054bb..729dcecef 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -182,10 +182,12 @@ type EventIdent = number; */ export type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & + // TODO: Use TX Fees TransferForeign & + // TODO: Use TX Fees UnfreezeForeign & - TransferNftForeign & - UnfreezeForeignNft & + TransferNftForeign & + UnfreezeForeignNft & IssueESDTNFT & MintNft & ListNft & diff --git a/src/helpers/polkadot.ts b/src/helpers/polkadot.ts index 7c22587de..ab0976286 100644 --- a/src/helpers/polkadot.ts +++ b/src/helpers/polkadot.ts @@ -65,8 +65,10 @@ export type PolkadotHelper = BasePolkadot & export type PolkadotPalletHelper = PolkadotHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferNftForeign & - UnfreezeForeignNft & + // TODO: Use TX Fees + TransferNftForeign & + // TODO: Use TX Fees + UnfreezeForeignNft & MintNft & ListNft & GetLockedNft & diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 79780a5e4..70dbda50e 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -52,9 +52,11 @@ export type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & - TransferNftForeign & + // TODO: Use TX Fees + TransferNftForeign & + // TODO: Use TX Fees UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { nftUri(info: EthNftInfo): Promise; diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index df77d3358..324cb84db 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -80,9 +80,9 @@ export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & - TransferNftForeign & + TransferNftForeign & UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { /** @@ -227,68 +227,59 @@ export async function web3HelperFactory( sender: Signer, chain_nonce: number, to: string, - value: EasyBalance + value: EasyBalance, + txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender).freeze(chain_nonce, to, { value }); + const totalVal = EthBN.from(value.toString()).add(EthBN.from(txFees.toString())); + const res = await signedMinter(sender).freeze(chain_nonce, to, { value: totalVal }); return await extractTxn(res, "Transfer"); }, async transferNftToForeign( sender: Signer, chain_nonce: number, to: string, - id: EthNftInfo + id: EthNftInfo, + txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - let txr; - let ev; - const calldata = Buffer.concat([ - Buffer.from(new Int32Array([0]).buffer), // 4 bytes padidng - Buffer.from(new Int32Array([chain_nonce]).buffer).reverse(), // BE, gotta reverse - Buffer.from(to, "utf-8"), - ]); - - if (id.contract_type == "ERC721") { - ev = "TransferErc721"; - const erc = new Contract(id.contract, ERC721_abi, w3); - txr = await erc - .connect(sender) - ["safeTransferFrom(address,address,uint256,bytes)"]( - await sender.getAddress(), - minter_addr, + const erc = new Contract(id.contract, ERC721_abi, w3); + const ta = await erc + .connect(sender) + .approve( + await sender.getAddress(), + id.token, + ); + + await ta.wait(); + + const txr = await minter.connect(sender) + .freeze_erc721( + id.contract, id.token, - calldata + chain_nonce, + to, + { value: EthBN.from(txFees.toString()) } ); - } else { - ev = "TransferErc1155"; - const erc = new Contract(id.contract, erc1155_abi, w3); - txr = await erc - .connect(sender) - .safeTransferFrom( - await sender.getAddress(), - minter_addr, - id.token, - EthBN.from(1), - calldata - ); - } - return await extractTxn(txr, ev); + return await extractTxn(txr, "TransferErc721"); }, async unfreezeWrapped( sender: Signer, chain_nonce: number, to: string, - value: EasyBalance + value: EasyBalance, + txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender).withdraw(chain_nonce, to, value); + const res = await signedMinter(sender).withdraw(chain_nonce, to, value, { value: EthBN.from(txFees.toString()) }); return await extractTxn(res, "Unfreeze"); }, async unfreezeWrappedNft( sender: Signer, to: string, - id: BigNumber + id: BigNumber, + txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender).withdraw_nft(to, id); + const res = await signedMinter(sender).withdraw_nft(to, id, { value: EthBN.from(txFees.toString()) }); return await extractTxn(res, "UnfreezeNft"); }, From 935730678035441b5d75112c01229e5ce034a448 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 3 Oct 2021 21:39:57 +0530 Subject: [PATCH 022/956] helpers: web3: estimateUnfreezeWrapped: take wrapped nft data directly --- dist/helpers/web3.d.ts | 4 ++-- dist/helpers/web3.js | 6 +++--- src/helpers/web3.ts | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index 4378b73ca..cb3595685 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -3,7 +3,7 @@ * @module */ import BigNumber from "bignumber.js"; -import { TransferForeign, UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, TransferNftForeign, WrappedBalanceCheck, BatchWrappedBalanceCheck, DecodeWrappedNft, WrappedNft, DecodeRawNft, MintNft } from "./chain"; +import { TransferForeign, UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, TransferNftForeign, WrappedBalanceCheck, BatchWrappedBalanceCheck, DecodeWrappedNft, DecodeRawNft, MintNft } from "./chain"; import { Signer, BigNumber as EthBN } from "ethers"; import { TransactionReceipt, Provider } from "@ethersproject/providers"; import { Interface } from "ethers/lib/utils"; @@ -58,7 +58,7 @@ export declare type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck; estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise; - estimateValidateUnfreezeNft(validators: string[], to: string, nft: WrappedNft): Promise; + estimateValidateUnfreezeNft(validators: string[], to: string, nft: Uint8Array): Promise; }; /** * Create an object implementing minimal utilities for a web3 chain diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 1b4ddd46c..76cd8c750 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -175,11 +175,11 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr const utx = await minter.populateTransaction.validate_transfer_nft(randomAction(), to, Buffer.from(encoded.serializeBinary()).toString("base64")); return await estimateGas(validators, utx); }, - async estimateValidateUnfreezeNft(validators, to, nft) { - const nft_dat = encoding_1.NftEthNative.deserializeBinary(nft.data); + async estimateValidateUnfreezeNft(validators, to, nft_data) { + const nft_dat = encoding_1.NftEthNative.deserializeBinary(nft_data); const utx = await minter.populateTransaction.validate_unfreeze_nft(randomAction(), to, ethers_1.BigNumber.from(nft_dat.getId().toString()), nft_dat.getContractAddr()); return await estimateGas(validators, utx); } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFrRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFrRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 324cb84db..914e7211c 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -90,7 +90,7 @@ export type Web3Helper = BaseWeb3Helper & */ nftUri(info: EthNftInfo): Promise; estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise; - estimateValidateUnfreezeNft(validators: string[], to: string, nft: WrappedNft): Promise; + estimateValidateUnfreezeNft(validators: string[], to: string, nft: Uint8Array): Promise; }; function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { @@ -322,8 +322,8 @@ export async function web3HelperFactory( return await estimateGas(validators, utx); }, - async estimateValidateUnfreezeNft(validators: string[], to: string, nft: WrappedNft): Promise { - const nft_dat = NftEthNative.deserializeBinary(nft.data); + async estimateValidateUnfreezeNft(validators: string[], to: string, nft_data: Uint8Array): Promise { + const nft_dat = NftEthNative.deserializeBinary(nft_data); const utx = await minter.populateTransaction.validate_unfreeze_nft( randomAction(), to, From 17fbd238498c7917cac6a47d39fa9a797be0d3d2 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 4 Oct 2021 19:32:50 +0530 Subject: [PATCH 023/956] web3: update for UserNftMinter changes --- dist/fakeERC721.json | 69 +++++++++--------------------------------- dist/helpers/tron.js | 4 +-- dist/helpers/web3.d.ts | 1 - dist/helpers/web3.js | 7 ++--- src/fakeERC721.json | 69 +++++++++--------------------------------- src/helpers/tron.ts | 2 +- src/helpers/web3.ts | 6 ++-- 7 files changed, 38 insertions(+), 120 deletions(-) diff --git a/dist/fakeERC721.json b/dist/fakeERC721.json index e9d1f440a..360924121 100644 --- a/dist/fakeERC721.json +++ b/dist/fakeERC721.json @@ -58,25 +58,6 @@ "name": "ApprovalForAll", "type": "event" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, { "anonymous": false, "inputs": [ @@ -226,19 +207,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -258,13 +226,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -366,6 +327,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "tokenId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -407,23 +381,10 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d540000000000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620001a6565b508060019080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61323f80620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a22cb46511610071578063a22cb465146102cb578063b88d4fde146102e7578063c87b56dd14610303578063e985e9c514610333578063f2fde38b1461036357610116565b8063715018a61461026957806377097fc8146102735780638da5cb5b1461028f57806395d89b41146102ad57610116565b806323b872dd116100e957806323b872dd146101b557806342842e0e146101d157806342966c68146101ed5780636352211e1461020957806370a082311461023957610116565b806301ffc9a71461011b57806306fdde031461014b578063081812fc14610169578063095ea7b314610199575b600080fd5b61013560048036038101906101309190612135565b61037f565b60405161014291906125fc565b60405180910390f35b610153610461565b6040516101609190612617565b60405180910390f35b610183600480360381019061017e9190612187565b6104f3565b6040516101909190612595565b60405180910390f35b6101b360048036038101906101ae91906120f9565b610578565b005b6101cf60048036038101906101ca9190611ff3565b610690565b005b6101eb60048036038101906101e69190611ff3565b6106f0565b005b61020760048036038101906102029190612187565b610710565b005b610223600480360381019061021e9190612187565b610798565b6040516102309190612595565b60405180910390f35b610253600480360381019061024e9190611f8e565b61084a565b6040516102609190612899565b60405180910390f35b610271610902565b005b61028d600480360381019061028891906121b0565b61098a565b005b6102976109e7565b6040516102a49190612595565b60405180910390f35b6102b5610a11565b6040516102c29190612617565b60405180910390f35b6102e560048036038101906102e091906120bd565b610aa3565b005b61030160048036038101906102fc9190612042565b610c24565b005b61031d60048036038101906103189190612187565b610c86565b60405161032a9190612617565b60405180910390f35b61034d60048036038101906103489190611fb7565b610dd8565b60405161035a91906125fc565b60405180910390f35b61037d60048036038101906103789190611f8e565b610e6c565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061044a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061045a575061045982610f64565b5b9050919050565b60606000805461047090612abe565b80601f016020809104026020016040519081016040528092919081815260200182805461049c90612abe565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b5050505050905090565b60006104fe82610fce565b61053d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610534906127b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061058382610798565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb90612839565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661061361103a565b73ffffffffffffffffffffffffffffffffffffffff16148061064257506106418161063c61103a565b610dd8565b5b610681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610678906126f9565b60405180910390fd5b61068b8383611042565b505050565b6106a161069b61103a565b826110fb565b6106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612859565b60405180910390fd5b6106eb8383836111d9565b505050565b61070b83838360405180602001604052806000815250610c24565b505050565b600061071b82610798565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612879565b60405180910390fd5b61079482611435565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890612739565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612719565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090a61103a565b73ffffffffffffffffffffffffffffffffffffffff166109286109e7565b73ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906127d9565b60405180910390fd5b6109886000611488565b565b610994338461154e565b6109e28383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156c565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a2090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612abe565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b610aab61103a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906126b9565b60405180910390fd5b8060056000610b2661103a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610bd361103a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906125fc565b60405180910390a35050565b610c35610c2f61103a565b836110fb565b610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90612859565b60405180910390fd5b610c80848484846115e0565b50505050565b6060610c9182610fce565b610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790612799565b60405180910390fd5b6000600660008481526020019081526020016000208054610cf090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1c90612abe565b8015610d695780601f10610d3e57610100808354040283529160200191610d69565b820191906000526020600020905b815481529060010190602001808311610d4c57829003601f168201915b505050505090506000610d7a61163c565b9050600081511415610d90578192505050610dd3565b600082511115610dc5578082604051602001610dad929190612571565b60405160208183030381529060405292505050610dd3565b610dce84611653565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e7461103a565b73ffffffffffffffffffffffffffffffffffffffff16610e926109e7565b73ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906127d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612659565b60405180910390fd5b610f6181611488565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110b583610798565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061110682610fce565b611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906126d9565b60405180910390fd5b600061115083610798565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111bf57508373ffffffffffffffffffffffffffffffffffffffff166111a7846104f3565b73ffffffffffffffffffffffffffffffffffffffff16145b806111d057506111cf8185610dd8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111f982610798565b73ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611246906127f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690612699565b60405180910390fd5b6112ca8383836116fa565b6112d5600082611042565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461132591906129d4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461137c919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61143e816116ff565b600060066000838152602001908152602001600020805461145e90612abe565b905014611485576006600082815260200190815260200160002060006114849190611d90565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611568828260405180602001604052806000815250611810565b5050565b61157582610fce565b6115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90612759565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906115db929190611dd0565b505050565b6115eb8484846111d9565b6115f78484848461186b565b611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612639565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061165e82610fce565b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612819565b60405180910390fd5b60006116a761163c565b905060008151116116c757604051806020016040528060008152506116f2565b806116d184611a02565b6040516020016116e2929190612571565b6040516020818303038152906040525b915050919050565b505050565b600061170a82610798565b9050611718816000846116fa565b611723600083611042565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461177391906129d4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61181a8383611baf565b611827600084848461186b565b611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612639565b60405180910390fd5b505050565b600061188c8473ffffffffffffffffffffffffffffffffffffffff16611d7d565b156119f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026118b561103a565b8786866040518563ffffffff1660e01b81526004016118d794939291906125b0565b602060405180830381600087803b1580156118f157600080fd5b505af192505050801561192257506040513d601f19601f8201168201806040525081019061191f919061215e565b60015b6119a5573d8060008114611952576040519150601f19603f3d011682016040523d82523d6000602084013e611957565b606091505b5060008151141561199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490612639565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506119fa565b600190505b949350505050565b60606000821415611a4a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611baa565b600082905060005b60008214611a7c578080611a6590612b21565b915050600a82611a7591906129a3565b9150611a52565b60008167ffffffffffffffff811115611abe577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611af05781602001600182028036833780820191505090505b5090505b60008514611ba357600182611b0991906129d4565b9150600a85611b189190612b6a565b6030611b24919061294d565b60f81b818381518110611b60577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b9c91906129a3565b9450611af4565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1690612779565b60405180910390fd5b611c2881610fce565b15611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f90612679565b60405180910390fd5b611c74600083836116fa565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc4919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611d9c90612abe565b6000825580601f10611dae5750611dcd565b601f016020900490600052602060002090810190611dcc9190611e56565b5b50565b828054611ddc90612abe565b90600052602060002090601f016020900481019282611dfe5760008555611e45565b82601f10611e1757805160ff1916838001178555611e45565b82800160010185558215611e45579182015b82811115611e44578251825591602001919060010190611e29565b5b509050611e529190611e56565b5090565b5b80821115611e6f576000816000905550600101611e57565b5090565b6000611e86611e81846128d9565b6128b4565b905082815260208101848484011115611e9e57600080fd5b611ea9848285612a7c565b509392505050565b600081359050611ec0816131ad565b92915050565b600081359050611ed5816131c4565b92915050565b600081359050611eea816131db565b92915050565b600081519050611eff816131db565b92915050565b600082601f830112611f1657600080fd5b8135611f26848260208601611e73565b91505092915050565b60008083601f840112611f4157600080fd5b8235905067ffffffffffffffff811115611f5a57600080fd5b602083019150836001820283011115611f7257600080fd5b9250929050565b600081359050611f88816131f2565b92915050565b600060208284031215611fa057600080fd5b6000611fae84828501611eb1565b91505092915050565b60008060408385031215611fca57600080fd5b6000611fd885828601611eb1565b9250506020611fe985828601611eb1565b9150509250929050565b60008060006060848603121561200857600080fd5b600061201686828701611eb1565b935050602061202786828701611eb1565b925050604061203886828701611f79565b9150509250925092565b6000806000806080858703121561205857600080fd5b600061206687828801611eb1565b945050602061207787828801611eb1565b935050604061208887828801611f79565b925050606085013567ffffffffffffffff8111156120a557600080fd5b6120b187828801611f05565b91505092959194509250565b600080604083850312156120d057600080fd5b60006120de85828601611eb1565b92505060206120ef85828601611ec6565b9150509250929050565b6000806040838503121561210c57600080fd5b600061211a85828601611eb1565b925050602061212b85828601611f79565b9150509250929050565b60006020828403121561214757600080fd5b600061215584828501611edb565b91505092915050565b60006020828403121561217057600080fd5b600061217e84828501611ef0565b91505092915050565b60006020828403121561219957600080fd5b60006121a784828501611f79565b91505092915050565b6000806000604084860312156121c557600080fd5b60006121d386828701611f79565b935050602084013567ffffffffffffffff8111156121f057600080fd5b6121fc86828701611f2f565b92509250509250925092565b61221181612a08565b82525050565b61222081612a1a565b82525050565b60006122318261290a565b61223b8185612920565b935061224b818560208601612a8b565b61225481612c57565b840191505092915050565b600061226a82612915565b6122748185612931565b9350612284818560208601612a8b565b61228d81612c57565b840191505092915050565b60006122a382612915565b6122ad8185612942565b93506122bd818560208601612a8b565b80840191505092915050565b60006122d6603283612931565b91506122e182612c68565b604082019050919050565b60006122f9602683612931565b915061230482612cb7565b604082019050919050565b600061231c601c83612931565b915061232782612d06565b602082019050919050565b600061233f602483612931565b915061234a82612d2f565b604082019050919050565b6000612362601983612931565b915061236d82612d7e565b602082019050919050565b6000612385602c83612931565b915061239082612da7565b604082019050919050565b60006123a8603883612931565b91506123b382612df6565b604082019050919050565b60006123cb602a83612931565b91506123d682612e45565b604082019050919050565b60006123ee602983612931565b91506123f982612e94565b604082019050919050565b6000612411602e83612931565b915061241c82612ee3565b604082019050919050565b6000612434602083612931565b915061243f82612f32565b602082019050919050565b6000612457603183612931565b915061246282612f5b565b604082019050919050565b600061247a602c83612931565b915061248582612faa565b604082019050919050565b600061249d602083612931565b91506124a882612ff9565b602082019050919050565b60006124c0602983612931565b91506124cb82613022565b604082019050919050565b60006124e3602f83612931565b91506124ee82613071565b604082019050919050565b6000612506602183612931565b9150612511826130c0565b604082019050919050565b6000612529603183612931565b91506125348261310f565b604082019050919050565b600061254c602383612931565b91506125578261315e565b604082019050919050565b61256b81612a72565b82525050565b600061257d8285612298565b91506125898284612298565b91508190509392505050565b60006020820190506125aa6000830184612208565b92915050565b60006080820190506125c56000830187612208565b6125d26020830186612208565b6125df6040830185612562565b81810360608301526125f18184612226565b905095945050505050565b60006020820190506126116000830184612217565b92915050565b60006020820190508181036000830152612631818461225f565b905092915050565b60006020820190508181036000830152612652816122c9565b9050919050565b60006020820190508181036000830152612672816122ec565b9050919050565b600060208201905081810360008301526126928161230f565b9050919050565b600060208201905081810360008301526126b281612332565b9050919050565b600060208201905081810360008301526126d281612355565b9050919050565b600060208201905081810360008301526126f281612378565b9050919050565b600060208201905081810360008301526127128161239b565b9050919050565b60006020820190508181036000830152612732816123be565b9050919050565b60006020820190508181036000830152612752816123e1565b9050919050565b6000602082019050818103600083015261277281612404565b9050919050565b6000602082019050818103600083015261279281612427565b9050919050565b600060208201905081810360008301526127b28161244a565b9050919050565b600060208201905081810360008301526127d28161246d565b9050919050565b600060208201905081810360008301526127f281612490565b9050919050565b60006020820190508181036000830152612812816124b3565b9050919050565b60006020820190508181036000830152612832816124d6565b9050919050565b60006020820190508181036000830152612852816124f9565b9050919050565b600060208201905081810360008301526128728161251c565b9050919050565b600060208201905081810360008301526128928161253f565b9050919050565b60006020820190506128ae6000830184612562565b92915050565b60006128be6128cf565b90506128ca8282612af0565b919050565b6000604051905090565b600067ffffffffffffffff8211156128f4576128f3612c28565b5b6128fd82612c57565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061295882612a72565b915061296383612a72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561299857612997612b9b565b5b828201905092915050565b60006129ae82612a72565b91506129b983612a72565b9250826129c9576129c8612bca565b5b828204905092915050565b60006129df82612a72565b91506129ea83612a72565b9250828210156129fd576129fc612b9b565b5b828203905092915050565b6000612a1382612a52565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612aa9578082015181840152602081019050612a8e565b83811115612ab8576000848401525b50505050565b60006002820490506001821680612ad657607f821691505b60208210811415612aea57612ae9612bf9565b5b50919050565b612af982612c57565b810181811067ffffffffffffffff82111715612b1857612b17612c28565b5b80604052505050565b6000612b2c82612a72565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b5f57612b5e612b9b565b5b600182019050919050565b6000612b7582612a72565b9150612b8083612a72565b925082612b9057612b8f612bca565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b6131b681612a08565b81146131c157600080fd5b50565b6131cd81612a1a565b81146131d857600080fd5b50565b6131e481612a26565b81146131ef57600080fd5b50565b6131fb81612a72565b811461320657600080fd5b5056fea2646970667358221220090aad813af943086fa67a33e003e32975d9a3c5d24a76440964583dd9205ef064736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a22cb46511610071578063a22cb465146102cb578063b88d4fde146102e7578063c87b56dd14610303578063e985e9c514610333578063f2fde38b1461036357610116565b8063715018a61461026957806377097fc8146102735780638da5cb5b1461028f57806395d89b41146102ad57610116565b806323b872dd116100e957806323b872dd146101b557806342842e0e146101d157806342966c68146101ed5780636352211e1461020957806370a082311461023957610116565b806301ffc9a71461011b57806306fdde031461014b578063081812fc14610169578063095ea7b314610199575b600080fd5b61013560048036038101906101309190612135565b61037f565b60405161014291906125fc565b60405180910390f35b610153610461565b6040516101609190612617565b60405180910390f35b610183600480360381019061017e9190612187565b6104f3565b6040516101909190612595565b60405180910390f35b6101b360048036038101906101ae91906120f9565b610578565b005b6101cf60048036038101906101ca9190611ff3565b610690565b005b6101eb60048036038101906101e69190611ff3565b6106f0565b005b61020760048036038101906102029190612187565b610710565b005b610223600480360381019061021e9190612187565b610798565b6040516102309190612595565b60405180910390f35b610253600480360381019061024e9190611f8e565b61084a565b6040516102609190612899565b60405180910390f35b610271610902565b005b61028d600480360381019061028891906121b0565b61098a565b005b6102976109e7565b6040516102a49190612595565b60405180910390f35b6102b5610a11565b6040516102c29190612617565b60405180910390f35b6102e560048036038101906102e091906120bd565b610aa3565b005b61030160048036038101906102fc9190612042565b610c24565b005b61031d60048036038101906103189190612187565b610c86565b60405161032a9190612617565b60405180910390f35b61034d60048036038101906103489190611fb7565b610dd8565b60405161035a91906125fc565b60405180910390f35b61037d60048036038101906103789190611f8e565b610e6c565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061044a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061045a575061045982610f64565b5b9050919050565b60606000805461047090612abe565b80601f016020809104026020016040519081016040528092919081815260200182805461049c90612abe565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b5050505050905090565b60006104fe82610fce565b61053d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610534906127b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061058382610798565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb90612839565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661061361103a565b73ffffffffffffffffffffffffffffffffffffffff16148061064257506106418161063c61103a565b610dd8565b5b610681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610678906126f9565b60405180910390fd5b61068b8383611042565b505050565b6106a161069b61103a565b826110fb565b6106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612859565b60405180910390fd5b6106eb8383836111d9565b505050565b61070b83838360405180602001604052806000815250610c24565b505050565b600061071b82610798565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612879565b60405180910390fd5b61079482611435565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890612739565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612719565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090a61103a565b73ffffffffffffffffffffffffffffffffffffffff166109286109e7565b73ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906127d9565b60405180910390fd5b6109886000611488565b565b610994338461154e565b6109e28383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156c565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a2090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612abe565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b610aab61103a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906126b9565b60405180910390fd5b8060056000610b2661103a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610bd361103a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906125fc565b60405180910390a35050565b610c35610c2f61103a565b836110fb565b610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90612859565b60405180910390fd5b610c80848484846115e0565b50505050565b6060610c9182610fce565b610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790612799565b60405180910390fd5b6000600660008481526020019081526020016000208054610cf090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1c90612abe565b8015610d695780601f10610d3e57610100808354040283529160200191610d69565b820191906000526020600020905b815481529060010190602001808311610d4c57829003601f168201915b505050505090506000610d7a61163c565b9050600081511415610d90578192505050610dd3565b600082511115610dc5578082604051602001610dad929190612571565b60405160208183030381529060405292505050610dd3565b610dce84611653565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e7461103a565b73ffffffffffffffffffffffffffffffffffffffff16610e926109e7565b73ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906127d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612659565b60405180910390fd5b610f6181611488565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110b583610798565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061110682610fce565b611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906126d9565b60405180910390fd5b600061115083610798565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111bf57508373ffffffffffffffffffffffffffffffffffffffff166111a7846104f3565b73ffffffffffffffffffffffffffffffffffffffff16145b806111d057506111cf8185610dd8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111f982610798565b73ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611246906127f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690612699565b60405180910390fd5b6112ca8383836116fa565b6112d5600082611042565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461132591906129d4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461137c919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61143e816116ff565b600060066000838152602001908152602001600020805461145e90612abe565b905014611485576006600082815260200190815260200160002060006114849190611d90565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611568828260405180602001604052806000815250611810565b5050565b61157582610fce565b6115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90612759565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906115db929190611dd0565b505050565b6115eb8484846111d9565b6115f78484848461186b565b611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612639565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061165e82610fce565b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612819565b60405180910390fd5b60006116a761163c565b905060008151116116c757604051806020016040528060008152506116f2565b806116d184611a02565b6040516020016116e2929190612571565b6040516020818303038152906040525b915050919050565b505050565b600061170a82610798565b9050611718816000846116fa565b611723600083611042565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461177391906129d4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61181a8383611baf565b611827600084848461186b565b611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612639565b60405180910390fd5b505050565b600061188c8473ffffffffffffffffffffffffffffffffffffffff16611d7d565b156119f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026118b561103a565b8786866040518563ffffffff1660e01b81526004016118d794939291906125b0565b602060405180830381600087803b1580156118f157600080fd5b505af192505050801561192257506040513d601f19601f8201168201806040525081019061191f919061215e565b60015b6119a5573d8060008114611952576040519150601f19603f3d011682016040523d82523d6000602084013e611957565b606091505b5060008151141561199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490612639565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506119fa565b600190505b949350505050565b60606000821415611a4a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611baa565b600082905060005b60008214611a7c578080611a6590612b21565b915050600a82611a7591906129a3565b9150611a52565b60008167ffffffffffffffff811115611abe577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611af05781602001600182028036833780820191505090505b5090505b60008514611ba357600182611b0991906129d4565b9150600a85611b189190612b6a565b6030611b24919061294d565b60f81b818381518110611b60577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b9c91906129a3565b9450611af4565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1690612779565b60405180910390fd5b611c2881610fce565b15611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f90612679565b60405180910390fd5b611c74600083836116fa565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc4919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611d9c90612abe565b6000825580601f10611dae5750611dcd565b601f016020900490600052602060002090810190611dcc9190611e56565b5b50565b828054611ddc90612abe565b90600052602060002090601f016020900481019282611dfe5760008555611e45565b82601f10611e1757805160ff1916838001178555611e45565b82800160010185558215611e45579182015b82811115611e44578251825591602001919060010190611e29565b5b509050611e529190611e56565b5090565b5b80821115611e6f576000816000905550600101611e57565b5090565b6000611e86611e81846128d9565b6128b4565b905082815260208101848484011115611e9e57600080fd5b611ea9848285612a7c565b509392505050565b600081359050611ec0816131ad565b92915050565b600081359050611ed5816131c4565b92915050565b600081359050611eea816131db565b92915050565b600081519050611eff816131db565b92915050565b600082601f830112611f1657600080fd5b8135611f26848260208601611e73565b91505092915050565b60008083601f840112611f4157600080fd5b8235905067ffffffffffffffff811115611f5a57600080fd5b602083019150836001820283011115611f7257600080fd5b9250929050565b600081359050611f88816131f2565b92915050565b600060208284031215611fa057600080fd5b6000611fae84828501611eb1565b91505092915050565b60008060408385031215611fca57600080fd5b6000611fd885828601611eb1565b9250506020611fe985828601611eb1565b9150509250929050565b60008060006060848603121561200857600080fd5b600061201686828701611eb1565b935050602061202786828701611eb1565b925050604061203886828701611f79565b9150509250925092565b6000806000806080858703121561205857600080fd5b600061206687828801611eb1565b945050602061207787828801611eb1565b935050604061208887828801611f79565b925050606085013567ffffffffffffffff8111156120a557600080fd5b6120b187828801611f05565b91505092959194509250565b600080604083850312156120d057600080fd5b60006120de85828601611eb1565b92505060206120ef85828601611ec6565b9150509250929050565b6000806040838503121561210c57600080fd5b600061211a85828601611eb1565b925050602061212b85828601611f79565b9150509250929050565b60006020828403121561214757600080fd5b600061215584828501611edb565b91505092915050565b60006020828403121561217057600080fd5b600061217e84828501611ef0565b91505092915050565b60006020828403121561219957600080fd5b60006121a784828501611f79565b91505092915050565b6000806000604084860312156121c557600080fd5b60006121d386828701611f79565b935050602084013567ffffffffffffffff8111156121f057600080fd5b6121fc86828701611f2f565b92509250509250925092565b61221181612a08565b82525050565b61222081612a1a565b82525050565b60006122318261290a565b61223b8185612920565b935061224b818560208601612a8b565b61225481612c57565b840191505092915050565b600061226a82612915565b6122748185612931565b9350612284818560208601612a8b565b61228d81612c57565b840191505092915050565b60006122a382612915565b6122ad8185612942565b93506122bd818560208601612a8b565b80840191505092915050565b60006122d6603283612931565b91506122e182612c68565b604082019050919050565b60006122f9602683612931565b915061230482612cb7565b604082019050919050565b600061231c601c83612931565b915061232782612d06565b602082019050919050565b600061233f602483612931565b915061234a82612d2f565b604082019050919050565b6000612362601983612931565b915061236d82612d7e565b602082019050919050565b6000612385602c83612931565b915061239082612da7565b604082019050919050565b60006123a8603883612931565b91506123b382612df6565b604082019050919050565b60006123cb602a83612931565b91506123d682612e45565b604082019050919050565b60006123ee602983612931565b91506123f982612e94565b604082019050919050565b6000612411602e83612931565b915061241c82612ee3565b604082019050919050565b6000612434602083612931565b915061243f82612f32565b602082019050919050565b6000612457603183612931565b915061246282612f5b565b604082019050919050565b600061247a602c83612931565b915061248582612faa565b604082019050919050565b600061249d602083612931565b91506124a882612ff9565b602082019050919050565b60006124c0602983612931565b91506124cb82613022565b604082019050919050565b60006124e3602f83612931565b91506124ee82613071565b604082019050919050565b6000612506602183612931565b9150612511826130c0565b604082019050919050565b6000612529603183612931565b91506125348261310f565b604082019050919050565b600061254c602383612931565b91506125578261315e565b604082019050919050565b61256b81612a72565b82525050565b600061257d8285612298565b91506125898284612298565b91508190509392505050565b60006020820190506125aa6000830184612208565b92915050565b60006080820190506125c56000830187612208565b6125d26020830186612208565b6125df6040830185612562565b81810360608301526125f18184612226565b905095945050505050565b60006020820190506126116000830184612217565b92915050565b60006020820190508181036000830152612631818461225f565b905092915050565b60006020820190508181036000830152612652816122c9565b9050919050565b60006020820190508181036000830152612672816122ec565b9050919050565b600060208201905081810360008301526126928161230f565b9050919050565b600060208201905081810360008301526126b281612332565b9050919050565b600060208201905081810360008301526126d281612355565b9050919050565b600060208201905081810360008301526126f281612378565b9050919050565b600060208201905081810360008301526127128161239b565b9050919050565b60006020820190508181036000830152612732816123be565b9050919050565b60006020820190508181036000830152612752816123e1565b9050919050565b6000602082019050818103600083015261277281612404565b9050919050565b6000602082019050818103600083015261279281612427565b9050919050565b600060208201905081810360008301526127b28161244a565b9050919050565b600060208201905081810360008301526127d28161246d565b9050919050565b600060208201905081810360008301526127f281612490565b9050919050565b60006020820190508181036000830152612812816124b3565b9050919050565b60006020820190508181036000830152612832816124d6565b9050919050565b60006020820190508181036000830152612852816124f9565b9050919050565b600060208201905081810360008301526128728161251c565b9050919050565b600060208201905081810360008301526128928161253f565b9050919050565b60006020820190506128ae6000830184612562565b92915050565b60006128be6128cf565b90506128ca8282612af0565b919050565b6000604051905090565b600067ffffffffffffffff8211156128f4576128f3612c28565b5b6128fd82612c57565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061295882612a72565b915061296383612a72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561299857612997612b9b565b5b828201905092915050565b60006129ae82612a72565b91506129b983612a72565b9250826129c9576129c8612bca565b5b828204905092915050565b60006129df82612a72565b91506129ea83612a72565b9250828210156129fd576129fc612b9b565b5b828203905092915050565b6000612a1382612a52565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612aa9578082015181840152602081019050612a8e565b83811115612ab8576000848401525b50505050565b60006002820490506001821680612ad657607f821691505b60208210811415612aea57612ae9612bf9565b5b50919050565b612af982612c57565b810181811067ffffffffffffffff82111715612b1857612b17612c28565b5b80604052505050565b6000612b2c82612a72565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b5f57612b5e612b9b565b5b600182019050919050565b6000612b7582612a72565b9150612b8083612a72565b925082612b9057612b8f612bca565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b6131b681612a08565b81146131c157600080fd5b50565b6131cd81612a1a565b81146131d857600080fd5b50565b6131e481612a26565b81146131ef57600080fd5b50565b6131fb81612a72565b811461320657600080fd5b5056fea2646970667358221220090aad813af943086fa67a33e003e32975d9a3c5d24a76440964583dd9205ef064736f6c63430008040033", + "bytecode": "0x608060405260006007553480156200001657600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d54000000000000000000000000000000000000000000000000000000000081525081600090805190602001906200009b929190620000bd565b508060019080519060200190620000b4929190620000bd565b505050620001d2565b828054620000cb906200016d565b90600052602060002090601f016020900481019282620000ef57600085556200013b565b82601f106200010a57805160ff19168380011785556200013b565b828001600101855582156200013b579182015b828111156200013a5782518255916020019190600101906200011d565b5b5090506200014a91906200014e565b5090565b5b80821115620001695760008160009055506001016200014f565b5090565b600060028204905060018216806200018657607f821691505b602082108114156200019d576200019c620001a3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612eb580620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806377097fc81461027157806395d89b411461028d57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611ea9565b610343565b60405161012c919061232a565b60405180910390f35b61013d610425565b60405161014a9190612345565b60405180910390f35b61016d60048036038101906101689190611efb565b6104b7565b60405161017a91906122c3565b60405180910390f35b61019d60048036038101906101989190611e6d565b61053c565b005b6101a7610654565b6040516101b49190612587565b60405180910390f35b6101d760048036038101906101d29190611d67565b61065a565b005b6101f360048036038101906101ee9190611d67565b6106ba565b005b61020f600480360381019061020a9190611efb565b6106da565b005b61022b60048036038101906102269190611efb565b610762565b60405161023891906122c3565b60405180910390f35b61025b60048036038101906102569190611d02565b610814565b6040516102689190612587565b60405180910390f35b61028b60048036038101906102869190611f24565b6108cc565b005b610295610943565b6040516102a29190612345565b60405180910390f35b6102c560048036038101906102c09190611e31565b6109d5565b005b6102e160048036038101906102dc9190611db6565b610b56565b005b6102fd60048036038101906102f89190611efb565b610bb8565b60405161030a9190612345565b60405180910390f35b61032d60048036038101906103289190611d2b565b610d0a565b60405161033a919061232a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610d9e565b5b9050919050565b606060008054610434906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610460906127ac565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e08565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124c7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612527565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e74565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e74565b610d0a565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90612407565b60405180910390fd5b61064f8383610e7c565b505050565b60075481565b61066b610665610e74565b82610f35565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612547565b60405180910390fd5b6106b5838383611013565b505050565b6106d583838360405180602001604052806000815250610b56565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612567565b60405180910390fd5b61075e8261126f565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612447565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612427565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108d633846112c2565b6109248383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506112e0565b600160076000828254610937919061263b565b92505081905550505050565b606060018054610952906127ac565b80601f016020809104026020016040519081016040528092919081815260200182805461097e906127ac565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b6109dd610e74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906123c7565b60405180910390fd5b8060056000610a58610e74565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610b05610e74565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b4a919061232a565b60405180910390a35050565b610b67610b61610e74565b83610f35565b610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612547565b60405180910390fd5b610bb284848484611354565b50505050565b6060610bc382610e08565b610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906124a7565b60405180910390fd5b6000600660008481526020019081526020016000208054610c22906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e906127ac565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b505050505090506000610cac6113b0565b9050600081511415610cc2578192505050610d05565b600082511115610cf7578082604051602001610cdf92919061229f565b60405160208183030381529060405292505050610d05565b610d00846113c7565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610eef83610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4082610e08565b610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f76906123e7565b60405180910390fd5b6000610f8a83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ff957508373ffffffffffffffffffffffffffffffffffffffff16610fe1846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100a57506110098185610d0a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103382610762565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611080906124e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f0906123a7565b60405180910390fd5b61110483838361146e565b61110f600082610e7c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461115f91906126c2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b6919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127881611473565b6000600660008381526020019081526020016000208054611298906127ac565b9050146112bf576006600082815260200190815260200160002060006112be9190611b04565b5b50565b6112dc828260405180602001604052806000815250611584565b5050565b6112e982610e08565b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90612467565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061134f929190611b44565b505050565b61135f848484611013565b61136b848484846115df565b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190612367565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606113d282610e08565b611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612507565b60405180910390fd5b600061141b6113b0565b9050600081511161143b5760405180602001604052806000815250611466565b8061144584611776565b60405160200161145692919061229f565b6040516020818303038152906040525b915050919050565b505050565b600061147e82610762565b905061148c8160008461146e565b611497600083610e7c565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114e791906126c2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61158e8383611923565b61159b60008484846115df565b6115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612367565b60405180910390fd5b505050565b60006116008473ffffffffffffffffffffffffffffffffffffffff16611af1565b15611769578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611629610e74565b8786866040518563ffffffff1660e01b815260040161164b94939291906122de565b602060405180830381600087803b15801561166557600080fd5b505af192505050801561169657506040513d601f19601f820116820180604052508101906116939190611ed2565b60015b611719573d80600081146116c6576040519150601f19603f3d011682016040523d82523d6000602084013e6116cb565b606091505b50600081511415611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890612367565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061176e565b600190505b949350505050565b606060008214156117be576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061191e565b600082905060005b600082146117f05780806117d99061280f565b915050600a826117e99190612691565b91506117c6565b60008167ffffffffffffffff811115611832577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118645781602001600182028036833780820191505090505b5090505b600085146119175760018261187d91906126c2565b9150600a8561188c9190612858565b6030611898919061263b565b60f81b8183815181106118d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856119109190612691565b9450611868565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612487565b60405180910390fd5b61199c81610e08565b156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390612387565b60405180910390fd5b6119e86000838361146e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a38919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611b10906127ac565b6000825580601f10611b225750611b41565b601f016020900490600052602060002090810190611b409190611bca565b5b50565b828054611b50906127ac565b90600052602060002090601f016020900481019282611b725760008555611bb9565b82601f10611b8b57805160ff1916838001178555611bb9565b82800160010185558215611bb9579182015b82811115611bb8578251825591602001919060010190611b9d565b5b509050611bc69190611bca565b5090565b5b80821115611be3576000816000905550600101611bcb565b5090565b6000611bfa611bf5846125c7565b6125a2565b905082815260208101848484011115611c1257600080fd5b611c1d84828561276a565b509392505050565b600081359050611c3481612e23565b92915050565b600081359050611c4981612e3a565b92915050565b600081359050611c5e81612e51565b92915050565b600081519050611c7381612e51565b92915050565b600082601f830112611c8a57600080fd5b8135611c9a848260208601611be7565b91505092915050565b60008083601f840112611cb557600080fd5b8235905067ffffffffffffffff811115611cce57600080fd5b602083019150836001820283011115611ce657600080fd5b9250929050565b600081359050611cfc81612e68565b92915050565b600060208284031215611d1457600080fd5b6000611d2284828501611c25565b91505092915050565b60008060408385031215611d3e57600080fd5b6000611d4c85828601611c25565b9250506020611d5d85828601611c25565b9150509250929050565b600080600060608486031215611d7c57600080fd5b6000611d8a86828701611c25565b9350506020611d9b86828701611c25565b9250506040611dac86828701611ced565b9150509250925092565b60008060008060808587031215611dcc57600080fd5b6000611dda87828801611c25565b9450506020611deb87828801611c25565b9350506040611dfc87828801611ced565b925050606085013567ffffffffffffffff811115611e1957600080fd5b611e2587828801611c79565b91505092959194509250565b60008060408385031215611e4457600080fd5b6000611e5285828601611c25565b9250506020611e6385828601611c3a565b9150509250929050565b60008060408385031215611e8057600080fd5b6000611e8e85828601611c25565b9250506020611e9f85828601611ced565b9150509250929050565b600060208284031215611ebb57600080fd5b6000611ec984828501611c4f565b91505092915050565b600060208284031215611ee457600080fd5b6000611ef284828501611c64565b91505092915050565b600060208284031215611f0d57600080fd5b6000611f1b84828501611ced565b91505092915050565b600080600060408486031215611f3957600080fd5b6000611f4786828701611ced565b935050602084013567ffffffffffffffff811115611f6457600080fd5b611f7086828701611ca3565b92509250509250925092565b611f85816126f6565b82525050565b611f9481612708565b82525050565b6000611fa5826125f8565b611faf818561260e565b9350611fbf818560208601612779565b611fc881612945565b840191505092915050565b6000611fde82612603565b611fe8818561261f565b9350611ff8818560208601612779565b61200181612945565b840191505092915050565b600061201782612603565b6120218185612630565b9350612031818560208601612779565b80840191505092915050565b600061204a60328361261f565b915061205582612956565b604082019050919050565b600061206d601c8361261f565b9150612078826129a5565b602082019050919050565b600061209060248361261f565b915061209b826129ce565b604082019050919050565b60006120b360198361261f565b91506120be82612a1d565b602082019050919050565b60006120d6602c8361261f565b91506120e182612a46565b604082019050919050565b60006120f960388361261f565b915061210482612a95565b604082019050919050565b600061211c602a8361261f565b915061212782612ae4565b604082019050919050565b600061213f60298361261f565b915061214a82612b33565b604082019050919050565b6000612162602e8361261f565b915061216d82612b82565b604082019050919050565b600061218560208361261f565b915061219082612bd1565b602082019050919050565b60006121a860318361261f565b91506121b382612bfa565b604082019050919050565b60006121cb602c8361261f565b91506121d682612c49565b604082019050919050565b60006121ee60298361261f565b91506121f982612c98565b604082019050919050565b6000612211602f8361261f565b915061221c82612ce7565b604082019050919050565b600061223460218361261f565b915061223f82612d36565b604082019050919050565b600061225760318361261f565b915061226282612d85565b604082019050919050565b600061227a60238361261f565b915061228582612dd4565b604082019050919050565b61229981612760565b82525050565b60006122ab828561200c565b91506122b7828461200c565b91508190509392505050565b60006020820190506122d86000830184611f7c565b92915050565b60006080820190506122f36000830187611f7c565b6123006020830186611f7c565b61230d6040830185612290565b818103606083015261231f8184611f9a565b905095945050505050565b600060208201905061233f6000830184611f8b565b92915050565b6000602082019050818103600083015261235f8184611fd3565b905092915050565b600060208201905081810360008301526123808161203d565b9050919050565b600060208201905081810360008301526123a081612060565b9050919050565b600060208201905081810360008301526123c081612083565b9050919050565b600060208201905081810360008301526123e0816120a6565b9050919050565b60006020820190508181036000830152612400816120c9565b9050919050565b60006020820190508181036000830152612420816120ec565b9050919050565b600060208201905081810360008301526124408161210f565b9050919050565b6000602082019050818103600083015261246081612132565b9050919050565b6000602082019050818103600083015261248081612155565b9050919050565b600060208201905081810360008301526124a081612178565b9050919050565b600060208201905081810360008301526124c08161219b565b9050919050565b600060208201905081810360008301526124e0816121be565b9050919050565b60006020820190508181036000830152612500816121e1565b9050919050565b6000602082019050818103600083015261252081612204565b9050919050565b6000602082019050818103600083015261254081612227565b9050919050565b600060208201905081810360008301526125608161224a565b9050919050565b600060208201905081810360008301526125808161226d565b9050919050565b600060208201905061259c6000830184612290565b92915050565b60006125ac6125bd565b90506125b882826127de565b919050565b6000604051905090565b600067ffffffffffffffff8211156125e2576125e1612916565b5b6125eb82612945565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061264682612760565b915061265183612760565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561268657612685612889565b5b828201905092915050565b600061269c82612760565b91506126a783612760565b9250826126b7576126b66128b8565b5b828204905092915050565b60006126cd82612760565b91506126d883612760565b9250828210156126eb576126ea612889565b5b828203905092915050565b600061270182612740565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561279757808201518184015260208101905061277c565b838111156127a6576000848401525b50505050565b600060028204905060018216806127c457607f821691505b602082108114156127d8576127d76128e7565b5b50919050565b6127e782612945565b810181811067ffffffffffffffff8211171561280657612805612916565b5b80604052505050565b600061281a82612760565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561284d5761284c612889565b5b600182019050919050565b600061286382612760565b915061286e83612760565b92508261287e5761287d6128b8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e2c816126f6565b8114612e3757600080fd5b50565b612e4381612708565b8114612e4e57600080fd5b50565b612e5a81612714565b8114612e6557600080fd5b50565b612e7181612760565b8114612e7c57600080fd5b5056fea2646970667358221220afc50bc783f130cbfa166d7c7b6cd6b846c10e8cdc885592443a8b5e9c9b237964736f6c63430008040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806377097fc81461027157806395d89b411461028d57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611ea9565b610343565b60405161012c919061232a565b60405180910390f35b61013d610425565b60405161014a9190612345565b60405180910390f35b61016d60048036038101906101689190611efb565b6104b7565b60405161017a91906122c3565b60405180910390f35b61019d60048036038101906101989190611e6d565b61053c565b005b6101a7610654565b6040516101b49190612587565b60405180910390f35b6101d760048036038101906101d29190611d67565b61065a565b005b6101f360048036038101906101ee9190611d67565b6106ba565b005b61020f600480360381019061020a9190611efb565b6106da565b005b61022b60048036038101906102269190611efb565b610762565b60405161023891906122c3565b60405180910390f35b61025b60048036038101906102569190611d02565b610814565b6040516102689190612587565b60405180910390f35b61028b60048036038101906102869190611f24565b6108cc565b005b610295610943565b6040516102a29190612345565b60405180910390f35b6102c560048036038101906102c09190611e31565b6109d5565b005b6102e160048036038101906102dc9190611db6565b610b56565b005b6102fd60048036038101906102f89190611efb565b610bb8565b60405161030a9190612345565b60405180910390f35b61032d60048036038101906103289190611d2b565b610d0a565b60405161033a919061232a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610d9e565b5b9050919050565b606060008054610434906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610460906127ac565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e08565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124c7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612527565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e74565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e74565b610d0a565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90612407565b60405180910390fd5b61064f8383610e7c565b505050565b60075481565b61066b610665610e74565b82610f35565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612547565b60405180910390fd5b6106b5838383611013565b505050565b6106d583838360405180602001604052806000815250610b56565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612567565b60405180910390fd5b61075e8261126f565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612447565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612427565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108d633846112c2565b6109248383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506112e0565b600160076000828254610937919061263b565b92505081905550505050565b606060018054610952906127ac565b80601f016020809104026020016040519081016040528092919081815260200182805461097e906127ac565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b6109dd610e74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906123c7565b60405180910390fd5b8060056000610a58610e74565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610b05610e74565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b4a919061232a565b60405180910390a35050565b610b67610b61610e74565b83610f35565b610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612547565b60405180910390fd5b610bb284848484611354565b50505050565b6060610bc382610e08565b610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906124a7565b60405180910390fd5b6000600660008481526020019081526020016000208054610c22906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e906127ac565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b505050505090506000610cac6113b0565b9050600081511415610cc2578192505050610d05565b600082511115610cf7578082604051602001610cdf92919061229f565b60405160208183030381529060405292505050610d05565b610d00846113c7565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610eef83610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4082610e08565b610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f76906123e7565b60405180910390fd5b6000610f8a83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ff957508373ffffffffffffffffffffffffffffffffffffffff16610fe1846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100a57506110098185610d0a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103382610762565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611080906124e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f0906123a7565b60405180910390fd5b61110483838361146e565b61110f600082610e7c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461115f91906126c2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b6919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127881611473565b6000600660008381526020019081526020016000208054611298906127ac565b9050146112bf576006600082815260200190815260200160002060006112be9190611b04565b5b50565b6112dc828260405180602001604052806000815250611584565b5050565b6112e982610e08565b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90612467565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061134f929190611b44565b505050565b61135f848484611013565b61136b848484846115df565b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190612367565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606113d282610e08565b611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612507565b60405180910390fd5b600061141b6113b0565b9050600081511161143b5760405180602001604052806000815250611466565b8061144584611776565b60405160200161145692919061229f565b6040516020818303038152906040525b915050919050565b505050565b600061147e82610762565b905061148c8160008461146e565b611497600083610e7c565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114e791906126c2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61158e8383611923565b61159b60008484846115df565b6115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612367565b60405180910390fd5b505050565b60006116008473ffffffffffffffffffffffffffffffffffffffff16611af1565b15611769578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611629610e74565b8786866040518563ffffffff1660e01b815260040161164b94939291906122de565b602060405180830381600087803b15801561166557600080fd5b505af192505050801561169657506040513d601f19601f820116820180604052508101906116939190611ed2565b60015b611719573d80600081146116c6576040519150601f19603f3d011682016040523d82523d6000602084013e6116cb565b606091505b50600081511415611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890612367565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061176e565b600190505b949350505050565b606060008214156117be576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061191e565b600082905060005b600082146117f05780806117d99061280f565b915050600a826117e99190612691565b91506117c6565b60008167ffffffffffffffff811115611832577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118645781602001600182028036833780820191505090505b5090505b600085146119175760018261187d91906126c2565b9150600a8561188c9190612858565b6030611898919061263b565b60f81b8183815181106118d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856119109190612691565b9450611868565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612487565b60405180910390fd5b61199c81610e08565b156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390612387565b60405180910390fd5b6119e86000838361146e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a38919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611b10906127ac565b6000825580601f10611b225750611b41565b601f016020900490600052602060002090810190611b409190611bca565b5b50565b828054611b50906127ac565b90600052602060002090601f016020900481019282611b725760008555611bb9565b82601f10611b8b57805160ff1916838001178555611bb9565b82800160010185558215611bb9579182015b82811115611bb8578251825591602001919060010190611b9d565b5b509050611bc69190611bca565b5090565b5b80821115611be3576000816000905550600101611bcb565b5090565b6000611bfa611bf5846125c7565b6125a2565b905082815260208101848484011115611c1257600080fd5b611c1d84828561276a565b509392505050565b600081359050611c3481612e23565b92915050565b600081359050611c4981612e3a565b92915050565b600081359050611c5e81612e51565b92915050565b600081519050611c7381612e51565b92915050565b600082601f830112611c8a57600080fd5b8135611c9a848260208601611be7565b91505092915050565b60008083601f840112611cb557600080fd5b8235905067ffffffffffffffff811115611cce57600080fd5b602083019150836001820283011115611ce657600080fd5b9250929050565b600081359050611cfc81612e68565b92915050565b600060208284031215611d1457600080fd5b6000611d2284828501611c25565b91505092915050565b60008060408385031215611d3e57600080fd5b6000611d4c85828601611c25565b9250506020611d5d85828601611c25565b9150509250929050565b600080600060608486031215611d7c57600080fd5b6000611d8a86828701611c25565b9350506020611d9b86828701611c25565b9250506040611dac86828701611ced565b9150509250925092565b60008060008060808587031215611dcc57600080fd5b6000611dda87828801611c25565b9450506020611deb87828801611c25565b9350506040611dfc87828801611ced565b925050606085013567ffffffffffffffff811115611e1957600080fd5b611e2587828801611c79565b91505092959194509250565b60008060408385031215611e4457600080fd5b6000611e5285828601611c25565b9250506020611e6385828601611c3a565b9150509250929050565b60008060408385031215611e8057600080fd5b6000611e8e85828601611c25565b9250506020611e9f85828601611ced565b9150509250929050565b600060208284031215611ebb57600080fd5b6000611ec984828501611c4f565b91505092915050565b600060208284031215611ee457600080fd5b6000611ef284828501611c64565b91505092915050565b600060208284031215611f0d57600080fd5b6000611f1b84828501611ced565b91505092915050565b600080600060408486031215611f3957600080fd5b6000611f4786828701611ced565b935050602084013567ffffffffffffffff811115611f6457600080fd5b611f7086828701611ca3565b92509250509250925092565b611f85816126f6565b82525050565b611f9481612708565b82525050565b6000611fa5826125f8565b611faf818561260e565b9350611fbf818560208601612779565b611fc881612945565b840191505092915050565b6000611fde82612603565b611fe8818561261f565b9350611ff8818560208601612779565b61200181612945565b840191505092915050565b600061201782612603565b6120218185612630565b9350612031818560208601612779565b80840191505092915050565b600061204a60328361261f565b915061205582612956565b604082019050919050565b600061206d601c8361261f565b9150612078826129a5565b602082019050919050565b600061209060248361261f565b915061209b826129ce565b604082019050919050565b60006120b360198361261f565b91506120be82612a1d565b602082019050919050565b60006120d6602c8361261f565b91506120e182612a46565b604082019050919050565b60006120f960388361261f565b915061210482612a95565b604082019050919050565b600061211c602a8361261f565b915061212782612ae4565b604082019050919050565b600061213f60298361261f565b915061214a82612b33565b604082019050919050565b6000612162602e8361261f565b915061216d82612b82565b604082019050919050565b600061218560208361261f565b915061219082612bd1565b602082019050919050565b60006121a860318361261f565b91506121b382612bfa565b604082019050919050565b60006121cb602c8361261f565b91506121d682612c49565b604082019050919050565b60006121ee60298361261f565b91506121f982612c98565b604082019050919050565b6000612211602f8361261f565b915061221c82612ce7565b604082019050919050565b600061223460218361261f565b915061223f82612d36565b604082019050919050565b600061225760318361261f565b915061226282612d85565b604082019050919050565b600061227a60238361261f565b915061228582612dd4565b604082019050919050565b61229981612760565b82525050565b60006122ab828561200c565b91506122b7828461200c565b91508190509392505050565b60006020820190506122d86000830184611f7c565b92915050565b60006080820190506122f36000830187611f7c565b6123006020830186611f7c565b61230d6040830185612290565b818103606083015261231f8184611f9a565b905095945050505050565b600060208201905061233f6000830184611f8b565b92915050565b6000602082019050818103600083015261235f8184611fd3565b905092915050565b600060208201905081810360008301526123808161203d565b9050919050565b600060208201905081810360008301526123a081612060565b9050919050565b600060208201905081810360008301526123c081612083565b9050919050565b600060208201905081810360008301526123e0816120a6565b9050919050565b60006020820190508181036000830152612400816120c9565b9050919050565b60006020820190508181036000830152612420816120ec565b9050919050565b600060208201905081810360008301526124408161210f565b9050919050565b6000602082019050818103600083015261246081612132565b9050919050565b6000602082019050818103600083015261248081612155565b9050919050565b600060208201905081810360008301526124a081612178565b9050919050565b600060208201905081810360008301526124c08161219b565b9050919050565b600060208201905081810360008301526124e0816121be565b9050919050565b60006020820190508181036000830152612500816121e1565b9050919050565b6000602082019050818103600083015261252081612204565b9050919050565b6000602082019050818103600083015261254081612227565b9050919050565b600060208201905081810360008301526125608161224a565b9050919050565b600060208201905081810360008301526125808161226d565b9050919050565b600060208201905061259c6000830184612290565b92915050565b60006125ac6125bd565b90506125b882826127de565b919050565b6000604051905090565b600067ffffffffffffffff8211156125e2576125e1612916565b5b6125eb82612945565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061264682612760565b915061265183612760565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561268657612685612889565b5b828201905092915050565b600061269c82612760565b91506126a783612760565b9250826126b7576126b66128b8565b5b828204905092915050565b60006126cd82612760565b91506126d883612760565b9250828210156126eb576126ea612889565b5b828203905092915050565b600061270182612740565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561279757808201518184015260208101905061277c565b838111156127a6576000848401525b50505050565b600060028204905060018216806127c457607f821691505b602082108114156127d8576127d76128e7565b5b50919050565b6127e782612945565b810181811067ffffffffffffffff8211171561280657612805612916565b5b80604052505050565b600061281a82612760565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561284d5761284c612889565b5b600182019050919050565b600061286382612760565b915061286e83612760565b92508261287e5761287d6128b8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e2c816126f6565b8114612e3757600080fd5b50565b612e4381612708565b8114612e4e57600080fd5b50565b612e5a81612714565b8114612e6557600080fd5b50565b612e7181612760565b8114612e7c57600080fd5b5056fea2646970667358221220afc50bc783f130cbfa166d7c7b6cd6b846c10e8cdc885592443a8b5e9c9b237964736f6c63430008040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index a03f3273e..445e60caa 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -49,7 +49,7 @@ async function baseTronHelperFactory(provider) { async mintNft(owner, options) { setSigner(owner); const erc = await provider.contract(fakeERC721_json_1.abi, options.contract); - await erc.mint(bignumber_1.BigNumber.from(options.token.toString()), options.uri).send(); + await erc.mint(options.uri).send(); }, async balance(address) { const balance = await provider.trx.getBalance(address); @@ -190,4 +190,4 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFDbEQsa0RBQTBCO0FBc0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxzQkFBVztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFDbEQsa0RBQTBCO0FBc0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxzQkFBVztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUM7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 \ No newline at end of file diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index cb3595685..8e970780e 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -26,7 +26,6 @@ export declare type EthNftInfo = { */ export declare type MintArgs = { contract: string; - token: EasyBalance; uri: string; }; /** diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 76cd8c750..7a4e5b880 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -57,10 +57,9 @@ async function baseWeb3HelperFactory(provider) { const contract = await factory.deploy(); return contract.address; }, - async mintNft(owner, { contract, token, uri }) { - const tok = ethers_1.BigNumber.from(token.toString()); + async mintNft(owner, { contract, uri }) { const erc721 = new ethers_1.Contract(contract, erc721_abi, owner); - const txm = await erc721.mint(tok, uri); + const txm = await erc721.mint(uri); await txm.wait(); }, }; @@ -182,4 +181,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFrRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/fakeERC721.json b/src/fakeERC721.json index 6a4ce2aeb..1f47839d2 100644 --- a/src/fakeERC721.json +++ b/src/fakeERC721.json @@ -58,25 +58,6 @@ "name": "ApprovalForAll", "type": "event" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, { "anonymous": false, "inputs": [ @@ -226,19 +207,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -258,13 +226,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -366,6 +327,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "tokenId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -407,23 +381,10 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d540000000000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620001a6565b508060019080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61323f80620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a22cb46511610071578063a22cb465146102cb578063b88d4fde146102e7578063c87b56dd14610303578063e985e9c514610333578063f2fde38b1461036357610116565b8063715018a61461026957806377097fc8146102735780638da5cb5b1461028f57806395d89b41146102ad57610116565b806323b872dd116100e957806323b872dd146101b557806342842e0e146101d157806342966c68146101ed5780636352211e1461020957806370a082311461023957610116565b806301ffc9a71461011b57806306fdde031461014b578063081812fc14610169578063095ea7b314610199575b600080fd5b61013560048036038101906101309190612135565b61037f565b60405161014291906125fc565b60405180910390f35b610153610461565b6040516101609190612617565b60405180910390f35b610183600480360381019061017e9190612187565b6104f3565b6040516101909190612595565b60405180910390f35b6101b360048036038101906101ae91906120f9565b610578565b005b6101cf60048036038101906101ca9190611ff3565b610690565b005b6101eb60048036038101906101e69190611ff3565b6106f0565b005b61020760048036038101906102029190612187565b610710565b005b610223600480360381019061021e9190612187565b610798565b6040516102309190612595565b60405180910390f35b610253600480360381019061024e9190611f8e565b61084a565b6040516102609190612899565b60405180910390f35b610271610902565b005b61028d600480360381019061028891906121b0565b61098a565b005b6102976109e7565b6040516102a49190612595565b60405180910390f35b6102b5610a11565b6040516102c29190612617565b60405180910390f35b6102e560048036038101906102e091906120bd565b610aa3565b005b61030160048036038101906102fc9190612042565b610c24565b005b61031d60048036038101906103189190612187565b610c86565b60405161032a9190612617565b60405180910390f35b61034d60048036038101906103489190611fb7565b610dd8565b60405161035a91906125fc565b60405180910390f35b61037d60048036038101906103789190611f8e565b610e6c565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061044a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061045a575061045982610f64565b5b9050919050565b60606000805461047090612abe565b80601f016020809104026020016040519081016040528092919081815260200182805461049c90612abe565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b5050505050905090565b60006104fe82610fce565b61053d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610534906127b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061058382610798565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb90612839565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661061361103a565b73ffffffffffffffffffffffffffffffffffffffff16148061064257506106418161063c61103a565b610dd8565b5b610681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610678906126f9565b60405180910390fd5b61068b8383611042565b505050565b6106a161069b61103a565b826110fb565b6106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612859565b60405180910390fd5b6106eb8383836111d9565b505050565b61070b83838360405180602001604052806000815250610c24565b505050565b600061071b82610798565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612879565b60405180910390fd5b61079482611435565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890612739565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612719565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090a61103a565b73ffffffffffffffffffffffffffffffffffffffff166109286109e7565b73ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906127d9565b60405180910390fd5b6109886000611488565b565b610994338461154e565b6109e28383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156c565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a2090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612abe565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b610aab61103a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906126b9565b60405180910390fd5b8060056000610b2661103a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610bd361103a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906125fc565b60405180910390a35050565b610c35610c2f61103a565b836110fb565b610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90612859565b60405180910390fd5b610c80848484846115e0565b50505050565b6060610c9182610fce565b610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790612799565b60405180910390fd5b6000600660008481526020019081526020016000208054610cf090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1c90612abe565b8015610d695780601f10610d3e57610100808354040283529160200191610d69565b820191906000526020600020905b815481529060010190602001808311610d4c57829003601f168201915b505050505090506000610d7a61163c565b9050600081511415610d90578192505050610dd3565b600082511115610dc5578082604051602001610dad929190612571565b60405160208183030381529060405292505050610dd3565b610dce84611653565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e7461103a565b73ffffffffffffffffffffffffffffffffffffffff16610e926109e7565b73ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906127d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612659565b60405180910390fd5b610f6181611488565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110b583610798565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061110682610fce565b611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906126d9565b60405180910390fd5b600061115083610798565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111bf57508373ffffffffffffffffffffffffffffffffffffffff166111a7846104f3565b73ffffffffffffffffffffffffffffffffffffffff16145b806111d057506111cf8185610dd8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111f982610798565b73ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611246906127f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690612699565b60405180910390fd5b6112ca8383836116fa565b6112d5600082611042565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461132591906129d4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461137c919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61143e816116ff565b600060066000838152602001908152602001600020805461145e90612abe565b905014611485576006600082815260200190815260200160002060006114849190611d90565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611568828260405180602001604052806000815250611810565b5050565b61157582610fce565b6115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90612759565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906115db929190611dd0565b505050565b6115eb8484846111d9565b6115f78484848461186b565b611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612639565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061165e82610fce565b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612819565b60405180910390fd5b60006116a761163c565b905060008151116116c757604051806020016040528060008152506116f2565b806116d184611a02565b6040516020016116e2929190612571565b6040516020818303038152906040525b915050919050565b505050565b600061170a82610798565b9050611718816000846116fa565b611723600083611042565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461177391906129d4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61181a8383611baf565b611827600084848461186b565b611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612639565b60405180910390fd5b505050565b600061188c8473ffffffffffffffffffffffffffffffffffffffff16611d7d565b156119f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026118b561103a565b8786866040518563ffffffff1660e01b81526004016118d794939291906125b0565b602060405180830381600087803b1580156118f157600080fd5b505af192505050801561192257506040513d601f19601f8201168201806040525081019061191f919061215e565b60015b6119a5573d8060008114611952576040519150601f19603f3d011682016040523d82523d6000602084013e611957565b606091505b5060008151141561199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490612639565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506119fa565b600190505b949350505050565b60606000821415611a4a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611baa565b600082905060005b60008214611a7c578080611a6590612b21565b915050600a82611a7591906129a3565b9150611a52565b60008167ffffffffffffffff811115611abe577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611af05781602001600182028036833780820191505090505b5090505b60008514611ba357600182611b0991906129d4565b9150600a85611b189190612b6a565b6030611b24919061294d565b60f81b818381518110611b60577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b9c91906129a3565b9450611af4565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1690612779565b60405180910390fd5b611c2881610fce565b15611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f90612679565b60405180910390fd5b611c74600083836116fa565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc4919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611d9c90612abe565b6000825580601f10611dae5750611dcd565b601f016020900490600052602060002090810190611dcc9190611e56565b5b50565b828054611ddc90612abe565b90600052602060002090601f016020900481019282611dfe5760008555611e45565b82601f10611e1757805160ff1916838001178555611e45565b82800160010185558215611e45579182015b82811115611e44578251825591602001919060010190611e29565b5b509050611e529190611e56565b5090565b5b80821115611e6f576000816000905550600101611e57565b5090565b6000611e86611e81846128d9565b6128b4565b905082815260208101848484011115611e9e57600080fd5b611ea9848285612a7c565b509392505050565b600081359050611ec0816131ad565b92915050565b600081359050611ed5816131c4565b92915050565b600081359050611eea816131db565b92915050565b600081519050611eff816131db565b92915050565b600082601f830112611f1657600080fd5b8135611f26848260208601611e73565b91505092915050565b60008083601f840112611f4157600080fd5b8235905067ffffffffffffffff811115611f5a57600080fd5b602083019150836001820283011115611f7257600080fd5b9250929050565b600081359050611f88816131f2565b92915050565b600060208284031215611fa057600080fd5b6000611fae84828501611eb1565b91505092915050565b60008060408385031215611fca57600080fd5b6000611fd885828601611eb1565b9250506020611fe985828601611eb1565b9150509250929050565b60008060006060848603121561200857600080fd5b600061201686828701611eb1565b935050602061202786828701611eb1565b925050604061203886828701611f79565b9150509250925092565b6000806000806080858703121561205857600080fd5b600061206687828801611eb1565b945050602061207787828801611eb1565b935050604061208887828801611f79565b925050606085013567ffffffffffffffff8111156120a557600080fd5b6120b187828801611f05565b91505092959194509250565b600080604083850312156120d057600080fd5b60006120de85828601611eb1565b92505060206120ef85828601611ec6565b9150509250929050565b6000806040838503121561210c57600080fd5b600061211a85828601611eb1565b925050602061212b85828601611f79565b9150509250929050565b60006020828403121561214757600080fd5b600061215584828501611edb565b91505092915050565b60006020828403121561217057600080fd5b600061217e84828501611ef0565b91505092915050565b60006020828403121561219957600080fd5b60006121a784828501611f79565b91505092915050565b6000806000604084860312156121c557600080fd5b60006121d386828701611f79565b935050602084013567ffffffffffffffff8111156121f057600080fd5b6121fc86828701611f2f565b92509250509250925092565b61221181612a08565b82525050565b61222081612a1a565b82525050565b60006122318261290a565b61223b8185612920565b935061224b818560208601612a8b565b61225481612c57565b840191505092915050565b600061226a82612915565b6122748185612931565b9350612284818560208601612a8b565b61228d81612c57565b840191505092915050565b60006122a382612915565b6122ad8185612942565b93506122bd818560208601612a8b565b80840191505092915050565b60006122d6603283612931565b91506122e182612c68565b604082019050919050565b60006122f9602683612931565b915061230482612cb7565b604082019050919050565b600061231c601c83612931565b915061232782612d06565b602082019050919050565b600061233f602483612931565b915061234a82612d2f565b604082019050919050565b6000612362601983612931565b915061236d82612d7e565b602082019050919050565b6000612385602c83612931565b915061239082612da7565b604082019050919050565b60006123a8603883612931565b91506123b382612df6565b604082019050919050565b60006123cb602a83612931565b91506123d682612e45565b604082019050919050565b60006123ee602983612931565b91506123f982612e94565b604082019050919050565b6000612411602e83612931565b915061241c82612ee3565b604082019050919050565b6000612434602083612931565b915061243f82612f32565b602082019050919050565b6000612457603183612931565b915061246282612f5b565b604082019050919050565b600061247a602c83612931565b915061248582612faa565b604082019050919050565b600061249d602083612931565b91506124a882612ff9565b602082019050919050565b60006124c0602983612931565b91506124cb82613022565b604082019050919050565b60006124e3602f83612931565b91506124ee82613071565b604082019050919050565b6000612506602183612931565b9150612511826130c0565b604082019050919050565b6000612529603183612931565b91506125348261310f565b604082019050919050565b600061254c602383612931565b91506125578261315e565b604082019050919050565b61256b81612a72565b82525050565b600061257d8285612298565b91506125898284612298565b91508190509392505050565b60006020820190506125aa6000830184612208565b92915050565b60006080820190506125c56000830187612208565b6125d26020830186612208565b6125df6040830185612562565b81810360608301526125f18184612226565b905095945050505050565b60006020820190506126116000830184612217565b92915050565b60006020820190508181036000830152612631818461225f565b905092915050565b60006020820190508181036000830152612652816122c9565b9050919050565b60006020820190508181036000830152612672816122ec565b9050919050565b600060208201905081810360008301526126928161230f565b9050919050565b600060208201905081810360008301526126b281612332565b9050919050565b600060208201905081810360008301526126d281612355565b9050919050565b600060208201905081810360008301526126f281612378565b9050919050565b600060208201905081810360008301526127128161239b565b9050919050565b60006020820190508181036000830152612732816123be565b9050919050565b60006020820190508181036000830152612752816123e1565b9050919050565b6000602082019050818103600083015261277281612404565b9050919050565b6000602082019050818103600083015261279281612427565b9050919050565b600060208201905081810360008301526127b28161244a565b9050919050565b600060208201905081810360008301526127d28161246d565b9050919050565b600060208201905081810360008301526127f281612490565b9050919050565b60006020820190508181036000830152612812816124b3565b9050919050565b60006020820190508181036000830152612832816124d6565b9050919050565b60006020820190508181036000830152612852816124f9565b9050919050565b600060208201905081810360008301526128728161251c565b9050919050565b600060208201905081810360008301526128928161253f565b9050919050565b60006020820190506128ae6000830184612562565b92915050565b60006128be6128cf565b90506128ca8282612af0565b919050565b6000604051905090565b600067ffffffffffffffff8211156128f4576128f3612c28565b5b6128fd82612c57565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061295882612a72565b915061296383612a72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561299857612997612b9b565b5b828201905092915050565b60006129ae82612a72565b91506129b983612a72565b9250826129c9576129c8612bca565b5b828204905092915050565b60006129df82612a72565b91506129ea83612a72565b9250828210156129fd576129fc612b9b565b5b828203905092915050565b6000612a1382612a52565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612aa9578082015181840152602081019050612a8e565b83811115612ab8576000848401525b50505050565b60006002820490506001821680612ad657607f821691505b60208210811415612aea57612ae9612bf9565b5b50919050565b612af982612c57565b810181811067ffffffffffffffff82111715612b1857612b17612c28565b5b80604052505050565b6000612b2c82612a72565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b5f57612b5e612b9b565b5b600182019050919050565b6000612b7582612a72565b9150612b8083612a72565b925082612b9057612b8f612bca565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b6131b681612a08565b81146131c157600080fd5b50565b6131cd81612a1a565b81146131d857600080fd5b50565b6131e481612a26565b81146131ef57600080fd5b50565b6131fb81612a72565b811461320657600080fd5b5056fea2646970667358221220090aad813af943086fa67a33e003e32975d9a3c5d24a76440964583dd9205ef064736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a22cb46511610071578063a22cb465146102cb578063b88d4fde146102e7578063c87b56dd14610303578063e985e9c514610333578063f2fde38b1461036357610116565b8063715018a61461026957806377097fc8146102735780638da5cb5b1461028f57806395d89b41146102ad57610116565b806323b872dd116100e957806323b872dd146101b557806342842e0e146101d157806342966c68146101ed5780636352211e1461020957806370a082311461023957610116565b806301ffc9a71461011b57806306fdde031461014b578063081812fc14610169578063095ea7b314610199575b600080fd5b61013560048036038101906101309190612135565b61037f565b60405161014291906125fc565b60405180910390f35b610153610461565b6040516101609190612617565b60405180910390f35b610183600480360381019061017e9190612187565b6104f3565b6040516101909190612595565b60405180910390f35b6101b360048036038101906101ae91906120f9565b610578565b005b6101cf60048036038101906101ca9190611ff3565b610690565b005b6101eb60048036038101906101e69190611ff3565b6106f0565b005b61020760048036038101906102029190612187565b610710565b005b610223600480360381019061021e9190612187565b610798565b6040516102309190612595565b60405180910390f35b610253600480360381019061024e9190611f8e565b61084a565b6040516102609190612899565b60405180910390f35b610271610902565b005b61028d600480360381019061028891906121b0565b61098a565b005b6102976109e7565b6040516102a49190612595565b60405180910390f35b6102b5610a11565b6040516102c29190612617565b60405180910390f35b6102e560048036038101906102e091906120bd565b610aa3565b005b61030160048036038101906102fc9190612042565b610c24565b005b61031d60048036038101906103189190612187565b610c86565b60405161032a9190612617565b60405180910390f35b61034d60048036038101906103489190611fb7565b610dd8565b60405161035a91906125fc565b60405180910390f35b61037d60048036038101906103789190611f8e565b610e6c565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061044a57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061045a575061045982610f64565b5b9050919050565b60606000805461047090612abe565b80601f016020809104026020016040519081016040528092919081815260200182805461049c90612abe565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b5050505050905090565b60006104fe82610fce565b61053d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610534906127b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061058382610798565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb90612839565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661061361103a565b73ffffffffffffffffffffffffffffffffffffffff16148061064257506106418161063c61103a565b610dd8565b5b610681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610678906126f9565b60405180910390fd5b61068b8383611042565b505050565b6106a161069b61103a565b826110fb565b6106e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d790612859565b60405180910390fd5b6106eb8383836111d9565b505050565b61070b83838360405180602001604052806000815250610c24565b505050565b600061071b82610798565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612879565b60405180910390fd5b61079482611435565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890612739565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b290612719565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61090a61103a565b73ffffffffffffffffffffffffffffffffffffffff166109286109e7565b73ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610975906127d9565b60405180910390fd5b6109886000611488565b565b610994338461154e565b6109e28383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156c565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610a2090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612abe565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b610aab61103a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906126b9565b60405180910390fd5b8060056000610b2661103a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610bd361103a565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610c1891906125fc565b60405180910390a35050565b610c35610c2f61103a565b836110fb565b610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90612859565b60405180910390fd5b610c80848484846115e0565b50505050565b6060610c9182610fce565b610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790612799565b60405180910390fd5b6000600660008481526020019081526020016000208054610cf090612abe565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1c90612abe565b8015610d695780601f10610d3e57610100808354040283529160200191610d69565b820191906000526020600020905b815481529060010190602001808311610d4c57829003601f168201915b505050505090506000610d7a61163c565b9050600081511415610d90578192505050610dd3565b600082511115610dc5578082604051602001610dad929190612571565b60405160208183030381529060405292505050610dd3565b610dce84611653565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610e7461103a565b73ffffffffffffffffffffffffffffffffffffffff16610e926109e7565b73ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906127d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612659565b60405180910390fd5b610f6181611488565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110b583610798565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061110682610fce565b611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906126d9565b60405180910390fd5b600061115083610798565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111bf57508373ffffffffffffffffffffffffffffffffffffffff166111a7846104f3565b73ffffffffffffffffffffffffffffffffffffffff16145b806111d057506111cf8185610dd8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111f982610798565b73ffffffffffffffffffffffffffffffffffffffff161461124f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611246906127f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b690612699565b60405180910390fd5b6112ca8383836116fa565b6112d5600082611042565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461132591906129d4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461137c919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61143e816116ff565b600060066000838152602001908152602001600020805461145e90612abe565b905014611485576006600082815260200190815260200160002060006114849190611d90565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611568828260405180602001604052806000815250611810565b5050565b61157582610fce565b6115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90612759565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906115db929190611dd0565b505050565b6115eb8484846111d9565b6115f78484848461186b565b611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612639565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061165e82610fce565b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490612819565b60405180910390fd5b60006116a761163c565b905060008151116116c757604051806020016040528060008152506116f2565b806116d184611a02565b6040516020016116e2929190612571565b6040516020818303038152906040525b915050919050565b505050565b600061170a82610798565b9050611718816000846116fa565b611723600083611042565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461177391906129d4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61181a8383611baf565b611827600084848461186b565b611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d90612639565b60405180910390fd5b505050565b600061188c8473ffffffffffffffffffffffffffffffffffffffff16611d7d565b156119f5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026118b561103a565b8786866040518563ffffffff1660e01b81526004016118d794939291906125b0565b602060405180830381600087803b1580156118f157600080fd5b505af192505050801561192257506040513d601f19601f8201168201806040525081019061191f919061215e565b60015b6119a5573d8060008114611952576040519150601f19603f3d011682016040523d82523d6000602084013e611957565b606091505b5060008151141561199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490612639565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506119fa565b600190505b949350505050565b60606000821415611a4a576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611baa565b600082905060005b60008214611a7c578080611a6590612b21565b915050600a82611a7591906129a3565b9150611a52565b60008167ffffffffffffffff811115611abe577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611af05781602001600182028036833780820191505090505b5090505b60008514611ba357600182611b0991906129d4565b9150600a85611b189190612b6a565b6030611b24919061294d565b60f81b818381518110611b60577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611b9c91906129a3565b9450611af4565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1690612779565b60405180910390fd5b611c2881610fce565b15611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f90612679565b60405180910390fd5b611c74600083836116fa565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cc4919061294d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611d9c90612abe565b6000825580601f10611dae5750611dcd565b601f016020900490600052602060002090810190611dcc9190611e56565b5b50565b828054611ddc90612abe565b90600052602060002090601f016020900481019282611dfe5760008555611e45565b82601f10611e1757805160ff1916838001178555611e45565b82800160010185558215611e45579182015b82811115611e44578251825591602001919060010190611e29565b5b509050611e529190611e56565b5090565b5b80821115611e6f576000816000905550600101611e57565b5090565b6000611e86611e81846128d9565b6128b4565b905082815260208101848484011115611e9e57600080fd5b611ea9848285612a7c565b509392505050565b600081359050611ec0816131ad565b92915050565b600081359050611ed5816131c4565b92915050565b600081359050611eea816131db565b92915050565b600081519050611eff816131db565b92915050565b600082601f830112611f1657600080fd5b8135611f26848260208601611e73565b91505092915050565b60008083601f840112611f4157600080fd5b8235905067ffffffffffffffff811115611f5a57600080fd5b602083019150836001820283011115611f7257600080fd5b9250929050565b600081359050611f88816131f2565b92915050565b600060208284031215611fa057600080fd5b6000611fae84828501611eb1565b91505092915050565b60008060408385031215611fca57600080fd5b6000611fd885828601611eb1565b9250506020611fe985828601611eb1565b9150509250929050565b60008060006060848603121561200857600080fd5b600061201686828701611eb1565b935050602061202786828701611eb1565b925050604061203886828701611f79565b9150509250925092565b6000806000806080858703121561205857600080fd5b600061206687828801611eb1565b945050602061207787828801611eb1565b935050604061208887828801611f79565b925050606085013567ffffffffffffffff8111156120a557600080fd5b6120b187828801611f05565b91505092959194509250565b600080604083850312156120d057600080fd5b60006120de85828601611eb1565b92505060206120ef85828601611ec6565b9150509250929050565b6000806040838503121561210c57600080fd5b600061211a85828601611eb1565b925050602061212b85828601611f79565b9150509250929050565b60006020828403121561214757600080fd5b600061215584828501611edb565b91505092915050565b60006020828403121561217057600080fd5b600061217e84828501611ef0565b91505092915050565b60006020828403121561219957600080fd5b60006121a784828501611f79565b91505092915050565b6000806000604084860312156121c557600080fd5b60006121d386828701611f79565b935050602084013567ffffffffffffffff8111156121f057600080fd5b6121fc86828701611f2f565b92509250509250925092565b61221181612a08565b82525050565b61222081612a1a565b82525050565b60006122318261290a565b61223b8185612920565b935061224b818560208601612a8b565b61225481612c57565b840191505092915050565b600061226a82612915565b6122748185612931565b9350612284818560208601612a8b565b61228d81612c57565b840191505092915050565b60006122a382612915565b6122ad8185612942565b93506122bd818560208601612a8b565b80840191505092915050565b60006122d6603283612931565b91506122e182612c68565b604082019050919050565b60006122f9602683612931565b915061230482612cb7565b604082019050919050565b600061231c601c83612931565b915061232782612d06565b602082019050919050565b600061233f602483612931565b915061234a82612d2f565b604082019050919050565b6000612362601983612931565b915061236d82612d7e565b602082019050919050565b6000612385602c83612931565b915061239082612da7565b604082019050919050565b60006123a8603883612931565b91506123b382612df6565b604082019050919050565b60006123cb602a83612931565b91506123d682612e45565b604082019050919050565b60006123ee602983612931565b91506123f982612e94565b604082019050919050565b6000612411602e83612931565b915061241c82612ee3565b604082019050919050565b6000612434602083612931565b915061243f82612f32565b602082019050919050565b6000612457603183612931565b915061246282612f5b565b604082019050919050565b600061247a602c83612931565b915061248582612faa565b604082019050919050565b600061249d602083612931565b91506124a882612ff9565b602082019050919050565b60006124c0602983612931565b91506124cb82613022565b604082019050919050565b60006124e3602f83612931565b91506124ee82613071565b604082019050919050565b6000612506602183612931565b9150612511826130c0565b604082019050919050565b6000612529603183612931565b91506125348261310f565b604082019050919050565b600061254c602383612931565b91506125578261315e565b604082019050919050565b61256b81612a72565b82525050565b600061257d8285612298565b91506125898284612298565b91508190509392505050565b60006020820190506125aa6000830184612208565b92915050565b60006080820190506125c56000830187612208565b6125d26020830186612208565b6125df6040830185612562565b81810360608301526125f18184612226565b905095945050505050565b60006020820190506126116000830184612217565b92915050565b60006020820190508181036000830152612631818461225f565b905092915050565b60006020820190508181036000830152612652816122c9565b9050919050565b60006020820190508181036000830152612672816122ec565b9050919050565b600060208201905081810360008301526126928161230f565b9050919050565b600060208201905081810360008301526126b281612332565b9050919050565b600060208201905081810360008301526126d281612355565b9050919050565b600060208201905081810360008301526126f281612378565b9050919050565b600060208201905081810360008301526127128161239b565b9050919050565b60006020820190508181036000830152612732816123be565b9050919050565b60006020820190508181036000830152612752816123e1565b9050919050565b6000602082019050818103600083015261277281612404565b9050919050565b6000602082019050818103600083015261279281612427565b9050919050565b600060208201905081810360008301526127b28161244a565b9050919050565b600060208201905081810360008301526127d28161246d565b9050919050565b600060208201905081810360008301526127f281612490565b9050919050565b60006020820190508181036000830152612812816124b3565b9050919050565b60006020820190508181036000830152612832816124d6565b9050919050565b60006020820190508181036000830152612852816124f9565b9050919050565b600060208201905081810360008301526128728161251c565b9050919050565b600060208201905081810360008301526128928161253f565b9050919050565b60006020820190506128ae6000830184612562565b92915050565b60006128be6128cf565b90506128ca8282612af0565b919050565b6000604051905090565b600067ffffffffffffffff8211156128f4576128f3612c28565b5b6128fd82612c57565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061295882612a72565b915061296383612a72565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561299857612997612b9b565b5b828201905092915050565b60006129ae82612a72565b91506129b983612a72565b9250826129c9576129c8612bca565b5b828204905092915050565b60006129df82612a72565b91506129ea83612a72565b9250828210156129fd576129fc612b9b565b5b828203905092915050565b6000612a1382612a52565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612aa9578082015181840152602081019050612a8e565b83811115612ab8576000848401525b50505050565b60006002820490506001821680612ad657607f821691505b60208210811415612aea57612ae9612bf9565b5b50919050565b612af982612c57565b810181811067ffffffffffffffff82111715612b1857612b17612c28565b5b80604052505050565b6000612b2c82612a72565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b5f57612b5e612b9b565b5b600182019050919050565b6000612b7582612a72565b9150612b8083612a72565b925082612b9057612b8f612bca565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b6131b681612a08565b81146131c157600080fd5b50565b6131cd81612a1a565b81146131d857600080fd5b50565b6131e481612a26565b81146131ef57600080fd5b50565b6131fb81612a72565b811461320657600080fd5b5056fea2646970667358221220090aad813af943086fa67a33e003e32975d9a3c5d24a76440964583dd9205ef064736f6c63430008040033", + "bytecode": "0x608060405260006007553480156200001657600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d54000000000000000000000000000000000000000000000000000000000081525081600090805190602001906200009b929190620000bd565b508060019080519060200190620000b4929190620000bd565b505050620001d2565b828054620000cb906200016d565b90600052602060002090601f016020900481019282620000ef57600085556200013b565b82601f106200010a57805160ff19168380011785556200013b565b828001600101855582156200013b579182015b828111156200013a5782518255916020019190600101906200011d565b5b5090506200014a91906200014e565b5090565b5b80821115620001695760008160009055506001016200014f565b5090565b600060028204905060018216806200018657607f821691505b602082108114156200019d576200019c620001a3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612eb580620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806377097fc81461027157806395d89b411461028d57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611ea9565b610343565b60405161012c919061232a565b60405180910390f35b61013d610425565b60405161014a9190612345565b60405180910390f35b61016d60048036038101906101689190611efb565b6104b7565b60405161017a91906122c3565b60405180910390f35b61019d60048036038101906101989190611e6d565b61053c565b005b6101a7610654565b6040516101b49190612587565b60405180910390f35b6101d760048036038101906101d29190611d67565b61065a565b005b6101f360048036038101906101ee9190611d67565b6106ba565b005b61020f600480360381019061020a9190611efb565b6106da565b005b61022b60048036038101906102269190611efb565b610762565b60405161023891906122c3565b60405180910390f35b61025b60048036038101906102569190611d02565b610814565b6040516102689190612587565b60405180910390f35b61028b60048036038101906102869190611f24565b6108cc565b005b610295610943565b6040516102a29190612345565b60405180910390f35b6102c560048036038101906102c09190611e31565b6109d5565b005b6102e160048036038101906102dc9190611db6565b610b56565b005b6102fd60048036038101906102f89190611efb565b610bb8565b60405161030a9190612345565b60405180910390f35b61032d60048036038101906103289190611d2b565b610d0a565b60405161033a919061232a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610d9e565b5b9050919050565b606060008054610434906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610460906127ac565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e08565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124c7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612527565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e74565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e74565b610d0a565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90612407565b60405180910390fd5b61064f8383610e7c565b505050565b60075481565b61066b610665610e74565b82610f35565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612547565b60405180910390fd5b6106b5838383611013565b505050565b6106d583838360405180602001604052806000815250610b56565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612567565b60405180910390fd5b61075e8261126f565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612447565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612427565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108d633846112c2565b6109248383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506112e0565b600160076000828254610937919061263b565b92505081905550505050565b606060018054610952906127ac565b80601f016020809104026020016040519081016040528092919081815260200182805461097e906127ac565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b6109dd610e74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906123c7565b60405180910390fd5b8060056000610a58610e74565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610b05610e74565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b4a919061232a565b60405180910390a35050565b610b67610b61610e74565b83610f35565b610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612547565b60405180910390fd5b610bb284848484611354565b50505050565b6060610bc382610e08565b610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906124a7565b60405180910390fd5b6000600660008481526020019081526020016000208054610c22906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e906127ac565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b505050505090506000610cac6113b0565b9050600081511415610cc2578192505050610d05565b600082511115610cf7578082604051602001610cdf92919061229f565b60405160208183030381529060405292505050610d05565b610d00846113c7565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610eef83610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4082610e08565b610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f76906123e7565b60405180910390fd5b6000610f8a83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ff957508373ffffffffffffffffffffffffffffffffffffffff16610fe1846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100a57506110098185610d0a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103382610762565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611080906124e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f0906123a7565b60405180910390fd5b61110483838361146e565b61110f600082610e7c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461115f91906126c2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b6919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127881611473565b6000600660008381526020019081526020016000208054611298906127ac565b9050146112bf576006600082815260200190815260200160002060006112be9190611b04565b5b50565b6112dc828260405180602001604052806000815250611584565b5050565b6112e982610e08565b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90612467565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061134f929190611b44565b505050565b61135f848484611013565b61136b848484846115df565b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190612367565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606113d282610e08565b611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612507565b60405180910390fd5b600061141b6113b0565b9050600081511161143b5760405180602001604052806000815250611466565b8061144584611776565b60405160200161145692919061229f565b6040516020818303038152906040525b915050919050565b505050565b600061147e82610762565b905061148c8160008461146e565b611497600083610e7c565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114e791906126c2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61158e8383611923565b61159b60008484846115df565b6115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612367565b60405180910390fd5b505050565b60006116008473ffffffffffffffffffffffffffffffffffffffff16611af1565b15611769578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611629610e74565b8786866040518563ffffffff1660e01b815260040161164b94939291906122de565b602060405180830381600087803b15801561166557600080fd5b505af192505050801561169657506040513d601f19601f820116820180604052508101906116939190611ed2565b60015b611719573d80600081146116c6576040519150601f19603f3d011682016040523d82523d6000602084013e6116cb565b606091505b50600081511415611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890612367565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061176e565b600190505b949350505050565b606060008214156117be576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061191e565b600082905060005b600082146117f05780806117d99061280f565b915050600a826117e99190612691565b91506117c6565b60008167ffffffffffffffff811115611832577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118645781602001600182028036833780820191505090505b5090505b600085146119175760018261187d91906126c2565b9150600a8561188c9190612858565b6030611898919061263b565b60f81b8183815181106118d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856119109190612691565b9450611868565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612487565b60405180910390fd5b61199c81610e08565b156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390612387565b60405180910390fd5b6119e86000838361146e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a38919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611b10906127ac565b6000825580601f10611b225750611b41565b601f016020900490600052602060002090810190611b409190611bca565b5b50565b828054611b50906127ac565b90600052602060002090601f016020900481019282611b725760008555611bb9565b82601f10611b8b57805160ff1916838001178555611bb9565b82800160010185558215611bb9579182015b82811115611bb8578251825591602001919060010190611b9d565b5b509050611bc69190611bca565b5090565b5b80821115611be3576000816000905550600101611bcb565b5090565b6000611bfa611bf5846125c7565b6125a2565b905082815260208101848484011115611c1257600080fd5b611c1d84828561276a565b509392505050565b600081359050611c3481612e23565b92915050565b600081359050611c4981612e3a565b92915050565b600081359050611c5e81612e51565b92915050565b600081519050611c7381612e51565b92915050565b600082601f830112611c8a57600080fd5b8135611c9a848260208601611be7565b91505092915050565b60008083601f840112611cb557600080fd5b8235905067ffffffffffffffff811115611cce57600080fd5b602083019150836001820283011115611ce657600080fd5b9250929050565b600081359050611cfc81612e68565b92915050565b600060208284031215611d1457600080fd5b6000611d2284828501611c25565b91505092915050565b60008060408385031215611d3e57600080fd5b6000611d4c85828601611c25565b9250506020611d5d85828601611c25565b9150509250929050565b600080600060608486031215611d7c57600080fd5b6000611d8a86828701611c25565b9350506020611d9b86828701611c25565b9250506040611dac86828701611ced565b9150509250925092565b60008060008060808587031215611dcc57600080fd5b6000611dda87828801611c25565b9450506020611deb87828801611c25565b9350506040611dfc87828801611ced565b925050606085013567ffffffffffffffff811115611e1957600080fd5b611e2587828801611c79565b91505092959194509250565b60008060408385031215611e4457600080fd5b6000611e5285828601611c25565b9250506020611e6385828601611c3a565b9150509250929050565b60008060408385031215611e8057600080fd5b6000611e8e85828601611c25565b9250506020611e9f85828601611ced565b9150509250929050565b600060208284031215611ebb57600080fd5b6000611ec984828501611c4f565b91505092915050565b600060208284031215611ee457600080fd5b6000611ef284828501611c64565b91505092915050565b600060208284031215611f0d57600080fd5b6000611f1b84828501611ced565b91505092915050565b600080600060408486031215611f3957600080fd5b6000611f4786828701611ced565b935050602084013567ffffffffffffffff811115611f6457600080fd5b611f7086828701611ca3565b92509250509250925092565b611f85816126f6565b82525050565b611f9481612708565b82525050565b6000611fa5826125f8565b611faf818561260e565b9350611fbf818560208601612779565b611fc881612945565b840191505092915050565b6000611fde82612603565b611fe8818561261f565b9350611ff8818560208601612779565b61200181612945565b840191505092915050565b600061201782612603565b6120218185612630565b9350612031818560208601612779565b80840191505092915050565b600061204a60328361261f565b915061205582612956565b604082019050919050565b600061206d601c8361261f565b9150612078826129a5565b602082019050919050565b600061209060248361261f565b915061209b826129ce565b604082019050919050565b60006120b360198361261f565b91506120be82612a1d565b602082019050919050565b60006120d6602c8361261f565b91506120e182612a46565b604082019050919050565b60006120f960388361261f565b915061210482612a95565b604082019050919050565b600061211c602a8361261f565b915061212782612ae4565b604082019050919050565b600061213f60298361261f565b915061214a82612b33565b604082019050919050565b6000612162602e8361261f565b915061216d82612b82565b604082019050919050565b600061218560208361261f565b915061219082612bd1565b602082019050919050565b60006121a860318361261f565b91506121b382612bfa565b604082019050919050565b60006121cb602c8361261f565b91506121d682612c49565b604082019050919050565b60006121ee60298361261f565b91506121f982612c98565b604082019050919050565b6000612211602f8361261f565b915061221c82612ce7565b604082019050919050565b600061223460218361261f565b915061223f82612d36565b604082019050919050565b600061225760318361261f565b915061226282612d85565b604082019050919050565b600061227a60238361261f565b915061228582612dd4565b604082019050919050565b61229981612760565b82525050565b60006122ab828561200c565b91506122b7828461200c565b91508190509392505050565b60006020820190506122d86000830184611f7c565b92915050565b60006080820190506122f36000830187611f7c565b6123006020830186611f7c565b61230d6040830185612290565b818103606083015261231f8184611f9a565b905095945050505050565b600060208201905061233f6000830184611f8b565b92915050565b6000602082019050818103600083015261235f8184611fd3565b905092915050565b600060208201905081810360008301526123808161203d565b9050919050565b600060208201905081810360008301526123a081612060565b9050919050565b600060208201905081810360008301526123c081612083565b9050919050565b600060208201905081810360008301526123e0816120a6565b9050919050565b60006020820190508181036000830152612400816120c9565b9050919050565b60006020820190508181036000830152612420816120ec565b9050919050565b600060208201905081810360008301526124408161210f565b9050919050565b6000602082019050818103600083015261246081612132565b9050919050565b6000602082019050818103600083015261248081612155565b9050919050565b600060208201905081810360008301526124a081612178565b9050919050565b600060208201905081810360008301526124c08161219b565b9050919050565b600060208201905081810360008301526124e0816121be565b9050919050565b60006020820190508181036000830152612500816121e1565b9050919050565b6000602082019050818103600083015261252081612204565b9050919050565b6000602082019050818103600083015261254081612227565b9050919050565b600060208201905081810360008301526125608161224a565b9050919050565b600060208201905081810360008301526125808161226d565b9050919050565b600060208201905061259c6000830184612290565b92915050565b60006125ac6125bd565b90506125b882826127de565b919050565b6000604051905090565b600067ffffffffffffffff8211156125e2576125e1612916565b5b6125eb82612945565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061264682612760565b915061265183612760565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561268657612685612889565b5b828201905092915050565b600061269c82612760565b91506126a783612760565b9250826126b7576126b66128b8565b5b828204905092915050565b60006126cd82612760565b91506126d883612760565b9250828210156126eb576126ea612889565b5b828203905092915050565b600061270182612740565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561279757808201518184015260208101905061277c565b838111156127a6576000848401525b50505050565b600060028204905060018216806127c457607f821691505b602082108114156127d8576127d76128e7565b5b50919050565b6127e782612945565b810181811067ffffffffffffffff8211171561280657612805612916565b5b80604052505050565b600061281a82612760565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561284d5761284c612889565b5b600182019050919050565b600061286382612760565b915061286e83612760565b92508261287e5761287d6128b8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e2c816126f6565b8114612e3757600080fd5b50565b612e4381612708565b8114612e4e57600080fd5b50565b612e5a81612714565b8114612e6557600080fd5b50565b612e7181612760565b8114612e7c57600080fd5b5056fea2646970667358221220afc50bc783f130cbfa166d7c7b6cd6b846c10e8cdc885592443a8b5e9c9b237964736f6c63430008040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806377097fc81461027157806395d89b411461028d57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611ea9565b610343565b60405161012c919061232a565b60405180910390f35b61013d610425565b60405161014a9190612345565b60405180910390f35b61016d60048036038101906101689190611efb565b6104b7565b60405161017a91906122c3565b60405180910390f35b61019d60048036038101906101989190611e6d565b61053c565b005b6101a7610654565b6040516101b49190612587565b60405180910390f35b6101d760048036038101906101d29190611d67565b61065a565b005b6101f360048036038101906101ee9190611d67565b6106ba565b005b61020f600480360381019061020a9190611efb565b6106da565b005b61022b60048036038101906102269190611efb565b610762565b60405161023891906122c3565b60405180910390f35b61025b60048036038101906102569190611d02565b610814565b6040516102689190612587565b60405180910390f35b61028b60048036038101906102869190611f24565b6108cc565b005b610295610943565b6040516102a29190612345565b60405180910390f35b6102c560048036038101906102c09190611e31565b6109d5565b005b6102e160048036038101906102dc9190611db6565b610b56565b005b6102fd60048036038101906102f89190611efb565b610bb8565b60405161030a9190612345565b60405180910390f35b61032d60048036038101906103289190611d2b565b610d0a565b60405161033a919061232a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610d9e565b5b9050919050565b606060008054610434906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610460906127ac565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e08565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124c7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612527565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e74565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e74565b610d0a565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90612407565b60405180910390fd5b61064f8383610e7c565b505050565b60075481565b61066b610665610e74565b82610f35565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612547565b60405180910390fd5b6106b5838383611013565b505050565b6106d583838360405180602001604052806000815250610b56565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612567565b60405180910390fd5b61075e8261126f565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612447565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612427565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108d633846112c2565b6109248383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506112e0565b600160076000828254610937919061263b565b92505081905550505050565b606060018054610952906127ac565b80601f016020809104026020016040519081016040528092919081815260200182805461097e906127ac565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b6109dd610e74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906123c7565b60405180910390fd5b8060056000610a58610e74565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610b05610e74565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b4a919061232a565b60405180910390a35050565b610b67610b61610e74565b83610f35565b610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612547565b60405180910390fd5b610bb284848484611354565b50505050565b6060610bc382610e08565b610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906124a7565b60405180910390fd5b6000600660008481526020019081526020016000208054610c22906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e906127ac565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b505050505090506000610cac6113b0565b9050600081511415610cc2578192505050610d05565b600082511115610cf7578082604051602001610cdf92919061229f565b60405160208183030381529060405292505050610d05565b610d00846113c7565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610eef83610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4082610e08565b610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f76906123e7565b60405180910390fd5b6000610f8a83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ff957508373ffffffffffffffffffffffffffffffffffffffff16610fe1846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100a57506110098185610d0a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103382610762565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611080906124e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f0906123a7565b60405180910390fd5b61110483838361146e565b61110f600082610e7c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461115f91906126c2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b6919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127881611473565b6000600660008381526020019081526020016000208054611298906127ac565b9050146112bf576006600082815260200190815260200160002060006112be9190611b04565b5b50565b6112dc828260405180602001604052806000815250611584565b5050565b6112e982610e08565b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90612467565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061134f929190611b44565b505050565b61135f848484611013565b61136b848484846115df565b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190612367565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606113d282610e08565b611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612507565b60405180910390fd5b600061141b6113b0565b9050600081511161143b5760405180602001604052806000815250611466565b8061144584611776565b60405160200161145692919061229f565b6040516020818303038152906040525b915050919050565b505050565b600061147e82610762565b905061148c8160008461146e565b611497600083610e7c565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114e791906126c2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61158e8383611923565b61159b60008484846115df565b6115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612367565b60405180910390fd5b505050565b60006116008473ffffffffffffffffffffffffffffffffffffffff16611af1565b15611769578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611629610e74565b8786866040518563ffffffff1660e01b815260040161164b94939291906122de565b602060405180830381600087803b15801561166557600080fd5b505af192505050801561169657506040513d601f19601f820116820180604052508101906116939190611ed2565b60015b611719573d80600081146116c6576040519150601f19603f3d011682016040523d82523d6000602084013e6116cb565b606091505b50600081511415611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890612367565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061176e565b600190505b949350505050565b606060008214156117be576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061191e565b600082905060005b600082146117f05780806117d99061280f565b915050600a826117e99190612691565b91506117c6565b60008167ffffffffffffffff811115611832577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118645781602001600182028036833780820191505090505b5090505b600085146119175760018261187d91906126c2565b9150600a8561188c9190612858565b6030611898919061263b565b60f81b8183815181106118d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856119109190612691565b9450611868565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612487565b60405180910390fd5b61199c81610e08565b156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390612387565b60405180910390fd5b6119e86000838361146e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a38919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611b10906127ac565b6000825580601f10611b225750611b41565b601f016020900490600052602060002090810190611b409190611bca565b5b50565b828054611b50906127ac565b90600052602060002090601f016020900481019282611b725760008555611bb9565b82601f10611b8b57805160ff1916838001178555611bb9565b82800160010185558215611bb9579182015b82811115611bb8578251825591602001919060010190611b9d565b5b509050611bc69190611bca565b5090565b5b80821115611be3576000816000905550600101611bcb565b5090565b6000611bfa611bf5846125c7565b6125a2565b905082815260208101848484011115611c1257600080fd5b611c1d84828561276a565b509392505050565b600081359050611c3481612e23565b92915050565b600081359050611c4981612e3a565b92915050565b600081359050611c5e81612e51565b92915050565b600081519050611c7381612e51565b92915050565b600082601f830112611c8a57600080fd5b8135611c9a848260208601611be7565b91505092915050565b60008083601f840112611cb557600080fd5b8235905067ffffffffffffffff811115611cce57600080fd5b602083019150836001820283011115611ce657600080fd5b9250929050565b600081359050611cfc81612e68565b92915050565b600060208284031215611d1457600080fd5b6000611d2284828501611c25565b91505092915050565b60008060408385031215611d3e57600080fd5b6000611d4c85828601611c25565b9250506020611d5d85828601611c25565b9150509250929050565b600080600060608486031215611d7c57600080fd5b6000611d8a86828701611c25565b9350506020611d9b86828701611c25565b9250506040611dac86828701611ced565b9150509250925092565b60008060008060808587031215611dcc57600080fd5b6000611dda87828801611c25565b9450506020611deb87828801611c25565b9350506040611dfc87828801611ced565b925050606085013567ffffffffffffffff811115611e1957600080fd5b611e2587828801611c79565b91505092959194509250565b60008060408385031215611e4457600080fd5b6000611e5285828601611c25565b9250506020611e6385828601611c3a565b9150509250929050565b60008060408385031215611e8057600080fd5b6000611e8e85828601611c25565b9250506020611e9f85828601611ced565b9150509250929050565b600060208284031215611ebb57600080fd5b6000611ec984828501611c4f565b91505092915050565b600060208284031215611ee457600080fd5b6000611ef284828501611c64565b91505092915050565b600060208284031215611f0d57600080fd5b6000611f1b84828501611ced565b91505092915050565b600080600060408486031215611f3957600080fd5b6000611f4786828701611ced565b935050602084013567ffffffffffffffff811115611f6457600080fd5b611f7086828701611ca3565b92509250509250925092565b611f85816126f6565b82525050565b611f9481612708565b82525050565b6000611fa5826125f8565b611faf818561260e565b9350611fbf818560208601612779565b611fc881612945565b840191505092915050565b6000611fde82612603565b611fe8818561261f565b9350611ff8818560208601612779565b61200181612945565b840191505092915050565b600061201782612603565b6120218185612630565b9350612031818560208601612779565b80840191505092915050565b600061204a60328361261f565b915061205582612956565b604082019050919050565b600061206d601c8361261f565b9150612078826129a5565b602082019050919050565b600061209060248361261f565b915061209b826129ce565b604082019050919050565b60006120b360198361261f565b91506120be82612a1d565b602082019050919050565b60006120d6602c8361261f565b91506120e182612a46565b604082019050919050565b60006120f960388361261f565b915061210482612a95565b604082019050919050565b600061211c602a8361261f565b915061212782612ae4565b604082019050919050565b600061213f60298361261f565b915061214a82612b33565b604082019050919050565b6000612162602e8361261f565b915061216d82612b82565b604082019050919050565b600061218560208361261f565b915061219082612bd1565b602082019050919050565b60006121a860318361261f565b91506121b382612bfa565b604082019050919050565b60006121cb602c8361261f565b91506121d682612c49565b604082019050919050565b60006121ee60298361261f565b91506121f982612c98565b604082019050919050565b6000612211602f8361261f565b915061221c82612ce7565b604082019050919050565b600061223460218361261f565b915061223f82612d36565b604082019050919050565b600061225760318361261f565b915061226282612d85565b604082019050919050565b600061227a60238361261f565b915061228582612dd4565b604082019050919050565b61229981612760565b82525050565b60006122ab828561200c565b91506122b7828461200c565b91508190509392505050565b60006020820190506122d86000830184611f7c565b92915050565b60006080820190506122f36000830187611f7c565b6123006020830186611f7c565b61230d6040830185612290565b818103606083015261231f8184611f9a565b905095945050505050565b600060208201905061233f6000830184611f8b565b92915050565b6000602082019050818103600083015261235f8184611fd3565b905092915050565b600060208201905081810360008301526123808161203d565b9050919050565b600060208201905081810360008301526123a081612060565b9050919050565b600060208201905081810360008301526123c081612083565b9050919050565b600060208201905081810360008301526123e0816120a6565b9050919050565b60006020820190508181036000830152612400816120c9565b9050919050565b60006020820190508181036000830152612420816120ec565b9050919050565b600060208201905081810360008301526124408161210f565b9050919050565b6000602082019050818103600083015261246081612132565b9050919050565b6000602082019050818103600083015261248081612155565b9050919050565b600060208201905081810360008301526124a081612178565b9050919050565b600060208201905081810360008301526124c08161219b565b9050919050565b600060208201905081810360008301526124e0816121be565b9050919050565b60006020820190508181036000830152612500816121e1565b9050919050565b6000602082019050818103600083015261252081612204565b9050919050565b6000602082019050818103600083015261254081612227565b9050919050565b600060208201905081810360008301526125608161224a565b9050919050565b600060208201905081810360008301526125808161226d565b9050919050565b600060208201905061259c6000830184612290565b92915050565b60006125ac6125bd565b90506125b882826127de565b919050565b6000604051905090565b600067ffffffffffffffff8211156125e2576125e1612916565b5b6125eb82612945565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061264682612760565b915061265183612760565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561268657612685612889565b5b828201905092915050565b600061269c82612760565b91506126a783612760565b9250826126b7576126b66128b8565b5b828204905092915050565b60006126cd82612760565b91506126d883612760565b9250828210156126eb576126ea612889565b5b828203905092915050565b600061270182612740565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561279757808201518184015260208101905061277c565b838111156127a6576000848401525b50505050565b600060028204905060018216806127c457607f821691505b602082108114156127d8576127d76128e7565b5b50919050565b6127e782612945565b810181811067ffffffffffffffff8211171561280657612805612916565b5b80604052505050565b600061281a82612760565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561284d5761284c612889565b5b600182019050919050565b600061286382612760565b915061286e83612760565b92508261287e5761287d6128b8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e2c816126f6565b8114612e3757600080fd5b50565b612e4381612708565b8114612e4e57600080fd5b50565b612e5a81612714565b8114612e6557600080fd5b50565b612e7181612760565b8114612e7c57600080fd5b5056fea2646970667358221220afc50bc783f130cbfa166d7c7b6cd6b846c10e8cdc885592443a8b5e9c9b237964736f6c63430008040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 70dbda50e..cc44980d4 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -85,7 +85,7 @@ export async function baseTronHelperFactory( async mintNft(owner: string, options: MintArgs): Promise { setSigner(owner); const erc = await provider.contract(ERC721_abi, options.contract); - await erc.mint(EthBN.from(options.token.toString()), options.uri).send(); + await erc.mint(options.uri).send(); }, async balance(address: string): Promise { const balance = await provider.trx.getBalance(address); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 914e7211c..798d27741 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -48,7 +48,6 @@ export type EthNftInfo = { */ export type MintArgs = { contract: string; - token: EasyBalance; uri: string; }; @@ -123,12 +122,11 @@ export async function baseWeb3HelperFactory( }, async mintNft( owner: Signer, - { contract, token, uri }: MintArgs + { contract, uri }: MintArgs ): Promise { - const tok = EthBN.from(token.toString()); const erc721 = new Contract(contract, erc721_abi, owner); - const txm = await erc721.mint(tok, uri); + const txm = await erc721.mint(uri); await txm.wait(); }, }; From 570586d5b4baa2977890be7f68c27d0718733f11 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 4 Oct 2021 19:47:00 +0530 Subject: [PATCH 024/956] update UserNftMinter abi --- dist/fakeERC721.json | 9 ++------- src/fakeERC721.json | 9 ++------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/dist/fakeERC721.json b/dist/fakeERC721.json index 360924121..dbc2983f3 100644 --- a/dist/fakeERC721.json +++ b/dist/fakeERC721.json @@ -178,11 +178,6 @@ }, { "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, { "internalType": "string", "name": "uri", @@ -383,8 +378,8 @@ "type": "function" } ], - "bytecode": "0x608060405260006007553480156200001657600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d54000000000000000000000000000000000000000000000000000000000081525081600090805190602001906200009b929190620000bd565b508060019080519060200190620000b4929190620000bd565b505050620001d2565b828054620000cb906200016d565b90600052602060002090601f016020900481019282620000ef57600085556200013b565b82601f106200010a57805160ff19168380011785556200013b565b828001600101855582156200013b579182015b828111156200013a5782518255916020019190600101906200011d565b5b5090506200014a91906200014e565b5090565b5b80821115620001695760008160009055506001016200014f565b5090565b600060028204905060018216806200018657607f821691505b602082108114156200019d576200019c620001a3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612eb580620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806377097fc81461027157806395d89b411461028d57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611ea9565b610343565b60405161012c919061232a565b60405180910390f35b61013d610425565b60405161014a9190612345565b60405180910390f35b61016d60048036038101906101689190611efb565b6104b7565b60405161017a91906122c3565b60405180910390f35b61019d60048036038101906101989190611e6d565b61053c565b005b6101a7610654565b6040516101b49190612587565b60405180910390f35b6101d760048036038101906101d29190611d67565b61065a565b005b6101f360048036038101906101ee9190611d67565b6106ba565b005b61020f600480360381019061020a9190611efb565b6106da565b005b61022b60048036038101906102269190611efb565b610762565b60405161023891906122c3565b60405180910390f35b61025b60048036038101906102569190611d02565b610814565b6040516102689190612587565b60405180910390f35b61028b60048036038101906102869190611f24565b6108cc565b005b610295610943565b6040516102a29190612345565b60405180910390f35b6102c560048036038101906102c09190611e31565b6109d5565b005b6102e160048036038101906102dc9190611db6565b610b56565b005b6102fd60048036038101906102f89190611efb565b610bb8565b60405161030a9190612345565b60405180910390f35b61032d60048036038101906103289190611d2b565b610d0a565b60405161033a919061232a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610d9e565b5b9050919050565b606060008054610434906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610460906127ac565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e08565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124c7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612527565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e74565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e74565b610d0a565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90612407565b60405180910390fd5b61064f8383610e7c565b505050565b60075481565b61066b610665610e74565b82610f35565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612547565b60405180910390fd5b6106b5838383611013565b505050565b6106d583838360405180602001604052806000815250610b56565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612567565b60405180910390fd5b61075e8261126f565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612447565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612427565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108d633846112c2565b6109248383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506112e0565b600160076000828254610937919061263b565b92505081905550505050565b606060018054610952906127ac565b80601f016020809104026020016040519081016040528092919081815260200182805461097e906127ac565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b6109dd610e74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906123c7565b60405180910390fd5b8060056000610a58610e74565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610b05610e74565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b4a919061232a565b60405180910390a35050565b610b67610b61610e74565b83610f35565b610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612547565b60405180910390fd5b610bb284848484611354565b50505050565b6060610bc382610e08565b610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906124a7565b60405180910390fd5b6000600660008481526020019081526020016000208054610c22906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e906127ac565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b505050505090506000610cac6113b0565b9050600081511415610cc2578192505050610d05565b600082511115610cf7578082604051602001610cdf92919061229f565b60405160208183030381529060405292505050610d05565b610d00846113c7565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610eef83610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4082610e08565b610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f76906123e7565b60405180910390fd5b6000610f8a83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ff957508373ffffffffffffffffffffffffffffffffffffffff16610fe1846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100a57506110098185610d0a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103382610762565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611080906124e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f0906123a7565b60405180910390fd5b61110483838361146e565b61110f600082610e7c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461115f91906126c2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b6919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127881611473565b6000600660008381526020019081526020016000208054611298906127ac565b9050146112bf576006600082815260200190815260200160002060006112be9190611b04565b5b50565b6112dc828260405180602001604052806000815250611584565b5050565b6112e982610e08565b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90612467565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061134f929190611b44565b505050565b61135f848484611013565b61136b848484846115df565b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190612367565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606113d282610e08565b611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612507565b60405180910390fd5b600061141b6113b0565b9050600081511161143b5760405180602001604052806000815250611466565b8061144584611776565b60405160200161145692919061229f565b6040516020818303038152906040525b915050919050565b505050565b600061147e82610762565b905061148c8160008461146e565b611497600083610e7c565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114e791906126c2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61158e8383611923565b61159b60008484846115df565b6115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612367565b60405180910390fd5b505050565b60006116008473ffffffffffffffffffffffffffffffffffffffff16611af1565b15611769578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611629610e74565b8786866040518563ffffffff1660e01b815260040161164b94939291906122de565b602060405180830381600087803b15801561166557600080fd5b505af192505050801561169657506040513d601f19601f820116820180604052508101906116939190611ed2565b60015b611719573d80600081146116c6576040519150601f19603f3d011682016040523d82523d6000602084013e6116cb565b606091505b50600081511415611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890612367565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061176e565b600190505b949350505050565b606060008214156117be576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061191e565b600082905060005b600082146117f05780806117d99061280f565b915050600a826117e99190612691565b91506117c6565b60008167ffffffffffffffff811115611832577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118645781602001600182028036833780820191505090505b5090505b600085146119175760018261187d91906126c2565b9150600a8561188c9190612858565b6030611898919061263b565b60f81b8183815181106118d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856119109190612691565b9450611868565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612487565b60405180910390fd5b61199c81610e08565b156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390612387565b60405180910390fd5b6119e86000838361146e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a38919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611b10906127ac565b6000825580601f10611b225750611b41565b601f016020900490600052602060002090810190611b409190611bca565b5b50565b828054611b50906127ac565b90600052602060002090601f016020900481019282611b725760008555611bb9565b82601f10611b8b57805160ff1916838001178555611bb9565b82800160010185558215611bb9579182015b82811115611bb8578251825591602001919060010190611b9d565b5b509050611bc69190611bca565b5090565b5b80821115611be3576000816000905550600101611bcb565b5090565b6000611bfa611bf5846125c7565b6125a2565b905082815260208101848484011115611c1257600080fd5b611c1d84828561276a565b509392505050565b600081359050611c3481612e23565b92915050565b600081359050611c4981612e3a565b92915050565b600081359050611c5e81612e51565b92915050565b600081519050611c7381612e51565b92915050565b600082601f830112611c8a57600080fd5b8135611c9a848260208601611be7565b91505092915050565b60008083601f840112611cb557600080fd5b8235905067ffffffffffffffff811115611cce57600080fd5b602083019150836001820283011115611ce657600080fd5b9250929050565b600081359050611cfc81612e68565b92915050565b600060208284031215611d1457600080fd5b6000611d2284828501611c25565b91505092915050565b60008060408385031215611d3e57600080fd5b6000611d4c85828601611c25565b9250506020611d5d85828601611c25565b9150509250929050565b600080600060608486031215611d7c57600080fd5b6000611d8a86828701611c25565b9350506020611d9b86828701611c25565b9250506040611dac86828701611ced565b9150509250925092565b60008060008060808587031215611dcc57600080fd5b6000611dda87828801611c25565b9450506020611deb87828801611c25565b9350506040611dfc87828801611ced565b925050606085013567ffffffffffffffff811115611e1957600080fd5b611e2587828801611c79565b91505092959194509250565b60008060408385031215611e4457600080fd5b6000611e5285828601611c25565b9250506020611e6385828601611c3a565b9150509250929050565b60008060408385031215611e8057600080fd5b6000611e8e85828601611c25565b9250506020611e9f85828601611ced565b9150509250929050565b600060208284031215611ebb57600080fd5b6000611ec984828501611c4f565b91505092915050565b600060208284031215611ee457600080fd5b6000611ef284828501611c64565b91505092915050565b600060208284031215611f0d57600080fd5b6000611f1b84828501611ced565b91505092915050565b600080600060408486031215611f3957600080fd5b6000611f4786828701611ced565b935050602084013567ffffffffffffffff811115611f6457600080fd5b611f7086828701611ca3565b92509250509250925092565b611f85816126f6565b82525050565b611f9481612708565b82525050565b6000611fa5826125f8565b611faf818561260e565b9350611fbf818560208601612779565b611fc881612945565b840191505092915050565b6000611fde82612603565b611fe8818561261f565b9350611ff8818560208601612779565b61200181612945565b840191505092915050565b600061201782612603565b6120218185612630565b9350612031818560208601612779565b80840191505092915050565b600061204a60328361261f565b915061205582612956565b604082019050919050565b600061206d601c8361261f565b9150612078826129a5565b602082019050919050565b600061209060248361261f565b915061209b826129ce565b604082019050919050565b60006120b360198361261f565b91506120be82612a1d565b602082019050919050565b60006120d6602c8361261f565b91506120e182612a46565b604082019050919050565b60006120f960388361261f565b915061210482612a95565b604082019050919050565b600061211c602a8361261f565b915061212782612ae4565b604082019050919050565b600061213f60298361261f565b915061214a82612b33565b604082019050919050565b6000612162602e8361261f565b915061216d82612b82565b604082019050919050565b600061218560208361261f565b915061219082612bd1565b602082019050919050565b60006121a860318361261f565b91506121b382612bfa565b604082019050919050565b60006121cb602c8361261f565b91506121d682612c49565b604082019050919050565b60006121ee60298361261f565b91506121f982612c98565b604082019050919050565b6000612211602f8361261f565b915061221c82612ce7565b604082019050919050565b600061223460218361261f565b915061223f82612d36565b604082019050919050565b600061225760318361261f565b915061226282612d85565b604082019050919050565b600061227a60238361261f565b915061228582612dd4565b604082019050919050565b61229981612760565b82525050565b60006122ab828561200c565b91506122b7828461200c565b91508190509392505050565b60006020820190506122d86000830184611f7c565b92915050565b60006080820190506122f36000830187611f7c565b6123006020830186611f7c565b61230d6040830185612290565b818103606083015261231f8184611f9a565b905095945050505050565b600060208201905061233f6000830184611f8b565b92915050565b6000602082019050818103600083015261235f8184611fd3565b905092915050565b600060208201905081810360008301526123808161203d565b9050919050565b600060208201905081810360008301526123a081612060565b9050919050565b600060208201905081810360008301526123c081612083565b9050919050565b600060208201905081810360008301526123e0816120a6565b9050919050565b60006020820190508181036000830152612400816120c9565b9050919050565b60006020820190508181036000830152612420816120ec565b9050919050565b600060208201905081810360008301526124408161210f565b9050919050565b6000602082019050818103600083015261246081612132565b9050919050565b6000602082019050818103600083015261248081612155565b9050919050565b600060208201905081810360008301526124a081612178565b9050919050565b600060208201905081810360008301526124c08161219b565b9050919050565b600060208201905081810360008301526124e0816121be565b9050919050565b60006020820190508181036000830152612500816121e1565b9050919050565b6000602082019050818103600083015261252081612204565b9050919050565b6000602082019050818103600083015261254081612227565b9050919050565b600060208201905081810360008301526125608161224a565b9050919050565b600060208201905081810360008301526125808161226d565b9050919050565b600060208201905061259c6000830184612290565b92915050565b60006125ac6125bd565b90506125b882826127de565b919050565b6000604051905090565b600067ffffffffffffffff8211156125e2576125e1612916565b5b6125eb82612945565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061264682612760565b915061265183612760565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561268657612685612889565b5b828201905092915050565b600061269c82612760565b91506126a783612760565b9250826126b7576126b66128b8565b5b828204905092915050565b60006126cd82612760565b91506126d883612760565b9250828210156126eb576126ea612889565b5b828203905092915050565b600061270182612740565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561279757808201518184015260208101905061277c565b838111156127a6576000848401525b50505050565b600060028204905060018216806127c457607f821691505b602082108114156127d8576127d76128e7565b5b50919050565b6127e782612945565b810181811067ffffffffffffffff8211171561280657612805612916565b5b80604052505050565b600061281a82612760565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561284d5761284c612889565b5b600182019050919050565b600061286382612760565b915061286e83612760565b92508261287e5761287d6128b8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e2c816126f6565b8114612e3757600080fd5b50565b612e4381612708565b8114612e4e57600080fd5b50565b612e5a81612714565b8114612e6557600080fd5b50565b612e7181612760565b8114612e7c57600080fd5b5056fea2646970667358221220afc50bc783f130cbfa166d7c7b6cd6b846c10e8cdc885592443a8b5e9c9b237964736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806377097fc81461027157806395d89b411461028d57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611ea9565b610343565b60405161012c919061232a565b60405180910390f35b61013d610425565b60405161014a9190612345565b60405180910390f35b61016d60048036038101906101689190611efb565b6104b7565b60405161017a91906122c3565b60405180910390f35b61019d60048036038101906101989190611e6d565b61053c565b005b6101a7610654565b6040516101b49190612587565b60405180910390f35b6101d760048036038101906101d29190611d67565b61065a565b005b6101f360048036038101906101ee9190611d67565b6106ba565b005b61020f600480360381019061020a9190611efb565b6106da565b005b61022b60048036038101906102269190611efb565b610762565b60405161023891906122c3565b60405180910390f35b61025b60048036038101906102569190611d02565b610814565b6040516102689190612587565b60405180910390f35b61028b60048036038101906102869190611f24565b6108cc565b005b610295610943565b6040516102a29190612345565b60405180910390f35b6102c560048036038101906102c09190611e31565b6109d5565b005b6102e160048036038101906102dc9190611db6565b610b56565b005b6102fd60048036038101906102f89190611efb565b610bb8565b60405161030a9190612345565b60405180910390f35b61032d60048036038101906103289190611d2b565b610d0a565b60405161033a919061232a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610d9e565b5b9050919050565b606060008054610434906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610460906127ac565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e08565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124c7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612527565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e74565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e74565b610d0a565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90612407565b60405180910390fd5b61064f8383610e7c565b505050565b60075481565b61066b610665610e74565b82610f35565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612547565b60405180910390fd5b6106b5838383611013565b505050565b6106d583838360405180602001604052806000815250610b56565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612567565b60405180910390fd5b61075e8261126f565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612447565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612427565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108d633846112c2565b6109248383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506112e0565b600160076000828254610937919061263b565b92505081905550505050565b606060018054610952906127ac565b80601f016020809104026020016040519081016040528092919081815260200182805461097e906127ac565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b6109dd610e74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906123c7565b60405180910390fd5b8060056000610a58610e74565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610b05610e74565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b4a919061232a565b60405180910390a35050565b610b67610b61610e74565b83610f35565b610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612547565b60405180910390fd5b610bb284848484611354565b50505050565b6060610bc382610e08565b610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906124a7565b60405180910390fd5b6000600660008481526020019081526020016000208054610c22906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e906127ac565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b505050505090506000610cac6113b0565b9050600081511415610cc2578192505050610d05565b600082511115610cf7578082604051602001610cdf92919061229f565b60405160208183030381529060405292505050610d05565b610d00846113c7565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610eef83610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4082610e08565b610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f76906123e7565b60405180910390fd5b6000610f8a83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ff957508373ffffffffffffffffffffffffffffffffffffffff16610fe1846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100a57506110098185610d0a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103382610762565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611080906124e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f0906123a7565b60405180910390fd5b61110483838361146e565b61110f600082610e7c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461115f91906126c2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b6919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127881611473565b6000600660008381526020019081526020016000208054611298906127ac565b9050146112bf576006600082815260200190815260200160002060006112be9190611b04565b5b50565b6112dc828260405180602001604052806000815250611584565b5050565b6112e982610e08565b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90612467565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061134f929190611b44565b505050565b61135f848484611013565b61136b848484846115df565b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190612367565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606113d282610e08565b611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612507565b60405180910390fd5b600061141b6113b0565b9050600081511161143b5760405180602001604052806000815250611466565b8061144584611776565b60405160200161145692919061229f565b6040516020818303038152906040525b915050919050565b505050565b600061147e82610762565b905061148c8160008461146e565b611497600083610e7c565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114e791906126c2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61158e8383611923565b61159b60008484846115df565b6115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612367565b60405180910390fd5b505050565b60006116008473ffffffffffffffffffffffffffffffffffffffff16611af1565b15611769578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611629610e74565b8786866040518563ffffffff1660e01b815260040161164b94939291906122de565b602060405180830381600087803b15801561166557600080fd5b505af192505050801561169657506040513d601f19601f820116820180604052508101906116939190611ed2565b60015b611719573d80600081146116c6576040519150601f19603f3d011682016040523d82523d6000602084013e6116cb565b606091505b50600081511415611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890612367565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061176e565b600190505b949350505050565b606060008214156117be576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061191e565b600082905060005b600082146117f05780806117d99061280f565b915050600a826117e99190612691565b91506117c6565b60008167ffffffffffffffff811115611832577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118645781602001600182028036833780820191505090505b5090505b600085146119175760018261187d91906126c2565b9150600a8561188c9190612858565b6030611898919061263b565b60f81b8183815181106118d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856119109190612691565b9450611868565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612487565b60405180910390fd5b61199c81610e08565b156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390612387565b60405180910390fd5b6119e86000838361146e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a38919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611b10906127ac565b6000825580601f10611b225750611b41565b601f016020900490600052602060002090810190611b409190611bca565b5b50565b828054611b50906127ac565b90600052602060002090601f016020900481019282611b725760008555611bb9565b82601f10611b8b57805160ff1916838001178555611bb9565b82800160010185558215611bb9579182015b82811115611bb8578251825591602001919060010190611b9d565b5b509050611bc69190611bca565b5090565b5b80821115611be3576000816000905550600101611bcb565b5090565b6000611bfa611bf5846125c7565b6125a2565b905082815260208101848484011115611c1257600080fd5b611c1d84828561276a565b509392505050565b600081359050611c3481612e23565b92915050565b600081359050611c4981612e3a565b92915050565b600081359050611c5e81612e51565b92915050565b600081519050611c7381612e51565b92915050565b600082601f830112611c8a57600080fd5b8135611c9a848260208601611be7565b91505092915050565b60008083601f840112611cb557600080fd5b8235905067ffffffffffffffff811115611cce57600080fd5b602083019150836001820283011115611ce657600080fd5b9250929050565b600081359050611cfc81612e68565b92915050565b600060208284031215611d1457600080fd5b6000611d2284828501611c25565b91505092915050565b60008060408385031215611d3e57600080fd5b6000611d4c85828601611c25565b9250506020611d5d85828601611c25565b9150509250929050565b600080600060608486031215611d7c57600080fd5b6000611d8a86828701611c25565b9350506020611d9b86828701611c25565b9250506040611dac86828701611ced565b9150509250925092565b60008060008060808587031215611dcc57600080fd5b6000611dda87828801611c25565b9450506020611deb87828801611c25565b9350506040611dfc87828801611ced565b925050606085013567ffffffffffffffff811115611e1957600080fd5b611e2587828801611c79565b91505092959194509250565b60008060408385031215611e4457600080fd5b6000611e5285828601611c25565b9250506020611e6385828601611c3a565b9150509250929050565b60008060408385031215611e8057600080fd5b6000611e8e85828601611c25565b9250506020611e9f85828601611ced565b9150509250929050565b600060208284031215611ebb57600080fd5b6000611ec984828501611c4f565b91505092915050565b600060208284031215611ee457600080fd5b6000611ef284828501611c64565b91505092915050565b600060208284031215611f0d57600080fd5b6000611f1b84828501611ced565b91505092915050565b600080600060408486031215611f3957600080fd5b6000611f4786828701611ced565b935050602084013567ffffffffffffffff811115611f6457600080fd5b611f7086828701611ca3565b92509250509250925092565b611f85816126f6565b82525050565b611f9481612708565b82525050565b6000611fa5826125f8565b611faf818561260e565b9350611fbf818560208601612779565b611fc881612945565b840191505092915050565b6000611fde82612603565b611fe8818561261f565b9350611ff8818560208601612779565b61200181612945565b840191505092915050565b600061201782612603565b6120218185612630565b9350612031818560208601612779565b80840191505092915050565b600061204a60328361261f565b915061205582612956565b604082019050919050565b600061206d601c8361261f565b9150612078826129a5565b602082019050919050565b600061209060248361261f565b915061209b826129ce565b604082019050919050565b60006120b360198361261f565b91506120be82612a1d565b602082019050919050565b60006120d6602c8361261f565b91506120e182612a46565b604082019050919050565b60006120f960388361261f565b915061210482612a95565b604082019050919050565b600061211c602a8361261f565b915061212782612ae4565b604082019050919050565b600061213f60298361261f565b915061214a82612b33565b604082019050919050565b6000612162602e8361261f565b915061216d82612b82565b604082019050919050565b600061218560208361261f565b915061219082612bd1565b602082019050919050565b60006121a860318361261f565b91506121b382612bfa565b604082019050919050565b60006121cb602c8361261f565b91506121d682612c49565b604082019050919050565b60006121ee60298361261f565b91506121f982612c98565b604082019050919050565b6000612211602f8361261f565b915061221c82612ce7565b604082019050919050565b600061223460218361261f565b915061223f82612d36565b604082019050919050565b600061225760318361261f565b915061226282612d85565b604082019050919050565b600061227a60238361261f565b915061228582612dd4565b604082019050919050565b61229981612760565b82525050565b60006122ab828561200c565b91506122b7828461200c565b91508190509392505050565b60006020820190506122d86000830184611f7c565b92915050565b60006080820190506122f36000830187611f7c565b6123006020830186611f7c565b61230d6040830185612290565b818103606083015261231f8184611f9a565b905095945050505050565b600060208201905061233f6000830184611f8b565b92915050565b6000602082019050818103600083015261235f8184611fd3565b905092915050565b600060208201905081810360008301526123808161203d565b9050919050565b600060208201905081810360008301526123a081612060565b9050919050565b600060208201905081810360008301526123c081612083565b9050919050565b600060208201905081810360008301526123e0816120a6565b9050919050565b60006020820190508181036000830152612400816120c9565b9050919050565b60006020820190508181036000830152612420816120ec565b9050919050565b600060208201905081810360008301526124408161210f565b9050919050565b6000602082019050818103600083015261246081612132565b9050919050565b6000602082019050818103600083015261248081612155565b9050919050565b600060208201905081810360008301526124a081612178565b9050919050565b600060208201905081810360008301526124c08161219b565b9050919050565b600060208201905081810360008301526124e0816121be565b9050919050565b60006020820190508181036000830152612500816121e1565b9050919050565b6000602082019050818103600083015261252081612204565b9050919050565b6000602082019050818103600083015261254081612227565b9050919050565b600060208201905081810360008301526125608161224a565b9050919050565b600060208201905081810360008301526125808161226d565b9050919050565b600060208201905061259c6000830184612290565b92915050565b60006125ac6125bd565b90506125b882826127de565b919050565b6000604051905090565b600067ffffffffffffffff8211156125e2576125e1612916565b5b6125eb82612945565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061264682612760565b915061265183612760565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561268657612685612889565b5b828201905092915050565b600061269c82612760565b91506126a783612760565b9250826126b7576126b66128b8565b5b828204905092915050565b60006126cd82612760565b91506126d883612760565b9250828210156126eb576126ea612889565b5b828203905092915050565b600061270182612740565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561279757808201518184015260208101905061277c565b838111156127a6576000848401525b50505050565b600060028204905060018216806127c457607f821691505b602082108114156127d8576127d76128e7565b5b50919050565b6127e782612945565b810181811067ffffffffffffffff8211171561280657612805612916565b5b80604052505050565b600061281a82612760565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561284d5761284c612889565b5b600182019050919050565b600061286382612760565b915061286e83612760565b92508261287e5761287d6128b8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e2c816126f6565b8114612e3757600080fd5b50565b612e4381612708565b8114612e4e57600080fd5b50565b612e5a81612714565b8114612e6557600080fd5b50565b612e7181612760565b8114612e7c57600080fd5b5056fea2646970667358221220afc50bc783f130cbfa166d7c7b6cd6b846c10e8cdc885592443a8b5e9c9b237964736f6c63430008040033", + "bytecode": "0x608060405260006007553480156200001657600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d54000000000000000000000000000000000000000000000000000000000081525081600090805190602001906200009b929190620000bd565b508060019080519060200190620000b4929190620000bd565b505050620001d2565b828054620000cb906200016d565b90600052602060002090601f016020900481019282620000ef57600085556200013b565b82601f106200010a57805160ff19168380011785556200013b565b828001600101855582156200013b579182015b828111156200013a5782518255916020019190600101906200011d565b5b5090506200014a91906200014e565b5090565b5b80821115620001695760008160009055506001016200014f565b5090565b600060028204905060018216806200018657607f821691505b602082108114156200019d576200019c620001a3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612ea580620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde146102ab578063c87b56dd146102c7578063d85d3d27146102f7578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806395d89b4114610271578063a22cb4651461028f57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611eac565b610343565b60405161012c919061231a565b60405180910390f35b61013d610425565b60405161014a9190612335565b60405180910390f35b61016d60048036038101906101689190611f43565b6104b7565b60405161017a91906122b3565b60405180910390f35b61019d60048036038101906101989190611e70565b61053c565b005b6101a7610654565b6040516101b49190612577565b60405180910390f35b6101d760048036038101906101d29190611d6a565b61065a565b005b6101f360048036038101906101ee9190611d6a565b6106ba565b005b61020f600480360381019061020a9190611f43565b6106da565b005b61022b60048036038101906102269190611f43565b610762565b60405161023891906122b3565b60405180910390f35b61025b60048036038101906102569190611d05565b610814565b6040516102689190612577565b60405180910390f35b6102796108cc565b6040516102869190612335565b60405180910390f35b6102a960048036038101906102a49190611e34565b61095e565b005b6102c560048036038101906102c09190611db9565b610adf565b005b6102e160048036038101906102dc9190611f43565b610b41565b6040516102ee9190612335565b60405180910390f35b610311600480360381019061030c9190611efe565b610c93565b005b61032d60048036038101906103289190611d2e565b610d0d565b60405161033a919061231a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610da1565b5b9050919050565b6060600080546104349061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546104609061279c565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e0b565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124b7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612517565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e77565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e77565b610d0d565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c906123f7565b60405180910390fd5b61064f8383610e7f565b505050565b60075481565b61066b610665610e77565b82610f38565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612537565b60405180910390fd5b6106b5838383611016565b505050565b6106d583838360405180602001604052806000815250610adf565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612557565b60405180910390fd5b61075e82611272565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612437565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612417565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546108db9061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546109079061279c565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050905090565b610966610e77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906123b7565b60405180910390fd5b80600560006109e1610e77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061231a565b60405180910390a35050565b610af0610aea610e77565b83610f38565b610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612537565b60405180910390fd5b610b3b848484846112c5565b50505050565b6060610b4c82610e0b565b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612497565b60405180910390fd5b6000600660008481526020019081526020016000208054610bab9061279c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd79061279c565b8015610c245780601f10610bf957610100808354040283529160200191610c24565b820191906000526020600020905b815481529060010190602001808311610c0757829003601f168201915b505050505090506000610c35611321565b9050600081511415610c4b578192505050610c8e565b600082511115610c80578082604051602001610c6892919061228f565b60405160208183030381529060405292505050610c8e565b610c8984611338565b925050505b919050565b610c9f336007546113df565b610cef60075483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506113fd565b600160076000828254610d02919061262b565b925050819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610ef283610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4382610e0b565b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906123d7565b60405180910390fd5b6000610f8d83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ffc57508373ffffffffffffffffffffffffffffffffffffffff16610fe4846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100d575061100c8185610d0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103682610762565b73ffffffffffffffffffffffffffffffffffffffff161461108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612397565b60405180910390fd5b611107838383611471565b611112600082610e7f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461116291906126b2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b9919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127b81611476565b600060066000838152602001908152602001600020805461129b9061279c565b9050146112c2576006600082815260200190815260200160002060006112c19190611b07565b5b50565b6112d0848484611016565b6112dc84848484611587565b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612357565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061134382610e0b565b611382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611379906124f7565b60405180910390fd5b600061138c611321565b905060008151116113ac57604051806020016040528060008152506113d7565b806113b68461171e565b6040516020016113c792919061228f565b6040516020818303038152906040525b915050919050565b6113f98282604051806020016040528060008152506118cb565b5050565b61140682610e0b565b611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612457565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061146c929190611b47565b505050565b505050565b600061148182610762565b905061148f81600084611471565b61149a600083610e7f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114ea91906126b2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006115a88473ffffffffffffffffffffffffffffffffffffffff16611926565b15611711578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026115d1610e77565b8786866040518563ffffffff1660e01b81526004016115f394939291906122ce565b602060405180830381600087803b15801561160d57600080fd5b505af192505050801561163e57506040513d601f19601f8201168201806040525081019061163b9190611ed5565b60015b6116c1573d806000811461166e576040519150601f19603f3d011682016040523d82523d6000602084013e611673565b606091505b506000815114156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612357565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611716565b600190505b949350505050565b60606000821415611766576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506118c6565b600082905060005b60008214611798578080611781906127ff565b915050600a826117919190612681565b915061176e565b60008167ffffffffffffffff8111156117da577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561180c5781602001600182028036833780820191505090505b5090505b600085146118bf5760018261182591906126b2565b9150600a856118349190612848565b6030611840919061262b565b60f81b81838151811061187c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856118b89190612681565b9450611810565b8093505050505b919050565b6118d58383611939565b6118e26000848484611587565b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612357565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612477565b60405180910390fd5b6119b281610e0b565b156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990612377565b60405180910390fd5b6119fe60008383611471565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a4e919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b508054611b139061279c565b6000825580601f10611b255750611b44565b601f016020900490600052602060002090810190611b439190611bcd565b5b50565b828054611b539061279c565b90600052602060002090601f016020900481019282611b755760008555611bbc565b82601f10611b8e57805160ff1916838001178555611bbc565b82800160010185558215611bbc579182015b82811115611bbb578251825591602001919060010190611ba0565b5b509050611bc99190611bcd565b5090565b5b80821115611be6576000816000905550600101611bce565b5090565b6000611bfd611bf8846125b7565b612592565b905082815260208101848484011115611c1557600080fd5b611c2084828561275a565b509392505050565b600081359050611c3781612e13565b92915050565b600081359050611c4c81612e2a565b92915050565b600081359050611c6181612e41565b92915050565b600081519050611c7681612e41565b92915050565b600082601f830112611c8d57600080fd5b8135611c9d848260208601611bea565b91505092915050565b60008083601f840112611cb857600080fd5b8235905067ffffffffffffffff811115611cd157600080fd5b602083019150836001820283011115611ce957600080fd5b9250929050565b600081359050611cff81612e58565b92915050565b600060208284031215611d1757600080fd5b6000611d2584828501611c28565b91505092915050565b60008060408385031215611d4157600080fd5b6000611d4f85828601611c28565b9250506020611d6085828601611c28565b9150509250929050565b600080600060608486031215611d7f57600080fd5b6000611d8d86828701611c28565b9350506020611d9e86828701611c28565b9250506040611daf86828701611cf0565b9150509250925092565b60008060008060808587031215611dcf57600080fd5b6000611ddd87828801611c28565b9450506020611dee87828801611c28565b9350506040611dff87828801611cf0565b925050606085013567ffffffffffffffff811115611e1c57600080fd5b611e2887828801611c7c565b91505092959194509250565b60008060408385031215611e4757600080fd5b6000611e5585828601611c28565b9250506020611e6685828601611c3d565b9150509250929050565b60008060408385031215611e8357600080fd5b6000611e9185828601611c28565b9250506020611ea285828601611cf0565b9150509250929050565b600060208284031215611ebe57600080fd5b6000611ecc84828501611c52565b91505092915050565b600060208284031215611ee757600080fd5b6000611ef584828501611c67565b91505092915050565b60008060208385031215611f1157600080fd5b600083013567ffffffffffffffff811115611f2b57600080fd5b611f3785828601611ca6565b92509250509250929050565b600060208284031215611f5557600080fd5b6000611f6384828501611cf0565b91505092915050565b611f75816126e6565b82525050565b611f84816126f8565b82525050565b6000611f95826125e8565b611f9f81856125fe565b9350611faf818560208601612769565b611fb881612935565b840191505092915050565b6000611fce826125f3565b611fd8818561260f565b9350611fe8818560208601612769565b611ff181612935565b840191505092915050565b6000612007826125f3565b6120118185612620565b9350612021818560208601612769565b80840191505092915050565b600061203a60328361260f565b915061204582612946565b604082019050919050565b600061205d601c8361260f565b915061206882612995565b602082019050919050565b600061208060248361260f565b915061208b826129be565b604082019050919050565b60006120a360198361260f565b91506120ae82612a0d565b602082019050919050565b60006120c6602c8361260f565b91506120d182612a36565b604082019050919050565b60006120e960388361260f565b91506120f482612a85565b604082019050919050565b600061210c602a8361260f565b915061211782612ad4565b604082019050919050565b600061212f60298361260f565b915061213a82612b23565b604082019050919050565b6000612152602e8361260f565b915061215d82612b72565b604082019050919050565b600061217560208361260f565b915061218082612bc1565b602082019050919050565b600061219860318361260f565b91506121a382612bea565b604082019050919050565b60006121bb602c8361260f565b91506121c682612c39565b604082019050919050565b60006121de60298361260f565b91506121e982612c88565b604082019050919050565b6000612201602f8361260f565b915061220c82612cd7565b604082019050919050565b600061222460218361260f565b915061222f82612d26565b604082019050919050565b600061224760318361260f565b915061225282612d75565b604082019050919050565b600061226a60238361260f565b915061227582612dc4565b604082019050919050565b61228981612750565b82525050565b600061229b8285611ffc565b91506122a78284611ffc565b91508190509392505050565b60006020820190506122c86000830184611f6c565b92915050565b60006080820190506122e36000830187611f6c565b6122f06020830186611f6c565b6122fd6040830185612280565b818103606083015261230f8184611f8a565b905095945050505050565b600060208201905061232f6000830184611f7b565b92915050565b6000602082019050818103600083015261234f8184611fc3565b905092915050565b600060208201905081810360008301526123708161202d565b9050919050565b6000602082019050818103600083015261239081612050565b9050919050565b600060208201905081810360008301526123b081612073565b9050919050565b600060208201905081810360008301526123d081612096565b9050919050565b600060208201905081810360008301526123f0816120b9565b9050919050565b60006020820190508181036000830152612410816120dc565b9050919050565b60006020820190508181036000830152612430816120ff565b9050919050565b6000602082019050818103600083015261245081612122565b9050919050565b6000602082019050818103600083015261247081612145565b9050919050565b6000602082019050818103600083015261249081612168565b9050919050565b600060208201905081810360008301526124b08161218b565b9050919050565b600060208201905081810360008301526124d0816121ae565b9050919050565b600060208201905081810360008301526124f0816121d1565b9050919050565b60006020820190508181036000830152612510816121f4565b9050919050565b6000602082019050818103600083015261253081612217565b9050919050565b600060208201905081810360008301526125508161223a565b9050919050565b600060208201905081810360008301526125708161225d565b9050919050565b600060208201905061258c6000830184612280565b92915050565b600061259c6125ad565b90506125a882826127ce565b919050565b6000604051905090565b600067ffffffffffffffff8211156125d2576125d1612906565b5b6125db82612935565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061263682612750565b915061264183612750565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561267657612675612879565b5b828201905092915050565b600061268c82612750565b915061269783612750565b9250826126a7576126a66128a8565b5b828204905092915050565b60006126bd82612750565b91506126c883612750565b9250828210156126db576126da612879565b5b828203905092915050565b60006126f182612730565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561278757808201518184015260208101905061276c565b83811115612796576000848401525b50505050565b600060028204905060018216806127b457607f821691505b602082108114156127c8576127c76128d7565b5b50919050565b6127d782612935565b810181811067ffffffffffffffff821117156127f6576127f5612906565b5b80604052505050565b600061280a82612750565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283d5761283c612879565b5b600182019050919050565b600061285382612750565b915061285e83612750565b92508261286e5761286d6128a8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e1c816126e6565b8114612e2757600080fd5b50565b612e33816126f8565b8114612e3e57600080fd5b50565b612e4a81612704565b8114612e5557600080fd5b50565b612e6181612750565b8114612e6c57600080fd5b5056fea2646970667358221220450c170b147f23ef2e7d9ba5dd576873827cdc58eb81e48dc3e22d0d7ebc1f2664736f6c63430008040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde146102ab578063c87b56dd146102c7578063d85d3d27146102f7578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806395d89b4114610271578063a22cb4651461028f57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611eac565b610343565b60405161012c919061231a565b60405180910390f35b61013d610425565b60405161014a9190612335565b60405180910390f35b61016d60048036038101906101689190611f43565b6104b7565b60405161017a91906122b3565b60405180910390f35b61019d60048036038101906101989190611e70565b61053c565b005b6101a7610654565b6040516101b49190612577565b60405180910390f35b6101d760048036038101906101d29190611d6a565b61065a565b005b6101f360048036038101906101ee9190611d6a565b6106ba565b005b61020f600480360381019061020a9190611f43565b6106da565b005b61022b60048036038101906102269190611f43565b610762565b60405161023891906122b3565b60405180910390f35b61025b60048036038101906102569190611d05565b610814565b6040516102689190612577565b60405180910390f35b6102796108cc565b6040516102869190612335565b60405180910390f35b6102a960048036038101906102a49190611e34565b61095e565b005b6102c560048036038101906102c09190611db9565b610adf565b005b6102e160048036038101906102dc9190611f43565b610b41565b6040516102ee9190612335565b60405180910390f35b610311600480360381019061030c9190611efe565b610c93565b005b61032d60048036038101906103289190611d2e565b610d0d565b60405161033a919061231a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610da1565b5b9050919050565b6060600080546104349061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546104609061279c565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e0b565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124b7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612517565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e77565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e77565b610d0d565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c906123f7565b60405180910390fd5b61064f8383610e7f565b505050565b60075481565b61066b610665610e77565b82610f38565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612537565b60405180910390fd5b6106b5838383611016565b505050565b6106d583838360405180602001604052806000815250610adf565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612557565b60405180910390fd5b61075e82611272565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612437565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612417565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546108db9061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546109079061279c565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050905090565b610966610e77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906123b7565b60405180910390fd5b80600560006109e1610e77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061231a565b60405180910390a35050565b610af0610aea610e77565b83610f38565b610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612537565b60405180910390fd5b610b3b848484846112c5565b50505050565b6060610b4c82610e0b565b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612497565b60405180910390fd5b6000600660008481526020019081526020016000208054610bab9061279c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd79061279c565b8015610c245780601f10610bf957610100808354040283529160200191610c24565b820191906000526020600020905b815481529060010190602001808311610c0757829003601f168201915b505050505090506000610c35611321565b9050600081511415610c4b578192505050610c8e565b600082511115610c80578082604051602001610c6892919061228f565b60405160208183030381529060405292505050610c8e565b610c8984611338565b925050505b919050565b610c9f336007546113df565b610cef60075483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506113fd565b600160076000828254610d02919061262b565b925050819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610ef283610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4382610e0b565b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906123d7565b60405180910390fd5b6000610f8d83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ffc57508373ffffffffffffffffffffffffffffffffffffffff16610fe4846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100d575061100c8185610d0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103682610762565b73ffffffffffffffffffffffffffffffffffffffff161461108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612397565b60405180910390fd5b611107838383611471565b611112600082610e7f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461116291906126b2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b9919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127b81611476565b600060066000838152602001908152602001600020805461129b9061279c565b9050146112c2576006600082815260200190815260200160002060006112c19190611b07565b5b50565b6112d0848484611016565b6112dc84848484611587565b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612357565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061134382610e0b565b611382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611379906124f7565b60405180910390fd5b600061138c611321565b905060008151116113ac57604051806020016040528060008152506113d7565b806113b68461171e565b6040516020016113c792919061228f565b6040516020818303038152906040525b915050919050565b6113f98282604051806020016040528060008152506118cb565b5050565b61140682610e0b565b611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612457565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061146c929190611b47565b505050565b505050565b600061148182610762565b905061148f81600084611471565b61149a600083610e7f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114ea91906126b2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006115a88473ffffffffffffffffffffffffffffffffffffffff16611926565b15611711578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026115d1610e77565b8786866040518563ffffffff1660e01b81526004016115f394939291906122ce565b602060405180830381600087803b15801561160d57600080fd5b505af192505050801561163e57506040513d601f19601f8201168201806040525081019061163b9190611ed5565b60015b6116c1573d806000811461166e576040519150601f19603f3d011682016040523d82523d6000602084013e611673565b606091505b506000815114156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612357565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611716565b600190505b949350505050565b60606000821415611766576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506118c6565b600082905060005b60008214611798578080611781906127ff565b915050600a826117919190612681565b915061176e565b60008167ffffffffffffffff8111156117da577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561180c5781602001600182028036833780820191505090505b5090505b600085146118bf5760018261182591906126b2565b9150600a856118349190612848565b6030611840919061262b565b60f81b81838151811061187c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856118b89190612681565b9450611810565b8093505050505b919050565b6118d58383611939565b6118e26000848484611587565b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612357565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612477565b60405180910390fd5b6119b281610e0b565b156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990612377565b60405180910390fd5b6119fe60008383611471565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a4e919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b508054611b139061279c565b6000825580601f10611b255750611b44565b601f016020900490600052602060002090810190611b439190611bcd565b5b50565b828054611b539061279c565b90600052602060002090601f016020900481019282611b755760008555611bbc565b82601f10611b8e57805160ff1916838001178555611bbc565b82800160010185558215611bbc579182015b82811115611bbb578251825591602001919060010190611ba0565b5b509050611bc99190611bcd565b5090565b5b80821115611be6576000816000905550600101611bce565b5090565b6000611bfd611bf8846125b7565b612592565b905082815260208101848484011115611c1557600080fd5b611c2084828561275a565b509392505050565b600081359050611c3781612e13565b92915050565b600081359050611c4c81612e2a565b92915050565b600081359050611c6181612e41565b92915050565b600081519050611c7681612e41565b92915050565b600082601f830112611c8d57600080fd5b8135611c9d848260208601611bea565b91505092915050565b60008083601f840112611cb857600080fd5b8235905067ffffffffffffffff811115611cd157600080fd5b602083019150836001820283011115611ce957600080fd5b9250929050565b600081359050611cff81612e58565b92915050565b600060208284031215611d1757600080fd5b6000611d2584828501611c28565b91505092915050565b60008060408385031215611d4157600080fd5b6000611d4f85828601611c28565b9250506020611d6085828601611c28565b9150509250929050565b600080600060608486031215611d7f57600080fd5b6000611d8d86828701611c28565b9350506020611d9e86828701611c28565b9250506040611daf86828701611cf0565b9150509250925092565b60008060008060808587031215611dcf57600080fd5b6000611ddd87828801611c28565b9450506020611dee87828801611c28565b9350506040611dff87828801611cf0565b925050606085013567ffffffffffffffff811115611e1c57600080fd5b611e2887828801611c7c565b91505092959194509250565b60008060408385031215611e4757600080fd5b6000611e5585828601611c28565b9250506020611e6685828601611c3d565b9150509250929050565b60008060408385031215611e8357600080fd5b6000611e9185828601611c28565b9250506020611ea285828601611cf0565b9150509250929050565b600060208284031215611ebe57600080fd5b6000611ecc84828501611c52565b91505092915050565b600060208284031215611ee757600080fd5b6000611ef584828501611c67565b91505092915050565b60008060208385031215611f1157600080fd5b600083013567ffffffffffffffff811115611f2b57600080fd5b611f3785828601611ca6565b92509250509250929050565b600060208284031215611f5557600080fd5b6000611f6384828501611cf0565b91505092915050565b611f75816126e6565b82525050565b611f84816126f8565b82525050565b6000611f95826125e8565b611f9f81856125fe565b9350611faf818560208601612769565b611fb881612935565b840191505092915050565b6000611fce826125f3565b611fd8818561260f565b9350611fe8818560208601612769565b611ff181612935565b840191505092915050565b6000612007826125f3565b6120118185612620565b9350612021818560208601612769565b80840191505092915050565b600061203a60328361260f565b915061204582612946565b604082019050919050565b600061205d601c8361260f565b915061206882612995565b602082019050919050565b600061208060248361260f565b915061208b826129be565b604082019050919050565b60006120a360198361260f565b91506120ae82612a0d565b602082019050919050565b60006120c6602c8361260f565b91506120d182612a36565b604082019050919050565b60006120e960388361260f565b91506120f482612a85565b604082019050919050565b600061210c602a8361260f565b915061211782612ad4565b604082019050919050565b600061212f60298361260f565b915061213a82612b23565b604082019050919050565b6000612152602e8361260f565b915061215d82612b72565b604082019050919050565b600061217560208361260f565b915061218082612bc1565b602082019050919050565b600061219860318361260f565b91506121a382612bea565b604082019050919050565b60006121bb602c8361260f565b91506121c682612c39565b604082019050919050565b60006121de60298361260f565b91506121e982612c88565b604082019050919050565b6000612201602f8361260f565b915061220c82612cd7565b604082019050919050565b600061222460218361260f565b915061222f82612d26565b604082019050919050565b600061224760318361260f565b915061225282612d75565b604082019050919050565b600061226a60238361260f565b915061227582612dc4565b604082019050919050565b61228981612750565b82525050565b600061229b8285611ffc565b91506122a78284611ffc565b91508190509392505050565b60006020820190506122c86000830184611f6c565b92915050565b60006080820190506122e36000830187611f6c565b6122f06020830186611f6c565b6122fd6040830185612280565b818103606083015261230f8184611f8a565b905095945050505050565b600060208201905061232f6000830184611f7b565b92915050565b6000602082019050818103600083015261234f8184611fc3565b905092915050565b600060208201905081810360008301526123708161202d565b9050919050565b6000602082019050818103600083015261239081612050565b9050919050565b600060208201905081810360008301526123b081612073565b9050919050565b600060208201905081810360008301526123d081612096565b9050919050565b600060208201905081810360008301526123f0816120b9565b9050919050565b60006020820190508181036000830152612410816120dc565b9050919050565b60006020820190508181036000830152612430816120ff565b9050919050565b6000602082019050818103600083015261245081612122565b9050919050565b6000602082019050818103600083015261247081612145565b9050919050565b6000602082019050818103600083015261249081612168565b9050919050565b600060208201905081810360008301526124b08161218b565b9050919050565b600060208201905081810360008301526124d0816121ae565b9050919050565b600060208201905081810360008301526124f0816121d1565b9050919050565b60006020820190508181036000830152612510816121f4565b9050919050565b6000602082019050818103600083015261253081612217565b9050919050565b600060208201905081810360008301526125508161223a565b9050919050565b600060208201905081810360008301526125708161225d565b9050919050565b600060208201905061258c6000830184612280565b92915050565b600061259c6125ad565b90506125a882826127ce565b919050565b6000604051905090565b600067ffffffffffffffff8211156125d2576125d1612906565b5b6125db82612935565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061263682612750565b915061264183612750565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561267657612675612879565b5b828201905092915050565b600061268c82612750565b915061269783612750565b9250826126a7576126a66128a8565b5b828204905092915050565b60006126bd82612750565b91506126c883612750565b9250828210156126db576126da612879565b5b828203905092915050565b60006126f182612730565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561278757808201518184015260208101905061276c565b83811115612796576000848401525b50505050565b600060028204905060018216806127b457607f821691505b602082108114156127c8576127c76128d7565b5b50919050565b6127d782612935565b810181811067ffffffffffffffff821117156127f6576127f5612906565b5b80604052505050565b600061280a82612750565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283d5761283c612879565b5b600182019050919050565b600061285382612750565b915061285e83612750565b92508261286e5761286d6128a8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e1c816126e6565b8114612e2757600080fd5b50565b612e33816126f8565b8114612e3e57600080fd5b50565b612e4a81612704565b8114612e5557600080fd5b50565b612e6181612750565b8114612e6c57600080fd5b5056fea2646970667358221220450c170b147f23ef2e7d9ba5dd576873827cdc58eb81e48dc3e22d0d7ebc1f2664736f6c63430008040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/fakeERC721.json b/src/fakeERC721.json index 1f47839d2..5aacc5dc3 100644 --- a/src/fakeERC721.json +++ b/src/fakeERC721.json @@ -178,11 +178,6 @@ }, { "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, { "internalType": "string", "name": "uri", @@ -383,8 +378,8 @@ "type": "function" } ], - "bytecode": "0x608060405260006007553480156200001657600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d54000000000000000000000000000000000000000000000000000000000081525081600090805190602001906200009b929190620000bd565b508060019080519060200190620000b4929190620000bd565b505050620001d2565b828054620000cb906200016d565b90600052602060002090601f016020900481019282620000ef57600085556200013b565b82601f106200010a57805160ff19168380011785556200013b565b828001600101855582156200013b579182015b828111156200013a5782518255916020019190600101906200011d565b5b5090506200014a91906200014e565b5090565b5b80821115620001695760008160009055506001016200014f565b5090565b600060028204905060018216806200018657607f821691505b602082108114156200019d576200019c620001a3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612eb580620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806377097fc81461027157806395d89b411461028d57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611ea9565b610343565b60405161012c919061232a565b60405180910390f35b61013d610425565b60405161014a9190612345565b60405180910390f35b61016d60048036038101906101689190611efb565b6104b7565b60405161017a91906122c3565b60405180910390f35b61019d60048036038101906101989190611e6d565b61053c565b005b6101a7610654565b6040516101b49190612587565b60405180910390f35b6101d760048036038101906101d29190611d67565b61065a565b005b6101f360048036038101906101ee9190611d67565b6106ba565b005b61020f600480360381019061020a9190611efb565b6106da565b005b61022b60048036038101906102269190611efb565b610762565b60405161023891906122c3565b60405180910390f35b61025b60048036038101906102569190611d02565b610814565b6040516102689190612587565b60405180910390f35b61028b60048036038101906102869190611f24565b6108cc565b005b610295610943565b6040516102a29190612345565b60405180910390f35b6102c560048036038101906102c09190611e31565b6109d5565b005b6102e160048036038101906102dc9190611db6565b610b56565b005b6102fd60048036038101906102f89190611efb565b610bb8565b60405161030a9190612345565b60405180910390f35b61032d60048036038101906103289190611d2b565b610d0a565b60405161033a919061232a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610d9e565b5b9050919050565b606060008054610434906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610460906127ac565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e08565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124c7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612527565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e74565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e74565b610d0a565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90612407565b60405180910390fd5b61064f8383610e7c565b505050565b60075481565b61066b610665610e74565b82610f35565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612547565b60405180910390fd5b6106b5838383611013565b505050565b6106d583838360405180602001604052806000815250610b56565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612567565b60405180910390fd5b61075e8261126f565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612447565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612427565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108d633846112c2565b6109248383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506112e0565b600160076000828254610937919061263b565b92505081905550505050565b606060018054610952906127ac565b80601f016020809104026020016040519081016040528092919081815260200182805461097e906127ac565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b6109dd610e74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906123c7565b60405180910390fd5b8060056000610a58610e74565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610b05610e74565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b4a919061232a565b60405180910390a35050565b610b67610b61610e74565b83610f35565b610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612547565b60405180910390fd5b610bb284848484611354565b50505050565b6060610bc382610e08565b610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906124a7565b60405180910390fd5b6000600660008481526020019081526020016000208054610c22906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e906127ac565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b505050505090506000610cac6113b0565b9050600081511415610cc2578192505050610d05565b600082511115610cf7578082604051602001610cdf92919061229f565b60405160208183030381529060405292505050610d05565b610d00846113c7565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610eef83610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4082610e08565b610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f76906123e7565b60405180910390fd5b6000610f8a83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ff957508373ffffffffffffffffffffffffffffffffffffffff16610fe1846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100a57506110098185610d0a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103382610762565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611080906124e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f0906123a7565b60405180910390fd5b61110483838361146e565b61110f600082610e7c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461115f91906126c2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b6919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127881611473565b6000600660008381526020019081526020016000208054611298906127ac565b9050146112bf576006600082815260200190815260200160002060006112be9190611b04565b5b50565b6112dc828260405180602001604052806000815250611584565b5050565b6112e982610e08565b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90612467565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061134f929190611b44565b505050565b61135f848484611013565b61136b848484846115df565b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190612367565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606113d282610e08565b611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612507565b60405180910390fd5b600061141b6113b0565b9050600081511161143b5760405180602001604052806000815250611466565b8061144584611776565b60405160200161145692919061229f565b6040516020818303038152906040525b915050919050565b505050565b600061147e82610762565b905061148c8160008461146e565b611497600083610e7c565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114e791906126c2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61158e8383611923565b61159b60008484846115df565b6115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612367565b60405180910390fd5b505050565b60006116008473ffffffffffffffffffffffffffffffffffffffff16611af1565b15611769578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611629610e74565b8786866040518563ffffffff1660e01b815260040161164b94939291906122de565b602060405180830381600087803b15801561166557600080fd5b505af192505050801561169657506040513d601f19601f820116820180604052508101906116939190611ed2565b60015b611719573d80600081146116c6576040519150601f19603f3d011682016040523d82523d6000602084013e6116cb565b606091505b50600081511415611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890612367565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061176e565b600190505b949350505050565b606060008214156117be576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061191e565b600082905060005b600082146117f05780806117d99061280f565b915050600a826117e99190612691565b91506117c6565b60008167ffffffffffffffff811115611832577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118645781602001600182028036833780820191505090505b5090505b600085146119175760018261187d91906126c2565b9150600a8561188c9190612858565b6030611898919061263b565b60f81b8183815181106118d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856119109190612691565b9450611868565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612487565b60405180910390fd5b61199c81610e08565b156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390612387565b60405180910390fd5b6119e86000838361146e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a38919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611b10906127ac565b6000825580601f10611b225750611b41565b601f016020900490600052602060002090810190611b409190611bca565b5b50565b828054611b50906127ac565b90600052602060002090601f016020900481019282611b725760008555611bb9565b82601f10611b8b57805160ff1916838001178555611bb9565b82800160010185558215611bb9579182015b82811115611bb8578251825591602001919060010190611b9d565b5b509050611bc69190611bca565b5090565b5b80821115611be3576000816000905550600101611bcb565b5090565b6000611bfa611bf5846125c7565b6125a2565b905082815260208101848484011115611c1257600080fd5b611c1d84828561276a565b509392505050565b600081359050611c3481612e23565b92915050565b600081359050611c4981612e3a565b92915050565b600081359050611c5e81612e51565b92915050565b600081519050611c7381612e51565b92915050565b600082601f830112611c8a57600080fd5b8135611c9a848260208601611be7565b91505092915050565b60008083601f840112611cb557600080fd5b8235905067ffffffffffffffff811115611cce57600080fd5b602083019150836001820283011115611ce657600080fd5b9250929050565b600081359050611cfc81612e68565b92915050565b600060208284031215611d1457600080fd5b6000611d2284828501611c25565b91505092915050565b60008060408385031215611d3e57600080fd5b6000611d4c85828601611c25565b9250506020611d5d85828601611c25565b9150509250929050565b600080600060608486031215611d7c57600080fd5b6000611d8a86828701611c25565b9350506020611d9b86828701611c25565b9250506040611dac86828701611ced565b9150509250925092565b60008060008060808587031215611dcc57600080fd5b6000611dda87828801611c25565b9450506020611deb87828801611c25565b9350506040611dfc87828801611ced565b925050606085013567ffffffffffffffff811115611e1957600080fd5b611e2587828801611c79565b91505092959194509250565b60008060408385031215611e4457600080fd5b6000611e5285828601611c25565b9250506020611e6385828601611c3a565b9150509250929050565b60008060408385031215611e8057600080fd5b6000611e8e85828601611c25565b9250506020611e9f85828601611ced565b9150509250929050565b600060208284031215611ebb57600080fd5b6000611ec984828501611c4f565b91505092915050565b600060208284031215611ee457600080fd5b6000611ef284828501611c64565b91505092915050565b600060208284031215611f0d57600080fd5b6000611f1b84828501611ced565b91505092915050565b600080600060408486031215611f3957600080fd5b6000611f4786828701611ced565b935050602084013567ffffffffffffffff811115611f6457600080fd5b611f7086828701611ca3565b92509250509250925092565b611f85816126f6565b82525050565b611f9481612708565b82525050565b6000611fa5826125f8565b611faf818561260e565b9350611fbf818560208601612779565b611fc881612945565b840191505092915050565b6000611fde82612603565b611fe8818561261f565b9350611ff8818560208601612779565b61200181612945565b840191505092915050565b600061201782612603565b6120218185612630565b9350612031818560208601612779565b80840191505092915050565b600061204a60328361261f565b915061205582612956565b604082019050919050565b600061206d601c8361261f565b9150612078826129a5565b602082019050919050565b600061209060248361261f565b915061209b826129ce565b604082019050919050565b60006120b360198361261f565b91506120be82612a1d565b602082019050919050565b60006120d6602c8361261f565b91506120e182612a46565b604082019050919050565b60006120f960388361261f565b915061210482612a95565b604082019050919050565b600061211c602a8361261f565b915061212782612ae4565b604082019050919050565b600061213f60298361261f565b915061214a82612b33565b604082019050919050565b6000612162602e8361261f565b915061216d82612b82565b604082019050919050565b600061218560208361261f565b915061219082612bd1565b602082019050919050565b60006121a860318361261f565b91506121b382612bfa565b604082019050919050565b60006121cb602c8361261f565b91506121d682612c49565b604082019050919050565b60006121ee60298361261f565b91506121f982612c98565b604082019050919050565b6000612211602f8361261f565b915061221c82612ce7565b604082019050919050565b600061223460218361261f565b915061223f82612d36565b604082019050919050565b600061225760318361261f565b915061226282612d85565b604082019050919050565b600061227a60238361261f565b915061228582612dd4565b604082019050919050565b61229981612760565b82525050565b60006122ab828561200c565b91506122b7828461200c565b91508190509392505050565b60006020820190506122d86000830184611f7c565b92915050565b60006080820190506122f36000830187611f7c565b6123006020830186611f7c565b61230d6040830185612290565b818103606083015261231f8184611f9a565b905095945050505050565b600060208201905061233f6000830184611f8b565b92915050565b6000602082019050818103600083015261235f8184611fd3565b905092915050565b600060208201905081810360008301526123808161203d565b9050919050565b600060208201905081810360008301526123a081612060565b9050919050565b600060208201905081810360008301526123c081612083565b9050919050565b600060208201905081810360008301526123e0816120a6565b9050919050565b60006020820190508181036000830152612400816120c9565b9050919050565b60006020820190508181036000830152612420816120ec565b9050919050565b600060208201905081810360008301526124408161210f565b9050919050565b6000602082019050818103600083015261246081612132565b9050919050565b6000602082019050818103600083015261248081612155565b9050919050565b600060208201905081810360008301526124a081612178565b9050919050565b600060208201905081810360008301526124c08161219b565b9050919050565b600060208201905081810360008301526124e0816121be565b9050919050565b60006020820190508181036000830152612500816121e1565b9050919050565b6000602082019050818103600083015261252081612204565b9050919050565b6000602082019050818103600083015261254081612227565b9050919050565b600060208201905081810360008301526125608161224a565b9050919050565b600060208201905081810360008301526125808161226d565b9050919050565b600060208201905061259c6000830184612290565b92915050565b60006125ac6125bd565b90506125b882826127de565b919050565b6000604051905090565b600067ffffffffffffffff8211156125e2576125e1612916565b5b6125eb82612945565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061264682612760565b915061265183612760565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561268657612685612889565b5b828201905092915050565b600061269c82612760565b91506126a783612760565b9250826126b7576126b66128b8565b5b828204905092915050565b60006126cd82612760565b91506126d883612760565b9250828210156126eb576126ea612889565b5b828203905092915050565b600061270182612740565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561279757808201518184015260208101905061277c565b838111156127a6576000848401525b50505050565b600060028204905060018216806127c457607f821691505b602082108114156127d8576127d76128e7565b5b50919050565b6127e782612945565b810181811067ffffffffffffffff8211171561280657612805612916565b5b80604052505050565b600061281a82612760565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561284d5761284c612889565b5b600182019050919050565b600061286382612760565b915061286e83612760565b92508261287e5761287d6128b8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e2c816126f6565b8114612e3757600080fd5b50565b612e4381612708565b8114612e4e57600080fd5b50565b612e5a81612714565b8114612e6557600080fd5b50565b612e7181612760565b8114612e7c57600080fd5b5056fea2646970667358221220afc50bc783f130cbfa166d7c7b6cd6b846c10e8cdc885592443a8b5e9c9b237964736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806377097fc81461027157806395d89b411461028d57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611ea9565b610343565b60405161012c919061232a565b60405180910390f35b61013d610425565b60405161014a9190612345565b60405180910390f35b61016d60048036038101906101689190611efb565b6104b7565b60405161017a91906122c3565b60405180910390f35b61019d60048036038101906101989190611e6d565b61053c565b005b6101a7610654565b6040516101b49190612587565b60405180910390f35b6101d760048036038101906101d29190611d67565b61065a565b005b6101f360048036038101906101ee9190611d67565b6106ba565b005b61020f600480360381019061020a9190611efb565b6106da565b005b61022b60048036038101906102269190611efb565b610762565b60405161023891906122c3565b60405180910390f35b61025b60048036038101906102569190611d02565b610814565b6040516102689190612587565b60405180910390f35b61028b60048036038101906102869190611f24565b6108cc565b005b610295610943565b6040516102a29190612345565b60405180910390f35b6102c560048036038101906102c09190611e31565b6109d5565b005b6102e160048036038101906102dc9190611db6565b610b56565b005b6102fd60048036038101906102f89190611efb565b610bb8565b60405161030a9190612345565b60405180910390f35b61032d60048036038101906103289190611d2b565b610d0a565b60405161033a919061232a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610d9e565b5b9050919050565b606060008054610434906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610460906127ac565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e08565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124c7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612527565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e74565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e74565b610d0a565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90612407565b60405180910390fd5b61064f8383610e7c565b505050565b60075481565b61066b610665610e74565b82610f35565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612547565b60405180910390fd5b6106b5838383611013565b505050565b6106d583838360405180602001604052806000815250610b56565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612567565b60405180910390fd5b61075e8261126f565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612447565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612427565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108d633846112c2565b6109248383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506112e0565b600160076000828254610937919061263b565b92505081905550505050565b606060018054610952906127ac565b80601f016020809104026020016040519081016040528092919081815260200182805461097e906127ac565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b6109dd610e74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a42906123c7565b60405180910390fd5b8060056000610a58610e74565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610b05610e74565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610b4a919061232a565b60405180910390a35050565b610b67610b61610e74565b83610f35565b610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612547565b60405180910390fd5b610bb284848484611354565b50505050565b6060610bc382610e08565b610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906124a7565b60405180910390fd5b6000600660008481526020019081526020016000208054610c22906127ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e906127ac565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b505050505090506000610cac6113b0565b9050600081511415610cc2578192505050610d05565b600082511115610cf7578082604051602001610cdf92919061229f565b60405160208183030381529060405292505050610d05565b610d00846113c7565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610eef83610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4082610e08565b610f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f76906123e7565b60405180910390fd5b6000610f8a83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ff957508373ffffffffffffffffffffffffffffffffffffffff16610fe1846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100a57506110098185610d0a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103382610762565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611080906124e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f0906123a7565b60405180910390fd5b61110483838361146e565b61110f600082610e7c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461115f91906126c2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b6919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127881611473565b6000600660008381526020019081526020016000208054611298906127ac565b9050146112bf576006600082815260200190815260200160002060006112be9190611b04565b5b50565b6112dc828260405180602001604052806000815250611584565b5050565b6112e982610e08565b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90612467565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061134f929190611b44565b505050565b61135f848484611013565b61136b848484846115df565b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190612367565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606113d282610e08565b611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612507565b60405180910390fd5b600061141b6113b0565b9050600081511161143b5760405180602001604052806000815250611466565b8061144584611776565b60405160200161145692919061229f565b6040516020818303038152906040525b915050919050565b505050565b600061147e82610762565b905061148c8160008461146e565b611497600083610e7c565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114e791906126c2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61158e8383611923565b61159b60008484846115df565b6115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612367565b60405180910390fd5b505050565b60006116008473ffffffffffffffffffffffffffffffffffffffff16611af1565b15611769578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611629610e74565b8786866040518563ffffffff1660e01b815260040161164b94939291906122de565b602060405180830381600087803b15801561166557600080fd5b505af192505050801561169657506040513d601f19601f820116820180604052508101906116939190611ed2565b60015b611719573d80600081146116c6576040519150601f19603f3d011682016040523d82523d6000602084013e6116cb565b606091505b50600081511415611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890612367565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061176e565b600190505b949350505050565b606060008214156117be576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061191e565b600082905060005b600082146117f05780806117d99061280f565b915050600a826117e99190612691565b91506117c6565b60008167ffffffffffffffff811115611832577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118645781602001600182028036833780820191505090505b5090505b600085146119175760018261187d91906126c2565b9150600a8561188c9190612858565b6030611898919061263b565b60f81b8183815181106118d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856119109190612691565b9450611868565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612487565b60405180910390fd5b61199c81610e08565b156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390612387565b60405180910390fd5b6119e86000838361146e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a38919061263b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611b10906127ac565b6000825580601f10611b225750611b41565b601f016020900490600052602060002090810190611b409190611bca565b5b50565b828054611b50906127ac565b90600052602060002090601f016020900481019282611b725760008555611bb9565b82601f10611b8b57805160ff1916838001178555611bb9565b82800160010185558215611bb9579182015b82811115611bb8578251825591602001919060010190611b9d565b5b509050611bc69190611bca565b5090565b5b80821115611be3576000816000905550600101611bcb565b5090565b6000611bfa611bf5846125c7565b6125a2565b905082815260208101848484011115611c1257600080fd5b611c1d84828561276a565b509392505050565b600081359050611c3481612e23565b92915050565b600081359050611c4981612e3a565b92915050565b600081359050611c5e81612e51565b92915050565b600081519050611c7381612e51565b92915050565b600082601f830112611c8a57600080fd5b8135611c9a848260208601611be7565b91505092915050565b60008083601f840112611cb557600080fd5b8235905067ffffffffffffffff811115611cce57600080fd5b602083019150836001820283011115611ce657600080fd5b9250929050565b600081359050611cfc81612e68565b92915050565b600060208284031215611d1457600080fd5b6000611d2284828501611c25565b91505092915050565b60008060408385031215611d3e57600080fd5b6000611d4c85828601611c25565b9250506020611d5d85828601611c25565b9150509250929050565b600080600060608486031215611d7c57600080fd5b6000611d8a86828701611c25565b9350506020611d9b86828701611c25565b9250506040611dac86828701611ced565b9150509250925092565b60008060008060808587031215611dcc57600080fd5b6000611dda87828801611c25565b9450506020611deb87828801611c25565b9350506040611dfc87828801611ced565b925050606085013567ffffffffffffffff811115611e1957600080fd5b611e2587828801611c79565b91505092959194509250565b60008060408385031215611e4457600080fd5b6000611e5285828601611c25565b9250506020611e6385828601611c3a565b9150509250929050565b60008060408385031215611e8057600080fd5b6000611e8e85828601611c25565b9250506020611e9f85828601611ced565b9150509250929050565b600060208284031215611ebb57600080fd5b6000611ec984828501611c4f565b91505092915050565b600060208284031215611ee457600080fd5b6000611ef284828501611c64565b91505092915050565b600060208284031215611f0d57600080fd5b6000611f1b84828501611ced565b91505092915050565b600080600060408486031215611f3957600080fd5b6000611f4786828701611ced565b935050602084013567ffffffffffffffff811115611f6457600080fd5b611f7086828701611ca3565b92509250509250925092565b611f85816126f6565b82525050565b611f9481612708565b82525050565b6000611fa5826125f8565b611faf818561260e565b9350611fbf818560208601612779565b611fc881612945565b840191505092915050565b6000611fde82612603565b611fe8818561261f565b9350611ff8818560208601612779565b61200181612945565b840191505092915050565b600061201782612603565b6120218185612630565b9350612031818560208601612779565b80840191505092915050565b600061204a60328361261f565b915061205582612956565b604082019050919050565b600061206d601c8361261f565b9150612078826129a5565b602082019050919050565b600061209060248361261f565b915061209b826129ce565b604082019050919050565b60006120b360198361261f565b91506120be82612a1d565b602082019050919050565b60006120d6602c8361261f565b91506120e182612a46565b604082019050919050565b60006120f960388361261f565b915061210482612a95565b604082019050919050565b600061211c602a8361261f565b915061212782612ae4565b604082019050919050565b600061213f60298361261f565b915061214a82612b33565b604082019050919050565b6000612162602e8361261f565b915061216d82612b82565b604082019050919050565b600061218560208361261f565b915061219082612bd1565b602082019050919050565b60006121a860318361261f565b91506121b382612bfa565b604082019050919050565b60006121cb602c8361261f565b91506121d682612c49565b604082019050919050565b60006121ee60298361261f565b91506121f982612c98565b604082019050919050565b6000612211602f8361261f565b915061221c82612ce7565b604082019050919050565b600061223460218361261f565b915061223f82612d36565b604082019050919050565b600061225760318361261f565b915061226282612d85565b604082019050919050565b600061227a60238361261f565b915061228582612dd4565b604082019050919050565b61229981612760565b82525050565b60006122ab828561200c565b91506122b7828461200c565b91508190509392505050565b60006020820190506122d86000830184611f7c565b92915050565b60006080820190506122f36000830187611f7c565b6123006020830186611f7c565b61230d6040830185612290565b818103606083015261231f8184611f9a565b905095945050505050565b600060208201905061233f6000830184611f8b565b92915050565b6000602082019050818103600083015261235f8184611fd3565b905092915050565b600060208201905081810360008301526123808161203d565b9050919050565b600060208201905081810360008301526123a081612060565b9050919050565b600060208201905081810360008301526123c081612083565b9050919050565b600060208201905081810360008301526123e0816120a6565b9050919050565b60006020820190508181036000830152612400816120c9565b9050919050565b60006020820190508181036000830152612420816120ec565b9050919050565b600060208201905081810360008301526124408161210f565b9050919050565b6000602082019050818103600083015261246081612132565b9050919050565b6000602082019050818103600083015261248081612155565b9050919050565b600060208201905081810360008301526124a081612178565b9050919050565b600060208201905081810360008301526124c08161219b565b9050919050565b600060208201905081810360008301526124e0816121be565b9050919050565b60006020820190508181036000830152612500816121e1565b9050919050565b6000602082019050818103600083015261252081612204565b9050919050565b6000602082019050818103600083015261254081612227565b9050919050565b600060208201905081810360008301526125608161224a565b9050919050565b600060208201905081810360008301526125808161226d565b9050919050565b600060208201905061259c6000830184612290565b92915050565b60006125ac6125bd565b90506125b882826127de565b919050565b6000604051905090565b600067ffffffffffffffff8211156125e2576125e1612916565b5b6125eb82612945565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061264682612760565b915061265183612760565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561268657612685612889565b5b828201905092915050565b600061269c82612760565b91506126a783612760565b9250826126b7576126b66128b8565b5b828204905092915050565b60006126cd82612760565b91506126d883612760565b9250828210156126eb576126ea612889565b5b828203905092915050565b600061270182612740565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561279757808201518184015260208101905061277c565b838111156127a6576000848401525b50505050565b600060028204905060018216806127c457607f821691505b602082108114156127d8576127d76128e7565b5b50919050565b6127e782612945565b810181811067ffffffffffffffff8211171561280657612805612916565b5b80604052505050565b600061281a82612760565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561284d5761284c612889565b5b600182019050919050565b600061286382612760565b915061286e83612760565b92508261287e5761287d6128b8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e2c816126f6565b8114612e3757600080fd5b50565b612e4381612708565b8114612e4e57600080fd5b50565b612e5a81612714565b8114612e6557600080fd5b50565b612e7181612760565b8114612e7c57600080fd5b5056fea2646970667358221220afc50bc783f130cbfa166d7c7b6cd6b846c10e8cdc885592443a8b5e9c9b237964736f6c63430008040033", + "bytecode": "0x608060405260006007553480156200001657600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d54000000000000000000000000000000000000000000000000000000000081525081600090805190602001906200009b929190620000bd565b508060019080519060200190620000b4929190620000bd565b505050620001d2565b828054620000cb906200016d565b90600052602060002090601f016020900481019282620000ef57600085556200013b565b82601f106200010a57805160ff19168380011785556200013b565b828001600101855582156200013b579182015b828111156200013a5782518255916020019190600101906200011d565b5b5090506200014a91906200014e565b5090565b5b80821115620001695760008160009055506001016200014f565b5090565b600060028204905060018216806200018657607f821691505b602082108114156200019d576200019c620001a3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612ea580620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde146102ab578063c87b56dd146102c7578063d85d3d27146102f7578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806395d89b4114610271578063a22cb4651461028f57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611eac565b610343565b60405161012c919061231a565b60405180910390f35b61013d610425565b60405161014a9190612335565b60405180910390f35b61016d60048036038101906101689190611f43565b6104b7565b60405161017a91906122b3565b60405180910390f35b61019d60048036038101906101989190611e70565b61053c565b005b6101a7610654565b6040516101b49190612577565b60405180910390f35b6101d760048036038101906101d29190611d6a565b61065a565b005b6101f360048036038101906101ee9190611d6a565b6106ba565b005b61020f600480360381019061020a9190611f43565b6106da565b005b61022b60048036038101906102269190611f43565b610762565b60405161023891906122b3565b60405180910390f35b61025b60048036038101906102569190611d05565b610814565b6040516102689190612577565b60405180910390f35b6102796108cc565b6040516102869190612335565b60405180910390f35b6102a960048036038101906102a49190611e34565b61095e565b005b6102c560048036038101906102c09190611db9565b610adf565b005b6102e160048036038101906102dc9190611f43565b610b41565b6040516102ee9190612335565b60405180910390f35b610311600480360381019061030c9190611efe565b610c93565b005b61032d60048036038101906103289190611d2e565b610d0d565b60405161033a919061231a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610da1565b5b9050919050565b6060600080546104349061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546104609061279c565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e0b565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124b7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612517565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e77565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e77565b610d0d565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c906123f7565b60405180910390fd5b61064f8383610e7f565b505050565b60075481565b61066b610665610e77565b82610f38565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612537565b60405180910390fd5b6106b5838383611016565b505050565b6106d583838360405180602001604052806000815250610adf565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612557565b60405180910390fd5b61075e82611272565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612437565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612417565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546108db9061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546109079061279c565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050905090565b610966610e77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906123b7565b60405180910390fd5b80600560006109e1610e77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061231a565b60405180910390a35050565b610af0610aea610e77565b83610f38565b610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612537565b60405180910390fd5b610b3b848484846112c5565b50505050565b6060610b4c82610e0b565b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612497565b60405180910390fd5b6000600660008481526020019081526020016000208054610bab9061279c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd79061279c565b8015610c245780601f10610bf957610100808354040283529160200191610c24565b820191906000526020600020905b815481529060010190602001808311610c0757829003601f168201915b505050505090506000610c35611321565b9050600081511415610c4b578192505050610c8e565b600082511115610c80578082604051602001610c6892919061228f565b60405160208183030381529060405292505050610c8e565b610c8984611338565b925050505b919050565b610c9f336007546113df565b610cef60075483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506113fd565b600160076000828254610d02919061262b565b925050819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610ef283610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4382610e0b565b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906123d7565b60405180910390fd5b6000610f8d83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ffc57508373ffffffffffffffffffffffffffffffffffffffff16610fe4846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100d575061100c8185610d0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103682610762565b73ffffffffffffffffffffffffffffffffffffffff161461108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612397565b60405180910390fd5b611107838383611471565b611112600082610e7f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461116291906126b2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b9919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127b81611476565b600060066000838152602001908152602001600020805461129b9061279c565b9050146112c2576006600082815260200190815260200160002060006112c19190611b07565b5b50565b6112d0848484611016565b6112dc84848484611587565b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612357565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061134382610e0b565b611382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611379906124f7565b60405180910390fd5b600061138c611321565b905060008151116113ac57604051806020016040528060008152506113d7565b806113b68461171e565b6040516020016113c792919061228f565b6040516020818303038152906040525b915050919050565b6113f98282604051806020016040528060008152506118cb565b5050565b61140682610e0b565b611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612457565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061146c929190611b47565b505050565b505050565b600061148182610762565b905061148f81600084611471565b61149a600083610e7f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114ea91906126b2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006115a88473ffffffffffffffffffffffffffffffffffffffff16611926565b15611711578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026115d1610e77565b8786866040518563ffffffff1660e01b81526004016115f394939291906122ce565b602060405180830381600087803b15801561160d57600080fd5b505af192505050801561163e57506040513d601f19601f8201168201806040525081019061163b9190611ed5565b60015b6116c1573d806000811461166e576040519150601f19603f3d011682016040523d82523d6000602084013e611673565b606091505b506000815114156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612357565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611716565b600190505b949350505050565b60606000821415611766576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506118c6565b600082905060005b60008214611798578080611781906127ff565b915050600a826117919190612681565b915061176e565b60008167ffffffffffffffff8111156117da577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561180c5781602001600182028036833780820191505090505b5090505b600085146118bf5760018261182591906126b2565b9150600a856118349190612848565b6030611840919061262b565b60f81b81838151811061187c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856118b89190612681565b9450611810565b8093505050505b919050565b6118d58383611939565b6118e26000848484611587565b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612357565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612477565b60405180910390fd5b6119b281610e0b565b156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990612377565b60405180910390fd5b6119fe60008383611471565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a4e919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b508054611b139061279c565b6000825580601f10611b255750611b44565b601f016020900490600052602060002090810190611b439190611bcd565b5b50565b828054611b539061279c565b90600052602060002090601f016020900481019282611b755760008555611bbc565b82601f10611b8e57805160ff1916838001178555611bbc565b82800160010185558215611bbc579182015b82811115611bbb578251825591602001919060010190611ba0565b5b509050611bc99190611bcd565b5090565b5b80821115611be6576000816000905550600101611bce565b5090565b6000611bfd611bf8846125b7565b612592565b905082815260208101848484011115611c1557600080fd5b611c2084828561275a565b509392505050565b600081359050611c3781612e13565b92915050565b600081359050611c4c81612e2a565b92915050565b600081359050611c6181612e41565b92915050565b600081519050611c7681612e41565b92915050565b600082601f830112611c8d57600080fd5b8135611c9d848260208601611bea565b91505092915050565b60008083601f840112611cb857600080fd5b8235905067ffffffffffffffff811115611cd157600080fd5b602083019150836001820283011115611ce957600080fd5b9250929050565b600081359050611cff81612e58565b92915050565b600060208284031215611d1757600080fd5b6000611d2584828501611c28565b91505092915050565b60008060408385031215611d4157600080fd5b6000611d4f85828601611c28565b9250506020611d6085828601611c28565b9150509250929050565b600080600060608486031215611d7f57600080fd5b6000611d8d86828701611c28565b9350506020611d9e86828701611c28565b9250506040611daf86828701611cf0565b9150509250925092565b60008060008060808587031215611dcf57600080fd5b6000611ddd87828801611c28565b9450506020611dee87828801611c28565b9350506040611dff87828801611cf0565b925050606085013567ffffffffffffffff811115611e1c57600080fd5b611e2887828801611c7c565b91505092959194509250565b60008060408385031215611e4757600080fd5b6000611e5585828601611c28565b9250506020611e6685828601611c3d565b9150509250929050565b60008060408385031215611e8357600080fd5b6000611e9185828601611c28565b9250506020611ea285828601611cf0565b9150509250929050565b600060208284031215611ebe57600080fd5b6000611ecc84828501611c52565b91505092915050565b600060208284031215611ee757600080fd5b6000611ef584828501611c67565b91505092915050565b60008060208385031215611f1157600080fd5b600083013567ffffffffffffffff811115611f2b57600080fd5b611f3785828601611ca6565b92509250509250929050565b600060208284031215611f5557600080fd5b6000611f6384828501611cf0565b91505092915050565b611f75816126e6565b82525050565b611f84816126f8565b82525050565b6000611f95826125e8565b611f9f81856125fe565b9350611faf818560208601612769565b611fb881612935565b840191505092915050565b6000611fce826125f3565b611fd8818561260f565b9350611fe8818560208601612769565b611ff181612935565b840191505092915050565b6000612007826125f3565b6120118185612620565b9350612021818560208601612769565b80840191505092915050565b600061203a60328361260f565b915061204582612946565b604082019050919050565b600061205d601c8361260f565b915061206882612995565b602082019050919050565b600061208060248361260f565b915061208b826129be565b604082019050919050565b60006120a360198361260f565b91506120ae82612a0d565b602082019050919050565b60006120c6602c8361260f565b91506120d182612a36565b604082019050919050565b60006120e960388361260f565b91506120f482612a85565b604082019050919050565b600061210c602a8361260f565b915061211782612ad4565b604082019050919050565b600061212f60298361260f565b915061213a82612b23565b604082019050919050565b6000612152602e8361260f565b915061215d82612b72565b604082019050919050565b600061217560208361260f565b915061218082612bc1565b602082019050919050565b600061219860318361260f565b91506121a382612bea565b604082019050919050565b60006121bb602c8361260f565b91506121c682612c39565b604082019050919050565b60006121de60298361260f565b91506121e982612c88565b604082019050919050565b6000612201602f8361260f565b915061220c82612cd7565b604082019050919050565b600061222460218361260f565b915061222f82612d26565b604082019050919050565b600061224760318361260f565b915061225282612d75565b604082019050919050565b600061226a60238361260f565b915061227582612dc4565b604082019050919050565b61228981612750565b82525050565b600061229b8285611ffc565b91506122a78284611ffc565b91508190509392505050565b60006020820190506122c86000830184611f6c565b92915050565b60006080820190506122e36000830187611f6c565b6122f06020830186611f6c565b6122fd6040830185612280565b818103606083015261230f8184611f8a565b905095945050505050565b600060208201905061232f6000830184611f7b565b92915050565b6000602082019050818103600083015261234f8184611fc3565b905092915050565b600060208201905081810360008301526123708161202d565b9050919050565b6000602082019050818103600083015261239081612050565b9050919050565b600060208201905081810360008301526123b081612073565b9050919050565b600060208201905081810360008301526123d081612096565b9050919050565b600060208201905081810360008301526123f0816120b9565b9050919050565b60006020820190508181036000830152612410816120dc565b9050919050565b60006020820190508181036000830152612430816120ff565b9050919050565b6000602082019050818103600083015261245081612122565b9050919050565b6000602082019050818103600083015261247081612145565b9050919050565b6000602082019050818103600083015261249081612168565b9050919050565b600060208201905081810360008301526124b08161218b565b9050919050565b600060208201905081810360008301526124d0816121ae565b9050919050565b600060208201905081810360008301526124f0816121d1565b9050919050565b60006020820190508181036000830152612510816121f4565b9050919050565b6000602082019050818103600083015261253081612217565b9050919050565b600060208201905081810360008301526125508161223a565b9050919050565b600060208201905081810360008301526125708161225d565b9050919050565b600060208201905061258c6000830184612280565b92915050565b600061259c6125ad565b90506125a882826127ce565b919050565b6000604051905090565b600067ffffffffffffffff8211156125d2576125d1612906565b5b6125db82612935565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061263682612750565b915061264183612750565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561267657612675612879565b5b828201905092915050565b600061268c82612750565b915061269783612750565b9250826126a7576126a66128a8565b5b828204905092915050565b60006126bd82612750565b91506126c883612750565b9250828210156126db576126da612879565b5b828203905092915050565b60006126f182612730565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561278757808201518184015260208101905061276c565b83811115612796576000848401525b50505050565b600060028204905060018216806127b457607f821691505b602082108114156127c8576127c76128d7565b5b50919050565b6127d782612935565b810181811067ffffffffffffffff821117156127f6576127f5612906565b5b80604052505050565b600061280a82612750565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283d5761283c612879565b5b600182019050919050565b600061285382612750565b915061285e83612750565b92508261286e5761286d6128a8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e1c816126e6565b8114612e2757600080fd5b50565b612e33816126f8565b8114612e3e57600080fd5b50565b612e4a81612704565b8114612e5557600080fd5b50565b612e6181612750565b8114612e6c57600080fd5b5056fea2646970667358221220450c170b147f23ef2e7d9ba5dd576873827cdc58eb81e48dc3e22d0d7ebc1f2664736f6c63430008040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde146102ab578063c87b56dd146102c7578063d85d3d27146102f7578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806395d89b4114610271578063a22cb4651461028f57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611eac565b610343565b60405161012c919061231a565b60405180910390f35b61013d610425565b60405161014a9190612335565b60405180910390f35b61016d60048036038101906101689190611f43565b6104b7565b60405161017a91906122b3565b60405180910390f35b61019d60048036038101906101989190611e70565b61053c565b005b6101a7610654565b6040516101b49190612577565b60405180910390f35b6101d760048036038101906101d29190611d6a565b61065a565b005b6101f360048036038101906101ee9190611d6a565b6106ba565b005b61020f600480360381019061020a9190611f43565b6106da565b005b61022b60048036038101906102269190611f43565b610762565b60405161023891906122b3565b60405180910390f35b61025b60048036038101906102569190611d05565b610814565b6040516102689190612577565b60405180910390f35b6102796108cc565b6040516102869190612335565b60405180910390f35b6102a960048036038101906102a49190611e34565b61095e565b005b6102c560048036038101906102c09190611db9565b610adf565b005b6102e160048036038101906102dc9190611f43565b610b41565b6040516102ee9190612335565b60405180910390f35b610311600480360381019061030c9190611efe565b610c93565b005b61032d60048036038101906103289190611d2e565b610d0d565b60405161033a919061231a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610da1565b5b9050919050565b6060600080546104349061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546104609061279c565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e0b565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124b7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612517565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e77565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e77565b610d0d565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c906123f7565b60405180910390fd5b61064f8383610e7f565b505050565b60075481565b61066b610665610e77565b82610f38565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612537565b60405180910390fd5b6106b5838383611016565b505050565b6106d583838360405180602001604052806000815250610adf565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612557565b60405180910390fd5b61075e82611272565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612437565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612417565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546108db9061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546109079061279c565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050905090565b610966610e77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906123b7565b60405180910390fd5b80600560006109e1610e77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061231a565b60405180910390a35050565b610af0610aea610e77565b83610f38565b610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612537565b60405180910390fd5b610b3b848484846112c5565b50505050565b6060610b4c82610e0b565b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612497565b60405180910390fd5b6000600660008481526020019081526020016000208054610bab9061279c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd79061279c565b8015610c245780601f10610bf957610100808354040283529160200191610c24565b820191906000526020600020905b815481529060010190602001808311610c0757829003601f168201915b505050505090506000610c35611321565b9050600081511415610c4b578192505050610c8e565b600082511115610c80578082604051602001610c6892919061228f565b60405160208183030381529060405292505050610c8e565b610c8984611338565b925050505b919050565b610c9f336007546113df565b610cef60075483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506113fd565b600160076000828254610d02919061262b565b925050819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610ef283610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4382610e0b565b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906123d7565b60405180910390fd5b6000610f8d83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ffc57508373ffffffffffffffffffffffffffffffffffffffff16610fe4846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100d575061100c8185610d0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103682610762565b73ffffffffffffffffffffffffffffffffffffffff161461108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612397565b60405180910390fd5b611107838383611471565b611112600082610e7f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461116291906126b2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b9919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127b81611476565b600060066000838152602001908152602001600020805461129b9061279c565b9050146112c2576006600082815260200190815260200160002060006112c19190611b07565b5b50565b6112d0848484611016565b6112dc84848484611587565b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612357565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061134382610e0b565b611382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611379906124f7565b60405180910390fd5b600061138c611321565b905060008151116113ac57604051806020016040528060008152506113d7565b806113b68461171e565b6040516020016113c792919061228f565b6040516020818303038152906040525b915050919050565b6113f98282604051806020016040528060008152506118cb565b5050565b61140682610e0b565b611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612457565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061146c929190611b47565b505050565b505050565b600061148182610762565b905061148f81600084611471565b61149a600083610e7f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114ea91906126b2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006115a88473ffffffffffffffffffffffffffffffffffffffff16611926565b15611711578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026115d1610e77565b8786866040518563ffffffff1660e01b81526004016115f394939291906122ce565b602060405180830381600087803b15801561160d57600080fd5b505af192505050801561163e57506040513d601f19601f8201168201806040525081019061163b9190611ed5565b60015b6116c1573d806000811461166e576040519150601f19603f3d011682016040523d82523d6000602084013e611673565b606091505b506000815114156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612357565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611716565b600190505b949350505050565b60606000821415611766576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506118c6565b600082905060005b60008214611798578080611781906127ff565b915050600a826117919190612681565b915061176e565b60008167ffffffffffffffff8111156117da577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561180c5781602001600182028036833780820191505090505b5090505b600085146118bf5760018261182591906126b2565b9150600a856118349190612848565b6030611840919061262b565b60f81b81838151811061187c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856118b89190612681565b9450611810565b8093505050505b919050565b6118d58383611939565b6118e26000848484611587565b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612357565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612477565b60405180910390fd5b6119b281610e0b565b156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990612377565b60405180910390fd5b6119fe60008383611471565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a4e919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b508054611b139061279c565b6000825580601f10611b255750611b44565b601f016020900490600052602060002090810190611b439190611bcd565b5b50565b828054611b539061279c565b90600052602060002090601f016020900481019282611b755760008555611bbc565b82601f10611b8e57805160ff1916838001178555611bbc565b82800160010185558215611bbc579182015b82811115611bbb578251825591602001919060010190611ba0565b5b509050611bc99190611bcd565b5090565b5b80821115611be6576000816000905550600101611bce565b5090565b6000611bfd611bf8846125b7565b612592565b905082815260208101848484011115611c1557600080fd5b611c2084828561275a565b509392505050565b600081359050611c3781612e13565b92915050565b600081359050611c4c81612e2a565b92915050565b600081359050611c6181612e41565b92915050565b600081519050611c7681612e41565b92915050565b600082601f830112611c8d57600080fd5b8135611c9d848260208601611bea565b91505092915050565b60008083601f840112611cb857600080fd5b8235905067ffffffffffffffff811115611cd157600080fd5b602083019150836001820283011115611ce957600080fd5b9250929050565b600081359050611cff81612e58565b92915050565b600060208284031215611d1757600080fd5b6000611d2584828501611c28565b91505092915050565b60008060408385031215611d4157600080fd5b6000611d4f85828601611c28565b9250506020611d6085828601611c28565b9150509250929050565b600080600060608486031215611d7f57600080fd5b6000611d8d86828701611c28565b9350506020611d9e86828701611c28565b9250506040611daf86828701611cf0565b9150509250925092565b60008060008060808587031215611dcf57600080fd5b6000611ddd87828801611c28565b9450506020611dee87828801611c28565b9350506040611dff87828801611cf0565b925050606085013567ffffffffffffffff811115611e1c57600080fd5b611e2887828801611c7c565b91505092959194509250565b60008060408385031215611e4757600080fd5b6000611e5585828601611c28565b9250506020611e6685828601611c3d565b9150509250929050565b60008060408385031215611e8357600080fd5b6000611e9185828601611c28565b9250506020611ea285828601611cf0565b9150509250929050565b600060208284031215611ebe57600080fd5b6000611ecc84828501611c52565b91505092915050565b600060208284031215611ee757600080fd5b6000611ef584828501611c67565b91505092915050565b60008060208385031215611f1157600080fd5b600083013567ffffffffffffffff811115611f2b57600080fd5b611f3785828601611ca6565b92509250509250929050565b600060208284031215611f5557600080fd5b6000611f6384828501611cf0565b91505092915050565b611f75816126e6565b82525050565b611f84816126f8565b82525050565b6000611f95826125e8565b611f9f81856125fe565b9350611faf818560208601612769565b611fb881612935565b840191505092915050565b6000611fce826125f3565b611fd8818561260f565b9350611fe8818560208601612769565b611ff181612935565b840191505092915050565b6000612007826125f3565b6120118185612620565b9350612021818560208601612769565b80840191505092915050565b600061203a60328361260f565b915061204582612946565b604082019050919050565b600061205d601c8361260f565b915061206882612995565b602082019050919050565b600061208060248361260f565b915061208b826129be565b604082019050919050565b60006120a360198361260f565b91506120ae82612a0d565b602082019050919050565b60006120c6602c8361260f565b91506120d182612a36565b604082019050919050565b60006120e960388361260f565b91506120f482612a85565b604082019050919050565b600061210c602a8361260f565b915061211782612ad4565b604082019050919050565b600061212f60298361260f565b915061213a82612b23565b604082019050919050565b6000612152602e8361260f565b915061215d82612b72565b604082019050919050565b600061217560208361260f565b915061218082612bc1565b602082019050919050565b600061219860318361260f565b91506121a382612bea565b604082019050919050565b60006121bb602c8361260f565b91506121c682612c39565b604082019050919050565b60006121de60298361260f565b91506121e982612c88565b604082019050919050565b6000612201602f8361260f565b915061220c82612cd7565b604082019050919050565b600061222460218361260f565b915061222f82612d26565b604082019050919050565b600061224760318361260f565b915061225282612d75565b604082019050919050565b600061226a60238361260f565b915061227582612dc4565b604082019050919050565b61228981612750565b82525050565b600061229b8285611ffc565b91506122a78284611ffc565b91508190509392505050565b60006020820190506122c86000830184611f6c565b92915050565b60006080820190506122e36000830187611f6c565b6122f06020830186611f6c565b6122fd6040830185612280565b818103606083015261230f8184611f8a565b905095945050505050565b600060208201905061232f6000830184611f7b565b92915050565b6000602082019050818103600083015261234f8184611fc3565b905092915050565b600060208201905081810360008301526123708161202d565b9050919050565b6000602082019050818103600083015261239081612050565b9050919050565b600060208201905081810360008301526123b081612073565b9050919050565b600060208201905081810360008301526123d081612096565b9050919050565b600060208201905081810360008301526123f0816120b9565b9050919050565b60006020820190508181036000830152612410816120dc565b9050919050565b60006020820190508181036000830152612430816120ff565b9050919050565b6000602082019050818103600083015261245081612122565b9050919050565b6000602082019050818103600083015261247081612145565b9050919050565b6000602082019050818103600083015261249081612168565b9050919050565b600060208201905081810360008301526124b08161218b565b9050919050565b600060208201905081810360008301526124d0816121ae565b9050919050565b600060208201905081810360008301526124f0816121d1565b9050919050565b60006020820190508181036000830152612510816121f4565b9050919050565b6000602082019050818103600083015261253081612217565b9050919050565b600060208201905081810360008301526125508161223a565b9050919050565b600060208201905081810360008301526125708161225d565b9050919050565b600060208201905061258c6000830184612280565b92915050565b600061259c6125ad565b90506125a882826127ce565b919050565b6000604051905090565b600067ffffffffffffffff8211156125d2576125d1612906565b5b6125db82612935565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061263682612750565b915061264183612750565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561267657612675612879565b5b828201905092915050565b600061268c82612750565b915061269783612750565b9250826126a7576126a66128a8565b5b828204905092915050565b60006126bd82612750565b91506126c883612750565b9250828210156126db576126da612879565b5b828203905092915050565b60006126f182612730565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561278757808201518184015260208101905061276c565b83811115612796576000848401525b50505050565b600060028204905060018216806127b457607f821691505b602082108114156127c8576127c76128d7565b5b50919050565b6127d782612935565b810181811067ffffffffffffffff821117156127f6576127f5612906565b5b80604052505050565b600061280a82612750565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283d5761283c612879565b5b600182019050919050565b600061285382612750565b915061285e83612750565b92508261286e5761286d6128a8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e1c816126e6565b8114612e2757600080fd5b50565b612e33816126f8565b8114612e3e57600080fd5b50565b612e4a81612704565b8114612e5557600080fd5b50565b612e6181612750565b8114612e6c57600080fd5b5056fea2646970667358221220450c170b147f23ef2e7d9ba5dd576873827cdc58eb81e48dc3e22d0d7ebc1f2664736f6c63430008040033", "linkReferences": {}, "deployedLinkReferences": {} } From 1036baab689e28e6b6d0c3eedd52cb1f942a1618 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 4 Oct 2021 21:19:30 +0530 Subject: [PATCH 025/956] web3: markup execution estimation by twice instead --- dist/helpers/web3.js | 4 ++-- src/helpers/web3.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 7a4e5b880..5b473573e 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -107,7 +107,7 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr utx.from = addr; let tf = await w3.estimateGas(utx); if (i == addrs.length - 1) - tf = tf.mul(1.1); + tf = tf.mul(2); fee = fee.add(tf); } return new bignumber_js_1.default(fee.toString()); @@ -181,4 +181,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 798d27741..932b400e2 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -189,7 +189,7 @@ export async function web3HelperFactory( for (const [i, addr] of addrs.entries()) { utx.from = addr; let tf = await w3.estimateGas(utx); - if (i == addrs.length - 1) tf = tf.mul(1.1); + if (i == addrs.length - 1) tf = tf.mul(2); fee = fee.add(tf); } From 2039a6e32f53bb356c346baf8d67318554203656 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 4 Oct 2021 21:22:51 +0530 Subject: [PATCH 026/956] web3: fix token approval --- dist/helpers/web3.js | 4 ++-- src/helpers/web3.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 5b473573e..332f666f4 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -130,7 +130,7 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr const erc = new ethers_1.Contract(id.contract, fakeERC721_json_1.abi, w3); const ta = await erc .connect(sender) - .approve(await sender.getAddress(), id.token); + .approve(minter.address, id.token); await ta.wait(); const txr = await minter.connect(sender) .freeze_erc721(id.contract, id.token, chain_nonce, to, { value: ethers_1.BigNumber.from(txFees.toString()) }); @@ -181,4 +181,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 932b400e2..12a81a71a 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -243,7 +243,7 @@ export async function web3HelperFactory( const ta = await erc .connect(sender) .approve( - await sender.getAddress(), + minter.address, id.token, ); From f8cb5ca565b93535d039d88cbabf36097d987377 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 4 Oct 2021 21:34:58 +0530 Subject: [PATCH 027/956] update minter abi --- dist/Minter.json | 275 ++++++++++++++++++++++++++++------------------- src/Minter.json | 275 ++++++++++++++++++++++++++++------------------- 2 files changed, 330 insertions(+), 220 deletions(-) diff --git a/dist/Minter.json b/dist/Minter.json index db64243fc..893499c35 100644 --- a/dist/Minter.json +++ b/dist/Minter.json @@ -10,11 +10,21 @@ "name": "_validators", "type": "address[]" }, + { + "internalType": "contract IERC721[]", + "name": "_nft_whitelist", + "type": "address[]" + }, { "internalType": "uint16", "name": "_threshold", "type": "uint16" }, + { + "internalType": "contract XPNft", + "name": "_nft_token", + "type": "address" + }, { "internalType": "contract XPNet", "name": "_token", @@ -29,30 +39,25 @@ "inputs": [ { "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "string", - "name": "to", - "type": "string" - }, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "action_id", "type": "uint256" } ], - "name": "Transfer", + "name": "QuorumFailure", "type": "event" }, { @@ -70,6 +75,12 @@ "name": "chain_nonce", "type": "uint64" }, + { + "indexed": false, + "internalType": "uint256", + "name": "txFees", + "type": "uint256" + }, { "indexed": false, "internalType": "string", @@ -79,17 +90,11 @@ { "indexed": false, "internalType": "uint256", - "name": "id", + "name": "value", "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "contract_addr", - "type": "address" } ], - "name": "TransferErc1155", + "name": "Transfer", "type": "event" }, { @@ -107,6 +112,12 @@ "name": "chain_nonce", "type": "uint64" }, + { + "indexed": false, + "internalType": "uint256", + "name": "txFees", + "type": "uint256" + }, { "indexed": false, "internalType": "string", @@ -144,6 +155,12 @@ "name": "chain_nonce", "type": "uint64" }, + { + "indexed": false, + "internalType": "uint256", + "name": "txFees", + "type": "uint256" + }, { "indexed": false, "internalType": "string", @@ -169,6 +186,12 @@ "name": "action_id", "type": "uint256" }, + { + "indexed": false, + "internalType": "uint256", + "name": "txFees", + "type": "uint256" + }, { "indexed": false, "internalType": "string", @@ -185,6 +208,19 @@ "name": "UnfreezeNft", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, { "inputs": [ { @@ -196,6 +232,11 @@ "internalType": "string", "name": "to", "type": "string" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" } ], "name": "freeze", @@ -206,40 +247,29 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", + "internalType": "contract IERC721", + "name": "erc721_contract", "type": "address" }, { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" }, { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" }, { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" + "internalType": "string", + "name": "to", + "type": "string" } ], - "stateMutability": "pure", + "name": "freeze_erc721", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { @@ -256,21 +286,16 @@ }, { "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", + "name": "", "type": "uint256" }, { "internalType": "bytes", - "name": "data", + "name": "", "type": "bytes" } ], - "name": "onERC1155Received", + "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", @@ -281,57 +306,84 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { - "internalType": "address", - "name": "caller", - "type": "address" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" }, { "internalType": "address", - "name": "", + "name": "new_validator", "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" } ], - "name": "onERC721Received", - "outputs": [ + "name": "validate_add_validator", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bytes4", - "name": "", - "type": "bytes4" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" } ], + "name": "validate_pause_bridge", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "address", + "name": "old_validator", + "type": "address" } ], - "name": "supportsInterface", - "outputs": [ + "name": "validate_remove_validator", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "uint16", + "name": "new_threshold", + "type": "uint16" } ], - "stateMutability": "view", + "name": "validate_set_threshold", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -432,12 +484,12 @@ "type": "uint256" }, { - "internalType": "contract IERC1155", + "internalType": "contract IERC721", "name": "contract_addr", "type": "address" } ], - "name": "validate_unfreeze_erc1155", + "name": "validate_unfreeze_nft", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -448,16 +500,19 @@ "internalType": "uint128", "name": "action_id", "type": "uint128" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, + } + ], + "name": "validate_unpause_bridge", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" }, { "internalType": "contract IERC721", @@ -465,22 +520,22 @@ "type": "address" } ], - "name": "validate_unfreeze_erc721", + "name": "validate_whitelist_nft", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "validator_cnt", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" } ], - "stateMutability": "view", + "name": "validate_withdraw_fees", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -503,7 +558,7 @@ ], "name": "withdraw", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -521,12 +576,12 @@ ], "name": "withdraw_nft", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" } ], - "bytecode": "0x60806040526000600155620100006002553480156200001d57600080fd5b50604051620032d4380380620032d48339818101604052810190620000439190620002e8565b60008351116200008a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008190620003c7565b60405180910390fd5b60008261ffff16118015620000a4575082518261ffff1611155b620000e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000dd90620003a5565b60405180910390fd5b60005b8351811015620001a35760026004600086848151811062000133577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555080806200019a90620004e8565b915050620000e9565b5082516005819055508161ffff1660008190555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000645565b600062000218620002128462000412565b620003e9565b905080838252602082019050828560208602820111156200023857600080fd5b60005b858110156200026c578162000251888262000276565b8452602084019350602083019250506001810190506200023b565b5050509392505050565b6000815190506200028781620005f7565b92915050565b600082601f8301126200029f57600080fd5b8151620002b184826020860162000201565b91505092915050565b600081519050620002cb8162000611565b92915050565b600081519050620002e2816200062b565b92915050565b600080600060608486031215620002fe57600080fd5b600084015167ffffffffffffffff8111156200031957600080fd5b62000327868287016200028d565b93505060206200033a86828701620002d1565b92505060406200034d86828701620002ba565b9150509250925092565b60006200036660128362000441565b91506200037382620005a5565b602082019050919050565b60006200038d601d8362000441565b91506200039a82620005ce565b602082019050919050565b60006020820190508181036000830152620003c08162000357565b9050919050565b60006020820190508181036000830152620003e2816200037e565b9050919050565b6000620003f562000408565b9050620004038282620004b2565b919050565b6000604051905090565b600067ffffffffffffffff82111562000430576200042f62000565565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006200045f8262000488565b9050919050565b6000620004738262000452565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620004bd8262000594565b810181811067ffffffffffffffff82111715620004df57620004de62000565565b5b80604052505050565b6000620004f582620004a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200052b576200052a62000536565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f696e76616c6964207468726573686f6c64210000000000000000000000000000600082015250565b7f56616c696461746f7273206d757374206e6f7420626520656d70747921000000600082015250565b620006028162000452565b81146200060e57600080fd5b50565b6200061c8162000466565b81146200062857600080fd5b50565b62000636816200047a565b81146200064257600080fd5b50565b612c7f80620006556000396000f3fe6080604052600436106100c25760003560e01c8063453d73651161007f578063b6c1d66311610059578063b6c1d66314610267578063bc197c8114610292578063ef1d0dec146102cf578063f23a6e61146102f8576100c2565b8063453d7365146101d85780635df93c7e146102155780638b202d8f1461023e576100c2565b806301ffc9a7146100c75780630d11f0a414610104578063150b7a021461012d5780631a8220b71461016a578063218130c51461019357806336490fb2146101af575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611c73565b610335565b6040516100fb919061236c565b60405180910390f35b34801561011057600080fd5b5061012b60048036038101906101269190611c9c565b6103af565b005b34801561013957600080fd5b50610154600480360381019061014f9190611b61565b6103c0565b6040516101619190612387565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c9190611df0565b6104f8565b005b6101ad60048036038101906101a89190611f85565b6105fa565b005b3480156101bb57600080fd5b506101d660048036038101906101d19190611e53565b610699565b005b3480156101e457600080fd5b506101ff60048036038101906101fa9190611d84565b610798565b60405161020c9190612502565b60405180910390f35b34801561022157600080fd5b5061023c60048036038101906102379190611d35565b610987565b005b34801561024a57600080fd5b5061026560048036038101906102609190611f19565b610a8a565b005b34801561027357600080fd5b5061027c610a9d565b6040516102899190612502565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190611a95565b610aa3565b6040516102c69190612387565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190611eb6565b610afb565b005b34801561030457600080fd5b5061031f600480360381019061031a9190611be1565b610c1c565b60405161032c9190612387565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857506103a782610e26565b5b9050919050565b6103bb33848484610e90565b505050565b60008061041b600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610487600880878790506104339190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f2d2ba3dca5c42419d9063a114d3f6be9edf8650e8b35098bcd58e5995d6c11546001548383898c6040516104c295949392919061265e565b60405180910390a160018060008282546104dc919061273b565b9250508190555063150b7a0260e01b9250505095945050505050565b6000610505856003611247565b905060006001811115610541577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561057a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105f3578173ffffffffffffffffffffffffffffffffffffffff1663f242432a30868660016040518563ffffffff1660e01b81526004016105c094939291906122a6565b600060405180830381600087803b1580156105da57600080fd5b505af11580156105ee573d6000803e3d6000fd5b505050505b5050505050565b6000341161063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906123e2565b60405180910390fd5b7fae6cc388e6cb7ad146f221b7fb33b2336c24effe84937090deacde6f0c9e4f2b6001548383346040516106749493929190612612565b60405180910390a1600180600082825461068e919061273b565b925050819055505050565b60006106a6856003611247565b9050600060018111156106e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561071b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610791578173ffffffffffffffffffffffffffffffffffffffff166342842e0e3086866040518463ffffffff1660e01b815260040161075e9392919061226f565b600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b505050505b5050505050565b6000806107a6866001611247565b9050600060018111156107e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561081b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68660025460016040518463ffffffff1660e01b8152600401610883939291906122fe565b600060405180830381600087803b15801561089d57600080fd5b505af11580156108b1573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260025486866040518463ffffffff1660e01b81526004016109169392919061251d565b600060405180830381600087803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b5050505060016002600082825461095b919061273b565b9250508190555060016002546109719190612791565b91505061097f565b60009150505b949350505050565b6000610994846002611247565b9050600060018111156109d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a84578273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90612462565b60405180910390fd5b5b50505050565b610a9733858585856116a8565b50505050565b60055481565b600080610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906124c2565b60405180910390fd5b63bc197c8160e01b905098975050505050505050565b6000610b08856000611247565b905060006001811115610b44577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c1557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68486856040518463ffffffff1660e01b8152600401610be293929190612335565b600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b505050505b5050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610caa57611000851015610c9857610c9330610c8b876117e8565b8585886116a8565b610ca5565b610ca430848488610e90565b5b610e12565b60018414610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612482565b60405180910390fd5b6000610d47600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610db360088087879050610d5f9190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f491f05df58ecacc555aeb87b5abf28becc511fb5c227c0bfbaf2da3e6109335e60015483838a33604051610dee95949392919061265e565b60405180910390a16001806000828254610e08919061273b565b9250508190555050505b63f23a6e6160e01b90509695505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e89341c836040518263ffffffff1660e01b8152600401610eed9190612502565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610f429190611cf4565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca868460016040518463ffffffff1660e01b8152600401610fa4939291906122fe565b600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b81526004016110319190612596565b600060405180830381600087803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b505050507f1e2291a96615bb70cc8395e1493605485ea5df7d0d6eed27295e95368bcd185e60015485858460405161109a949392919061254f565b60405180910390a160018060008282546110b4919061273b565b925050819055505050505050565b60006008826110d1919061273b565b83511015611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b90612402565b60405180910390fd5b60008260088501015190508091505092915050565b606081601f83611139919061273b565b101561117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612422565b60405180910390fd5b8183611186919061273b565b845110156111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c0906124a2565b60405180910390fd5b60608215600081146111ea576040519150600082526020820160405261123b565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611228578051835260208301925060208101905061120b565b50868552601f19601f8301166040525050505b50809150509392505050565b60006002600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d2906123a2565b60405180910390fd5b600060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561140b576040518060400160405280836003811115611362577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001600181525060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908360038111156113f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060208201518160010155905050611526565b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906123c2565b60405180910390fd5b600160066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461151e919061273b565b925050819055505b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060006001905060005460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561160357600090505b60055460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561169e5760066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550505b8091505092915050565b6110008467ffffffffffffffff16106116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906124e2565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161175593929190612335565b600060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050507fb58390b60b92155ee6f1561cf0f29316be0c0f26d248a7ff7e0b341f5fb2f898600154858585856040516117c09594939291906125c4565b60405180910390a160018060008282546117da919061273b565b925050819055505050505050565b600067ffffffffffffffff8016821115611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612442565b60405180910390fd5b819050919050565b600061185261184d846126dd565b6126b8565b90508281526020810184848401111561186a57600080fd5b6118758482856128c3565b509392505050565b600061189061188b846126dd565b6126b8565b9050828152602081018484840111156118a857600080fd5b6118b38482856128d2565b509392505050565b6000813590506118ca81612b91565b92915050565b6000813590506118df81612ba8565b92915050565b60008083601f8401126118f757600080fd5b8235905067ffffffffffffffff81111561191057600080fd5b60208301915083602082028301111561192857600080fd5b9250929050565b60008135905061193e81612bbf565b92915050565b60008083601f84011261195657600080fd5b8235905067ffffffffffffffff81111561196f57600080fd5b60208301915083600182028301111561198757600080fd5b9250929050565b60008135905061199d81612bd6565b92915050565b6000813590506119b281612bed565b92915050565b60008083601f8401126119ca57600080fd5b8235905067ffffffffffffffff8111156119e357600080fd5b6020830191508360018202830111156119fb57600080fd5b9250929050565b600082601f830112611a1357600080fd5b8135611a2384826020860161183f565b91505092915050565b600082601f830112611a3d57600080fd5b8151611a4d84826020860161187d565b91505092915050565b600081359050611a6581612c04565b92915050565b600081359050611a7a81612c1b565b92915050565b600081359050611a8f81612c32565b92915050565b60008060008060008060008060a0898b031215611ab157600080fd5b6000611abf8b828c016118bb565b9850506020611ad08b828c016118bb565b975050604089013567ffffffffffffffff811115611aed57600080fd5b611af98b828c016118e5565b9650965050606089013567ffffffffffffffff811115611b1857600080fd5b611b248b828c016118e5565b9450945050608089013567ffffffffffffffff811115611b4357600080fd5b611b4f8b828c01611944565b92509250509295985092959890939650565b600080600080600060808688031215611b7957600080fd5b6000611b87888289016118bb565b9550506020611b98888289016118bb565b9450506040611ba988828901611a6b565b935050606086013567ffffffffffffffff811115611bc657600080fd5b611bd288828901611944565b92509250509295509295909350565b60008060008060008060a08789031215611bfa57600080fd5b6000611c0889828a016118bb565b9650506020611c1989828a016118bb565b9550506040611c2a89828a01611a6b565b9450506060611c3b89828a01611a6b565b935050608087013567ffffffffffffffff811115611c5857600080fd5b611c6489828a01611944565b92509250509295509295509295565b600060208284031215611c8557600080fd5b6000611c938482850161192f565b91505092915050565b600080600060408486031215611cb157600080fd5b600084013567ffffffffffffffff811115611ccb57600080fd5b611cd7868287016119b8565b93509350506020611cea86828701611a6b565b9150509250925092565b600060208284031215611d0657600080fd5b600082015167ffffffffffffffff811115611d2057600080fd5b611d2c84828501611a2c565b91505092915050565b600080600060608486031215611d4a57600080fd5b6000611d5886828701611a56565b9350506020611d69868287016118d0565b9250506040611d7a86828701611a6b565b9150509250925092565b60008060008060608587031215611d9a57600080fd5b6000611da887828801611a56565b9450506020611db9878288016118bb565b935050604085013567ffffffffffffffff811115611dd657600080fd5b611de2878288016119b8565b925092505092959194509250565b60008060008060808587031215611e0657600080fd5b6000611e1487828801611a56565b9450506020611e25878288016118bb565b9350506040611e3687828801611a6b565b9250506060611e478782880161198e565b91505092959194509250565b60008060008060808587031215611e6957600080fd5b6000611e7787828801611a56565b9450506020611e88878288016118bb565b9350506040611e9987828801611a6b565b9250506060611eaa878288016119a3565b91505092959194509250565b60008060008060808587031215611ecc57600080fd5b6000611eda87828801611a56565b9450506020611eeb87828801611a80565b9350506040611efc878288016118bb565b9250506060611f0d87828801611a6b565b91505092959194509250565b60008060008060608587031215611f2f57600080fd5b6000611f3d87828801611a80565b945050602085013567ffffffffffffffff811115611f5a57600080fd5b611f66878288016119b8565b93509350506040611f7987828801611a6b565b91505092959194509250565b60008060408385031215611f9857600080fd5b6000611fa685828601611a80565b925050602083013567ffffffffffffffff811115611fc357600080fd5b611fcf85828601611a02565b9150509250929050565b611fe2816127c5565b82525050565b611ff1816127e9565b82525050565b612000816127f5565b82525050565b61200f8161289f565b82525050565b6000612021838561272a565b935061202e8385846128c3565b61203783612994565b840190509392505050565b600061204d8261270e565b612057818561272a565b93506120678185602086016128d2565b61207081612994565b840191505092915050565b600061208860108361272a565b9150612093826129a5565b602082019050919050565b60006120ab60148361272a565b91506120b6826129ce565b602082019050919050565b60006120ce60128361272a565b91506120d9826129f7565b602082019050919050565b60006120f160148361272a565b91506120fc82612a20565b602082019050919050565b6000612114600e8361272a565b915061211f82612a49565b602082019050919050565b600061213760268361272a565b915061214282612a72565b604082019050919050565b600061215a60148361272a565b915061216582612ac1565b602082019050919050565b600061217d60168361272a565b915061218882612aea565b602082019050919050565b60006121a0600083612719565b91506121ab82612b13565b600082019050919050565b60006121c360008361272a565b91506121ce82612b13565b600082019050919050565b60006121e660118361272a565b91506121f182612b16565b602082019050919050565b600061220960158361272a565b915061221482612b3f565b602082019050919050565b600061222c60158361272a565b915061223782612b68565b602082019050919050565b61224b81612881565b82525050565b61225a816128b1565b82525050565b6122698161288b565b82525050565b60006060820190506122846000830186611fd9565b6122916020830185611fd9565b61229e6040830184612242565b949350505050565b600060a0820190506122bb6000830187611fd9565b6122c86020830186611fd9565b6122d56040830185612242565b6122e26060830184612006565b81810360808301526122f381612193565b905095945050505050565b60006060820190506123136000830186611fd9565b6123206020830185612242565b61232d6040830184612006565b949350505050565b600060608201905061234a6000830186611fd9565b6123576020830185612251565b6123646040830184612242565b949350505050565b60006020820190506123816000830184611fe8565b92915050565b600060208201905061239c6000830184611ff7565b92915050565b600060208201905081810360008301526123bb8161207b565b9050919050565b600060208201905081810360008301526123db8161209e565b9050919050565b600060208201905081810360008301526123fb816120c1565b9050919050565b6000602082019050818103600083015261241b816120e4565b9050919050565b6000602082019050818103600083015261243b81612107565b9050919050565b6000602082019050818103600083015261245b8161212a565b9050919050565b6000602082019050818103600083015261247b8161214d565b9050919050565b6000602082019050818103600083015261249b81612170565b9050919050565b600060208201905081810360008301526124bb816121d9565b9050919050565b600060208201905081810360008301526124db816121fc565b9050919050565b600060208201905081810360008301526124fb8161221f565b9050919050565b60006020820190506125176000830184612242565b92915050565b60006040820190506125326000830186612242565b8181036020830152612545818486612015565b9050949350505050565b60006060820190506125646000830187612242565b8181036020830152612577818587612015565b9050818103604083015261258b8184612042565b905095945050505050565b60006040820190506125ab6000830184612242565b81810360208301526125bc816121b6565b905092915050565b60006080820190506125d96000830188612242565b6125e66020830187612260565b81810360408301526125f9818587612015565b90506126086060830184612242565b9695505050505050565b60006080820190506126276000830187612242565b6126346020830186612260565b81810360408301526126468185612042565b90506126556060830184612242565b95945050505050565b600060a0820190506126736000830188612242565b6126806020830187612260565b81810360408301526126928186612042565b90506126a16060830185612242565b6126ae6080830184611fd9565b9695505050505050565b60006126c26126d3565b90506126ce8282612905565b919050565b6000604051905090565b600067ffffffffffffffff8211156126f8576126f7612965565b5b61270182612994565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061274682612881565b915061275183612881565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561278657612785612936565b5b828201905092915050565b600061279c82612881565b91506127a783612881565b9250828210156127ba576127b9612936565b5b828203905092915050565b60006127d082612861565b9050919050565b60006127e282612861565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061282c826127c5565b9050919050565b600061283e826127c5565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006128aa82612881565b9050919050565b60006128bc8261288b565b9050919050565b82818337600083830152505050565b60005b838110156128f05780820151818401526020810190506128d5565b838111156128ff576000848401525b50505050565b61290e82612994565b810181811067ffffffffffffffff8211171561292d5761292c612965565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f76616c7565206d757374206265203e2030210000000000000000000000000000600082015250565b7f746f55696e7436345f6f75744f66426f756e6473000000000000000000000000600082015250565b7f736c6963655f6f766572666c6f77000000000000000000000000000000000000600082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203660008201527f3420626974730000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f5346542f465473206e6f7420737570706f727465642100000000000000000000600082015250565b50565b7f736c6963655f6f75744f66426f756e6473000000000000000000000000000000600082015250565b7f4d6574686f64206e6f7420737570706f72746564210000000000000000000000600082015250565b7f4e6f7420612046756e6769626c6520746f6b656e210000000000000000000000600082015250565b612b9a816127c5565b8114612ba557600080fd5b50565b612bb1816127d7565b8114612bbc57600080fd5b50565b612bc8816127f5565b8114612bd357600080fd5b50565b612bdf81612821565b8114612bea57600080fd5b50565b612bf681612833565b8114612c0157600080fd5b50565b612c0d81612845565b8114612c1857600080fd5b50565b612c2481612881565b8114612c2f57600080fd5b50565b612c3b8161288b565b8114612c4657600080fd5b5056fea2646970667358221220efd3b349cb0870470c3a67be5ced52ec66e5016b0be060f42b2a5b1efd7a9d6164736f6c63430008040033", - "deployedBytecode": "0x6080604052600436106100c25760003560e01c8063453d73651161007f578063b6c1d66311610059578063b6c1d66314610267578063bc197c8114610292578063ef1d0dec146102cf578063f23a6e61146102f8576100c2565b8063453d7365146101d85780635df93c7e146102155780638b202d8f1461023e576100c2565b806301ffc9a7146100c75780630d11f0a414610104578063150b7a021461012d5780631a8220b71461016a578063218130c51461019357806336490fb2146101af575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611c73565b610335565b6040516100fb919061236c565b60405180910390f35b34801561011057600080fd5b5061012b60048036038101906101269190611c9c565b6103af565b005b34801561013957600080fd5b50610154600480360381019061014f9190611b61565b6103c0565b6040516101619190612387565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c9190611df0565b6104f8565b005b6101ad60048036038101906101a89190611f85565b6105fa565b005b3480156101bb57600080fd5b506101d660048036038101906101d19190611e53565b610699565b005b3480156101e457600080fd5b506101ff60048036038101906101fa9190611d84565b610798565b60405161020c9190612502565b60405180910390f35b34801561022157600080fd5b5061023c60048036038101906102379190611d35565b610987565b005b34801561024a57600080fd5b5061026560048036038101906102609190611f19565b610a8a565b005b34801561027357600080fd5b5061027c610a9d565b6040516102899190612502565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190611a95565b610aa3565b6040516102c69190612387565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190611eb6565b610afb565b005b34801561030457600080fd5b5061031f600480360381019061031a9190611be1565b610c1c565b60405161032c9190612387565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857506103a782610e26565b5b9050919050565b6103bb33848484610e90565b505050565b60008061041b600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610487600880878790506104339190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f2d2ba3dca5c42419d9063a114d3f6be9edf8650e8b35098bcd58e5995d6c11546001548383898c6040516104c295949392919061265e565b60405180910390a160018060008282546104dc919061273b565b9250508190555063150b7a0260e01b9250505095945050505050565b6000610505856003611247565b905060006001811115610541577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561057a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105f3578173ffffffffffffffffffffffffffffffffffffffff1663f242432a30868660016040518563ffffffff1660e01b81526004016105c094939291906122a6565b600060405180830381600087803b1580156105da57600080fd5b505af11580156105ee573d6000803e3d6000fd5b505050505b5050505050565b6000341161063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906123e2565b60405180910390fd5b7fae6cc388e6cb7ad146f221b7fb33b2336c24effe84937090deacde6f0c9e4f2b6001548383346040516106749493929190612612565b60405180910390a1600180600082825461068e919061273b565b925050819055505050565b60006106a6856003611247565b9050600060018111156106e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561071b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610791578173ffffffffffffffffffffffffffffffffffffffff166342842e0e3086866040518463ffffffff1660e01b815260040161075e9392919061226f565b600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b505050505b5050505050565b6000806107a6866001611247565b9050600060018111156107e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561081b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68660025460016040518463ffffffff1660e01b8152600401610883939291906122fe565b600060405180830381600087803b15801561089d57600080fd5b505af11580156108b1573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260025486866040518463ffffffff1660e01b81526004016109169392919061251d565b600060405180830381600087803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b5050505060016002600082825461095b919061273b565b9250508190555060016002546109719190612791565b91505061097f565b60009150505b949350505050565b6000610994846002611247565b9050600060018111156109d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a84578273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90612462565b60405180910390fd5b5b50505050565b610a9733858585856116a8565b50505050565b60055481565b600080610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906124c2565b60405180910390fd5b63bc197c8160e01b905098975050505050505050565b6000610b08856000611247565b905060006001811115610b44577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c1557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68486856040518463ffffffff1660e01b8152600401610be293929190612335565b600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b505050505b5050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610caa57611000851015610c9857610c9330610c8b876117e8565b8585886116a8565b610ca5565b610ca430848488610e90565b5b610e12565b60018414610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612482565b60405180910390fd5b6000610d47600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610db360088087879050610d5f9190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f491f05df58ecacc555aeb87b5abf28becc511fb5c227c0bfbaf2da3e6109335e60015483838a33604051610dee95949392919061265e565b60405180910390a16001806000828254610e08919061273b565b9250508190555050505b63f23a6e6160e01b90509695505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e89341c836040518263ffffffff1660e01b8152600401610eed9190612502565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610f429190611cf4565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca868460016040518463ffffffff1660e01b8152600401610fa4939291906122fe565b600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b81526004016110319190612596565b600060405180830381600087803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b505050507f1e2291a96615bb70cc8395e1493605485ea5df7d0d6eed27295e95368bcd185e60015485858460405161109a949392919061254f565b60405180910390a160018060008282546110b4919061273b565b925050819055505050505050565b60006008826110d1919061273b565b83511015611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b90612402565b60405180910390fd5b60008260088501015190508091505092915050565b606081601f83611139919061273b565b101561117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612422565b60405180910390fd5b8183611186919061273b565b845110156111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c0906124a2565b60405180910390fd5b60608215600081146111ea576040519150600082526020820160405261123b565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611228578051835260208301925060208101905061120b565b50868552601f19601f8301166040525050505b50809150509392505050565b60006002600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d2906123a2565b60405180910390fd5b600060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561140b576040518060400160405280836003811115611362577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001600181525060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908360038111156113f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060208201518160010155905050611526565b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906123c2565b60405180910390fd5b600160066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461151e919061273b565b925050819055505b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060006001905060005460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561160357600090505b60055460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561169e5760066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550505b8091505092915050565b6110008467ffffffffffffffff16106116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906124e2565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161175593929190612335565b600060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050507fb58390b60b92155ee6f1561cf0f29316be0c0f26d248a7ff7e0b341f5fb2f898600154858585856040516117c09594939291906125c4565b60405180910390a160018060008282546117da919061273b565b925050819055505050505050565b600067ffffffffffffffff8016821115611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612442565b60405180910390fd5b819050919050565b600061185261184d846126dd565b6126b8565b90508281526020810184848401111561186a57600080fd5b6118758482856128c3565b509392505050565b600061189061188b846126dd565b6126b8565b9050828152602081018484840111156118a857600080fd5b6118b38482856128d2565b509392505050565b6000813590506118ca81612b91565b92915050565b6000813590506118df81612ba8565b92915050565b60008083601f8401126118f757600080fd5b8235905067ffffffffffffffff81111561191057600080fd5b60208301915083602082028301111561192857600080fd5b9250929050565b60008135905061193e81612bbf565b92915050565b60008083601f84011261195657600080fd5b8235905067ffffffffffffffff81111561196f57600080fd5b60208301915083600182028301111561198757600080fd5b9250929050565b60008135905061199d81612bd6565b92915050565b6000813590506119b281612bed565b92915050565b60008083601f8401126119ca57600080fd5b8235905067ffffffffffffffff8111156119e357600080fd5b6020830191508360018202830111156119fb57600080fd5b9250929050565b600082601f830112611a1357600080fd5b8135611a2384826020860161183f565b91505092915050565b600082601f830112611a3d57600080fd5b8151611a4d84826020860161187d565b91505092915050565b600081359050611a6581612c04565b92915050565b600081359050611a7a81612c1b565b92915050565b600081359050611a8f81612c32565b92915050565b60008060008060008060008060a0898b031215611ab157600080fd5b6000611abf8b828c016118bb565b9850506020611ad08b828c016118bb565b975050604089013567ffffffffffffffff811115611aed57600080fd5b611af98b828c016118e5565b9650965050606089013567ffffffffffffffff811115611b1857600080fd5b611b248b828c016118e5565b9450945050608089013567ffffffffffffffff811115611b4357600080fd5b611b4f8b828c01611944565b92509250509295985092959890939650565b600080600080600060808688031215611b7957600080fd5b6000611b87888289016118bb565b9550506020611b98888289016118bb565b9450506040611ba988828901611a6b565b935050606086013567ffffffffffffffff811115611bc657600080fd5b611bd288828901611944565b92509250509295509295909350565b60008060008060008060a08789031215611bfa57600080fd5b6000611c0889828a016118bb565b9650506020611c1989828a016118bb565b9550506040611c2a89828a01611a6b565b9450506060611c3b89828a01611a6b565b935050608087013567ffffffffffffffff811115611c5857600080fd5b611c6489828a01611944565b92509250509295509295509295565b600060208284031215611c8557600080fd5b6000611c938482850161192f565b91505092915050565b600080600060408486031215611cb157600080fd5b600084013567ffffffffffffffff811115611ccb57600080fd5b611cd7868287016119b8565b93509350506020611cea86828701611a6b565b9150509250925092565b600060208284031215611d0657600080fd5b600082015167ffffffffffffffff811115611d2057600080fd5b611d2c84828501611a2c565b91505092915050565b600080600060608486031215611d4a57600080fd5b6000611d5886828701611a56565b9350506020611d69868287016118d0565b9250506040611d7a86828701611a6b565b9150509250925092565b60008060008060608587031215611d9a57600080fd5b6000611da887828801611a56565b9450506020611db9878288016118bb565b935050604085013567ffffffffffffffff811115611dd657600080fd5b611de2878288016119b8565b925092505092959194509250565b60008060008060808587031215611e0657600080fd5b6000611e1487828801611a56565b9450506020611e25878288016118bb565b9350506040611e3687828801611a6b565b9250506060611e478782880161198e565b91505092959194509250565b60008060008060808587031215611e6957600080fd5b6000611e7787828801611a56565b9450506020611e88878288016118bb565b9350506040611e9987828801611a6b565b9250506060611eaa878288016119a3565b91505092959194509250565b60008060008060808587031215611ecc57600080fd5b6000611eda87828801611a56565b9450506020611eeb87828801611a80565b9350506040611efc878288016118bb565b9250506060611f0d87828801611a6b565b91505092959194509250565b60008060008060608587031215611f2f57600080fd5b6000611f3d87828801611a80565b945050602085013567ffffffffffffffff811115611f5a57600080fd5b611f66878288016119b8565b93509350506040611f7987828801611a6b565b91505092959194509250565b60008060408385031215611f9857600080fd5b6000611fa685828601611a80565b925050602083013567ffffffffffffffff811115611fc357600080fd5b611fcf85828601611a02565b9150509250929050565b611fe2816127c5565b82525050565b611ff1816127e9565b82525050565b612000816127f5565b82525050565b61200f8161289f565b82525050565b6000612021838561272a565b935061202e8385846128c3565b61203783612994565b840190509392505050565b600061204d8261270e565b612057818561272a565b93506120678185602086016128d2565b61207081612994565b840191505092915050565b600061208860108361272a565b9150612093826129a5565b602082019050919050565b60006120ab60148361272a565b91506120b6826129ce565b602082019050919050565b60006120ce60128361272a565b91506120d9826129f7565b602082019050919050565b60006120f160148361272a565b91506120fc82612a20565b602082019050919050565b6000612114600e8361272a565b915061211f82612a49565b602082019050919050565b600061213760268361272a565b915061214282612a72565b604082019050919050565b600061215a60148361272a565b915061216582612ac1565b602082019050919050565b600061217d60168361272a565b915061218882612aea565b602082019050919050565b60006121a0600083612719565b91506121ab82612b13565b600082019050919050565b60006121c360008361272a565b91506121ce82612b13565b600082019050919050565b60006121e660118361272a565b91506121f182612b16565b602082019050919050565b600061220960158361272a565b915061221482612b3f565b602082019050919050565b600061222c60158361272a565b915061223782612b68565b602082019050919050565b61224b81612881565b82525050565b61225a816128b1565b82525050565b6122698161288b565b82525050565b60006060820190506122846000830186611fd9565b6122916020830185611fd9565b61229e6040830184612242565b949350505050565b600060a0820190506122bb6000830187611fd9565b6122c86020830186611fd9565b6122d56040830185612242565b6122e26060830184612006565b81810360808301526122f381612193565b905095945050505050565b60006060820190506123136000830186611fd9565b6123206020830185612242565b61232d6040830184612006565b949350505050565b600060608201905061234a6000830186611fd9565b6123576020830185612251565b6123646040830184612242565b949350505050565b60006020820190506123816000830184611fe8565b92915050565b600060208201905061239c6000830184611ff7565b92915050565b600060208201905081810360008301526123bb8161207b565b9050919050565b600060208201905081810360008301526123db8161209e565b9050919050565b600060208201905081810360008301526123fb816120c1565b9050919050565b6000602082019050818103600083015261241b816120e4565b9050919050565b6000602082019050818103600083015261243b81612107565b9050919050565b6000602082019050818103600083015261245b8161212a565b9050919050565b6000602082019050818103600083015261247b8161214d565b9050919050565b6000602082019050818103600083015261249b81612170565b9050919050565b600060208201905081810360008301526124bb816121d9565b9050919050565b600060208201905081810360008301526124db816121fc565b9050919050565b600060208201905081810360008301526124fb8161221f565b9050919050565b60006020820190506125176000830184612242565b92915050565b60006040820190506125326000830186612242565b8181036020830152612545818486612015565b9050949350505050565b60006060820190506125646000830187612242565b8181036020830152612577818587612015565b9050818103604083015261258b8184612042565b905095945050505050565b60006040820190506125ab6000830184612242565b81810360208301526125bc816121b6565b905092915050565b60006080820190506125d96000830188612242565b6125e66020830187612260565b81810360408301526125f9818587612015565b90506126086060830184612242565b9695505050505050565b60006080820190506126276000830187612242565b6126346020830186612260565b81810360408301526126468185612042565b90506126556060830184612242565b95945050505050565b600060a0820190506126736000830188612242565b6126806020830187612260565b81810360408301526126928186612042565b90506126a16060830185612242565b6126ae6080830184611fd9565b9695505050505050565b60006126c26126d3565b90506126ce8282612905565b919050565b6000604051905090565b600067ffffffffffffffff8211156126f8576126f7612965565b5b61270182612994565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061274682612881565b915061275183612881565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561278657612785612936565b5b828201905092915050565b600061279c82612881565b91506127a783612881565b9250828210156127ba576127b9612936565b5b828203905092915050565b60006127d082612861565b9050919050565b60006127e282612861565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061282c826127c5565b9050919050565b600061283e826127c5565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006128aa82612881565b9050919050565b60006128bc8261288b565b9050919050565b82818337600083830152505050565b60005b838110156128f05780820151818401526020810190506128d5565b838111156128ff576000848401525b50505050565b61290e82612994565b810181811067ffffffffffffffff8211171561292d5761292c612965565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f76616c7565206d757374206265203e2030210000000000000000000000000000600082015250565b7f746f55696e7436345f6f75744f66426f756e6473000000000000000000000000600082015250565b7f736c6963655f6f766572666c6f77000000000000000000000000000000000000600082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203660008201527f3420626974730000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f5346542f465473206e6f7420737570706f727465642100000000000000000000600082015250565b50565b7f736c6963655f6f75744f66426f756e6473000000000000000000000000000000600082015250565b7f4d6574686f64206e6f7420737570706f72746564210000000000000000000000600082015250565b7f4e6f7420612046756e6769626c6520746f6b656e210000000000000000000000600082015250565b612b9a816127c5565b8114612ba557600080fd5b50565b612bb1816127d7565b8114612bbc57600080fd5b50565b612bc8816127f5565b8114612bd357600080fd5b50565b612bdf81612821565b8114612bea57600080fd5b50565b612bf681612833565b8114612c0157600080fd5b50565b612c0d81612845565b8114612c1857600080fd5b50565b612c2481612881565b8114612c2f57600080fd5b50565b612c3b8161288b565b8114612c4657600080fd5b5056fea2646970667358221220efd3b349cb0870470c3a67be5ced52ec66e5016b0be060f42b2a5b1efd7a9d6164736f6c63430008040033", + "bytecode": "0x60806040526000600255600060035560006004553480156200002057600080fd5b5060405162004f5d38038062004f5d833981810160405281019062000046919062000566565b60008060006101000a81548160ff0219169083151502179055506000855111620000a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200009e906200068a565b60405180910390fd5b60008361ffff16118015620000c1575084518361ffff1611155b62000103576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000fa9062000668565b60405180910390fd5b60005b855181101562000183576200016c8682815181106200014e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516007620002da60201b6200199f1790919060201c565b5080806200017a9062000802565b91505062000106565b5060005b84518110156200024157600260096000878481518110620001d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055508080620002389062000802565b91505062000187565b508261ffff1660018190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000993565b60006200030a836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200031260201b60201c565b905092915050565b60006200032683836200038c60201b60201c565b6200038157826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000386565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000620003c6620003c084620006d5565b620006ac565b90508083825260208201905082856020860282011115620003e657600080fd5b60005b858110156200041a5781620003ff888262000499565b845260208401935060208301925050600181019050620003e9565b5050509392505050565b60006200043b620004358462000704565b620006ac565b905080838252602082019050828560208602820111156200045b57600080fd5b60005b858110156200048f57816200047488826200050a565b8452602084019350602083019250506001810190506200045e565b5050509392505050565b600081519050620004aa8162000911565b92915050565b600082601f830112620004c257600080fd5b8151620004d4848260208601620003af565b91505092915050565b600082601f830112620004ef57600080fd5b81516200050184826020860162000424565b91505092915050565b6000815190506200051b816200092b565b92915050565b600081519050620005328162000945565b92915050565b60008151905062000549816200095f565b92915050565b600081519050620005608162000979565b92915050565b600080600080600060a086880312156200057f57600080fd5b600086015167ffffffffffffffff8111156200059a57600080fd5b620005a888828901620004b0565b955050602086015167ffffffffffffffff811115620005c657600080fd5b620005d488828901620004dd565b9450506040620005e7888289016200054f565b9350506060620005fa8882890162000538565b92505060806200060d8882890162000521565b9150509295509295909350565b60006200062960128362000733565b91506200063682620008bf565b602082019050919050565b600062000650601d8362000733565b91506200065d82620008e8565b602082019050919050565b6000602082019050818103600083015262000683816200061a565b9050919050565b60006020820190508181036000830152620006a58162000641565b9050919050565b6000620006b8620006cb565b9050620006c68282620007cc565b919050565b6000604051905090565b600067ffffffffffffffff821115620006f357620006f26200087f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156200072257620007216200087f565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006200075182620007a2565b9050919050565b6000620007658262000744565b9050919050565b6000620007798262000744565b9050919050565b60006200078d8262000744565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620007d782620008ae565b810181811067ffffffffffffffff82111715620007f957620007f86200087f565b5b80604052505050565b60006200080f82620007c2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000845576200084462000850565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f696e76616c6964207468726573686f6c64210000000000000000000000000000600082015250565b7f56616c696461746f7273206d757374206e6f7420626520656d70747921000000600082015250565b6200091c8162000744565b81146200092857600080fd5b50565b620009368162000758565b81146200094257600080fd5b50565b62000950816200076c565b81146200095c57600080fd5b50565b6200096a8162000780565b81146200097657600080fd5b50565b620009848162000794565b81146200099057600080fd5b50565b6145ba80620009a36000396000f3fe6080604052600436106100fe5760003560e01c80636d0446d911610095578063daf1396411610064578063daf13964146102f2578063e2ef22171461031b578063ef1d0dec14610337578063f30f44a114610360578063f325c75414610389576100fe565b80636d0446d91461026857806372536d4f146102915780638b202d8f146102ba578063cff75c78146102d6576100fe565b8063453d7365116100d1578063453d7365146101ae578063519de490146101eb5780635c975abb146102145780635df93c7e1461023f576100fe565b80630d11f0a414610103578063128e66bd1461011f578063150b7a0214610148578063270c1cb414610185575b600080fd5b61011d60048036038101906101189190612f38565b6103b2565b005b34801561012b57600080fd5b5061014660048036038101906101419190612ffa565b61044e565b005b34801561015457600080fd5b5061016f600480360381019061016a9190612e3d565b6105b3565b60405161017c91906138ab565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190612fd1565b6105c7565b005b3480156101ba57600080fd5b506101d560048036038101906101d09190613085565b6106ba565b6040516101e29190613b54565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d9190612fd1565b610984565b005b34801561022057600080fd5b50610229610a76565b6040516102369190613890565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613036565b610a8c565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612fd1565b610c27565b005b34801561029d57600080fd5b506102b860048036038101906102b391906130f1565b610cd2565b005b6102d460048036038101906102cf919061322f565b610f17565b005b6102f060048036038101906102eb919061329b565b610fb5565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612ffa565b6110ce565b005b61033560048036038101906103309190612eb8565b61128c565b005b34801561034357600080fd5b5061035e600480360381019061035991906131cc565b611497565b005b34801561036c57600080fd5b5061038760048036038101906103829190613154565b611660565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613190565b611848565b005b600034116103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90613a26565b60405180910390fd5b6103fd610a76565b1561043d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610434906139c6565b60405180910390fd5b610449338484846119cf565b505050565b610456610a76565b15610496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048d906139c6565b60405180910390fd5b6104aa816007611d3090919063ffffffff16565b156104ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e1906139e6565b60405180910390fd5b6000816040516020016104fd91906137a8565b6040516020818303038152906040529050600061051c84600784611d60565b905060006001811115610558577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610591577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105ad576105ab83600761199f90919063ffffffff16565b505b50505050565b600063150b7a0260e01b9050949350505050565b6105cf610a76565b1561060f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610606906139c6565b60405180910390fd5b6000604051806020016040528060008152509050600061063183600584611d60565b90506000600181111561066d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156106a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156106b5576106b46124b1565b5b505050565b60006106c4610a76565b15610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906139c6565b60405180910390fd5b600060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040516020016107859190613ae1565b604051602081830303815290604052905060006107a487600184611d60565b9050600060018111156107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610819577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19876003546040518363ffffffff1660e01b815260040161087e929190613830565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260035487876040518463ffffffff1660e01b815260040161091193929190613b6f565b600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050506001600360008282546109569190613df8565b92505081905550600160035461096c9190613e7f565b9250505061097c565b6000925050505b949350505050565b61098c610a76565b6109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c2906138e6565b60405180910390fd5b600060405180602001604052806000815250905060006109ed83600684611d60565b905060006001811115610a29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a62577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a7157610a70612553565b5b505050565b60008060009054906101000a900460ff16905090565b610a94610a76565b15610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906139c6565b60405180910390fd5b600060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250604051602001610b119190613b03565b60405160208183030381529060405290506000610b3085600284611d60565b905060006001811115610b6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610ba5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c20578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1690613a66565b60405180910390fd5b5b5050505050565b60006040518060200160405280600081525090506000610c4983600a84611d60565b905060006001811115610c85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610cbe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610ccd57610ccc6125f4565b5b505050565b610cda610a76565b15610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d11906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390613aa6565b60405180910390fd5b600060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815250604051602001610e059190613b1e565b60405160208183030381529060405290506000610e2486600384611d60565b905060006001811115610e60577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610e99577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610f0f578273ffffffffffffffffffffffffffffffffffffffff166342842e0e3087876040518463ffffffff1660e01b8152600401610edc939291906137f9565b600060405180830381600087803b158015610ef657600080fd5b505af1158015610f0a573d6000803e3d6000fd5b505050505b505050505050565b60003411610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613a26565b60405180910390fd5b610f62610a76565b15610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906139c6565b60405180910390fd5b610faf33858585856126aa565b50505050565b610fbd610a76565b15610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906139c6565b60405180910390fd5b80341161103f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103690613926565b60405180910390fd5b7f88f79205ab1c13838c5021687f6e6e5840f03604b240c4f7441a657029b346e46002548483346110709190613e7f565b8585604051611083959493929190613cea565b60405180910390a160016002600082825461109e9190613df8565b9250508190555080346110b19190613e7f565b600460008282546110c29190613df8565b92505081905550505050565b6110d6610a76565b15611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d906139c6565b60405180910390fd5b600161112260076127b8565b61112c9190613e7f565b6001541115611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790613966565b60405180910390fd5b611184816007611d3090919063ffffffff16565b6111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906139a6565b60405180910390fd5b6000816040516020016111d691906137a8565b604051602081830303815290604052905060006111f584600884611d60565b905060006001811115611231577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561126a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611286576112848360076127cd90919063ffffffff16565b505b50505050565b600034116112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613a26565b60405180910390fd5b6112d7610a76565b15611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e906139c6565b60405180910390fd5b6002600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090613a46565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016113e6939291906137f9565b600060405180830381600087803b15801561140057600080fd5b505af1158015611414573d6000803e3d6000fd5b505050507fefd5d17615e8d78513f02fa7a2aab6ebdf2452857907b1293a10e321e9d5386b60025484348585898b6040516114559796959493929190613c80565b60405180910390a16001600260008282546114709190613df8565b9250508190555034600460008282546114899190613df8565b925050819055505050505050565b61149f610a76565b156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d6906139c6565b60405180910390fd5b600060405180606001604052808567ffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381525060405160200161152c9190613ac6565b6040516020818303038152906040529050600061154b86600084611d60565b905060006001811115611587577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156115c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561165857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68587866040518463ffffffff1660e01b815260040161162593929190613859565b600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050505b505050505050565b611668610a76565b156116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290613a06565b60405180910390fd5b60008160405160200161174e91906137a8565b6040516020818303038152906040529050600061176d84600484611d60565b9050600060018111156117a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156117e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611842576002600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b50505050565b611850610a76565b15611890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611887906139c6565b60405180910390fd5b61189a60076127b8565b8161ffff1611156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790613986565b60405180910390fd5b6000816040516020016118f391906137c3565b6040516020818303038152906040529050600061191284600984611d60565b90506000600181111561194e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115611987577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611999578261ffff166001819055505b50505050565b60006119c7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127fd565b905092915050565b8373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401611a419190613b54565b60206040518083038186803b158015611a5957600080fd5b505afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190612e14565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613a86565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b8152600401611b449190613b54565b60006040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b999190612f90565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b8152600401611bf69190613ba1565b600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68836040518263ffffffff1660e01b8152600401611c839190613b54565b600060405180830381600087803b158015611c9d57600080fd5b505af1158015611cb1573d6000803e3d6000fd5b505050507f9fa54a915c5d5d5ff39f445ca7c4b9bce03cbaf401223dbd10d1079fcdd0b56660025434868685604051611cee959493929190613bcf565b60405180910390a1600160026000828254611d099190613df8565b925050819055503460046000828254611d229190613df8565b925050819055505050505050565b6000611d58836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61286d565b905092915050565b6000611d76336007611d3090919063ffffffff16565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906138c6565b60405180910390fd5b6000600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611f1957604051806080016040528084600a811115611e3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001838152602001600181526020016001815250600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083600a811115611edb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151816001019080519060200190611efc929190612b07565b506040820151816002015560608201518160030155905050612293565b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613946565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461202c9190613df8565b9250508190555082600a81111561206c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600a8111156120ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212390613906565b60405180910390fd5b61220182600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101805461217590613fef565b80601f01602080910402602001604051908101604052809291908181526020018280546121a190613fef565b80156121ee5780601f106121c3576101008083540402835291602001916121ee565b820191906000526020600020905b8154815290600101906020018083116121d157829003601f168201915b505050505061289090919063ffffffff16565b612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613906565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825461228b9190613df8565b925050819055505b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600060019050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060020154141561237057600090505b61237a60076127b8565b600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414156124a657600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556001820160006124179190612b8d565b600282016000905560038201600090555050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410156124a5577fe22e1372cd6c9720ae7fc7854536a963d13d9996efde6038cbcecac7ff182e078560405161249c9190613b39565b60405180910390a15b5b809150509392505050565b6124b9610a76565b156124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f0906139c6565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861253c6128fd565b60405161254991906137de565b60405180910390a1565b61255b610a76565b61259a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612591906138e6565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6125dd6128fd565b6040516125ea91906137de565b60405180910390a1565b600061260060076127b8565b90506000816004546126129190613e4e565b905060005b828110156126a55761263381600761290590919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612678573d6000803e3d6000fd5b50816004600082825461268b9190613e7f565b92505081905550808061269d90614052565b915050612617565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161270993929190613859565b600060405180830381600087803b15801561272357600080fd5b505af1158015612737573d6000803e3d6000fd5b505050507f135c92cfa1cfe8e46534cd8748b74ee2505948ac3023824a91dc57ffda5f5b4c600254853486868660405161277696959493929190613c24565b60405180910390a16001600260008282546127919190613df8565b9250508190555034600460008282546127aa9190613df8565b925050819055505050505050565b60006127c68260000161291f565b9050919050565b60006127f5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612930565b905092915050565b6000612809838361286d565b612862578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612867565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008060019050835183518114600181146128ae57600092506128f1565b600160208701838101602088015b6002848385100114156128ec5780518351146128db5760009650600093505b6020830192506020810190506128bc565b505050505b50508091505092915050565b600033905090565b60006129148360000183612ab6565b60001c905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114612aaa5760006001826129629190613e7f565b905060006001866000018054905061297a9190613e7f565b9050818114612a355760008660000182815481106129c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612a6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612ab0565b60009150505b92915050565b6000826000018281548110612af4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b828054612b1390613fef565b90600052602060002090601f016020900481019282612b355760008555612b7c565b82601f10612b4e57805160ff1916838001178555612b7c565b82800160010185558215612b7c579182015b82811115612b7b578251825591602001919060010190612b60565b5b509050612b899190612bcd565b5090565b508054612b9990613fef565b6000825580601f10612bab5750612bca565b601f016020900490600052602060002090810190612bc99190612bcd565b5b50565b5b80821115612be6576000816000905550600101612bce565b5090565b6000612bfd612bf884613d69565b613d44565b905082815260208101848484011115612c1557600080fd5b612c20848285613fad565b509392505050565b6000612c3b612c3684613d9a565b613d44565b905082815260208101848484011115612c5357600080fd5b612c5e848285613fad565b509392505050565b6000612c79612c7484613d9a565b613d44565b905082815260208101848484011115612c9157600080fd5b612c9c848285613fbc565b509392505050565b600081359050612cb3816144e3565b92915050565b600081519050612cc8816144e3565b92915050565b600081359050612cdd816144fa565b92915050565b600082601f830112612cf457600080fd5b8135612d04848260208601612bea565b91505092915050565b600081359050612d1c81614511565b92915050565b60008083601f840112612d3457600080fd5b8235905067ffffffffffffffff811115612d4d57600080fd5b602083019150836001820283011115612d6557600080fd5b9250929050565b600082601f830112612d7d57600080fd5b8135612d8d848260208601612c28565b91505092915050565b600082601f830112612da757600080fd5b8151612db7848260208601612c66565b91505092915050565b600081359050612dcf81614528565b92915050565b600081359050612de48161453f565b92915050565b600081359050612df981614556565b92915050565b600081359050612e0e8161456d565b92915050565b600060208284031215612e2657600080fd5b6000612e3484828501612cb9565b91505092915050565b60008060008060808587031215612e5357600080fd5b6000612e6187828801612ca4565b9450506020612e7287828801612ca4565b9350506040612e8387828801612dea565b925050606085013567ffffffffffffffff811115612ea057600080fd5b612eac87828801612ce3565b91505092959194509250565b600080600080600060808688031215612ed057600080fd5b6000612ede88828901612d0d565b9550506020612eef88828901612dea565b9450506040612f0088828901612dff565b935050606086013567ffffffffffffffff811115612f1d57600080fd5b612f2988828901612d22565b92509250509295509295909350565b600080600060408486031215612f4d57600080fd5b600084013567ffffffffffffffff811115612f6757600080fd5b612f7386828701612d22565b93509350506020612f8686828701612dea565b9150509250925092565b600060208284031215612fa257600080fd5b600082015167ffffffffffffffff811115612fbc57600080fd5b612fc884828501612d96565b91505092915050565b600060208284031215612fe357600080fd5b6000612ff184828501612dc0565b91505092915050565b6000806040838503121561300d57600080fd5b600061301b85828601612dc0565b925050602061302c85828601612ca4565b9150509250929050565b60008060006060848603121561304b57600080fd5b600061305986828701612dc0565b935050602061306a86828701612cce565b925050604061307b86828701612dea565b9150509250925092565b6000806000806060858703121561309b57600080fd5b60006130a987828801612dc0565b94505060206130ba87828801612ca4565b935050604085013567ffffffffffffffff8111156130d757600080fd5b6130e387828801612d22565b925092505092959194509250565b6000806000806080858703121561310757600080fd5b600061311587828801612dc0565b945050602061312687828801612ca4565b935050604061313787828801612dea565b925050606061314887828801612d0d565b91505092959194509250565b6000806040838503121561316757600080fd5b600061317585828601612dc0565b925050602061318685828601612d0d565b9150509250929050565b600080604083850312156131a357600080fd5b60006131b185828601612dc0565b92505060206131c285828601612dd5565b9150509250929050565b600080600080608085870312156131e257600080fd5b60006131f087828801612dc0565b945050602061320187828801612dff565b935050604061321287828801612ca4565b925050606061322387828801612dea565b91505092959194509250565b6000806000806060858703121561324557600080fd5b600061325387828801612dff565b945050602085013567ffffffffffffffff81111561327057600080fd5b61327c87828801612d22565b9350935050604061328f87828801612dea565b91505092959194509250565b6000806000606084860312156132b057600080fd5b60006132be86828701612dff565b935050602084013567ffffffffffffffff8111156132db57600080fd5b6132e786828701612d6c565b92505060406132f886828701612dea565b9150509250925092565b61330b81613eb3565b82525050565b61331a81613eb3565b82525050565b61333161332c82613eb3565b61409b565b82525050565b61334081613ed7565b82525050565b61334f81613ee3565b82525050565b60006133618385613de7565b935061336e838584613fad565b6133778361418d565b840190509392505050565b600061338d82613dcb565b6133978185613dd6565b93506133a7818560208601613fbc565b6133b08161418d565b840191505092915050565b60006133c682613dcb565b6133d08185613de7565b93506133e0818560208601613fbc565b6133e98161418d565b840191505092915050565b6000613401601083613de7565b915061340c826141b8565b602082019050919050565b6000613424601483613de7565b915061342f826141e1565b602082019050919050565b6000613447600f83613de7565b91506134528261420a565b602082019050919050565b600061346a602983613de7565b915061347582614233565b604082019050919050565b600061348d601483613de7565b915061349882614282565b602082019050919050565b60006134b0603483613de7565b91506134bb826142ab565b604082019050919050565b60006134d3602783613de7565b91506134de826142fa565b604082019050919050565b60006134f6602083613de7565b915061350182614349565b602082019050919050565b6000613519601083613de7565b915061352482614372565b602082019050919050565b600061353c601383613de7565b91506135478261439b565b602082019050919050565b600061355f601783613de7565b915061356a826143c4565b602082019050919050565b6000613582601483613de7565b915061358d826143ed565b602082019050919050565b60006135a5602483613de7565b91506135b082614416565b604082019050919050565b60006135c8601483613de7565b91506135d382614465565b602082019050919050565b60006135eb601783613de7565b91506135f68261448e565b602082019050919050565b600061360e600083613de7565b9150613619826144b7565b600082019050919050565b6000613631601583613de7565b915061363c826144ba565b602082019050919050565b60608201600082015161365d600085018261378a565b5060208201516136706020850182613302565b506040820151613683604085018261375d565b50505050565b60006040830160008301516136a16000860182613302565b50602083015184820360208601526136b98282613382565b9150508091505092915050565b6040820160008201516136dc6000850182613302565b5060208201516136ef602085018261375d565b50505050565b60608201600082015161370b6000850182613302565b50602082015161371e602085018261375d565b5060408201516137316040850182613302565b50505050565b61374081613f89565b82525050565b61375761375282613f3d565b6140ad565b82525050565b61376681613f6b565b82525050565b61377581613f6b565b82525050565b61378481613f9b565b82525050565b61379381613f75565b82525050565b6137a281613f75565b82525050565b60006137b48284613320565b60148201915081905092915050565b60006137cf8284613746565b60028201915081905092915050565b60006020820190506137f36000830184613311565b92915050565b600060608201905061380e6000830186613311565b61381b6020830185613311565b613828604083018461376c565b949350505050565b60006040820190506138456000830185613311565b613852602083018461376c565b9392505050565b600060608201905061386e6000830186613311565b61387b602083018561377b565b613888604083018461376c565b949350505050565b60006020820190506138a56000830184613337565b92915050565b60006020820190506138c06000830184613346565b92915050565b600060208201905081810360008301526138df816133f4565b9050919050565b600060208201905081810360008301526138ff81613417565b9050919050565b6000602082019050818103600083015261391f8161343a565b9050919050565b6000602082019050818103600083015261393f8161345d565b9050919050565b6000602082019050818103600083015261395f81613480565b9050919050565b6000602082019050818103600083015261397f816134a3565b9050919050565b6000602082019050818103600083015261399f816134c6565b9050919050565b600060208201905081810360008301526139bf816134e9565b9050919050565b600060208201905081810360008301526139df8161350c565b9050919050565b600060208201905081810360008301526139ff8161352f565b9050919050565b60006020820190508181036000830152613a1f81613552565b9050919050565b60006020820190508181036000830152613a3f81613575565b9050919050565b60006020820190508181036000830152613a5f81613598565b9050919050565b60006020820190508181036000830152613a7f816135bb565b9050919050565b60006020820190508181036000830152613a9f816135de565b9050919050565b60006020820190508181036000830152613abf81613624565b9050919050565b6000606082019050613adb6000830184613647565b92915050565b60006020820190508181036000830152613afb8184613689565b905092915050565b6000604082019050613b1860008301846136c6565b92915050565b6000606082019050613b3360008301846136f5565b92915050565b6000602082019050613b4e6000830184613737565b92915050565b6000602082019050613b69600083018461376c565b92915050565b6000604082019050613b84600083018661376c565b8181036020830152613b97818486613355565b9050949350505050565b6000604082019050613bb6600083018461376c565b8181036020830152613bc781613601565b905092915050565b6000608082019050613be4600083018861376c565b613bf1602083018761376c565b8181036040830152613c04818587613355565b90508181036060830152613c1881846133bb565b90509695505050505050565b600060a082019050613c39600083018961376c565b613c466020830188613799565b613c53604083018761376c565b8181036060830152613c66818587613355565b9050613c75608083018461376c565b979650505050505050565b600060c082019050613c95600083018a61376c565b613ca26020830189613799565b613caf604083018861376c565b8181036060830152613cc2818688613355565b9050613cd1608083018561376c565b613cde60a0830184613311565b98975050505050505050565b600060a082019050613cff600083018861376c565b613d0c6020830187613799565b613d19604083018661376c565b8181036060830152613d2b81856133bb565b9050613d3a608083018461376c565b9695505050505050565b6000613d4e613d5f565b9050613d5a8282614021565b919050565b6000604051905090565b600067ffffffffffffffff821115613d8457613d8361415e565b5b613d8d8261418d565b9050602081019050919050565b600067ffffffffffffffff821115613db557613db461415e565b5b613dbe8261418d565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e0382613f6b565b9150613e0e83613f6b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e4357613e426140d1565b5b828201905092915050565b6000613e5982613f6b565b9150613e6483613f6b565b925082613e7457613e73614100565b5b828204905092915050565b6000613e8a82613f6b565b9150613e9583613f6b565b925082821015613ea857613ea76140d1565b5b828203905092915050565b6000613ebe82613f4b565b9050919050565b6000613ed082613f4b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000613f1a82613eb3565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000613f9482613f21565b9050919050565b6000613fa682613f75565b9050919050565b82818337600083830152505050565b60005b83811015613fda578082015181840152602081019050613fbf565b83811115613fe9576000848401525b50505050565b6000600282049050600182168061400757607f821691505b6020821081141561401b5761401a61412f565b5b50919050565b61402a8261418d565b810181811067ffffffffffffffff821117156140495761404861415e565b5b80604052505050565b600061405d82613f6b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140905761408f6140d1565b5b600182019050919050565b60006140a6826140bf565b9050919050565b60006140b88261419e565b9050919050565b60006140ca826141ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f01b9050919050565b60008160601b9050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f416374696f6e204d69736d617463680000000000000000000000000000000000600082015250565b7f6d7573742070617920626f74682076616c756520616e64207472616e7361637460008201527f696f6e2066656573210000000000000000000000000000000000000000000000602082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f75706461746520746865207468726573686f6c64206265666f72652072656d6f60008201527f76696e6720746869732076616c696461746f7221000000000000000000000000602082015250565b7f76616c696461746f7273206d757374206265203c3d2076616c696461746f727360008201527f206c656e67746800000000000000000000000000000000000000000000000000602082015250565b7f676976656e2061646472657373206973206e6f7420612076616c696461746f72600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f616c726561647920612076616c696461746f7200000000000000000000000000600082015250565b7f4e465420616c72656164792077686974656c6973746564000000000000000000600082015250565b7f5478204665657320697320726571756972656421000000000000000000000000600082015250565b7f54686973204e465420636f6e7472616374206973206e6f742077686974656c6960008201527f7374656400000000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f596f7520646f6e2774206f776e2074686973206e667421000000000000000000600082015250565b50565b7f4e4654206e6f742077686974656c69737465643f210000000000000000000000600082015250565b6144ec81613eb3565b81146144f757600080fd5b50565b61450381613ec5565b811461450e57600080fd5b50565b61451a81613f0f565b811461452557600080fd5b50565b61453181613f21565b811461453c57600080fd5b50565b61454881613f3d565b811461455357600080fd5b50565b61455f81613f6b565b811461456a57600080fd5b50565b61457681613f75565b811461458157600080fd5b5056fea2646970667358221220a659c1fdb7743f7a286cb8aef43425cab05c2f792ea5465274023c94e5d4bdad64736f6c63430008040033", + "deployedBytecode": "0x6080604052600436106100fe5760003560e01c80636d0446d911610095578063daf1396411610064578063daf13964146102f2578063e2ef22171461031b578063ef1d0dec14610337578063f30f44a114610360578063f325c75414610389576100fe565b80636d0446d91461026857806372536d4f146102915780638b202d8f146102ba578063cff75c78146102d6576100fe565b8063453d7365116100d1578063453d7365146101ae578063519de490146101eb5780635c975abb146102145780635df93c7e1461023f576100fe565b80630d11f0a414610103578063128e66bd1461011f578063150b7a0214610148578063270c1cb414610185575b600080fd5b61011d60048036038101906101189190612f38565b6103b2565b005b34801561012b57600080fd5b5061014660048036038101906101419190612ffa565b61044e565b005b34801561015457600080fd5b5061016f600480360381019061016a9190612e3d565b6105b3565b60405161017c91906138ab565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190612fd1565b6105c7565b005b3480156101ba57600080fd5b506101d560048036038101906101d09190613085565b6106ba565b6040516101e29190613b54565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d9190612fd1565b610984565b005b34801561022057600080fd5b50610229610a76565b6040516102369190613890565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613036565b610a8c565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612fd1565b610c27565b005b34801561029d57600080fd5b506102b860048036038101906102b391906130f1565b610cd2565b005b6102d460048036038101906102cf919061322f565b610f17565b005b6102f060048036038101906102eb919061329b565b610fb5565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612ffa565b6110ce565b005b61033560048036038101906103309190612eb8565b61128c565b005b34801561034357600080fd5b5061035e600480360381019061035991906131cc565b611497565b005b34801561036c57600080fd5b5061038760048036038101906103829190613154565b611660565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613190565b611848565b005b600034116103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90613a26565b60405180910390fd5b6103fd610a76565b1561043d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610434906139c6565b60405180910390fd5b610449338484846119cf565b505050565b610456610a76565b15610496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048d906139c6565b60405180910390fd5b6104aa816007611d3090919063ffffffff16565b156104ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e1906139e6565b60405180910390fd5b6000816040516020016104fd91906137a8565b6040516020818303038152906040529050600061051c84600784611d60565b905060006001811115610558577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610591577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105ad576105ab83600761199f90919063ffffffff16565b505b50505050565b600063150b7a0260e01b9050949350505050565b6105cf610a76565b1561060f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610606906139c6565b60405180910390fd5b6000604051806020016040528060008152509050600061063183600584611d60565b90506000600181111561066d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156106a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156106b5576106b46124b1565b5b505050565b60006106c4610a76565b15610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906139c6565b60405180910390fd5b600060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040516020016107859190613ae1565b604051602081830303815290604052905060006107a487600184611d60565b9050600060018111156107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610819577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19876003546040518363ffffffff1660e01b815260040161087e929190613830565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260035487876040518463ffffffff1660e01b815260040161091193929190613b6f565b600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050506001600360008282546109569190613df8565b92505081905550600160035461096c9190613e7f565b9250505061097c565b6000925050505b949350505050565b61098c610a76565b6109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c2906138e6565b60405180910390fd5b600060405180602001604052806000815250905060006109ed83600684611d60565b905060006001811115610a29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a62577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a7157610a70612553565b5b505050565b60008060009054906101000a900460ff16905090565b610a94610a76565b15610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906139c6565b60405180910390fd5b600060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250604051602001610b119190613b03565b60405160208183030381529060405290506000610b3085600284611d60565b905060006001811115610b6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610ba5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c20578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1690613a66565b60405180910390fd5b5b5050505050565b60006040518060200160405280600081525090506000610c4983600a84611d60565b905060006001811115610c85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610cbe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610ccd57610ccc6125f4565b5b505050565b610cda610a76565b15610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d11906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390613aa6565b60405180910390fd5b600060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815250604051602001610e059190613b1e565b60405160208183030381529060405290506000610e2486600384611d60565b905060006001811115610e60577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610e99577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610f0f578273ffffffffffffffffffffffffffffffffffffffff166342842e0e3087876040518463ffffffff1660e01b8152600401610edc939291906137f9565b600060405180830381600087803b158015610ef657600080fd5b505af1158015610f0a573d6000803e3d6000fd5b505050505b505050505050565b60003411610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613a26565b60405180910390fd5b610f62610a76565b15610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906139c6565b60405180910390fd5b610faf33858585856126aa565b50505050565b610fbd610a76565b15610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906139c6565b60405180910390fd5b80341161103f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103690613926565b60405180910390fd5b7f88f79205ab1c13838c5021687f6e6e5840f03604b240c4f7441a657029b346e46002548483346110709190613e7f565b8585604051611083959493929190613cea565b60405180910390a160016002600082825461109e9190613df8565b9250508190555080346110b19190613e7f565b600460008282546110c29190613df8565b92505081905550505050565b6110d6610a76565b15611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d906139c6565b60405180910390fd5b600161112260076127b8565b61112c9190613e7f565b6001541115611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790613966565b60405180910390fd5b611184816007611d3090919063ffffffff16565b6111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906139a6565b60405180910390fd5b6000816040516020016111d691906137a8565b604051602081830303815290604052905060006111f584600884611d60565b905060006001811115611231577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561126a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611286576112848360076127cd90919063ffffffff16565b505b50505050565b600034116112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613a26565b60405180910390fd5b6112d7610a76565b15611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e906139c6565b60405180910390fd5b6002600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090613a46565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016113e6939291906137f9565b600060405180830381600087803b15801561140057600080fd5b505af1158015611414573d6000803e3d6000fd5b505050507fefd5d17615e8d78513f02fa7a2aab6ebdf2452857907b1293a10e321e9d5386b60025484348585898b6040516114559796959493929190613c80565b60405180910390a16001600260008282546114709190613df8565b9250508190555034600460008282546114899190613df8565b925050819055505050505050565b61149f610a76565b156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d6906139c6565b60405180910390fd5b600060405180606001604052808567ffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381525060405160200161152c9190613ac6565b6040516020818303038152906040529050600061154b86600084611d60565b905060006001811115611587577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156115c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561165857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68587866040518463ffffffff1660e01b815260040161162593929190613859565b600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050505b505050505050565b611668610a76565b156116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290613a06565b60405180910390fd5b60008160405160200161174e91906137a8565b6040516020818303038152906040529050600061176d84600484611d60565b9050600060018111156117a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156117e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611842576002600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b50505050565b611850610a76565b15611890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611887906139c6565b60405180910390fd5b61189a60076127b8565b8161ffff1611156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790613986565b60405180910390fd5b6000816040516020016118f391906137c3565b6040516020818303038152906040529050600061191284600984611d60565b90506000600181111561194e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115611987577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611999578261ffff166001819055505b50505050565b60006119c7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127fd565b905092915050565b8373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401611a419190613b54565b60206040518083038186803b158015611a5957600080fd5b505afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190612e14565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613a86565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b8152600401611b449190613b54565b60006040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b999190612f90565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b8152600401611bf69190613ba1565b600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68836040518263ffffffff1660e01b8152600401611c839190613b54565b600060405180830381600087803b158015611c9d57600080fd5b505af1158015611cb1573d6000803e3d6000fd5b505050507f9fa54a915c5d5d5ff39f445ca7c4b9bce03cbaf401223dbd10d1079fcdd0b56660025434868685604051611cee959493929190613bcf565b60405180910390a1600160026000828254611d099190613df8565b925050819055503460046000828254611d229190613df8565b925050819055505050505050565b6000611d58836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61286d565b905092915050565b6000611d76336007611d3090919063ffffffff16565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906138c6565b60405180910390fd5b6000600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611f1957604051806080016040528084600a811115611e3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001838152602001600181526020016001815250600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083600a811115611edb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151816001019080519060200190611efc929190612b07565b506040820151816002015560608201518160030155905050612293565b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613946565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461202c9190613df8565b9250508190555082600a81111561206c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600a8111156120ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212390613906565b60405180910390fd5b61220182600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101805461217590613fef565b80601f01602080910402602001604051908101604052809291908181526020018280546121a190613fef565b80156121ee5780601f106121c3576101008083540402835291602001916121ee565b820191906000526020600020905b8154815290600101906020018083116121d157829003601f168201915b505050505061289090919063ffffffff16565b612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613906565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825461228b9190613df8565b925050819055505b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600060019050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060020154141561237057600090505b61237a60076127b8565b600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414156124a657600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556001820160006124179190612b8d565b600282016000905560038201600090555050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410156124a5577fe22e1372cd6c9720ae7fc7854536a963d13d9996efde6038cbcecac7ff182e078560405161249c9190613b39565b60405180910390a15b5b809150509392505050565b6124b9610a76565b156124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f0906139c6565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861253c6128fd565b60405161254991906137de565b60405180910390a1565b61255b610a76565b61259a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612591906138e6565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6125dd6128fd565b6040516125ea91906137de565b60405180910390a1565b600061260060076127b8565b90506000816004546126129190613e4e565b905060005b828110156126a55761263381600761290590919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612678573d6000803e3d6000fd5b50816004600082825461268b9190613e7f565b92505081905550808061269d90614052565b915050612617565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161270993929190613859565b600060405180830381600087803b15801561272357600080fd5b505af1158015612737573d6000803e3d6000fd5b505050507f135c92cfa1cfe8e46534cd8748b74ee2505948ac3023824a91dc57ffda5f5b4c600254853486868660405161277696959493929190613c24565b60405180910390a16001600260008282546127919190613df8565b9250508190555034600460008282546127aa9190613df8565b925050819055505050505050565b60006127c68260000161291f565b9050919050565b60006127f5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612930565b905092915050565b6000612809838361286d565b612862578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612867565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008060019050835183518114600181146128ae57600092506128f1565b600160208701838101602088015b6002848385100114156128ec5780518351146128db5760009650600093505b6020830192506020810190506128bc565b505050505b50508091505092915050565b600033905090565b60006129148360000183612ab6565b60001c905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114612aaa5760006001826129629190613e7f565b905060006001866000018054905061297a9190613e7f565b9050818114612a355760008660000182815481106129c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612a6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612ab0565b60009150505b92915050565b6000826000018281548110612af4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b828054612b1390613fef565b90600052602060002090601f016020900481019282612b355760008555612b7c565b82601f10612b4e57805160ff1916838001178555612b7c565b82800160010185558215612b7c579182015b82811115612b7b578251825591602001919060010190612b60565b5b509050612b899190612bcd565b5090565b508054612b9990613fef565b6000825580601f10612bab5750612bca565b601f016020900490600052602060002090810190612bc99190612bcd565b5b50565b5b80821115612be6576000816000905550600101612bce565b5090565b6000612bfd612bf884613d69565b613d44565b905082815260208101848484011115612c1557600080fd5b612c20848285613fad565b509392505050565b6000612c3b612c3684613d9a565b613d44565b905082815260208101848484011115612c5357600080fd5b612c5e848285613fad565b509392505050565b6000612c79612c7484613d9a565b613d44565b905082815260208101848484011115612c9157600080fd5b612c9c848285613fbc565b509392505050565b600081359050612cb3816144e3565b92915050565b600081519050612cc8816144e3565b92915050565b600081359050612cdd816144fa565b92915050565b600082601f830112612cf457600080fd5b8135612d04848260208601612bea565b91505092915050565b600081359050612d1c81614511565b92915050565b60008083601f840112612d3457600080fd5b8235905067ffffffffffffffff811115612d4d57600080fd5b602083019150836001820283011115612d6557600080fd5b9250929050565b600082601f830112612d7d57600080fd5b8135612d8d848260208601612c28565b91505092915050565b600082601f830112612da757600080fd5b8151612db7848260208601612c66565b91505092915050565b600081359050612dcf81614528565b92915050565b600081359050612de48161453f565b92915050565b600081359050612df981614556565b92915050565b600081359050612e0e8161456d565b92915050565b600060208284031215612e2657600080fd5b6000612e3484828501612cb9565b91505092915050565b60008060008060808587031215612e5357600080fd5b6000612e6187828801612ca4565b9450506020612e7287828801612ca4565b9350506040612e8387828801612dea565b925050606085013567ffffffffffffffff811115612ea057600080fd5b612eac87828801612ce3565b91505092959194509250565b600080600080600060808688031215612ed057600080fd5b6000612ede88828901612d0d565b9550506020612eef88828901612dea565b9450506040612f0088828901612dff565b935050606086013567ffffffffffffffff811115612f1d57600080fd5b612f2988828901612d22565b92509250509295509295909350565b600080600060408486031215612f4d57600080fd5b600084013567ffffffffffffffff811115612f6757600080fd5b612f7386828701612d22565b93509350506020612f8686828701612dea565b9150509250925092565b600060208284031215612fa257600080fd5b600082015167ffffffffffffffff811115612fbc57600080fd5b612fc884828501612d96565b91505092915050565b600060208284031215612fe357600080fd5b6000612ff184828501612dc0565b91505092915050565b6000806040838503121561300d57600080fd5b600061301b85828601612dc0565b925050602061302c85828601612ca4565b9150509250929050565b60008060006060848603121561304b57600080fd5b600061305986828701612dc0565b935050602061306a86828701612cce565b925050604061307b86828701612dea565b9150509250925092565b6000806000806060858703121561309b57600080fd5b60006130a987828801612dc0565b94505060206130ba87828801612ca4565b935050604085013567ffffffffffffffff8111156130d757600080fd5b6130e387828801612d22565b925092505092959194509250565b6000806000806080858703121561310757600080fd5b600061311587828801612dc0565b945050602061312687828801612ca4565b935050604061313787828801612dea565b925050606061314887828801612d0d565b91505092959194509250565b6000806040838503121561316757600080fd5b600061317585828601612dc0565b925050602061318685828601612d0d565b9150509250929050565b600080604083850312156131a357600080fd5b60006131b185828601612dc0565b92505060206131c285828601612dd5565b9150509250929050565b600080600080608085870312156131e257600080fd5b60006131f087828801612dc0565b945050602061320187828801612dff565b935050604061321287828801612ca4565b925050606061322387828801612dea565b91505092959194509250565b6000806000806060858703121561324557600080fd5b600061325387828801612dff565b945050602085013567ffffffffffffffff81111561327057600080fd5b61327c87828801612d22565b9350935050604061328f87828801612dea565b91505092959194509250565b6000806000606084860312156132b057600080fd5b60006132be86828701612dff565b935050602084013567ffffffffffffffff8111156132db57600080fd5b6132e786828701612d6c565b92505060406132f886828701612dea565b9150509250925092565b61330b81613eb3565b82525050565b61331a81613eb3565b82525050565b61333161332c82613eb3565b61409b565b82525050565b61334081613ed7565b82525050565b61334f81613ee3565b82525050565b60006133618385613de7565b935061336e838584613fad565b6133778361418d565b840190509392505050565b600061338d82613dcb565b6133978185613dd6565b93506133a7818560208601613fbc565b6133b08161418d565b840191505092915050565b60006133c682613dcb565b6133d08185613de7565b93506133e0818560208601613fbc565b6133e98161418d565b840191505092915050565b6000613401601083613de7565b915061340c826141b8565b602082019050919050565b6000613424601483613de7565b915061342f826141e1565b602082019050919050565b6000613447600f83613de7565b91506134528261420a565b602082019050919050565b600061346a602983613de7565b915061347582614233565b604082019050919050565b600061348d601483613de7565b915061349882614282565b602082019050919050565b60006134b0603483613de7565b91506134bb826142ab565b604082019050919050565b60006134d3602783613de7565b91506134de826142fa565b604082019050919050565b60006134f6602083613de7565b915061350182614349565b602082019050919050565b6000613519601083613de7565b915061352482614372565b602082019050919050565b600061353c601383613de7565b91506135478261439b565b602082019050919050565b600061355f601783613de7565b915061356a826143c4565b602082019050919050565b6000613582601483613de7565b915061358d826143ed565b602082019050919050565b60006135a5602483613de7565b91506135b082614416565b604082019050919050565b60006135c8601483613de7565b91506135d382614465565b602082019050919050565b60006135eb601783613de7565b91506135f68261448e565b602082019050919050565b600061360e600083613de7565b9150613619826144b7565b600082019050919050565b6000613631601583613de7565b915061363c826144ba565b602082019050919050565b60608201600082015161365d600085018261378a565b5060208201516136706020850182613302565b506040820151613683604085018261375d565b50505050565b60006040830160008301516136a16000860182613302565b50602083015184820360208601526136b98282613382565b9150508091505092915050565b6040820160008201516136dc6000850182613302565b5060208201516136ef602085018261375d565b50505050565b60608201600082015161370b6000850182613302565b50602082015161371e602085018261375d565b5060408201516137316040850182613302565b50505050565b61374081613f89565b82525050565b61375761375282613f3d565b6140ad565b82525050565b61376681613f6b565b82525050565b61377581613f6b565b82525050565b61378481613f9b565b82525050565b61379381613f75565b82525050565b6137a281613f75565b82525050565b60006137b48284613320565b60148201915081905092915050565b60006137cf8284613746565b60028201915081905092915050565b60006020820190506137f36000830184613311565b92915050565b600060608201905061380e6000830186613311565b61381b6020830185613311565b613828604083018461376c565b949350505050565b60006040820190506138456000830185613311565b613852602083018461376c565b9392505050565b600060608201905061386e6000830186613311565b61387b602083018561377b565b613888604083018461376c565b949350505050565b60006020820190506138a56000830184613337565b92915050565b60006020820190506138c06000830184613346565b92915050565b600060208201905081810360008301526138df816133f4565b9050919050565b600060208201905081810360008301526138ff81613417565b9050919050565b6000602082019050818103600083015261391f8161343a565b9050919050565b6000602082019050818103600083015261393f8161345d565b9050919050565b6000602082019050818103600083015261395f81613480565b9050919050565b6000602082019050818103600083015261397f816134a3565b9050919050565b6000602082019050818103600083015261399f816134c6565b9050919050565b600060208201905081810360008301526139bf816134e9565b9050919050565b600060208201905081810360008301526139df8161350c565b9050919050565b600060208201905081810360008301526139ff8161352f565b9050919050565b60006020820190508181036000830152613a1f81613552565b9050919050565b60006020820190508181036000830152613a3f81613575565b9050919050565b60006020820190508181036000830152613a5f81613598565b9050919050565b60006020820190508181036000830152613a7f816135bb565b9050919050565b60006020820190508181036000830152613a9f816135de565b9050919050565b60006020820190508181036000830152613abf81613624565b9050919050565b6000606082019050613adb6000830184613647565b92915050565b60006020820190508181036000830152613afb8184613689565b905092915050565b6000604082019050613b1860008301846136c6565b92915050565b6000606082019050613b3360008301846136f5565b92915050565b6000602082019050613b4e6000830184613737565b92915050565b6000602082019050613b69600083018461376c565b92915050565b6000604082019050613b84600083018661376c565b8181036020830152613b97818486613355565b9050949350505050565b6000604082019050613bb6600083018461376c565b8181036020830152613bc781613601565b905092915050565b6000608082019050613be4600083018861376c565b613bf1602083018761376c565b8181036040830152613c04818587613355565b90508181036060830152613c1881846133bb565b90509695505050505050565b600060a082019050613c39600083018961376c565b613c466020830188613799565b613c53604083018761376c565b8181036060830152613c66818587613355565b9050613c75608083018461376c565b979650505050505050565b600060c082019050613c95600083018a61376c565b613ca26020830189613799565b613caf604083018861376c565b8181036060830152613cc2818688613355565b9050613cd1608083018561376c565b613cde60a0830184613311565b98975050505050505050565b600060a082019050613cff600083018861376c565b613d0c6020830187613799565b613d19604083018661376c565b8181036060830152613d2b81856133bb565b9050613d3a608083018461376c565b9695505050505050565b6000613d4e613d5f565b9050613d5a8282614021565b919050565b6000604051905090565b600067ffffffffffffffff821115613d8457613d8361415e565b5b613d8d8261418d565b9050602081019050919050565b600067ffffffffffffffff821115613db557613db461415e565b5b613dbe8261418d565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e0382613f6b565b9150613e0e83613f6b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e4357613e426140d1565b5b828201905092915050565b6000613e5982613f6b565b9150613e6483613f6b565b925082613e7457613e73614100565b5b828204905092915050565b6000613e8a82613f6b565b9150613e9583613f6b565b925082821015613ea857613ea76140d1565b5b828203905092915050565b6000613ebe82613f4b565b9050919050565b6000613ed082613f4b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000613f1a82613eb3565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000613f9482613f21565b9050919050565b6000613fa682613f75565b9050919050565b82818337600083830152505050565b60005b83811015613fda578082015181840152602081019050613fbf565b83811115613fe9576000848401525b50505050565b6000600282049050600182168061400757607f821691505b6020821081141561401b5761401a61412f565b5b50919050565b61402a8261418d565b810181811067ffffffffffffffff821117156140495761404861415e565b5b80604052505050565b600061405d82613f6b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140905761408f6140d1565b5b600182019050919050565b60006140a6826140bf565b9050919050565b60006140b88261419e565b9050919050565b60006140ca826141ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f01b9050919050565b60008160601b9050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f416374696f6e204d69736d617463680000000000000000000000000000000000600082015250565b7f6d7573742070617920626f74682076616c756520616e64207472616e7361637460008201527f696f6e2066656573210000000000000000000000000000000000000000000000602082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f75706461746520746865207468726573686f6c64206265666f72652072656d6f60008201527f76696e6720746869732076616c696461746f7221000000000000000000000000602082015250565b7f76616c696461746f7273206d757374206265203c3d2076616c696461746f727360008201527f206c656e67746800000000000000000000000000000000000000000000000000602082015250565b7f676976656e2061646472657373206973206e6f7420612076616c696461746f72600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f616c726561647920612076616c696461746f7200000000000000000000000000600082015250565b7f4e465420616c72656164792077686974656c6973746564000000000000000000600082015250565b7f5478204665657320697320726571756972656421000000000000000000000000600082015250565b7f54686973204e465420636f6e7472616374206973206e6f742077686974656c6960008201527f7374656400000000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f596f7520646f6e2774206f776e2074686973206e667421000000000000000000600082015250565b50565b7f4e4654206e6f742077686974656c69737465643f210000000000000000000000600082015250565b6144ec81613eb3565b81146144f757600080fd5b50565b61450381613ec5565b811461450e57600080fd5b50565b61451a81613f0f565b811461452557600080fd5b50565b61453181613f21565b811461453c57600080fd5b50565b61454881613f3d565b811461455357600080fd5b50565b61455f81613f6b565b811461456a57600080fd5b50565b61457681613f75565b811461458157600080fd5b5056fea2646970667358221220a659c1fdb7743f7a286cb8aef43425cab05c2f792ea5465274023c94e5d4bdad64736f6c63430008040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/Minter.json b/src/Minter.json index 7b534772b..6996c0267 100644 --- a/src/Minter.json +++ b/src/Minter.json @@ -10,11 +10,21 @@ "name": "_validators", "type": "address[]" }, + { + "internalType": "contract IERC721[]", + "name": "_nft_whitelist", + "type": "address[]" + }, { "internalType": "uint16", "name": "_threshold", "type": "uint16" }, + { + "internalType": "contract XPNft", + "name": "_nft_token", + "type": "address" + }, { "internalType": "contract XPNet", "name": "_token", @@ -29,30 +39,25 @@ "inputs": [ { "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "string", - "name": "to", - "type": "string" - }, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "action_id", "type": "uint256" } ], - "name": "Transfer", + "name": "QuorumFailure", "type": "event" }, { @@ -70,6 +75,12 @@ "name": "chain_nonce", "type": "uint64" }, + { + "indexed": false, + "internalType": "uint256", + "name": "txFees", + "type": "uint256" + }, { "indexed": false, "internalType": "string", @@ -79,17 +90,11 @@ { "indexed": false, "internalType": "uint256", - "name": "id", + "name": "value", "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "contract_addr", - "type": "address" } ], - "name": "TransferErc1155", + "name": "Transfer", "type": "event" }, { @@ -107,6 +112,12 @@ "name": "chain_nonce", "type": "uint64" }, + { + "indexed": false, + "internalType": "uint256", + "name": "txFees", + "type": "uint256" + }, { "indexed": false, "internalType": "string", @@ -144,6 +155,12 @@ "name": "chain_nonce", "type": "uint64" }, + { + "indexed": false, + "internalType": "uint256", + "name": "txFees", + "type": "uint256" + }, { "indexed": false, "internalType": "string", @@ -169,6 +186,12 @@ "name": "action_id", "type": "uint256" }, + { + "indexed": false, + "internalType": "uint256", + "name": "txFees", + "type": "uint256" + }, { "indexed": false, "internalType": "string", @@ -185,6 +208,19 @@ "name": "UnfreezeNft", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, { "inputs": [ { @@ -196,6 +232,11 @@ "internalType": "string", "name": "to", "type": "string" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" } ], "name": "freeze", @@ -206,40 +247,29 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", + "internalType": "contract IERC721", + "name": "erc721_contract", "type": "address" }, { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" }, { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" + "internalType": "uint64", + "name": "chain_nonce", + "type": "uint64" }, { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" + "internalType": "string", + "name": "to", + "type": "string" } ], - "stateMutability": "pure", + "name": "freeze_erc721", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { @@ -256,21 +286,16 @@ }, { "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", + "name": "", "type": "uint256" }, { "internalType": "bytes", - "name": "data", + "name": "", "type": "bytes" } ], - "name": "onERC1155Received", + "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", @@ -281,57 +306,84 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { - "internalType": "address", - "name": "caller", - "type": "address" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" }, { "internalType": "address", - "name": "", + "name": "new_validator", "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" } ], - "name": "onERC721Received", - "outputs": [ + "name": "validate_add_validator", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bytes4", - "name": "", - "type": "bytes4" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" } ], + "name": "validate_pause_bridge", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "address", + "name": "old_validator", + "type": "address" } ], - "name": "supportsInterface", - "outputs": [ + "name": "validate_remove_validator", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" + }, + { + "internalType": "uint16", + "name": "new_threshold", + "type": "uint16" } ], - "stateMutability": "view", + "name": "validate_set_threshold", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -432,12 +484,12 @@ "type": "uint256" }, { - "internalType": "contract IERC1155", + "internalType": "contract IERC721", "name": "contract_addr", "type": "address" } ], - "name": "validate_unfreeze_erc1155", + "name": "validate_unfreeze_nft", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -448,16 +500,19 @@ "internalType": "uint128", "name": "action_id", "type": "uint128" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, + } + ], + "name": "validate_unpause_bridge", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" }, { "internalType": "contract IERC721", @@ -465,22 +520,22 @@ "type": "address" } ], - "name": "validate_unfreeze_erc721", + "name": "validate_whitelist_nft", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "validator_cnt", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "uint128", + "name": "action_id", + "type": "uint128" } ], - "stateMutability": "view", + "name": "validate_withdraw_fees", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -503,7 +558,7 @@ ], "name": "withdraw", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { @@ -521,12 +576,12 @@ ], "name": "withdraw_nft", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" } ], - "bytecode": "0x60806040526000600155620100006002553480156200001d57600080fd5b50604051620032d4380380620032d48339818101604052810190620000439190620002e8565b60008351116200008a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008190620003c7565b60405180910390fd5b60008261ffff16118015620000a4575082518261ffff1611155b620000e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000dd90620003a5565b60405180910390fd5b60005b8351811015620001a35760026004600086848151811062000133577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555080806200019a90620004e8565b915050620000e9565b5082516005819055508161ffff1660008190555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000645565b600062000218620002128462000412565b620003e9565b905080838252602082019050828560208602820111156200023857600080fd5b60005b858110156200026c578162000251888262000276565b8452602084019350602083019250506001810190506200023b565b5050509392505050565b6000815190506200028781620005f7565b92915050565b600082601f8301126200029f57600080fd5b8151620002b184826020860162000201565b91505092915050565b600081519050620002cb8162000611565b92915050565b600081519050620002e2816200062b565b92915050565b600080600060608486031215620002fe57600080fd5b600084015167ffffffffffffffff8111156200031957600080fd5b62000327868287016200028d565b93505060206200033a86828701620002d1565b92505060406200034d86828701620002ba565b9150509250925092565b60006200036660128362000441565b91506200037382620005a5565b602082019050919050565b60006200038d601d8362000441565b91506200039a82620005ce565b602082019050919050565b60006020820190508181036000830152620003c08162000357565b9050919050565b60006020820190508181036000830152620003e2816200037e565b9050919050565b6000620003f562000408565b9050620004038282620004b2565b919050565b6000604051905090565b600067ffffffffffffffff82111562000430576200042f62000565565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006200045f8262000488565b9050919050565b6000620004738262000452565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620004bd8262000594565b810181811067ffffffffffffffff82111715620004df57620004de62000565565b5b80604052505050565b6000620004f582620004a8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200052b576200052a62000536565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f696e76616c6964207468726573686f6c64210000000000000000000000000000600082015250565b7f56616c696461746f7273206d757374206e6f7420626520656d70747921000000600082015250565b620006028162000452565b81146200060e57600080fd5b50565b6200061c8162000466565b81146200062857600080fd5b50565b62000636816200047a565b81146200064257600080fd5b50565b612c7f80620006556000396000f3fe6080604052600436106100c25760003560e01c8063453d73651161007f578063b6c1d66311610059578063b6c1d66314610267578063bc197c8114610292578063ef1d0dec146102cf578063f23a6e61146102f8576100c2565b8063453d7365146101d85780635df93c7e146102155780638b202d8f1461023e576100c2565b806301ffc9a7146100c75780630d11f0a414610104578063150b7a021461012d5780631a8220b71461016a578063218130c51461019357806336490fb2146101af575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611c73565b610335565b6040516100fb919061236c565b60405180910390f35b34801561011057600080fd5b5061012b60048036038101906101269190611c9c565b6103af565b005b34801561013957600080fd5b50610154600480360381019061014f9190611b61565b6103c0565b6040516101619190612387565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c9190611df0565b6104f8565b005b6101ad60048036038101906101a89190611f85565b6105fa565b005b3480156101bb57600080fd5b506101d660048036038101906101d19190611e53565b610699565b005b3480156101e457600080fd5b506101ff60048036038101906101fa9190611d84565b610798565b60405161020c9190612502565b60405180910390f35b34801561022157600080fd5b5061023c60048036038101906102379190611d35565b610987565b005b34801561024a57600080fd5b5061026560048036038101906102609190611f19565b610a8a565b005b34801561027357600080fd5b5061027c610a9d565b6040516102899190612502565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190611a95565b610aa3565b6040516102c69190612387565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190611eb6565b610afb565b005b34801561030457600080fd5b5061031f600480360381019061031a9190611be1565b610c1c565b60405161032c9190612387565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857506103a782610e26565b5b9050919050565b6103bb33848484610e90565b505050565b60008061041b600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610487600880878790506104339190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f2d2ba3dca5c42419d9063a114d3f6be9edf8650e8b35098bcd58e5995d6c11546001548383898c6040516104c295949392919061265e565b60405180910390a160018060008282546104dc919061273b565b9250508190555063150b7a0260e01b9250505095945050505050565b6000610505856003611247565b905060006001811115610541577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561057a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105f3578173ffffffffffffffffffffffffffffffffffffffff1663f242432a30868660016040518563ffffffff1660e01b81526004016105c094939291906122a6565b600060405180830381600087803b1580156105da57600080fd5b505af11580156105ee573d6000803e3d6000fd5b505050505b5050505050565b6000341161063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906123e2565b60405180910390fd5b7fae6cc388e6cb7ad146f221b7fb33b2336c24effe84937090deacde6f0c9e4f2b6001548383346040516106749493929190612612565b60405180910390a1600180600082825461068e919061273b565b925050819055505050565b60006106a6856003611247565b9050600060018111156106e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561071b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610791578173ffffffffffffffffffffffffffffffffffffffff166342842e0e3086866040518463ffffffff1660e01b815260040161075e9392919061226f565b600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b505050505b5050505050565b6000806107a6866001611247565b9050600060018111156107e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561081b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68660025460016040518463ffffffff1660e01b8152600401610883939291906122fe565b600060405180830381600087803b15801561089d57600080fd5b505af11580156108b1573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260025486866040518463ffffffff1660e01b81526004016109169392919061251d565b600060405180830381600087803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b5050505060016002600082825461095b919061273b565b9250508190555060016002546109719190612791565b91505061097f565b60009150505b949350505050565b6000610994846002611247565b9050600060018111156109d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a84578273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90612462565b60405180910390fd5b5b50505050565b610a9733858585856116a8565b50505050565b60055481565b600080610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906124c2565b60405180910390fd5b63bc197c8160e01b905098975050505050505050565b6000610b08856000611247565b905060006001811115610b44577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c1557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68486856040518463ffffffff1660e01b8152600401610be293929190612335565b600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b505050505b5050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610caa57611000851015610c9857610c9330610c8b876117e8565b8585886116a8565b610ca5565b610ca430848488610e90565b5b610e12565b60018414610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612482565b60405180910390fd5b6000610d47600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610db360088087879050610d5f9190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f491f05df58ecacc555aeb87b5abf28becc511fb5c227c0bfbaf2da3e6109335e60015483838a33604051610dee95949392919061265e565b60405180910390a16001806000828254610e08919061273b565b9250508190555050505b63f23a6e6160e01b90509695505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e89341c836040518263ffffffff1660e01b8152600401610eed9190612502565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610f429190611cf4565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca868460016040518463ffffffff1660e01b8152600401610fa4939291906122fe565b600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b81526004016110319190612596565b600060405180830381600087803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b505050507f1e2291a96615bb70cc8395e1493605485ea5df7d0d6eed27295e95368bcd185e60015485858460405161109a949392919061254f565b60405180910390a160018060008282546110b4919061273b565b925050819055505050505050565b60006008826110d1919061273b565b83511015611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b90612402565b60405180910390fd5b60008260088501015190508091505092915050565b606081601f83611139919061273b565b101561117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612422565b60405180910390fd5b8183611186919061273b565b845110156111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c0906124a2565b60405180910390fd5b60608215600081146111ea576040519150600082526020820160405261123b565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611228578051835260208301925060208101905061120b565b50868552601f19601f8301166040525050505b50809150509392505050565b60006002600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d2906123a2565b60405180910390fd5b600060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561140b576040518060400160405280836003811115611362577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001600181525060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908360038111156113f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060208201518160010155905050611526565b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906123c2565b60405180910390fd5b600160066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461151e919061273b565b925050819055505b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060006001905060005460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561160357600090505b60055460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561169e5760066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550505b8091505092915050565b6110008467ffffffffffffffff16106116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906124e2565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161175593929190612335565b600060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050507fb58390b60b92155ee6f1561cf0f29316be0c0f26d248a7ff7e0b341f5fb2f898600154858585856040516117c09594939291906125c4565b60405180910390a160018060008282546117da919061273b565b925050819055505050505050565b600067ffffffffffffffff8016821115611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612442565b60405180910390fd5b819050919050565b600061185261184d846126dd565b6126b8565b90508281526020810184848401111561186a57600080fd5b6118758482856128c3565b509392505050565b600061189061188b846126dd565b6126b8565b9050828152602081018484840111156118a857600080fd5b6118b38482856128d2565b509392505050565b6000813590506118ca81612b91565b92915050565b6000813590506118df81612ba8565b92915050565b60008083601f8401126118f757600080fd5b8235905067ffffffffffffffff81111561191057600080fd5b60208301915083602082028301111561192857600080fd5b9250929050565b60008135905061193e81612bbf565b92915050565b60008083601f84011261195657600080fd5b8235905067ffffffffffffffff81111561196f57600080fd5b60208301915083600182028301111561198757600080fd5b9250929050565b60008135905061199d81612bd6565b92915050565b6000813590506119b281612bed565b92915050565b60008083601f8401126119ca57600080fd5b8235905067ffffffffffffffff8111156119e357600080fd5b6020830191508360018202830111156119fb57600080fd5b9250929050565b600082601f830112611a1357600080fd5b8135611a2384826020860161183f565b91505092915050565b600082601f830112611a3d57600080fd5b8151611a4d84826020860161187d565b91505092915050565b600081359050611a6581612c04565b92915050565b600081359050611a7a81612c1b565b92915050565b600081359050611a8f81612c32565b92915050565b60008060008060008060008060a0898b031215611ab157600080fd5b6000611abf8b828c016118bb565b9850506020611ad08b828c016118bb565b975050604089013567ffffffffffffffff811115611aed57600080fd5b611af98b828c016118e5565b9650965050606089013567ffffffffffffffff811115611b1857600080fd5b611b248b828c016118e5565b9450945050608089013567ffffffffffffffff811115611b4357600080fd5b611b4f8b828c01611944565b92509250509295985092959890939650565b600080600080600060808688031215611b7957600080fd5b6000611b87888289016118bb565b9550506020611b98888289016118bb565b9450506040611ba988828901611a6b565b935050606086013567ffffffffffffffff811115611bc657600080fd5b611bd288828901611944565b92509250509295509295909350565b60008060008060008060a08789031215611bfa57600080fd5b6000611c0889828a016118bb565b9650506020611c1989828a016118bb565b9550506040611c2a89828a01611a6b565b9450506060611c3b89828a01611a6b565b935050608087013567ffffffffffffffff811115611c5857600080fd5b611c6489828a01611944565b92509250509295509295509295565b600060208284031215611c8557600080fd5b6000611c938482850161192f565b91505092915050565b600080600060408486031215611cb157600080fd5b600084013567ffffffffffffffff811115611ccb57600080fd5b611cd7868287016119b8565b93509350506020611cea86828701611a6b565b9150509250925092565b600060208284031215611d0657600080fd5b600082015167ffffffffffffffff811115611d2057600080fd5b611d2c84828501611a2c565b91505092915050565b600080600060608486031215611d4a57600080fd5b6000611d5886828701611a56565b9350506020611d69868287016118d0565b9250506040611d7a86828701611a6b565b9150509250925092565b60008060008060608587031215611d9a57600080fd5b6000611da887828801611a56565b9450506020611db9878288016118bb565b935050604085013567ffffffffffffffff811115611dd657600080fd5b611de2878288016119b8565b925092505092959194509250565b60008060008060808587031215611e0657600080fd5b6000611e1487828801611a56565b9450506020611e25878288016118bb565b9350506040611e3687828801611a6b565b9250506060611e478782880161198e565b91505092959194509250565b60008060008060808587031215611e6957600080fd5b6000611e7787828801611a56565b9450506020611e88878288016118bb565b9350506040611e9987828801611a6b565b9250506060611eaa878288016119a3565b91505092959194509250565b60008060008060808587031215611ecc57600080fd5b6000611eda87828801611a56565b9450506020611eeb87828801611a80565b9350506040611efc878288016118bb565b9250506060611f0d87828801611a6b565b91505092959194509250565b60008060008060608587031215611f2f57600080fd5b6000611f3d87828801611a80565b945050602085013567ffffffffffffffff811115611f5a57600080fd5b611f66878288016119b8565b93509350506040611f7987828801611a6b565b91505092959194509250565b60008060408385031215611f9857600080fd5b6000611fa685828601611a80565b925050602083013567ffffffffffffffff811115611fc357600080fd5b611fcf85828601611a02565b9150509250929050565b611fe2816127c5565b82525050565b611ff1816127e9565b82525050565b612000816127f5565b82525050565b61200f8161289f565b82525050565b6000612021838561272a565b935061202e8385846128c3565b61203783612994565b840190509392505050565b600061204d8261270e565b612057818561272a565b93506120678185602086016128d2565b61207081612994565b840191505092915050565b600061208860108361272a565b9150612093826129a5565b602082019050919050565b60006120ab60148361272a565b91506120b6826129ce565b602082019050919050565b60006120ce60128361272a565b91506120d9826129f7565b602082019050919050565b60006120f160148361272a565b91506120fc82612a20565b602082019050919050565b6000612114600e8361272a565b915061211f82612a49565b602082019050919050565b600061213760268361272a565b915061214282612a72565b604082019050919050565b600061215a60148361272a565b915061216582612ac1565b602082019050919050565b600061217d60168361272a565b915061218882612aea565b602082019050919050565b60006121a0600083612719565b91506121ab82612b13565b600082019050919050565b60006121c360008361272a565b91506121ce82612b13565b600082019050919050565b60006121e660118361272a565b91506121f182612b16565b602082019050919050565b600061220960158361272a565b915061221482612b3f565b602082019050919050565b600061222c60158361272a565b915061223782612b68565b602082019050919050565b61224b81612881565b82525050565b61225a816128b1565b82525050565b6122698161288b565b82525050565b60006060820190506122846000830186611fd9565b6122916020830185611fd9565b61229e6040830184612242565b949350505050565b600060a0820190506122bb6000830187611fd9565b6122c86020830186611fd9565b6122d56040830185612242565b6122e26060830184612006565b81810360808301526122f381612193565b905095945050505050565b60006060820190506123136000830186611fd9565b6123206020830185612242565b61232d6040830184612006565b949350505050565b600060608201905061234a6000830186611fd9565b6123576020830185612251565b6123646040830184612242565b949350505050565b60006020820190506123816000830184611fe8565b92915050565b600060208201905061239c6000830184611ff7565b92915050565b600060208201905081810360008301526123bb8161207b565b9050919050565b600060208201905081810360008301526123db8161209e565b9050919050565b600060208201905081810360008301526123fb816120c1565b9050919050565b6000602082019050818103600083015261241b816120e4565b9050919050565b6000602082019050818103600083015261243b81612107565b9050919050565b6000602082019050818103600083015261245b8161212a565b9050919050565b6000602082019050818103600083015261247b8161214d565b9050919050565b6000602082019050818103600083015261249b81612170565b9050919050565b600060208201905081810360008301526124bb816121d9565b9050919050565b600060208201905081810360008301526124db816121fc565b9050919050565b600060208201905081810360008301526124fb8161221f565b9050919050565b60006020820190506125176000830184612242565b92915050565b60006040820190506125326000830186612242565b8181036020830152612545818486612015565b9050949350505050565b60006060820190506125646000830187612242565b8181036020830152612577818587612015565b9050818103604083015261258b8184612042565b905095945050505050565b60006040820190506125ab6000830184612242565b81810360208301526125bc816121b6565b905092915050565b60006080820190506125d96000830188612242565b6125e66020830187612260565b81810360408301526125f9818587612015565b90506126086060830184612242565b9695505050505050565b60006080820190506126276000830187612242565b6126346020830186612260565b81810360408301526126468185612042565b90506126556060830184612242565b95945050505050565b600060a0820190506126736000830188612242565b6126806020830187612260565b81810360408301526126928186612042565b90506126a16060830185612242565b6126ae6080830184611fd9565b9695505050505050565b60006126c26126d3565b90506126ce8282612905565b919050565b6000604051905090565b600067ffffffffffffffff8211156126f8576126f7612965565b5b61270182612994565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061274682612881565b915061275183612881565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561278657612785612936565b5b828201905092915050565b600061279c82612881565b91506127a783612881565b9250828210156127ba576127b9612936565b5b828203905092915050565b60006127d082612861565b9050919050565b60006127e282612861565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061282c826127c5565b9050919050565b600061283e826127c5565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006128aa82612881565b9050919050565b60006128bc8261288b565b9050919050565b82818337600083830152505050565b60005b838110156128f05780820151818401526020810190506128d5565b838111156128ff576000848401525b50505050565b61290e82612994565b810181811067ffffffffffffffff8211171561292d5761292c612965565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f76616c7565206d757374206265203e2030210000000000000000000000000000600082015250565b7f746f55696e7436345f6f75744f66426f756e6473000000000000000000000000600082015250565b7f736c6963655f6f766572666c6f77000000000000000000000000000000000000600082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203660008201527f3420626974730000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f5346542f465473206e6f7420737570706f727465642100000000000000000000600082015250565b50565b7f736c6963655f6f75744f66426f756e6473000000000000000000000000000000600082015250565b7f4d6574686f64206e6f7420737570706f72746564210000000000000000000000600082015250565b7f4e6f7420612046756e6769626c6520746f6b656e210000000000000000000000600082015250565b612b9a816127c5565b8114612ba557600080fd5b50565b612bb1816127d7565b8114612bbc57600080fd5b50565b612bc8816127f5565b8114612bd357600080fd5b50565b612bdf81612821565b8114612bea57600080fd5b50565b612bf681612833565b8114612c0157600080fd5b50565b612c0d81612845565b8114612c1857600080fd5b50565b612c2481612881565b8114612c2f57600080fd5b50565b612c3b8161288b565b8114612c4657600080fd5b5056fea2646970667358221220efd3b349cb0870470c3a67be5ced52ec66e5016b0be060f42b2a5b1efd7a9d6164736f6c63430008040033", - "deployedBytecode": "0x6080604052600436106100c25760003560e01c8063453d73651161007f578063b6c1d66311610059578063b6c1d66314610267578063bc197c8114610292578063ef1d0dec146102cf578063f23a6e61146102f8576100c2565b8063453d7365146101d85780635df93c7e146102155780638b202d8f1461023e576100c2565b806301ffc9a7146100c75780630d11f0a414610104578063150b7a021461012d5780631a8220b71461016a578063218130c51461019357806336490fb2146101af575b600080fd5b3480156100d357600080fd5b506100ee60048036038101906100e99190611c73565b610335565b6040516100fb919061236c565b60405180910390f35b34801561011057600080fd5b5061012b60048036038101906101269190611c9c565b6103af565b005b34801561013957600080fd5b50610154600480360381019061014f9190611b61565b6103c0565b6040516101619190612387565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c9190611df0565b6104f8565b005b6101ad60048036038101906101a89190611f85565b6105fa565b005b3480156101bb57600080fd5b506101d660048036038101906101d19190611e53565b610699565b005b3480156101e457600080fd5b506101ff60048036038101906101fa9190611d84565b610798565b60405161020c9190612502565b60405180910390f35b34801561022157600080fd5b5061023c60048036038101906102379190611d35565b610987565b005b34801561024a57600080fd5b5061026560048036038101906102609190611f19565b610a8a565b005b34801561027357600080fd5b5061027c610a9d565b6040516102899190612502565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190611a95565b610aa3565b6040516102c69190612387565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190611eb6565b610afb565b005b34801561030457600080fd5b5061031f600480360381019061031a9190611be1565b610c1c565b60405161032c9190612387565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103a857506103a782610e26565b5b9050919050565b6103bb33848484610e90565b505050565b60008061041b600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610487600880878790506104339190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f2d2ba3dca5c42419d9063a114d3f6be9edf8650e8b35098bcd58e5995d6c11546001548383898c6040516104c295949392919061265e565b60405180910390a160018060008282546104dc919061273b565b9250508190555063150b7a0260e01b9250505095945050505050565b6000610505856003611247565b905060006001811115610541577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561057a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105f3578173ffffffffffffffffffffffffffffffffffffffff1663f242432a30868660016040518563ffffffff1660e01b81526004016105c094939291906122a6565b600060405180830381600087803b1580156105da57600080fd5b505af11580156105ee573d6000803e3d6000fd5b505050505b5050505050565b6000341161063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906123e2565b60405180910390fd5b7fae6cc388e6cb7ad146f221b7fb33b2336c24effe84937090deacde6f0c9e4f2b6001548383346040516106749493929190612612565b60405180910390a1600180600082825461068e919061273b565b925050819055505050565b60006106a6856003611247565b9050600060018111156106e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561071b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610791578173ffffffffffffffffffffffffffffffffffffffff166342842e0e3086866040518463ffffffff1660e01b815260040161075e9392919061226f565b600060405180830381600087803b15801561077857600080fd5b505af115801561078c573d6000803e3d6000fd5b505050505b5050505050565b6000806107a6866001611247565b9050600060018111156107e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561081b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68660025460016040518463ffffffff1660e01b8152600401610883939291906122fe565b600060405180830381600087803b15801561089d57600080fd5b505af11580156108b1573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260025486866040518463ffffffff1660e01b81526004016109169392919061251d565b600060405180830381600087803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b5050505060016002600082825461095b919061273b565b9250508190555060016002546109719190612791565b91505061097f565b60009150505b949350505050565b6000610994846002611247565b9050600060018111156109d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a84578273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90612462565b60405180910390fd5b5b50505050565b610a9733858585856116a8565b50505050565b60055481565b600080610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906124c2565b60405180910390fd5b63bc197c8160e01b905098975050505050505050565b6000610b08856000611247565b905060006001811115610b44577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c1557600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68486856040518463ffffffff1660e01b8152600401610be293929190612335565b600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b505050505b5050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610caa57611000851015610c9857610c9330610c8b876117e8565b8585886116a8565b610ca5565b610ca430848488610e90565b5b610e12565b60018414610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612482565b60405180910390fd5b6000610d47600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110c290919063ffffffff16565b90506000610db360088087879050610d5f9190612791565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506111299092919063ffffffff16565b90507f491f05df58ecacc555aeb87b5abf28becc511fb5c227c0bfbaf2da3e6109335e60015483838a33604051610dee95949392919061265e565b60405180910390a16001806000828254610e08919061273b565b9250508190555050505b63f23a6e6160e01b90509695505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e89341c836040518263ffffffff1660e01b8152600401610eed9190612502565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610f429190611cf4565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca868460016040518463ffffffff1660e01b8152600401610fa4939291906122fe565b600060405180830381600087803b158015610fbe57600080fd5b505af1158015610fd2573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b81526004016110319190612596565b600060405180830381600087803b15801561104b57600080fd5b505af115801561105f573d6000803e3d6000fd5b505050507f1e2291a96615bb70cc8395e1493605485ea5df7d0d6eed27295e95368bcd185e60015485858460405161109a949392919061254f565b60405180910390a160018060008282546110b4919061273b565b925050819055505050505050565b60006008826110d1919061273b565b83511015611114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110b90612402565b60405180910390fd5b60008260088501015190508091505092915050565b606081601f83611139919061273b565b101561117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612422565b60405180910390fd5b8183611186919061273b565b845110156111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c0906124a2565b60405180910390fd5b60608215600081146111ea576040519150600082526020820160405261123b565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611228578051835260208301925060208101905061120b565b50868552601f19601f8301166040525050505b50809150509392505050565b60006002600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d2906123a2565b60405180910390fd5b600060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561140b576040518060400160405280836003811115611362577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001600181525060066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908360038111156113f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060208201518160010155905050611526565b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906123c2565b60405180910390fd5b600160066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461151e919061273b565b925050819055505b600260076000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060006001905060005460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561160357600090505b60055460066000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060010154141561169e5760066000856fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550505b8091505092915050565b6110008467ffffffffffffffff16106116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906124e2565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161175593929190612335565b600060405180830381600087803b15801561176f57600080fd5b505af1158015611783573d6000803e3d6000fd5b505050507fb58390b60b92155ee6f1561cf0f29316be0c0f26d248a7ff7e0b341f5fb2f898600154858585856040516117c09594939291906125c4565b60405180910390a160018060008282546117da919061273b565b925050819055505050505050565b600067ffffffffffffffff8016821115611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90612442565b60405180910390fd5b819050919050565b600061185261184d846126dd565b6126b8565b90508281526020810184848401111561186a57600080fd5b6118758482856128c3565b509392505050565b600061189061188b846126dd565b6126b8565b9050828152602081018484840111156118a857600080fd5b6118b38482856128d2565b509392505050565b6000813590506118ca81612b91565b92915050565b6000813590506118df81612ba8565b92915050565b60008083601f8401126118f757600080fd5b8235905067ffffffffffffffff81111561191057600080fd5b60208301915083602082028301111561192857600080fd5b9250929050565b60008135905061193e81612bbf565b92915050565b60008083601f84011261195657600080fd5b8235905067ffffffffffffffff81111561196f57600080fd5b60208301915083600182028301111561198757600080fd5b9250929050565b60008135905061199d81612bd6565b92915050565b6000813590506119b281612bed565b92915050565b60008083601f8401126119ca57600080fd5b8235905067ffffffffffffffff8111156119e357600080fd5b6020830191508360018202830111156119fb57600080fd5b9250929050565b600082601f830112611a1357600080fd5b8135611a2384826020860161183f565b91505092915050565b600082601f830112611a3d57600080fd5b8151611a4d84826020860161187d565b91505092915050565b600081359050611a6581612c04565b92915050565b600081359050611a7a81612c1b565b92915050565b600081359050611a8f81612c32565b92915050565b60008060008060008060008060a0898b031215611ab157600080fd5b6000611abf8b828c016118bb565b9850506020611ad08b828c016118bb565b975050604089013567ffffffffffffffff811115611aed57600080fd5b611af98b828c016118e5565b9650965050606089013567ffffffffffffffff811115611b1857600080fd5b611b248b828c016118e5565b9450945050608089013567ffffffffffffffff811115611b4357600080fd5b611b4f8b828c01611944565b92509250509295985092959890939650565b600080600080600060808688031215611b7957600080fd5b6000611b87888289016118bb565b9550506020611b98888289016118bb565b9450506040611ba988828901611a6b565b935050606086013567ffffffffffffffff811115611bc657600080fd5b611bd288828901611944565b92509250509295509295909350565b60008060008060008060a08789031215611bfa57600080fd5b6000611c0889828a016118bb565b9650506020611c1989828a016118bb565b9550506040611c2a89828a01611a6b565b9450506060611c3b89828a01611a6b565b935050608087013567ffffffffffffffff811115611c5857600080fd5b611c6489828a01611944565b92509250509295509295509295565b600060208284031215611c8557600080fd5b6000611c938482850161192f565b91505092915050565b600080600060408486031215611cb157600080fd5b600084013567ffffffffffffffff811115611ccb57600080fd5b611cd7868287016119b8565b93509350506020611cea86828701611a6b565b9150509250925092565b600060208284031215611d0657600080fd5b600082015167ffffffffffffffff811115611d2057600080fd5b611d2c84828501611a2c565b91505092915050565b600080600060608486031215611d4a57600080fd5b6000611d5886828701611a56565b9350506020611d69868287016118d0565b9250506040611d7a86828701611a6b565b9150509250925092565b60008060008060608587031215611d9a57600080fd5b6000611da887828801611a56565b9450506020611db9878288016118bb565b935050604085013567ffffffffffffffff811115611dd657600080fd5b611de2878288016119b8565b925092505092959194509250565b60008060008060808587031215611e0657600080fd5b6000611e1487828801611a56565b9450506020611e25878288016118bb565b9350506040611e3687828801611a6b565b9250506060611e478782880161198e565b91505092959194509250565b60008060008060808587031215611e6957600080fd5b6000611e7787828801611a56565b9450506020611e88878288016118bb565b9350506040611e9987828801611a6b565b9250506060611eaa878288016119a3565b91505092959194509250565b60008060008060808587031215611ecc57600080fd5b6000611eda87828801611a56565b9450506020611eeb87828801611a80565b9350506040611efc878288016118bb565b9250506060611f0d87828801611a6b565b91505092959194509250565b60008060008060608587031215611f2f57600080fd5b6000611f3d87828801611a80565b945050602085013567ffffffffffffffff811115611f5a57600080fd5b611f66878288016119b8565b93509350506040611f7987828801611a6b565b91505092959194509250565b60008060408385031215611f9857600080fd5b6000611fa685828601611a80565b925050602083013567ffffffffffffffff811115611fc357600080fd5b611fcf85828601611a02565b9150509250929050565b611fe2816127c5565b82525050565b611ff1816127e9565b82525050565b612000816127f5565b82525050565b61200f8161289f565b82525050565b6000612021838561272a565b935061202e8385846128c3565b61203783612994565b840190509392505050565b600061204d8261270e565b612057818561272a565b93506120678185602086016128d2565b61207081612994565b840191505092915050565b600061208860108361272a565b9150612093826129a5565b602082019050919050565b60006120ab60148361272a565b91506120b6826129ce565b602082019050919050565b60006120ce60128361272a565b91506120d9826129f7565b602082019050919050565b60006120f160148361272a565b91506120fc82612a20565b602082019050919050565b6000612114600e8361272a565b915061211f82612a49565b602082019050919050565b600061213760268361272a565b915061214282612a72565b604082019050919050565b600061215a60148361272a565b915061216582612ac1565b602082019050919050565b600061217d60168361272a565b915061218882612aea565b602082019050919050565b60006121a0600083612719565b91506121ab82612b13565b600082019050919050565b60006121c360008361272a565b91506121ce82612b13565b600082019050919050565b60006121e660118361272a565b91506121f182612b16565b602082019050919050565b600061220960158361272a565b915061221482612b3f565b602082019050919050565b600061222c60158361272a565b915061223782612b68565b602082019050919050565b61224b81612881565b82525050565b61225a816128b1565b82525050565b6122698161288b565b82525050565b60006060820190506122846000830186611fd9565b6122916020830185611fd9565b61229e6040830184612242565b949350505050565b600060a0820190506122bb6000830187611fd9565b6122c86020830186611fd9565b6122d56040830185612242565b6122e26060830184612006565b81810360808301526122f381612193565b905095945050505050565b60006060820190506123136000830186611fd9565b6123206020830185612242565b61232d6040830184612006565b949350505050565b600060608201905061234a6000830186611fd9565b6123576020830185612251565b6123646040830184612242565b949350505050565b60006020820190506123816000830184611fe8565b92915050565b600060208201905061239c6000830184611ff7565b92915050565b600060208201905081810360008301526123bb8161207b565b9050919050565b600060208201905081810360008301526123db8161209e565b9050919050565b600060208201905081810360008301526123fb816120c1565b9050919050565b6000602082019050818103600083015261241b816120e4565b9050919050565b6000602082019050818103600083015261243b81612107565b9050919050565b6000602082019050818103600083015261245b8161212a565b9050919050565b6000602082019050818103600083015261247b8161214d565b9050919050565b6000602082019050818103600083015261249b81612170565b9050919050565b600060208201905081810360008301526124bb816121d9565b9050919050565b600060208201905081810360008301526124db816121fc565b9050919050565b600060208201905081810360008301526124fb8161221f565b9050919050565b60006020820190506125176000830184612242565b92915050565b60006040820190506125326000830186612242565b8181036020830152612545818486612015565b9050949350505050565b60006060820190506125646000830187612242565b8181036020830152612577818587612015565b9050818103604083015261258b8184612042565b905095945050505050565b60006040820190506125ab6000830184612242565b81810360208301526125bc816121b6565b905092915050565b60006080820190506125d96000830188612242565b6125e66020830187612260565b81810360408301526125f9818587612015565b90506126086060830184612242565b9695505050505050565b60006080820190506126276000830187612242565b6126346020830186612260565b81810360408301526126468185612042565b90506126556060830184612242565b95945050505050565b600060a0820190506126736000830188612242565b6126806020830187612260565b81810360408301526126928186612042565b90506126a16060830185612242565b6126ae6080830184611fd9565b9695505050505050565b60006126c26126d3565b90506126ce8282612905565b919050565b6000604051905090565b600067ffffffffffffffff8211156126f8576126f7612965565b5b61270182612994565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061274682612881565b915061275183612881565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561278657612785612936565b5b828201905092915050565b600061279c82612881565b91506127a783612881565b9250828210156127ba576127b9612936565b5b828203905092915050565b60006127d082612861565b9050919050565b60006127e282612861565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061282c826127c5565b9050919050565b600061283e826127c5565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006128aa82612881565b9050919050565b60006128bc8261288b565b9050919050565b82818337600083830152505050565b60005b838110156128f05780820151818401526020810190506128d5565b838111156128ff576000848401525b50505050565b61290e82612994565b810181811067ffffffffffffffff8211171561292d5761292c612965565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f76616c7565206d757374206265203e2030210000000000000000000000000000600082015250565b7f746f55696e7436345f6f75744f66426f756e6473000000000000000000000000600082015250565b7f736c6963655f6f766572666c6f77000000000000000000000000000000000000600082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203660008201527f3420626974730000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f5346542f465473206e6f7420737570706f727465642100000000000000000000600082015250565b50565b7f736c6963655f6f75744f66426f756e6473000000000000000000000000000000600082015250565b7f4d6574686f64206e6f7420737570706f72746564210000000000000000000000600082015250565b7f4e6f7420612046756e6769626c6520746f6b656e210000000000000000000000600082015250565b612b9a816127c5565b8114612ba557600080fd5b50565b612bb1816127d7565b8114612bbc57600080fd5b50565b612bc8816127f5565b8114612bd357600080fd5b50565b612bdf81612821565b8114612bea57600080fd5b50565b612bf681612833565b8114612c0157600080fd5b50565b612c0d81612845565b8114612c1857600080fd5b50565b612c2481612881565b8114612c2f57600080fd5b50565b612c3b8161288b565b8114612c4657600080fd5b5056fea2646970667358221220efd3b349cb0870470c3a67be5ced52ec66e5016b0be060f42b2a5b1efd7a9d6164736f6c63430008040033", + "bytecode": "0x60806040526000600255600060035560006004553480156200002057600080fd5b5060405162004f5d38038062004f5d833981810160405281019062000046919062000566565b60008060006101000a81548160ff0219169083151502179055506000855111620000a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200009e906200068a565b60405180910390fd5b60008361ffff16118015620000c1575084518361ffff1611155b62000103576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000fa9062000668565b60405180910390fd5b60005b855181101562000183576200016c8682815181106200014e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516007620002da60201b6200199f1790919060201c565b5080806200017a9062000802565b91505062000106565b5060005b84518110156200024157600260096000878481518110620001d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055508080620002389062000802565b91505062000187565b508261ffff1660018190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000993565b60006200030a836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200031260201b60201c565b905092915050565b60006200032683836200038c60201b60201c565b6200038157826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000386565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000620003c6620003c084620006d5565b620006ac565b90508083825260208201905082856020860282011115620003e657600080fd5b60005b858110156200041a5781620003ff888262000499565b845260208401935060208301925050600181019050620003e9565b5050509392505050565b60006200043b620004358462000704565b620006ac565b905080838252602082019050828560208602820111156200045b57600080fd5b60005b858110156200048f57816200047488826200050a565b8452602084019350602083019250506001810190506200045e565b5050509392505050565b600081519050620004aa8162000911565b92915050565b600082601f830112620004c257600080fd5b8151620004d4848260208601620003af565b91505092915050565b600082601f830112620004ef57600080fd5b81516200050184826020860162000424565b91505092915050565b6000815190506200051b816200092b565b92915050565b600081519050620005328162000945565b92915050565b60008151905062000549816200095f565b92915050565b600081519050620005608162000979565b92915050565b600080600080600060a086880312156200057f57600080fd5b600086015167ffffffffffffffff8111156200059a57600080fd5b620005a888828901620004b0565b955050602086015167ffffffffffffffff811115620005c657600080fd5b620005d488828901620004dd565b9450506040620005e7888289016200054f565b9350506060620005fa8882890162000538565b92505060806200060d8882890162000521565b9150509295509295909350565b60006200062960128362000733565b91506200063682620008bf565b602082019050919050565b600062000650601d8362000733565b91506200065d82620008e8565b602082019050919050565b6000602082019050818103600083015262000683816200061a565b9050919050565b60006020820190508181036000830152620006a58162000641565b9050919050565b6000620006b8620006cb565b9050620006c68282620007cc565b919050565b6000604051905090565b600067ffffffffffffffff821115620006f357620006f26200087f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156200072257620007216200087f565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006200075182620007a2565b9050919050565b6000620007658262000744565b9050919050565b6000620007798262000744565b9050919050565b60006200078d8262000744565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620007d782620008ae565b810181811067ffffffffffffffff82111715620007f957620007f86200087f565b5b80604052505050565b60006200080f82620007c2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000845576200084462000850565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f696e76616c6964207468726573686f6c64210000000000000000000000000000600082015250565b7f56616c696461746f7273206d757374206e6f7420626520656d70747921000000600082015250565b6200091c8162000744565b81146200092857600080fd5b50565b620009368162000758565b81146200094257600080fd5b50565b62000950816200076c565b81146200095c57600080fd5b50565b6200096a8162000780565b81146200097657600080fd5b50565b620009848162000794565b81146200099057600080fd5b50565b6145ba80620009a36000396000f3fe6080604052600436106100fe5760003560e01c80636d0446d911610095578063daf1396411610064578063daf13964146102f2578063e2ef22171461031b578063ef1d0dec14610337578063f30f44a114610360578063f325c75414610389576100fe565b80636d0446d91461026857806372536d4f146102915780638b202d8f146102ba578063cff75c78146102d6576100fe565b8063453d7365116100d1578063453d7365146101ae578063519de490146101eb5780635c975abb146102145780635df93c7e1461023f576100fe565b80630d11f0a414610103578063128e66bd1461011f578063150b7a0214610148578063270c1cb414610185575b600080fd5b61011d60048036038101906101189190612f38565b6103b2565b005b34801561012b57600080fd5b5061014660048036038101906101419190612ffa565b61044e565b005b34801561015457600080fd5b5061016f600480360381019061016a9190612e3d565b6105b3565b60405161017c91906138ab565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190612fd1565b6105c7565b005b3480156101ba57600080fd5b506101d560048036038101906101d09190613085565b6106ba565b6040516101e29190613b54565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d9190612fd1565b610984565b005b34801561022057600080fd5b50610229610a76565b6040516102369190613890565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613036565b610a8c565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612fd1565b610c27565b005b34801561029d57600080fd5b506102b860048036038101906102b391906130f1565b610cd2565b005b6102d460048036038101906102cf919061322f565b610f17565b005b6102f060048036038101906102eb919061329b565b610fb5565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612ffa565b6110ce565b005b61033560048036038101906103309190612eb8565b61128c565b005b34801561034357600080fd5b5061035e600480360381019061035991906131cc565b611497565b005b34801561036c57600080fd5b5061038760048036038101906103829190613154565b611660565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613190565b611848565b005b600034116103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90613a26565b60405180910390fd5b6103fd610a76565b1561043d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610434906139c6565b60405180910390fd5b610449338484846119cf565b505050565b610456610a76565b15610496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048d906139c6565b60405180910390fd5b6104aa816007611d3090919063ffffffff16565b156104ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e1906139e6565b60405180910390fd5b6000816040516020016104fd91906137a8565b6040516020818303038152906040529050600061051c84600784611d60565b905060006001811115610558577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610591577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105ad576105ab83600761199f90919063ffffffff16565b505b50505050565b600063150b7a0260e01b9050949350505050565b6105cf610a76565b1561060f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610606906139c6565b60405180910390fd5b6000604051806020016040528060008152509050600061063183600584611d60565b90506000600181111561066d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156106a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156106b5576106b46124b1565b5b505050565b60006106c4610a76565b15610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906139c6565b60405180910390fd5b600060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040516020016107859190613ae1565b604051602081830303815290604052905060006107a487600184611d60565b9050600060018111156107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610819577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19876003546040518363ffffffff1660e01b815260040161087e929190613830565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260035487876040518463ffffffff1660e01b815260040161091193929190613b6f565b600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050506001600360008282546109569190613df8565b92505081905550600160035461096c9190613e7f565b9250505061097c565b6000925050505b949350505050565b61098c610a76565b6109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c2906138e6565b60405180910390fd5b600060405180602001604052806000815250905060006109ed83600684611d60565b905060006001811115610a29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a62577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a7157610a70612553565b5b505050565b60008060009054906101000a900460ff16905090565b610a94610a76565b15610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906139c6565b60405180910390fd5b600060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250604051602001610b119190613b03565b60405160208183030381529060405290506000610b3085600284611d60565b905060006001811115610b6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610ba5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c20578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1690613a66565b60405180910390fd5b5b5050505050565b60006040518060200160405280600081525090506000610c4983600a84611d60565b905060006001811115610c85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610cbe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610ccd57610ccc6125f4565b5b505050565b610cda610a76565b15610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d11906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390613aa6565b60405180910390fd5b600060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815250604051602001610e059190613b1e565b60405160208183030381529060405290506000610e2486600384611d60565b905060006001811115610e60577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610e99577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610f0f578273ffffffffffffffffffffffffffffffffffffffff166342842e0e3087876040518463ffffffff1660e01b8152600401610edc939291906137f9565b600060405180830381600087803b158015610ef657600080fd5b505af1158015610f0a573d6000803e3d6000fd5b505050505b505050505050565b60003411610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613a26565b60405180910390fd5b610f62610a76565b15610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906139c6565b60405180910390fd5b610faf33858585856126aa565b50505050565b610fbd610a76565b15610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906139c6565b60405180910390fd5b80341161103f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103690613926565b60405180910390fd5b7f88f79205ab1c13838c5021687f6e6e5840f03604b240c4f7441a657029b346e46002548483346110709190613e7f565b8585604051611083959493929190613cea565b60405180910390a160016002600082825461109e9190613df8565b9250508190555080346110b19190613e7f565b600460008282546110c29190613df8565b92505081905550505050565b6110d6610a76565b15611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d906139c6565b60405180910390fd5b600161112260076127b8565b61112c9190613e7f565b6001541115611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790613966565b60405180910390fd5b611184816007611d3090919063ffffffff16565b6111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906139a6565b60405180910390fd5b6000816040516020016111d691906137a8565b604051602081830303815290604052905060006111f584600884611d60565b905060006001811115611231577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561126a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611286576112848360076127cd90919063ffffffff16565b505b50505050565b600034116112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613a26565b60405180910390fd5b6112d7610a76565b15611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e906139c6565b60405180910390fd5b6002600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090613a46565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016113e6939291906137f9565b600060405180830381600087803b15801561140057600080fd5b505af1158015611414573d6000803e3d6000fd5b505050507fefd5d17615e8d78513f02fa7a2aab6ebdf2452857907b1293a10e321e9d5386b60025484348585898b6040516114559796959493929190613c80565b60405180910390a16001600260008282546114709190613df8565b9250508190555034600460008282546114899190613df8565b925050819055505050505050565b61149f610a76565b156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d6906139c6565b60405180910390fd5b600060405180606001604052808567ffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381525060405160200161152c9190613ac6565b6040516020818303038152906040529050600061154b86600084611d60565b905060006001811115611587577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156115c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561165857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68587866040518463ffffffff1660e01b815260040161162593929190613859565b600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050505b505050505050565b611668610a76565b156116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290613a06565b60405180910390fd5b60008160405160200161174e91906137a8565b6040516020818303038152906040529050600061176d84600484611d60565b9050600060018111156117a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156117e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611842576002600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b50505050565b611850610a76565b15611890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611887906139c6565b60405180910390fd5b61189a60076127b8565b8161ffff1611156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790613986565b60405180910390fd5b6000816040516020016118f391906137c3565b6040516020818303038152906040529050600061191284600984611d60565b90506000600181111561194e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115611987577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611999578261ffff166001819055505b50505050565b60006119c7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127fd565b905092915050565b8373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401611a419190613b54565b60206040518083038186803b158015611a5957600080fd5b505afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190612e14565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613a86565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b8152600401611b449190613b54565b60006040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b999190612f90565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b8152600401611bf69190613ba1565b600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68836040518263ffffffff1660e01b8152600401611c839190613b54565b600060405180830381600087803b158015611c9d57600080fd5b505af1158015611cb1573d6000803e3d6000fd5b505050507f9fa54a915c5d5d5ff39f445ca7c4b9bce03cbaf401223dbd10d1079fcdd0b56660025434868685604051611cee959493929190613bcf565b60405180910390a1600160026000828254611d099190613df8565b925050819055503460046000828254611d229190613df8565b925050819055505050505050565b6000611d58836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61286d565b905092915050565b6000611d76336007611d3090919063ffffffff16565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906138c6565b60405180910390fd5b6000600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611f1957604051806080016040528084600a811115611e3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001838152602001600181526020016001815250600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083600a811115611edb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151816001019080519060200190611efc929190612b07565b506040820151816002015560608201518160030155905050612293565b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613946565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461202c9190613df8565b9250508190555082600a81111561206c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600a8111156120ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212390613906565b60405180910390fd5b61220182600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101805461217590613fef565b80601f01602080910402602001604051908101604052809291908181526020018280546121a190613fef565b80156121ee5780601f106121c3576101008083540402835291602001916121ee565b820191906000526020600020905b8154815290600101906020018083116121d157829003601f168201915b505050505061289090919063ffffffff16565b612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613906565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825461228b9190613df8565b925050819055505b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600060019050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060020154141561237057600090505b61237a60076127b8565b600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414156124a657600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556001820160006124179190612b8d565b600282016000905560038201600090555050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410156124a5577fe22e1372cd6c9720ae7fc7854536a963d13d9996efde6038cbcecac7ff182e078560405161249c9190613b39565b60405180910390a15b5b809150509392505050565b6124b9610a76565b156124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f0906139c6565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861253c6128fd565b60405161254991906137de565b60405180910390a1565b61255b610a76565b61259a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612591906138e6565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6125dd6128fd565b6040516125ea91906137de565b60405180910390a1565b600061260060076127b8565b90506000816004546126129190613e4e565b905060005b828110156126a55761263381600761290590919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612678573d6000803e3d6000fd5b50816004600082825461268b9190613e7f565b92505081905550808061269d90614052565b915050612617565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161270993929190613859565b600060405180830381600087803b15801561272357600080fd5b505af1158015612737573d6000803e3d6000fd5b505050507f135c92cfa1cfe8e46534cd8748b74ee2505948ac3023824a91dc57ffda5f5b4c600254853486868660405161277696959493929190613c24565b60405180910390a16001600260008282546127919190613df8565b9250508190555034600460008282546127aa9190613df8565b925050819055505050505050565b60006127c68260000161291f565b9050919050565b60006127f5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612930565b905092915050565b6000612809838361286d565b612862578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612867565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008060019050835183518114600181146128ae57600092506128f1565b600160208701838101602088015b6002848385100114156128ec5780518351146128db5760009650600093505b6020830192506020810190506128bc565b505050505b50508091505092915050565b600033905090565b60006129148360000183612ab6565b60001c905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114612aaa5760006001826129629190613e7f565b905060006001866000018054905061297a9190613e7f565b9050818114612a355760008660000182815481106129c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612a6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612ab0565b60009150505b92915050565b6000826000018281548110612af4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b828054612b1390613fef565b90600052602060002090601f016020900481019282612b355760008555612b7c565b82601f10612b4e57805160ff1916838001178555612b7c565b82800160010185558215612b7c579182015b82811115612b7b578251825591602001919060010190612b60565b5b509050612b899190612bcd565b5090565b508054612b9990613fef565b6000825580601f10612bab5750612bca565b601f016020900490600052602060002090810190612bc99190612bcd565b5b50565b5b80821115612be6576000816000905550600101612bce565b5090565b6000612bfd612bf884613d69565b613d44565b905082815260208101848484011115612c1557600080fd5b612c20848285613fad565b509392505050565b6000612c3b612c3684613d9a565b613d44565b905082815260208101848484011115612c5357600080fd5b612c5e848285613fad565b509392505050565b6000612c79612c7484613d9a565b613d44565b905082815260208101848484011115612c9157600080fd5b612c9c848285613fbc565b509392505050565b600081359050612cb3816144e3565b92915050565b600081519050612cc8816144e3565b92915050565b600081359050612cdd816144fa565b92915050565b600082601f830112612cf457600080fd5b8135612d04848260208601612bea565b91505092915050565b600081359050612d1c81614511565b92915050565b60008083601f840112612d3457600080fd5b8235905067ffffffffffffffff811115612d4d57600080fd5b602083019150836001820283011115612d6557600080fd5b9250929050565b600082601f830112612d7d57600080fd5b8135612d8d848260208601612c28565b91505092915050565b600082601f830112612da757600080fd5b8151612db7848260208601612c66565b91505092915050565b600081359050612dcf81614528565b92915050565b600081359050612de48161453f565b92915050565b600081359050612df981614556565b92915050565b600081359050612e0e8161456d565b92915050565b600060208284031215612e2657600080fd5b6000612e3484828501612cb9565b91505092915050565b60008060008060808587031215612e5357600080fd5b6000612e6187828801612ca4565b9450506020612e7287828801612ca4565b9350506040612e8387828801612dea565b925050606085013567ffffffffffffffff811115612ea057600080fd5b612eac87828801612ce3565b91505092959194509250565b600080600080600060808688031215612ed057600080fd5b6000612ede88828901612d0d565b9550506020612eef88828901612dea565b9450506040612f0088828901612dff565b935050606086013567ffffffffffffffff811115612f1d57600080fd5b612f2988828901612d22565b92509250509295509295909350565b600080600060408486031215612f4d57600080fd5b600084013567ffffffffffffffff811115612f6757600080fd5b612f7386828701612d22565b93509350506020612f8686828701612dea565b9150509250925092565b600060208284031215612fa257600080fd5b600082015167ffffffffffffffff811115612fbc57600080fd5b612fc884828501612d96565b91505092915050565b600060208284031215612fe357600080fd5b6000612ff184828501612dc0565b91505092915050565b6000806040838503121561300d57600080fd5b600061301b85828601612dc0565b925050602061302c85828601612ca4565b9150509250929050565b60008060006060848603121561304b57600080fd5b600061305986828701612dc0565b935050602061306a86828701612cce565b925050604061307b86828701612dea565b9150509250925092565b6000806000806060858703121561309b57600080fd5b60006130a987828801612dc0565b94505060206130ba87828801612ca4565b935050604085013567ffffffffffffffff8111156130d757600080fd5b6130e387828801612d22565b925092505092959194509250565b6000806000806080858703121561310757600080fd5b600061311587828801612dc0565b945050602061312687828801612ca4565b935050604061313787828801612dea565b925050606061314887828801612d0d565b91505092959194509250565b6000806040838503121561316757600080fd5b600061317585828601612dc0565b925050602061318685828601612d0d565b9150509250929050565b600080604083850312156131a357600080fd5b60006131b185828601612dc0565b92505060206131c285828601612dd5565b9150509250929050565b600080600080608085870312156131e257600080fd5b60006131f087828801612dc0565b945050602061320187828801612dff565b935050604061321287828801612ca4565b925050606061322387828801612dea565b91505092959194509250565b6000806000806060858703121561324557600080fd5b600061325387828801612dff565b945050602085013567ffffffffffffffff81111561327057600080fd5b61327c87828801612d22565b9350935050604061328f87828801612dea565b91505092959194509250565b6000806000606084860312156132b057600080fd5b60006132be86828701612dff565b935050602084013567ffffffffffffffff8111156132db57600080fd5b6132e786828701612d6c565b92505060406132f886828701612dea565b9150509250925092565b61330b81613eb3565b82525050565b61331a81613eb3565b82525050565b61333161332c82613eb3565b61409b565b82525050565b61334081613ed7565b82525050565b61334f81613ee3565b82525050565b60006133618385613de7565b935061336e838584613fad565b6133778361418d565b840190509392505050565b600061338d82613dcb565b6133978185613dd6565b93506133a7818560208601613fbc565b6133b08161418d565b840191505092915050565b60006133c682613dcb565b6133d08185613de7565b93506133e0818560208601613fbc565b6133e98161418d565b840191505092915050565b6000613401601083613de7565b915061340c826141b8565b602082019050919050565b6000613424601483613de7565b915061342f826141e1565b602082019050919050565b6000613447600f83613de7565b91506134528261420a565b602082019050919050565b600061346a602983613de7565b915061347582614233565b604082019050919050565b600061348d601483613de7565b915061349882614282565b602082019050919050565b60006134b0603483613de7565b91506134bb826142ab565b604082019050919050565b60006134d3602783613de7565b91506134de826142fa565b604082019050919050565b60006134f6602083613de7565b915061350182614349565b602082019050919050565b6000613519601083613de7565b915061352482614372565b602082019050919050565b600061353c601383613de7565b91506135478261439b565b602082019050919050565b600061355f601783613de7565b915061356a826143c4565b602082019050919050565b6000613582601483613de7565b915061358d826143ed565b602082019050919050565b60006135a5602483613de7565b91506135b082614416565b604082019050919050565b60006135c8601483613de7565b91506135d382614465565b602082019050919050565b60006135eb601783613de7565b91506135f68261448e565b602082019050919050565b600061360e600083613de7565b9150613619826144b7565b600082019050919050565b6000613631601583613de7565b915061363c826144ba565b602082019050919050565b60608201600082015161365d600085018261378a565b5060208201516136706020850182613302565b506040820151613683604085018261375d565b50505050565b60006040830160008301516136a16000860182613302565b50602083015184820360208601526136b98282613382565b9150508091505092915050565b6040820160008201516136dc6000850182613302565b5060208201516136ef602085018261375d565b50505050565b60608201600082015161370b6000850182613302565b50602082015161371e602085018261375d565b5060408201516137316040850182613302565b50505050565b61374081613f89565b82525050565b61375761375282613f3d565b6140ad565b82525050565b61376681613f6b565b82525050565b61377581613f6b565b82525050565b61378481613f9b565b82525050565b61379381613f75565b82525050565b6137a281613f75565b82525050565b60006137b48284613320565b60148201915081905092915050565b60006137cf8284613746565b60028201915081905092915050565b60006020820190506137f36000830184613311565b92915050565b600060608201905061380e6000830186613311565b61381b6020830185613311565b613828604083018461376c565b949350505050565b60006040820190506138456000830185613311565b613852602083018461376c565b9392505050565b600060608201905061386e6000830186613311565b61387b602083018561377b565b613888604083018461376c565b949350505050565b60006020820190506138a56000830184613337565b92915050565b60006020820190506138c06000830184613346565b92915050565b600060208201905081810360008301526138df816133f4565b9050919050565b600060208201905081810360008301526138ff81613417565b9050919050565b6000602082019050818103600083015261391f8161343a565b9050919050565b6000602082019050818103600083015261393f8161345d565b9050919050565b6000602082019050818103600083015261395f81613480565b9050919050565b6000602082019050818103600083015261397f816134a3565b9050919050565b6000602082019050818103600083015261399f816134c6565b9050919050565b600060208201905081810360008301526139bf816134e9565b9050919050565b600060208201905081810360008301526139df8161350c565b9050919050565b600060208201905081810360008301526139ff8161352f565b9050919050565b60006020820190508181036000830152613a1f81613552565b9050919050565b60006020820190508181036000830152613a3f81613575565b9050919050565b60006020820190508181036000830152613a5f81613598565b9050919050565b60006020820190508181036000830152613a7f816135bb565b9050919050565b60006020820190508181036000830152613a9f816135de565b9050919050565b60006020820190508181036000830152613abf81613624565b9050919050565b6000606082019050613adb6000830184613647565b92915050565b60006020820190508181036000830152613afb8184613689565b905092915050565b6000604082019050613b1860008301846136c6565b92915050565b6000606082019050613b3360008301846136f5565b92915050565b6000602082019050613b4e6000830184613737565b92915050565b6000602082019050613b69600083018461376c565b92915050565b6000604082019050613b84600083018661376c565b8181036020830152613b97818486613355565b9050949350505050565b6000604082019050613bb6600083018461376c565b8181036020830152613bc781613601565b905092915050565b6000608082019050613be4600083018861376c565b613bf1602083018761376c565b8181036040830152613c04818587613355565b90508181036060830152613c1881846133bb565b90509695505050505050565b600060a082019050613c39600083018961376c565b613c466020830188613799565b613c53604083018761376c565b8181036060830152613c66818587613355565b9050613c75608083018461376c565b979650505050505050565b600060c082019050613c95600083018a61376c565b613ca26020830189613799565b613caf604083018861376c565b8181036060830152613cc2818688613355565b9050613cd1608083018561376c565b613cde60a0830184613311565b98975050505050505050565b600060a082019050613cff600083018861376c565b613d0c6020830187613799565b613d19604083018661376c565b8181036060830152613d2b81856133bb565b9050613d3a608083018461376c565b9695505050505050565b6000613d4e613d5f565b9050613d5a8282614021565b919050565b6000604051905090565b600067ffffffffffffffff821115613d8457613d8361415e565b5b613d8d8261418d565b9050602081019050919050565b600067ffffffffffffffff821115613db557613db461415e565b5b613dbe8261418d565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e0382613f6b565b9150613e0e83613f6b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e4357613e426140d1565b5b828201905092915050565b6000613e5982613f6b565b9150613e6483613f6b565b925082613e7457613e73614100565b5b828204905092915050565b6000613e8a82613f6b565b9150613e9583613f6b565b925082821015613ea857613ea76140d1565b5b828203905092915050565b6000613ebe82613f4b565b9050919050565b6000613ed082613f4b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000613f1a82613eb3565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000613f9482613f21565b9050919050565b6000613fa682613f75565b9050919050565b82818337600083830152505050565b60005b83811015613fda578082015181840152602081019050613fbf565b83811115613fe9576000848401525b50505050565b6000600282049050600182168061400757607f821691505b6020821081141561401b5761401a61412f565b5b50919050565b61402a8261418d565b810181811067ffffffffffffffff821117156140495761404861415e565b5b80604052505050565b600061405d82613f6b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140905761408f6140d1565b5b600182019050919050565b60006140a6826140bf565b9050919050565b60006140b88261419e565b9050919050565b60006140ca826141ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f01b9050919050565b60008160601b9050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f416374696f6e204d69736d617463680000000000000000000000000000000000600082015250565b7f6d7573742070617920626f74682076616c756520616e64207472616e7361637460008201527f696f6e2066656573210000000000000000000000000000000000000000000000602082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f75706461746520746865207468726573686f6c64206265666f72652072656d6f60008201527f76696e6720746869732076616c696461746f7221000000000000000000000000602082015250565b7f76616c696461746f7273206d757374206265203c3d2076616c696461746f727360008201527f206c656e67746800000000000000000000000000000000000000000000000000602082015250565b7f676976656e2061646472657373206973206e6f7420612076616c696461746f72600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f616c726561647920612076616c696461746f7200000000000000000000000000600082015250565b7f4e465420616c72656164792077686974656c6973746564000000000000000000600082015250565b7f5478204665657320697320726571756972656421000000000000000000000000600082015250565b7f54686973204e465420636f6e7472616374206973206e6f742077686974656c6960008201527f7374656400000000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f596f7520646f6e2774206f776e2074686973206e667421000000000000000000600082015250565b50565b7f4e4654206e6f742077686974656c69737465643f210000000000000000000000600082015250565b6144ec81613eb3565b81146144f757600080fd5b50565b61450381613ec5565b811461450e57600080fd5b50565b61451a81613f0f565b811461452557600080fd5b50565b61453181613f21565b811461453c57600080fd5b50565b61454881613f3d565b811461455357600080fd5b50565b61455f81613f6b565b811461456a57600080fd5b50565b61457681613f75565b811461458157600080fd5b5056fea2646970667358221220a659c1fdb7743f7a286cb8aef43425cab05c2f792ea5465274023c94e5d4bdad64736f6c63430008040033", + "deployedBytecode": "0x6080604052600436106100fe5760003560e01c80636d0446d911610095578063daf1396411610064578063daf13964146102f2578063e2ef22171461031b578063ef1d0dec14610337578063f30f44a114610360578063f325c75414610389576100fe565b80636d0446d91461026857806372536d4f146102915780638b202d8f146102ba578063cff75c78146102d6576100fe565b8063453d7365116100d1578063453d7365146101ae578063519de490146101eb5780635c975abb146102145780635df93c7e1461023f576100fe565b80630d11f0a414610103578063128e66bd1461011f578063150b7a0214610148578063270c1cb414610185575b600080fd5b61011d60048036038101906101189190612f38565b6103b2565b005b34801561012b57600080fd5b5061014660048036038101906101419190612ffa565b61044e565b005b34801561015457600080fd5b5061016f600480360381019061016a9190612e3d565b6105b3565b60405161017c91906138ab565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190612fd1565b6105c7565b005b3480156101ba57600080fd5b506101d560048036038101906101d09190613085565b6106ba565b6040516101e29190613b54565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d9190612fd1565b610984565b005b34801561022057600080fd5b50610229610a76565b6040516102369190613890565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613036565b610a8c565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612fd1565b610c27565b005b34801561029d57600080fd5b506102b860048036038101906102b391906130f1565b610cd2565b005b6102d460048036038101906102cf919061322f565b610f17565b005b6102f060048036038101906102eb919061329b565b610fb5565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612ffa565b6110ce565b005b61033560048036038101906103309190612eb8565b61128c565b005b34801561034357600080fd5b5061035e600480360381019061035991906131cc565b611497565b005b34801561036c57600080fd5b5061038760048036038101906103829190613154565b611660565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613190565b611848565b005b600034116103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90613a26565b60405180910390fd5b6103fd610a76565b1561043d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610434906139c6565b60405180910390fd5b610449338484846119cf565b505050565b610456610a76565b15610496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048d906139c6565b60405180910390fd5b6104aa816007611d3090919063ffffffff16565b156104ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e1906139e6565b60405180910390fd5b6000816040516020016104fd91906137a8565b6040516020818303038152906040529050600061051c84600784611d60565b905060006001811115610558577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610591577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105ad576105ab83600761199f90919063ffffffff16565b505b50505050565b600063150b7a0260e01b9050949350505050565b6105cf610a76565b1561060f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610606906139c6565b60405180910390fd5b6000604051806020016040528060008152509050600061063183600584611d60565b90506000600181111561066d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156106a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156106b5576106b46124b1565b5b505050565b60006106c4610a76565b15610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906139c6565b60405180910390fd5b600060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040516020016107859190613ae1565b604051602081830303815290604052905060006107a487600184611d60565b9050600060018111156107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610819577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19876003546040518363ffffffff1660e01b815260040161087e929190613830565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260035487876040518463ffffffff1660e01b815260040161091193929190613b6f565b600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050506001600360008282546109569190613df8565b92505081905550600160035461096c9190613e7f565b9250505061097c565b6000925050505b949350505050565b61098c610a76565b6109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c2906138e6565b60405180910390fd5b600060405180602001604052806000815250905060006109ed83600684611d60565b905060006001811115610a29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a62577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a7157610a70612553565b5b505050565b60008060009054906101000a900460ff16905090565b610a94610a76565b15610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906139c6565b60405180910390fd5b600060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250604051602001610b119190613b03565b60405160208183030381529060405290506000610b3085600284611d60565b905060006001811115610b6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610ba5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c20578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1690613a66565b60405180910390fd5b5b5050505050565b60006040518060200160405280600081525090506000610c4983600a84611d60565b905060006001811115610c85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610cbe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610ccd57610ccc6125f4565b5b505050565b610cda610a76565b15610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d11906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390613aa6565b60405180910390fd5b600060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815250604051602001610e059190613b1e565b60405160208183030381529060405290506000610e2486600384611d60565b905060006001811115610e60577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610e99577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610f0f578273ffffffffffffffffffffffffffffffffffffffff166342842e0e3087876040518463ffffffff1660e01b8152600401610edc939291906137f9565b600060405180830381600087803b158015610ef657600080fd5b505af1158015610f0a573d6000803e3d6000fd5b505050505b505050505050565b60003411610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613a26565b60405180910390fd5b610f62610a76565b15610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906139c6565b60405180910390fd5b610faf33858585856126aa565b50505050565b610fbd610a76565b15610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906139c6565b60405180910390fd5b80341161103f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103690613926565b60405180910390fd5b7f88f79205ab1c13838c5021687f6e6e5840f03604b240c4f7441a657029b346e46002548483346110709190613e7f565b8585604051611083959493929190613cea565b60405180910390a160016002600082825461109e9190613df8565b9250508190555080346110b19190613e7f565b600460008282546110c29190613df8565b92505081905550505050565b6110d6610a76565b15611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d906139c6565b60405180910390fd5b600161112260076127b8565b61112c9190613e7f565b6001541115611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790613966565b60405180910390fd5b611184816007611d3090919063ffffffff16565b6111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906139a6565b60405180910390fd5b6000816040516020016111d691906137a8565b604051602081830303815290604052905060006111f584600884611d60565b905060006001811115611231577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561126a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611286576112848360076127cd90919063ffffffff16565b505b50505050565b600034116112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613a26565b60405180910390fd5b6112d7610a76565b15611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e906139c6565b60405180910390fd5b6002600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090613a46565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016113e6939291906137f9565b600060405180830381600087803b15801561140057600080fd5b505af1158015611414573d6000803e3d6000fd5b505050507fefd5d17615e8d78513f02fa7a2aab6ebdf2452857907b1293a10e321e9d5386b60025484348585898b6040516114559796959493929190613c80565b60405180910390a16001600260008282546114709190613df8565b9250508190555034600460008282546114899190613df8565b925050819055505050505050565b61149f610a76565b156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d6906139c6565b60405180910390fd5b600060405180606001604052808567ffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381525060405160200161152c9190613ac6565b6040516020818303038152906040529050600061154b86600084611d60565b905060006001811115611587577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156115c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561165857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68587866040518463ffffffff1660e01b815260040161162593929190613859565b600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050505b505050505050565b611668610a76565b156116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290613a06565b60405180910390fd5b60008160405160200161174e91906137a8565b6040516020818303038152906040529050600061176d84600484611d60565b9050600060018111156117a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156117e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611842576002600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b50505050565b611850610a76565b15611890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611887906139c6565b60405180910390fd5b61189a60076127b8565b8161ffff1611156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790613986565b60405180910390fd5b6000816040516020016118f391906137c3565b6040516020818303038152906040529050600061191284600984611d60565b90506000600181111561194e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115611987577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611999578261ffff166001819055505b50505050565b60006119c7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127fd565b905092915050565b8373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401611a419190613b54565b60206040518083038186803b158015611a5957600080fd5b505afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190612e14565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613a86565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b8152600401611b449190613b54565b60006040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b999190612f90565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b8152600401611bf69190613ba1565b600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68836040518263ffffffff1660e01b8152600401611c839190613b54565b600060405180830381600087803b158015611c9d57600080fd5b505af1158015611cb1573d6000803e3d6000fd5b505050507f9fa54a915c5d5d5ff39f445ca7c4b9bce03cbaf401223dbd10d1079fcdd0b56660025434868685604051611cee959493929190613bcf565b60405180910390a1600160026000828254611d099190613df8565b925050819055503460046000828254611d229190613df8565b925050819055505050505050565b6000611d58836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61286d565b905092915050565b6000611d76336007611d3090919063ffffffff16565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906138c6565b60405180910390fd5b6000600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611f1957604051806080016040528084600a811115611e3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001838152602001600181526020016001815250600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083600a811115611edb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151816001019080519060200190611efc929190612b07565b506040820151816002015560608201518160030155905050612293565b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613946565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461202c9190613df8565b9250508190555082600a81111561206c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600a8111156120ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212390613906565b60405180910390fd5b61220182600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101805461217590613fef565b80601f01602080910402602001604051908101604052809291908181526020018280546121a190613fef565b80156121ee5780601f106121c3576101008083540402835291602001916121ee565b820191906000526020600020905b8154815290600101906020018083116121d157829003601f168201915b505050505061289090919063ffffffff16565b612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613906565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825461228b9190613df8565b925050819055505b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600060019050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060020154141561237057600090505b61237a60076127b8565b600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414156124a657600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556001820160006124179190612b8d565b600282016000905560038201600090555050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410156124a5577fe22e1372cd6c9720ae7fc7854536a963d13d9996efde6038cbcecac7ff182e078560405161249c9190613b39565b60405180910390a15b5b809150509392505050565b6124b9610a76565b156124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f0906139c6565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861253c6128fd565b60405161254991906137de565b60405180910390a1565b61255b610a76565b61259a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612591906138e6565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6125dd6128fd565b6040516125ea91906137de565b60405180910390a1565b600061260060076127b8565b90506000816004546126129190613e4e565b905060005b828110156126a55761263381600761290590919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612678573d6000803e3d6000fd5b50816004600082825461268b9190613e7f565b92505081905550808061269d90614052565b915050612617565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161270993929190613859565b600060405180830381600087803b15801561272357600080fd5b505af1158015612737573d6000803e3d6000fd5b505050507f135c92cfa1cfe8e46534cd8748b74ee2505948ac3023824a91dc57ffda5f5b4c600254853486868660405161277696959493929190613c24565b60405180910390a16001600260008282546127919190613df8565b9250508190555034600460008282546127aa9190613df8565b925050819055505050505050565b60006127c68260000161291f565b9050919050565b60006127f5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612930565b905092915050565b6000612809838361286d565b612862578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612867565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008060019050835183518114600181146128ae57600092506128f1565b600160208701838101602088015b6002848385100114156128ec5780518351146128db5760009650600093505b6020830192506020810190506128bc565b505050505b50508091505092915050565b600033905090565b60006129148360000183612ab6565b60001c905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114612aaa5760006001826129629190613e7f565b905060006001866000018054905061297a9190613e7f565b9050818114612a355760008660000182815481106129c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612a6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612ab0565b60009150505b92915050565b6000826000018281548110612af4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b828054612b1390613fef565b90600052602060002090601f016020900481019282612b355760008555612b7c565b82601f10612b4e57805160ff1916838001178555612b7c565b82800160010185558215612b7c579182015b82811115612b7b578251825591602001919060010190612b60565b5b509050612b899190612bcd565b5090565b508054612b9990613fef565b6000825580601f10612bab5750612bca565b601f016020900490600052602060002090810190612bc99190612bcd565b5b50565b5b80821115612be6576000816000905550600101612bce565b5090565b6000612bfd612bf884613d69565b613d44565b905082815260208101848484011115612c1557600080fd5b612c20848285613fad565b509392505050565b6000612c3b612c3684613d9a565b613d44565b905082815260208101848484011115612c5357600080fd5b612c5e848285613fad565b509392505050565b6000612c79612c7484613d9a565b613d44565b905082815260208101848484011115612c9157600080fd5b612c9c848285613fbc565b509392505050565b600081359050612cb3816144e3565b92915050565b600081519050612cc8816144e3565b92915050565b600081359050612cdd816144fa565b92915050565b600082601f830112612cf457600080fd5b8135612d04848260208601612bea565b91505092915050565b600081359050612d1c81614511565b92915050565b60008083601f840112612d3457600080fd5b8235905067ffffffffffffffff811115612d4d57600080fd5b602083019150836001820283011115612d6557600080fd5b9250929050565b600082601f830112612d7d57600080fd5b8135612d8d848260208601612c28565b91505092915050565b600082601f830112612da757600080fd5b8151612db7848260208601612c66565b91505092915050565b600081359050612dcf81614528565b92915050565b600081359050612de48161453f565b92915050565b600081359050612df981614556565b92915050565b600081359050612e0e8161456d565b92915050565b600060208284031215612e2657600080fd5b6000612e3484828501612cb9565b91505092915050565b60008060008060808587031215612e5357600080fd5b6000612e6187828801612ca4565b9450506020612e7287828801612ca4565b9350506040612e8387828801612dea565b925050606085013567ffffffffffffffff811115612ea057600080fd5b612eac87828801612ce3565b91505092959194509250565b600080600080600060808688031215612ed057600080fd5b6000612ede88828901612d0d565b9550506020612eef88828901612dea565b9450506040612f0088828901612dff565b935050606086013567ffffffffffffffff811115612f1d57600080fd5b612f2988828901612d22565b92509250509295509295909350565b600080600060408486031215612f4d57600080fd5b600084013567ffffffffffffffff811115612f6757600080fd5b612f7386828701612d22565b93509350506020612f8686828701612dea565b9150509250925092565b600060208284031215612fa257600080fd5b600082015167ffffffffffffffff811115612fbc57600080fd5b612fc884828501612d96565b91505092915050565b600060208284031215612fe357600080fd5b6000612ff184828501612dc0565b91505092915050565b6000806040838503121561300d57600080fd5b600061301b85828601612dc0565b925050602061302c85828601612ca4565b9150509250929050565b60008060006060848603121561304b57600080fd5b600061305986828701612dc0565b935050602061306a86828701612cce565b925050604061307b86828701612dea565b9150509250925092565b6000806000806060858703121561309b57600080fd5b60006130a987828801612dc0565b94505060206130ba87828801612ca4565b935050604085013567ffffffffffffffff8111156130d757600080fd5b6130e387828801612d22565b925092505092959194509250565b6000806000806080858703121561310757600080fd5b600061311587828801612dc0565b945050602061312687828801612ca4565b935050604061313787828801612dea565b925050606061314887828801612d0d565b91505092959194509250565b6000806040838503121561316757600080fd5b600061317585828601612dc0565b925050602061318685828601612d0d565b9150509250929050565b600080604083850312156131a357600080fd5b60006131b185828601612dc0565b92505060206131c285828601612dd5565b9150509250929050565b600080600080608085870312156131e257600080fd5b60006131f087828801612dc0565b945050602061320187828801612dff565b935050604061321287828801612ca4565b925050606061322387828801612dea565b91505092959194509250565b6000806000806060858703121561324557600080fd5b600061325387828801612dff565b945050602085013567ffffffffffffffff81111561327057600080fd5b61327c87828801612d22565b9350935050604061328f87828801612dea565b91505092959194509250565b6000806000606084860312156132b057600080fd5b60006132be86828701612dff565b935050602084013567ffffffffffffffff8111156132db57600080fd5b6132e786828701612d6c565b92505060406132f886828701612dea565b9150509250925092565b61330b81613eb3565b82525050565b61331a81613eb3565b82525050565b61333161332c82613eb3565b61409b565b82525050565b61334081613ed7565b82525050565b61334f81613ee3565b82525050565b60006133618385613de7565b935061336e838584613fad565b6133778361418d565b840190509392505050565b600061338d82613dcb565b6133978185613dd6565b93506133a7818560208601613fbc565b6133b08161418d565b840191505092915050565b60006133c682613dcb565b6133d08185613de7565b93506133e0818560208601613fbc565b6133e98161418d565b840191505092915050565b6000613401601083613de7565b915061340c826141b8565b602082019050919050565b6000613424601483613de7565b915061342f826141e1565b602082019050919050565b6000613447600f83613de7565b91506134528261420a565b602082019050919050565b600061346a602983613de7565b915061347582614233565b604082019050919050565b600061348d601483613de7565b915061349882614282565b602082019050919050565b60006134b0603483613de7565b91506134bb826142ab565b604082019050919050565b60006134d3602783613de7565b91506134de826142fa565b604082019050919050565b60006134f6602083613de7565b915061350182614349565b602082019050919050565b6000613519601083613de7565b915061352482614372565b602082019050919050565b600061353c601383613de7565b91506135478261439b565b602082019050919050565b600061355f601783613de7565b915061356a826143c4565b602082019050919050565b6000613582601483613de7565b915061358d826143ed565b602082019050919050565b60006135a5602483613de7565b91506135b082614416565b604082019050919050565b60006135c8601483613de7565b91506135d382614465565b602082019050919050565b60006135eb601783613de7565b91506135f68261448e565b602082019050919050565b600061360e600083613de7565b9150613619826144b7565b600082019050919050565b6000613631601583613de7565b915061363c826144ba565b602082019050919050565b60608201600082015161365d600085018261378a565b5060208201516136706020850182613302565b506040820151613683604085018261375d565b50505050565b60006040830160008301516136a16000860182613302565b50602083015184820360208601526136b98282613382565b9150508091505092915050565b6040820160008201516136dc6000850182613302565b5060208201516136ef602085018261375d565b50505050565b60608201600082015161370b6000850182613302565b50602082015161371e602085018261375d565b5060408201516137316040850182613302565b50505050565b61374081613f89565b82525050565b61375761375282613f3d565b6140ad565b82525050565b61376681613f6b565b82525050565b61377581613f6b565b82525050565b61378481613f9b565b82525050565b61379381613f75565b82525050565b6137a281613f75565b82525050565b60006137b48284613320565b60148201915081905092915050565b60006137cf8284613746565b60028201915081905092915050565b60006020820190506137f36000830184613311565b92915050565b600060608201905061380e6000830186613311565b61381b6020830185613311565b613828604083018461376c565b949350505050565b60006040820190506138456000830185613311565b613852602083018461376c565b9392505050565b600060608201905061386e6000830186613311565b61387b602083018561377b565b613888604083018461376c565b949350505050565b60006020820190506138a56000830184613337565b92915050565b60006020820190506138c06000830184613346565b92915050565b600060208201905081810360008301526138df816133f4565b9050919050565b600060208201905081810360008301526138ff81613417565b9050919050565b6000602082019050818103600083015261391f8161343a565b9050919050565b6000602082019050818103600083015261393f8161345d565b9050919050565b6000602082019050818103600083015261395f81613480565b9050919050565b6000602082019050818103600083015261397f816134a3565b9050919050565b6000602082019050818103600083015261399f816134c6565b9050919050565b600060208201905081810360008301526139bf816134e9565b9050919050565b600060208201905081810360008301526139df8161350c565b9050919050565b600060208201905081810360008301526139ff8161352f565b9050919050565b60006020820190508181036000830152613a1f81613552565b9050919050565b60006020820190508181036000830152613a3f81613575565b9050919050565b60006020820190508181036000830152613a5f81613598565b9050919050565b60006020820190508181036000830152613a7f816135bb565b9050919050565b60006020820190508181036000830152613a9f816135de565b9050919050565b60006020820190508181036000830152613abf81613624565b9050919050565b6000606082019050613adb6000830184613647565b92915050565b60006020820190508181036000830152613afb8184613689565b905092915050565b6000604082019050613b1860008301846136c6565b92915050565b6000606082019050613b3360008301846136f5565b92915050565b6000602082019050613b4e6000830184613737565b92915050565b6000602082019050613b69600083018461376c565b92915050565b6000604082019050613b84600083018661376c565b8181036020830152613b97818486613355565b9050949350505050565b6000604082019050613bb6600083018461376c565b8181036020830152613bc781613601565b905092915050565b6000608082019050613be4600083018861376c565b613bf1602083018761376c565b8181036040830152613c04818587613355565b90508181036060830152613c1881846133bb565b90509695505050505050565b600060a082019050613c39600083018961376c565b613c466020830188613799565b613c53604083018761376c565b8181036060830152613c66818587613355565b9050613c75608083018461376c565b979650505050505050565b600060c082019050613c95600083018a61376c565b613ca26020830189613799565b613caf604083018861376c565b8181036060830152613cc2818688613355565b9050613cd1608083018561376c565b613cde60a0830184613311565b98975050505050505050565b600060a082019050613cff600083018861376c565b613d0c6020830187613799565b613d19604083018661376c565b8181036060830152613d2b81856133bb565b9050613d3a608083018461376c565b9695505050505050565b6000613d4e613d5f565b9050613d5a8282614021565b919050565b6000604051905090565b600067ffffffffffffffff821115613d8457613d8361415e565b5b613d8d8261418d565b9050602081019050919050565b600067ffffffffffffffff821115613db557613db461415e565b5b613dbe8261418d565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e0382613f6b565b9150613e0e83613f6b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e4357613e426140d1565b5b828201905092915050565b6000613e5982613f6b565b9150613e6483613f6b565b925082613e7457613e73614100565b5b828204905092915050565b6000613e8a82613f6b565b9150613e9583613f6b565b925082821015613ea857613ea76140d1565b5b828203905092915050565b6000613ebe82613f4b565b9050919050565b6000613ed082613f4b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000613f1a82613eb3565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000613f9482613f21565b9050919050565b6000613fa682613f75565b9050919050565b82818337600083830152505050565b60005b83811015613fda578082015181840152602081019050613fbf565b83811115613fe9576000848401525b50505050565b6000600282049050600182168061400757607f821691505b6020821081141561401b5761401a61412f565b5b50919050565b61402a8261418d565b810181811067ffffffffffffffff821117156140495761404861415e565b5b80604052505050565b600061405d82613f6b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140905761408f6140d1565b5b600182019050919050565b60006140a6826140bf565b9050919050565b60006140b88261419e565b9050919050565b60006140ca826141ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f01b9050919050565b60008160601b9050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f416374696f6e204d69736d617463680000000000000000000000000000000000600082015250565b7f6d7573742070617920626f74682076616c756520616e64207472616e7361637460008201527f696f6e2066656573210000000000000000000000000000000000000000000000602082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f75706461746520746865207468726573686f6c64206265666f72652072656d6f60008201527f76696e6720746869732076616c696461746f7221000000000000000000000000602082015250565b7f76616c696461746f7273206d757374206265203c3d2076616c696461746f727360008201527f206c656e67746800000000000000000000000000000000000000000000000000602082015250565b7f676976656e2061646472657373206973206e6f7420612076616c696461746f72600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f616c726561647920612076616c696461746f7200000000000000000000000000600082015250565b7f4e465420616c72656164792077686974656c6973746564000000000000000000600082015250565b7f5478204665657320697320726571756972656421000000000000000000000000600082015250565b7f54686973204e465420636f6e7472616374206973206e6f742077686974656c6960008201527f7374656400000000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f596f7520646f6e2774206f776e2074686973206e667421000000000000000000600082015250565b50565b7f4e4654206e6f742077686974656c69737465643f210000000000000000000000600082015250565b6144ec81613eb3565b81146144f757600080fd5b50565b61450381613ec5565b811461450e57600080fd5b50565b61451a81613f0f565b811461452557600080fd5b50565b61453181613f21565b811461453c57600080fd5b50565b61454881613f3d565b811461455357600080fd5b50565b61455f81613f6b565b811461456a57600080fd5b50565b61457681613f75565b811461458157600080fd5b5056fea2646970667358221220a659c1fdb7743f7a286cb8aef43425cab05c2f792ea5465274023c94e5d4bdad64736f6c63430008040033", "linkReferences": {}, "deployedLinkReferences": {} } From f9245919139df7ee46e7b3445f133faefc651497 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 4 Oct 2021 22:40:31 +0530 Subject: [PATCH 028/956] web3: properly convert gas fees to eth unit --- dist/helpers/web3.js | 6 ++++-- src/helpers/web3.ts | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 332f666f4..9fb477f0d 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -106,10 +106,12 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr for (const [i, addr] of addrs.entries()) { utx.from = addr; let tf = await w3.estimateGas(utx); - if (i == addrs.length - 1) + if (i == addrs.length - 1 && addrs.length != 1) tf = tf.mul(2); fee = fee.add(tf); } + // convert gwei to wei then multiply by gas price + fee = fee.mul(1e9).mul(await w3.getGasPrice()); return new bignumber_js_1.default(fee.toString()); } const base = await baseWeb3HelperFactory(provider); @@ -181,4 +183,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUNYLEtBQWEsRUFDYixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQVk7WUFFM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBUSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFekQsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQTdCRCxzREE2QkM7QUFFRDs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFFBQWtCLEVBQ2xCLFdBQW1CLEVBQ25CLFVBQXFCLEVBQ3JCLFlBQW9CO0lBRXBCLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUVwQixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFRLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV6RCxNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFTLENBQUMsc0JBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQVEsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTVELFNBQVMsWUFBWSxDQUFDLE1BQWM7UUFDbEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLLFVBQVUsVUFBVSxDQUN2QixHQUF3QixFQUN4QixPQUFlO1FBRWYsTUFBTSxPQUFPLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtZQUNyQixNQUFNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxNQUFNLFNBQVMsR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEtBQUssVUFBVSxNQUFNLENBQUMsSUFBZ0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLFFBQVEsRUFBRTtZQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxxQkFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0wsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUUsQ0FBQyxrQkFBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU1RyxLQUFLLFVBQVUsV0FBVyxDQUFDLEtBQWUsRUFBRSxHQUF5QjtRQUNuRSxJQUFJLEdBQUcsR0FBRyxrQkFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QixLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3ZDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2hCLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbkI7UUFFRCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVuRCx1Q0FDSyxJQUFJLEtBQ1AsS0FBSyxDQUFDLGNBQWMsQ0FDbEIsT0FBZSxFQUNmLFdBQW1CO1lBRW5CLE1BQU0sR0FBRyxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFFMUQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsT0FBZSxFQUNmLFlBQXNCO1lBRXRCLE1BQU0sSUFBSSxHQUFZLE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FDaEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQ3hDLFlBQVksQ0FDYixDQUFDO1lBRUYsT0FBTyxJQUFJLEdBQUcsQ0FDWixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDbkUsQ0FBQztRQUNKLENBQUM7UUFDRCxLQUFLLENBQUMsdUJBQXVCLENBQzNCLE1BQWMsRUFDZCxXQUFtQixFQUNuQixFQUFVLEVBQ1YsS0FBa0IsRUFDbEIsTUFBbUI7WUFFbkIsTUFBTSxRQUFRLEdBQUcsa0JBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLGtCQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakYsTUFBTSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRixPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixNQUFjLEVBQ2QsV0FBbUIsRUFDbkIsRUFBVSxFQUNWLEVBQWMsRUFDZCxNQUFtQjtZQUVuQixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxxQkFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sRUFBRSxHQUFHLE1BQU0sR0FBRztpQkFDakIsT0FBTyxDQUFDLE1BQU0sQ0FBQztpQkFDZixPQUFPLENBQ04sTUFBTSxDQUFDLE9BQU8sRUFDZCxFQUFFLENBQUMsS0FBSyxDQUNULENBQUM7WUFFRixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVoQixNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO2lCQUNyQyxhQUFhLENBQ1osRUFBRSxDQUFDLFFBQVEsRUFDWCxFQUFFLENBQUMsS0FBSyxFQUNSLFdBQVcsRUFDWCxFQUFFLEVBQ0YsRUFBRSxLQUFLLEVBQUUsa0JBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FDekMsQ0FBQztZQUVOLE9BQU8sTUFBTSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELEtBQUssQ0FBQyxlQUFlLENBQ25CLE1BQWMsRUFDZCxXQUFtQixFQUNuQixFQUFVLEVBQ1YsS0FBa0IsRUFDbEIsTUFBbUI7WUFFbkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLGtCQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVsSCxPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixNQUFjLEVBQ2QsRUFBVSxFQUNWLEVBQWEsRUFDYixNQUFtQjtZQUVuQixNQUFNLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxrQkFBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFdEcsT0FBTyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE1BQU07UUFDTixnQkFBZ0IsQ0FBQyxRQUFnQjtZQUMvQixNQUFNLEdBQUcsR0FBRyxrQkFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxNQUFNLE1BQU0sR0FBRyxvQkFBUyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWhELE9BQU87Z0JBQ0wsV0FBVyxFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUU7Z0JBQ25DLElBQUksRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFO2FBQzVCLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQWdCO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLHVCQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEQsTUFBTSxRQUFRLEdBQUc7Z0JBQ2YsYUFBYSxFQUFFLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDM0QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUU7Z0JBQ2xDLEtBQUssRUFBRSxrQkFBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDbEMsQ0FBQztZQUVGLE9BQU8sTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxVQUFvQixFQUFFLEVBQVUsRUFBRSxHQUFlO1lBQ2pGLG1GQUFtRjtZQUNuRixNQUFNLE1BQU0sR0FBRyxJQUFJLHVCQUFZLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXJDLE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQVMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUUxQyxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FDaEUsWUFBWSxFQUFFLEVBQ2QsRUFBRSxFQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUMxRCxDQUFBO1lBRUQsT0FBTyxNQUFNLFdBQVcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxVQUFvQixFQUFFLEVBQVUsRUFBRSxRQUFvQjtZQUN0RixNQUFNLE9BQU8sR0FBRyx1QkFBWSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUNoRSxZQUFZLEVBQUUsRUFDZCxFQUFFLEVBQ0Ysa0JBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQ3RDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FDMUIsQ0FBQTtZQUVELE9BQU8sTUFBTSxXQUFXLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUMsSUFDRDtBQUNKLENBQUM7QUFqTUQsOENBaU1DIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 12a81a71a..e83a8f94a 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -189,9 +189,11 @@ export async function web3HelperFactory( for (const [i, addr] of addrs.entries()) { utx.from = addr; let tf = await w3.estimateGas(utx); - if (i == addrs.length - 1) tf = tf.mul(2); + if (i == addrs.length - 1 && addrs.length != 1) tf = tf.mul(2); fee = fee.add(tf); } + // convert gwei to wei then multiply by gas price + fee = fee.mul(1e9).mul(await w3.getGasPrice()) return new BigNumber(fee.toString()); } From 00546cc658c61034e7ad510fc20dcbe8701bee90 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 4 Oct 2021 22:46:14 +0530 Subject: [PATCH 029/956] web3: remove redundant multiplier in gas fees --- dist/helpers/web3.js | 5 ++--- src/helpers/web3.ts | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 9fb477f0d..b2859b11b 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -110,8 +110,7 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr tf = tf.mul(2); fee = fee.add(tf); } - // convert gwei to wei then multiply by gas price - fee = fee.mul(1e9).mul(await w3.getGasPrice()); + fee = fee.mul(await w3.getGasPrice()); return new bignumber_js_1.default(fee.toString()); } const base = await baseWeb3HelperFactory(provider); @@ -183,4 +182,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index e83a8f94a..aca9a26d8 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -192,8 +192,7 @@ export async function web3HelperFactory( if (i == addrs.length - 1 && addrs.length != 1) tf = tf.mul(2); fee = fee.add(tf); } - // convert gwei to wei then multiply by gas price - fee = fee.mul(1e9).mul(await w3.getGasPrice()) + fee = fee.mul(await w3.getGasPrice()) return new BigNumber(fee.toString()); } From 86f53561dae647f2343359fa37f053eb63ec7352 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 5 Oct 2021 21:55:33 +0530 Subject: [PATCH 030/956] tron: initial smart contract changes --- dist/helpers/tron.d.ts | 16 ++--- dist/helpers/tron.js | 113 ++++++++++++------------------ src/helpers/tron.ts | 155 +++++++++++++++++++++++------------------ 3 files changed, 136 insertions(+), 148 deletions(-) diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts index ff7661ede..8ca7bc350 100644 --- a/dist/helpers/tron.d.ts +++ b/dist/helpers/tron.d.ts @@ -10,20 +10,12 @@ export declare type BaseTronHelper = BalanceCheck & MintNft; - /** - * Deploy Minter Smart Contract - * - * @argument deployer deployer of the smart contract - * @argument validators address of validators of the smart contract - * @argument threshold threshold for executing an action - * - * @returns minter address, wrapper token address - */ - deployMinter(deployer: string, validators: string[], threshold: number): Promise<[string, string]>; + deployErc721(owner: string): Promise; }; -export declare type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { +export declare type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { nftUri(info: EthNftInfo): Promise; + estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise; + estimateValidateUnfreezeNft(validators: string[], to: string, nft: Uint8Array): Promise; }; export declare function baseTronHelperFactory(provider: TronWeb): Promise; export declare function tronHelperFactory(provider: TronWeb, middleware_uri: string, erc1155_addr: string, minter_addr: string, minter_abi: JSON): Promise; diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index 445e60caa..bec6f6f18 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -1,23 +1,4 @@ "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; @@ -29,18 +10,16 @@ const bignumber_1 = require("@ethersproject/bignumber/lib/bignumber"); const fakeERC721_json_1 = require("../fakeERC721.json"); const js_base64_1 = require("js-base64"); const encoding_1 = require("validator/dist/encoding"); -const ERC1155_contract = __importStar(require("../XPNet.json")); -const Minter_contract = __importStar(require("../Minter.json")); const axios_1 = __importDefault(require("axios")); async function baseTronHelperFactory(provider) { const setSigner = (signer) => { return provider.setPrivateKey(signer); }; - const deployErc1155_i = async (owner) => { + const deployErc721_i = async (owner) => { setSigner(owner); const contract = await provider.contract().new({ - abi: fakeERC1155_json_1.abi, - bytecode: ERC1155_contract.bytecode, + abi: fakeERC721_json_1.abi, + bytecode: fakeERC721_json_1.bytecode, feeLimit: 3000000000 }); return contract; @@ -55,19 +34,7 @@ async function baseTronHelperFactory(provider) { const balance = await provider.trx.getBalance(address); return new bignumber_js_1.BigNumber(balance); }, - deployErc1155: async (owner) => await deployErc1155_i(owner).then((c) => c.address), - async deployMinter(deployer, validators, threshold) { - setSigner(deployer); // deployErc1155 sets this anyways but we don't wanna depend on side effects - const xpnet = await deployErc1155_i(deployer); - const minter = await provider.contract().new({ - abi: Minter_contract.abi, - bytecode: Minter_contract.bytecode, - feeLimit: 3000000000, - parameters: [validators, threshold, xpnet.address] - }); - await xpnet.transferOwnership(minter.address).send(); - return [minter.address, xpnet.address]; - } + deployErc721: async (owner) => await deployErc721_i(owner).then((c) => c.address), }; } exports.baseTronHelperFactory = baseTronHelperFactory; @@ -117,6 +84,19 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ function contractTypeFromNftKind(kind) { return kind === encoding_1.NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; } + const randomAction = () => bignumber_1.BigNumber.from(Math.floor(Math.random() * (999) + (Number.MAX_SAFE_INTEGER - 1000))); + async function estimateGas(addrs, utx) { + let fee = bignumber_1.BigNumber.from(0); + for (const [i, addr] of addrs.entries()) { + utx.from = addr; + let tf = bignumber_1.BigNumber.from(400000); // TODO: Proper estimate + if (i == addrs.length - 1 && addrs.length != 1) + tf = tf.mul(2); + fee = fee.add(tf); + } + fee = fee.mul(1.41e14); // TODO: proper gas price estimate + return new bignumber_js_1.BigNumber(fee.toString()); + } return Object.assign(Object.assign({}, base), { async decodeUrlFromRaw(data) { const packed = encoding_1.NftEthNative.deserializeBinary(data); const nft_info = { @@ -133,45 +113,27 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ chain_nonce: packed.getChainNonce(), data: packed.getData_asU8(), }; - }, nftUri: nftUri, async transferNativeToForeign(sender, chain_nonce, to, value) { + }, nftUri: nftUri, async transferNativeToForeign(sender, chain_nonce, to, value, txFees) { setSigner(sender); - let res = await minter.freeze(chain_nonce, to).send({ callValue: value }); + const totalVal = bignumber_1.BigNumber.from(value.toString()).add(bignumber_1.BigNumber.from(txFees.toString())); + let res = await minter.freeze(chain_nonce, to).send({ callValue: totalVal }); return await extractTxn(res); }, - async unfreezeWrapped(sender, chain_nonce, to, value) { + async unfreezeWrapped(sender, chain_nonce, to, value, txFees) { setSigner(sender); - const res = await minter.withdraw(chain_nonce, to, value).send(); + const res = await minter.withdraw(chain_nonce, to, value).send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); return await extractTxn(res); }, - async unfreezeWrappedNft(sender, to, id) { + async unfreezeWrappedNft(sender, to, id, txFees) { setSigner(sender); - const res = await minter.withdraw_nft(to, id).send(); + const res = await minter.withdraw_nft(to, id).send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); return await extractTxn(res); }, - async transferNftToForeign(sender, chain_nonce, to, id) { - let txr; - let ev; - const call_data = Buffer.concat([ - Buffer.from(new Int32Array([0]).buffer), - Buffer.from(new Int32Array([chain_nonce]).buffer).reverse(), - Buffer.from(to, "utf-8"), - ]); + async transferNftToForeign(sender, chain_nonce, to, id, txFees) { setSigner(sender); - if (id.contract_type == "ERC721") { - ev = "TransferErc721"; - const erc = await provider.contract(fakeERC721_json_1.abi, id.contract); - await erc - .safeTransferFrom(provider.defaultAddress.base58, minter_addr, id.token, call_data) - .send(); - } - else { - ev = "TransferErc1155"; - const erc = await provider.contract(fakeERC1155_json_1.abi, id.contract); - txr = await erc - .safeTransferFrom(provider.defaultAddress.base58, minter_addr, id.token, bignumber_1.BigNumber.from(1), call_data) - .send(); - } - ev.toString(); + const erc = await provider.contract(fakeERC721_json_1.abi, id.contract); + await erc.approve(minter.address, id.token).send(); + const txr = await minter.freeze_erc721(id.contract, id.token, chain_nonce, to).send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); return await extractTxn(txr); }, async balanceWrappedBatch(address, chain_nonces) { @@ -187,7 +149,24 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ async balanceWrapped(address, chain_nonce) { const bal = await erc1155.balanceOf(address, chain_nonce).call(); return new bignumber_js_1.BigNumber(bal.toString()); + }, + async estimateValidateTransferNft(validators, to, nft) { + // Protobuf is not deterministic, though perhaps we can approximate this statically + const tokdat = new encoding_1.NftEthNative(); + tokdat.setId(nft.token.toString()); + tokdat.setNftKind(1); + tokdat.setContractAddr(nft.contract); + const encoded = new encoding_1.NftPacked(); + encoded.setChainNonce(0x1351); + encoded.setData(tokdat.serializeBinary()); + const utx = minter.validate_transfer_nft(randomAction(), to, Buffer.from(encoded.serializeBinary()).toString("base64")); + return await estimateGas(validators, utx); + }, + async estimateValidateUnfreezeNft(validators, to, nft_data) { + const nft_dat = encoding_1.NftEthNative.deserializeBinary(nft_data); + const utx = minter.validate_unfreeze_nft(randomAction(), to, bignumber_1.BigNumber.from(nft_dat.getId().toString()), nft_dat.getContractAddr()); + return await estimateGas(validators, utx); } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF5QztBQWN6QywwREFBeUQ7QUFNekQsc0VBQTRFO0FBQzVFLHdEQUF1RDtBQUN2RCx5Q0FBbUM7QUFDbkMsc0RBQWtFO0FBQ2xFLGdFQUFrRDtBQUNsRCxnRUFBa0Q7QUFDbEQsa0RBQTBCO0FBc0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxzQkFBVztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUM7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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQXlDO0FBY3pDLDBEQUF5RDtBQU16RCxzRUFBNEU7QUFDNUUsd0RBQW9GO0FBQ3BGLHlDQUFtQztBQUNuQyxzREFBa0U7QUFDbEUsa0RBQTBCO0FBOEJuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUM5QyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxxQkFBVTtZQUNmLFFBQVEsRUFBRSwwQkFBZTtZQUN6QixRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxR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 \ No newline at end of file diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index cc44980d4..48601cdd7 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -19,11 +19,9 @@ import { TronWeb } from "tronweb"; import { EthNftInfo, MintArgs } from "./web3"; import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; -import { abi as ERC721_abi } from "../fakeERC721.json"; +import { abi as ERC721_abi, bytecode as ERC721_bytecode } from "../fakeERC721.json"; import { Base64 } from "js-base64"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; -import * as ERC1155_contract from "../XPNet.json"; -import * as Minter_contract from "../Minter.json"; import axios from "axios"; export type BaseTronHelper = BalanceCheck & @@ -35,17 +33,7 @@ export type BaseTronHelper = BalanceCheck & * @argument owner Owner of this smart contract * @returns Address of the deployed smart contract */ - deployErc1155(owner: string): Promise; - /** - * Deploy Minter Smart Contract - * - * @argument deployer deployer of the smart contract - * @argument validators address of validators of the smart contract - * @argument threshold threshold for executing an action - * - * @returns minter address, wrapper token address - */ - deployMinter(deployer: string, validators: string[], threshold: number): Promise<[string, string]>; + deployErc721(owner: string): Promise; }; export type TronHelper = BaseTronHelper & @@ -53,13 +41,15 @@ export type TronHelper = BaseTronHelper & BatchWrappedBalanceCheck & TransferForeign & // TODO: Use TX Fees - TransferNftForeign & + TransferNftForeign & // TODO: Use TX Fees UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { nftUri(info: EthNftInfo): Promise; + estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise; + estimateValidateUnfreezeNft(validators: string[], to: string, nft: Uint8Array): Promise; }; export async function baseTronHelperFactory( @@ -69,12 +59,12 @@ export async function baseTronHelperFactory( return provider.setPrivateKey(signer); }; - const deployErc1155_i = async (owner: string) => { + const deployErc721_i = async (owner: string) => { setSigner(owner); const contract = await provider.contract().new({ - abi: ERC1155_abi, - bytecode: ERC1155_contract.bytecode, + abi: ERC721_abi, + bytecode: ERC721_bytecode, feeLimit: 3000000000 }) @@ -91,22 +81,7 @@ export async function baseTronHelperFactory( const balance = await provider.trx.getBalance(address); return new BigNumber(balance); }, - deployErc1155: async (owner) => await deployErc1155_i(owner).then((c) => c.address), - async deployMinter(deployer: string, validators: string[], threshold: number): Promise<[string, string]> { - setSigner(deployer); // deployErc1155 sets this anyways but we don't wanna depend on side effects - const xpnet = await deployErc1155_i(deployer); - - const minter = await provider.contract().new({ - abi: Minter_contract.abi, - bytecode: Minter_contract.bytecode, - feeLimit: 3000000000, - parameters: [validators, threshold, xpnet.address] - }); - - await xpnet.transferOwnership(minter.address).send(); - - return [minter.address, xpnet.address]; - } + deployErc721: async (owner) => await deployErc721_i(owner).then((c) => c.address), }; } @@ -168,6 +143,22 @@ export async function tronHelperFactory( return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; } + const randomAction = () => EthBN.from(Math.floor(Math.random() * (999) + (Number.MAX_SAFE_INTEGER - 1000))); + + async function estimateGas(addrs: string[], utx: any): Promise { + let fee = EthBN.from(0); + + for (const [i, addr] of addrs.entries()) { + utx.from = addr; + let tf = EthBN.from(400000); // TODO: Proper estimate + if (i == addrs.length - 1 && addrs.length != 1) tf = tf.mul(2); + fee = fee.add(tf); + } + fee = fee.mul(1.41e14) // TODO: proper gas price estimate + + return new BigNumber(fee.toString()); + } + return { ...base, async decodeUrlFromRaw(data: Uint8Array): Promise { @@ -193,65 +184,61 @@ export async function tronHelperFactory( sender: string, chain_nonce: number, to: string, - value: string + value: string, + txFees: string ): Promise<[string, string]> { setSigner(sender); - let res = await minter.freeze(chain_nonce, to).send({ callValue: value }); + + const totalVal = EthBN.from(value.toString()).add(EthBN.from(txFees.toString())); + let res = await minter.freeze(chain_nonce, to).send({ callValue: totalVal }); return await extractTxn(res); }, async unfreezeWrapped( sender: string, chain_nonce: number, to: string, - value: string + value: string, + txFees: string ): Promise<[string, string]> { setSigner(sender); - const res = await minter.withdraw(chain_nonce, to, value).send(); + const res = await minter.withdraw(chain_nonce, to, value).send( + { callValue: EthBN.from(txFees.toString()) } + ); return await extractTxn(res); }, async unfreezeWrappedNft( sender: string, to: string, - id: BigNumber + id: BigNumber, + txFees: string ): Promise<[string, string]> { setSigner(sender); - const res = await minter.withdraw_nft(to, id).send(); + const res = await minter.withdraw_nft(to, id).send( + { callValue: EthBN.from(txFees.toString()) } + ); return await extractTxn(res); }, async transferNftToForeign( sender: string, chain_nonce: number, to: string, - id: EthNftInfo + id: EthNftInfo, + txFees: string ): Promise<[string, string]> { - let txr; - let ev; - const call_data = Buffer.concat([ - Buffer.from(new Int32Array([0]).buffer), // 4 bytes padding - Buffer.from(new Int32Array([chain_nonce]).buffer).reverse(), // BE, gotta reverse - Buffer.from(to, "utf-8"), - ]); setSigner(sender); - if (id.contract_type == "ERC721") { - ev = "TransferErc721"; - const erc = await provider.contract(ERC721_abi, id.contract); - await erc - .safeTransferFrom(provider.defaultAddress.base58, minter_addr, id.token, call_data) - .send(); - } else { - ev = "TransferErc1155"; - const erc = await provider.contract(ERC1155_abi, id.contract); - txr = await erc - .safeTransferFrom( - provider.defaultAddress.base58, - minter_addr, - id.token, - EthBN.from(1), - call_data - ) - .send(); - } - ev.toString(); + const erc = await provider.contract(ERC721_abi, id.contract); + await erc.approve( + minter.address, + id.token, + ).send(); + + const txr = await minter.freeze_erc721( + id.contract, + id.token, + chain_nonce, + to + ).send({ callValue: EthBN.from(txFees.toString()) }); + return await extractTxn(txr); }, async balanceWrappedBatch( @@ -274,5 +261,35 @@ export async function tronHelperFactory( const bal = await erc1155.balanceOf(address, chain_nonce).call(); return new BigNumber(bal.toString()); }, + async estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise { + // Protobuf is not deterministic, though perhaps we can approximate this statically + const tokdat = new NftEthNative(); + tokdat.setId(nft.token.toString()); + tokdat.setNftKind(1); + tokdat.setContractAddr(nft.contract); + + const encoded = new NftPacked(); + encoded.setChainNonce(0x1351); + encoded.setData(tokdat.serializeBinary()); + + const utx = minter.validate_transfer_nft( + randomAction(), + to, + Buffer.from(encoded.serializeBinary()).toString("base64") + ) + + return await estimateGas(validators, utx); + }, + async estimateValidateUnfreezeNft(validators: string[], to: string, nft_data: Uint8Array): Promise { + const nft_dat = NftEthNative.deserializeBinary(nft_data); + const utx = minter.validate_unfreeze_nft( + randomAction(), + to, + EthBN.from(nft_dat.getId().toString()), + nft_dat.getContractAddr() + ) + + return await estimateGas(validators, utx); + } }; } From d0994813ff74986bbeced71928b1971b551f3ec2 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 5 Oct 2021 21:56:56 +0530 Subject: [PATCH 031/956] lintcheck --- dist/helpers/elrond.js | 2 +- dist/helpers/tron.js | 30 ++++++---- dist/helpers/web3.js | 27 +++++---- src/helpers/elrond.ts | 18 +++++- src/helpers/tron.ts | 121 ++++++++++++++++++++++++----------------- src/helpers/web3.ts | 113 +++++++++++++++++++++++++------------- 6 files changed, 200 insertions(+), 111 deletions(-) diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js index c72e636ea..9dcb17984 100644 --- a/dist/helpers/elrond.js +++ b/dist/helpers/elrond.js @@ -352,4 +352,4 @@ function filterEventId(results) { } throw Error(`invalid result: ${results.toString()}`); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTBKRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBS0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLElBQUkscUJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLHFCQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFX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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQXdLRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBS0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLElBQUkscUJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLHFCQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFX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 \ No newline at end of file diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index bec6f6f18..3e3ac608d 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -20,7 +20,7 @@ async function baseTronHelperFactory(provider) { const contract = await provider.contract().new({ abi: fakeERC721_json_1.abi, bytecode: fakeERC721_json_1.bytecode, - feeLimit: 3000000000 + feeLimit: 3000000000, }); return contract; }; @@ -45,15 +45,15 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ const event_middleware = axios_1.default.create({ baseURL: middleware_uri, headers: { - "Content-Type": "application/json" - } + "Content-Type": "application/json", + }, }); const setSigner = (signer) => { return provider.setPrivateKey(signer); }; async function extractTxn(hash) { await event_middleware.post("/tx/tron", { tx_hash: hash }); - await new Promise(r => setTimeout(r, 6000)); + await new Promise((r) => setTimeout(r, 6000)); // eslint-disable-next-line @typescript-eslint/no-explicit-any const getEv = async (retries = 0) => { const res = await provider.getEventByTransactionID(hash); @@ -63,7 +63,7 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ if (retries > 15) { throw Error("Couldn't fetch transaction after more than 15 retries!"); } - await new Promise(r => setTimeout(r, 3000)); + await new Promise((r) => setTimeout(r, 3000)); return getEv(retries + 1); }; const evs = await getEv(); @@ -84,7 +84,7 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ function contractTypeFromNftKind(kind) { return kind === encoding_1.NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; } - const randomAction = () => bignumber_1.BigNumber.from(Math.floor(Math.random() * (999) + (Number.MAX_SAFE_INTEGER - 1000))); + const randomAction = () => bignumber_1.BigNumber.from(Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000))); async function estimateGas(addrs, utx) { let fee = bignumber_1.BigNumber.from(0); for (const [i, addr] of addrs.entries()) { @@ -116,24 +116,32 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ }, nftUri: nftUri, async transferNativeToForeign(sender, chain_nonce, to, value, txFees) { setSigner(sender); const totalVal = bignumber_1.BigNumber.from(value.toString()).add(bignumber_1.BigNumber.from(txFees.toString())); - let res = await minter.freeze(chain_nonce, to).send({ callValue: totalVal }); + let res = await minter + .freeze(chain_nonce, to) + .send({ callValue: totalVal }); return await extractTxn(res); }, async unfreezeWrapped(sender, chain_nonce, to, value, txFees) { setSigner(sender); - const res = await minter.withdraw(chain_nonce, to, value).send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); + const res = await minter + .withdraw(chain_nonce, to, value) + .send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); return await extractTxn(res); }, async unfreezeWrappedNft(sender, to, id, txFees) { setSigner(sender); - const res = await minter.withdraw_nft(to, id).send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); + const res = await minter + .withdraw_nft(to, id) + .send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); return await extractTxn(res); }, async transferNftToForeign(sender, chain_nonce, to, id, txFees) { setSigner(sender); const erc = await provider.contract(fakeERC721_json_1.abi, id.contract); await erc.approve(minter.address, id.token).send(); - const txr = await minter.freeze_erc721(id.contract, id.token, chain_nonce, to).send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); + const txr = await minter + .freeze_erc721(id.contract, id.token, chain_nonce, to) + .send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); return await extractTxn(txr); }, async balanceWrappedBatch(address, chain_nonces) { @@ -169,4 +177,4 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQXlDO0FBY3pDLDBEQUF5RDtBQU16RCxzRUFBNEU7QUFDNUUsd0RBQW9GO0FBQ3BGLHlDQUFtQztBQUNuQyxzREFBa0U7QUFDbEUsa0RBQTBCO0FBOEJuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUM5QyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzlDLEdBQUcsRUFBRSxxQkFBVTtZQUNmLFFBQVEsRUFBRSwwQkFBZTtZQUN6QixRQUFRLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxR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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQXlDO0FBY3pDLDBEQUF5RDtBQU16RCxzRUFBNEU7QUFDNUUsd0RBRzRCO0FBQzVCLHlDQUFtQztBQUNuQyxzREFBa0U7QUFDbEUsa0RBQTBCO0FBc0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUM3QyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzdDLEdBQUcsRUFBRSxxQkFBVTtZQUNmLFFBQVEsRUFBRSwwQkFBZTtZQUN6QixRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDLENBQUM7UUFFSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RCxPQUFPLElBQUksd0JBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUM1QixNQUFNLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7S0FDckQsQ0FBQztBQUNKLENBQUM7QUFoQ0Qsc0RBZ0NDO0FBRU0sS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxRQUFpQixFQUNqQixjQUFzQixFQUN0QixZQUFvQixFQUNwQixXQUFtQixFQUNuQixVQUFnQjtJQUVoQixNQUFNLElBQUksR0FBRyxNQUFNLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ25FLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEUsTUFBTSxnQkFBZ0IsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ25DLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7SUFFRixLQUFLLFVBQVUsVUFBVSxDQUFDLElBQVk7UUFDcEMsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTlDLDhEQUE4RDtRQUM5RCxNQUFNLEtBQUssR0FBdUMsS0FBSyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsRUFBRTtZQUN0RSxNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNwQixPQUFPLEdBQUcsQ0FBQzthQUNaO1lBQ0QsSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFO2dCQUNoQixNQUFNLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO2FBQ3ZFO1lBQ0QsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUM7UUFFRixNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssRUFBRSxDQUFDO1FBQzFCLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUEsQ0FBQyxhQUFELENBQUMsdUJBQUQsQ0FBQyxDQUFFLFFBQVEsS0FBSSxXQUFXLENBQUMsQ0FBQztRQUM1RCxNQUFNLFNBQVMsR0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVELE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxJQUFnQixFQUFtQixFQUFFO1FBQ3pELElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxRQUFRLEVBQUU7WUFDbEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM5QzthQUFNO1lBQ0wsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLHNCQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN6QztJQUNILENBQUMsQ0FBQztJQUVGLFNBQVMsdUJBQXVCLENBQUMsSUFBVztRQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUUsQ0FDeEIscUJBQUssQ0FBQyxJQUFJLENBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQ25FLENBQUM7SUFFSixLQUFLLFVBQVUsV0FBVyxDQUFDLEtBQWUsRUFBRSxHQUFRO1FBQ2xELElBQUksR0FBRyxHQUFHLHFCQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXhCLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdkMsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDaEIsSUFBSSxFQUFFLEdBQUcscUJBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7WUFDckQsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO2dCQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9ELEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25CO1FBQ0QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7UUFFMUQsT0FBTyxJQUFJLHdCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELHVDQUNLLElBQUksS0FDUCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBZ0I7WUFDckMsTUFBTSxNQUFNLEdBQUcsdUJBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRztnQkFDZixhQUFhLEVBQUUsdUJBQXVCLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUMzRCxRQUFRLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRTtnQkFDbEMsS0FBSyxFQUFFLHFCQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNsQyxDQUFDO1lBRUYsT0FBTyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsZ0JBQWdCLENBQUMsUUFBZ0I7WUFDL0IsTUFBTSxHQUFHLEdBQUcsa0JBQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUMsTUFBTSxNQUFNLEdBQUcsb0JBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRCxPQUFPO2dCQUNMLFdBQVcsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFO2dCQUNuQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRTthQUM1QixDQUFDO1FBQ0osQ0FBQyxFQUNELE1BQU0sRUFBRSxNQUFNLEVBQ2QsS0FBSyxDQUFDLHVCQUF1QixDQUMzQixNQUFjLEVBQ2QsV0FBbUIsRUFDbkIsRUFBVSxFQUNWLEtBQWEsRUFDYixNQUFjO1lBRWQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWxCLE1BQU0sUUFBUSxHQUFHLHFCQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDL0MscUJBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQzlCLENBQUM7WUFDRixJQUFJLEdBQUcsR0FBRyxNQUFNLE1BQU07aUJBQ25CLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2lCQUN2QixJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNqQyxPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxLQUFLLENBQUMsZUFBZSxDQUNuQixNQUFjLEVBQ2QsV0FBbUIsRUFDbkIsRUFBVSxFQUNWLEtBQWEsRUFDYixNQUFjO1lBRWQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xCLE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTTtpQkFDckIsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDO2lCQUNoQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sTUFBTSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELEtBQUssQ0FBQyxrQkFBa0IsQ0FDdEIsTUFBYyxFQUNkLEVBQVUsRUFDVixFQUFhLEVBQ2IsTUFBYztZQUVkLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQixNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU07aUJBQ3JCLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO2lCQUNwQixJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sTUFBTSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELEtBQUssQ0FBQyxvQkFBb0IsQ0FDeEIsTUFBYyxFQUNkLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixFQUFjLEVBQ2QsTUFBYztZQUVkLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMscUJBQVUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0QsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRW5ELE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTTtpQkFDckIsYUFBYSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDO2lCQUNyRCxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUscUJBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXRELE9BQU8sTUFBTSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsT0FBZSxFQUNmLFlBQXNCO1lBRXRCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO1lBQ3pDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTztpQkFDMUIsY0FBYyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQztpQkFDdEUsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFO2dCQUM3QixHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLHdCQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELEtBQUssQ0FBQyxjQUFjLENBQ2xCLE9BQWUsRUFDZixXQUFtQjtZQUVuQixNQUFNLEdBQUcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pFLE9BQU8sSUFBSSx3QkFBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxLQUFLLENBQUMsMkJBQTJCLENBQy9CLFVBQW9CLEVBQ3BCLEVBQVUsRUFDVixHQUFlO1lBRWYsbUZBQW1GO1lBQ25GLE1BQU0sTUFBTSxHQUFHLElBQUksdUJBQVksRUFBRSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxvQkFBUyxFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QixPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBRTFDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FDdEMsWUFBWSxFQUFFLEVBQ2QsRUFBRSxFQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUMxRCxDQUFDO1lBRUYsT0FBTyxNQUFNLFdBQVcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELEtBQUssQ0FBQywyQkFBMkIsQ0FDL0IsVUFBb0IsRUFDcEIsRUFBVSxFQUNWLFFBQW9CO1lBRXBCLE1BQU0sT0FBTyxHQUFHLHVCQUFZLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUN0QyxZQUFZLEVBQUUsRUFDZCxFQUFFLEVBQ0YscUJBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQ3RDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FDMUIsQ0FBQztZQUVGLE9BQU8sTUFBTSxXQUFXLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUMsSUFDRDtBQUNKLENBQUM7QUF4TkQsOENBd05DIn0= \ No newline at end of file diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index b2859b11b..ac9fa3eaf 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -100,7 +100,7 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr return await erc.uri(info.token); } } - const randomAction = () => ethers_1.BigNumber.from(Math.floor(Math.random() * (999) + (Number.MAX_SAFE_INTEGER - 1000))); + const randomAction = () => ethers_1.BigNumber.from(Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000))); async function estimateGas(addrs, utx) { let fee = ethers_1.BigNumber.from(0); for (const [i, addr] of addrs.entries()) { @@ -124,25 +124,32 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr }, async transferNativeToForeign(sender, chain_nonce, to, value, txFees) { const totalVal = ethers_1.BigNumber.from(value.toString()).add(ethers_1.BigNumber.from(txFees.toString())); - const res = await signedMinter(sender).freeze(chain_nonce, to, { value: totalVal }); + const res = await signedMinter(sender).freeze(chain_nonce, to, { + value: totalVal, + }); return await extractTxn(res, "Transfer"); }, async transferNftToForeign(sender, chain_nonce, to, id, txFees) { const erc = new ethers_1.Contract(id.contract, fakeERC721_json_1.abi, w3); - const ta = await erc - .connect(sender) - .approve(minter.address, id.token); + const ta = await erc.connect(sender).approve(minter.address, id.token); await ta.wait(); - const txr = await minter.connect(sender) - .freeze_erc721(id.contract, id.token, chain_nonce, to, { value: ethers_1.BigNumber.from(txFees.toString()) }); + const txr = await minter + .connect(sender) + .freeze_erc721(id.contract, id.token, chain_nonce, to, { + value: ethers_1.BigNumber.from(txFees.toString()), + }); return await extractTxn(txr, "TransferErc721"); }, async unfreezeWrapped(sender, chain_nonce, to, value, txFees) { - const res = await signedMinter(sender).withdraw(chain_nonce, to, value, { value: ethers_1.BigNumber.from(txFees.toString()) }); + const res = await signedMinter(sender).withdraw(chain_nonce, to, value, { + value: ethers_1.BigNumber.from(txFees.toString()), + }); return await extractTxn(res, "Unfreeze"); }, async unfreezeWrappedNft(sender, to, id, txFees) { - const res = await signedMinter(sender).withdraw_nft(to, id, { value: ethers_1.BigNumber.from(txFees.toString()) }); + const res = await signedMinter(sender).withdraw_nft(to, id, { + value: ethers_1.BigNumber.from(txFees.toString()), + }); return await extractTxn(res, "UnfreezeNft"); }, nftUri, @@ -182,4 +189,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FBcUc7QUFNckcsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUFpRW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FNZ0I7QUFNaEIsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUF1Rm5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 729dcecef..a2874c3fe 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -186,8 +186,22 @@ export type ElrondHelper = BalanceCheck & TransferForeign & // TODO: Use TX Fees UnfreezeForeign & - TransferNftForeign & - UnfreezeForeignNft & + TransferNftForeign< + ISigner, + string, + EasyBalance, + NftInfo, + Transaction, + EventIdent + > & + UnfreezeForeignNft< + ISigner, + string, + EasyBalance, + number, + Transaction, + EventIdent + > & IssueESDTNFT & MintNft & ListNft & diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 48601cdd7..fb1879384 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -19,7 +19,10 @@ import { TronWeb } from "tronweb"; import { EthNftInfo, MintArgs } from "./web3"; import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; -import { abi as ERC721_abi, bytecode as ERC721_bytecode } from "../fakeERC721.json"; +import { + abi as ERC721_abi, + bytecode as ERC721_bytecode, +} from "../fakeERC721.json"; import { Base64 } from "js-base64"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; import axios from "axios"; @@ -48,8 +51,16 @@ export type TronHelper = BaseTronHelper & DecodeWrappedNft & DecodeRawNft & { nftUri(info: EthNftInfo): Promise; - estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise; - estimateValidateUnfreezeNft(validators: string[], to: string, nft: Uint8Array): Promise; + estimateValidateTransferNft( + validators: string[], + to: string, + nft: EthNftInfo + ): Promise; + estimateValidateUnfreezeNft( + validators: string[], + to: string, + nft: Uint8Array + ): Promise; }; export async function baseTronHelperFactory( @@ -60,16 +71,16 @@ export async function baseTronHelperFactory( }; const deployErc721_i = async (owner: string) => { - setSigner(owner); + setSigner(owner); - const contract = await provider.contract().new({ - abi: ERC721_abi, - bytecode: ERC721_bytecode, - feeLimit: 3000000000 - }) + const contract = await provider.contract().new({ + abi: ERC721_abi, + bytecode: ERC721_bytecode, + feeLimit: 3000000000, + }); - return contract; - } + return contract; + }; return { async mintNft(owner: string, options: MintArgs): Promise { @@ -81,7 +92,8 @@ export async function baseTronHelperFactory( const balance = await provider.trx.getBalance(address); return new BigNumber(balance); }, - deployErc721: async (owner) => await deployErc721_i(owner).then((c) => c.address), + deployErc721: async (owner) => + await deployErc721_i(owner).then((c) => c.address), }; } @@ -98,8 +110,8 @@ export async function tronHelperFactory( const event_middleware = axios.create({ baseURL: middleware_uri, headers: { - "Content-Type": "application/json" - } + "Content-Type": "application/json", + }, }); const setSigner = (signer: string) => { @@ -108,19 +120,19 @@ export async function tronHelperFactory( async function extractTxn(hash: string): Promise<[string, string]> { await event_middleware.post("/tx/tron", { tx_hash: hash }); - await new Promise(r => setTimeout(r, 6000)); + await new Promise((r) => setTimeout(r, 6000)); // eslint-disable-next-line @typescript-eslint/no-explicit-any const getEv: (retries?: number) => Promise = async (retries = 0) => { - const res = await provider.getEventByTransactionID(hash); - if (res.length !== 0) { - return res; - } - if (retries > 15) { - throw Error("Couldn't fetch transaction after more than 15 retries!"); - } - await new Promise(r => setTimeout(r, 3000)); - return getEv(retries+1); + const res = await provider.getEventByTransactionID(hash); + if (res.length !== 0) { + return res; + } + if (retries > 15) { + throw Error("Couldn't fetch transaction after more than 15 retries!"); + } + await new Promise((r) => setTimeout(r, 3000)); + return getEv(retries + 1); }; const evs = await getEv(); @@ -143,7 +155,10 @@ export async function tronHelperFactory( return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; } - const randomAction = () => EthBN.from(Math.floor(Math.random() * (999) + (Number.MAX_SAFE_INTEGER - 1000))); + const randomAction = () => + EthBN.from( + Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000)) + ); async function estimateGas(addrs: string[], utx: any): Promise { let fee = EthBN.from(0); @@ -154,7 +169,7 @@ export async function tronHelperFactory( if (i == addrs.length - 1 && addrs.length != 1) tf = tf.mul(2); fee = fee.add(tf); } - fee = fee.mul(1.41e14) // TODO: proper gas price estimate + fee = fee.mul(1.41e14); // TODO: proper gas price estimate return new BigNumber(fee.toString()); } @@ -188,9 +203,13 @@ export async function tronHelperFactory( txFees: string ): Promise<[string, string]> { setSigner(sender); - - const totalVal = EthBN.from(value.toString()).add(EthBN.from(txFees.toString())); - let res = await minter.freeze(chain_nonce, to).send({ callValue: totalVal }); + + const totalVal = EthBN.from(value.toString()).add( + EthBN.from(txFees.toString()) + ); + let res = await minter + .freeze(chain_nonce, to) + .send({ callValue: totalVal }); return await extractTxn(res); }, async unfreezeWrapped( @@ -201,9 +220,9 @@ export async function tronHelperFactory( txFees: string ): Promise<[string, string]> { setSigner(sender); - const res = await minter.withdraw(chain_nonce, to, value).send( - { callValue: EthBN.from(txFees.toString()) } - ); + const res = await minter + .withdraw(chain_nonce, to, value) + .send({ callValue: EthBN.from(txFees.toString()) }); return await extractTxn(res); }, async unfreezeWrappedNft( @@ -213,9 +232,9 @@ export async function tronHelperFactory( txFees: string ): Promise<[string, string]> { setSigner(sender); - const res = await minter.withdraw_nft(to, id).send( - { callValue: EthBN.from(txFees.toString()) } - ); + const res = await minter + .withdraw_nft(to, id) + .send({ callValue: EthBN.from(txFees.toString()) }); return await extractTxn(res); }, async transferNftToForeign( @@ -227,17 +246,11 @@ export async function tronHelperFactory( ): Promise<[string, string]> { setSigner(sender); const erc = await provider.contract(ERC721_abi, id.contract); - await erc.approve( - minter.address, - id.token, - ).send(); + await erc.approve(minter.address, id.token).send(); - const txr = await minter.freeze_erc721( - id.contract, - id.token, - chain_nonce, - to - ).send({ callValue: EthBN.from(txFees.toString()) }); + const txr = await minter + .freeze_erc721(id.contract, id.token, chain_nonce, to) + .send({ callValue: EthBN.from(txFees.toString()) }); return await extractTxn(txr); }, @@ -261,7 +274,11 @@ export async function tronHelperFactory( const bal = await erc1155.balanceOf(address, chain_nonce).call(); return new BigNumber(bal.toString()); }, - async estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise { + async estimateValidateTransferNft( + validators: string[], + to: string, + nft: EthNftInfo + ): Promise { // Protobuf is not deterministic, though perhaps we can approximate this statically const tokdat = new NftEthNative(); tokdat.setId(nft.token.toString()); @@ -276,20 +293,24 @@ export async function tronHelperFactory( randomAction(), to, Buffer.from(encoded.serializeBinary()).toString("base64") - ) + ); return await estimateGas(validators, utx); }, - async estimateValidateUnfreezeNft(validators: string[], to: string, nft_data: Uint8Array): Promise { + async estimateValidateUnfreezeNft( + validators: string[], + to: string, + nft_data: Uint8Array + ): Promise { const nft_dat = NftEthNative.deserializeBinary(nft_data); const utx = minter.validate_unfreeze_nft( randomAction(), to, EthBN.from(nft_dat.getId().toString()), nft_dat.getContractAddr() - ) + ); return await estimateGas(validators, utx); - } + }, }; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index aca9a26d8..3e0ed271e 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -16,7 +16,13 @@ import { DecodeRawNft, MintNft, } from "./chain"; -import { Contract, Signer, BigNumber as EthBN, ContractFactory, PopulatedTransaction } from "ethers"; +import { + Contract, + Signer, + BigNumber as EthBN, + ContractFactory, + PopulatedTransaction, +} from "ethers"; import { TransactionReceipt, TransactionResponse, @@ -79,17 +85,39 @@ export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & - TransferNftForeign & + TransferNftForeign< + Signer, + string, + EasyBalance, + EthNftInfo, + TransactionReceipt, + string + > & UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft< + Signer, + string, + EasyBalance, + BigNumber, + TransactionReceipt, + string + > & DecodeWrappedNft & DecodeRawNft & { /** * Get the uri of an nft given nft info */ nftUri(info: EthNftInfo): Promise; - estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise; - estimateValidateUnfreezeNft(validators: string[], to: string, nft: Uint8Array): Promise; + estimateValidateTransferNft( + validators: string[], + to: string, + nft: EthNftInfo + ): Promise; + estimateValidateUnfreezeNft( + validators: string[], + to: string, + nft: Uint8Array + ): Promise; }; function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { @@ -120,10 +148,7 @@ export async function baseWeb3HelperFactory( return contract.address; }, - async mintNft( - owner: Signer, - { contract, uri }: MintArgs - ): Promise { + async mintNft(owner: Signer, { contract, uri }: MintArgs): Promise { const erc721 = new Contract(contract, erc721_abi, owner); const txm = await erc721.mint(uri); @@ -181,9 +206,15 @@ export async function web3HelperFactory( } } - const randomAction = () => EthBN.from(Math.floor(Math.random() * (999) + (Number.MAX_SAFE_INTEGER - 1000))); + const randomAction = () => + EthBN.from( + Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000)) + ); - async function estimateGas(addrs: string[], utx: PopulatedTransaction): Promise { + async function estimateGas( + addrs: string[], + utx: PopulatedTransaction + ): Promise { let fee = EthBN.from(0); for (const [i, addr] of addrs.entries()) { @@ -192,7 +223,7 @@ export async function web3HelperFactory( if (i == addrs.length - 1 && addrs.length != 1) tf = tf.mul(2); fee = fee.add(tf); } - fee = fee.mul(await w3.getGasPrice()) + fee = fee.mul(await w3.getGasPrice()); return new BigNumber(fee.toString()); } @@ -229,8 +260,12 @@ export async function web3HelperFactory( value: EasyBalance, txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - const totalVal = EthBN.from(value.toString()).add(EthBN.from(txFees.toString())); - const res = await signedMinter(sender).freeze(chain_nonce, to, { value: totalVal }); + const totalVal = EthBN.from(value.toString()).add( + EthBN.from(txFees.toString()) + ); + const res = await signedMinter(sender).freeze(chain_nonce, to, { + value: totalVal, + }); return await extractTxn(res, "Transfer"); }, async transferNftToForeign( @@ -241,23 +276,15 @@ export async function web3HelperFactory( txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { const erc = new Contract(id.contract, ERC721_abi, w3); - const ta = await erc + const ta = await erc.connect(sender).approve(minter.address, id.token); + + await ta.wait(); + + const txr = await minter .connect(sender) - .approve( - minter.address, - id.token, - ); - - await ta.wait(); - - const txr = await minter.connect(sender) - .freeze_erc721( - id.contract, - id.token, - chain_nonce, - to, - { value: EthBN.from(txFees.toString()) } - ); + .freeze_erc721(id.contract, id.token, chain_nonce, to, { + value: EthBN.from(txFees.toString()), + }); return await extractTxn(txr, "TransferErc721"); }, @@ -268,7 +295,9 @@ export async function web3HelperFactory( value: EasyBalance, txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender).withdraw(chain_nonce, to, value, { value: EthBN.from(txFees.toString()) }); + const res = await signedMinter(sender).withdraw(chain_nonce, to, value, { + value: EthBN.from(txFees.toString()), + }); return await extractTxn(res, "Unfreeze"); }, @@ -278,7 +307,9 @@ export async function web3HelperFactory( id: BigNumber, txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender).withdraw_nft(to, id, { value: EthBN.from(txFees.toString()) }); + const res = await signedMinter(sender).withdraw_nft(to, id, { + value: EthBN.from(txFees.toString()), + }); return await extractTxn(res, "UnfreezeNft"); }, @@ -302,7 +333,11 @@ export async function web3HelperFactory( return await nftUri(nft_info); }, - async estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise { + async estimateValidateTransferNft( + validators: string[], + to: string, + nft: EthNftInfo + ): Promise { // Protobuf is not deterministic, though perhaps we can approximate this statically const tokdat = new NftEthNative(); tokdat.setId(nft.token.toString()); @@ -317,20 +352,24 @@ export async function web3HelperFactory( randomAction(), to, Buffer.from(encoded.serializeBinary()).toString("base64") - ) + ); return await estimateGas(validators, utx); }, - async estimateValidateUnfreezeNft(validators: string[], to: string, nft_data: Uint8Array): Promise { + async estimateValidateUnfreezeNft( + validators: string[], + to: string, + nft_data: Uint8Array + ): Promise { const nft_dat = NftEthNative.deserializeBinary(nft_data); const utx = await minter.populateTransaction.validate_unfreeze_nft( randomAction(), to, EthBN.from(nft_dat.getId().toString()), nft_dat.getContractAddr() - ) + ); return await estimateGas(validators, utx); - } + }, }; } From 7857f29bcc9a1117a3ef67243b2405415fbc11c6 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 7 Oct 2021 15:11:44 +0530 Subject: [PATCH 032/956] elrond: remove unsignedTxn variants from spec --- dist/helpers/elrond.d.ts | 31 ++-------------------- dist/helpers/elrond.js | 9 +------ src/helpers/elrond.ts | 56 ++-------------------------------------- 3 files changed, 5 insertions(+), 91 deletions(-) diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts index c76a58f6c..973abe2f7 100644 --- a/dist/helpers/elrond.d.ts +++ b/dist/helpers/elrond.d.ts @@ -4,7 +4,7 @@ * Note that Unsigned Transactions need to be manually handled after they have been added to the block * @module */ -import { Address, ISigner, Transaction, TransactionHash } from "@elrondnetwork/erdjs"; +import { Address, ISigner, Transaction } from "@elrondnetwork/erdjs"; import BigNumber from "bignumber.js"; import { BalanceCheck, BatchWrappedBalanceCheck, DecodeRawNft, DecodeWrappedNft, GetLockedNft, ListNft, MintNft, TransferForeign, TransferNftForeign, UnfreezeForeign, UnfreezeForeignNft } from "./chain"; declare type EasyBalance = string | number | BigNumber; @@ -99,34 +99,7 @@ declare type EventIdent = number; /** * Traits implemented by this module */ -export declare type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & TransferForeign & UnfreezeForeign & TransferNftForeign & UnfreezeForeignNft & IssueESDTNFT & MintNft & ListNft & GetLockedNft & DecodeWrappedNft & DecodeRawNft & { - /** - * Unsigned Transaction for [[TransferForeign]] - */ - unsignedTransferTxn(chain_nonce: number, to: string, value: EasyBalance): Transaction; - /** - * Unsigned Transaction for [[UnfreezeForeign]] - */ - unsignedUnfreezeTxn(chain_nonce: number, address: Address, to: string, value: EasyBalance): Transaction; - /** - * Unsigned Transaction for [[TransferNftForeign]] - */ - unsignedTransferNftTxn(chain_nonce: number, address: Address, to: string, info: NftInfo): Transaction; - /** - * Unsigned Transaction for [[UnfreezeForeignNft]] - */ - unsignedUnfreezeNftTxn(address: Address, to: string, id: number): Transaction; - /** - * Unsigned transaction for Minting an NFT - */ - unsignedMintNftTxn(owner: Address, args: NftIssueArgs): Transaction; - /** - * Raw result of a transaction - * - * @param tx_hash Hash of the transaction - */ - rawTxnResult(tx_hash: TransactionHash): Promise; -}; +export declare type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & TransferForeign & UnfreezeForeign & TransferNftForeign & UnfreezeForeignNft & IssueESDTNFT & MintNft & ListNft & GetLockedNft & DecodeWrappedNft & DecodeRawNft; /** * Create an object implementing cross chain utilities for elrond * diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js index 9dcb17984..8258de5e1 100644 --- a/dist/helpers/elrond.js +++ b/dist/helpers/elrond.js @@ -256,13 +256,6 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => return [tx, id]; } return { - rawTxnResult: transactionResult, - unsignedTransferTxn, - unsignedUnfreezeTxn, - unsignedTransferNftTxn, - unsignedUnfreezeNftTxn, - unsignedMintNftTxn, - unsignedSetESDTRoles, async balance(address) { const wallet = new erdjs_1.Account(new erdjs_1.Address(address)); await wallet.sync(provider); @@ -352,4 +345,4 @@ function filterEventId(results) { } throw Error(`invalid result: ${results.toString()}`); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQXdLRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBS0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLElBQUkscUJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLHFCQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFX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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTJIRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBS0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLElBQUkscUJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLHFCQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFX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 \ No newline at end of file diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index a2874c3fe..455cf7a67 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -207,52 +207,7 @@ export type ElrondHelper = BalanceCheck & ListNft & GetLockedNft & DecodeWrappedNft & - DecodeRawNft & { - /** - * Unsigned Transaction for [[TransferForeign]] - */ - unsignedTransferTxn( - chain_nonce: number, - to: string, - value: EasyBalance - ): Transaction; - /** - * Unsigned Transaction for [[UnfreezeForeign]] - */ - unsignedUnfreezeTxn( - chain_nonce: number, - address: Address, - to: string, - value: EasyBalance - ): Transaction; - /** - * Unsigned Transaction for [[TransferNftForeign]] - */ - unsignedTransferNftTxn( - chain_nonce: number, - address: Address, - to: string, - info: NftInfo - ): Transaction; - /** - * Unsigned Transaction for [[UnfreezeForeignNft]] - */ - unsignedUnfreezeNftTxn( - address: Address, - to: string, - id: number - ): Transaction; - /** - * Unsigned transaction for Minting an NFT - */ - unsignedMintNftTxn(owner: Address, args: NftIssueArgs): Transaction; - /** - * Raw result of a transaction - * - * @param tx_hash Hash of the transaction - */ - rawTxnResult(tx_hash: TransactionHash): Promise; // TODO: Typed transaction result - }; + DecodeRawNft; /** * Create an object implementing cross chain utilities for elrond @@ -299,7 +254,7 @@ export const elrondHelperFactory: ( try { await tx.send(provider); - } catch (e) { + } catch (e: any) { if (e.message.includes("lowerNonceInTx")) { throw ConcurrentSendError(); } else { @@ -587,13 +542,6 @@ export const elrondHelperFactory: ( } return { - rawTxnResult: transactionResult, - unsignedTransferTxn, - unsignedUnfreezeTxn, - unsignedTransferNftTxn, - unsignedUnfreezeNftTxn, - unsignedMintNftTxn, - unsignedSetESDTRoles, async balance(address: string | Address): Promise { const wallet = new Account(new Address(address)); From 5af1394cf0bd94e633d8144228bf9a7290a88f4d Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 7 Oct 2021 15:16:41 +0530 Subject: [PATCH 033/956] chain: standardize tx fees estimation interface --- dist/helpers/chain.d.ts | 4 ++++ dist/helpers/chain.js | 2 +- dist/helpers/tron.d.ts | 5 ++--- dist/helpers/tron.js | 2 +- dist/helpers/web3.d.ts | 5 ++--- dist/helpers/web3.js | 2 +- src/helpers/chain.ts | 13 +++++++++++++ src/helpers/tron.ts | 13 ++----------- src/helpers/web3.ts | 13 ++----------- 9 files changed, 28 insertions(+), 31 deletions(-) diff --git a/dist/helpers/chain.d.ts b/dist/helpers/chain.d.ts index c3c29b6a2..0bc8544ff 100644 --- a/dist/helpers/chain.d.ts +++ b/dist/helpers/chain.d.ts @@ -104,4 +104,8 @@ export interface DecodeWrappedNft { export interface DecodeRawNft { decodeUrlFromRaw(data: Uint8Array): Promise; } +export interface EstimateTxFees { + estimateValidateTransferNft(validators: Address[], to: Address, nft: NftId): Promise; + estimateValidateUnfreezeNft(validators: Address[], to: Address, nft: WrappedNftData): Promise; +} export declare function ConcurrentSendError(): Error; diff --git a/dist/helpers/chain.js b/dist/helpers/chain.js index 01d8642a7..e738f1d47 100644 --- a/dist/helpers/chain.js +++ b/dist/helpers/chain.js @@ -5,4 +5,4 @@ function ConcurrentSendError() { return new Error("concurrent_send"); } exports.ConcurrentSendError = ConcurrentSendError; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUErSkEsU0FBZ0IsbUJBQW1CO0lBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsa0RBRUMifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0S0EsU0FBZ0IsbUJBQW1CO0lBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsa0RBRUMifQ== \ No newline at end of file diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts index 8ca7bc350..7c6f67f57 100644 --- a/dist/helpers/tron.d.ts +++ b/dist/helpers/tron.d.ts @@ -2,6 +2,7 @@ import { BigNumber } from "bignumber.js"; import { BalanceCheck, BatchWrappedBalanceCheck, DecodeRawNft, DecodeWrappedNft, MintNft, TransferForeign, TransferNftForeign, UnfreezeForeign, UnfreezeForeignNft, WrappedBalanceCheck } from "./chain"; import { TronWeb } from "tronweb"; import { EthNftInfo, MintArgs } from "./web3"; +import { EstimateTxFees } from ".."; export declare type BaseTronHelper = BalanceCheck & MintNft & { /** * @@ -12,10 +13,8 @@ export declare type BaseTronHelper = BalanceCheck & MintNft; }; -export declare type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { +export declare type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & EstimateTxFees & { nftUri(info: EthNftInfo): Promise; - estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise; - estimateValidateUnfreezeNft(validators: string[], to: string, nft: Uint8Array): Promise; }; export declare function baseTronHelperFactory(provider: TronWeb): Promise; export declare function tronHelperFactory(provider: TronWeb, middleware_uri: string, erc1155_addr: string, minter_addr: string, minter_abi: JSON): Promise; diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index 3e3ac608d..b4ac08856 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -177,4 +177,4 @@ async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_ } }); } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQXlDO0FBY3pDLDBEQUF5RDtBQU16RCxzRUFBNEU7QUFDNUUsd0RBRzRCO0FBQzVCLHlDQUFtQztBQUNuQyxzREFBa0U7QUFDbEUsa0RBQTBCO0FBc0NuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUM3QyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzdDLEdBQUcsRUFBRSxxQkFBVTtZQUNmLFFBQVEsRUFBRSwwQkFBZTtZQUN6QixRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDLENBQUM7UUFFSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxR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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQXlDO0FBY3pDLDBEQUF5RDtBQU16RCxzRUFBNEU7QUFDNUUsd0RBRzRCO0FBQzVCLHlDQUFtQztBQUNuQyxzREFBa0U7QUFDbEUsa0RBQTBCO0FBNkJuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUM3QyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzdDLEdBQUcsRUFBRSxxQkFBVTtZQUNmLFFBQVEsRUFBRSwwQkFBZTtZQUN6QixRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDLENBQUM7UUFFSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxR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 \ No newline at end of file diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index 8e970780e..f28ed850b 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -7,6 +7,7 @@ import { TransferForeign, UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, Tra import { Signer, BigNumber as EthBN } from "ethers"; import { TransactionReceipt, Provider } from "@ethersproject/providers"; import { Interface } from "ethers/lib/utils"; +import { EstimateTxFees } from ".."; declare type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain @@ -51,13 +52,11 @@ MintNft & { /** * Traits implemented by this module */ -export declare type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & { +export declare type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & EstimateTxFees & { /** * Get the uri of an nft given nft info */ nftUri(info: EthNftInfo): Promise; - estimateValidateTransferNft(validators: string[], to: string, nft: EthNftInfo): Promise; - estimateValidateUnfreezeNft(validators: string[], to: string, nft: Uint8Array): Promise; }; /** * Create an object implementing minimal utilities for a web3 chain diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index ac9fa3eaf..a149e3e91 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -189,4 +189,4 @@ async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr } }); } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FNZ0I7QUFNaEIsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUF1Rm5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FNZ0I7QUFNaEIsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUE4RW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMs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 \ No newline at end of file diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 36c379064..44f8c9db6 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -157,6 +157,19 @@ export interface DecodeRawNft { decodeUrlFromRaw(data: Uint8Array): Promise; } +export interface EstimateTxFees { + estimateValidateTransferNft( + validators: Address[], + to: Address, + nft: NftId + ): Promise; + estimateValidateUnfreezeNft( + validators: Address[], + to: Address, + nft: WrappedNftData + ): Promise; +} + export function ConcurrentSendError(): Error { return new Error("concurrent_send"); } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index fb1879384..18ea730bd 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -26,6 +26,7 @@ import { import { Base64 } from "js-base64"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; import axios from "axios"; +import { EstimateTxFees } from ".."; export type BaseTronHelper = BalanceCheck & MintNft & { @@ -49,18 +50,8 @@ export type TronHelper = BaseTronHelper & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & - DecodeRawNft & { + DecodeRawNft & EstimateTxFees & { nftUri(info: EthNftInfo): Promise; - estimateValidateTransferNft( - validators: string[], - to: string, - nft: EthNftInfo - ): Promise; - estimateValidateUnfreezeNft( - validators: string[], - to: string, - nft: Uint8Array - ): Promise; }; export async function baseTronHelperFactory( diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 3e0ed271e..ed575318e 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -34,6 +34,7 @@ import { abi as ERC1155_abi } from "../fakeERC1155.json"; import * as ERC721_contract from "../XPNft.json"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; import { Base64 } from "js-base64"; +import { EstimateTxFees } from ".."; type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain @@ -103,21 +104,11 @@ export type Web3Helper = BaseWeb3Helper & string > & DecodeWrappedNft & - DecodeRawNft & { + DecodeRawNft & EstimateTxFees & { /** * Get the uri of an nft given nft info */ nftUri(info: EthNftInfo): Promise; - estimateValidateTransferNft( - validators: string[], - to: string, - nft: EthNftInfo - ): Promise; - estimateValidateUnfreezeNft( - validators: string[], - to: string, - nft: Uint8Array - ): Promise; }; function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { From 207c01d1c9a3bcb2271b6f6cc40e5157265ff6b2 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 7 Oct 2021 15:17:34 +0530 Subject: [PATCH 034/956] remove polkadot helper --- dist/index.d.ts | 1 - dist/index.js | 3 +- src/helpers/polkadot.ts | 359 ---------------------------------------- src/index.ts | 1 - 4 files changed, 1 insertion(+), 363 deletions(-) delete mode 100644 src/helpers/polkadot.ts diff --git a/dist/index.d.ts b/dist/index.d.ts index ede12fd64..86917106d 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,5 +1,4 @@ export * from "./helpers/chain"; -export * from "./helpers/polkadot"; export * from "./helpers/elrond"; export * from "./helpers/web3"; export * from "./helpers/tron"; diff --git a/dist/index.js b/dist/index.js index e7cc1e4b9..2339c8bab 100644 --- a/dist/index.js +++ b/dist/index.js @@ -11,9 +11,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(require("./helpers/chain"), exports); -__exportStar(require("./helpers/polkadot"), exports); __exportStar(require("./helpers/elrond"), exports); __exportStar(require("./helpers/web3"), exports); __exportStar(require("./helpers/tron"), exports); __exportStar(require("./socket"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwyQ0FBeUIifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0IsaURBQStCO0FBQy9CLDJDQUF5QiJ9 \ No newline at end of file diff --git a/src/helpers/polkadot.ts b/src/helpers/polkadot.ts deleted file mode 100644 index ab0976286..000000000 --- a/src/helpers/polkadot.ts +++ /dev/null @@ -1,359 +0,0 @@ -/** - * Polkadot Implementation for cross chain traits - * @module - */ -import { ApiPromise, Keyring, WsProvider } from "@polkadot/api"; -import { - Callback, - ISubmittableResult, - RegistryTypes, -} from "@polkadot/types/types"; -import { Address, H256, Hash, LookupSource } from "@polkadot/types/interfaces"; -import BigNumber from "bignumber.js"; -import { - TransferForeign, - TransferNftForeign, - UnfreezeForeign, - UnfreezeForeignNft, - BalanceCheck, - MintNft, - ListNft, - GetLockedNft, - WrappedBalanceCheck, - BatchWrappedBalanceCheck, - ConcurrentSendError, - DecodeWrappedNft, - WrappedNft, - DecodeRawNft, -} from "./chain"; -import { AddressOrPair } from "@polkadot/api/types"; -import { - SignerOptions, - SubmittableExtrinsic, -} from "@polkadot/api/submittable/types"; -import { BTreeMap, Bytes, Option, Tuple, U8aFixed } from "@polkadot/types"; -import { NftPacked } from "validator/dist/encoding"; - -/** - * Type of sender expected by this module - * - * @param sender Address of the sender, or a Keypair - * @param options Options for sigining this transaction. Mandatory if sender is an address - */ -export type Signer = { - sender: AddressOrPair; - options?: Partial; -}; - -type EasyBalance = string | number | BigNumber; -type EasyAddr = string | LookupSource | Address; - -type BasePolkadot = BalanceCheck; - -/** - * identifier for tracking an action - */ -type EventIdent = BigNumber; - -export type PolkadotHelper = BasePolkadot & - TransferForeign & - UnfreezeForeign; - -/** - * Traits implemented by this module - */ -export type PolkadotPalletHelper = PolkadotHelper & - WrappedBalanceCheck & - BatchWrappedBalanceCheck & - // TODO: Use TX Fees - TransferNftForeign & - // TODO: Use TX Fees - UnfreezeForeignNft & - MintNft & - ListNft & - GetLockedNft & - DecodeWrappedNft & - DecodeRawNft; - -const LUT_HEX_4b = [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "A", - "B", - "C", - "D", - "E", - "F", -]; -const LUT_HEX_8b = new Array(0x100); -for (let n = 0; n < 0x100; n++) { - LUT_HEX_8b[n] = `${LUT_HEX_4b[(n >>> 4) & 0xf]}${LUT_HEX_4b[n & 0xf]}`; -} -/** - * @internal - */ -// End Pre-Init -export function toHex(buffer: Uint8Array) { - let out = ""; - for (let idx = 0, edx = buffer.length; idx < edx; idx++) { - out += LUT_HEX_8b[buffer[idx]]; - } - return `0x${out}`; -} - -async function basePolkadotHelper( - node_uri: string -): Promise<[BasePolkadot, ApiPromise]> { - const provider = new WsProvider(node_uri); - const api = await ApiPromise.create({ provider, types: runtimeTypes }); - - const base = { - async balance(address: EasyAddr): Promise { - const res: any = await api.query.system.account(address); - - return new BigNumber(res["data"]["free"].toString()); - }, - }; - - return [base, api]; -} - -function hasAddrField(ob: any): ob is { address: string } { - return ob.hasOwnField("address") && typeof ob.address == "string"; -} - -async function resolve_event_id( - ext: SubmittableExtrinsic<"promise", R>, - filter: string, - signer: AddressOrPair, - options?: Partial -): Promise<[Hash, EventIdent]> { - let call: (cb: Callback) => Promise<() => void>; - if (options) { - options.nonce = -1; - call = async (cb: Callback) => - await ext.signAndSend(signer, options, cb); - } else { - call = async (cb: Callback) => - await ext.signAndSend(signer, { nonce: -1 }, cb); - } - - const evP: Promise<[Hash, EventIdent]> = new Promise((res, rej) => { - call(({ events, status }) => { - if (!status.isInBlock) { - return; - } - - const ev = events.find((e) => e.event.method == filter); - if (ev === undefined) { - rej(); - return; - } - - const action_id = new BigNumber(ev.event.data[0].toString()); - const hash = status.asInBlock; - - res([hash, action_id]); - }); - }); - - try { - return await evP; - } catch (e) { - if (e.message.contains("Priority is too low")) { - throw ConcurrentSendError(); - } - throw e; - } -} - -/** - * Create an object implementing Cross Chain utilities for Polkadot - * - * @param node_uri URI of the polkadot node - */ -export const polkadotPalletHelperFactory: ( - node_uri: string -) => Promise = async (node_uri: string) => { - const [base, api] = await basePolkadotHelper(node_uri); - const keyring = new Keyring(); - const sudoSigner = keyring.createFromUri("//Alice", undefined, "sr25519"); - const decoder = new TextDecoder(); - - function nftListMapper([nft_id, data]: [H256, Bytes]): [string, Uint8Array] { - return [nft_id.toString(), data]; - } - - async function getLockedNft(hash: H256): Promise { - const com = (await api.query.nft.lockedCommodities(hash)) as Option; - if (com.isNone) { - return undefined; - } - - const [_owner, dat] = com.unwrap(); - return dat as Bytes; - } - - return { - ...base, - async balanceWrapped( - address: EasyAddr, - chain_nonce: number - ): Promise { - const res = await api.query.erc1155.balances(address, chain_nonce); - return new BigNumber(res.toString()); - }, - async balanceWrappedBatch( - address: EasyAddr, - chain_nonces: number[] - ): Promise> { - // Multi query with address, chain_nonce - const res: Option[] = await api.query.erc1155.balances.multi( - chain_nonces.map((c) => [address, c]) - ); - - // Convert list of balances to [chain_nonce, balance] - return new Map( - res.map((b: Option, i) => [ - chain_nonces[i], - b.isSome ? new BigNumber(b.unwrap().toString()) : new BigNumber(0), - ]) - ); - }, - async transferNativeToForeign( - sender: Signer, - chain_nonce: number, - to: string, - value: EasyBalance - ): Promise<[Hash, EventIdent]> { - return await resolve_event_id( - api.tx.freezer.send(chain_nonce, to, value.toString()), - "TransferFrozen", - sender.sender, - sender.options - ); - }, - async unfreezeWrapped( - sender: Signer, - chain_nonce: number, - to: string, - value: EasyBalance - ): Promise<[Hash, EventIdent]> { - return await resolve_event_id( - api.tx.freezer.withdrawWrapped(chain_nonce, to, value.toString()), - "UnfreezeWrapped", - sender.sender, - sender.options - ); - }, - async transferNftToForeign( - sender: Signer, - chain_nonce: number, - to: string, - nft_id: H256 - ): Promise<[Hash, EventIdent]> { - return await resolve_event_id( - api.tx.freezer.sendNft(chain_nonce, to, nft_id), - "TransferUniqueFrozen", - sender.sender, - sender.options - ); - }, - async unfreezeWrappedNft( - sender: Signer, - to: string, - nft_id: H256 - ): Promise<[Hash, EventIdent]> { - return await resolve_event_id( - api.tx.freezer.withdrawWrappedNft(to, nft_id), - "UnfreezeUniqueWrapped", - sender.sender, - sender.options - ); - }, - async mintNft(owner: Signer, info: Uint8Array): Promise { - let addr; - // "static typing :|" - if (typeof owner.sender == "string") { - addr = owner.sender; - } else if (hasAddrField(owner.sender)) { - addr = owner.sender.address; - } else { - addr = owner.sender.toString(); - } - - await api.tx.sudo - .sudo(api.tx.nft.mint(addr, toHex(info))) - .signAndSend(sudoSigner, { nonce: -1 }); - }, - async listNft(owner: EasyAddr): Promise> { - const com = (await api.query.nft.commoditiesForAccount( - owner.toString() - )) as Option>; - if (com.isNone) { - return new Map(); - } - const c = Array.from(com.unwrap()).map(nftListMapper); - return new Map(c); - }, - getLockedNft, - decodeWrappedNft(raw_data: Uint8Array): WrappedNft { - const packed = NftPacked.deserializeBinary(Uint8Array.from(raw_data)); - - return { - chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8(), - }; - }, - async decodeUrlFromRaw(data: Uint8Array): Promise { - const locked = await getLockedNft(new U8aFixed(api.registry, data, 256)); - if (locked === undefined) { - throw Error("not a locked nft"); - } - - return decoder.decode(locked.slice(-24)); - }, - }; -}; - -const runtimeTypes: RegistryTypes = { - ActionId: "u128", - TokenId: "u64", - CommodityId: "H256", - CommodityInfo: "Bytes", - NftId: "H256", - NftInfo: "Bytes", - Erc1155Balance: "Balance", - Commodity: "(H256, Bytes)", - LocalAction: { - _enum: { - //@ts-expect-error enum struct - Unfreeze: { - to: "AccountId", - value: "Balance", - }, - //@ts-expect-error enum struct - RpcCall: { - contract: "AccountId", - call_data: "Bytes", - }, - //@ts-expect-error enum struct - TransferWrapped: { - to: "AccountId", - value: "Balance", - }, - }, - }, - ActionInfo: { - action: "LocalAction", - validators: "BTreeSet", - }, -}; diff --git a/src/index.ts b/src/index.ts index ede12fd64..86917106d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,4 @@ export * from "./helpers/chain"; -export * from "./helpers/polkadot"; export * from "./helpers/elrond"; export * from "./helpers/web3"; export * from "./helpers/tron"; From 5055a930f9e26d6cbba1478041fb249c95611f72 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 7 Oct 2021 15:17:59 +0530 Subject: [PATCH 035/956] version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bb9ae735d..68ac77d7f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "testsuite-ts", - "version": "1.0.0", + "version": "2.0.0", "author": "rupansh ", "main": "dist/index.js", "types": "dist/index.d.ts", From 95a5de7f0fa9124280679ee2a0339a29d58df8ab Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 7 Oct 2021 16:01:04 +0530 Subject: [PATCH 036/956] bump erdjs --- dist/helpers/elrond.d.ts | 2 +- dist/helpers/elrond.js | 34 +++++-- package.json | 2 +- src/helpers/elrond.ts | 47 +++++++-- yarn.lock | 203 +++++++++++++++++++++++++++++++++------ 5 files changed, 239 insertions(+), 49 deletions(-) diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts index 973abe2f7..12e50892c 100644 --- a/dist/helpers/elrond.d.ts +++ b/dist/helpers/elrond.d.ts @@ -109,5 +109,5 @@ export declare type ElrondHelper = BalanceCheck & B * @param esdt Identifier of the ESDT Wrapper * @param esdt_nft Identifier of the ESDT NFT Wrapper */ -export declare const elrondHelperFactory: (node_uri: string, minter_address: string, esdt: string, esdt_nft: string) => Promise; +export declare const elrondHelperFactory: (node_uri: string, minter_address: string, esdt_swap_address: string, esdt: string, esdt_nft: string, esdt_swap: string) => Promise; export {}; diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js index 8258de5e1..040dd0c80 100644 --- a/dist/helpers/elrond.js +++ b/dist/helpers/elrond.js @@ -29,15 +29,17 @@ function isEsdtNftInfo(maybe) { * @param esdt Identifier of the ESDT Wrapper * @param esdt_nft Identifier of the ESDT NFT Wrapper */ -const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => { +const elrondHelperFactory = async (node_uri, minter_address, esdt_swap_address, esdt, esdt_nft) => { const provider = new erdjs_1.ProxyProvider(node_uri); await erdjs_1.NetworkConfig.getDefault().sync(provider); const mintContract = new erdjs_1.Address(minter_address); + const swapContract = new erdjs_1.Address(esdt_swap_address); const providerRest = axios_1.default.create({ baseURL: node_uri, }); const esdtHex = Buffer.from(esdt, "utf-8"); const esdtNftHex = Buffer.from(esdt_nft, "utf-8"); + //const esdtSwaphex = Buffer.from(esdt_swap, "utf-8"); const decoder = new TextDecoder(); const syncAccount = async (signer) => { const account = new erdjs_1.Account(signer.getAddress()); @@ -89,11 +91,22 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => } throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); }; + const doEgldSwap = (sender, value) => { + const utx = new erdjs_1.Transaction({ + receiver: swapContract, + gasLimit: new erdjs_1.GasLimit(50000000), + value: erdjs_1.Balance.egld(value.toString()), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("wrapEgld")) + .build() + }); + return signAndSend(sender, utx); + }; const unsignedTransferTxn = (chain_nonce, to, value) => { return new erdjs_1.Transaction({ receiver: mintContract, gasLimit: new erdjs_1.GasLimit(50000000), - value: new erdjs_1.Balance(value.toString()), + value: erdjs_1.Balance.egld(value.toString()), data: erdjs_1.TransactionPayload.contractCall() .setFunction(new erdjs_1.ContractFunction("freezeSend")) .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) @@ -205,7 +218,7 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => } return new erdjs_1.Transaction({ receiver: ESDT_ISSUE_ADDR, - value: new erdjs_1.Balance(ESDT_ISSUE_COST), + value: erdjs_1.Balance.egld(ESDT_ISSUE_COST), gasLimit: new erdjs_1.GasLimit(60000000), data: baseArgs.build(), }); @@ -271,22 +284,25 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt, esdt_nft) => } return res; }, - async transferNativeToForeign(sender, chain_nonce, to, value) { - const txu = unsignedTransferTxn(chain_nonce, to, value); + async transferNativeToForeign(sender, chain_nonce, to, value, txFees) { + const txu = unsignedTransferTxn(chain_nonce, to, new bignumber_js_1.default(value.toString()).plus(txFees.toString())); const tx = await signAndSend(sender, txu); return await extractId(tx); }, - async unfreezeWrapped(sender, chain_nonce, to, value) { + async unfreezeWrapped(sender, chain_nonce, to, value, txFees) { + await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeTxn(chain_nonce, sender.getAddress(), to, value); const tx = await signAndSend(sender, txu); return await extractId(tx); }, - async transferNftToForeign(sender, chain_nonce, to, info) { + async transferNftToForeign(sender, chain_nonce, to, info, txFees) { + await doEgldSwap(sender, txFees); const txu = unsignedTransferNftTxn(chain_nonce, sender.getAddress(), to, info); const tx = await signAndSend(sender, txu); return await extractId(tx); }, - async unfreezeWrappedNft(sender, to, nonce) { + async unfreezeWrappedNft(sender, to, nonce, txFees) { + await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeNftTxn(sender.getAddress(), to, nonce); const tx = await signAndSend(sender, txu); return await extractId(tx); @@ -345,4 +361,4 @@ function filterEventId(results) { } throw Error(`invalid result: ${results.toString()}`); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTJIRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBS0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLElBQUkscUJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLHFCQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFX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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTJIRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBT0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixpQkFBeUIsRUFDekIsSUFBWSxFQUNaLFFBQWdCLEVBRWhCLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsTUFBTSxxQkFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsc0RBQXNEO0lBQ3RELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFFbEMsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLE1BQWUsRUFBRSxFQUFFO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsTUFBZSxFQUFFLEVBQWUsRUFBRSxFQUFFO1FBQzdELE1BQU0sR0FBRyxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0QixJQUFJO1lBQ0YsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pCO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7Z0JBQ3hDLE1BQU0sMkJBQW1CLEVBQUUsQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxNQUFNLENBQUMsQ0FBQzthQUNUO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQztJQUVGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLE9BQXdCLEVBQUUsRUFBRTtRQUMzRCxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsT0FBTyxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQztRQUNsRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFZCxPQUFPLEtBQUssR0FBRyxFQUFFLEVBQUU7WUFDakIsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUNYLElBQUksR0FBRyxDQUFDO1lBQ1Isb0JBQW9CO1lBQ3BCLE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEUsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUM5QyxTQUFTO2FBQ1Y7WUFDRCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRTtnQkFDaEMsTUFBTSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQzthQUN0QztZQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM1QyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLEVBQUU7Z0JBQ2xDLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDOUMsU0FBUzthQUNWO1lBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxFQUFFO2dCQUNsQyxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2FBQ3RDO1lBRUQsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxNQUFNLEtBQUssQ0FBQyxtREFBbUQsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDLENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxDQUNqQixNQUFlLEVBQ2YsS0FBa0IsRUFDbEIsRUFBRTtRQUNGLE1BQU0sR0FBRyxHQUFHLElBQUksbUJBQVcsQ0FBQztZQUMxQixRQUFRLEVBQUUsWUFBWTtZQUN0QixRQUFRLEVBQUUsSUFBSSxnQkFBUSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxLQUFLLEVBQUUsZUFBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckMsSUFBSSxFQUFFLDBCQUFrQixDQUFDLFlBQVksRUFBRTtpQkFDcEMsV0FBVyxDQUFDLElBQUksd0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQzdDLEtBQUssRUFBRTtTQUNYLENBQUMsQ0FBQTtRQUVGLE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNqQyxDQUFDLENBQUE7SUFFRCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixLQUFrQixFQUNsQixFQUFFO1FBQ0YsT0FBTyxJQUFJLG1CQUFXLENBQUM7WUFDckIsUUFBUSxFQUFFLFlBQVk7WUFDdEIsUUFBUSxFQUFFLElBQUksZ0JBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEMsS0FBSyxFQUFFLGVBQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLElBQUksRUFBRSwwQkFBa0IsQ0FBQyxZQUFZLEVBQUU7aUJBQ3BDLFdBQVcsQ0FBQyxJQUFJLHdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUMvQyxNQUFNLENBQUMsSUFBSSxnQkFBUSxDQUFDLElBQUksc0JBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2lCQUNoRCxNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ2hELEtBQUssRUFBRTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsS0FBYyxFQUNkLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFnQixFQUMxRSxFQUFFO1FBQ0YsSUFBSSxRQUFRLEdBQUcsMEJBQWtCLENBQUMsWUFBWSxFQUFFO2FBQzdDLFdBQVcsQ0FBQyxJQUFJLHdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ2xELE1BQU0sQ0FBQyxJQUFJLDRCQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDbEUsTUFBTSxDQUFDLElBQUksb0JBQVksQ0FBQyxJQUFJLHNCQUFTLENBQUMsUUFBUSxhQUFSLFFBQVEsY0FBUixRQUFRLEdBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN0RCxNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDbEQsTUFBTSxDQUFDLElBQUksZ0JBQVEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLEdBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuRCxNQUFNLENBQ0wsSUFBSSxrQkFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDcEU7YUFDQSxNQUFNLENBQ0wsSUFBSSxrQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdEUsQ0FBQztRQUVKLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3RCLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkU7UUFFRCxPQUFPLElBQUksbUJBQVcsQ0FBQztZQUNyQixRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxJQUFJLGdCQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2hDLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsV0FBbUIsRUFDbkIsT0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBVyxFQUN6QixFQUFFO1FBQ0YsT0FBTyxJQUFJLG1CQUFXLENBQUM7WUFDckIsUUFBUSxFQUFFLE9BQU87WUFDakIsUUFBUSxFQUFFLElBQUksZ0JBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEMsSUFBSSxFQUFFLDBCQUFrQixDQUFDLFlBQVksRUFBRTtpQkFDcEMsV0FBVyxDQUFDLElBQUksd0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztpQkFDcEQsTUFBTSxDQUFDLElBQUksNEJBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDN0QsTUFBTSxDQUFDLElBQUksZ0JBQVEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDMUMsTUFBTSxDQUFDLElBQUksb0JBQVksQ0FBQyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDMUMsTUFBTSxDQUFDLElBQUksb0JBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDdEMsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUM3RCxNQUFNLENBQUMsSUFBSSxnQkFBUSxDQUFDLElBQUksc0JBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2lCQUNoRCxNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ2hELEtBQUssRUFBRTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBRTtRQUMxRSxPQUFPLElBQUksbUJBQVcsQ0FBQztZQUNyQixRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsSUFBSSxnQkFBUSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxJQUFJLEVBQUUsMEJBQWtCLENBQUMsWUFBWSxFQUFFO2lCQUNwQyxXQUFXLENBQUMsSUFBSSx3QkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2lCQUNwRCxNQUFNLENBQUMsSUFBSSw0QkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDNUMsTUFBTSxDQUFDLElBQUksZ0JBQVEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDdkMsTUFBTSxDQUFDLElBQUksb0JBQVksQ0FBQyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDMUMsTUFBTSxDQUFDLElBQUksb0JBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDdEMsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUMzRCxNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ2hELEtBQUssRUFBRTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FDMUIsV0FBbUIsRUFDbkIsT0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQWtCLEVBQ2xCLEVBQUU7UUFDRixPQUFPLElBQUksbUJBQVcsQ0FBQztZQUNyQixRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVBQUUsSUFBSSxnQkFBUSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxJQUFJLEVBQUUsMEJBQWtCLENBQUMsWUFBWSxFQUFFO2lCQUNwQyxXQUFXLENBQUMsSUFBSSx3QkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2lCQUNwRCxNQUFNLENBQUMsSUFBSSw0QkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDekMsTUFBTSxDQUFDLElBQUksZ0JBQVEsQ0FBQyxJQUFJLHNCQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDaEQsTUFBTSxDQUFDLElBQUksb0JBQVksQ0FBQyxJQUFJLHNCQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDOUMsTUFBTSxDQUFDLElBQUksb0JBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDdEMsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUN4RCxNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ2hELEtBQUssRUFBRTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUN2QyxNQUFNLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxZQUFZLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDekQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBOEMsQ0FBQztRQUV6RSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztJQUVGLEtBQUssVUFBVSxPQUFPLENBQUMsS0FBYTtRQUNsQyxNQUFNLElBQUksR0FBaUMsTUFBTSxDQUFDLE9BQU8sQ0FDdkQsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQ3RCLENBQUM7UUFFRixNQUFNLE1BQU0sR0FFd0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFOztZQUNsRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN4QixPQUFPLEVBQUUsQ0FBQzthQUNYO1lBRUQsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixJQUFJLEtBQUssR0FBRyxNQUFBLEVBQUUsQ0FBQyxHQUFHLEVBQUUsbUNBQUksRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUM7UUFFRixPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixJQUFZLEVBQ1osTUFBYyxFQUNkLFNBQThCLEVBQzlCLE9BQTRCLEVBQzVCLHdCQUE2QyxFQUM3QyxFQUFFO1FBQ0YsSUFBSSxRQUFRLEdBQUcsMEJBQWtCLENBQUMsWUFBWSxFQUFFO2FBQzdDLFdBQVcsQ0FBQyxJQUFJLHdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDckQsTUFBTSxDQUFDLElBQUksNEJBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUM1RCxNQUFNLENBQUMsSUFBSSw0QkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEUsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQzNCLFFBQVEsR0FBRyxRQUFRO2lCQUNoQixNQUFNLENBQUMsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ3pELE1BQU0sQ0FDTCxJQUFJLGtCQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQ25FLENBQUM7U0FDTDtRQUNELElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUN6QixRQUFRLEdBQUcsUUFBUTtpQkFDaEIsTUFBTSxDQUFDLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUN2RCxNQUFNLENBQ0wsSUFBSSxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUNqRSxDQUFDO1NBQ0w7UUFDRCxJQUFJLHdCQUF3QixLQUFLLFNBQVMsRUFBRTtZQUMxQyxRQUFRLEdBQUcsUUFBUTtpQkFDaEIsTUFBTSxDQUNMLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQ2pFO2lCQUNBLE1BQU0sQ0FDTCxJQUFJLGtCQUFVLENBQ1osTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQ2xFLENBQ0YsQ0FBQztTQUNMO1FBRUQsT0FBTyxJQUFJLG1CQUFXLENBQUM7WUFDckIsUUFBUSxFQUFFLGVBQWU7WUFDekIsS0FBSyxFQUFFLGVBQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3BDLFFBQVEsRUFBRSxJQUFJLGdCQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2hDLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FDM0IsS0FBYSxFQUNiLE1BQWUsRUFDZixLQUFpQixFQUNqQixFQUFFO1FBQ0YsSUFBSSxRQUFRLEdBQUcsMEJBQWtCLENBQUMsWUFBWSxFQUFFO2FBQzdDLFdBQVcsQ0FBQyxJQUFJLHdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDbkQsTUFBTSxDQUFDLElBQUksNEJBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3BELE1BQU0sQ0FBQyxJQUFJLG9CQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVwQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGtCQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsT0FBTyxJQUFJLG1CQUFXLENBQUM7WUFDckIsUUFBUSxFQUFFLGVBQWU7WUFDekIsUUFBUSxFQUFFLElBQUksZ0JBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUU7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsS0FBSyxVQUFVLFlBQVksQ0FBQyxFQUMxQixLQUFLLEVBQ0wsS0FBSyxHQUNHO1FBQ1IsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBa0IsRUFBRSxFQUFFO1FBQzNDLHdEQUF3RDtRQUN4RCwwREFBMEQ7UUFDMUQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUN0QixNQUFNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ2xDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxHQUFHLFFBQVEsRUFBRTtZQUNuQyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM1RCxvQkFBb0I7UUFDcEIsdUNBQXVDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUMzQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUNwRCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUwsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDLENBQUM7SUFFRixLQUFLLFVBQVUsU0FBUyxDQUN0QixFQUFlO1FBRWYsSUFBSSxHQUFHLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksR0FBRyxFQUFFO1lBQ1AsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3RCO1FBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVsRCxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUV0RCxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUF5QjtZQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQU8sQ0FBQyxJQUFJLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBRWpELE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUU1QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEMsQ0FBQztRQUNELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsT0FBeUIsRUFDekIsWUFBc0I7WUFFdEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRWhFLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDeEIsSUFBSSxDQUFDLEtBQUs7b0JBQ1IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztvQkFDckQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksc0JBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNwRDtZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELEtBQUssQ0FBQyx1QkFBdUIsQ0FDM0IsTUFBZSxFQUNmLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixLQUFrQixFQUNsQixNQUFtQjtZQUVuQixNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLElBQUksc0JBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxRyxNQUFNLEVBQUUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFMUMsT0FBTyxNQUFNLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsTUFBZSxFQUNmLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixLQUFrQixFQUNsQixNQUFtQjtZQUVuQixNQUFNLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakMsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQzdCLFdBQVcsRUFDWCxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQ25CLEVBQUUsRUFDRixLQUFLLENBQ04sQ0FBQztZQUNGLE1BQU0sRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUUxQyxPQUFPLE1BQU0sU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxLQUFLLENBQUMsb0JBQW9CLENBQ3hCLE1BQWUsRUFDZixXQUFtQixFQUNuQixFQUFVLEVBQ1YsSUFBYSxFQUNiLE1BQW1CO1lBRW5CLE1BQU0sVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqQyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FDaEMsV0FBVyxFQUNYLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFDbkIsRUFBRSxFQUNGLElBQUksQ0FDTCxDQUFDO1lBQ0YsTUFBTSxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRTFDLE9BQU8sTUFBTSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELEtBQUssQ0FBQyxrQkFBa0IsQ0FDdEIsTUFBZSxFQUNmLEVBQVUsRUFDVixLQUFhLEVBQ2IsTUFBbUI7WUFFbkIsTUFBTSxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sR0FBRyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkUsTUFBTSxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRTFDLE9BQU8sTUFBTSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELG9CQUFvQjtRQUNwQixLQUFLLENBQUMsWUFBWSxDQUNoQixNQUFlLEVBQ2YsSUFBWSxFQUNaLE1BQWMsRUFDZCxZQUFxQixLQUFLLEVBQzFCLFVBQW1CLEtBQUssRUFDeEIsMkJBQW9DLEtBQUs7WUFFekMsTUFBTSxHQUFHLEdBQUcsb0JBQW9CLENBQzlCLElBQUksRUFDSixNQUFNLEVBQ04sU0FBUyxFQUNULE9BQU8sRUFDUCx3QkFBd0IsQ0FDekIsQ0FBQztZQUVGLE1BQU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFjLEVBQUUsSUFBa0I7WUFDOUMsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRXpELE1BQU0sV0FBVyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTztRQUNQLFlBQVk7UUFDWixLQUFLLENBQUMsV0FBVyxDQUNmLE9BQWdCLEVBQ2hCLEtBQWEsRUFDYixNQUFlLEVBQ2YsS0FBaUI7WUFFakIsTUFBTSxHQUFHLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUV2RCxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELGdCQUFnQixDQUFDLFFBQXFCO1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO2dCQUN4QixNQUFNLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2FBQ3pDO1lBQ0QsT0FBTztnQkFDTCw4QkFBOEI7Z0JBQzlCLFdBQVcsRUFBRSxrQkFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLEVBQUUsa0JBQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM1QyxDQUFDO1FBQ0osQ0FBQztRQUNELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFnQjtZQUNyQyxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFNUMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUN4QixNQUFNLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ2xDO1lBRUQsT0FBTyxrQkFBTSxDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUF0ZVcsUUFBQSxtQkFBbUIsdUJBc2U5QjtBQUVGLFNBQVMsYUFBYSxDQUFDLE9BQTJCO0lBQ2hELEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1FBQ3pCLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QixTQUFTO1NBQ1Y7UUFDRCxNQUFNLElBQUksR0FBSSxHQUFHLENBQUMsSUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMxRCxTQUFTO1NBQ1Y7UUFFRCxJQUFJO1lBQ0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzlCO1FBQUMsT0FBTyxxQkFBcUIsRUFBRTtZQUM5QixTQUFTO1NBQ1Y7S0FDRjtJQUVELE1BQU0sS0FBSyxDQUFDLG1CQUFtQixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZELENBQUMifQ== \ No newline at end of file diff --git a/package.json b/package.json index 68ac77d7f..511d65cd4 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "typescript": "^4.3.5" }, "dependencies": { - "@elrondnetwork/erdjs": "^6.2.0", + "@elrondnetwork/erdjs": "^8.0.1-alpha.5", "@polkadot/api": "^5.2.1", "@polkadot/api-contract": "^5.2.1", "@polkadot/keyring": "^7.0.3", diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 455cf7a67..cf0dc7cc4 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -221,22 +221,28 @@ export type ElrondHelper = BalanceCheck & export const elrondHelperFactory: ( node_uri: string, minter_address: string, + esdt_swap_address: string, esdt: string, - esdt_nft: string + esdt_nft: string, + esdt_swap: string ) => Promise = async ( node_uri: string, minter_address: string, + esdt_swap_address: string, esdt: string, - esdt_nft: string + esdt_nft: string, + //esdt_swap: string ) => { const provider = new ProxyProvider(node_uri); await NetworkConfig.getDefault().sync(provider); const mintContract = new Address(minter_address); + const swapContract = new Address(esdt_swap_address); const providerRest = axios.create({ baseURL: node_uri, }); const esdtHex = Buffer.from(esdt, "utf-8"); const esdtNftHex = Buffer.from(esdt_nft, "utf-8"); + //const esdtSwaphex = Buffer.from(esdt_swap, "utf-8"); const decoder = new TextDecoder(); const syncAccount = async (signer: ISigner) => { @@ -297,6 +303,22 @@ export const elrondHelperFactory: ( throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); }; + const doEgldSwap = ( + sender: ISigner, + value: EasyBalance + ) => { + const utx = new Transaction({ + receiver: swapContract, + gasLimit: new GasLimit(50000000), + value: Balance.egld(value.toString()), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("wrapEgld")) + .build() + }) + + return signAndSend(sender, utx) + } + const unsignedTransferTxn = ( chain_nonce: number, to: string, @@ -305,7 +327,7 @@ export const elrondHelperFactory: ( return new Transaction({ receiver: mintContract, gasLimit: new GasLimit(50000000), - value: new Balance(value.toString()), + value: Balance.egld(value.toString()), data: TransactionPayload.contractCall() .setFunction(new ContractFunction("freezeSend")) .addArg(new U64Value(new BigNumber(chain_nonce))) @@ -468,7 +490,7 @@ export const elrondHelperFactory: ( return new Transaction({ receiver: ESDT_ISSUE_ADDR, - value: new Balance(ESDT_ISSUE_COST), + value: Balance.egld(ESDT_ISSUE_COST), gasLimit: new GasLimit(60000000), data: baseArgs.build(), }); @@ -569,9 +591,10 @@ export const elrondHelperFactory: ( sender: ISigner, chain_nonce: number, to: string, - value: EasyBalance + value: EasyBalance, + txFees: EasyBalance ): Promise<[Transaction, EventIdent]> { - const txu = unsignedTransferTxn(chain_nonce, to, value); + const txu = unsignedTransferTxn(chain_nonce, to, new BigNumber(value.toString()).plus(txFees.toString())); const tx = await signAndSend(sender, txu); return await extractId(tx); @@ -580,8 +603,10 @@ export const elrondHelperFactory: ( sender: ISigner, chain_nonce: number, to: string, - value: EasyBalance + value: EasyBalance, + txFees: EasyBalance ): Promise<[Transaction, EventIdent]> { + await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeTxn( chain_nonce, sender.getAddress(), @@ -596,8 +621,10 @@ export const elrondHelperFactory: ( sender: ISigner, chain_nonce: number, to: string, - info: NftInfo + info: NftInfo, + txFees: EasyBalance ): Promise<[Transaction, EventIdent]> { + await doEgldSwap(sender, txFees); const txu = unsignedTransferNftTxn( chain_nonce, sender.getAddress(), @@ -611,8 +638,10 @@ export const elrondHelperFactory: ( async unfreezeWrappedNft( sender: ISigner, to: string, - nonce: number + nonce: number, + txFees: EasyBalance ): Promise<[Transaction, EventIdent]> { + await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeNftTxn(sender.getAddress(), to, nonce); const tx = await signAndSend(sender, txu); diff --git a/yarn.lock b/yarn.lock index 23a55bc91..17d9d8007 100644 --- a/yarn.lock +++ b/yarn.lock @@ -78,14 +78,14 @@ assert "^2.0.0" perf_hooks "0.0.1" -"@elrondnetwork/erdjs@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-6.2.0.tgz#75ba6ce50fd1f6e03737bb7b86db10ce67b46e34" - integrity sha512-LDKezky9A//K+BZyLCiWrSx7bkmjUDbBbjAxrrIsG0cRN7JuAeUxp4dFBxyzg5vvSfJBa/k7xe4BMfqxYyxIsg== +"@elrondnetwork/erdjs@^6.5.0": + version "6.6.2" + resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-6.6.2.tgz#25966b494acb80038e3506e8cb2d590a57b2f198" + integrity sha512-NZQ6yVGyXteXSVO+XhJYIxmFg34jmNuSDgYGQfAg6/A1Pio3lyuvAgCUe1a+mMRUr82Il3mMmO1uAaLUXSpjzw== dependencies: "@babel/runtime" "7.11.2" "@elrondnetwork/bls-wasm" "0.3.3" - "@elrondnetwork/hw-app-elrond" "0.2.0" + "@elrondnetwork/hw-app-elrond" "0.3.0" "@ledgerhq/hw-transport-u2f" "5.28.0" "@ledgerhq/hw-transport-webusb" "5.28.0" "@walletconnect/client" "1.4.1" @@ -98,24 +98,24 @@ ed25519-hd-key "1.1.2" json-bigint "1.0.0" json-duplicate-key-handle "1.0.0" - keccak "3.0.1" + keccak "^3.0.1" platform "1.3.6" protobufjs "6.10.2" scryptsy "2.1.0" tweetnacl "1.0.3" uuid "8.3.2" -"@elrondnetwork/erdjs@^6.5.0": - version "6.6.2" - resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-6.6.2.tgz#25966b494acb80038e3506e8cb2d590a57b2f198" - integrity sha512-NZQ6yVGyXteXSVO+XhJYIxmFg34jmNuSDgYGQfAg6/A1Pio3lyuvAgCUe1a+mMRUr82Il3mMmO1uAaLUXSpjzw== +"@elrondnetwork/erdjs@^8.0.1-alpha.5": + version "8.0.1-alpha.5" + resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-8.0.1-alpha.5.tgz#5405960e273ce3fe6ff70923aaf93bb2d938bb94" + integrity sha512-Lfj4kt13jULWLrs4LZihnSCXGKxOcl1AY9UXN9PL2zkuqD+jOkt+DMPCdMyZqrTJATSIBtbR8oNpT8EJn9FGSQ== dependencies: "@babel/runtime" "7.11.2" "@elrondnetwork/bls-wasm" "0.3.3" - "@elrondnetwork/hw-app-elrond" "0.3.0" + "@elrondnetwork/hw-app-elrond" "0.3.2" "@ledgerhq/hw-transport-u2f" "5.28.0" "@ledgerhq/hw-transport-webusb" "5.28.0" - "@walletconnect/client" "1.4.1" + "@walletconnect/client" "1.6.5" abort-controller "3.0.0" axios "0.21.1" bech32 "1.1.4" @@ -128,14 +128,15 @@ keccak "^3.0.1" platform "1.3.6" protobufjs "6.10.2" + qs "6.10.1" scryptsy "2.1.0" tweetnacl "1.0.3" uuid "8.3.2" -"@elrondnetwork/hw-app-elrond@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@elrondnetwork/hw-app-elrond/-/hw-app-elrond-0.2.0.tgz#9eb3157204798eb8c1c4cf3fc74283aa58854cc8" - integrity sha512-gL4fjboaMzl7QqP9gDkxiLSV2o8YUTt6iyukiSEOY+b6zDt9Q4XwJkT9FjHdZs9m02llNlBUsCfpc59+TEXpxg== +"@elrondnetwork/hw-app-elrond@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@elrondnetwork/hw-app-elrond/-/hw-app-elrond-0.3.0.tgz#21b082aaa06293f54e5b1b8b87ed4457ff9bde00" + integrity sha512-amDVVV4demxQdcvL8xEZNrPDDXve3d1sO3/1Tk5UglG2S2RTW3nnmC2UccKYUROEaQaH6YAyZwYhzyTKQilz4g== dependencies: "@ledgerhq/hw-transport" "^5.19.1" "@ledgerhq/hw-transport-node-hid" "^5.19.1" @@ -143,10 +144,10 @@ flow-copy-source "^2.0.9" flow-typed "^3.2.1" -"@elrondnetwork/hw-app-elrond@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@elrondnetwork/hw-app-elrond/-/hw-app-elrond-0.3.0.tgz#21b082aaa06293f54e5b1b8b87ed4457ff9bde00" - integrity sha512-amDVVV4demxQdcvL8xEZNrPDDXve3d1sO3/1Tk5UglG2S2RTW3nnmC2UccKYUROEaQaH6YAyZwYhzyTKQilz4g== +"@elrondnetwork/hw-app-elrond@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@elrondnetwork/hw-app-elrond/-/hw-app-elrond-0.3.2.tgz#3c01cda58a58a63e7e3caf1b36ac8d5909550fb2" + integrity sha512-5TGnKuFQC6g4J9ipqEH5T71TEgGPDyU68lxdiF60qwQO5W0GaYvHKJiKe9rQdra5bCM04/4klMZDAg3BKqRoTw== dependencies: "@ledgerhq/hw-transport" "^5.19.1" "@ledgerhq/hw-transport-node-hid" "^5.19.1" @@ -1487,6 +1488,17 @@ window-getters "1.0.0" window-metadata "1.0.0" +"@walletconnect/browser-utils@^1.6.6": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.6.6.tgz#a985b48c99c65a986a051d66a4910010a10a0c56" + integrity sha512-E29xSHU7Akd4jaPehWVGx7ct+SsUzZbxcGc0fz+Pw6/j4Gh5tlfYZ9XuVixuYI4WPdQ2CmOraj8RrVOu5vba4w== + dependencies: + "@walletconnect/safe-json" "1.0.0" + "@walletconnect/types" "^1.6.6" + "@walletconnect/window-getters" "1.0.0" + "@walletconnect/window-metadata" "1.0.0" + detect-browser "5.2.0" + "@walletconnect/client@1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.4.1.tgz#c9c50df5afde23a35e23d96fe6d207c102e53850" @@ -1497,6 +1509,16 @@ "@walletconnect/types" "^1.4.1" "@walletconnect/utils" "^1.4.1" +"@walletconnect/client@1.6.5": + version "1.6.5" + resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.6.5.tgz#6616ae926abc7c87c48a2d3693f2eb697858e685" + integrity sha512-dRq1D3NEGwM2I3CpiwFsWy1rrdMKCMSfDUu3rCCXUE4zInx+pyq7IEFjYiSjtOEZzjRlUTqYwhjnYIezQZgh4w== + dependencies: + "@walletconnect/core" "^1.6.5" + "@walletconnect/iso-crypto" "^1.6.5" + "@walletconnect/types" "^1.6.5" + "@walletconnect/utils" "^1.6.5" + "@walletconnect/core@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.4.1.tgz#68310ee7c9737a7a0a7f1308abbfc1c31212b9a6" @@ -1506,6 +1528,39 @@ "@walletconnect/types" "^1.4.1" "@walletconnect/utils" "^1.4.1" +"@walletconnect/core@^1.6.5": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.6.6.tgz#0a35a9b0f91da8958bec27be801a510818f4e142" + integrity sha512-pSftIVPY6mYz2koZPBEYmeFeAjVf2MSnRHOM6+vx+iAsUEcfMZHkgeXX6GtM6Fjza+zSZu1qnmdgURVXpmKwtQ== + dependencies: + "@walletconnect/socket-transport" "^1.6.6" + "@walletconnect/types" "^1.6.6" + "@walletconnect/utils" "^1.6.6" + +"@walletconnect/crypto@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.1.tgz#d4c1b1cd5dd1be88fe9a82dfc54cadbbb3f9d325" + integrity sha512-IgUReNrycIFxkGgq8YT9HsosCkhutakWD9Q411PR0aJfxpEa/VKJeaLRtoz6DvJpztWStwhIHnAbBoOVR72a6g== + dependencies: + "@walletconnect/encoding" "^1.0.0" + "@walletconnect/environment" "^1.0.0" + "@walletconnect/randombytes" "^1.0.1" + aes-js "^3.1.2" + hash.js "^1.1.7" + +"@walletconnect/encoding@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.0.tgz#e24190cb5e803526f9dfd7191fb0e4dc53c6d864" + integrity sha512-4nkJFnS0QF5JdieG/3VPD1/iEWkLSZ14EBInLZ00RWxmC6EMZrzAeHNAWIgm+xP3NK0lqz+7lEsmWGtcl5gYnQ== + dependencies: + is-typedarray "1.0.0" + typedarray-to-buffer "3.1.5" + +"@walletconnect/environment@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" + integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== + "@walletconnect/iso-crypto@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.4.1.tgz#0d9793c679d6c5443c49cce83f5d8dd476a65df2" @@ -1515,6 +1570,44 @@ "@walletconnect/types" "^1.4.1" "@walletconnect/utils" "^1.4.1" +"@walletconnect/iso-crypto@^1.6.5": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.6.6.tgz#19848bdcd54e9945961bab8a996cbca8a00d7cf1" + integrity sha512-wRYgKvd8K3A9FVLn2c0cDh4+9OUHkqibKtwQJTJsz+ibPGgd+n5j1/FjnzDDRGb9T1+TtlwYF3ZswKyys3diVQ== + dependencies: + "@walletconnect/crypto" "^1.0.1" + "@walletconnect/types" "^1.6.6" + "@walletconnect/utils" "^1.6.6" + +"@walletconnect/jsonrpc-types@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.0.tgz#fa75ad5e8f106a2e33287b1e6833e22ed0225055" + integrity sha512-11QXNq5H1PKZk7bP8SxgmCw3HRaDuPOVE+wObqEvmhc7OWYUZqfuaaMb+OXGRSOHL3sbC+XHfdeCxFTMXSFyng== + dependencies: + keyvaluestorage-interface "^1.0.0" + +"@walletconnect/jsonrpc-utils@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.0.tgz#1a2f668d606e8f0b6e7d8fdebae86001bd037a3f" + integrity sha512-qUHbKUK6sHeHn67qtHZoLoYk5hS6x1arTPjKDRkY93/6Fx+ZmNIpdm1owX3l6aYueyegJ7mz43FpvYHUqJ8xcw== + dependencies: + "@walletconnect/environment" "^1.0.0" + "@walletconnect/jsonrpc-types" "^1.0.0" + +"@walletconnect/randombytes@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.1.tgz#87f0f02d9206704ce1c9e23f07d3b28898c48385" + integrity sha512-YJTyq69i0PtxVg7osEpKfvjTaWuAsR49QEcqGKZRKVQWMbGXBZ65fovemK/SRgtiFRv0V8PwsrlKSheqzfPNcg== + dependencies: + "@walletconnect/encoding" "^1.0.0" + "@walletconnect/environment" "^1.0.0" + randombytes "^2.1.0" + +"@walletconnect/safe-json@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" + integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== + "@walletconnect/socket-transport@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.4.1.tgz#d9b7ebb9a2843cc44cf96c880c62be78d4a1625f" @@ -1524,11 +1617,25 @@ "@walletconnect/utils" "^1.4.1" ws "7.3.0" +"@walletconnect/socket-transport@^1.6.6": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.6.6.tgz#b80974fe3e2a2f93ba1f6b40df5a0ea492b94086" + integrity sha512-mugCEoeKTx75ogb5ROg/+LA3yGTsuRNcrYgrApceo7WNU9Z4dG8l6ycMPqrrFcODcrasq3NmXVWUYDv/CvrzSw== + dependencies: + "@walletconnect/types" "^1.6.6" + "@walletconnect/utils" "^1.6.6" + ws "7.5.3" + "@walletconnect/types@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.4.1.tgz#48297238b86f846b8c694504ca45f0059a2cca88" integrity sha512-lzS9NbXjVb5N+W/UnCZAflxjLtYepUi4ev1IeFozSvr/cWxAhEe/sjixe7WEIpYklW27kfBhKccMH/KjUoRC7w== +"@walletconnect/types@^1.6.5", "@walletconnect/types@^1.6.6": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.6.6.tgz#8d644e2a390e494e40424c60272e91b4820bf0d4" + integrity sha512-op77cxexOmQQN36XB1sYouNTlBRV0Rup/2NYK8A1ffdwXa3a6HLHHdhBM7I/I9BVmRXoZ4+XoOnPKGGrYtlS3g== + "@walletconnect/utils@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.4.1.tgz#86108470c211a02609274a6c7bbd516c5182a22e" @@ -1542,6 +1649,31 @@ js-sha3 "0.8.0" query-string "6.13.5" +"@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.6.6": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.6.6.tgz#e8e49a5f2c35e4a5f9153b09ad076655f38d8c96" + integrity sha512-s2X/cVXiMDSEoWV6i7HPMbP1obXlzP7KLMrBo9OMabiJKnQEh6HSZ39WLswB2PHnl8Hp1Sr4BdRvhM5kCcYWRw== + dependencies: + "@walletconnect/browser-utils" "^1.6.6" + "@walletconnect/encoding" "^1.0.0" + "@walletconnect/jsonrpc-utils" "^1.0.0" + "@walletconnect/types" "^1.6.6" + bn.js "4.11.8" + js-sha3 "0.8.0" + query-string "6.13.5" + +"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" + integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== + +"@walletconnect/window-metadata@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5" + integrity sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA== + dependencies: + "@walletconnect/window-getters" "^1.0.0" + abort-controller@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -3432,14 +3564,6 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -keccak@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - keccak@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" @@ -3792,7 +3916,7 @@ object-assign@^4, object-assign@^4.1.0: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-inspect@^1.10.3: +object-inspect@^1.10.3, object-inspect@^1.9.0: version "1.11.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== @@ -4082,6 +4206,13 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +qs@6.10.1: + version "6.10.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" + integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== + dependencies: + side-channel "^1.0.4" + query-string@6.13.5: version "6.13.5" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" @@ -4344,6 +4475,15 @@ shiki@^0.9.3: onigasm "^2.2.5" vscode-textmate "5.2.0" +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + signal-exit@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -5022,6 +5162,11 @@ ws@7.4.6, ws@~7.4.2: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@7.5.3: + version "7.5.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== + xxhashjs@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" From 1013634a8ae34a7efe97137ffac86353bfda7a1b Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Oct 2021 14:47:11 +0530 Subject: [PATCH 037/956] elrond: issueEsdt: return ticker --- dist/helpers/elrond.d.ts | 4 +++- dist/helpers/elrond.js | 7 +++++-- package.json | 1 + src/helpers/elrond.ts | 11 ++++++++--- yarn.lock | 19 +++++++++++++++++++ 5 files changed, 36 insertions(+), 6 deletions(-) diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts index 12e50892c..b12d2ec43 100644 --- a/dist/helpers/elrond.d.ts +++ b/dist/helpers/elrond.d.ts @@ -63,8 +63,10 @@ export interface IssueESDTNFT { * @param canFreeze Wheteher this ESDT can be frozen * @param canWipe Whether this ESDT can be wiped * @param canTransferNFTCreateRole Whether the NFT Creation role can be transferred + * + * @returns ticker of the esdt */ - issueESDTNft(sender: ISigner, name: string, ticker: string, canFreeze: boolean | undefined, canWipe: boolean | undefined, canTransferNFTCreateRole: boolean | undefined): Promise; + issueESDTNft(sender: ISigner, name: string, ticker: string, canFreeze: boolean | undefined, canWipe: boolean | undefined, canTransferNFTCreateRole: boolean | undefined): Promise; } /** * Possible roles for an ESDT diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js index 040dd0c80..6e337a272 100644 --- a/dist/helpers/elrond.js +++ b/dist/helpers/elrond.js @@ -310,7 +310,10 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt_swap_address, unsignedIssueESDTNft, async issueESDTNft(sender, name, ticker, canFreeze = false, canWipe = false, canTransferNFTCreateRole = false) { const txu = unsignedIssueESDTNft(name, ticker, canFreeze, canWipe, canTransferNFTCreateRole); - await signAndSend(sender, txu); + const tx = await signAndSend(sender, txu); + const res = await transactionResult(tx.getHash()); + const tickerh = res["smartContractResults"][0].split("@")[2]; + return Buffer.from(tickerh, "hex").toString("utf-8"); }, async mintNft(owner, args) { const txu = unsignedMintNftTxn(owner.getAddress(), args); @@ -361,4 +364,4 @@ function filterEventId(results) { } throw Error(`invalid result: ${results.toString()}`); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTJIRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBT0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixpQkFBeUIsRUFDekIsSUFBWSxFQUNaLFFBQWdCLEVBRWhCLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsTUFBTSxxQkFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFD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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTZIRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBT0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixpQkFBeUIsRUFDekIsSUFBWSxFQUNaLFFBQWdCLEVBRWhCLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsTUFBTSxxQkFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFD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 \ No newline at end of file diff --git a/package.json b/package.json index 511d65cd4..dfc8c8ba5 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "ethers": "^5.4.1", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", + "testsuite-ts": "git+https://github.com/xp-network/bridge-ui-logics#web3-new", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/migration-validator#master" } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index cf0dc7cc4..7b62bb148 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -125,6 +125,8 @@ export interface IssueESDTNFT { * @param canFreeze Wheteher this ESDT can be frozen * @param canWipe Whether this ESDT can be wiped * @param canTransferNFTCreateRole Whether the NFT Creation role can be transferred + * + * @returns ticker of the esdt */ issueESDTNft( sender: ISigner, @@ -133,7 +135,7 @@ export interface IssueESDTNFT { canFreeze: boolean | undefined, canWipe: boolean | undefined, canTransferNFTCreateRole: boolean | undefined - ): Promise; + ): Promise; } /** @@ -655,7 +657,7 @@ export const elrondHelperFactory: ( canFreeze: boolean = false, canWipe: boolean = false, canTransferNFTCreateRole: boolean = false - ): Promise { + ): Promise { const txu = unsignedIssueESDTNft( name, ticker, @@ -664,7 +666,10 @@ export const elrondHelperFactory: ( canTransferNFTCreateRole ); - await signAndSend(sender, txu); + const tx = await signAndSend(sender, txu); + const res = await transactionResult(tx.getHash()); + const tickerh: string = res["smartContractResults"][0].split("@")[2]; + return Buffer.from(tickerh, "hex").toString("utf-8") }, async mintNft(owner: ISigner, args: NftIssueArgs): Promise { const txu = unsignedMintNftTxn(owner.getAddress(), args); diff --git a/yarn.lock b/yarn.lock index 17d9d8007..7e5fcacbf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4753,6 +4753,25 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" +"testsuite-ts@git+https://github.com/xp-network/bridge-ui-logics#web3-new": + version "2.0.0" + resolved "git+https://github.com/xp-network/bridge-ui-logics#95a5de7f0fa9124280679ee2a0339a29d58df8ab" + dependencies: + "@elrondnetwork/erdjs" "^8.0.1-alpha.5" + "@polkadot/api" "^5.2.1" + "@polkadot/api-contract" "^5.2.1" + "@polkadot/keyring" "^7.0.3" + "@polkadot/types" "^5.2.1" + "@polkadot/util" "^7.1.1" + "@polkadot/util-crypto" "^7.1.1" + axios "^0.21.1" + bignumber.js "^9.0.1" + ethers "^5.4.1" + js-base64 "^3.6.1" + socket.io-client "^4.1.3" + tronweb "^4.0.0" + validator "git+https://github.com/xp-network/migration-validator#master" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" From 2ad5624c302a218c7da9cdb7ce040059a6495a6f Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Oct 2021 14:55:44 +0530 Subject: [PATCH 038/956] elrond: transaction: fix value --- dist/helpers/elrond.js | 8 ++++---- src/helpers/elrond.ts | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js index 6e337a272..cdd45127c 100644 --- a/dist/helpers/elrond.js +++ b/dist/helpers/elrond.js @@ -95,7 +95,7 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt_swap_address, const utx = new erdjs_1.Transaction({ receiver: swapContract, gasLimit: new erdjs_1.GasLimit(50000000), - value: erdjs_1.Balance.egld(value.toString()), + value: new erdjs_1.Balance(erdjs_1.Egld.getToken(), erdjs_1.Egld.getNonce(), new bignumber_js_1.default(value.toString())), data: erdjs_1.TransactionPayload.contractCall() .setFunction(new erdjs_1.ContractFunction("wrapEgld")) .build() @@ -106,7 +106,7 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt_swap_address, return new erdjs_1.Transaction({ receiver: mintContract, gasLimit: new erdjs_1.GasLimit(50000000), - value: erdjs_1.Balance.egld(value.toString()), + value: new erdjs_1.Balance(erdjs_1.Egld.getToken(), erdjs_1.Egld.getNonce(), new bignumber_js_1.default(value.toString())), data: erdjs_1.TransactionPayload.contractCall() .setFunction(new erdjs_1.ContractFunction("freezeSend")) .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) @@ -218,7 +218,7 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt_swap_address, } return new erdjs_1.Transaction({ receiver: ESDT_ISSUE_ADDR, - value: erdjs_1.Balance.egld(ESDT_ISSUE_COST), + value: new erdjs_1.Balance(erdjs_1.Egld.getToken(), erdjs_1.Egld.getNonce(), new bignumber_js_1.default(ESDT_ISSUE_COST.toString())), gasLimit: new erdjs_1.GasLimit(60000000), data: baseArgs.build(), }); @@ -364,4 +364,4 @@ function filterEventId(results) { } throw Error(`invalid result: ${results.toString()}`); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBaUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTZIRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBT0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixpQkFBeUIsRUFDekIsSUFBWSxFQUNaLFFBQWdCLEVBRWhCLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsTUFBTSxxQkFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFD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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBa0I4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTZIRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBT0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixpQkFBeUIsRUFDekIsSUFBWSxFQUNaLFFBQWdCLEVBRWhCLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsTUFBTSxxQkFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFD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 \ No newline at end of file diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 7b62bb148..e2c272730 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -12,6 +12,7 @@ import { BigUIntValue, BytesValue, ContractFunction, + Egld, GasLimit, ISigner, NetworkConfig, @@ -312,7 +313,7 @@ export const elrondHelperFactory: ( const utx = new Transaction({ receiver: swapContract, gasLimit: new GasLimit(50000000), - value: Balance.egld(value.toString()), + value: new Balance(Egld.getToken(), Egld.getNonce(), new BigNumber(value.toString())), data: TransactionPayload.contractCall() .setFunction(new ContractFunction("wrapEgld")) .build() @@ -329,7 +330,7 @@ export const elrondHelperFactory: ( return new Transaction({ receiver: mintContract, gasLimit: new GasLimit(50000000), - value: Balance.egld(value.toString()), + value: new Balance(Egld.getToken(), Egld.getNonce(), new BigNumber(value.toString())), data: TransactionPayload.contractCall() .setFunction(new ContractFunction("freezeSend")) .addArg(new U64Value(new BigNumber(chain_nonce))) @@ -492,7 +493,7 @@ export const elrondHelperFactory: ( return new Transaction({ receiver: ESDT_ISSUE_ADDR, - value: Balance.egld(ESDT_ISSUE_COST), + value: new Balance(Egld.getToken(), Egld.getNonce(), new BigNumber(ESDT_ISSUE_COST.toString())), gasLimit: new GasLimit(60000000), data: baseArgs.build(), }); From 233fa016907e21a4f4ec41f7040106a55cf912f1 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Oct 2021 16:00:35 +0530 Subject: [PATCH 039/956] elrond: issueEsdt: smartContractResult --- dist/helpers/elrond.js | 4 ++-- src/helpers/elrond.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js index cdd45127c..0acb731cd 100644 --- a/dist/helpers/elrond.js +++ b/dist/helpers/elrond.js @@ -312,7 +312,7 @@ const elrondHelperFactory = async (node_uri, minter_address, esdt_swap_address, const txu = unsignedIssueESDTNft(name, ticker, canFreeze, canWipe, canTransferNFTCreateRole); const tx = await signAndSend(sender, txu); const res = await transactionResult(tx.getHash()); - const tickerh = res["smartContractResults"][0].split("@")[2]; + const tickerh = res["smartContractResults"][0].data.split("@")[2]; return Buffer.from(tickerh, "hex").toString("utf-8"); }, async mintNft(owner, args) { @@ -364,4 +364,4 @@ function filterEventId(results) { } throw Error(`invalid result: ${results.toString()}`); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBa0I4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTZIRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBT0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixpQkFBeUIsRUFDekIsSUFBWSxFQUNaLFFBQWdCLEVBRWhCLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsTUFBTSxxQkFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFD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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBa0I4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTZIRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBT0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixpQkFBeUIsRUFDekIsSUFBWSxFQUNaLFFBQWdCLEVBRWhCLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsTUFBTSxxQkFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFD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 \ No newline at end of file diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index e2c272730..623f53430 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -669,7 +669,7 @@ export const elrondHelperFactory: ( const tx = await signAndSend(sender, txu); const res = await transactionResult(tx.getHash()); - const tickerh: string = res["smartContractResults"][0].split("@")[2]; + const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; return Buffer.from(tickerh, "hex").toString("utf-8") }, async mintNft(owner: ISigner, args: NftIssueArgs): Promise { From 01f2b806b9d935ca4593524c1bfa416690798e93 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 10 Oct 2021 17:29:39 +0530 Subject: [PATCH 040/956] ci: setup a github action for releases --- .github/workflows/release.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..2777d9d48 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,29 @@ +# .github/workflows/publish.yml +name: Generate a build and push to another branch + +on: + workflow_dispatch: + + +jobs: + build: + runs-on: ubuntu-latest + name: Build and Push + steps: + - name: git-checkout + uses: actions/checkout@v2 + + - name: Install all dependencies + run: npm install + + - name: Build + run: npm run build + + - name: Push + uses: s0/git-publish-subdir-action@develop + env: + REPO: self + BRANCH: dist + FOLDER: dist + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MESSAGE: "Build: ({sha}) {msg}" \ No newline at end of file From efad09cb0e9496c4d2d77a1bf5b6039b2ce92cdf Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 10 Oct 2021 17:46:48 +0530 Subject: [PATCH 041/956] ci: update the ci Push to master-dist if push is on master, and push to bleeding-edge for all other branches --- .github/workflows/release.yml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2777d9d48..767e82ba6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,6 +2,9 @@ name: Generate a build and push to another branch on: + push: + branches: + - "*" workflow_dispatch: @@ -19,11 +22,21 @@ jobs: - name: Build run: npm run build - - name: Push + - name: Prepare Master Release uses: s0/git-publish-subdir-action@develop + if: ${{ github.ref == 'refs/heads/master' }} env: REPO: self - BRANCH: dist + BRANCH: master-dist + FOLDER: dist + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MESSAGE: "Build: ({sha}) {msg}" + - name: Prepare Branch Release + uses: s0/git-publish-subdir-action@develop + if: ${{ github.ref != 'refs/heads/master' }} + env: + REPO: self + BRANCH: bleeding-edge FOLDER: dist GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} MESSAGE: "Build: ({sha}) {msg}" \ No newline at end of file From 09947d9b904df6a02035c2f207f218fb0cb582b0 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 10 Oct 2021 17:51:14 +0530 Subject: [PATCH 042/956] releases: dist/ is redundant now Hence the cleanup --- dist/Minter.json | 587 ------------------------------------- dist/XPNet.json | 444 ---------------------------- dist/XPNft.json | 447 ---------------------------- dist/fakeERC1155.json | 437 --------------------------- dist/fakeERC721.json | 385 ------------------------ dist/helpers/chain.d.ts | 111 ------- dist/helpers/chain.js | 8 - dist/helpers/elrond.d.ts | 115 -------- dist/helpers/elrond.js | 367 ----------------------- dist/helpers/polkadot.d.ts | 38 --- dist/helpers/polkadot.js | 218 -------------- dist/helpers/tron.d.ts | 20 -- dist/helpers/tron.js | 180 ------------ dist/helpers/web3.d.ts | 75 ----- dist/helpers/web3.js | 192 ------------ dist/index.d.ts | 5 - dist/index.js | 18 -- dist/socket.d.ts | 20 -- dist/socket.js | 72 ----- 19 files changed, 3739 deletions(-) delete mode 100644 dist/Minter.json delete mode 100644 dist/XPNet.json delete mode 100644 dist/XPNft.json delete mode 100644 dist/fakeERC1155.json delete mode 100644 dist/fakeERC721.json delete mode 100644 dist/helpers/chain.d.ts delete mode 100644 dist/helpers/chain.js delete mode 100644 dist/helpers/elrond.d.ts delete mode 100644 dist/helpers/elrond.js delete mode 100644 dist/helpers/polkadot.d.ts delete mode 100644 dist/helpers/polkadot.js delete mode 100644 dist/helpers/tron.d.ts delete mode 100644 dist/helpers/tron.js delete mode 100644 dist/helpers/web3.d.ts delete mode 100644 dist/helpers/web3.js delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/socket.d.ts delete mode 100644 dist/socket.js diff --git a/dist/Minter.json b/dist/Minter.json deleted file mode 100644 index 893499c35..000000000 --- a/dist/Minter.json +++ /dev/null @@ -1,587 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Minter", - "sourceName": "contracts/Minter.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address[]", - "name": "_validators", - "type": "address[]" - }, - { - "internalType": "contract IERC721[]", - "name": "_nft_whitelist", - "type": "address[]" - }, - { - "internalType": "uint16", - "name": "_threshold", - "type": "uint16" - }, - { - "internalType": "contract XPNft", - "name": "_nft_token", - "type": "address" - }, - { - "internalType": "contract XPNet", - "name": "_token", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - } - ], - "name": "QuorumFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "txFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "txFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "contract_addr", - "type": "address" - } - ], - "name": "TransferErc721", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "txFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Unfreeze", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "txFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "data", - "type": "string" - } - ], - "name": "UnfreezeNft", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "freeze", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC721", - "name": "erc721_contract", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "internalType": "string", - "name": "to", - "type": "string" - } - ], - "name": "freeze_erc721", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "address", - "name": "new_validator", - "type": "address" - } - ], - "name": "validate_add_validator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - } - ], - "name": "validate_pause_bridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "address", - "name": "old_validator", - "type": "address" - } - ], - "name": "validate_remove_validator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "uint16", - "name": "new_threshold", - "type": "uint16" - } - ], - "name": "validate_set_threshold", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "validate_transfer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "string", - "name": "data", - "type": "string" - } - ], - "name": "validate_transfer_nft", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "address payable", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "validate_unfreeze", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "contract IERC721", - "name": "contract_addr", - "type": "address" - } - ], - "name": "validate_unfreeze_nft", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - } - ], - "name": "validate_unpause_bridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "contract IERC721", - "name": "contract_addr", - "type": "address" - } - ], - "name": "validate_whitelist_nft", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - } - ], - "name": "validate_withdraw_fees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "withdraw_nft", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x60806040526000600255600060035560006004553480156200002057600080fd5b5060405162004f5d38038062004f5d833981810160405281019062000046919062000566565b60008060006101000a81548160ff0219169083151502179055506000855111620000a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200009e906200068a565b60405180910390fd5b60008361ffff16118015620000c1575084518361ffff1611155b62000103576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000fa9062000668565b60405180910390fd5b60005b855181101562000183576200016c8682815181106200014e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516007620002da60201b6200199f1790919060201c565b5080806200017a9062000802565b91505062000106565b5060005b84518110156200024157600260096000878481518110620001d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055508080620002389062000802565b91505062000187565b508261ffff1660018190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000993565b60006200030a836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200031260201b60201c565b905092915050565b60006200032683836200038c60201b60201c565b6200038157826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000386565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000620003c6620003c084620006d5565b620006ac565b90508083825260208201905082856020860282011115620003e657600080fd5b60005b858110156200041a5781620003ff888262000499565b845260208401935060208301925050600181019050620003e9565b5050509392505050565b60006200043b620004358462000704565b620006ac565b905080838252602082019050828560208602820111156200045b57600080fd5b60005b858110156200048f57816200047488826200050a565b8452602084019350602083019250506001810190506200045e565b5050509392505050565b600081519050620004aa8162000911565b92915050565b600082601f830112620004c257600080fd5b8151620004d4848260208601620003af565b91505092915050565b600082601f830112620004ef57600080fd5b81516200050184826020860162000424565b91505092915050565b6000815190506200051b816200092b565b92915050565b600081519050620005328162000945565b92915050565b60008151905062000549816200095f565b92915050565b600081519050620005608162000979565b92915050565b600080600080600060a086880312156200057f57600080fd5b600086015167ffffffffffffffff8111156200059a57600080fd5b620005a888828901620004b0565b955050602086015167ffffffffffffffff811115620005c657600080fd5b620005d488828901620004dd565b9450506040620005e7888289016200054f565b9350506060620005fa8882890162000538565b92505060806200060d8882890162000521565b9150509295509295909350565b60006200062960128362000733565b91506200063682620008bf565b602082019050919050565b600062000650601d8362000733565b91506200065d82620008e8565b602082019050919050565b6000602082019050818103600083015262000683816200061a565b9050919050565b60006020820190508181036000830152620006a58162000641565b9050919050565b6000620006b8620006cb565b9050620006c68282620007cc565b919050565b6000604051905090565b600067ffffffffffffffff821115620006f357620006f26200087f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156200072257620007216200087f565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006200075182620007a2565b9050919050565b6000620007658262000744565b9050919050565b6000620007798262000744565b9050919050565b60006200078d8262000744565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620007d782620008ae565b810181811067ffffffffffffffff82111715620007f957620007f86200087f565b5b80604052505050565b60006200080f82620007c2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000845576200084462000850565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f696e76616c6964207468726573686f6c64210000000000000000000000000000600082015250565b7f56616c696461746f7273206d757374206e6f7420626520656d70747921000000600082015250565b6200091c8162000744565b81146200092857600080fd5b50565b620009368162000758565b81146200094257600080fd5b50565b62000950816200076c565b81146200095c57600080fd5b50565b6200096a8162000780565b81146200097657600080fd5b50565b620009848162000794565b81146200099057600080fd5b50565b6145ba80620009a36000396000f3fe6080604052600436106100fe5760003560e01c80636d0446d911610095578063daf1396411610064578063daf13964146102f2578063e2ef22171461031b578063ef1d0dec14610337578063f30f44a114610360578063f325c75414610389576100fe565b80636d0446d91461026857806372536d4f146102915780638b202d8f146102ba578063cff75c78146102d6576100fe565b8063453d7365116100d1578063453d7365146101ae578063519de490146101eb5780635c975abb146102145780635df93c7e1461023f576100fe565b80630d11f0a414610103578063128e66bd1461011f578063150b7a0214610148578063270c1cb414610185575b600080fd5b61011d60048036038101906101189190612f38565b6103b2565b005b34801561012b57600080fd5b5061014660048036038101906101419190612ffa565b61044e565b005b34801561015457600080fd5b5061016f600480360381019061016a9190612e3d565b6105b3565b60405161017c91906138ab565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190612fd1565b6105c7565b005b3480156101ba57600080fd5b506101d560048036038101906101d09190613085565b6106ba565b6040516101e29190613b54565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d9190612fd1565b610984565b005b34801561022057600080fd5b50610229610a76565b6040516102369190613890565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613036565b610a8c565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612fd1565b610c27565b005b34801561029d57600080fd5b506102b860048036038101906102b391906130f1565b610cd2565b005b6102d460048036038101906102cf919061322f565b610f17565b005b6102f060048036038101906102eb919061329b565b610fb5565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612ffa565b6110ce565b005b61033560048036038101906103309190612eb8565b61128c565b005b34801561034357600080fd5b5061035e600480360381019061035991906131cc565b611497565b005b34801561036c57600080fd5b5061038760048036038101906103829190613154565b611660565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613190565b611848565b005b600034116103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90613a26565b60405180910390fd5b6103fd610a76565b1561043d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610434906139c6565b60405180910390fd5b610449338484846119cf565b505050565b610456610a76565b15610496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048d906139c6565b60405180910390fd5b6104aa816007611d3090919063ffffffff16565b156104ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e1906139e6565b60405180910390fd5b6000816040516020016104fd91906137a8565b6040516020818303038152906040529050600061051c84600784611d60565b905060006001811115610558577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610591577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105ad576105ab83600761199f90919063ffffffff16565b505b50505050565b600063150b7a0260e01b9050949350505050565b6105cf610a76565b1561060f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610606906139c6565b60405180910390fd5b6000604051806020016040528060008152509050600061063183600584611d60565b90506000600181111561066d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156106a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156106b5576106b46124b1565b5b505050565b60006106c4610a76565b15610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906139c6565b60405180910390fd5b600060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040516020016107859190613ae1565b604051602081830303815290604052905060006107a487600184611d60565b9050600060018111156107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610819577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19876003546040518363ffffffff1660e01b815260040161087e929190613830565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260035487876040518463ffffffff1660e01b815260040161091193929190613b6f565b600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050506001600360008282546109569190613df8565b92505081905550600160035461096c9190613e7f565b9250505061097c565b6000925050505b949350505050565b61098c610a76565b6109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c2906138e6565b60405180910390fd5b600060405180602001604052806000815250905060006109ed83600684611d60565b905060006001811115610a29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a62577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a7157610a70612553565b5b505050565b60008060009054906101000a900460ff16905090565b610a94610a76565b15610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906139c6565b60405180910390fd5b600060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250604051602001610b119190613b03565b60405160208183030381529060405290506000610b3085600284611d60565b905060006001811115610b6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610ba5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c20578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1690613a66565b60405180910390fd5b5b5050505050565b60006040518060200160405280600081525090506000610c4983600a84611d60565b905060006001811115610c85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610cbe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610ccd57610ccc6125f4565b5b505050565b610cda610a76565b15610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d11906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390613aa6565b60405180910390fd5b600060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815250604051602001610e059190613b1e565b60405160208183030381529060405290506000610e2486600384611d60565b905060006001811115610e60577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610e99577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610f0f578273ffffffffffffffffffffffffffffffffffffffff166342842e0e3087876040518463ffffffff1660e01b8152600401610edc939291906137f9565b600060405180830381600087803b158015610ef657600080fd5b505af1158015610f0a573d6000803e3d6000fd5b505050505b505050505050565b60003411610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613a26565b60405180910390fd5b610f62610a76565b15610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906139c6565b60405180910390fd5b610faf33858585856126aa565b50505050565b610fbd610a76565b15610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906139c6565b60405180910390fd5b80341161103f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103690613926565b60405180910390fd5b7f88f79205ab1c13838c5021687f6e6e5840f03604b240c4f7441a657029b346e46002548483346110709190613e7f565b8585604051611083959493929190613cea565b60405180910390a160016002600082825461109e9190613df8565b9250508190555080346110b19190613e7f565b600460008282546110c29190613df8565b92505081905550505050565b6110d6610a76565b15611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d906139c6565b60405180910390fd5b600161112260076127b8565b61112c9190613e7f565b6001541115611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790613966565b60405180910390fd5b611184816007611d3090919063ffffffff16565b6111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906139a6565b60405180910390fd5b6000816040516020016111d691906137a8565b604051602081830303815290604052905060006111f584600884611d60565b905060006001811115611231577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561126a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611286576112848360076127cd90919063ffffffff16565b505b50505050565b600034116112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613a26565b60405180910390fd5b6112d7610a76565b15611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e906139c6565b60405180910390fd5b6002600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090613a46565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016113e6939291906137f9565b600060405180830381600087803b15801561140057600080fd5b505af1158015611414573d6000803e3d6000fd5b505050507fefd5d17615e8d78513f02fa7a2aab6ebdf2452857907b1293a10e321e9d5386b60025484348585898b6040516114559796959493929190613c80565b60405180910390a16001600260008282546114709190613df8565b9250508190555034600460008282546114899190613df8565b925050819055505050505050565b61149f610a76565b156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d6906139c6565b60405180910390fd5b600060405180606001604052808567ffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381525060405160200161152c9190613ac6565b6040516020818303038152906040529050600061154b86600084611d60565b905060006001811115611587577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156115c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561165857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68587866040518463ffffffff1660e01b815260040161162593929190613859565b600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050505b505050505050565b611668610a76565b156116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290613a06565b60405180910390fd5b60008160405160200161174e91906137a8565b6040516020818303038152906040529050600061176d84600484611d60565b9050600060018111156117a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156117e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611842576002600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b50505050565b611850610a76565b15611890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611887906139c6565b60405180910390fd5b61189a60076127b8565b8161ffff1611156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790613986565b60405180910390fd5b6000816040516020016118f391906137c3565b6040516020818303038152906040529050600061191284600984611d60565b90506000600181111561194e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115611987577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611999578261ffff166001819055505b50505050565b60006119c7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127fd565b905092915050565b8373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401611a419190613b54565b60206040518083038186803b158015611a5957600080fd5b505afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190612e14565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613a86565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b8152600401611b449190613b54565b60006040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b999190612f90565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b8152600401611bf69190613ba1565b600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68836040518263ffffffff1660e01b8152600401611c839190613b54565b600060405180830381600087803b158015611c9d57600080fd5b505af1158015611cb1573d6000803e3d6000fd5b505050507f9fa54a915c5d5d5ff39f445ca7c4b9bce03cbaf401223dbd10d1079fcdd0b56660025434868685604051611cee959493929190613bcf565b60405180910390a1600160026000828254611d099190613df8565b925050819055503460046000828254611d229190613df8565b925050819055505050505050565b6000611d58836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61286d565b905092915050565b6000611d76336007611d3090919063ffffffff16565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906138c6565b60405180910390fd5b6000600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611f1957604051806080016040528084600a811115611e3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001838152602001600181526020016001815250600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083600a811115611edb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151816001019080519060200190611efc929190612b07565b506040820151816002015560608201518160030155905050612293565b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613946565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461202c9190613df8565b9250508190555082600a81111561206c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600a8111156120ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212390613906565b60405180910390fd5b61220182600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101805461217590613fef565b80601f01602080910402602001604051908101604052809291908181526020018280546121a190613fef565b80156121ee5780601f106121c3576101008083540402835291602001916121ee565b820191906000526020600020905b8154815290600101906020018083116121d157829003601f168201915b505050505061289090919063ffffffff16565b612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613906565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825461228b9190613df8565b925050819055505b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600060019050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060020154141561237057600090505b61237a60076127b8565b600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414156124a657600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556001820160006124179190612b8d565b600282016000905560038201600090555050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410156124a5577fe22e1372cd6c9720ae7fc7854536a963d13d9996efde6038cbcecac7ff182e078560405161249c9190613b39565b60405180910390a15b5b809150509392505050565b6124b9610a76565b156124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f0906139c6565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861253c6128fd565b60405161254991906137de565b60405180910390a1565b61255b610a76565b61259a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612591906138e6565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6125dd6128fd565b6040516125ea91906137de565b60405180910390a1565b600061260060076127b8565b90506000816004546126129190613e4e565b905060005b828110156126a55761263381600761290590919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612678573d6000803e3d6000fd5b50816004600082825461268b9190613e7f565b92505081905550808061269d90614052565b915050612617565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161270993929190613859565b600060405180830381600087803b15801561272357600080fd5b505af1158015612737573d6000803e3d6000fd5b505050507f135c92cfa1cfe8e46534cd8748b74ee2505948ac3023824a91dc57ffda5f5b4c600254853486868660405161277696959493929190613c24565b60405180910390a16001600260008282546127919190613df8565b9250508190555034600460008282546127aa9190613df8565b925050819055505050505050565b60006127c68260000161291f565b9050919050565b60006127f5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612930565b905092915050565b6000612809838361286d565b612862578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612867565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008060019050835183518114600181146128ae57600092506128f1565b600160208701838101602088015b6002848385100114156128ec5780518351146128db5760009650600093505b6020830192506020810190506128bc565b505050505b50508091505092915050565b600033905090565b60006129148360000183612ab6565b60001c905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114612aaa5760006001826129629190613e7f565b905060006001866000018054905061297a9190613e7f565b9050818114612a355760008660000182815481106129c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612a6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612ab0565b60009150505b92915050565b6000826000018281548110612af4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b828054612b1390613fef565b90600052602060002090601f016020900481019282612b355760008555612b7c565b82601f10612b4e57805160ff1916838001178555612b7c565b82800160010185558215612b7c579182015b82811115612b7b578251825591602001919060010190612b60565b5b509050612b899190612bcd565b5090565b508054612b9990613fef565b6000825580601f10612bab5750612bca565b601f016020900490600052602060002090810190612bc99190612bcd565b5b50565b5b80821115612be6576000816000905550600101612bce565b5090565b6000612bfd612bf884613d69565b613d44565b905082815260208101848484011115612c1557600080fd5b612c20848285613fad565b509392505050565b6000612c3b612c3684613d9a565b613d44565b905082815260208101848484011115612c5357600080fd5b612c5e848285613fad565b509392505050565b6000612c79612c7484613d9a565b613d44565b905082815260208101848484011115612c9157600080fd5b612c9c848285613fbc565b509392505050565b600081359050612cb3816144e3565b92915050565b600081519050612cc8816144e3565b92915050565b600081359050612cdd816144fa565b92915050565b600082601f830112612cf457600080fd5b8135612d04848260208601612bea565b91505092915050565b600081359050612d1c81614511565b92915050565b60008083601f840112612d3457600080fd5b8235905067ffffffffffffffff811115612d4d57600080fd5b602083019150836001820283011115612d6557600080fd5b9250929050565b600082601f830112612d7d57600080fd5b8135612d8d848260208601612c28565b91505092915050565b600082601f830112612da757600080fd5b8151612db7848260208601612c66565b91505092915050565b600081359050612dcf81614528565b92915050565b600081359050612de48161453f565b92915050565b600081359050612df981614556565b92915050565b600081359050612e0e8161456d565b92915050565b600060208284031215612e2657600080fd5b6000612e3484828501612cb9565b91505092915050565b60008060008060808587031215612e5357600080fd5b6000612e6187828801612ca4565b9450506020612e7287828801612ca4565b9350506040612e8387828801612dea565b925050606085013567ffffffffffffffff811115612ea057600080fd5b612eac87828801612ce3565b91505092959194509250565b600080600080600060808688031215612ed057600080fd5b6000612ede88828901612d0d565b9550506020612eef88828901612dea565b9450506040612f0088828901612dff565b935050606086013567ffffffffffffffff811115612f1d57600080fd5b612f2988828901612d22565b92509250509295509295909350565b600080600060408486031215612f4d57600080fd5b600084013567ffffffffffffffff811115612f6757600080fd5b612f7386828701612d22565b93509350506020612f8686828701612dea565b9150509250925092565b600060208284031215612fa257600080fd5b600082015167ffffffffffffffff811115612fbc57600080fd5b612fc884828501612d96565b91505092915050565b600060208284031215612fe357600080fd5b6000612ff184828501612dc0565b91505092915050565b6000806040838503121561300d57600080fd5b600061301b85828601612dc0565b925050602061302c85828601612ca4565b9150509250929050565b60008060006060848603121561304b57600080fd5b600061305986828701612dc0565b935050602061306a86828701612cce565b925050604061307b86828701612dea565b9150509250925092565b6000806000806060858703121561309b57600080fd5b60006130a987828801612dc0565b94505060206130ba87828801612ca4565b935050604085013567ffffffffffffffff8111156130d757600080fd5b6130e387828801612d22565b925092505092959194509250565b6000806000806080858703121561310757600080fd5b600061311587828801612dc0565b945050602061312687828801612ca4565b935050604061313787828801612dea565b925050606061314887828801612d0d565b91505092959194509250565b6000806040838503121561316757600080fd5b600061317585828601612dc0565b925050602061318685828601612d0d565b9150509250929050565b600080604083850312156131a357600080fd5b60006131b185828601612dc0565b92505060206131c285828601612dd5565b9150509250929050565b600080600080608085870312156131e257600080fd5b60006131f087828801612dc0565b945050602061320187828801612dff565b935050604061321287828801612ca4565b925050606061322387828801612dea565b91505092959194509250565b6000806000806060858703121561324557600080fd5b600061325387828801612dff565b945050602085013567ffffffffffffffff81111561327057600080fd5b61327c87828801612d22565b9350935050604061328f87828801612dea565b91505092959194509250565b6000806000606084860312156132b057600080fd5b60006132be86828701612dff565b935050602084013567ffffffffffffffff8111156132db57600080fd5b6132e786828701612d6c565b92505060406132f886828701612dea565b9150509250925092565b61330b81613eb3565b82525050565b61331a81613eb3565b82525050565b61333161332c82613eb3565b61409b565b82525050565b61334081613ed7565b82525050565b61334f81613ee3565b82525050565b60006133618385613de7565b935061336e838584613fad565b6133778361418d565b840190509392505050565b600061338d82613dcb565b6133978185613dd6565b93506133a7818560208601613fbc565b6133b08161418d565b840191505092915050565b60006133c682613dcb565b6133d08185613de7565b93506133e0818560208601613fbc565b6133e98161418d565b840191505092915050565b6000613401601083613de7565b915061340c826141b8565b602082019050919050565b6000613424601483613de7565b915061342f826141e1565b602082019050919050565b6000613447600f83613de7565b91506134528261420a565b602082019050919050565b600061346a602983613de7565b915061347582614233565b604082019050919050565b600061348d601483613de7565b915061349882614282565b602082019050919050565b60006134b0603483613de7565b91506134bb826142ab565b604082019050919050565b60006134d3602783613de7565b91506134de826142fa565b604082019050919050565b60006134f6602083613de7565b915061350182614349565b602082019050919050565b6000613519601083613de7565b915061352482614372565b602082019050919050565b600061353c601383613de7565b91506135478261439b565b602082019050919050565b600061355f601783613de7565b915061356a826143c4565b602082019050919050565b6000613582601483613de7565b915061358d826143ed565b602082019050919050565b60006135a5602483613de7565b91506135b082614416565b604082019050919050565b60006135c8601483613de7565b91506135d382614465565b602082019050919050565b60006135eb601783613de7565b91506135f68261448e565b602082019050919050565b600061360e600083613de7565b9150613619826144b7565b600082019050919050565b6000613631601583613de7565b915061363c826144ba565b602082019050919050565b60608201600082015161365d600085018261378a565b5060208201516136706020850182613302565b506040820151613683604085018261375d565b50505050565b60006040830160008301516136a16000860182613302565b50602083015184820360208601526136b98282613382565b9150508091505092915050565b6040820160008201516136dc6000850182613302565b5060208201516136ef602085018261375d565b50505050565b60608201600082015161370b6000850182613302565b50602082015161371e602085018261375d565b5060408201516137316040850182613302565b50505050565b61374081613f89565b82525050565b61375761375282613f3d565b6140ad565b82525050565b61376681613f6b565b82525050565b61377581613f6b565b82525050565b61378481613f9b565b82525050565b61379381613f75565b82525050565b6137a281613f75565b82525050565b60006137b48284613320565b60148201915081905092915050565b60006137cf8284613746565b60028201915081905092915050565b60006020820190506137f36000830184613311565b92915050565b600060608201905061380e6000830186613311565b61381b6020830185613311565b613828604083018461376c565b949350505050565b60006040820190506138456000830185613311565b613852602083018461376c565b9392505050565b600060608201905061386e6000830186613311565b61387b602083018561377b565b613888604083018461376c565b949350505050565b60006020820190506138a56000830184613337565b92915050565b60006020820190506138c06000830184613346565b92915050565b600060208201905081810360008301526138df816133f4565b9050919050565b600060208201905081810360008301526138ff81613417565b9050919050565b6000602082019050818103600083015261391f8161343a565b9050919050565b6000602082019050818103600083015261393f8161345d565b9050919050565b6000602082019050818103600083015261395f81613480565b9050919050565b6000602082019050818103600083015261397f816134a3565b9050919050565b6000602082019050818103600083015261399f816134c6565b9050919050565b600060208201905081810360008301526139bf816134e9565b9050919050565b600060208201905081810360008301526139df8161350c565b9050919050565b600060208201905081810360008301526139ff8161352f565b9050919050565b60006020820190508181036000830152613a1f81613552565b9050919050565b60006020820190508181036000830152613a3f81613575565b9050919050565b60006020820190508181036000830152613a5f81613598565b9050919050565b60006020820190508181036000830152613a7f816135bb565b9050919050565b60006020820190508181036000830152613a9f816135de565b9050919050565b60006020820190508181036000830152613abf81613624565b9050919050565b6000606082019050613adb6000830184613647565b92915050565b60006020820190508181036000830152613afb8184613689565b905092915050565b6000604082019050613b1860008301846136c6565b92915050565b6000606082019050613b3360008301846136f5565b92915050565b6000602082019050613b4e6000830184613737565b92915050565b6000602082019050613b69600083018461376c565b92915050565b6000604082019050613b84600083018661376c565b8181036020830152613b97818486613355565b9050949350505050565b6000604082019050613bb6600083018461376c565b8181036020830152613bc781613601565b905092915050565b6000608082019050613be4600083018861376c565b613bf1602083018761376c565b8181036040830152613c04818587613355565b90508181036060830152613c1881846133bb565b90509695505050505050565b600060a082019050613c39600083018961376c565b613c466020830188613799565b613c53604083018761376c565b8181036060830152613c66818587613355565b9050613c75608083018461376c565b979650505050505050565b600060c082019050613c95600083018a61376c565b613ca26020830189613799565b613caf604083018861376c565b8181036060830152613cc2818688613355565b9050613cd1608083018561376c565b613cde60a0830184613311565b98975050505050505050565b600060a082019050613cff600083018861376c565b613d0c6020830187613799565b613d19604083018661376c565b8181036060830152613d2b81856133bb565b9050613d3a608083018461376c565b9695505050505050565b6000613d4e613d5f565b9050613d5a8282614021565b919050565b6000604051905090565b600067ffffffffffffffff821115613d8457613d8361415e565b5b613d8d8261418d565b9050602081019050919050565b600067ffffffffffffffff821115613db557613db461415e565b5b613dbe8261418d565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e0382613f6b565b9150613e0e83613f6b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e4357613e426140d1565b5b828201905092915050565b6000613e5982613f6b565b9150613e6483613f6b565b925082613e7457613e73614100565b5b828204905092915050565b6000613e8a82613f6b565b9150613e9583613f6b565b925082821015613ea857613ea76140d1565b5b828203905092915050565b6000613ebe82613f4b565b9050919050565b6000613ed082613f4b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000613f1a82613eb3565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000613f9482613f21565b9050919050565b6000613fa682613f75565b9050919050565b82818337600083830152505050565b60005b83811015613fda578082015181840152602081019050613fbf565b83811115613fe9576000848401525b50505050565b6000600282049050600182168061400757607f821691505b6020821081141561401b5761401a61412f565b5b50919050565b61402a8261418d565b810181811067ffffffffffffffff821117156140495761404861415e565b5b80604052505050565b600061405d82613f6b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140905761408f6140d1565b5b600182019050919050565b60006140a6826140bf565b9050919050565b60006140b88261419e565b9050919050565b60006140ca826141ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f01b9050919050565b60008160601b9050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f416374696f6e204d69736d617463680000000000000000000000000000000000600082015250565b7f6d7573742070617920626f74682076616c756520616e64207472616e7361637460008201527f696f6e2066656573210000000000000000000000000000000000000000000000602082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f75706461746520746865207468726573686f6c64206265666f72652072656d6f60008201527f76696e6720746869732076616c696461746f7221000000000000000000000000602082015250565b7f76616c696461746f7273206d757374206265203c3d2076616c696461746f727360008201527f206c656e67746800000000000000000000000000000000000000000000000000602082015250565b7f676976656e2061646472657373206973206e6f7420612076616c696461746f72600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f616c726561647920612076616c696461746f7200000000000000000000000000600082015250565b7f4e465420616c72656164792077686974656c6973746564000000000000000000600082015250565b7f5478204665657320697320726571756972656421000000000000000000000000600082015250565b7f54686973204e465420636f6e7472616374206973206e6f742077686974656c6960008201527f7374656400000000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f596f7520646f6e2774206f776e2074686973206e667421000000000000000000600082015250565b50565b7f4e4654206e6f742077686974656c69737465643f210000000000000000000000600082015250565b6144ec81613eb3565b81146144f757600080fd5b50565b61450381613ec5565b811461450e57600080fd5b50565b61451a81613f0f565b811461452557600080fd5b50565b61453181613f21565b811461453c57600080fd5b50565b61454881613f3d565b811461455357600080fd5b50565b61455f81613f6b565b811461456a57600080fd5b50565b61457681613f75565b811461458157600080fd5b5056fea2646970667358221220a659c1fdb7743f7a286cb8aef43425cab05c2f792ea5465274023c94e5d4bdad64736f6c63430008040033", - "deployedBytecode": "0x6080604052600436106100fe5760003560e01c80636d0446d911610095578063daf1396411610064578063daf13964146102f2578063e2ef22171461031b578063ef1d0dec14610337578063f30f44a114610360578063f325c75414610389576100fe565b80636d0446d91461026857806372536d4f146102915780638b202d8f146102ba578063cff75c78146102d6576100fe565b8063453d7365116100d1578063453d7365146101ae578063519de490146101eb5780635c975abb146102145780635df93c7e1461023f576100fe565b80630d11f0a414610103578063128e66bd1461011f578063150b7a0214610148578063270c1cb414610185575b600080fd5b61011d60048036038101906101189190612f38565b6103b2565b005b34801561012b57600080fd5b5061014660048036038101906101419190612ffa565b61044e565b005b34801561015457600080fd5b5061016f600480360381019061016a9190612e3d565b6105b3565b60405161017c91906138ab565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190612fd1565b6105c7565b005b3480156101ba57600080fd5b506101d560048036038101906101d09190613085565b6106ba565b6040516101e29190613b54565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d9190612fd1565b610984565b005b34801561022057600080fd5b50610229610a76565b6040516102369190613890565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613036565b610a8c565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612fd1565b610c27565b005b34801561029d57600080fd5b506102b860048036038101906102b391906130f1565b610cd2565b005b6102d460048036038101906102cf919061322f565b610f17565b005b6102f060048036038101906102eb919061329b565b610fb5565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612ffa565b6110ce565b005b61033560048036038101906103309190612eb8565b61128c565b005b34801561034357600080fd5b5061035e600480360381019061035991906131cc565b611497565b005b34801561036c57600080fd5b5061038760048036038101906103829190613154565b611660565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613190565b611848565b005b600034116103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90613a26565b60405180910390fd5b6103fd610a76565b1561043d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610434906139c6565b60405180910390fd5b610449338484846119cf565b505050565b610456610a76565b15610496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048d906139c6565b60405180910390fd5b6104aa816007611d3090919063ffffffff16565b156104ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e1906139e6565b60405180910390fd5b6000816040516020016104fd91906137a8565b6040516020818303038152906040529050600061051c84600784611d60565b905060006001811115610558577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610591577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105ad576105ab83600761199f90919063ffffffff16565b505b50505050565b600063150b7a0260e01b9050949350505050565b6105cf610a76565b1561060f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610606906139c6565b60405180910390fd5b6000604051806020016040528060008152509050600061063183600584611d60565b90506000600181111561066d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156106a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156106b5576106b46124b1565b5b505050565b60006106c4610a76565b15610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906139c6565b60405180910390fd5b600060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040516020016107859190613ae1565b604051602081830303815290604052905060006107a487600184611d60565b9050600060018111156107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610819577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19876003546040518363ffffffff1660e01b815260040161087e929190613830565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260035487876040518463ffffffff1660e01b815260040161091193929190613b6f565b600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050506001600360008282546109569190613df8565b92505081905550600160035461096c9190613e7f565b9250505061097c565b6000925050505b949350505050565b61098c610a76565b6109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c2906138e6565b60405180910390fd5b600060405180602001604052806000815250905060006109ed83600684611d60565b905060006001811115610a29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a62577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a7157610a70612553565b5b505050565b60008060009054906101000a900460ff16905090565b610a94610a76565b15610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906139c6565b60405180910390fd5b600060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250604051602001610b119190613b03565b60405160208183030381529060405290506000610b3085600284611d60565b905060006001811115610b6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610ba5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c20578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1690613a66565b60405180910390fd5b5b5050505050565b60006040518060200160405280600081525090506000610c4983600a84611d60565b905060006001811115610c85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610cbe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610ccd57610ccc6125f4565b5b505050565b610cda610a76565b15610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d11906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390613aa6565b60405180910390fd5b600060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815250604051602001610e059190613b1e565b60405160208183030381529060405290506000610e2486600384611d60565b905060006001811115610e60577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610e99577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610f0f578273ffffffffffffffffffffffffffffffffffffffff166342842e0e3087876040518463ffffffff1660e01b8152600401610edc939291906137f9565b600060405180830381600087803b158015610ef657600080fd5b505af1158015610f0a573d6000803e3d6000fd5b505050505b505050505050565b60003411610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613a26565b60405180910390fd5b610f62610a76565b15610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906139c6565b60405180910390fd5b610faf33858585856126aa565b50505050565b610fbd610a76565b15610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906139c6565b60405180910390fd5b80341161103f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103690613926565b60405180910390fd5b7f88f79205ab1c13838c5021687f6e6e5840f03604b240c4f7441a657029b346e46002548483346110709190613e7f565b8585604051611083959493929190613cea565b60405180910390a160016002600082825461109e9190613df8565b9250508190555080346110b19190613e7f565b600460008282546110c29190613df8565b92505081905550505050565b6110d6610a76565b15611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d906139c6565b60405180910390fd5b600161112260076127b8565b61112c9190613e7f565b6001541115611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790613966565b60405180910390fd5b611184816007611d3090919063ffffffff16565b6111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906139a6565b60405180910390fd5b6000816040516020016111d691906137a8565b604051602081830303815290604052905060006111f584600884611d60565b905060006001811115611231577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561126a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611286576112848360076127cd90919063ffffffff16565b505b50505050565b600034116112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613a26565b60405180910390fd5b6112d7610a76565b15611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e906139c6565b60405180910390fd5b6002600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090613a46565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016113e6939291906137f9565b600060405180830381600087803b15801561140057600080fd5b505af1158015611414573d6000803e3d6000fd5b505050507fefd5d17615e8d78513f02fa7a2aab6ebdf2452857907b1293a10e321e9d5386b60025484348585898b6040516114559796959493929190613c80565b60405180910390a16001600260008282546114709190613df8565b9250508190555034600460008282546114899190613df8565b925050819055505050505050565b61149f610a76565b156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d6906139c6565b60405180910390fd5b600060405180606001604052808567ffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381525060405160200161152c9190613ac6565b6040516020818303038152906040529050600061154b86600084611d60565b905060006001811115611587577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156115c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561165857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68587866040518463ffffffff1660e01b815260040161162593929190613859565b600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050505b505050505050565b611668610a76565b156116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290613a06565b60405180910390fd5b60008160405160200161174e91906137a8565b6040516020818303038152906040529050600061176d84600484611d60565b9050600060018111156117a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156117e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611842576002600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b50505050565b611850610a76565b15611890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611887906139c6565b60405180910390fd5b61189a60076127b8565b8161ffff1611156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790613986565b60405180910390fd5b6000816040516020016118f391906137c3565b6040516020818303038152906040529050600061191284600984611d60565b90506000600181111561194e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115611987577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611999578261ffff166001819055505b50505050565b60006119c7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127fd565b905092915050565b8373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401611a419190613b54565b60206040518083038186803b158015611a5957600080fd5b505afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190612e14565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613a86565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b8152600401611b449190613b54565b60006040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b999190612f90565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b8152600401611bf69190613ba1565b600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68836040518263ffffffff1660e01b8152600401611c839190613b54565b600060405180830381600087803b158015611c9d57600080fd5b505af1158015611cb1573d6000803e3d6000fd5b505050507f9fa54a915c5d5d5ff39f445ca7c4b9bce03cbaf401223dbd10d1079fcdd0b56660025434868685604051611cee959493929190613bcf565b60405180910390a1600160026000828254611d099190613df8565b925050819055503460046000828254611d229190613df8565b925050819055505050505050565b6000611d58836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61286d565b905092915050565b6000611d76336007611d3090919063ffffffff16565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906138c6565b60405180910390fd5b6000600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611f1957604051806080016040528084600a811115611e3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001838152602001600181526020016001815250600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083600a811115611edb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151816001019080519060200190611efc929190612b07565b506040820151816002015560608201518160030155905050612293565b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613946565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461202c9190613df8565b9250508190555082600a81111561206c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600a8111156120ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212390613906565b60405180910390fd5b61220182600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101805461217590613fef565b80601f01602080910402602001604051908101604052809291908181526020018280546121a190613fef565b80156121ee5780601f106121c3576101008083540402835291602001916121ee565b820191906000526020600020905b8154815290600101906020018083116121d157829003601f168201915b505050505061289090919063ffffffff16565b612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613906565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825461228b9190613df8565b925050819055505b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600060019050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060020154141561237057600090505b61237a60076127b8565b600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414156124a657600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556001820160006124179190612b8d565b600282016000905560038201600090555050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410156124a5577fe22e1372cd6c9720ae7fc7854536a963d13d9996efde6038cbcecac7ff182e078560405161249c9190613b39565b60405180910390a15b5b809150509392505050565b6124b9610a76565b156124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f0906139c6565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861253c6128fd565b60405161254991906137de565b60405180910390a1565b61255b610a76565b61259a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612591906138e6565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6125dd6128fd565b6040516125ea91906137de565b60405180910390a1565b600061260060076127b8565b90506000816004546126129190613e4e565b905060005b828110156126a55761263381600761290590919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612678573d6000803e3d6000fd5b50816004600082825461268b9190613e7f565b92505081905550808061269d90614052565b915050612617565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161270993929190613859565b600060405180830381600087803b15801561272357600080fd5b505af1158015612737573d6000803e3d6000fd5b505050507f135c92cfa1cfe8e46534cd8748b74ee2505948ac3023824a91dc57ffda5f5b4c600254853486868660405161277696959493929190613c24565b60405180910390a16001600260008282546127919190613df8565b9250508190555034600460008282546127aa9190613df8565b925050819055505050505050565b60006127c68260000161291f565b9050919050565b60006127f5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612930565b905092915050565b6000612809838361286d565b612862578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612867565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008060019050835183518114600181146128ae57600092506128f1565b600160208701838101602088015b6002848385100114156128ec5780518351146128db5760009650600093505b6020830192506020810190506128bc565b505050505b50508091505092915050565b600033905090565b60006129148360000183612ab6565b60001c905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114612aaa5760006001826129629190613e7f565b905060006001866000018054905061297a9190613e7f565b9050818114612a355760008660000182815481106129c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612a6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612ab0565b60009150505b92915050565b6000826000018281548110612af4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b828054612b1390613fef565b90600052602060002090601f016020900481019282612b355760008555612b7c565b82601f10612b4e57805160ff1916838001178555612b7c565b82800160010185558215612b7c579182015b82811115612b7b578251825591602001919060010190612b60565b5b509050612b899190612bcd565b5090565b508054612b9990613fef565b6000825580601f10612bab5750612bca565b601f016020900490600052602060002090810190612bc99190612bcd565b5b50565b5b80821115612be6576000816000905550600101612bce565b5090565b6000612bfd612bf884613d69565b613d44565b905082815260208101848484011115612c1557600080fd5b612c20848285613fad565b509392505050565b6000612c3b612c3684613d9a565b613d44565b905082815260208101848484011115612c5357600080fd5b612c5e848285613fad565b509392505050565b6000612c79612c7484613d9a565b613d44565b905082815260208101848484011115612c9157600080fd5b612c9c848285613fbc565b509392505050565b600081359050612cb3816144e3565b92915050565b600081519050612cc8816144e3565b92915050565b600081359050612cdd816144fa565b92915050565b600082601f830112612cf457600080fd5b8135612d04848260208601612bea565b91505092915050565b600081359050612d1c81614511565b92915050565b60008083601f840112612d3457600080fd5b8235905067ffffffffffffffff811115612d4d57600080fd5b602083019150836001820283011115612d6557600080fd5b9250929050565b600082601f830112612d7d57600080fd5b8135612d8d848260208601612c28565b91505092915050565b600082601f830112612da757600080fd5b8151612db7848260208601612c66565b91505092915050565b600081359050612dcf81614528565b92915050565b600081359050612de48161453f565b92915050565b600081359050612df981614556565b92915050565b600081359050612e0e8161456d565b92915050565b600060208284031215612e2657600080fd5b6000612e3484828501612cb9565b91505092915050565b60008060008060808587031215612e5357600080fd5b6000612e6187828801612ca4565b9450506020612e7287828801612ca4565b9350506040612e8387828801612dea565b925050606085013567ffffffffffffffff811115612ea057600080fd5b612eac87828801612ce3565b91505092959194509250565b600080600080600060808688031215612ed057600080fd5b6000612ede88828901612d0d565b9550506020612eef88828901612dea565b9450506040612f0088828901612dff565b935050606086013567ffffffffffffffff811115612f1d57600080fd5b612f2988828901612d22565b92509250509295509295909350565b600080600060408486031215612f4d57600080fd5b600084013567ffffffffffffffff811115612f6757600080fd5b612f7386828701612d22565b93509350506020612f8686828701612dea565b9150509250925092565b600060208284031215612fa257600080fd5b600082015167ffffffffffffffff811115612fbc57600080fd5b612fc884828501612d96565b91505092915050565b600060208284031215612fe357600080fd5b6000612ff184828501612dc0565b91505092915050565b6000806040838503121561300d57600080fd5b600061301b85828601612dc0565b925050602061302c85828601612ca4565b9150509250929050565b60008060006060848603121561304b57600080fd5b600061305986828701612dc0565b935050602061306a86828701612cce565b925050604061307b86828701612dea565b9150509250925092565b6000806000806060858703121561309b57600080fd5b60006130a987828801612dc0565b94505060206130ba87828801612ca4565b935050604085013567ffffffffffffffff8111156130d757600080fd5b6130e387828801612d22565b925092505092959194509250565b6000806000806080858703121561310757600080fd5b600061311587828801612dc0565b945050602061312687828801612ca4565b935050604061313787828801612dea565b925050606061314887828801612d0d565b91505092959194509250565b6000806040838503121561316757600080fd5b600061317585828601612dc0565b925050602061318685828601612d0d565b9150509250929050565b600080604083850312156131a357600080fd5b60006131b185828601612dc0565b92505060206131c285828601612dd5565b9150509250929050565b600080600080608085870312156131e257600080fd5b60006131f087828801612dc0565b945050602061320187828801612dff565b935050604061321287828801612ca4565b925050606061322387828801612dea565b91505092959194509250565b6000806000806060858703121561324557600080fd5b600061325387828801612dff565b945050602085013567ffffffffffffffff81111561327057600080fd5b61327c87828801612d22565b9350935050604061328f87828801612dea565b91505092959194509250565b6000806000606084860312156132b057600080fd5b60006132be86828701612dff565b935050602084013567ffffffffffffffff8111156132db57600080fd5b6132e786828701612d6c565b92505060406132f886828701612dea565b9150509250925092565b61330b81613eb3565b82525050565b61331a81613eb3565b82525050565b61333161332c82613eb3565b61409b565b82525050565b61334081613ed7565b82525050565b61334f81613ee3565b82525050565b60006133618385613de7565b935061336e838584613fad565b6133778361418d565b840190509392505050565b600061338d82613dcb565b6133978185613dd6565b93506133a7818560208601613fbc565b6133b08161418d565b840191505092915050565b60006133c682613dcb565b6133d08185613de7565b93506133e0818560208601613fbc565b6133e98161418d565b840191505092915050565b6000613401601083613de7565b915061340c826141b8565b602082019050919050565b6000613424601483613de7565b915061342f826141e1565b602082019050919050565b6000613447600f83613de7565b91506134528261420a565b602082019050919050565b600061346a602983613de7565b915061347582614233565b604082019050919050565b600061348d601483613de7565b915061349882614282565b602082019050919050565b60006134b0603483613de7565b91506134bb826142ab565b604082019050919050565b60006134d3602783613de7565b91506134de826142fa565b604082019050919050565b60006134f6602083613de7565b915061350182614349565b602082019050919050565b6000613519601083613de7565b915061352482614372565b602082019050919050565b600061353c601383613de7565b91506135478261439b565b602082019050919050565b600061355f601783613de7565b915061356a826143c4565b602082019050919050565b6000613582601483613de7565b915061358d826143ed565b602082019050919050565b60006135a5602483613de7565b91506135b082614416565b604082019050919050565b60006135c8601483613de7565b91506135d382614465565b602082019050919050565b60006135eb601783613de7565b91506135f68261448e565b602082019050919050565b600061360e600083613de7565b9150613619826144b7565b600082019050919050565b6000613631601583613de7565b915061363c826144ba565b602082019050919050565b60608201600082015161365d600085018261378a565b5060208201516136706020850182613302565b506040820151613683604085018261375d565b50505050565b60006040830160008301516136a16000860182613302565b50602083015184820360208601526136b98282613382565b9150508091505092915050565b6040820160008201516136dc6000850182613302565b5060208201516136ef602085018261375d565b50505050565b60608201600082015161370b6000850182613302565b50602082015161371e602085018261375d565b5060408201516137316040850182613302565b50505050565b61374081613f89565b82525050565b61375761375282613f3d565b6140ad565b82525050565b61376681613f6b565b82525050565b61377581613f6b565b82525050565b61378481613f9b565b82525050565b61379381613f75565b82525050565b6137a281613f75565b82525050565b60006137b48284613320565b60148201915081905092915050565b60006137cf8284613746565b60028201915081905092915050565b60006020820190506137f36000830184613311565b92915050565b600060608201905061380e6000830186613311565b61381b6020830185613311565b613828604083018461376c565b949350505050565b60006040820190506138456000830185613311565b613852602083018461376c565b9392505050565b600060608201905061386e6000830186613311565b61387b602083018561377b565b613888604083018461376c565b949350505050565b60006020820190506138a56000830184613337565b92915050565b60006020820190506138c06000830184613346565b92915050565b600060208201905081810360008301526138df816133f4565b9050919050565b600060208201905081810360008301526138ff81613417565b9050919050565b6000602082019050818103600083015261391f8161343a565b9050919050565b6000602082019050818103600083015261393f8161345d565b9050919050565b6000602082019050818103600083015261395f81613480565b9050919050565b6000602082019050818103600083015261397f816134a3565b9050919050565b6000602082019050818103600083015261399f816134c6565b9050919050565b600060208201905081810360008301526139bf816134e9565b9050919050565b600060208201905081810360008301526139df8161350c565b9050919050565b600060208201905081810360008301526139ff8161352f565b9050919050565b60006020820190508181036000830152613a1f81613552565b9050919050565b60006020820190508181036000830152613a3f81613575565b9050919050565b60006020820190508181036000830152613a5f81613598565b9050919050565b60006020820190508181036000830152613a7f816135bb565b9050919050565b60006020820190508181036000830152613a9f816135de565b9050919050565b60006020820190508181036000830152613abf81613624565b9050919050565b6000606082019050613adb6000830184613647565b92915050565b60006020820190508181036000830152613afb8184613689565b905092915050565b6000604082019050613b1860008301846136c6565b92915050565b6000606082019050613b3360008301846136f5565b92915050565b6000602082019050613b4e6000830184613737565b92915050565b6000602082019050613b69600083018461376c565b92915050565b6000604082019050613b84600083018661376c565b8181036020830152613b97818486613355565b9050949350505050565b6000604082019050613bb6600083018461376c565b8181036020830152613bc781613601565b905092915050565b6000608082019050613be4600083018861376c565b613bf1602083018761376c565b8181036040830152613c04818587613355565b90508181036060830152613c1881846133bb565b90509695505050505050565b600060a082019050613c39600083018961376c565b613c466020830188613799565b613c53604083018761376c565b8181036060830152613c66818587613355565b9050613c75608083018461376c565b979650505050505050565b600060c082019050613c95600083018a61376c565b613ca26020830189613799565b613caf604083018861376c565b8181036060830152613cc2818688613355565b9050613cd1608083018561376c565b613cde60a0830184613311565b98975050505050505050565b600060a082019050613cff600083018861376c565b613d0c6020830187613799565b613d19604083018661376c565b8181036060830152613d2b81856133bb565b9050613d3a608083018461376c565b9695505050505050565b6000613d4e613d5f565b9050613d5a8282614021565b919050565b6000604051905090565b600067ffffffffffffffff821115613d8457613d8361415e565b5b613d8d8261418d565b9050602081019050919050565b600067ffffffffffffffff821115613db557613db461415e565b5b613dbe8261418d565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e0382613f6b565b9150613e0e83613f6b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e4357613e426140d1565b5b828201905092915050565b6000613e5982613f6b565b9150613e6483613f6b565b925082613e7457613e73614100565b5b828204905092915050565b6000613e8a82613f6b565b9150613e9583613f6b565b925082821015613ea857613ea76140d1565b5b828203905092915050565b6000613ebe82613f4b565b9050919050565b6000613ed082613f4b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000613f1a82613eb3565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000613f9482613f21565b9050919050565b6000613fa682613f75565b9050919050565b82818337600083830152505050565b60005b83811015613fda578082015181840152602081019050613fbf565b83811115613fe9576000848401525b50505050565b6000600282049050600182168061400757607f821691505b6020821081141561401b5761401a61412f565b5b50919050565b61402a8261418d565b810181811067ffffffffffffffff821117156140495761404861415e565b5b80604052505050565b600061405d82613f6b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140905761408f6140d1565b5b600182019050919050565b60006140a6826140bf565b9050919050565b60006140b88261419e565b9050919050565b60006140ca826141ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f01b9050919050565b60008160601b9050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f416374696f6e204d69736d617463680000000000000000000000000000000000600082015250565b7f6d7573742070617920626f74682076616c756520616e64207472616e7361637460008201527f696f6e2066656573210000000000000000000000000000000000000000000000602082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f75706461746520746865207468726573686f6c64206265666f72652072656d6f60008201527f76696e6720746869732076616c696461746f7221000000000000000000000000602082015250565b7f76616c696461746f7273206d757374206265203c3d2076616c696461746f727360008201527f206c656e67746800000000000000000000000000000000000000000000000000602082015250565b7f676976656e2061646472657373206973206e6f7420612076616c696461746f72600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f616c726561647920612076616c696461746f7200000000000000000000000000600082015250565b7f4e465420616c72656164792077686974656c6973746564000000000000000000600082015250565b7f5478204665657320697320726571756972656421000000000000000000000000600082015250565b7f54686973204e465420636f6e7472616374206973206e6f742077686974656c6960008201527f7374656400000000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f596f7520646f6e2774206f776e2074686973206e667421000000000000000000600082015250565b50565b7f4e4654206e6f742077686974656c69737465643f210000000000000000000000600082015250565b6144ec81613eb3565b81146144f757600080fd5b50565b61450381613ec5565b811461450e57600080fd5b50565b61451a81613f0f565b811461452557600080fd5b50565b61453181613f21565b811461453c57600080fd5b50565b61454881613f3d565b811461455357600080fd5b50565b61455f81613f6b565b811461456a57600080fd5b50565b61457681613f75565b811461458157600080fd5b5056fea2646970667358221220a659c1fdb7743f7a286cb8aef43425cab05c2f792ea5465274023c94e5d4bdad64736f6c63430008040033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/dist/XPNet.json b/dist/XPNet.json deleted file mode 100644 index b6648ba2d..000000000 --- a/dist/XPNet.json +++ /dev/null @@ -1,444 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "XPNet", - "sourceName": "contracts/XPNet.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "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": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "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": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "uri_", - "type": "string" - } - ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200005a60201b60201c565b5062000054620000486200007660201b60201c565b6200007e60201b60201c565b62000259565b80600290805190602001906200007292919062000144565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200015290620001f4565b90600052602060002090601f016020900481019282620001765760008555620001c2565b82601f106200019157805160ff1916838001178555620001c2565b82800160010185558215620001c2579182015b82811115620001c1578251825591602001919060010190620001a4565b5b509050620001d19190620001d5565b5090565b5b80821115620001f0576000816000905550600101620001d6565b5090565b600060028204905060018216806200020d57607f821691505b602082108114156200022457620002236200022a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6133c680620002696000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c8063862440e21161008c578063e985e9c511610066578063e985e9c514610246578063f242432a14610276578063f2fde38b14610292578063f5298aca146102ae576100e9565b8063862440e2146101f05780638da5cb5b1461020c578063a22cb4651461022a576100e9565b8063156e29f6116100c8578063156e29f61461017e5780632eb2c2d61461019a5780634e1273f4146101b6578063715018a6146101e6576100e9565b8062fdd58e146100ee57806301ffc9a71461011e5780630e89341c1461014e575b600080fd5b610108600480360381019061010391906121ed565b6102ca565b6040516101159190612a3b565b60405180910390f35b610138600480360381019061013391906122e4565b610393565b604051610145919061281e565b60405180910390f35b61016860048036038101906101639190612336565b610475565b6040516101759190612839565b60405180910390f35b61019860048036038101906101939190612229565b61051a565b005b6101b460048036038101906101af9190612063565b6105b6565b005b6101d060048036038101906101cb9190612278565b610657565b6040516101dd91906127c5565b60405180910390f35b6101ee610808565b005b61020a6004803603810190610205919061235f565b610890565b005b610214610934565b60405161022191906126e8565b60405180910390f35b610244600480360381019061023f91906121b1565b61095e565b005b610260600480360381019061025b9190612027565b610adf565b60405161026d919061281e565b60405180910390f35b610290600480360381019061028b9190612122565b610b73565b005b6102ac60048036038101906102a79190611ffe565b610c14565b005b6102c860048036038101906102c39190612229565b610d0c565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561033b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103329061289b565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061045e57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046e575061046d82610d98565b5b9050919050565b606060046000838152602001908152602001600020805461049590612caa565b80601f01602080910402602001604051908101604052809291908181526020018280546104c190612caa565b801561050e5780601f106104e35761010080835404028352916020019161050e565b820191906000526020600020905b8154815290600101906020018083116104f157829003601f168201915b50505050509050919050565b610522610e02565b73ffffffffffffffffffffffffffffffffffffffff16610540610934565b73ffffffffffffffffffffffffffffffffffffffff1614610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d9061299b565b60405180910390fd5b6105b183838360405180602001604052806000815250610e0a565b505050565b6105be610e02565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806106045750610603856105fe610e02565b610adf565b5b610643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063a9061293b565b60405180910390fd5b6106508585858585610fa0565b5050505050565b6060815183511461069d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610694906129db565b60405180910390fd5b6000835167ffffffffffffffff8111156106e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561070e5781602001602082028036833780820191505090505b50905060005b84518110156107fd576107a7858281518110610759577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015185838151811061079a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516102ca565b8282815181106107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050806107f690612d0d565b9050610714565b508091505092915050565b610810610e02565b73ffffffffffffffffffffffffffffffffffffffff1661082e610934565b73ffffffffffffffffffffffffffffffffffffffff1614610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b9061299b565b60405180910390fd5b61088e6000611300565b565b610898610e02565b73ffffffffffffffffffffffffffffffffffffffff166108b6610934565b73ffffffffffffffffffffffffffffffffffffffff161461090c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109039061299b565b60405180910390fd5b818160046000868152602001908152602001600020919061092e929190611d14565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8173ffffffffffffffffffffffffffffffffffffffff1661097d610e02565b73ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906129bb565b60405180910390fd5b80600160006109e1610e02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e02565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061281e565b60405180910390a35050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610b7b610e02565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610bc15750610bc085610bbb610e02565b610adf565b5b610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf7906128fb565b60405180910390fd5b610c0d85858585856113c6565b5050505050565b610c1c610e02565b73ffffffffffffffffffffffffffffffffffffffff16610c3a610934565b73ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c879061299b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf7906128bb565b60405180910390fd5b610d0981611300565b50565b610d14610e02565b73ffffffffffffffffffffffffffffffffffffffff16610d32610934565b73ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f9061299b565b60405180910390fd5b610d93838383611648565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7190612a1b565b60405180910390fd5b6000610e84610e02565b9050610ea581600087610e9688611865565b610e9f88611865565b8761192b565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f049190612b9e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051610f82929190612a56565b60405180910390a4610f9981600087878787611933565b5050505050565b8151835114610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb906129fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b9061291b565b60405180910390fd5b600061105e610e02565b905061106e81878787878761192b565b60005b845181101561126b5760008582815181106110b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905060008583815181106110fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061297b565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112509190612b9e565b925050819055505050508061126490612d0d565b9050611071565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516112e29291906127e7565b60405180910390a46112f8818787878787611b1a565b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d9061291b565b60405180910390fd5b6000611440610e02565b905061146081878761145188611865565b61145a88611865565b8761192b565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee9061297b565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115ac9190612b9e565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051611629929190612a56565b60405180910390a461163f828888888888611933565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af9061295b565b60405180910390fd5b60006116c2610e02565b90506116f2818560006116d487611865565b6116dd87611865565b6040518060200160405280600081525061192b565b600080600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611780906128db565b60405180910390fd5b82810360008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611856929190612a56565b60405180910390a45050505050565b60606000600167ffffffffffffffff8111156118aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156118d85781602001602082028036833780820191505090505b5090508281600081518110611916577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080915050919050565b505050505050565b6119528473ffffffffffffffffffffffffffffffffffffffff16611d01565b15611b12578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161199895949392919061276b565b602060405180830381600087803b1580156119b257600080fd5b505af19250505080156119e357506040513d601f19601f820116820180604052508101906119e0919061230d565b60015b611a89576119ef612de3565b806308c379a01415611a4c5750611a0461329e565b80611a0f5750611a4e565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a439190612839565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a809061285b565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b079061287b565b60405180910390fd5b505b505050505050565b611b398473ffffffffffffffffffffffffffffffffffffffff16611d01565b15611cf9578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611b7f959493929190612703565b602060405180830381600087803b158015611b9957600080fd5b505af1925050508015611bca57506040513d601f19601f82011682018060405250810190611bc7919061230d565b60015b611c7057611bd6612de3565b806308c379a01415611c335750611beb61329e565b80611bf65750611c35565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2a9190612839565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c679061285b565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cee9061287b565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b828054611d2090612caa565b90600052602060002090601f016020900481019282611d425760008555611d89565b82601f10611d5b57803560ff1916838001178555611d89565b82800160010185558215611d89579182015b82811115611d88578235825591602001919060010190611d6d565b5b509050611d969190611d9a565b5090565b5b80821115611db3576000816000905550600101611d9b565b5090565b6000611dca611dc584612aa4565b612a7f565b90508083825260208201905082856020860282011115611de957600080fd5b60005b85811015611e195781611dff8882611ecd565b845260208401935060208301925050600181019050611dec565b5050509392505050565b6000611e36611e3184612ad0565b612a7f565b90508083825260208201905082856020860282011115611e5557600080fd5b60005b85811015611e855781611e6b8882611fe9565b845260208401935060208301925050600181019050611e58565b5050509392505050565b6000611ea2611e9d84612afc565b612a7f565b905082815260208101848484011115611eba57600080fd5b611ec5848285612c68565b509392505050565b600081359050611edc81613334565b92915050565b600082601f830112611ef357600080fd5b8135611f03848260208601611db7565b91505092915050565b600082601f830112611f1d57600080fd5b8135611f2d848260208601611e23565b91505092915050565b600081359050611f458161334b565b92915050565b600081359050611f5a81613362565b92915050565b600081519050611f6f81613362565b92915050565b600082601f830112611f8657600080fd5b8135611f96848260208601611e8f565b91505092915050565b60008083601f840112611fb157600080fd5b8235905067ffffffffffffffff811115611fca57600080fd5b602083019150836001820283011115611fe257600080fd5b9250929050565b600081359050611ff881613379565b92915050565b60006020828403121561201057600080fd5b600061201e84828501611ecd565b91505092915050565b6000806040838503121561203a57600080fd5b600061204885828601611ecd565b925050602061205985828601611ecd565b9150509250929050565b600080600080600060a0868803121561207b57600080fd5b600061208988828901611ecd565b955050602061209a88828901611ecd565b945050604086013567ffffffffffffffff8111156120b757600080fd5b6120c388828901611f0c565b935050606086013567ffffffffffffffff8111156120e057600080fd5b6120ec88828901611f0c565b925050608086013567ffffffffffffffff81111561210957600080fd5b61211588828901611f75565b9150509295509295909350565b600080600080600060a0868803121561213a57600080fd5b600061214888828901611ecd565b955050602061215988828901611ecd565b945050604061216a88828901611fe9565b935050606061217b88828901611fe9565b925050608086013567ffffffffffffffff81111561219857600080fd5b6121a488828901611f75565b9150509295509295909350565b600080604083850312156121c457600080fd5b60006121d285828601611ecd565b92505060206121e385828601611f36565b9150509250929050565b6000806040838503121561220057600080fd5b600061220e85828601611ecd565b925050602061221f85828601611fe9565b9150509250929050565b60008060006060848603121561223e57600080fd5b600061224c86828701611ecd565b935050602061225d86828701611fe9565b925050604061226e86828701611fe9565b9150509250925092565b6000806040838503121561228b57600080fd5b600083013567ffffffffffffffff8111156122a557600080fd5b6122b185828601611ee2565b925050602083013567ffffffffffffffff8111156122ce57600080fd5b6122da85828601611f0c565b9150509250929050565b6000602082840312156122f657600080fd5b600061230484828501611f4b565b91505092915050565b60006020828403121561231f57600080fd5b600061232d84828501611f60565b91505092915050565b60006020828403121561234857600080fd5b600061235684828501611fe9565b91505092915050565b60008060006040848603121561237457600080fd5b600061238286828701611fe9565b935050602084013567ffffffffffffffff81111561239f57600080fd5b6123ab86828701611f9f565b92509250509250925092565b60006123c383836126ca565b60208301905092915050565b6123d881612bf4565b82525050565b60006123e982612b3d565b6123f38185612b6b565b93506123fe83612b2d565b8060005b8381101561242f57815161241688826123b7565b975061242183612b5e565b925050600181019050612402565b5085935050505092915050565b61244581612c06565b82525050565b600061245682612b48565b6124608185612b7c565b9350612470818560208601612c77565b61247981612e05565b840191505092915050565b600061248f82612b53565b6124998185612b8d565b93506124a9818560208601612c77565b6124b281612e05565b840191505092915050565b60006124ca603483612b8d565b91506124d582612e23565b604082019050919050565b60006124ed602883612b8d565b91506124f882612e72565b604082019050919050565b6000612510602b83612b8d565b915061251b82612ec1565b604082019050919050565b6000612533602683612b8d565b915061253e82612f10565b604082019050919050565b6000612556602483612b8d565b915061256182612f5f565b604082019050919050565b6000612579602983612b8d565b915061258482612fae565b604082019050919050565b600061259c602583612b8d565b91506125a782612ffd565b604082019050919050565b60006125bf603283612b8d565b91506125ca8261304c565b604082019050919050565b60006125e2602383612b8d565b91506125ed8261309b565b604082019050919050565b6000612605602a83612b8d565b9150612610826130ea565b604082019050919050565b6000612628602083612b8d565b915061263382613139565b602082019050919050565b600061264b602983612b8d565b915061265682613162565b604082019050919050565b600061266e602983612b8d565b9150612679826131b1565b604082019050919050565b6000612691602883612b8d565b915061269c82613200565b604082019050919050565b60006126b4602183612b8d565b91506126bf8261324f565b604082019050919050565b6126d381612c5e565b82525050565b6126e281612c5e565b82525050565b60006020820190506126fd60008301846123cf565b92915050565b600060a08201905061271860008301886123cf565b61272560208301876123cf565b818103604083015261273781866123de565b9050818103606083015261274b81856123de565b9050818103608083015261275f818461244b565b90509695505050505050565b600060a08201905061278060008301886123cf565b61278d60208301876123cf565b61279a60408301866126d9565b6127a760608301856126d9565b81810360808301526127b9818461244b565b90509695505050505050565b600060208201905081810360008301526127df81846123de565b905092915050565b6000604082019050818103600083015261280181856123de565b9050818103602083015261281581846123de565b90509392505050565b6000602082019050612833600083018461243c565b92915050565b600060208201905081810360008301526128538184612484565b905092915050565b60006020820190508181036000830152612874816124bd565b9050919050565b60006020820190508181036000830152612894816124e0565b9050919050565b600060208201905081810360008301526128b481612503565b9050919050565b600060208201905081810360008301526128d481612526565b9050919050565b600060208201905081810360008301526128f481612549565b9050919050565b600060208201905081810360008301526129148161256c565b9050919050565b600060208201905081810360008301526129348161258f565b9050919050565b60006020820190508181036000830152612954816125b2565b9050919050565b60006020820190508181036000830152612974816125d5565b9050919050565b60006020820190508181036000830152612994816125f8565b9050919050565b600060208201905081810360008301526129b48161261b565b9050919050565b600060208201905081810360008301526129d48161263e565b9050919050565b600060208201905081810360008301526129f481612661565b9050919050565b60006020820190508181036000830152612a1481612684565b9050919050565b60006020820190508181036000830152612a34816126a7565b9050919050565b6000602082019050612a5060008301846126d9565b92915050565b6000604082019050612a6b60008301856126d9565b612a7860208301846126d9565b9392505050565b6000612a89612a9a565b9050612a958282612cdc565b919050565b6000604051905090565b600067ffffffffffffffff821115612abf57612abe612db4565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612aeb57612aea612db4565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612b1757612b16612db4565b5b612b2082612e05565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ba982612c5e565b9150612bb483612c5e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612be957612be8612d56565b5b828201905092915050565b6000612bff82612c3e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612c95578082015181840152602081019050612c7a565b83811115612ca4576000848401525b50505050565b60006002820490506001821680612cc257607f821691505b60208210811415612cd657612cd5612d85565b5b50919050565b612ce582612e05565b810181811067ffffffffffffffff82111715612d0457612d03612db4565b5b80604052505050565b6000612d1882612c5e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d4b57612d4a612d56565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d1115612e025760046000803e612dff600051612e16565b90505b90565b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d10156132ae57613331565b6132b6612a9a565b60043d036004823e80513d602482011167ffffffffffffffff821117156132de575050613331565b808201805167ffffffffffffffff8111156132fc5750505050613331565b80602083010160043d038501811115613319575050505050613331565b61332882602001850186612cdc565b82955050505050505b90565b61333d81612bf4565b811461334857600080fd5b50565b61335481612c06565b811461335f57600080fd5b50565b61336b81612c12565b811461337657600080fd5b50565b61338281612c5e565b811461338d57600080fd5b5056fea26469706673582212207c954b474ba2938a61031705a0987bcb898a0dffe9cb3f5a8744e3e16585386e64736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100e95760003560e01c8063862440e21161008c578063e985e9c511610066578063e985e9c514610246578063f242432a14610276578063f2fde38b14610292578063f5298aca146102ae576100e9565b8063862440e2146101f05780638da5cb5b1461020c578063a22cb4651461022a576100e9565b8063156e29f6116100c8578063156e29f61461017e5780632eb2c2d61461019a5780634e1273f4146101b6578063715018a6146101e6576100e9565b8062fdd58e146100ee57806301ffc9a71461011e5780630e89341c1461014e575b600080fd5b610108600480360381019061010391906121ed565b6102ca565b6040516101159190612a3b565b60405180910390f35b610138600480360381019061013391906122e4565b610393565b604051610145919061281e565b60405180910390f35b61016860048036038101906101639190612336565b610475565b6040516101759190612839565b60405180910390f35b61019860048036038101906101939190612229565b61051a565b005b6101b460048036038101906101af9190612063565b6105b6565b005b6101d060048036038101906101cb9190612278565b610657565b6040516101dd91906127c5565b60405180910390f35b6101ee610808565b005b61020a6004803603810190610205919061235f565b610890565b005b610214610934565b60405161022191906126e8565b60405180910390f35b610244600480360381019061023f91906121b1565b61095e565b005b610260600480360381019061025b9190612027565b610adf565b60405161026d919061281e565b60405180910390f35b610290600480360381019061028b9190612122565b610b73565b005b6102ac60048036038101906102a79190611ffe565b610c14565b005b6102c860048036038101906102c39190612229565b610d0c565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561033b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103329061289b565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061045e57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046e575061046d82610d98565b5b9050919050565b606060046000838152602001908152602001600020805461049590612caa565b80601f01602080910402602001604051908101604052809291908181526020018280546104c190612caa565b801561050e5780601f106104e35761010080835404028352916020019161050e565b820191906000526020600020905b8154815290600101906020018083116104f157829003601f168201915b50505050509050919050565b610522610e02565b73ffffffffffffffffffffffffffffffffffffffff16610540610934565b73ffffffffffffffffffffffffffffffffffffffff1614610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d9061299b565b60405180910390fd5b6105b183838360405180602001604052806000815250610e0a565b505050565b6105be610e02565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806106045750610603856105fe610e02565b610adf565b5b610643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063a9061293b565b60405180910390fd5b6106508585858585610fa0565b5050505050565b6060815183511461069d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610694906129db565b60405180910390fd5b6000835167ffffffffffffffff8111156106e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561070e5781602001602082028036833780820191505090505b50905060005b84518110156107fd576107a7858281518110610759577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015185838151811061079a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516102ca565b8282815181106107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050806107f690612d0d565b9050610714565b508091505092915050565b610810610e02565b73ffffffffffffffffffffffffffffffffffffffff1661082e610934565b73ffffffffffffffffffffffffffffffffffffffff1614610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b9061299b565b60405180910390fd5b61088e6000611300565b565b610898610e02565b73ffffffffffffffffffffffffffffffffffffffff166108b6610934565b73ffffffffffffffffffffffffffffffffffffffff161461090c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109039061299b565b60405180910390fd5b818160046000868152602001908152602001600020919061092e929190611d14565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8173ffffffffffffffffffffffffffffffffffffffff1661097d610e02565b73ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906129bb565b60405180910390fd5b80600160006109e1610e02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e02565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061281e565b60405180910390a35050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610b7b610e02565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610bc15750610bc085610bbb610e02565b610adf565b5b610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf7906128fb565b60405180910390fd5b610c0d85858585856113c6565b5050505050565b610c1c610e02565b73ffffffffffffffffffffffffffffffffffffffff16610c3a610934565b73ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c879061299b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf7906128bb565b60405180910390fd5b610d0981611300565b50565b610d14610e02565b73ffffffffffffffffffffffffffffffffffffffff16610d32610934565b73ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f9061299b565b60405180910390fd5b610d93838383611648565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7190612a1b565b60405180910390fd5b6000610e84610e02565b9050610ea581600087610e9688611865565b610e9f88611865565b8761192b565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f049190612b9e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051610f82929190612a56565b60405180910390a4610f9981600087878787611933565b5050505050565b8151835114610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb906129fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b9061291b565b60405180910390fd5b600061105e610e02565b905061106e81878787878761192b565b60005b845181101561126b5760008582815181106110b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905060008583815181106110fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061297b565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112509190612b9e565b925050819055505050508061126490612d0d565b9050611071565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516112e29291906127e7565b60405180910390a46112f8818787878787611b1a565b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d9061291b565b60405180910390fd5b6000611440610e02565b905061146081878761145188611865565b61145a88611865565b8761192b565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee9061297b565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115ac9190612b9e565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051611629929190612a56565b60405180910390a461163f828888888888611933565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af9061295b565b60405180910390fd5b60006116c2610e02565b90506116f2818560006116d487611865565b6116dd87611865565b6040518060200160405280600081525061192b565b600080600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611780906128db565b60405180910390fd5b82810360008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611856929190612a56565b60405180910390a45050505050565b60606000600167ffffffffffffffff8111156118aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156118d85781602001602082028036833780820191505090505b5090508281600081518110611916577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080915050919050565b505050505050565b6119528473ffffffffffffffffffffffffffffffffffffffff16611d01565b15611b12578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161199895949392919061276b565b602060405180830381600087803b1580156119b257600080fd5b505af19250505080156119e357506040513d601f19601f820116820180604052508101906119e0919061230d565b60015b611a89576119ef612de3565b806308c379a01415611a4c5750611a0461329e565b80611a0f5750611a4e565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a439190612839565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a809061285b565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b079061287b565b60405180910390fd5b505b505050505050565b611b398473ffffffffffffffffffffffffffffffffffffffff16611d01565b15611cf9578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611b7f959493929190612703565b602060405180830381600087803b158015611b9957600080fd5b505af1925050508015611bca57506040513d601f19601f82011682018060405250810190611bc7919061230d565b60015b611c7057611bd6612de3565b806308c379a01415611c335750611beb61329e565b80611bf65750611c35565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2a9190612839565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c679061285b565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cee9061287b565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b828054611d2090612caa565b90600052602060002090601f016020900481019282611d425760008555611d89565b82601f10611d5b57803560ff1916838001178555611d89565b82800160010185558215611d89579182015b82811115611d88578235825591602001919060010190611d6d565b5b509050611d969190611d9a565b5090565b5b80821115611db3576000816000905550600101611d9b565b5090565b6000611dca611dc584612aa4565b612a7f565b90508083825260208201905082856020860282011115611de957600080fd5b60005b85811015611e195781611dff8882611ecd565b845260208401935060208301925050600181019050611dec565b5050509392505050565b6000611e36611e3184612ad0565b612a7f565b90508083825260208201905082856020860282011115611e5557600080fd5b60005b85811015611e855781611e6b8882611fe9565b845260208401935060208301925050600181019050611e58565b5050509392505050565b6000611ea2611e9d84612afc565b612a7f565b905082815260208101848484011115611eba57600080fd5b611ec5848285612c68565b509392505050565b600081359050611edc81613334565b92915050565b600082601f830112611ef357600080fd5b8135611f03848260208601611db7565b91505092915050565b600082601f830112611f1d57600080fd5b8135611f2d848260208601611e23565b91505092915050565b600081359050611f458161334b565b92915050565b600081359050611f5a81613362565b92915050565b600081519050611f6f81613362565b92915050565b600082601f830112611f8657600080fd5b8135611f96848260208601611e8f565b91505092915050565b60008083601f840112611fb157600080fd5b8235905067ffffffffffffffff811115611fca57600080fd5b602083019150836001820283011115611fe257600080fd5b9250929050565b600081359050611ff881613379565b92915050565b60006020828403121561201057600080fd5b600061201e84828501611ecd565b91505092915050565b6000806040838503121561203a57600080fd5b600061204885828601611ecd565b925050602061205985828601611ecd565b9150509250929050565b600080600080600060a0868803121561207b57600080fd5b600061208988828901611ecd565b955050602061209a88828901611ecd565b945050604086013567ffffffffffffffff8111156120b757600080fd5b6120c388828901611f0c565b935050606086013567ffffffffffffffff8111156120e057600080fd5b6120ec88828901611f0c565b925050608086013567ffffffffffffffff81111561210957600080fd5b61211588828901611f75565b9150509295509295909350565b600080600080600060a0868803121561213a57600080fd5b600061214888828901611ecd565b955050602061215988828901611ecd565b945050604061216a88828901611fe9565b935050606061217b88828901611fe9565b925050608086013567ffffffffffffffff81111561219857600080fd5b6121a488828901611f75565b9150509295509295909350565b600080604083850312156121c457600080fd5b60006121d285828601611ecd565b92505060206121e385828601611f36565b9150509250929050565b6000806040838503121561220057600080fd5b600061220e85828601611ecd565b925050602061221f85828601611fe9565b9150509250929050565b60008060006060848603121561223e57600080fd5b600061224c86828701611ecd565b935050602061225d86828701611fe9565b925050604061226e86828701611fe9565b9150509250925092565b6000806040838503121561228b57600080fd5b600083013567ffffffffffffffff8111156122a557600080fd5b6122b185828601611ee2565b925050602083013567ffffffffffffffff8111156122ce57600080fd5b6122da85828601611f0c565b9150509250929050565b6000602082840312156122f657600080fd5b600061230484828501611f4b565b91505092915050565b60006020828403121561231f57600080fd5b600061232d84828501611f60565b91505092915050565b60006020828403121561234857600080fd5b600061235684828501611fe9565b91505092915050565b60008060006040848603121561237457600080fd5b600061238286828701611fe9565b935050602084013567ffffffffffffffff81111561239f57600080fd5b6123ab86828701611f9f565b92509250509250925092565b60006123c383836126ca565b60208301905092915050565b6123d881612bf4565b82525050565b60006123e982612b3d565b6123f38185612b6b565b93506123fe83612b2d565b8060005b8381101561242f57815161241688826123b7565b975061242183612b5e565b925050600181019050612402565b5085935050505092915050565b61244581612c06565b82525050565b600061245682612b48565b6124608185612b7c565b9350612470818560208601612c77565b61247981612e05565b840191505092915050565b600061248f82612b53565b6124998185612b8d565b93506124a9818560208601612c77565b6124b281612e05565b840191505092915050565b60006124ca603483612b8d565b91506124d582612e23565b604082019050919050565b60006124ed602883612b8d565b91506124f882612e72565b604082019050919050565b6000612510602b83612b8d565b915061251b82612ec1565b604082019050919050565b6000612533602683612b8d565b915061253e82612f10565b604082019050919050565b6000612556602483612b8d565b915061256182612f5f565b604082019050919050565b6000612579602983612b8d565b915061258482612fae565b604082019050919050565b600061259c602583612b8d565b91506125a782612ffd565b604082019050919050565b60006125bf603283612b8d565b91506125ca8261304c565b604082019050919050565b60006125e2602383612b8d565b91506125ed8261309b565b604082019050919050565b6000612605602a83612b8d565b9150612610826130ea565b604082019050919050565b6000612628602083612b8d565b915061263382613139565b602082019050919050565b600061264b602983612b8d565b915061265682613162565b604082019050919050565b600061266e602983612b8d565b9150612679826131b1565b604082019050919050565b6000612691602883612b8d565b915061269c82613200565b604082019050919050565b60006126b4602183612b8d565b91506126bf8261324f565b604082019050919050565b6126d381612c5e565b82525050565b6126e281612c5e565b82525050565b60006020820190506126fd60008301846123cf565b92915050565b600060a08201905061271860008301886123cf565b61272560208301876123cf565b818103604083015261273781866123de565b9050818103606083015261274b81856123de565b9050818103608083015261275f818461244b565b90509695505050505050565b600060a08201905061278060008301886123cf565b61278d60208301876123cf565b61279a60408301866126d9565b6127a760608301856126d9565b81810360808301526127b9818461244b565b90509695505050505050565b600060208201905081810360008301526127df81846123de565b905092915050565b6000604082019050818103600083015261280181856123de565b9050818103602083015261281581846123de565b90509392505050565b6000602082019050612833600083018461243c565b92915050565b600060208201905081810360008301526128538184612484565b905092915050565b60006020820190508181036000830152612874816124bd565b9050919050565b60006020820190508181036000830152612894816124e0565b9050919050565b600060208201905081810360008301526128b481612503565b9050919050565b600060208201905081810360008301526128d481612526565b9050919050565b600060208201905081810360008301526128f481612549565b9050919050565b600060208201905081810360008301526129148161256c565b9050919050565b600060208201905081810360008301526129348161258f565b9050919050565b60006020820190508181036000830152612954816125b2565b9050919050565b60006020820190508181036000830152612974816125d5565b9050919050565b60006020820190508181036000830152612994816125f8565b9050919050565b600060208201905081810360008301526129b48161261b565b9050919050565b600060208201905081810360008301526129d48161263e565b9050919050565b600060208201905081810360008301526129f481612661565b9050919050565b60006020820190508181036000830152612a1481612684565b9050919050565b60006020820190508181036000830152612a34816126a7565b9050919050565b6000602082019050612a5060008301846126d9565b92915050565b6000604082019050612a6b60008301856126d9565b612a7860208301846126d9565b9392505050565b6000612a89612a9a565b9050612a958282612cdc565b919050565b6000604051905090565b600067ffffffffffffffff821115612abf57612abe612db4565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612aeb57612aea612db4565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612b1757612b16612db4565b5b612b2082612e05565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ba982612c5e565b9150612bb483612c5e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612be957612be8612d56565b5b828201905092915050565b6000612bff82612c3e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612c95578082015181840152602081019050612c7a565b83811115612ca4576000848401525b50505050565b60006002820490506001821680612cc257607f821691505b60208210811415612cd657612cd5612d85565b5b50919050565b612ce582612e05565b810181811067ffffffffffffffff82111715612d0457612d03612db4565b5b80604052505050565b6000612d1882612c5e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d4b57612d4a612d56565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d1115612e025760046000803e612dff600051612e16565b90505b90565b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d10156132ae57613331565b6132b6612a9a565b60043d036004823e80513d602482011167ffffffffffffffff821117156132de575050613331565b808201805167ffffffffffffffff8111156132fc5750505050613331565b80602083010160043d038501811115613319575050505050613331565b61332882602001850186612cdc565b82955050505050505b90565b61333d81612bf4565b811461334857600080fd5b50565b61335481612c06565b811461335f57600080fd5b50565b61336b81612c12565b811461337657600080fd5b50565b61338281612c5e565b811461338d57600080fd5b5056fea26469706673582212207c954b474ba2938a61031705a0987bcb898a0dffe9cb3f5a8744e3e16585386e64736f6c63430008040033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/dist/XPNft.json b/dist/XPNft.json deleted file mode 100644 index a6d8b97e4..000000000 --- a/dist/XPNft.json +++ /dev/null @@ -1,447 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "XPNft", - "sourceName": "contracts/XPNft.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "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" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "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" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "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" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "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" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "uri_", - "type": "string" - } - ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600981526020017f5870577261704e667400000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f58504e4654000000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620001a6565b508060019080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6132d080620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a22cb46511610071578063a22cb465146102f2578063b88d4fde1461030e578063c87b56dd1461032a578063e985e9c51461035a578063f2fde38b1461038a57610121565b806370a0823114610260578063715018a614610290578063862440e21461029a5780638da5cb5b146102b657806395d89b41146102d457610121565b806323b872dd116100f457806323b872dd146101c057806340c10f19146101dc57806342842e0e146101f857806342966c68146102145780636352211e1461023057610121565b806301ffc9a71461012657806306fdde0314610156578063081812fc14610174578063095ea7b3146101a4575b600080fd5b610140600480360381019061013b9190612258565b6103a6565b60405161014d91906126fc565b60405180910390f35b61015e610488565b60405161016b9190612717565b60405180910390f35b61018e600480360381019061018991906122aa565b61051a565b60405161019b9190612695565b60405180910390f35b6101be60048036038101906101b9919061221c565b61059f565b005b6101da60048036038101906101d59190612116565b6106b7565b005b6101f660048036038101906101f1919061221c565b610717565b005b610212600480360381019061020d9190612116565b6107a1565b005b61022e600480360381019061022991906122aa565b6107c1565b005b61024a600480360381019061024591906122aa565b610849565b6040516102579190612695565b60405180910390f35b61027a600480360381019061027591906120b1565b6108fb565b6040516102879190612979565b60405180910390f35b6102986109b3565b005b6102b460048036038101906102af91906122d3565b610a3b565b005b6102be610b0a565b6040516102cb9190612695565b60405180910390f35b6102dc610b34565b6040516102e99190612717565b60405180910390f35b61030c600480360381019061030791906121e0565b610bc6565b005b61032860048036038101906103239190612165565b610d47565b005b610344600480360381019061033f91906122aa565b610da9565b6040516103519190612717565b60405180910390f35b610374600480360381019061036f91906120da565b610efb565b60405161038191906126fc565b60405180910390f35b6103a4600480360381019061039f91906120b1565b610f8f565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610481575061048082611087565b5b9050919050565b60606000805461049790612b9e565b80601f01602080910402602001604051908101604052809291908181526020018280546104c390612b9e565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b5050505050905090565b6000610525826110f1565b610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b906128b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105aa82610849565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061290612939565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661063a61115d565b73ffffffffffffffffffffffffffffffffffffffff16148061066957506106688161066361115d565b610efb565b5b6106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906127f9565b60405180910390fd5b6106b28383611165565b505050565b6106c86106c261115d565b8261121e565b610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe90612959565b60405180910390fd5b6107128383836112fc565b505050565b61071f61115d565b73ffffffffffffffffffffffffffffffffffffffff1661073d610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a906128d9565b60405180910390fd5b61079d8282611558565b5050565b6107bc83838360405180602001604052806000815250610d47565b505050565b6107c961115d565b73ffffffffffffffffffffffffffffffffffffffff166107e7610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906128d9565b60405180910390fd5b61084681611576565b50565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e990612839565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612819565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109bb61115d565b73ffffffffffffffffffffffffffffffffffffffff166109d9610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906128d9565b60405180910390fd5b610a3960006115c9565b565b610a4361115d565b73ffffffffffffffffffffffffffffffffffffffff16610a61610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906128d9565b60405180910390fd5b610b058383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061168f565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b4390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6f90612b9e565b8015610bbc5780601f10610b9157610100808354040283529160200191610bbc565b820191906000526020600020905b815481529060010190602001808311610b9f57829003601f168201915b5050505050905090565b610bce61115d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c33906127b9565b60405180910390fd5b8060056000610c4961115d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610cf661115d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d3b91906126fc565b60405180910390a35050565b610d58610d5261115d565b8361121e565b610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612959565b60405180910390fd5b610da384848484611703565b50505050565b6060610db4826110f1565b610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90612899565b60405180910390fd5b6000600660008481526020019081526020016000208054610e1390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90612b9e565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b505050505090506000610e9d61175f565b9050600081511415610eb3578192505050610ef6565b600082511115610ee8578082604051602001610ed0929190612671565b60405160208183030381529060405292505050610ef6565b610ef184611776565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f9761115d565b73ffffffffffffffffffffffffffffffffffffffff16610fb5610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906128d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612759565b60405180910390fd5b611084816115c9565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166111d883610849565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611229826110f1565b611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906127d9565b60405180910390fd5b600061127383610849565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806112e257508373ffffffffffffffffffffffffffffffffffffffff166112ca8461051a565b73ffffffffffffffffffffffffffffffffffffffff16145b806112f357506112f28185610efb565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661131c82610849565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611369906128f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990612799565b60405180910390fd5b6113ed83838361181d565b6113f8600082611165565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114489190612ab4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461149f9190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611572828260405180602001604052806000815250611822565b5050565b61157f8161187d565b600060066000838152602001908152602001600020805461159f90612b9e565b9050146115c6576006600082815260200190815260200160002060006115c59190611eb3565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611698826110f1565b6116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612859565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906116fe929190611ef3565b505050565b61170e8484846112fc565b61171a8484848461198e565b611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612739565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060611781826110f1565b6117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612919565b60405180910390fd5b60006117ca61175f565b905060008151116117ea5760405180602001604052806000815250611815565b806117f484611b25565b604051602001611805929190612671565b6040516020818303038152906040525b915050919050565b505050565b61182c8383611cd2565b611839600084848461198e565b611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90612739565b60405180910390fd5b505050565b600061188882610849565b90506118968160008461181d565b6118a1600083611165565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118f19190612ab4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006119af8473ffffffffffffffffffffffffffffffffffffffff16611ea0565b15611b18578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119d861115d565b8786866040518563ffffffff1660e01b81526004016119fa94939291906126b0565b602060405180830381600087803b158015611a1457600080fd5b505af1925050508015611a4557506040513d601f19601f82011682018060405250810190611a429190612281565b60015b611ac8573d8060008114611a75576040519150601f19603f3d011682016040523d82523d6000602084013e611a7a565b606091505b50600081511415611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790612739565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b1d565b600190505b949350505050565b60606000821415611b6d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ccd565b600082905060005b60008214611b9f578080611b8890612c01565b915050600a82611b989190612a83565b9150611b75565b60008167ffffffffffffffff811115611be1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c135781602001600182028036833780820191505090505b5090505b60008514611cc657600182611c2c9190612ab4565b9150600a85611c3b9190612c4a565b6030611c479190612a2d565b60f81b818381518110611c83577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611cbf9190612a83565b9450611c17565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990612879565b60405180910390fd5b611d4b816110f1565b15611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612779565b60405180910390fd5b611d976000838361181d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de79190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611ebf90612b9e565b6000825580601f10611ed15750611ef0565b601f016020900490600052602060002090810190611eef9190611f79565b5b50565b828054611eff90612b9e565b90600052602060002090601f016020900481019282611f215760008555611f68565b82601f10611f3a57805160ff1916838001178555611f68565b82800160010185558215611f68579182015b82811115611f67578251825591602001919060010190611f4c565b5b509050611f759190611f79565b5090565b5b80821115611f92576000816000905550600101611f7a565b5090565b6000611fa9611fa4846129b9565b612994565b905082815260208101848484011115611fc157600080fd5b611fcc848285612b5c565b509392505050565b600081359050611fe38161323e565b92915050565b600081359050611ff881613255565b92915050565b60008135905061200d8161326c565b92915050565b6000815190506120228161326c565b92915050565b600082601f83011261203957600080fd5b8135612049848260208601611f96565b91505092915050565b60008083601f84011261206457600080fd5b8235905067ffffffffffffffff81111561207d57600080fd5b60208301915083600182028301111561209557600080fd5b9250929050565b6000813590506120ab81613283565b92915050565b6000602082840312156120c357600080fd5b60006120d184828501611fd4565b91505092915050565b600080604083850312156120ed57600080fd5b60006120fb85828601611fd4565b925050602061210c85828601611fd4565b9150509250929050565b60008060006060848603121561212b57600080fd5b600061213986828701611fd4565b935050602061214a86828701611fd4565b925050604061215b8682870161209c565b9150509250925092565b6000806000806080858703121561217b57600080fd5b600061218987828801611fd4565b945050602061219a87828801611fd4565b93505060406121ab8782880161209c565b925050606085013567ffffffffffffffff8111156121c857600080fd5b6121d487828801612028565b91505092959194509250565b600080604083850312156121f357600080fd5b600061220185828601611fd4565b925050602061221285828601611fe9565b9150509250929050565b6000806040838503121561222f57600080fd5b600061223d85828601611fd4565b925050602061224e8582860161209c565b9150509250929050565b60006020828403121561226a57600080fd5b600061227884828501611ffe565b91505092915050565b60006020828403121561229357600080fd5b60006122a184828501612013565b91505092915050565b6000602082840312156122bc57600080fd5b60006122ca8482850161209c565b91505092915050565b6000806000604084860312156122e857600080fd5b60006122f68682870161209c565b935050602084013567ffffffffffffffff81111561231357600080fd5b61231f86828701612052565b92509250509250925092565b61233481612ae8565b82525050565b61234381612afa565b82525050565b6000612354826129ea565b61235e8185612a00565b935061236e818560208601612b6b565b61237781612d37565b840191505092915050565b600061238d826129f5565b6123978185612a11565b93506123a7818560208601612b6b565b6123b081612d37565b840191505092915050565b60006123c6826129f5565b6123d08185612a22565b93506123e0818560208601612b6b565b80840191505092915050565b60006123f9603283612a11565b915061240482612d48565b604082019050919050565b600061241c602683612a11565b915061242782612d97565b604082019050919050565b600061243f601c83612a11565b915061244a82612de6565b602082019050919050565b6000612462602483612a11565b915061246d82612e0f565b604082019050919050565b6000612485601983612a11565b915061249082612e5e565b602082019050919050565b60006124a8602c83612a11565b91506124b382612e87565b604082019050919050565b60006124cb603883612a11565b91506124d682612ed6565b604082019050919050565b60006124ee602a83612a11565b91506124f982612f25565b604082019050919050565b6000612511602983612a11565b915061251c82612f74565b604082019050919050565b6000612534602e83612a11565b915061253f82612fc3565b604082019050919050565b6000612557602083612a11565b915061256282613012565b602082019050919050565b600061257a603183612a11565b91506125858261303b565b604082019050919050565b600061259d602c83612a11565b91506125a88261308a565b604082019050919050565b60006125c0602083612a11565b91506125cb826130d9565b602082019050919050565b60006125e3602983612a11565b91506125ee82613102565b604082019050919050565b6000612606602f83612a11565b915061261182613151565b604082019050919050565b6000612629602183612a11565b9150612634826131a0565b604082019050919050565b600061264c603183612a11565b9150612657826131ef565b604082019050919050565b61266b81612b52565b82525050565b600061267d82856123bb565b915061268982846123bb565b91508190509392505050565b60006020820190506126aa600083018461232b565b92915050565b60006080820190506126c5600083018761232b565b6126d2602083018661232b565b6126df6040830185612662565b81810360608301526126f18184612349565b905095945050505050565b6000602082019050612711600083018461233a565b92915050565b600060208201905081810360008301526127318184612382565b905092915050565b60006020820190508181036000830152612752816123ec565b9050919050565b600060208201905081810360008301526127728161240f565b9050919050565b6000602082019050818103600083015261279281612432565b9050919050565b600060208201905081810360008301526127b281612455565b9050919050565b600060208201905081810360008301526127d281612478565b9050919050565b600060208201905081810360008301526127f28161249b565b9050919050565b60006020820190508181036000830152612812816124be565b9050919050565b60006020820190508181036000830152612832816124e1565b9050919050565b6000602082019050818103600083015261285281612504565b9050919050565b6000602082019050818103600083015261287281612527565b9050919050565b600060208201905081810360008301526128928161254a565b9050919050565b600060208201905081810360008301526128b28161256d565b9050919050565b600060208201905081810360008301526128d281612590565b9050919050565b600060208201905081810360008301526128f2816125b3565b9050919050565b60006020820190508181036000830152612912816125d6565b9050919050565b60006020820190508181036000830152612932816125f9565b9050919050565b600060208201905081810360008301526129528161261c565b9050919050565b600060208201905081810360008301526129728161263f565b9050919050565b600060208201905061298e6000830184612662565b92915050565b600061299e6129af565b90506129aa8282612bd0565b919050565b6000604051905090565b600067ffffffffffffffff8211156129d4576129d3612d08565b5b6129dd82612d37565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a3882612b52565b9150612a4383612b52565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a7857612a77612c7b565b5b828201905092915050565b6000612a8e82612b52565b9150612a9983612b52565b925082612aa957612aa8612caa565b5b828204905092915050565b6000612abf82612b52565b9150612aca83612b52565b925082821015612add57612adc612c7b565b5b828203905092915050565b6000612af382612b32565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612b89578082015181840152602081019050612b6e565b83811115612b98576000848401525b50505050565b60006002820490506001821680612bb657607f821691505b60208210811415612bca57612bc9612cd9565b5b50919050565b612bd982612d37565b810181811067ffffffffffffffff82111715612bf857612bf7612d08565b5b80604052505050565b6000612c0c82612b52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c3f57612c3e612c7b565b5b600182019050919050565b6000612c5582612b52565b9150612c6083612b52565b925082612c7057612c6f612caa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61324781612ae8565b811461325257600080fd5b50565b61325e81612afa565b811461326957600080fd5b50565b61327581612b06565b811461328057600080fd5b50565b61328c81612b52565b811461329757600080fd5b5056fea264697066735822122030e436dff1e17326ae12faa33e250905a1949311adb6680e630d91dcc7fee75a64736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a22cb46511610071578063a22cb465146102f2578063b88d4fde1461030e578063c87b56dd1461032a578063e985e9c51461035a578063f2fde38b1461038a57610121565b806370a0823114610260578063715018a614610290578063862440e21461029a5780638da5cb5b146102b657806395d89b41146102d457610121565b806323b872dd116100f457806323b872dd146101c057806340c10f19146101dc57806342842e0e146101f857806342966c68146102145780636352211e1461023057610121565b806301ffc9a71461012657806306fdde0314610156578063081812fc14610174578063095ea7b3146101a4575b600080fd5b610140600480360381019061013b9190612258565b6103a6565b60405161014d91906126fc565b60405180910390f35b61015e610488565b60405161016b9190612717565b60405180910390f35b61018e600480360381019061018991906122aa565b61051a565b60405161019b9190612695565b60405180910390f35b6101be60048036038101906101b9919061221c565b61059f565b005b6101da60048036038101906101d59190612116565b6106b7565b005b6101f660048036038101906101f1919061221c565b610717565b005b610212600480360381019061020d9190612116565b6107a1565b005b61022e600480360381019061022991906122aa565b6107c1565b005b61024a600480360381019061024591906122aa565b610849565b6040516102579190612695565b60405180910390f35b61027a600480360381019061027591906120b1565b6108fb565b6040516102879190612979565b60405180910390f35b6102986109b3565b005b6102b460048036038101906102af91906122d3565b610a3b565b005b6102be610b0a565b6040516102cb9190612695565b60405180910390f35b6102dc610b34565b6040516102e99190612717565b60405180910390f35b61030c600480360381019061030791906121e0565b610bc6565b005b61032860048036038101906103239190612165565b610d47565b005b610344600480360381019061033f91906122aa565b610da9565b6040516103519190612717565b60405180910390f35b610374600480360381019061036f91906120da565b610efb565b60405161038191906126fc565b60405180910390f35b6103a4600480360381019061039f91906120b1565b610f8f565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610481575061048082611087565b5b9050919050565b60606000805461049790612b9e565b80601f01602080910402602001604051908101604052809291908181526020018280546104c390612b9e565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b5050505050905090565b6000610525826110f1565b610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b906128b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105aa82610849565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061290612939565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661063a61115d565b73ffffffffffffffffffffffffffffffffffffffff16148061066957506106688161066361115d565b610efb565b5b6106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906127f9565b60405180910390fd5b6106b28383611165565b505050565b6106c86106c261115d565b8261121e565b610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe90612959565b60405180910390fd5b6107128383836112fc565b505050565b61071f61115d565b73ffffffffffffffffffffffffffffffffffffffff1661073d610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a906128d9565b60405180910390fd5b61079d8282611558565b5050565b6107bc83838360405180602001604052806000815250610d47565b505050565b6107c961115d565b73ffffffffffffffffffffffffffffffffffffffff166107e7610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906128d9565b60405180910390fd5b61084681611576565b50565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e990612839565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612819565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109bb61115d565b73ffffffffffffffffffffffffffffffffffffffff166109d9610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906128d9565b60405180910390fd5b610a3960006115c9565b565b610a4361115d565b73ffffffffffffffffffffffffffffffffffffffff16610a61610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906128d9565b60405180910390fd5b610b058383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061168f565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b4390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6f90612b9e565b8015610bbc5780601f10610b9157610100808354040283529160200191610bbc565b820191906000526020600020905b815481529060010190602001808311610b9f57829003601f168201915b5050505050905090565b610bce61115d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c33906127b9565b60405180910390fd5b8060056000610c4961115d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610cf661115d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d3b91906126fc565b60405180910390a35050565b610d58610d5261115d565b8361121e565b610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612959565b60405180910390fd5b610da384848484611703565b50505050565b6060610db4826110f1565b610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90612899565b60405180910390fd5b6000600660008481526020019081526020016000208054610e1390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90612b9e565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b505050505090506000610e9d61175f565b9050600081511415610eb3578192505050610ef6565b600082511115610ee8578082604051602001610ed0929190612671565b60405160208183030381529060405292505050610ef6565b610ef184611776565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f9761115d565b73ffffffffffffffffffffffffffffffffffffffff16610fb5610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906128d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612759565b60405180910390fd5b611084816115c9565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166111d883610849565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611229826110f1565b611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906127d9565b60405180910390fd5b600061127383610849565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806112e257508373ffffffffffffffffffffffffffffffffffffffff166112ca8461051a565b73ffffffffffffffffffffffffffffffffffffffff16145b806112f357506112f28185610efb565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661131c82610849565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611369906128f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990612799565b60405180910390fd5b6113ed83838361181d565b6113f8600082611165565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114489190612ab4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461149f9190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611572828260405180602001604052806000815250611822565b5050565b61157f8161187d565b600060066000838152602001908152602001600020805461159f90612b9e565b9050146115c6576006600082815260200190815260200160002060006115c59190611eb3565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611698826110f1565b6116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612859565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906116fe929190611ef3565b505050565b61170e8484846112fc565b61171a8484848461198e565b611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612739565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060611781826110f1565b6117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612919565b60405180910390fd5b60006117ca61175f565b905060008151116117ea5760405180602001604052806000815250611815565b806117f484611b25565b604051602001611805929190612671565b6040516020818303038152906040525b915050919050565b505050565b61182c8383611cd2565b611839600084848461198e565b611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90612739565b60405180910390fd5b505050565b600061188882610849565b90506118968160008461181d565b6118a1600083611165565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118f19190612ab4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006119af8473ffffffffffffffffffffffffffffffffffffffff16611ea0565b15611b18578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119d861115d565b8786866040518563ffffffff1660e01b81526004016119fa94939291906126b0565b602060405180830381600087803b158015611a1457600080fd5b505af1925050508015611a4557506040513d601f19601f82011682018060405250810190611a429190612281565b60015b611ac8573d8060008114611a75576040519150601f19603f3d011682016040523d82523d6000602084013e611a7a565b606091505b50600081511415611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790612739565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b1d565b600190505b949350505050565b60606000821415611b6d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ccd565b600082905060005b60008214611b9f578080611b8890612c01565b915050600a82611b989190612a83565b9150611b75565b60008167ffffffffffffffff811115611be1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c135781602001600182028036833780820191505090505b5090505b60008514611cc657600182611c2c9190612ab4565b9150600a85611c3b9190612c4a565b6030611c479190612a2d565b60f81b818381518110611c83577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611cbf9190612a83565b9450611c17565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990612879565b60405180910390fd5b611d4b816110f1565b15611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612779565b60405180910390fd5b611d976000838361181d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de79190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611ebf90612b9e565b6000825580601f10611ed15750611ef0565b601f016020900490600052602060002090810190611eef9190611f79565b5b50565b828054611eff90612b9e565b90600052602060002090601f016020900481019282611f215760008555611f68565b82601f10611f3a57805160ff1916838001178555611f68565b82800160010185558215611f68579182015b82811115611f67578251825591602001919060010190611f4c565b5b509050611f759190611f79565b5090565b5b80821115611f92576000816000905550600101611f7a565b5090565b6000611fa9611fa4846129b9565b612994565b905082815260208101848484011115611fc157600080fd5b611fcc848285612b5c565b509392505050565b600081359050611fe38161323e565b92915050565b600081359050611ff881613255565b92915050565b60008135905061200d8161326c565b92915050565b6000815190506120228161326c565b92915050565b600082601f83011261203957600080fd5b8135612049848260208601611f96565b91505092915050565b60008083601f84011261206457600080fd5b8235905067ffffffffffffffff81111561207d57600080fd5b60208301915083600182028301111561209557600080fd5b9250929050565b6000813590506120ab81613283565b92915050565b6000602082840312156120c357600080fd5b60006120d184828501611fd4565b91505092915050565b600080604083850312156120ed57600080fd5b60006120fb85828601611fd4565b925050602061210c85828601611fd4565b9150509250929050565b60008060006060848603121561212b57600080fd5b600061213986828701611fd4565b935050602061214a86828701611fd4565b925050604061215b8682870161209c565b9150509250925092565b6000806000806080858703121561217b57600080fd5b600061218987828801611fd4565b945050602061219a87828801611fd4565b93505060406121ab8782880161209c565b925050606085013567ffffffffffffffff8111156121c857600080fd5b6121d487828801612028565b91505092959194509250565b600080604083850312156121f357600080fd5b600061220185828601611fd4565b925050602061221285828601611fe9565b9150509250929050565b6000806040838503121561222f57600080fd5b600061223d85828601611fd4565b925050602061224e8582860161209c565b9150509250929050565b60006020828403121561226a57600080fd5b600061227884828501611ffe565b91505092915050565b60006020828403121561229357600080fd5b60006122a184828501612013565b91505092915050565b6000602082840312156122bc57600080fd5b60006122ca8482850161209c565b91505092915050565b6000806000604084860312156122e857600080fd5b60006122f68682870161209c565b935050602084013567ffffffffffffffff81111561231357600080fd5b61231f86828701612052565b92509250509250925092565b61233481612ae8565b82525050565b61234381612afa565b82525050565b6000612354826129ea565b61235e8185612a00565b935061236e818560208601612b6b565b61237781612d37565b840191505092915050565b600061238d826129f5565b6123978185612a11565b93506123a7818560208601612b6b565b6123b081612d37565b840191505092915050565b60006123c6826129f5565b6123d08185612a22565b93506123e0818560208601612b6b565b80840191505092915050565b60006123f9603283612a11565b915061240482612d48565b604082019050919050565b600061241c602683612a11565b915061242782612d97565b604082019050919050565b600061243f601c83612a11565b915061244a82612de6565b602082019050919050565b6000612462602483612a11565b915061246d82612e0f565b604082019050919050565b6000612485601983612a11565b915061249082612e5e565b602082019050919050565b60006124a8602c83612a11565b91506124b382612e87565b604082019050919050565b60006124cb603883612a11565b91506124d682612ed6565b604082019050919050565b60006124ee602a83612a11565b91506124f982612f25565b604082019050919050565b6000612511602983612a11565b915061251c82612f74565b604082019050919050565b6000612534602e83612a11565b915061253f82612fc3565b604082019050919050565b6000612557602083612a11565b915061256282613012565b602082019050919050565b600061257a603183612a11565b91506125858261303b565b604082019050919050565b600061259d602c83612a11565b91506125a88261308a565b604082019050919050565b60006125c0602083612a11565b91506125cb826130d9565b602082019050919050565b60006125e3602983612a11565b91506125ee82613102565b604082019050919050565b6000612606602f83612a11565b915061261182613151565b604082019050919050565b6000612629602183612a11565b9150612634826131a0565b604082019050919050565b600061264c603183612a11565b9150612657826131ef565b604082019050919050565b61266b81612b52565b82525050565b600061267d82856123bb565b915061268982846123bb565b91508190509392505050565b60006020820190506126aa600083018461232b565b92915050565b60006080820190506126c5600083018761232b565b6126d2602083018661232b565b6126df6040830185612662565b81810360608301526126f18184612349565b905095945050505050565b6000602082019050612711600083018461233a565b92915050565b600060208201905081810360008301526127318184612382565b905092915050565b60006020820190508181036000830152612752816123ec565b9050919050565b600060208201905081810360008301526127728161240f565b9050919050565b6000602082019050818103600083015261279281612432565b9050919050565b600060208201905081810360008301526127b281612455565b9050919050565b600060208201905081810360008301526127d281612478565b9050919050565b600060208201905081810360008301526127f28161249b565b9050919050565b60006020820190508181036000830152612812816124be565b9050919050565b60006020820190508181036000830152612832816124e1565b9050919050565b6000602082019050818103600083015261285281612504565b9050919050565b6000602082019050818103600083015261287281612527565b9050919050565b600060208201905081810360008301526128928161254a565b9050919050565b600060208201905081810360008301526128b28161256d565b9050919050565b600060208201905081810360008301526128d281612590565b9050919050565b600060208201905081810360008301526128f2816125b3565b9050919050565b60006020820190508181036000830152612912816125d6565b9050919050565b60006020820190508181036000830152612932816125f9565b9050919050565b600060208201905081810360008301526129528161261c565b9050919050565b600060208201905081810360008301526129728161263f565b9050919050565b600060208201905061298e6000830184612662565b92915050565b600061299e6129af565b90506129aa8282612bd0565b919050565b6000604051905090565b600067ffffffffffffffff8211156129d4576129d3612d08565b5b6129dd82612d37565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a3882612b52565b9150612a4383612b52565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a7857612a77612c7b565b5b828201905092915050565b6000612a8e82612b52565b9150612a9983612b52565b925082612aa957612aa8612caa565b5b828204905092915050565b6000612abf82612b52565b9150612aca83612b52565b925082821015612add57612adc612c7b565b5b828203905092915050565b6000612af382612b32565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612b89578082015181840152602081019050612b6e565b83811115612b98576000848401525b50505050565b60006002820490506001821680612bb657607f821691505b60208210811415612bca57612bc9612cd9565b5b50919050565b612bd982612d37565b810181811067ffffffffffffffff82111715612bf857612bf7612d08565b5b80604052505050565b6000612c0c82612b52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c3f57612c3e612c7b565b5b600182019050919050565b6000612c5582612b52565b9150612c6083612b52565b925082612c7057612c6f612caa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61324781612ae8565b811461325257600080fd5b50565b61325e81612afa565b811461326957600080fd5b50565b61327581612b06565b811461328057600080fd5b50565b61328c81612b52565b811461329757600080fd5b5056fea264697066735822122030e436dff1e17326ae12faa33e250905a1949311adb6680e630d91dcc7fee75a64736f6c63430008040033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/dist/fakeERC1155.json b/dist/fakeERC1155.json deleted file mode 100644 index c0f474782..000000000 --- a/dist/fakeERC1155.json +++ /dev/null @@ -1,437 +0,0 @@ -{ - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "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": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "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": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "uri_", - "type": "string" - } - ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/dist/fakeERC721.json b/dist/fakeERC721.json deleted file mode 100644 index dbc2983f3..000000000 --- a/dist/fakeERC721.json +++ /dev/null @@ -1,385 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "UserNftMinter", - "sourceName": "contracts/UserNftMinter.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "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" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "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" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "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" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "uri", - "type": "string" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "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" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "tokenId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405260006007553480156200001657600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d54000000000000000000000000000000000000000000000000000000000081525081600090805190602001906200009b929190620000bd565b508060019080519060200190620000b4929190620000bd565b505050620001d2565b828054620000cb906200016d565b90600052602060002090601f016020900481019282620000ef57600085556200013b565b82601f106200010a57805160ff19168380011785556200013b565b828001600101855582156200013b579182015b828111156200013a5782518255916020019190600101906200011d565b5b5090506200014a91906200014e565b5090565b5b80821115620001695760008160009055506001016200014f565b5090565b600060028204905060018216806200018657607f821691505b602082108114156200019d576200019c620001a3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612ea580620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde146102ab578063c87b56dd146102c7578063d85d3d27146102f7578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806395d89b4114610271578063a22cb4651461028f57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611eac565b610343565b60405161012c919061231a565b60405180910390f35b61013d610425565b60405161014a9190612335565b60405180910390f35b61016d60048036038101906101689190611f43565b6104b7565b60405161017a91906122b3565b60405180910390f35b61019d60048036038101906101989190611e70565b61053c565b005b6101a7610654565b6040516101b49190612577565b60405180910390f35b6101d760048036038101906101d29190611d6a565b61065a565b005b6101f360048036038101906101ee9190611d6a565b6106ba565b005b61020f600480360381019061020a9190611f43565b6106da565b005b61022b60048036038101906102269190611f43565b610762565b60405161023891906122b3565b60405180910390f35b61025b60048036038101906102569190611d05565b610814565b6040516102689190612577565b60405180910390f35b6102796108cc565b6040516102869190612335565b60405180910390f35b6102a960048036038101906102a49190611e34565b61095e565b005b6102c560048036038101906102c09190611db9565b610adf565b005b6102e160048036038101906102dc9190611f43565b610b41565b6040516102ee9190612335565b60405180910390f35b610311600480360381019061030c9190611efe565b610c93565b005b61032d60048036038101906103289190611d2e565b610d0d565b60405161033a919061231a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610da1565b5b9050919050565b6060600080546104349061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546104609061279c565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e0b565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124b7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612517565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e77565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e77565b610d0d565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c906123f7565b60405180910390fd5b61064f8383610e7f565b505050565b60075481565b61066b610665610e77565b82610f38565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612537565b60405180910390fd5b6106b5838383611016565b505050565b6106d583838360405180602001604052806000815250610adf565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612557565b60405180910390fd5b61075e82611272565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612437565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612417565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546108db9061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546109079061279c565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050905090565b610966610e77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906123b7565b60405180910390fd5b80600560006109e1610e77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061231a565b60405180910390a35050565b610af0610aea610e77565b83610f38565b610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612537565b60405180910390fd5b610b3b848484846112c5565b50505050565b6060610b4c82610e0b565b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612497565b60405180910390fd5b6000600660008481526020019081526020016000208054610bab9061279c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd79061279c565b8015610c245780601f10610bf957610100808354040283529160200191610c24565b820191906000526020600020905b815481529060010190602001808311610c0757829003601f168201915b505050505090506000610c35611321565b9050600081511415610c4b578192505050610c8e565b600082511115610c80578082604051602001610c6892919061228f565b60405160208183030381529060405292505050610c8e565b610c8984611338565b925050505b919050565b610c9f336007546113df565b610cef60075483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506113fd565b600160076000828254610d02919061262b565b925050819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610ef283610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4382610e0b565b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906123d7565b60405180910390fd5b6000610f8d83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ffc57508373ffffffffffffffffffffffffffffffffffffffff16610fe4846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100d575061100c8185610d0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103682610762565b73ffffffffffffffffffffffffffffffffffffffff161461108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612397565b60405180910390fd5b611107838383611471565b611112600082610e7f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461116291906126b2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b9919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127b81611476565b600060066000838152602001908152602001600020805461129b9061279c565b9050146112c2576006600082815260200190815260200160002060006112c19190611b07565b5b50565b6112d0848484611016565b6112dc84848484611587565b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612357565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061134382610e0b565b611382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611379906124f7565b60405180910390fd5b600061138c611321565b905060008151116113ac57604051806020016040528060008152506113d7565b806113b68461171e565b6040516020016113c792919061228f565b6040516020818303038152906040525b915050919050565b6113f98282604051806020016040528060008152506118cb565b5050565b61140682610e0b565b611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612457565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061146c929190611b47565b505050565b505050565b600061148182610762565b905061148f81600084611471565b61149a600083610e7f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114ea91906126b2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006115a88473ffffffffffffffffffffffffffffffffffffffff16611926565b15611711578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026115d1610e77565b8786866040518563ffffffff1660e01b81526004016115f394939291906122ce565b602060405180830381600087803b15801561160d57600080fd5b505af192505050801561163e57506040513d601f19601f8201168201806040525081019061163b9190611ed5565b60015b6116c1573d806000811461166e576040519150601f19603f3d011682016040523d82523d6000602084013e611673565b606091505b506000815114156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612357565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611716565b600190505b949350505050565b60606000821415611766576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506118c6565b600082905060005b60008214611798578080611781906127ff565b915050600a826117919190612681565b915061176e565b60008167ffffffffffffffff8111156117da577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561180c5781602001600182028036833780820191505090505b5090505b600085146118bf5760018261182591906126b2565b9150600a856118349190612848565b6030611840919061262b565b60f81b81838151811061187c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856118b89190612681565b9450611810565b8093505050505b919050565b6118d58383611939565b6118e26000848484611587565b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612357565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612477565b60405180910390fd5b6119b281610e0b565b156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990612377565b60405180910390fd5b6119fe60008383611471565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a4e919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b508054611b139061279c565b6000825580601f10611b255750611b44565b601f016020900490600052602060002090810190611b439190611bcd565b5b50565b828054611b539061279c565b90600052602060002090601f016020900481019282611b755760008555611bbc565b82601f10611b8e57805160ff1916838001178555611bbc565b82800160010185558215611bbc579182015b82811115611bbb578251825591602001919060010190611ba0565b5b509050611bc99190611bcd565b5090565b5b80821115611be6576000816000905550600101611bce565b5090565b6000611bfd611bf8846125b7565b612592565b905082815260208101848484011115611c1557600080fd5b611c2084828561275a565b509392505050565b600081359050611c3781612e13565b92915050565b600081359050611c4c81612e2a565b92915050565b600081359050611c6181612e41565b92915050565b600081519050611c7681612e41565b92915050565b600082601f830112611c8d57600080fd5b8135611c9d848260208601611bea565b91505092915050565b60008083601f840112611cb857600080fd5b8235905067ffffffffffffffff811115611cd157600080fd5b602083019150836001820283011115611ce957600080fd5b9250929050565b600081359050611cff81612e58565b92915050565b600060208284031215611d1757600080fd5b6000611d2584828501611c28565b91505092915050565b60008060408385031215611d4157600080fd5b6000611d4f85828601611c28565b9250506020611d6085828601611c28565b9150509250929050565b600080600060608486031215611d7f57600080fd5b6000611d8d86828701611c28565b9350506020611d9e86828701611c28565b9250506040611daf86828701611cf0565b9150509250925092565b60008060008060808587031215611dcf57600080fd5b6000611ddd87828801611c28565b9450506020611dee87828801611c28565b9350506040611dff87828801611cf0565b925050606085013567ffffffffffffffff811115611e1c57600080fd5b611e2887828801611c7c565b91505092959194509250565b60008060408385031215611e4757600080fd5b6000611e5585828601611c28565b9250506020611e6685828601611c3d565b9150509250929050565b60008060408385031215611e8357600080fd5b6000611e9185828601611c28565b9250506020611ea285828601611cf0565b9150509250929050565b600060208284031215611ebe57600080fd5b6000611ecc84828501611c52565b91505092915050565b600060208284031215611ee757600080fd5b6000611ef584828501611c67565b91505092915050565b60008060208385031215611f1157600080fd5b600083013567ffffffffffffffff811115611f2b57600080fd5b611f3785828601611ca6565b92509250509250929050565b600060208284031215611f5557600080fd5b6000611f6384828501611cf0565b91505092915050565b611f75816126e6565b82525050565b611f84816126f8565b82525050565b6000611f95826125e8565b611f9f81856125fe565b9350611faf818560208601612769565b611fb881612935565b840191505092915050565b6000611fce826125f3565b611fd8818561260f565b9350611fe8818560208601612769565b611ff181612935565b840191505092915050565b6000612007826125f3565b6120118185612620565b9350612021818560208601612769565b80840191505092915050565b600061203a60328361260f565b915061204582612946565b604082019050919050565b600061205d601c8361260f565b915061206882612995565b602082019050919050565b600061208060248361260f565b915061208b826129be565b604082019050919050565b60006120a360198361260f565b91506120ae82612a0d565b602082019050919050565b60006120c6602c8361260f565b91506120d182612a36565b604082019050919050565b60006120e960388361260f565b91506120f482612a85565b604082019050919050565b600061210c602a8361260f565b915061211782612ad4565b604082019050919050565b600061212f60298361260f565b915061213a82612b23565b604082019050919050565b6000612152602e8361260f565b915061215d82612b72565b604082019050919050565b600061217560208361260f565b915061218082612bc1565b602082019050919050565b600061219860318361260f565b91506121a382612bea565b604082019050919050565b60006121bb602c8361260f565b91506121c682612c39565b604082019050919050565b60006121de60298361260f565b91506121e982612c88565b604082019050919050565b6000612201602f8361260f565b915061220c82612cd7565b604082019050919050565b600061222460218361260f565b915061222f82612d26565b604082019050919050565b600061224760318361260f565b915061225282612d75565b604082019050919050565b600061226a60238361260f565b915061227582612dc4565b604082019050919050565b61228981612750565b82525050565b600061229b8285611ffc565b91506122a78284611ffc565b91508190509392505050565b60006020820190506122c86000830184611f6c565b92915050565b60006080820190506122e36000830187611f6c565b6122f06020830186611f6c565b6122fd6040830185612280565b818103606083015261230f8184611f8a565b905095945050505050565b600060208201905061232f6000830184611f7b565b92915050565b6000602082019050818103600083015261234f8184611fc3565b905092915050565b600060208201905081810360008301526123708161202d565b9050919050565b6000602082019050818103600083015261239081612050565b9050919050565b600060208201905081810360008301526123b081612073565b9050919050565b600060208201905081810360008301526123d081612096565b9050919050565b600060208201905081810360008301526123f0816120b9565b9050919050565b60006020820190508181036000830152612410816120dc565b9050919050565b60006020820190508181036000830152612430816120ff565b9050919050565b6000602082019050818103600083015261245081612122565b9050919050565b6000602082019050818103600083015261247081612145565b9050919050565b6000602082019050818103600083015261249081612168565b9050919050565b600060208201905081810360008301526124b08161218b565b9050919050565b600060208201905081810360008301526124d0816121ae565b9050919050565b600060208201905081810360008301526124f0816121d1565b9050919050565b60006020820190508181036000830152612510816121f4565b9050919050565b6000602082019050818103600083015261253081612217565b9050919050565b600060208201905081810360008301526125508161223a565b9050919050565b600060208201905081810360008301526125708161225d565b9050919050565b600060208201905061258c6000830184612280565b92915050565b600061259c6125ad565b90506125a882826127ce565b919050565b6000604051905090565b600067ffffffffffffffff8211156125d2576125d1612906565b5b6125db82612935565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061263682612750565b915061264183612750565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561267657612675612879565b5b828201905092915050565b600061268c82612750565b915061269783612750565b9250826126a7576126a66128a8565b5b828204905092915050565b60006126bd82612750565b91506126c883612750565b9250828210156126db576126da612879565b5b828203905092915050565b60006126f182612730565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561278757808201518184015260208101905061276c565b83811115612796576000848401525b50505050565b600060028204905060018216806127b457607f821691505b602082108114156127c8576127c76128d7565b5b50919050565b6127d782612935565b810181811067ffffffffffffffff821117156127f6576127f5612906565b5b80604052505050565b600061280a82612750565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283d5761283c612879565b5b600182019050919050565b600061285382612750565b915061285e83612750565b92508261286e5761286d6128a8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e1c816126e6565b8114612e2757600080fd5b50565b612e33816126f8565b8114612e3e57600080fd5b50565b612e4a81612704565b8114612e5557600080fd5b50565b612e6181612750565b8114612e6c57600080fd5b5056fea2646970667358221220450c170b147f23ef2e7d9ba5dd576873827cdc58eb81e48dc3e22d0d7ebc1f2664736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde146102ab578063c87b56dd146102c7578063d85d3d27146102f7578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806395d89b4114610271578063a22cb4651461028f57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611eac565b610343565b60405161012c919061231a565b60405180910390f35b61013d610425565b60405161014a9190612335565b60405180910390f35b61016d60048036038101906101689190611f43565b6104b7565b60405161017a91906122b3565b60405180910390f35b61019d60048036038101906101989190611e70565b61053c565b005b6101a7610654565b6040516101b49190612577565b60405180910390f35b6101d760048036038101906101d29190611d6a565b61065a565b005b6101f360048036038101906101ee9190611d6a565b6106ba565b005b61020f600480360381019061020a9190611f43565b6106da565b005b61022b60048036038101906102269190611f43565b610762565b60405161023891906122b3565b60405180910390f35b61025b60048036038101906102569190611d05565b610814565b6040516102689190612577565b60405180910390f35b6102796108cc565b6040516102869190612335565b60405180910390f35b6102a960048036038101906102a49190611e34565b61095e565b005b6102c560048036038101906102c09190611db9565b610adf565b005b6102e160048036038101906102dc9190611f43565b610b41565b6040516102ee9190612335565b60405180910390f35b610311600480360381019061030c9190611efe565b610c93565b005b61032d60048036038101906103289190611d2e565b610d0d565b60405161033a919061231a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610da1565b5b9050919050565b6060600080546104349061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546104609061279c565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e0b565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124b7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612517565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e77565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e77565b610d0d565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c906123f7565b60405180910390fd5b61064f8383610e7f565b505050565b60075481565b61066b610665610e77565b82610f38565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612537565b60405180910390fd5b6106b5838383611016565b505050565b6106d583838360405180602001604052806000815250610adf565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612557565b60405180910390fd5b61075e82611272565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612437565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612417565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546108db9061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546109079061279c565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050905090565b610966610e77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906123b7565b60405180910390fd5b80600560006109e1610e77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061231a565b60405180910390a35050565b610af0610aea610e77565b83610f38565b610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612537565b60405180910390fd5b610b3b848484846112c5565b50505050565b6060610b4c82610e0b565b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612497565b60405180910390fd5b6000600660008481526020019081526020016000208054610bab9061279c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd79061279c565b8015610c245780601f10610bf957610100808354040283529160200191610c24565b820191906000526020600020905b815481529060010190602001808311610c0757829003601f168201915b505050505090506000610c35611321565b9050600081511415610c4b578192505050610c8e565b600082511115610c80578082604051602001610c6892919061228f565b60405160208183030381529060405292505050610c8e565b610c8984611338565b925050505b919050565b610c9f336007546113df565b610cef60075483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506113fd565b600160076000828254610d02919061262b565b925050819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610ef283610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4382610e0b565b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906123d7565b60405180910390fd5b6000610f8d83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ffc57508373ffffffffffffffffffffffffffffffffffffffff16610fe4846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100d575061100c8185610d0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103682610762565b73ffffffffffffffffffffffffffffffffffffffff161461108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612397565b60405180910390fd5b611107838383611471565b611112600082610e7f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461116291906126b2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b9919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127b81611476565b600060066000838152602001908152602001600020805461129b9061279c565b9050146112c2576006600082815260200190815260200160002060006112c19190611b07565b5b50565b6112d0848484611016565b6112dc84848484611587565b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612357565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061134382610e0b565b611382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611379906124f7565b60405180910390fd5b600061138c611321565b905060008151116113ac57604051806020016040528060008152506113d7565b806113b68461171e565b6040516020016113c792919061228f565b6040516020818303038152906040525b915050919050565b6113f98282604051806020016040528060008152506118cb565b5050565b61140682610e0b565b611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612457565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061146c929190611b47565b505050565b505050565b600061148182610762565b905061148f81600084611471565b61149a600083610e7f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114ea91906126b2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006115a88473ffffffffffffffffffffffffffffffffffffffff16611926565b15611711578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026115d1610e77565b8786866040518563ffffffff1660e01b81526004016115f394939291906122ce565b602060405180830381600087803b15801561160d57600080fd5b505af192505050801561163e57506040513d601f19601f8201168201806040525081019061163b9190611ed5565b60015b6116c1573d806000811461166e576040519150601f19603f3d011682016040523d82523d6000602084013e611673565b606091505b506000815114156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612357565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611716565b600190505b949350505050565b60606000821415611766576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506118c6565b600082905060005b60008214611798578080611781906127ff565b915050600a826117919190612681565b915061176e565b60008167ffffffffffffffff8111156117da577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561180c5781602001600182028036833780820191505090505b5090505b600085146118bf5760018261182591906126b2565b9150600a856118349190612848565b6030611840919061262b565b60f81b81838151811061187c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856118b89190612681565b9450611810565b8093505050505b919050565b6118d58383611939565b6118e26000848484611587565b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612357565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612477565b60405180910390fd5b6119b281610e0b565b156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990612377565b60405180910390fd5b6119fe60008383611471565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a4e919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b508054611b139061279c565b6000825580601f10611b255750611b44565b601f016020900490600052602060002090810190611b439190611bcd565b5b50565b828054611b539061279c565b90600052602060002090601f016020900481019282611b755760008555611bbc565b82601f10611b8e57805160ff1916838001178555611bbc565b82800160010185558215611bbc579182015b82811115611bbb578251825591602001919060010190611ba0565b5b509050611bc99190611bcd565b5090565b5b80821115611be6576000816000905550600101611bce565b5090565b6000611bfd611bf8846125b7565b612592565b905082815260208101848484011115611c1557600080fd5b611c2084828561275a565b509392505050565b600081359050611c3781612e13565b92915050565b600081359050611c4c81612e2a565b92915050565b600081359050611c6181612e41565b92915050565b600081519050611c7681612e41565b92915050565b600082601f830112611c8d57600080fd5b8135611c9d848260208601611bea565b91505092915050565b60008083601f840112611cb857600080fd5b8235905067ffffffffffffffff811115611cd157600080fd5b602083019150836001820283011115611ce957600080fd5b9250929050565b600081359050611cff81612e58565b92915050565b600060208284031215611d1757600080fd5b6000611d2584828501611c28565b91505092915050565b60008060408385031215611d4157600080fd5b6000611d4f85828601611c28565b9250506020611d6085828601611c28565b9150509250929050565b600080600060608486031215611d7f57600080fd5b6000611d8d86828701611c28565b9350506020611d9e86828701611c28565b9250506040611daf86828701611cf0565b9150509250925092565b60008060008060808587031215611dcf57600080fd5b6000611ddd87828801611c28565b9450506020611dee87828801611c28565b9350506040611dff87828801611cf0565b925050606085013567ffffffffffffffff811115611e1c57600080fd5b611e2887828801611c7c565b91505092959194509250565b60008060408385031215611e4757600080fd5b6000611e5585828601611c28565b9250506020611e6685828601611c3d565b9150509250929050565b60008060408385031215611e8357600080fd5b6000611e9185828601611c28565b9250506020611ea285828601611cf0565b9150509250929050565b600060208284031215611ebe57600080fd5b6000611ecc84828501611c52565b91505092915050565b600060208284031215611ee757600080fd5b6000611ef584828501611c67565b91505092915050565b60008060208385031215611f1157600080fd5b600083013567ffffffffffffffff811115611f2b57600080fd5b611f3785828601611ca6565b92509250509250929050565b600060208284031215611f5557600080fd5b6000611f6384828501611cf0565b91505092915050565b611f75816126e6565b82525050565b611f84816126f8565b82525050565b6000611f95826125e8565b611f9f81856125fe565b9350611faf818560208601612769565b611fb881612935565b840191505092915050565b6000611fce826125f3565b611fd8818561260f565b9350611fe8818560208601612769565b611ff181612935565b840191505092915050565b6000612007826125f3565b6120118185612620565b9350612021818560208601612769565b80840191505092915050565b600061203a60328361260f565b915061204582612946565b604082019050919050565b600061205d601c8361260f565b915061206882612995565b602082019050919050565b600061208060248361260f565b915061208b826129be565b604082019050919050565b60006120a360198361260f565b91506120ae82612a0d565b602082019050919050565b60006120c6602c8361260f565b91506120d182612a36565b604082019050919050565b60006120e960388361260f565b91506120f482612a85565b604082019050919050565b600061210c602a8361260f565b915061211782612ad4565b604082019050919050565b600061212f60298361260f565b915061213a82612b23565b604082019050919050565b6000612152602e8361260f565b915061215d82612b72565b604082019050919050565b600061217560208361260f565b915061218082612bc1565b602082019050919050565b600061219860318361260f565b91506121a382612bea565b604082019050919050565b60006121bb602c8361260f565b91506121c682612c39565b604082019050919050565b60006121de60298361260f565b91506121e982612c88565b604082019050919050565b6000612201602f8361260f565b915061220c82612cd7565b604082019050919050565b600061222460218361260f565b915061222f82612d26565b604082019050919050565b600061224760318361260f565b915061225282612d75565b604082019050919050565b600061226a60238361260f565b915061227582612dc4565b604082019050919050565b61228981612750565b82525050565b600061229b8285611ffc565b91506122a78284611ffc565b91508190509392505050565b60006020820190506122c86000830184611f6c565b92915050565b60006080820190506122e36000830187611f6c565b6122f06020830186611f6c565b6122fd6040830185612280565b818103606083015261230f8184611f8a565b905095945050505050565b600060208201905061232f6000830184611f7b565b92915050565b6000602082019050818103600083015261234f8184611fc3565b905092915050565b600060208201905081810360008301526123708161202d565b9050919050565b6000602082019050818103600083015261239081612050565b9050919050565b600060208201905081810360008301526123b081612073565b9050919050565b600060208201905081810360008301526123d081612096565b9050919050565b600060208201905081810360008301526123f0816120b9565b9050919050565b60006020820190508181036000830152612410816120dc565b9050919050565b60006020820190508181036000830152612430816120ff565b9050919050565b6000602082019050818103600083015261245081612122565b9050919050565b6000602082019050818103600083015261247081612145565b9050919050565b6000602082019050818103600083015261249081612168565b9050919050565b600060208201905081810360008301526124b08161218b565b9050919050565b600060208201905081810360008301526124d0816121ae565b9050919050565b600060208201905081810360008301526124f0816121d1565b9050919050565b60006020820190508181036000830152612510816121f4565b9050919050565b6000602082019050818103600083015261253081612217565b9050919050565b600060208201905081810360008301526125508161223a565b9050919050565b600060208201905081810360008301526125708161225d565b9050919050565b600060208201905061258c6000830184612280565b92915050565b600061259c6125ad565b90506125a882826127ce565b919050565b6000604051905090565b600067ffffffffffffffff8211156125d2576125d1612906565b5b6125db82612935565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061263682612750565b915061264183612750565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561267657612675612879565b5b828201905092915050565b600061268c82612750565b915061269783612750565b9250826126a7576126a66128a8565b5b828204905092915050565b60006126bd82612750565b91506126c883612750565b9250828210156126db576126da612879565b5b828203905092915050565b60006126f182612730565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561278757808201518184015260208101905061276c565b83811115612796576000848401525b50505050565b600060028204905060018216806127b457607f821691505b602082108114156127c8576127c76128d7565b5b50919050565b6127d782612935565b810181811067ffffffffffffffff821117156127f6576127f5612906565b5b80604052505050565b600061280a82612750565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283d5761283c612879565b5b600182019050919050565b600061285382612750565b915061285e83612750565b92508261286e5761286d6128a8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e1c816126e6565b8114612e2757600080fd5b50565b612e33816126f8565b8114612e3e57600080fd5b50565b612e4a81612704565b8114612e5557600080fd5b50565b612e6181612750565b8114612e6c57600080fd5b5056fea2646970667358221220450c170b147f23ef2e7d9ba5dd576873827cdc58eb81e48dc3e22d0d7ebc1f2664736f6c63430008040033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/dist/helpers/chain.d.ts b/dist/helpers/chain.d.ts deleted file mode 100644 index 0bc8544ff..000000000 --- a/dist/helpers/chain.d.ts +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Transfer Liquidity to a foregin chain, freezing the original liquidity - * - * @param sender Account which owns the liquidity on the native chain, able to sign transactions - * @param chain_nonce Nonce of the target chain - * @param to Address of the receiver on the foreign chain - * @param value Amount of liquidity to send - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface TransferForeign { - transferNativeToForeign(sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance, txFees: Balance): Promise<[Tx, EventIdent]>; -} -/** - * Unfreeze native liquidity existing on a foreign chain(Send back Liquidity) - * - * @param sender Account which owns the wrapped liquidity on this chain, able to sign transactions - * @param chain_nonce Nonce of the original chain - * @param to Address of the receiver on the original chain - * @param value Amount of liquidity to unfreeze - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface UnfreezeForeign { - unfreezeWrapped(sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance, txFees: Balance): Promise<[Tx, EventIdent]>; -} -/** - * Transfer NFT to a foreign chain, freezing the original one - * - * @param sender Account which owns the NFT on the native chain, able to sign transactions - * @param chain_nonce Nonce of the target chain - * @param to Address of the receiver on the foreign chain - * @param id Information required to freeze this nft - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface TransferNftForeign { - transferNftToForeign(sender: Signer, chain_nonce: number, to: ForeignAddr, id: NftIdent, txFees: Balance): Promise<[Tx, EventIdent]>; -} -/** - * Unfreeze native NFT existing on a foreign chain(Send back NFT) - * chain_nonce is automatically derived - * - * @param sender Account which owns the wrapped NFT on this chain, able to sign transactions - * @param to Address of the receiver on the original chain - * @param id Information required to unfreeze this nft - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface UnfreezeForeignNft { - unfreezeWrappedNft(sender: Signer, to: ForeignAddr, id: NftIdent, txFees: Balance): Promise<[Tx, EventIdent]>; -} -/** - * Get the balance of an address on the chain - */ -export interface BalanceCheck { - balance(address: Addr): Promise; -} -/** - * Get the balance of a foreign token for an account in this chain - * - * @param address Address of the user - * @param chain_nonce nonce of the foreign chain - */ -export interface WrappedBalanceCheck { - balanceWrapped(address: Addr, chain_nonce: number): Promise; -} -/** - * Get the balance of multiple foreign tokens for an account in this chain - * - * @param chain_nonces list of foreign tokens to fetch - * @returns Mapping of chain_nonce to balance - */ -export interface BatchWrappedBalanceCheck { - balanceWrappedBatch(address: Addr, chain_nonces: number[]): Promise>; -} -/** - * Create a new NFT on this chain - * - * @param options Arguments required to mint the nft - */ -export interface MintNft { - mintNft(owner: Signer, options: Args): Promise; -} -/** - * Get the list of NFTs for a given account - */ -export interface ListNft { - listNft(owner: Addr): Promise>; -} -/** - * Get the original data of a locked NFT (uri, name, etc) - */ -export interface GetLockedNft { - getLockedNft(ident: Ident): Promise; -} -export declare type WrappedNft = { - chain_nonce: number; - data: Uint8Array; -}; -export interface DecodeWrappedNft { - decodeWrappedNft(raw_data: Data): WrappedNft; -} -export interface DecodeRawNft { - decodeUrlFromRaw(data: Uint8Array): Promise; -} -export interface EstimateTxFees { - estimateValidateTransferNft(validators: Address[], to: Address, nft: NftId): Promise; - estimateValidateUnfreezeNft(validators: Address[], to: Address, nft: WrappedNftData): Promise; -} -export declare function ConcurrentSendError(): Error; diff --git a/dist/helpers/chain.js b/dist/helpers/chain.js deleted file mode 100644 index e738f1d47..000000000 --- a/dist/helpers/chain.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ConcurrentSendError = void 0; -function ConcurrentSendError() { - return new Error("concurrent_send"); -} -exports.ConcurrentSendError = ConcurrentSendError; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0S0EsU0FBZ0IsbUJBQW1CO0lBQ2pDLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsa0RBRUMifQ== \ No newline at end of file diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts deleted file mode 100644 index b12d2ec43..000000000 --- a/dist/helpers/elrond.d.ts +++ /dev/null @@ -1,115 +0,0 @@ -/** - * Elrond Implementation for cross chain traits - * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp - * Note that Unsigned Transactions need to be manually handled after they have been added to the block - * @module - */ -import { Address, ISigner, Transaction } from "@elrondnetwork/erdjs"; -import BigNumber from "bignumber.js"; -import { BalanceCheck, BatchWrappedBalanceCheck, DecodeRawNft, DecodeWrappedNft, GetLockedNft, ListNft, MintNft, TransferForeign, TransferNftForeign, UnfreezeForeign, UnfreezeForeignNft } from "./chain"; -declare type EasyBalance = string | number | BigNumber; -/** - * Information required to perform NFT transfers in this chain - */ -export declare type NftInfo = { - token: string; - nonce: EasyBalance; -}; -/** - * Information associated with an ESDT Token - */ -export declare type EsdtTokenInfo = { - readonly balance: string; - readonly tokenIdentifier: string; -}; -declare type BEsdtNftInfo = { - readonly attributes?: string; - readonly creator: string; - readonly name: string; - readonly nonce: number; - readonly royalties: string; - readonly uris: string[]; -}; -/** - * Information associated with an ESDT NFT - */ -export declare type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; -/** - * arguments required to issue an NFT - */ -export declare type NftIssueArgs = { - readonly identifier: string; - readonly quantity: number | undefined; - readonly name: string; - readonly royalties: number | undefined; - readonly hash: string | undefined; - readonly attrs: string | undefined; - readonly uris: Array; -}; -/** - * Utility for issuing ESDT which supports NFT minting - */ -export interface IssueESDTNFT { - /** - * Unsigned Transaction for [[issueESDTNft]] - */ - unsignedIssueESDTNft(name: string, ticker: string, canFreeze: boolean | undefined, canWipe: boolean | undefined, canTransferNFTCreateRole: boolean | undefined): Transaction; - /** - * Issue a new ESDT supporting NFTs - * - * @param sender Owner of this ESDT - * @param name Name of the ESDT - * @param ticker Ticker of the ESDT - * @param canFreeze Wheteher this ESDT can be frozen - * @param canWipe Whether this ESDT can be wiped - * @param canTransferNFTCreateRole Whether the NFT Creation role can be transferred - * - * @returns ticker of the esdt - */ - issueESDTNft(sender: ISigner, name: string, ticker: string, canFreeze: boolean | undefined, canWipe: boolean | undefined, canTransferNFTCreateRole: boolean | undefined): Promise; -} -/** - * Possible roles for an ESDT - * - * ESDTRoleNFTCreate: Allow creating NFTs - * ESDTRoleNFTBurn: Allow burning NFTs - * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) - */ -export declare type ESDTRole = "ESDTRoleNFTCreate" | "ESDTRoleNFTBurn" | "ESDTRoleNFTAddQuantity"; -/** - * Utility for setting ESDT roles - */ -export interface SetESDTRoles { - /** - * Unsigned Transaction for [[setESDTRole]] - */ - unsignedSetESDTRoles(token: string, target: Address, roles: [ESDTRole]): Transaction; - /** - * - * Set the roles for a given account for an esdt - * - * @param sender Target account - * @param token ESDT Identifier - * @param roles Roles to set - */ - setESDTRole(sender: ISigner, token: string, roles: [ESDTRole]): Promise; -} -/** - * Identifier for tracking a given action - */ -declare type EventIdent = number; -/** - * Traits implemented by this module - */ -export declare type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & TransferForeign & UnfreezeForeign & TransferNftForeign & UnfreezeForeignNft & IssueESDTNFT & MintNft & ListNft & GetLockedNft & DecodeWrappedNft & DecodeRawNft; -/** - * Create an object implementing cross chain utilities for elrond - * - * @param node_uri URI of the elrond node - * @param minter_address Address of the minter smart contract - * @param middleware_uri REST API of elrond-event-middleware - * @param esdt Identifier of the ESDT Wrapper - * @param esdt_nft Identifier of the ESDT NFT Wrapper - */ -export declare const elrondHelperFactory: (node_uri: string, minter_address: string, esdt_swap_address: string, esdt: string, esdt_nft: string, esdt_swap: string) => Promise; -export {}; diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js deleted file mode 100644 index 0acb731cd..000000000 --- a/dist/helpers/elrond.js +++ /dev/null @@ -1,367 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.elrondHelperFactory = void 0; -/** - * Elrond Implementation for cross chain traits - * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp - * Note that Unsigned Transactions need to be manually handled after they have been added to the block - * @module - */ -const erdjs_1 = require("@elrondnetwork/erdjs"); -const axios_1 = __importDefault(require("axios")); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const chain_1 = require("./chain"); -const js_base64_1 = require("js-base64"); -const ESDT_ISSUE_ADDR = new erdjs_1.Address("erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u"); -const ESDT_ISSUE_COST = "50000000000000000"; -function isEsdtNftInfo(maybe) { - return maybe.creator != undefined && maybe.balance == "1"; -} -/** - * Create an object implementing cross chain utilities for elrond - * - * @param node_uri URI of the elrond node - * @param minter_address Address of the minter smart contract - * @param middleware_uri REST API of elrond-event-middleware - * @param esdt Identifier of the ESDT Wrapper - * @param esdt_nft Identifier of the ESDT NFT Wrapper - */ -const elrondHelperFactory = async (node_uri, minter_address, esdt_swap_address, esdt, esdt_nft) => { - const provider = new erdjs_1.ProxyProvider(node_uri); - await erdjs_1.NetworkConfig.getDefault().sync(provider); - const mintContract = new erdjs_1.Address(minter_address); - const swapContract = new erdjs_1.Address(esdt_swap_address); - const providerRest = axios_1.default.create({ - baseURL: node_uri, - }); - const esdtHex = Buffer.from(esdt, "utf-8"); - const esdtNftHex = Buffer.from(esdt_nft, "utf-8"); - //const esdtSwaphex = Buffer.from(esdt_swap, "utf-8"); - const decoder = new TextDecoder(); - const syncAccount = async (signer) => { - const account = new erdjs_1.Account(signer.getAddress()); - await account.sync(provider); - return account; - }; - const signAndSend = async (signer, tx) => { - const acc = await syncAccount(signer); - tx.setNonce(acc.nonce); - await signer.sign(tx); - try { - await tx.send(provider); - } - catch (e) { - if (e.message.includes("lowerNonceInTx")) { - throw chain_1.ConcurrentSendError(); - } - else { - throw e; - } - } - return tx; - }; - const transactionResult = async (tx_hash) => { - const uri = `/transaction/${tx_hash.toString()}?withResults=true`; - let tries = 0; - while (tries < 10) { - tries += 1; - let err; - // TODO: type safety - const res = await providerRest.get(uri).catch((e) => (err = e)); - if (err) { - await new Promise((r) => setTimeout(r, 3000)); - continue; - } - const data = res.data; - if (data["code"] != "successful") { - throw Error("failed to execute txn"); - } - const tx_info = data["data"]["transaction"]; - if (tx_info["status"] == "pending") { - await new Promise((r) => setTimeout(r, 5000)); - continue; - } - if (tx_info["status"] != "success") { - throw Error("failed to execute txn"); - } - return tx_info; - } - throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); - }; - const doEgldSwap = (sender, value) => { - const utx = new erdjs_1.Transaction({ - receiver: swapContract, - gasLimit: new erdjs_1.GasLimit(50000000), - value: new erdjs_1.Balance(erdjs_1.Egld.getToken(), erdjs_1.Egld.getNonce(), new bignumber_js_1.default(value.toString())), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("wrapEgld")) - .build() - }); - return signAndSend(sender, utx); - }; - const unsignedTransferTxn = (chain_nonce, to, value) => { - return new erdjs_1.Transaction({ - receiver: mintContract, - gasLimit: new erdjs_1.GasLimit(50000000), - value: new erdjs_1.Balance(erdjs_1.Egld.getToken(), erdjs_1.Egld.getNonce(), new bignumber_js_1.default(value.toString())), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("freezeSend")) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) - .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; - const unsignedMintNftTxn = (owner, { identifier, quantity, name, royalties, hash, attrs, uris }) => { - let baseArgs = erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("ESDTNFTCreate")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(identifier, "utf-8"))) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(quantity !== null && quantity !== void 0 ? quantity : 1))) - .addArg(new erdjs_1.BytesValue(Buffer.from(name, "utf-8"))) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(royalties !== null && royalties !== void 0 ? royalties : 0))) - .addArg(new erdjs_1.BytesValue(hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0))) - .addArg(new erdjs_1.BytesValue(attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0))); - for (const uri of uris) { - baseArgs = baseArgs.addArg(new erdjs_1.BytesValue(Buffer.from(uri, "utf-8"))); - } - return new erdjs_1.Transaction({ - receiver: owner, - gasLimit: new erdjs_1.GasLimit(70000000), - data: baseArgs.build(), - }); - }; - const unsignedTransferNftTxn = (chain_nonce, address, to, { token, nonce }) => { - return new erdjs_1.Transaction({ - receiver: address, - gasLimit: new erdjs_1.GasLimit(70000000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("ESDTNFTTransfer")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token, "utf-8"))) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(nonce))) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(1))) - .addArg(new erdjs_1.AddressValue(mintContract)) - .addArg(new erdjs_1.BytesValue(Buffer.from("freezeSendNft", "ascii"))) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) - .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; - const unsignedUnfreezeNftTxn = (address, to, id) => { - return new erdjs_1.Transaction({ - receiver: address, - gasLimit: new erdjs_1.GasLimit(70000000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("ESDTNFTTransfer")) - .addArg(new erdjs_1.TokenIdentifierValue(esdtNftHex)) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(id))) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(1))) - .addArg(new erdjs_1.AddressValue(mintContract)) - .addArg(new erdjs_1.BytesValue(Buffer.from("withdrawNft", "ascii"))) - .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; - const unsignedUnfreezeTxn = (chain_nonce, address, to, value) => { - return new erdjs_1.Transaction({ - receiver: address, - gasLimit: new erdjs_1.GasLimit(50000000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("ESDTNFTTransfer")) - .addArg(new erdjs_1.TokenIdentifierValue(esdtHex)) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(value))) - .addArg(new erdjs_1.AddressValue(mintContract)) - .addArg(new erdjs_1.BytesValue(Buffer.from("withdraw", "ascii"))) - .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; - const listEsdt = async (owner) => { - const raw = await providerRest(`/address/${owner}/esdt`); - const dat = raw.data.data.esdts; - return dat; - }; - async function listNft(owner) { - const ents = Object.entries(await listEsdt(owner)); - const fmapCb = ([tok, info]) => { - var _a; - if (!isEsdtNftInfo(info)) { - return []; - } - let sp = tok.split("-"); - let nonce = (_a = sp.pop()) !== null && _a !== void 0 ? _a : ""; - return [[`${sp.join("-")}-${parseInt(nonce, 16).toString()}`, info]]; - }; - return new Map(ents.flatMap(fmapCb)); - } - const unsignedIssueESDTNft = (name, ticker, canFreeze, canWipe, canTransferNFTCreateRole) => { - let baseArgs = erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("issueNonFungible")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(name, "utf-8"))) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); - if (canFreeze !== undefined) { - baseArgs = baseArgs - .addArg(new erdjs_1.BytesValue(Buffer.from("canFreeze", "ascii"))) - .addArg(new erdjs_1.BytesValue(Buffer.from(canFreeze ? "true" : "false", "ascii"))); - } - if (canWipe !== undefined) { - baseArgs = baseArgs - .addArg(new erdjs_1.BytesValue(Buffer.from("canWipe", "ascii"))) - .addArg(new erdjs_1.BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii"))); - } - if (canTransferNFTCreateRole !== undefined) { - baseArgs = baseArgs - .addArg(new erdjs_1.BytesValue(Buffer.from("canTransferNFTCreateRole", "ascii"))) - .addArg(new erdjs_1.BytesValue(Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii"))); - } - return new erdjs_1.Transaction({ - receiver: ESDT_ISSUE_ADDR, - value: new erdjs_1.Balance(erdjs_1.Egld.getToken(), erdjs_1.Egld.getNonce(), new bignumber_js_1.default(ESDT_ISSUE_COST.toString())), - gasLimit: new erdjs_1.GasLimit(60000000), - data: baseArgs.build(), - }); - }; - const unsignedSetESDTRoles = (token, target, roles) => { - let baseArgs = erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("setSpecialRole")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token))) - .addArg(new erdjs_1.AddressValue(target)); - for (const role of roles) { - baseArgs = baseArgs.addArg(new erdjs_1.BytesValue(Buffer.from(role, "utf-8"))); - } - return new erdjs_1.Transaction({ - receiver: ESDT_ISSUE_ADDR, - gasLimit: new erdjs_1.GasLimit(70000000), - data: baseArgs.build(), - }); - }; - async function getLockedNft({ token, nonce, }) { - const nfts = await listNft(minter_address); - return nfts.get(`${token}-${nonce.toString()}`); - } - const rawNftDecoder = (nftDat) => { - /// TokenLen(4 by), TokenIdent(TokenLen by), Nonce(8 by) - /// BinaryCodec is broken for browsers. Decode manually :| - if (nftDat.length < 12) { - throw Error("not a wrapped nft"); - } - const tokenLen = new Uint32Array(nftDat.slice(0, 4).reverse())[0]; - if (nftDat.length !== 12 + tokenLen) { - throw Error("not a wrapped nft"); - } - const token = decoder.decode(nftDat.slice(4, 4 + tokenLen)); - // TODO: Consider LO - // tfw js can't convert be bytes to u64 - const nonce = new Uint32Array(nftDat.slice(4 + tokenLen, 12 + tokenLen).reverse())[0]; - return { token, nonce }; - }; - async function extractId(tx) { - let err; - await tx.awaitExecuted(provider).catch((e) => (err = e)); - if (err) { - await new Promise((r) => setTimeout(r, 3000)); - return extractId(tx); - } - const txr = await transactionResult(tx.getHash()); - const id = filterEventId(txr["smartContractResults"]); - return [tx, id]; - } - return { - async balance(address) { - const wallet = new erdjs_1.Account(new erdjs_1.Address(address)); - await wallet.sync(provider); - return wallet.balance.valueOf(); - }, - async balanceWrappedBatch(address, chain_nonces) { - const esdts = Object.values(await listEsdt(address.toString())); - const res = new Map(chain_nonces.map((v) => [v, new bignumber_js_1.default(0)])); - for (const esdt of esdts) { - esdt.nonce && - esdt.tokenIdentifier.startsWith(esdt.tokenIdentifier) && - res.set(esdt.nonce, new bignumber_js_1.default(esdt.balance)); - } - return res; - }, - async transferNativeToForeign(sender, chain_nonce, to, value, txFees) { - const txu = unsignedTransferTxn(chain_nonce, to, new bignumber_js_1.default(value.toString()).plus(txFees.toString())); - const tx = await signAndSend(sender, txu); - return await extractId(tx); - }, - async unfreezeWrapped(sender, chain_nonce, to, value, txFees) { - await doEgldSwap(sender, txFees); - const txu = unsignedUnfreezeTxn(chain_nonce, sender.getAddress(), to, value); - const tx = await signAndSend(sender, txu); - return await extractId(tx); - }, - async transferNftToForeign(sender, chain_nonce, to, info, txFees) { - await doEgldSwap(sender, txFees); - const txu = unsignedTransferNftTxn(chain_nonce, sender.getAddress(), to, info); - const tx = await signAndSend(sender, txu); - return await extractId(tx); - }, - async unfreezeWrappedNft(sender, to, nonce, txFees) { - await doEgldSwap(sender, txFees); - const txu = unsignedUnfreezeNftTxn(sender.getAddress(), to, nonce); - const tx = await signAndSend(sender, txu); - return await extractId(tx); - }, - unsignedIssueESDTNft, - async issueESDTNft(sender, name, ticker, canFreeze = false, canWipe = false, canTransferNFTCreateRole = false) { - const txu = unsignedIssueESDTNft(name, ticker, canFreeze, canWipe, canTransferNFTCreateRole); - const tx = await signAndSend(sender, txu); - const res = await transactionResult(tx.getHash()); - const tickerh = res["smartContractResults"][0].data.split("@")[2]; - return Buffer.from(tickerh, "hex").toString("utf-8"); - }, - async mintNft(owner, args) { - const txu = unsignedMintNftTxn(owner.getAddress(), args); - await signAndSend(owner, txu); - }, - listNft, - getLockedNft, - async setESDTRole(manager, token, target, roles) { - const txu = unsignedSetESDTRoles(token, target, roles); - await signAndSend(manager, txu); - }, - decodeWrappedNft(raw_data) { - if (!raw_data.attributes) { - throw Error("can't decode chain nonce"); - } - return { - // TODO: CONSIDER ALL BE BYTES - chain_nonce: js_base64_1.Base64.toUint8Array(raw_data.attributes)[0], - data: js_base64_1.Base64.toUint8Array(raw_data.uris[0]), - }; - }, - async decodeUrlFromRaw(data) { - const nft_info = rawNftDecoder(data); - const locked = await getLockedNft(nft_info); - if (locked === undefined) { - throw Error("Not a wrapped nft"); - } - return js_base64_1.Base64.atob(locked.uris[0]); - }, - }; -}; -exports.elrondHelperFactory = elrondHelperFactory; -function filterEventId(results) { - for (const res of results) { - if (res["nonce"] === 0) { - continue; - } - const data = res.data.split("@"); - if (data[0] != "" || data[1] != "6f6b" || data.length != 3) { - continue; - } - try { - return parseInt(data[2], 16); - } - catch (NumberFormatException) { - continue; - } - } - throw Error(`invalid result: ${results.toString()}`); -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBa0I4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQix5Q0FBbUM7QUFJbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFPLENBQ2pDLGdFQUFnRSxDQUNqRSxDQUFDO0FBQ0YsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFzQzVDLFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7QUFDNUQsQ0FBQztBQTZIRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sbUJBQW1CLEdBT0gsS0FBSyxFQUNoQyxRQUFnQixFQUNoQixjQUFzQixFQUN0QixpQkFBeUIsRUFDekIsSUFBWSxFQUNaLFFBQWdCLEVBRWhCLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsTUFBTSxxQkFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFD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 \ No newline at end of file diff --git a/dist/helpers/polkadot.d.ts b/dist/helpers/polkadot.d.ts deleted file mode 100644 index b9c80349e..000000000 --- a/dist/helpers/polkadot.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Address, H256, Hash, LookupSource } from "@polkadot/types/interfaces"; -import BigNumber from "bignumber.js"; -import { TransferForeign, TransferNftForeign, UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, MintNft, ListNft, GetLockedNft, WrappedBalanceCheck, BatchWrappedBalanceCheck, DecodeWrappedNft, DecodeRawNft } from "./chain"; -import { AddressOrPair } from "@polkadot/api/types"; -import { SignerOptions } from "@polkadot/api/submittable/types"; -/** - * Type of sender expected by this module - * - * @param sender Address of the sender, or a Keypair - * @param options Options for sigining this transaction. Mandatory if sender is an address - */ -export declare type Signer = { - sender: AddressOrPair; - options?: Partial; -}; -declare type EasyBalance = string | number | BigNumber; -declare type EasyAddr = string | LookupSource | Address; -declare type BasePolkadot = BalanceCheck; -/** - * identifier for tracking an action - */ -declare type EventIdent = BigNumber; -export declare type PolkadotHelper = BasePolkadot & TransferForeign & UnfreezeForeign; -/** - * Traits implemented by this module - */ -export declare type PolkadotPalletHelper = PolkadotHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferNftForeign & UnfreezeForeignNft & MintNft & ListNft & GetLockedNft & DecodeWrappedNft & DecodeRawNft; -/** - * @internal - */ -export declare function toHex(buffer: Uint8Array): string; -/** - * Create an object implementing Cross Chain utilities for Polkadot - * - * @param node_uri URI of the polkadot node - */ -export declare const polkadotPalletHelperFactory: (node_uri: string) => Promise; -export {}; diff --git a/dist/helpers/polkadot.js b/dist/helpers/polkadot.js deleted file mode 100644 index da55bb2da..000000000 --- a/dist/helpers/polkadot.js +++ /dev/null @@ -1,218 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.polkadotPalletHelperFactory = exports.toHex = void 0; -/** - * Polkadot Implementation for cross chain traits - * @module - */ -const api_1 = require("@polkadot/api"); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const chain_1 = require("./chain"); -const types_1 = require("@polkadot/types"); -const encoding_1 = require("validator/dist/encoding"); -const LUT_HEX_4b = [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "A", - "B", - "C", - "D", - "E", - "F", -]; -const LUT_HEX_8b = new Array(0x100); -for (let n = 0; n < 0x100; n++) { - LUT_HEX_8b[n] = `${LUT_HEX_4b[(n >>> 4) & 0xf]}${LUT_HEX_4b[n & 0xf]}`; -} -/** - * @internal - */ -// End Pre-Init -function toHex(buffer) { - let out = ""; - for (let idx = 0, edx = buffer.length; idx < edx; idx++) { - out += LUT_HEX_8b[buffer[idx]]; - } - return `0x${out}`; -} -exports.toHex = toHex; -async function basePolkadotHelper(node_uri) { - const provider = new api_1.WsProvider(node_uri); - const api = await api_1.ApiPromise.create({ provider, types: runtimeTypes }); - const base = { - async balance(address) { - const res = await api.query.system.account(address); - return new bignumber_js_1.default(res["data"]["free"].toString()); - }, - }; - return [base, api]; -} -function hasAddrField(ob) { - return ob.hasOwnField("address") && typeof ob.address == "string"; -} -async function resolve_event_id(ext, filter, signer, options) { - let call; - if (options) { - options.nonce = -1; - call = async (cb) => await ext.signAndSend(signer, options, cb); - } - else { - call = async (cb) => await ext.signAndSend(signer, { nonce: -1 }, cb); - } - const evP = new Promise((res, rej) => { - call(({ events, status }) => { - if (!status.isInBlock) { - return; - } - const ev = events.find((e) => e.event.method == filter); - if (ev === undefined) { - rej(); - return; - } - const action_id = new bignumber_js_1.default(ev.event.data[0].toString()); - const hash = status.asInBlock; - res([hash, action_id]); - }); - }); - try { - return await evP; - } - catch (e) { - if (e.message.contains("Priority is too low")) { - throw chain_1.ConcurrentSendError(); - } - throw e; - } -} -/** - * Create an object implementing Cross Chain utilities for Polkadot - * - * @param node_uri URI of the polkadot node - */ -const polkadotPalletHelperFactory = async (node_uri) => { - const [base, api] = await basePolkadotHelper(node_uri); - const keyring = new api_1.Keyring(); - const sudoSigner = keyring.createFromUri("//Alice", undefined, "sr25519"); - const decoder = new TextDecoder(); - function nftListMapper([nft_id, data]) { - return [nft_id.toString(), data]; - } - async function getLockedNft(hash) { - const com = (await api.query.nft.lockedCommodities(hash)); - if (com.isNone) { - return undefined; - } - const [_owner, dat] = com.unwrap(); - return dat; - } - return Object.assign(Object.assign({}, base), { async balanceWrapped(address, chain_nonce) { - const res = await api.query.erc1155.balances(address, chain_nonce); - return new bignumber_js_1.default(res.toString()); - }, - async balanceWrappedBatch(address, chain_nonces) { - // Multi query with address, chain_nonce - const res = await api.query.erc1155.balances.multi(chain_nonces.map((c) => [address, c])); - // Convert list of balances to [chain_nonce, balance] - return new Map(res.map((b, i) => [ - chain_nonces[i], - b.isSome ? new bignumber_js_1.default(b.unwrap().toString()) : new bignumber_js_1.default(0), - ])); - }, - async transferNativeToForeign(sender, chain_nonce, to, value) { - return await resolve_event_id(api.tx.freezer.send(chain_nonce, to, value.toString()), "TransferFrozen", sender.sender, sender.options); - }, - async unfreezeWrapped(sender, chain_nonce, to, value) { - return await resolve_event_id(api.tx.freezer.withdrawWrapped(chain_nonce, to, value.toString()), "UnfreezeWrapped", sender.sender, sender.options); - }, - async transferNftToForeign(sender, chain_nonce, to, nft_id) { - return await resolve_event_id(api.tx.freezer.sendNft(chain_nonce, to, nft_id), "TransferUniqueFrozen", sender.sender, sender.options); - }, - async unfreezeWrappedNft(sender, to, nft_id) { - return await resolve_event_id(api.tx.freezer.withdrawWrappedNft(to, nft_id), "UnfreezeUniqueWrapped", sender.sender, sender.options); - }, - async mintNft(owner, info) { - let addr; - // "static typing :|" - if (typeof owner.sender == "string") { - addr = owner.sender; - } - else if (hasAddrField(owner.sender)) { - addr = owner.sender.address; - } - else { - addr = owner.sender.toString(); - } - await api.tx.sudo - .sudo(api.tx.nft.mint(addr, toHex(info))) - .signAndSend(sudoSigner, { nonce: -1 }); - }, - async listNft(owner) { - const com = (await api.query.nft.commoditiesForAccount(owner.toString())); - if (com.isNone) { - return new Map(); - } - const c = Array.from(com.unwrap()).map(nftListMapper); - return new Map(c); - }, - getLockedNft, - decodeWrappedNft(raw_data) { - const packed = encoding_1.NftPacked.deserializeBinary(Uint8Array.from(raw_data)); - return { - chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8(), - }; - }, - async decodeUrlFromRaw(data) { - const locked = await getLockedNft(new types_1.U8aFixed(api.registry, data, 256)); - if (locked === undefined) { - throw Error("not a locked nft"); - } - return decoder.decode(locked.slice(-24)); - } }); -}; -exports.polkadotPalletHelperFactory = polkadotPalletHelperFactory; -const runtimeTypes = { - ActionId: "u128", - TokenId: "u64", - CommodityId: "H256", - CommodityInfo: "Bytes", - NftId: "H256", - NftInfo: "Bytes", - Erc1155Balance: "Balance", - Commodity: "(H256, Bytes)", - LocalAction: { - _enum: { - //@ts-expect-error enum struct - Unfreeze: { - to: "AccountId", - value: "Balance", - }, - //@ts-expect-error enum struct - RpcCall: { - contract: "AccountId", - call_data: "Bytes", - }, - //@ts-expect-error enum struct - TransferWrapped: { - to: "AccountId", - value: "Balance", - }, - }, - }, - ActionInfo: { - action: "LocalAction", - validators: "BTreeSet", - }, -}; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9sa2Fkb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9wb2xrYWRvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7O0dBR0c7QUFDSCx1Q0FBZ0U7QUFPaEUsZ0VBQXFDO0FBQ3JDLG1DQWVpQjtBQU1qQiwyQ0FBMkU7QUFDM0Usc0RBQW9EO0FBMkNwRCxNQUFNLFVBQVUsR0FBRztJQUNqQixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0NBQ0osQ0FBQztBQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDOUIsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztDQUN4RTtBQUNEOztHQUVHO0FBQ0gsZUFBZTtBQUNmLFNBQWdCLEtBQUssQ0FBQyxNQUFrQjtJQUN0QyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3ZELEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDaEM7SUFDRCxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDcEIsQ0FBQztBQU5ELHNCQU1DO0FBRUQsS0FBSyxVQUFVLGtCQUFrQixDQUMvQixRQUFnQjtJQUVoQixNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxnQkFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUV2RSxNQUFNLElBQUksR0FBRztRQUNYLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBaUI7WUFDN0IsTUFBTSxHQUFHLEdBQVEsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFekQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztLQUNGLENBQUM7SUFFRixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxFQUFPO0lBQzNCLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDO0FBQ3BFLENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLEdBQXVDLEVBQ3ZDLE1BQWMsRUFDZCxNQUFxQixFQUNyQixPQUFnQztJQUVoQyxJQUFJLElBQThDLENBQUM7SUFDbkQsSUFBSSxPQUFPLEVBQUU7UUFDWCxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25CLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBZSxFQUFFLEVBQUUsQ0FDL0IsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUM7U0FBTTtRQUNMLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBZSxFQUFFLEVBQUUsQ0FDL0IsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ3BEO0lBRUQsTUFBTSxHQUFHLEdBQWdDLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2hFLElBQUksQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3JCLE9BQU87YUFDUjtZQUVELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRTtnQkFDcEIsR0FBRyxFQUFFLENBQUM7Z0JBQ04sT0FBTzthQUNSO1lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxzQkFBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDN0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUU5QixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSTtRQUNGLE9BQU8sTUFBTSxHQUFHLENBQUM7S0FDbEI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRTtZQUM3QyxNQUFNLDJCQUFtQixFQUFFLENBQUM7U0FDN0I7UUFDRCxNQUFNLENBQUMsQ0FBQztLQUNUO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSSxNQUFNLDJCQUEyQixHQUVILEtBQUssRUFBRSxRQUFnQixFQUFFLEVBQUU7SUFDOUQsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksYUFBTyxFQUFFLENBQUM7SUFDOUIsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFFbEMsU0FBUyxhQUFhLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFnQjtRQUNsRCxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLFVBQVUsWUFBWSxDQUFDLElBQVU7UUFDcEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFrQixDQUFDO1FBQzNFLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUNkLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkMsT0FBTyxHQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELHVDQUNLLElBQUksS0FDUCxLQUFLLENBQUMsY0FBYyxDQUNsQixPQUFpQixFQUNqQixXQUFtQjtZQUVuQixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbkUsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsT0FBaUIsRUFDakIsWUFBc0I7WUFFdEIsd0NBQXdDO1lBQ3hDLE1BQU0sR0FBRyxHQUFrQixNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQy9ELFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3RDLENBQUM7WUFFRixxREFBcUQ7WUFDckQsT0FBTyxJQUFJLEdBQUcsQ0FDWixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBYyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzdCLFlBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDO2FBQ25FLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztRQUNELEtBQUssQ0FBQyx1QkFBdUIsQ0FDM0IsTUFBYyxFQUNkLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixLQUFrQjtZQUVsQixPQUFPLE1BQU0sZ0JBQWdCLENBQzNCLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUN0RCxnQkFBZ0IsRUFDaEIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsT0FBTyxDQUNmLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsTUFBYyxFQUNkLFdBQW1CLEVBQ25CLEVBQVUsRUFDVixLQUFrQjtZQUVsQixPQUFPLE1BQU0sZ0JBQWdCLENBQzNCLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUNqRSxpQkFBaUIsRUFDakIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsT0FBTyxDQUNmLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixNQUFjLEVBQ2QsV0FBbUIsRUFDbkIsRUFBVSxFQUNWLE1BQVk7WUFFWixPQUFPLE1BQU0sZ0JBQWdCLENBQzNCLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUMvQyxzQkFBc0IsRUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsT0FBTyxDQUNmLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixNQUFjLEVBQ2QsRUFBVSxFQUNWLE1BQVk7WUFFWixPQUFPLE1BQU0sZ0JBQWdCLENBQzNCLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFDN0MsdUJBQXVCLEVBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLE9BQU8sQ0FDZixDQUFDO1FBQ0osQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBYSxFQUFFLElBQWdCO1lBQzNDLElBQUksSUFBSSxDQUFDO1lBQ1QscUJBQXFCO1lBQ3JCLElBQUksT0FBTyxLQUFLLENBQUMsTUFBTSxJQUFJLFFBQVEsRUFBRTtnQkFDbkMsSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDckI7aUJBQU0sSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNyQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7YUFDN0I7aUJBQU07Z0JBQ0wsSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDaEM7WUFFRCxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSTtpQkFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEMsV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBZTtZQUMzQixNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQ3BELEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDakIsQ0FBa0MsQ0FBQztZQUNwQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2QsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdEQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixDQUFDO1FBQ0QsWUFBWTtRQUNaLGdCQUFnQixDQUFDLFFBQW9CO1lBQ25DLE1BQU0sTUFBTSxHQUFHLG9CQUFTLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBRXRFLE9BQU87Z0JBQ0wsV0FBVyxFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUU7Z0JBQ25DLElBQUksRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFO2FBQzVCLENBQUM7UUFDSixDQUFDO1FBQ0QsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQWdCO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksZ0JBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDeEIsTUFBTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUNqQztZQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLElBQ0Q7QUFDSixDQUFDLENBQUM7QUE5SVcsUUFBQSwyQkFBMkIsK0JBOEl0QztBQUVGLE1BQU0sWUFBWSxHQUFrQjtJQUNsQyxRQUFRLEVBQUUsTUFBTTtJQUNoQixPQUFPLEVBQUUsS0FBSztJQUNkLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGFBQWEsRUFBRSxPQUFPO0lBQ3RCLEtBQUssRUFBRSxNQUFNO0lBQ2IsT0FBTyxFQUFFLE9BQU87SUFDaEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsV0FBVyxFQUFFO1FBQ1gsS0FBSyxFQUFFO1lBQ0wsOEJBQThCO1lBQzlCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsV0FBVztnQkFDZixLQUFLLEVBQUUsU0FBUzthQUNqQjtZQUNELDhCQUE4QjtZQUM5QixPQUFPLEVBQUU7Z0JBQ1AsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFNBQVMsRUFBRSxPQUFPO2FBQ25CO1lBQ0QsOEJBQThCO1lBQzlCLGVBQWUsRUFBRTtnQkFDZixFQUFFLEVBQUUsV0FBVztnQkFDZixLQUFLLEVBQUUsU0FBUzthQUNqQjtTQUNGO0tBQ0Y7SUFDRCxVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUsYUFBYTtRQUNyQixVQUFVLEVBQUUscUJBQXFCO0tBQ2xDO0NBQ0YsQ0FBQyJ9 \ No newline at end of file diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts deleted file mode 100644 index 7c6f67f57..000000000 --- a/dist/helpers/tron.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { BigNumber } from "bignumber.js"; -import { BalanceCheck, BatchWrappedBalanceCheck, DecodeRawNft, DecodeWrappedNft, MintNft, TransferForeign, TransferNftForeign, UnfreezeForeign, UnfreezeForeignNft, WrappedBalanceCheck } from "./chain"; -import { TronWeb } from "tronweb"; -import { EthNftInfo, MintArgs } from "./web3"; -import { EstimateTxFees } from ".."; -export declare type BaseTronHelper = BalanceCheck & MintNft & { - /** - * - * Deploy an ERC1155 smart contract - * - * @argument owner Owner of this smart contract - * @returns Address of the deployed smart contract - */ - deployErc721(owner: string): Promise; -}; -export declare type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & EstimateTxFees & { - nftUri(info: EthNftInfo): Promise; -}; -export declare function baseTronHelperFactory(provider: TronWeb): Promise; -export declare function tronHelperFactory(provider: TronWeb, middleware_uri: string, erc1155_addr: string, minter_addr: string, minter_abi: JSON): Promise; diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js deleted file mode 100644 index b4ac08856..000000000 --- a/dist/helpers/tron.js +++ /dev/null @@ -1,180 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.tronHelperFactory = exports.baseTronHelperFactory = void 0; -const bignumber_js_1 = require("bignumber.js"); -const fakeERC1155_json_1 = require("../fakeERC1155.json"); -const bignumber_1 = require("@ethersproject/bignumber/lib/bignumber"); -const fakeERC721_json_1 = require("../fakeERC721.json"); -const js_base64_1 = require("js-base64"); -const encoding_1 = require("validator/dist/encoding"); -const axios_1 = __importDefault(require("axios")); -async function baseTronHelperFactory(provider) { - const setSigner = (signer) => { - return provider.setPrivateKey(signer); - }; - const deployErc721_i = async (owner) => { - setSigner(owner); - const contract = await provider.contract().new({ - abi: fakeERC721_json_1.abi, - bytecode: fakeERC721_json_1.bytecode, - feeLimit: 3000000000, - }); - return contract; - }; - return { - async mintNft(owner, options) { - setSigner(owner); - const erc = await provider.contract(fakeERC721_json_1.abi, options.contract); - await erc.mint(options.uri).send(); - }, - async balance(address) { - const balance = await provider.trx.getBalance(address); - return new bignumber_js_1.BigNumber(balance); - }, - deployErc721: async (owner) => await deployErc721_i(owner).then((c) => c.address), - }; -} -exports.baseTronHelperFactory = baseTronHelperFactory; -async function tronHelperFactory(provider, middleware_uri, erc1155_addr, minter_addr, minter_abi) { - const base = await baseTronHelperFactory(provider); - const erc1155 = await provider.contract(fakeERC1155_json_1.abi, erc1155_addr); - const minter = await provider.contract(minter_abi, minter_addr); - const event_middleware = axios_1.default.create({ - baseURL: middleware_uri, - headers: { - "Content-Type": "application/json", - }, - }); - const setSigner = (signer) => { - return provider.setPrivateKey(signer); - }; - async function extractTxn(hash) { - await event_middleware.post("/tx/tron", { tx_hash: hash }); - await new Promise((r) => setTimeout(r, 6000)); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const getEv = async (retries = 0) => { - const res = await provider.getEventByTransactionID(hash); - if (res.length !== 0) { - return res; - } - if (retries > 15) { - throw Error("Couldn't fetch transaction after more than 15 retries!"); - } - await new Promise((r) => setTimeout(r, 3000)); - return getEv(retries + 1); - }; - const evs = await getEv(); - const ev = evs.find((e) => (e === null || e === void 0 ? void 0 : e.contract) == minter_addr); - const action_id = ev.result["action_id"].toString(); - return [hash, action_id]; - } - const nftUri = async (info) => { - if (info.contract_type == "ERC721") { - const erc = await provider.contract(fakeERC721_json_1.abi, info.contract); - return await erc.tokenURI(info.token).call(); - } - else { - const erc = await provider.contract(fakeERC1155_json_1.abi, info.contract); - return await erc.uri(info.token).call(); - } - }; - function contractTypeFromNftKind(kind) { - return kind === encoding_1.NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; - } - const randomAction = () => bignumber_1.BigNumber.from(Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000))); - async function estimateGas(addrs, utx) { - let fee = bignumber_1.BigNumber.from(0); - for (const [i, addr] of addrs.entries()) { - utx.from = addr; - let tf = bignumber_1.BigNumber.from(400000); // TODO: Proper estimate - if (i == addrs.length - 1 && addrs.length != 1) - tf = tf.mul(2); - fee = fee.add(tf); - } - fee = fee.mul(1.41e14); // TODO: proper gas price estimate - return new bignumber_js_1.BigNumber(fee.toString()); - } - return Object.assign(Object.assign({}, base), { async decodeUrlFromRaw(data) { - const packed = encoding_1.NftEthNative.deserializeBinary(data); - const nft_info = { - contract_type: contractTypeFromNftKind(packed.getNftKind()), - contract: packed.getContractAddr(), - token: bignumber_1.BigNumber.from(packed.getId()), - }; - return await nftUri(nft_info); - }, - decodeWrappedNft(raw_data) { - const u8D = js_base64_1.Base64.toUint8Array(raw_data); - const packed = encoding_1.NftPacked.deserializeBinary(u8D); - return { - chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8(), - }; - }, nftUri: nftUri, async transferNativeToForeign(sender, chain_nonce, to, value, txFees) { - setSigner(sender); - const totalVal = bignumber_1.BigNumber.from(value.toString()).add(bignumber_1.BigNumber.from(txFees.toString())); - let res = await minter - .freeze(chain_nonce, to) - .send({ callValue: totalVal }); - return await extractTxn(res); - }, - async unfreezeWrapped(sender, chain_nonce, to, value, txFees) { - setSigner(sender); - const res = await minter - .withdraw(chain_nonce, to, value) - .send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); - return await extractTxn(res); - }, - async unfreezeWrappedNft(sender, to, id, txFees) { - setSigner(sender); - const res = await minter - .withdraw_nft(to, id) - .send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); - return await extractTxn(res); - }, - async transferNftToForeign(sender, chain_nonce, to, id, txFees) { - setSigner(sender); - const erc = await provider.contract(fakeERC721_json_1.abi, id.contract); - await erc.approve(minter.address, id.token).send(); - const txr = await minter - .freeze_erc721(id.contract, id.token, chain_nonce, to) - .send({ callValue: bignumber_1.BigNumber.from(txFees.toString()) }); - return await extractTxn(txr); - }, - async balanceWrappedBatch(address, chain_nonces) { - const res = new Map(); - const balance = await erc1155 - .balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces) - .call(); - balance.map((e, i) => { - res.set(chain_nonces[i], new bignumber_js_1.BigNumber(e.toString())); - }); - return res; - }, - async balanceWrapped(address, chain_nonce) { - const bal = await erc1155.balanceOf(address, chain_nonce).call(); - return new bignumber_js_1.BigNumber(bal.toString()); - }, - async estimateValidateTransferNft(validators, to, nft) { - // Protobuf is not deterministic, though perhaps we can approximate this statically - const tokdat = new encoding_1.NftEthNative(); - tokdat.setId(nft.token.toString()); - tokdat.setNftKind(1); - tokdat.setContractAddr(nft.contract); - const encoded = new encoding_1.NftPacked(); - encoded.setChainNonce(0x1351); - encoded.setData(tokdat.serializeBinary()); - const utx = minter.validate_transfer_nft(randomAction(), to, Buffer.from(encoded.serializeBinary()).toString("base64")); - return await estimateGas(validators, utx); - }, - async estimateValidateUnfreezeNft(validators, to, nft_data) { - const nft_dat = encoding_1.NftEthNative.deserializeBinary(nft_data); - const utx = minter.validate_unfreeze_nft(randomAction(), to, bignumber_1.BigNumber.from(nft_dat.getId().toString()), nft_dat.getContractAddr()); - return await estimateGas(validators, utx); - } }); -} -exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQXlDO0FBY3pDLDBEQUF5RDtBQU16RCxzRUFBNEU7QUFDNUUsd0RBRzRCO0FBQzVCLHlDQUFtQztBQUNuQyxzREFBa0U7QUFDbEUsa0RBQTBCO0FBNkJuQixLQUFLLFVBQVUscUJBQXFCLENBQ3pDLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUM3QyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQzdDLEdBQUcsRUFBRSxxQkFBVTtZQUNmLFFBQVEsRUFBRSwwQkFBZTtZQUN6QixRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDLENBQUM7UUFFSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBaUI7WUFDNUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxR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 \ No newline at end of file diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts deleted file mode 100644 index f28ed850b..000000000 --- a/dist/helpers/web3.d.ts +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Web3 Implementation for cross chain traits - * @module - */ -import BigNumber from "bignumber.js"; -import { TransferForeign, UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, TransferNftForeign, WrappedBalanceCheck, BatchWrappedBalanceCheck, DecodeWrappedNft, DecodeRawNft, MintNft } from "./chain"; -import { Signer, BigNumber as EthBN } from "ethers"; -import { TransactionReceipt, Provider } from "@ethersproject/providers"; -import { Interface } from "ethers/lib/utils"; -import { EstimateTxFees } from ".."; -declare type EasyBalance = string | number | EthBN; -/** - * Information required to perform NFT transfers in this chain - */ -export declare type EthNftInfo = { - contract_type: "ERC721" | "ERC1155"; - contract: string; - token: EthBN; -}; -/** - * Arguments required for minting a new nft - * - * contract: address of the sc - * token: token ID of the newly minted nft - * owner: Owner of the newly minted nft - * uri: uri of the nft - */ -export declare type MintArgs = { - contract: string; - uri: string; -}; -/** - * Base util traits - */ -export declare type BaseWeb3Helper = BalanceCheck & -/** - * Mint an nft in the given ERC1155 smart contract - * - * @argument signer owner of the smart contract - * @argument args See [[MintArgs]] - */ -MintNft & { - /** - * - * Deploy an ERC721 smart contract - * - * @argument owner Owner of this smart contract - * @returns Address of the deployed smart contract - */ - deployErc721(owner: Signer): Promise; -}; -/** - * Traits implemented by this module - */ -export declare type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & TransferNftForeign & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & EstimateTxFees & { - /** - * Get the uri of an nft given nft info - */ - nftUri(info: EthNftInfo): Promise; -}; -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -export declare function baseWeb3HelperFactory(provider: Provider): Promise; -/** - * Create an object implementing cross chain utilities for a web3 chain - * - * @param provider An ethers.js provider object - * @param minter_addr Address of the minter smart contract - * @param minter_abi ABI of the minter smart contract - */ -export declare function web3HelperFactory(provider: Provider, minter_addr: string, minter_abi: Interface, erc1155_addr: string): Promise; -export {}; diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js deleted file mode 100644 index a149e3e91..000000000 --- a/dist/helpers/web3.js +++ /dev/null @@ -1,192 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.web3HelperFactory = exports.baseWeb3HelperFactory = void 0; -/** - * Web3 Implementation for cross chain traits - * @module - */ -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const ethers_1 = require("ethers"); -const utils_1 = require("ethers/lib/utils"); -const fakeERC721_json_1 = require("../fakeERC721.json"); -const fakeERC1155_json_1 = require("../fakeERC1155.json"); -const ERC721_contract = __importStar(require("../XPNft.json")); -const encoding_1 = require("validator/dist/encoding"); -const js_base64_1 = require("js-base64"); -function contractTypeFromNftKind(kind) { - return kind === encoding_1.NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; -} -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -async function baseWeb3HelperFactory(provider) { - const w3 = provider; - const erc721_abi = new utils_1.Interface(fakeERC721_json_1.abi); - return { - async balance(address) { - const bal = await w3.getBalance(address); - // ethers BigNumber is not compatible with our bignumber - return new bignumber_js_1.default(bal.toString()); - }, - async deployErc721(owner) { - const factory = ethers_1.ContractFactory.fromSolidity(ERC721_contract, owner); - const contract = await factory.deploy(); - return contract.address; - }, - async mintNft(owner, { contract, uri }) { - const erc721 = new ethers_1.Contract(contract, erc721_abi, owner); - const txm = await erc721.mint(uri); - await txm.wait(); - }, - }; -} -exports.baseWeb3HelperFactory = baseWeb3HelperFactory; -/** - * Create an object implementing cross chain utilities for a web3 chain - * - * @param provider An ethers.js provider object - * @param minter_addr Address of the minter smart contract - * @param minter_abi ABI of the minter smart contract - */ -async function web3HelperFactory(provider, minter_addr, minter_abi, erc1155_addr) { - const w3 = provider; - const minter = new ethers_1.Contract(minter_addr, minter_abi, w3); - const erc1155_abi = new utils_1.Interface(fakeERC1155_json_1.abi); - const erc1155 = new ethers_1.Contract(erc1155_addr, erc1155_abi, w3); - function signedMinter(signer) { - return minter.connect(signer); - } - async function extractTxn(txr, _evName) { - const receipt = await txr.wait(); - const log = receipt.logs.find((log) => log.address === minter.address); - if (log === undefined) { - throw Error("Couldn't extract action_id"); - } - const evdat = minter_abi.parseLog(log); - const action_id = evdat.args[0].toString(); - return [receipt, action_id]; - } - async function nftUri(info) { - if (info.contract_type == "ERC721") { - const erc = new ethers_1.Contract(info.contract, fakeERC721_json_1.abi, w3); - return await erc.tokenURI(info.token); - } - else { - const erc = new ethers_1.Contract(info.contract, erc1155_abi, w3); - return await erc.uri(info.token); - } - } - const randomAction = () => ethers_1.BigNumber.from(Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000))); - async function estimateGas(addrs, utx) { - let fee = ethers_1.BigNumber.from(0); - for (const [i, addr] of addrs.entries()) { - utx.from = addr; - let tf = await w3.estimateGas(utx); - if (i == addrs.length - 1 && addrs.length != 1) - tf = tf.mul(2); - fee = fee.add(tf); - } - fee = fee.mul(await w3.getGasPrice()); - return new bignumber_js_1.default(fee.toString()); - } - const base = await baseWeb3HelperFactory(provider); - return Object.assign(Object.assign({}, base), { async balanceWrapped(address, chain_nonce) { - const bal = await erc1155.balanceOf(address, chain_nonce); - return new bignumber_js_1.default(bal.toString()); - }, - async balanceWrappedBatch(address, chain_nonces) { - const bals = await erc1155.balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces); - return new Map(bals.map((v, i) => [chain_nonces[i], new bignumber_js_1.default(v.toString())])); - }, - async transferNativeToForeign(sender, chain_nonce, to, value, txFees) { - const totalVal = ethers_1.BigNumber.from(value.toString()).add(ethers_1.BigNumber.from(txFees.toString())); - const res = await signedMinter(sender).freeze(chain_nonce, to, { - value: totalVal, - }); - return await extractTxn(res, "Transfer"); - }, - async transferNftToForeign(sender, chain_nonce, to, id, txFees) { - const erc = new ethers_1.Contract(id.contract, fakeERC721_json_1.abi, w3); - const ta = await erc.connect(sender).approve(minter.address, id.token); - await ta.wait(); - const txr = await minter - .connect(sender) - .freeze_erc721(id.contract, id.token, chain_nonce, to, { - value: ethers_1.BigNumber.from(txFees.toString()), - }); - return await extractTxn(txr, "TransferErc721"); - }, - async unfreezeWrapped(sender, chain_nonce, to, value, txFees) { - const res = await signedMinter(sender).withdraw(chain_nonce, to, value, { - value: ethers_1.BigNumber.from(txFees.toString()), - }); - return await extractTxn(res, "Unfreeze"); - }, - async unfreezeWrappedNft(sender, to, id, txFees) { - const res = await signedMinter(sender).withdraw_nft(to, id, { - value: ethers_1.BigNumber.from(txFees.toString()), - }); - return await extractTxn(res, "UnfreezeNft"); - }, - nftUri, - decodeWrappedNft(raw_data) { - const u8D = js_base64_1.Base64.toUint8Array(raw_data); - const packed = encoding_1.NftPacked.deserializeBinary(u8D); - return { - chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8(), - }; - }, - async decodeUrlFromRaw(data) { - const packed = encoding_1.NftEthNative.deserializeBinary(data); - const nft_info = { - contract_type: contractTypeFromNftKind(packed.getNftKind()), - contract: packed.getContractAddr(), - token: ethers_1.BigNumber.from(packed.getId()), - }; - return await nftUri(nft_info); - }, - async estimateValidateTransferNft(validators, to, nft) { - // Protobuf is not deterministic, though perhaps we can approximate this statically - const tokdat = new encoding_1.NftEthNative(); - tokdat.setId(nft.token.toString()); - tokdat.setNftKind(1); - tokdat.setContractAddr(nft.contract); - const encoded = new encoding_1.NftPacked(); - encoded.setChainNonce(0x1351); - encoded.setData(tokdat.serializeBinary()); - const utx = await minter.populateTransaction.validate_transfer_nft(randomAction(), to, Buffer.from(encoded.serializeBinary()).toString("base64")); - return await estimateGas(validators, utx); - }, - async estimateValidateUnfreezeNft(validators, to, nft_data) { - const nft_dat = encoding_1.NftEthNative.deserializeBinary(nft_data); - const utx = await minter.populateTransaction.validate_unfreeze_nft(randomAction(), to, ethers_1.BigNumber.from(nft_dat.getId().toString()), nft_dat.getContractAddr()); - return await estimateGas(validators, utx); - } }); -} -exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGdFQUFxQztBQWNyQyxtQ0FNZ0I7QUFNaEIsNENBQTZDO0FBQzdDLHdEQUF1RDtBQUN2RCwwREFBeUQ7QUFDekQsK0RBQWlEO0FBQ2pELHNEQUFrRTtBQUNsRSx5Q0FBbUM7QUE4RW5DLFNBQVMsdUJBQXVCLENBQUMsSUFBVztJQUMxQyxPQUFPLElBQUksS0FBSyx1QkFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQjtJQUVsQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBUyxDQUFDLHFCQUFVLENBQUMsQ0FBQztJQUU3QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlO1lBQzNCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6Qyx3REFBd0Q7WUFDeEQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBYTtZQUM5QixNQUFNLE9BQU8sR0FBRyx3QkFBZSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQVk7WUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBUSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFekQsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQTFCRCxzREEwQkM7QUFFRDs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFFBQWtCLEVBQ2xCLFdBQW1CLEVBQ25CLFVBQXFCLEVBQ3JCLFlBQW9CO0lBRXBCLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUVwQixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFRLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV6RCxNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFTLENBQUMsc0JBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQVEsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTVELFNBQVMsWUFBWSxDQUFDLE1BQWM7UUFDbEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLLFVBQVUsVUFBVSxDQUN2QixHQUF3QixFQUN4QixPQUFlO1FBRWYsTUFBTSxPQUFPLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtZQUNyQixNQUFNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxNQUFNLFNBQVMsR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEtBQUssVUFBVSxNQUFNLENBQUMsSUFBZ0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLFFBQVEsRUFBRTtZQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxxQkFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0wsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUUsQ0FDeEIsa0JBQUssQ0FBQyxJQUFJLENBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQ25FLENBQUM7SUFFSixLQUFLLFVBQVUsV0FBVyxDQUN4QixLQUFlLEVBQ2YsR0FBeUI7UUFFekIsSUFBSSxHQUFHLEdBQUcsa0JBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEIsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN2QyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNoQixJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO2dCQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9ELEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25CO1FBQ0QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUV0QyxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVuRCx1Q0FDSyxJQUFJLEtBQ1AsS0FBSyxDQUFDLGNBQWMsQ0FDbEIsT0FBZSxFQUNmLFdBQW1CO1lBRW5CLE1BQU0sR0FBRyxHQUFHLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFFMUQsT0FBTyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsT0FBZSxFQUNmLFlBQXNCO1lBRXRCLE1BQU0sSUFBSSxHQUFZLE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FDaEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQ3hDLFlBQVksQ0FDYixDQUFDO1lBRUYsT0FBTyxJQUFJLEdBQUcsQ0FDWixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDbkUsQ0FBQztRQUNKLENBQUM7UUFDRCxLQUFLLENBQUMsdUJBQXVCLENBQzNCLE1BQWMsRUFDZCxXQUFtQixFQUNuQixFQUFVLEVBQ1YsS0FBa0IsRUFDbEIsTUFBbUI7WUFFbkIsTUFBTSxRQUFRLEdBQUcsa0JBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUMvQyxrQkFBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDOUIsQ0FBQztZQUNGLE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO2dCQUM3RCxLQUFLLEVBQUUsUUFBUTthQUNoQixDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixNQUFjLEVBQ2QsV0FBbUIsRUFDbkIsRUFBVSxFQUNWLEVBQWMsRUFDZCxNQUFtQjtZQUVuQixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxxQkFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sRUFBRSxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFdkUsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFaEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNO2lCQUNyQixPQUFPLENBQUMsTUFBTSxDQUFDO2lCQUNmLGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRTtnQkFDckQsS0FBSyxFQUFFLGtCQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNyQyxDQUFDLENBQUM7WUFFTCxPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsZUFBZSxDQUNuQixNQUFjLEVBQ2QsV0FBbUIsRUFDbkIsRUFBVSxFQUNWLEtBQWtCLEVBQ2xCLE1BQW1CO1lBRW5CLE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtnQkFDdEUsS0FBSyxFQUFFLGtCQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNyQyxDQUFDLENBQUM7WUFFSCxPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixNQUFjLEVBQ2QsRUFBVSxFQUNWLEVBQWEsRUFDYixNQUFtQjtZQUVuQixNQUFNLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtnQkFDMUQsS0FBSyxFQUFFLGtCQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNyQyxDQUFDLENBQUM7WUFFSCxPQUFPLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsTUFBTTtRQUNOLGdCQUFnQixDQUFDLFFBQWdCO1lBQy9CLE1BQU0sR0FBRyxHQUFHLGtCQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sTUFBTSxHQUFHLG9CQUFTLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFaEQsT0FBTztnQkFDTCxXQUFXLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDbkMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEVBQUU7YUFDNUIsQ0FBQztRQUNKLENBQUM7UUFDRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBZ0I7WUFDckMsTUFBTSxNQUFNLEdBQUcsdUJBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRztnQkFDZixhQUFhLEVBQUUsdUJBQXVCLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUMzRCxRQUFRLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRTtnQkFDbEMsS0FBSyxFQUFFLGtCQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNsQyxDQUFDO1lBRUYsT0FBTyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLDJCQUEyQixDQUMvQixVQUFvQixFQUNwQixFQUFVLEVBQ1YsR0FBZTtZQUVmLG1GQUFtRjtZQUNuRixNQUFNLE1BQU0sR0FBRyxJQUFJLHVCQUFZLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXJDLE1BQU0sT0FBTyxHQUFHLElBQUksb0JBQVMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUUxQyxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FDaEUsWUFBWSxFQUFFLEVBQ2QsRUFBRSxFQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUMxRCxDQUFDO1lBRUYsT0FBTyxNQUFNLFdBQVcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELEtBQUssQ0FBQywyQkFBMkIsQ0FDL0IsVUFBb0IsRUFDcEIsRUFBVSxFQUNWLFFBQW9CO1lBRXBCLE1BQU0sT0FBTyxHQUFHLHVCQUFZLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQ2hFLFlBQVksRUFBRSxFQUNkLEVBQUUsRUFDRixrQkFBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDdEMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUMxQixDQUFDO1lBRUYsT0FBTyxNQUFNLFdBQVcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxJQUNEO0FBQ0osQ0FBQztBQWhORCw4Q0FnTkMifQ== \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 86917106d..000000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./helpers/chain"; -export * from "./helpers/elrond"; -export * from "./helpers/web3"; -export * from "./helpers/tron"; -export * from "./socket"; diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 2339c8bab..000000000 --- a/dist/index.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./helpers/chain"), exports); -__exportStar(require("./helpers/elrond"), exports); -__exportStar(require("./helpers/web3"), exports); -__exportStar(require("./helpers/tron"), exports); -__exportStar(require("./socket"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0IsaURBQStCO0FBQy9CLDJDQUF5QiJ9 \ No newline at end of file diff --git a/dist/socket.d.ts b/dist/socket.d.ts deleted file mode 100644 index 04ce4c8c6..000000000 --- a/dist/socket.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ManagerOptions, SocketOptions } from "socket.io-client"; -/** - * Tracker for cross chain transaction - */ -export declare type TxnSocketHelper = { - /** - * - * @param chain Nonce of the target chain - * @param action_id Identifier for tracking a cross chain transaction - * @returns transaction hash on the foreign chain - */ - waitTxHash(chain: number, action_id: string): Promise; -}; -/** - * Create a [[TxnSocketHelper]] - * - * @param uri URI of the Migration-Validator socket api - * @param options socket.io options - */ -export declare function txnSocketHelper(uri: string, options?: Partial): TxnSocketHelper; diff --git a/dist/socket.js b/dist/socket.js deleted file mode 100644 index fe20cc5f8..000000000 --- a/dist/socket.js +++ /dev/null @@ -1,72 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.txnSocketHelper = void 0; -const socket_io_client_1 = require("socket.io-client"); -function txResBuf() { - const inner = {}; - const requireChain = (chain_id) => { - if (inner[chain_id] === undefined) { - inner[chain_id] = {}; - } - }; - return { - getResolver(chain_id, action_id) { - var _a; - requireChain(chain_id); - return (_a = inner[chain_id][action_id]) === null || _a === void 0 ? void 0 : _a.resolve; - }, - setResolver(chain_id, action_id, resolver) { - requireChain(chain_id); - inner[chain_id][action_id] = { resolve: resolver }; - }, - getEventRes(chain_id, action_id) { - var _a; - requireChain(chain_id); - return (_a = inner[chain_id][action_id]) === null || _a === void 0 ? void 0 : _a.event_res; - }, - setEventRes(chain_id, action_id, res) { - requireChain(chain_id); - inner[chain_id][action_id] = { event_res: res }; - }, - unsetAction(chain_id, action_id) { - requireChain(chain_id); - inner[chain_id][action_id] = undefined; - }, - }; -} -/** - * Create a [[TxnSocketHelper]] - * - * @param uri URI of the Migration-Validator socket api - * @param options socket.io options - */ -function txnSocketHelper(uri, options) { - const socket = socket_io_client_1.io(uri, options); - const buf = txResBuf(); - function add_event(chain, id, hash) { - const resolve = buf.getResolver(chain, id); - if (resolve === undefined) { - buf.setEventRes(chain, id, hash); - return; - } - resolve(hash); - } - socket.on("tx_executed_event", (chain, action_id, hash) => { - add_event(chain, action_id, hash); - }); - return { - async waitTxHash(chain, action_id) { - const hash = buf.getEventRes(chain, action_id); - if (hash !== undefined) { - buf.unsetAction(chain, action_id); - return hash; - } - const hashP = new Promise((r) => { - buf.setResolver(chain, action_id, r); - }); - return await hashP; - }, - }; -} -exports.txnSocketHelper = txnSocketHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBcUU7QUEyQ3JFLFNBQVMsUUFBUTtJQUNmLE1BQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7SUFFaEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsV0FBVyxDQUNULFFBQWdCLEVBQ2hCLFNBQWlCOztZQUVqQixZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsT0FBTyxNQUFBLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsMENBQUUsT0FBTyxDQUFDO1FBQzdDLENBQUM7UUFDRCxXQUFXLENBQ1QsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsUUFBZ0M7WUFFaEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXZCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsV0FBVyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7O1lBQzdDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QixPQUFPLE1BQUEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQywwQ0FBRSxTQUFTLENBQUM7UUFDL0MsQ0FBQztRQUNELFdBQVcsQ0FBQyxRQUFnQixFQUFFLFNBQWlCLEVBQUUsR0FBVztZQUMxRCxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2xELENBQUM7UUFDRCxXQUFXLENBQUMsUUFBZ0IsRUFBRSxTQUFpQjtZQUM3QyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN6QyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FDN0IsR0FBVyxFQUNYLE9BQWlEO0lBRWpELE1BQU0sTUFBTSxHQUFHLHFCQUFFLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sR0FBRyxHQUFhLFFBQVEsRUFBRSxDQUFDO0lBRWpDLFNBQVMsU0FBUyxDQUFDLEtBQWEsRUFBRSxFQUFVLEVBQUUsSUFBWTtRQUN4RCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pDLE9BQU87U0FDUjtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQUUsQ0FDUCxtQkFBbUIsRUFDbkIsQ0FBQyxLQUFhLEVBQUUsU0FBaUIsRUFBRSxJQUFZLEVBQUUsRUFBRTtRQUNqRCxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQ0YsQ0FBQztJQUVGLE9BQU87UUFDTCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWEsRUFBRSxTQUFpQjtZQUMvQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMvQyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ3RCLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNsQyxPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsTUFBTSxLQUFLLEdBQW9CLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQy9DLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sTUFBTSxLQUFLLENBQUM7UUFDckIsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBdENELDBDQXNDQyJ9 \ No newline at end of file From 7232dabf84a9ba1e7e3b63ebb96e2bbdeacade78 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Oct 2021 18:49:57 +0530 Subject: [PATCH 043/956] elrond: do multi esdt transfer for tx fees --- src/helpers/elrond.ts | 50 +++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 623f53430..5dd2cbdf5 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -49,6 +49,9 @@ const ESDT_ISSUE_ADDR = new Address( ); const ESDT_ISSUE_COST = "50000000000000000"; +const NFT_TRANSFER_COST = new BigNumber(40000000); +const NFT_UNFREEZE_COST = new BigNumber(35000000); + /** * Information required to perform NFT transfers in this chain */ @@ -234,7 +237,7 @@ export const elrondHelperFactory: ( esdt_swap_address: string, esdt: string, esdt_nft: string, - //esdt_swap: string + esdt_swap: string ) => { const provider = new ProxyProvider(node_uri); await NetworkConfig.getDefault().sync(provider); @@ -245,8 +248,10 @@ export const elrondHelperFactory: ( }); const esdtHex = Buffer.from(esdt, "utf-8"); const esdtNftHex = Buffer.from(esdt_nft, "utf-8"); - //const esdtSwaphex = Buffer.from(esdt_swap, "utf-8"); + const esdtSwaphex = Buffer.from(esdt_swap, "utf-8"); const decoder = new TextDecoder(); + const networkConfig = await provider.getNetworkConfig(); + const gasPrice = networkConfig.MinGasPrice.valueOf(); const syncAccount = async (signer: ISigner) => { const account = new Account(signer.getAddress()); @@ -371,17 +376,22 @@ export const elrondHelperFactory: ( chain_nonce: number, address: Address, to: string, - { token, nonce }: NftInfo + { token, nonce }: NftInfo, + tx_fees: BigNumber ) => { return new Transaction({ receiver: address, gasLimit: new GasLimit(70000000), data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTTransfer")) + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .addArg(new AddressValue(mintContract)) + .addArg(new BigUIntValue(new BigNumber(2))) .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) .addArg(new U64Value(new BigNumber(nonce))) .addArg(new BigUIntValue(new BigNumber(1))) - .addArg(new AddressValue(mintContract)) + .addArg(new TokenIdentifierValue(esdtSwaphex)) + .addArg(new U64Value(new BigNumber(0x0))) + .addArg(new BigUIntValue(tx_fees)) .addArg(new BytesValue(Buffer.from("freezeSendNft", "ascii"))) .addArg(new U64Value(new BigNumber(chain_nonce))) .addArg(new BytesValue(Buffer.from(to, "ascii"))) @@ -389,16 +399,20 @@ export const elrondHelperFactory: ( }); }; - const unsignedUnfreezeNftTxn = (address: Address, to: string, id: number) => { + const unsignedUnfreezeNftTxn = (address: Address, to: string, id: number, tx_fees: BigNumber) => { return new Transaction({ receiver: address, gasLimit: new GasLimit(70000000), data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTTransfer")) + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .addArg(new AddressValue(mintContract)) + .addArg(new BigUIntValue(new BigNumber(2))) .addArg(new TokenIdentifierValue(esdtNftHex)) .addArg(new U64Value(new BigNumber(id))) .addArg(new BigUIntValue(new BigNumber(1))) - .addArg(new AddressValue(mintContract)) + .addArg(new TokenIdentifierValue(esdtSwaphex)) + .addArg(new U64Value(new BigNumber(0x0))) + .addArg(new BigUIntValue(tx_fees)) .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) .addArg(new BytesValue(Buffer.from(to, "ascii"))) .build(), @@ -566,6 +580,13 @@ export const elrondHelperFactory: ( return [tx, id]; } + function estimateGas( + base_fees: BigNumber, + cnt: number + ) { + return base_fees.times((cnt+1)*gasPrice); // assume execution takes about twice as much gas fees + } + return { async balance(address: string | Address): Promise { const wallet = new Account(new Address(address)); @@ -614,7 +635,7 @@ export const elrondHelperFactory: ( chain_nonce, sender.getAddress(), to, - value + value, ); const tx = await signAndSend(sender, txu); @@ -632,7 +653,8 @@ export const elrondHelperFactory: ( chain_nonce, sender.getAddress(), to, - info + info, + new BigNumber(txFees.toString()) ); const tx = await signAndSend(sender, txu); @@ -645,7 +667,7 @@ export const elrondHelperFactory: ( txFees: EasyBalance ): Promise<[Transaction, EventIdent]> { await doEgldSwap(sender, txFees); - const txu = unsignedUnfreezeNftTxn(sender.getAddress(), to, nonce); + const txu = unsignedUnfreezeNftTxn(sender.getAddress(), to, nonce, new BigNumber(txFees.toString())); const tx = await signAndSend(sender, txu); return await extractId(tx); @@ -709,6 +731,12 @@ export const elrondHelperFactory: ( return Base64.atob(locked!.uris[0]); }, + async estimateValidateTransferNft(validators: string[]) { + return estimateGas(NFT_TRANSFER_COST, validators.length) // TODO: properly estimate NFT_TRANSFER_COST + }, + async estimateValidateUnfreezeNft(validators: string[]) { + return estimateGas(NFT_UNFREEZE_COST, validators.length) // TODO: properly estimate NFT_UNFREEZE_COST + } }; }; From a0f831859008e24f66249ece603ff089883bee10 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Oct 2021 18:56:17 +0530 Subject: [PATCH 044/956] .gitignore: add dist --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6d104f94e..5cdd2edad 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ src/**.js coverage *.log tsconfig.tsbuildinfo -dist/docs +dist From 03721760012f64389e7580fd322822b05026326a Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Oct 2021 18:58:01 +0530 Subject: [PATCH 045/956] workflows: release: use yarn --- .github/workflows/release.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 767e82ba6..fcbd4a48f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,11 +16,18 @@ jobs: - name: git-checkout uses: actions/checkout@v2 - - name: Install all dependencies - run: npm install + - name: setup node.js + uses: actions/setup-node@v2.4.0 + with: + node-version: 14.x + cache: yarn + cache-dependency-path: yarn.lock - - name: Build - run: npm run build + - name: dep + run: yarn + + - name: build + run: yarn build - name: Prepare Master Release uses: s0/git-publish-subdir-action@develop From f32f8f1398940fb000edf9d372d5ba3fed99a9ec Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Oct 2021 19:16:53 +0530 Subject: [PATCH 046/956] workflows: release: add package.json as well --- .github/workflows/release.yml | 7 +++++-- package.json | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fcbd4a48f..972ddc084 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,6 +28,9 @@ jobs: - name: build run: yarn build + + - name: prepare package + run: mkdir out && mv package.json out && mv dist out - name: Prepare Master Release uses: s0/git-publish-subdir-action@develop @@ -35,7 +38,7 @@ jobs: env: REPO: self BRANCH: master-dist - FOLDER: dist + FOLDER: out GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} MESSAGE: "Build: ({sha}) {msg}" - name: Prepare Branch Release @@ -44,6 +47,6 @@ jobs: env: REPO: self BRANCH: bleeding-edge - FOLDER: dist + FOLDER: out GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} MESSAGE: "Build: ({sha}) {msg}" \ No newline at end of file diff --git a/package.json b/package.json index dfc8c8ba5..4e8919339 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,10 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/xp-network/bridge-ui-logics.git" + }, "scripts": { "build": "tsc -p tsconfig.json" }, From ea0b2812800e06bf300b7e490f638d1937a172c6 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Oct 2021 21:36:45 +0530 Subject: [PATCH 047/956] elrond: improve cost estimations --- src/helpers/elrond.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 5dd2cbdf5..804b89c37 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -49,8 +49,8 @@ const ESDT_ISSUE_ADDR = new Address( ); const ESDT_ISSUE_COST = "50000000000000000"; -const NFT_TRANSFER_COST = new BigNumber(40000000); -const NFT_UNFREEZE_COST = new BigNumber(35000000); +const NFT_TRANSFER_COST = new BigNumber(30000000); +const NFT_UNFREEZE_COST = new BigNumber(25000000); /** * Information required to perform NFT transfers in this chain From 649502b083800a5ce985ceec517b18b72de45200 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Oct 2021 22:23:07 +0530 Subject: [PATCH 048/956] elrond: multiply gas price by modifier --- src/helpers/elrond.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 804b89c37..18245129d 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -49,8 +49,8 @@ const ESDT_ISSUE_ADDR = new Address( ); const ESDT_ISSUE_COST = "50000000000000000"; -const NFT_TRANSFER_COST = new BigNumber(30000000); -const NFT_UNFREEZE_COST = new BigNumber(25000000); +const NFT_TRANSFER_COST = new BigNumber(45000000); +const NFT_UNFREEZE_COST = new BigNumber(45000000); /** * Information required to perform NFT transfers in this chain @@ -251,7 +251,7 @@ export const elrondHelperFactory: ( const esdtSwaphex = Buffer.from(esdt_swap, "utf-8"); const decoder = new TextDecoder(); const networkConfig = await provider.getNetworkConfig(); - const gasPrice = networkConfig.MinGasPrice.valueOf(); + const gasPriceModif = networkConfig.MinGasPrice.valueOf() * networkConfig.GasPriceModifier.valueOf(); const syncAccount = async (signer: ISigner) => { const account = new Account(signer.getAddress()); @@ -584,7 +584,7 @@ export const elrondHelperFactory: ( base_fees: BigNumber, cnt: number ) { - return base_fees.times((cnt+1)*gasPrice); // assume execution takes about twice as much gas fees + return base_fees.times((cnt+1)*gasPriceModif); // assume execution takes about twice as much gas fees } return { From b41c71b52a7609c601c80c745ab0c660958607a3 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 11 Oct 2021 18:24:10 +0530 Subject: [PATCH 049/956] elrond: doEgldSwap: wait for egld swap to confirm --- src/helpers/elrond.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 18245129d..f5a6ef82b 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -311,7 +311,7 @@ export const elrondHelperFactory: ( throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); }; - const doEgldSwap = ( + const doEgldSwap = async ( sender: ISigner, value: EasyBalance ) => { @@ -324,7 +324,10 @@ export const elrondHelperFactory: ( .build() }) - return signAndSend(sender, utx) + const tx = await signAndSend(sender, utx); + await transactionResult(tx.getHash()); + + return tx; } const unsignedTransferTxn = ( From 2daef8680cbf79bc41bf6661325c4af3e83dc739 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 12 Oct 2021 15:10:45 +0530 Subject: [PATCH 050/956] elrond: mintable esdts --- src/helpers/elrond.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index f5a6ef82b..3cb058550 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -188,9 +188,7 @@ type EventIdent = number; */ export type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & - // TODO: Use TX Fees TransferForeign & - // TODO: Use TX Fees UnfreezeForeign & TransferNftForeign< ISigner, @@ -213,7 +211,9 @@ export type ElrondHelper = BalanceCheck & ListNft & GetLockedNft & DecodeWrappedNft & - DecodeRawNft; + DecodeRawNft & { + mintableEsdts(address: Address): Promise + }; /** * Create an object implementing cross chain utilities for elrond @@ -702,6 +702,13 @@ export const elrondHelperFactory: ( await signAndSend(owner, txu); }, + async mintableEsdts(address: Address): Promise { + const res = await providerRest.get( + `/address/${address.toString()}/esdts-with-role/ESDTRoleNFTCreate` + ); + + return res.data["data"]["tokens"]; + }, listNft, getLockedNft, async setESDTRole( From ded231a2e82e6496ded870f373c866d4d60d16f4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 12 Oct 2021 19:26:23 +0530 Subject: [PATCH 051/956] feat(chainFactory): create a cross chain factory Incomplete ..... (1/n) --- src/factory/crossChainHelper.ts | 132 ++++++++++++++++++++++++++++++++ src/factory/rpcUrls.ts | 26 +++++++ 2 files changed, 158 insertions(+) create mode 100644 src/factory/crossChainHelper.ts create mode 100644 src/factory/rpcUrls.ts diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts new file mode 100644 index 000000000..cba52d1fd --- /dev/null +++ b/src/factory/crossChainHelper.ts @@ -0,0 +1,132 @@ +import { Interface } from "@ethersproject/abi/lib/interface"; +import { Provider } from "@ethersproject/abstract-provider"; +//@ts-ignore +import { TronWeb } from "tronweb"; +import { + TronHelper, + Web3Helper, + ElrondHelper, + web3HelperFactory, + tronHelperFactory, + elrondHelperFactory, +} from ".."; +type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; + +type ChainFactory = { + inner(chainNonce: number): Promise; +}; + +interface ElrondParams { + node_uri: string; + minter_address: string; + esdt_swap_address: string; + esdt: string; + esdt_nft: string; + esdt_swap: string; +} + +interface TronParams { + provider: TronWeb; + middleware_uri: string; + erc1155_addr: string; + minter_addr: string; + minter_abi: JSON; +} + +interface Web3Params { + provider: Provider; + minter_addr: string; + minter_abi: Interface; + erc1155_addr: string; +} + +export const CHAIN_INFO = { + 2: { + name: "Elrond", + nonce: 2, + native: "EGLD", + decimals: 1e18, + constructor: elrondHelperFactory, + }, + 3: { + name: "Heco", + nonce: 3, + chainId: 256, + decimals: 1e18, + blockExplorerUrls: "https://testnet.hecoinfo.com/tx", + constructor: web3HelperFactory, + }, + 4: { + name: "BSC", + nonce: 4, + chainId: 97, + decimals: 1e18, + blockExplorerUrls: "https://testnet.bscscan.com/tx", + constructor: web3HelperFactory, + }, + 6: { + name: "Avalanche", + nonce: 6, + chainId: 43113, + decimals: 1e18, + blockExplorerUrls: "https://cchain.explorer.avax-test.network/tx", + constructor: web3HelperFactory, + }, + 7: { + name: "Polygon", + nonce: 0x7, + chainId: 80001, + decimals: 1e18, + blockExplorerUrls: "https://mumbai.polygonscan.com/tx", + constructor: web3HelperFactory, + }, + 8: { + name: "Fantom", + nonce: 0x8, + decimals: 1e18, + chainId: 4002, + blockExplorerUrls: "https://explorer.testnet.fantom.network/transactions", + constructor: web3HelperFactory, + }, + 9: { + name: "Tron", + nonce: 0x9, + decimals: 1e6, + blockExplorerUrls: "https://shasta.tronscan.org/#/transaction", + constructor: tronHelperFactory, + }, + 11: { + name: "Celo", + nonce: 0xb, + decimals: 1e18, + chainId: 44787, + blockExplorerUrls: "https://alfajores-blockscout.celo-testnet.org/tx", + constructor: web3HelperFactory, + }, + 12: { + name: "Harmony", + nonce: 0xc, + decimals: 1e18, + chainId: 1666700000, + blockExplorerUrls: "https://explorer.pops.one/tx", + constructor: web3HelperFactory, + }, +}; + + +export function chainFactory( + elrondParams: ElrondParams, + tronParams: TronParams, + web3Params: Web3Params +): ChainFactory { + let map = new Map(); + return { + inner: async (chainNonce: number): Promise => { + let helper = map.get(chainNonce); + if (helper === undefined) { + helper = await CHAIN_INFO[chainNonce].constructor(); + } + return helper!; + }, + }; +} diff --git a/src/factory/rpcUrls.ts b/src/factory/rpcUrls.ts new file mode 100644 index 000000000..0c0442a67 --- /dev/null +++ b/src/factory/rpcUrls.ts @@ -0,0 +1,26 @@ +const HECO = "https://http-testnet.hecochain.com"; + +const BSC = "https://data-seed-prebsc-1-s1.binance.org:8545"; + +const AVALANCE = "https://api.avax-test.network/ext/bc/C/rpc"; + +const POLYGON = "https://matic-testnet-archive-rpc.bwarelabs.com"; + +const FANTOM = "https://rpc.testnet.fantom.network/"; + +const TRON = "https://api.shasta.trongrid.io/"; + +const CELO = "https://alfajores-forno.celo-testnet.org"; + +const HARMONY = "https://api.s0.b.hmny.io"; + +export const RPCURI = { + HECO, + BSC, + AVALANCE, + POLYGON, + FANTOM, + TRON, + CELO, + HARMONY, +}; From 9c3ded576e00ce36e37dbd6357503f3bf846c133 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 13 Oct 2021 17:08:28 +0530 Subject: [PATCH 052/956] tron: proper tx fees integration --- package.json | 3 +- src/helpers/tron.ts | 184 +++++++++++++++++++++++++++++++++++--------- yarn.lock | 26 +++++++ 3 files changed, 175 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index 4e8919339..2a7cc0b38 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "license": "MIT", "repository": { "type": "git", - "url": "https://github.com/xp-network/bridge-ui-logics.git" + "url": "https://github.com/xp-network/bridge-ui-logics.git" }, "scripts": { "build": "tsc -p tsconfig.json" @@ -37,6 +37,7 @@ "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", "testsuite-ts": "git+https://github.com/xp-network/bridge-ui-logics#web3-new", + "tronstation": "^1.0.1", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/migration-validator#master" } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 18ea730bd..bf8506c88 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -4,6 +4,7 @@ import { BatchWrappedBalanceCheck, DecodeRawNft, DecodeWrappedNft, + EstimateTxFees, MintNft, TransferForeign, TransferNftForeign, @@ -13,31 +14,68 @@ import { WrappedNft, } from "./chain"; import { abi as ERC1155_abi } from "../fakeERC1155.json"; - -// @ts-ignore -import { TronWeb } from "tronweb"; -import { EthNftInfo, MintArgs } from "./web3"; - -import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; import { abi as ERC721_abi, bytecode as ERC721_bytecode, } from "../fakeERC721.json"; +import { + abi as XPNFT_abi, + bytecode as XPNFT_bytecode, +} from "../XPNft.json"; +import { + abi as XPNET_abi, + bytecode as XPNET_bytecode, +} from "../XPNet.json"; +import { + abi as Minter_abi, + bytecode as Minter_bytecode +} from "../Minter.json"; + +import axios from "axios"; +// @ts-expect-error no types cope +import { TronWeb } from "tronweb"; +// @ts-expect-error no types cope +import TronStation from 'tronstation'; +import { EthNftInfo, MintArgs } from "./web3"; +import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; import { Base64 } from "js-base64"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; -import axios from "axios"; -import { EstimateTxFees } from ".."; + +export type MinterRes = { + // Minter smart contract + minter: string, + // XPNFT (Wrapper for foreign NFTs) contracte + xpnft: string, + // XPNET (Wrapper for foregin fungible tokens) contract + xpnet: string, + // Whitelisted Native NFT contracts + whitelist: string[] +} export type BaseTronHelper = BalanceCheck & MintNft & { /** * - * Deploy an ERC1155 smart contract + * Deploy an ERC721 user minter smart contract * - * @argument owner Owner of this smart contract + * @argument deployer deployer of this smart contract * @returns Address of the deployed smart contract */ - deployErc721(owner: string): Promise; + deployErc721(deployer: string): Promise; + /** + * Deploy Minter Smart Contract + * + * @argument deployer deployer of the smart contract + * @argument validators address of validators of the smart contract + * @argument threshold threshold for executing an action + * @argument whitelist optional whitelisted nfts contract (deploys one if empty/undefined) + */ + deployMinter( + deployer: string, + validators: string[], + threshold: number, + whitelist: string[] | undefined, + ): Promise; }; export type TronHelper = BaseTronHelper & @@ -61,8 +99,8 @@ export async function baseTronHelperFactory( return provider.setPrivateKey(signer); }; - const deployErc721_i = async (owner: string) => { - setSigner(owner); + const deployErc721_i = async (deployer: string) => { + setSigner(deployer); const contract = await provider.contract().new({ abi: ERC721_abi, @@ -73,6 +111,30 @@ export async function baseTronHelperFactory( return contract; }; + const deployErc1155_i = async (owner: string) => { + setSigner(owner); + + const contract = await provider.contract().new({ + abi: XPNET_abi, + bytecode: XPNET_bytecode, + feeLimit: 3000000000 + }); + + return contract; + } + + const deployXpNft = async (deployer: string) => { + setSigner(deployer); + + const contract = await provider.contract().new({ + abi: XPNFT_abi, + bytecode: XPNFT_bytecode, + feeLimit: 3000000000 + }); + + return contract; + } + return { async mintNft(owner: string, options: MintArgs): Promise { setSigner(owner); @@ -85,6 +147,36 @@ export async function baseTronHelperFactory( }, deployErc721: async (owner) => await deployErc721_i(owner).then((c) => c.address), + async deployMinter( + deployer: string, + validators: string[], + threshold: number, + whitelist: string[] = [] + ): Promise { + if (whitelist.length == 0) { + const unft = await deployErc721_i(deployer); + whitelist.push(unft.address); + } + + const nft_token = await deployXpNft(deployer); + const token = await deployErc1155_i(deployer); + const minter = await provider.contract().new({ + abi: Minter_abi, + bytecode: Minter_bytecode, + feeLimit: 3000000000, + parameters: [validators, whitelist, threshold, nft_token.address, token.address] + }); + + await nft_token.transferOwnership(minter.address).send(); + await token.transferOwnership(minter.address).send(); + + return { + minter: minter.address, + xpnft: nft_token.address, + xpnet: token.address, + whitelist + } + } }; } @@ -95,6 +187,7 @@ export async function tronHelperFactory( minter_addr: string, minter_abi: JSON ): Promise { + const station = new TronStation(provider) const base = await baseTronHelperFactory(provider); const erc1155 = await provider.contract(ERC1155_abi, erc1155_addr); const minter = await provider.contract(minter_abi, minter_addr); @@ -147,22 +240,34 @@ export async function tronHelperFactory( } const randomAction = () => - EthBN.from( - Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000)) - ); + (Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000))) + .toString(); - async function estimateGas(addrs: string[], utx: any): Promise { - let fee = EthBN.from(0); + async function estimateGas(addrs: string[], func_sig: string, params: { type: string, value: any }[]): Promise { + let energy = 0; + let bandwidth = 0; + const nrgSun = await station.energy.burnedEnergy2Trx(1, { unit: 'sun' }); + const bandSun = 10; for (const [i, addr] of addrs.entries()) { - utx.from = addr; - let tf = EthBN.from(400000); // TODO: Proper estimate - if (i == addrs.length - 1 && addrs.length != 1) tf = tf.mul(2); - fee = fee.add(tf); + const res = await provider.transactionBuilder.triggerConstantContract( + minter.address, + func_sig, + {}, + params, + provider.address.toHex(addr) + ); + let nrg: number = res["energy_used"] + if (i == addrs.length - 1 && addrs.length != 1) nrg *= 2; + energy += nrg; + const tx_raw: string = res["transaction"]["raw_data_hex"]; + bandwidth += tx_raw.length; } - fee = fee.mul(1.41e14); // TODO: proper gas price estimate + // Fee = energy * (sun per energy) + bandwidth * (sun per bandwidth) + // bandwidth = raw tx byte length + const fee = new BigNumber(energy).times(nrgSun).plus(bandwidth*bandSun); - return new BigNumber(fee.toString()); + return fee; } return { @@ -280,13 +385,15 @@ export async function tronHelperFactory( encoded.setChainNonce(0x1351); encoded.setData(tokdat.serializeBinary()); - const utx = minter.validate_transfer_nft( - randomAction(), - to, - Buffer.from(encoded.serializeBinary()).toString("base64") + return await estimateGas( + validators, + "validate_transfer_nft(uint128,address,string)", + [ + { type: "uint128", value: randomAction() }, + { type: "address", value: to }, + { type: "string", value: Buffer.from(encoded.serializeBinary()).toString("base64") } + ] ); - - return await estimateGas(validators, utx); }, async estimateValidateUnfreezeNft( validators: string[], @@ -294,14 +401,17 @@ export async function tronHelperFactory( nft_data: Uint8Array ): Promise { const nft_dat = NftEthNative.deserializeBinary(nft_data); - const utx = minter.validate_unfreeze_nft( - randomAction(), - to, - EthBN.from(nft_dat.getId().toString()), - nft_dat.getContractAddr() - ); - return await estimateGas(validators, utx); + return await estimateGas( + validators, + "validate_unfreeze_nft(uint128,address,uint256,address)", + [ + { type: "uint128", value: randomAction() }, + { type: "address", value: to }, + { type: "uint256", value: nft_dat.getId().toString() }, + { type: "address", value: nft_dat.getContractAddr() } + ] + ); }, }; } diff --git a/yarn.lock b/yarn.lock index 7e5fcacbf..7f73da248 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1853,6 +1853,14 @@ axios@0.21.1, axios@^0.21.1: dependencies: follow-redirects "^1.10.0" +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + backo2@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -2226,6 +2234,11 @@ cookie@~0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -4280,6 +4293,11 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" @@ -4799,6 +4817,14 @@ to-regex-range@^5.0.1: resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= +tronstation@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tronstation/-/tronstation-1.0.1.tgz#b33224cdef5f1c7560763b185f132d9ac35ad3f3" + integrity sha512-iuHjDHw/63ID5pj2PESeGLl7n7IAG6yunupKfOA2l5ekaWhZo6RSscmdwSIqBEdnXFh7Jmd2HJIzowyMFt+/zQ== + dependencies: + "@babel/runtime" "^7.0.0" + babel-runtime "^6.26.0" + tronweb@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.0.0.tgz#a3677d4d2ee1a06231aa0fd75c15ab0d6d55fc91" From 28c222a785c6822661a6826a88203317b3f72e37 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 13 Oct 2021 17:23:11 +0530 Subject: [PATCH 053/956] feat(factory): complete bare minimum factory --- src/consts.ts | 119 +++++++++++++++++++++++++ src/factory/crossChainHelper.ts | 148 ++++++++------------------------ src/factory/rpcUrls.ts | 26 ------ src/helpers/elrond.ts | 115 ++++++++++++++----------- src/helpers/tron.ts | 31 ++++--- src/helpers/web3.ts | 25 +++--- 6 files changed, 258 insertions(+), 206 deletions(-) create mode 100644 src/consts.ts delete mode 100644 src/factory/rpcUrls.ts diff --git a/src/consts.ts b/src/consts.ts new file mode 100644 index 000000000..0ac3cd228 --- /dev/null +++ b/src/consts.ts @@ -0,0 +1,119 @@ +import { CrossChainHelper } from "./factory/crossChainHelper"; +import { elrondHelperFactory, ElrondParams } from "./helpers/elrond"; +import { tronHelperFactory, TronParams } from "./helpers/tron"; +import { web3HelperFactory, Web3Params } from "./helpers/web3"; + +const HECO = "https://http-testnet.hecochain.com"; + +const BSC = "https://data-seed-prebsc-1-s1.binance.org:8545"; + +const AVALANCE = "https://api.avax-test.network/ext/bc/C/rpc"; + +const POLYGON = "https://matic-testnet-archive-rpc.bwarelabs.com"; + +const FANTOM = "https://rpc.testnet.fantom.network/"; + +const TRON = "https://api.shasta.trongrid.io/"; + +const CELO = "https://alfajores-forno.celo-testnet.org"; + +const HARMONY = "https://api.s0.b.hmny.io"; + +// All the supported testnet uri's are here. +export const RPCURI = { + HECO, + BSC, + AVALANCE, + POLYGON, + FANTOM, + TRON, + CELO, + HARMONY, +}; + +interface ChainData { + name: string; + nonce: number; + decimals: number; + constructor: ( + params: Web3Params | TronParams | ElrondParams + ) => Promise; + [key: string]: unknown; +} + +interface ChainInfo { + [nonce: number]: ChainData; +} + +export const CHAIN_INFO: ChainInfo = { + 2: { + name: "Elrond", + nonce: 2, + native: "EGLD", + decimals: 1e18, + constructor: (p) => elrondHelperFactory(p as ElrondParams), + }, + 3: { + name: "Heco", + nonce: 3, + chainId: 256, + decimals: 1e18, + blockExplorerUrls: "https://testnet.hecoinfo.com/tx", + constructor: (p) => web3HelperFactory(p as Web3Params), + }, + 4: { + name: "BSC", + nonce: 4, + chainId: 97, + decimals: 1e18, + blockExplorerUrls: "https://testnet.bscscan.com/tx", + constructor: (p) => web3HelperFactory(p as Web3Params), + }, + 6: { + name: "Avalanche", + nonce: 6, + chainId: 43113, + decimals: 1e18, + blockExplorerUrls: "https://cchain.explorer.avax-test.network/tx", + constructor: (p) => web3HelperFactory(p as Web3Params), + }, + 7: { + name: "Polygon", + nonce: 0x7, + chainId: 80001, + decimals: 1e18, + blockExplorerUrls: "https://mumbai.polygonscan.com/tx", + constructor: (p) => web3HelperFactory(p as Web3Params), + }, + 8: { + name: "Fantom", + nonce: 0x8, + decimals: 1e18, + chainId: 4002, + blockExplorerUrls: "https://explorer.testnet.fantom.network/transactions", + constructor: (p) => web3HelperFactory(p as Web3Params), + }, + 9: { + name: "Tron", + nonce: 0x9, + decimals: 1e6, + blockExplorerUrls: "https://shasta.tronscan.org/#/transaction", + constructor: (p) => tronHelperFactory(p as TronParams), + }, + 11: { + name: "Celo", + nonce: 0xb, + decimals: 1e18, + chainId: 44787, + blockExplorerUrls: "https://alfajores-blockscout.celo-testnet.org/tx", + constructor: (p) => web3HelperFactory(p as Web3Params), + }, + 12: { + name: "Harmony", + nonce: 0xc, + decimals: 1e18, + chainId: 1666700000, + blockExplorerUrls: "https://explorer.pops.one/tx", + constructor: (p) => web3HelperFactory(p as Web3Params), + }, +}; diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index cba52d1fd..de9c6a2cd 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -1,130 +1,56 @@ -import { Interface } from "@ethersproject/abi/lib/interface"; -import { Provider } from "@ethersproject/abstract-provider"; -//@ts-ignore -import { TronWeb } from "tronweb"; -import { - TronHelper, - Web3Helper, - ElrondHelper, - web3HelperFactory, - tronHelperFactory, - elrondHelperFactory, -} from ".."; -type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; +import { ElrondHelper, ElrondParams } from "../helpers/elrond"; +import { TronHelper, TronParams } from "../helpers/tron"; +import { Web3Helper, Web3Params } from "../helpers/web3"; +import { CHAIN_INFO } from "../consts"; + +export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; type ChainFactory = { inner(chainNonce: number): Promise; }; -interface ElrondParams { - node_uri: string; - minter_address: string; - esdt_swap_address: string; - esdt: string; - esdt_nft: string; - esdt_swap: string; +export interface ChainParams { + elrondParams: ElrondParams; + hecoParams: Web3Params; + bscParams: Web3Params; + ropstenParams: Web3Params; + avalancheParams: Web3Params; + polygonParams: Web3Params; + fantomParams: Web3Params; + tronParams: TronParams; + celoParams: Web3Params; + harmonyParams: Web3Params; } -interface TronParams { - provider: TronWeb; - middleware_uri: string; - erc1155_addr: string; - minter_addr: string; - minter_abi: JSON; -} +function mapNonceToParams( + chainParams: ChainParams +): Map { + const cToP = new Map(); -interface Web3Params { - provider: Provider; - minter_addr: string; - minter_abi: Interface; - erc1155_addr: string; -} + cToP.set(2, chainParams.elrondParams); + cToP.set(3, chainParams.hecoParams); + cToP.set(4, chainParams.bscParams); -export const CHAIN_INFO = { - 2: { - name: "Elrond", - nonce: 2, - native: "EGLD", - decimals: 1e18, - constructor: elrondHelperFactory, - }, - 3: { - name: "Heco", - nonce: 3, - chainId: 256, - decimals: 1e18, - blockExplorerUrls: "https://testnet.hecoinfo.com/tx", - constructor: web3HelperFactory, - }, - 4: { - name: "BSC", - nonce: 4, - chainId: 97, - decimals: 1e18, - blockExplorerUrls: "https://testnet.bscscan.com/tx", - constructor: web3HelperFactory, - }, - 6: { - name: "Avalanche", - nonce: 6, - chainId: 43113, - decimals: 1e18, - blockExplorerUrls: "https://cchain.explorer.avax-test.network/tx", - constructor: web3HelperFactory, - }, - 7: { - name: "Polygon", - nonce: 0x7, - chainId: 80001, - decimals: 1e18, - blockExplorerUrls: "https://mumbai.polygonscan.com/tx", - constructor: web3HelperFactory, - }, - 8: { - name: "Fantom", - nonce: 0x8, - decimals: 1e18, - chainId: 4002, - blockExplorerUrls: "https://explorer.testnet.fantom.network/transactions", - constructor: web3HelperFactory, - }, - 9: { - name: "Tron", - nonce: 0x9, - decimals: 1e6, - blockExplorerUrls: "https://shasta.tronscan.org/#/transaction", - constructor: tronHelperFactory, - }, - 11: { - name: "Celo", - nonce: 0xb, - decimals: 1e18, - chainId: 44787, - blockExplorerUrls: "https://alfajores-blockscout.celo-testnet.org/tx", - constructor: web3HelperFactory, - }, - 12: { - name: "Harmony", - nonce: 0xc, - decimals: 1e18, - chainId: 1666700000, - blockExplorerUrls: "https://explorer.pops.one/tx", - constructor: web3HelperFactory, - }, -}; + cToP.set(6, chainParams.avalancheParams); + cToP.set(7, chainParams.polygonParams); + cToP.set(8, chainParams.fantomParams); + cToP.set(9, chainParams.tronParams); + cToP.set(11, chainParams.celoParams); + cToP.set(12, chainParams.harmonyParams); + return cToP; +} -export function chainFactory( - elrondParams: ElrondParams, - tronParams: TronParams, - web3Params: Web3Params -): ChainFactory { +export function chainFactory(chainParams: ChainParams): ChainFactory { let map = new Map(); + let cToP = mapNonceToParams(chainParams); return { inner: async (chainNonce: number): Promise => { let helper = map.get(chainNonce); if (helper === undefined) { - helper = await CHAIN_INFO[chainNonce].constructor(); + helper = await CHAIN_INFO[chainNonce].constructor( + cToP.get(chainNonce)! + ); } return helper!; }, diff --git a/src/factory/rpcUrls.ts b/src/factory/rpcUrls.ts deleted file mode 100644 index 0c0442a67..000000000 --- a/src/factory/rpcUrls.ts +++ /dev/null @@ -1,26 +0,0 @@ -const HECO = "https://http-testnet.hecochain.com"; - -const BSC = "https://data-seed-prebsc-1-s1.binance.org:8545"; - -const AVALANCE = "https://api.avax-test.network/ext/bc/C/rpc"; - -const POLYGON = "https://matic-testnet-archive-rpc.bwarelabs.com"; - -const FANTOM = "https://rpc.testnet.fantom.network/"; - -const TRON = "https://api.shasta.trongrid.io/"; - -const CELO = "https://alfajores-forno.celo-testnet.org"; - -const HARMONY = "https://api.s0.b.hmny.io"; - -export const RPCURI = { - HECO, - BSC, - AVALANCE, - POLYGON, - FANTOM, - TRON, - CELO, - HARMONY, -}; diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 3cb058550..2cb9d1cec 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -129,7 +129,7 @@ export interface IssueESDTNFT { * @param canFreeze Wheteher this ESDT can be frozen * @param canWipe Whether this ESDT can be wiped * @param canTransferNFTCreateRole Whether the NFT Creation role can be transferred - * + * * @returns ticker of the esdt */ issueESDTNft( @@ -212,7 +212,7 @@ export type ElrondHelper = BalanceCheck & GetLockedNft & DecodeWrappedNft & DecodeRawNft & { - mintableEsdts(address: Address): Promise + mintableEsdts(address: Address): Promise; }; /** @@ -224,34 +224,33 @@ export type ElrondHelper = BalanceCheck & * @param esdt Identifier of the ESDT Wrapper * @param esdt_nft Identifier of the ESDT NFT Wrapper */ +export interface ElrondParams { + node_uri: string; + minter_address: string; + esdt_swap_address: string; + esdt: string; + esdt_nft: string; + esdt_swap: string; +} + export const elrondHelperFactory: ( - node_uri: string, - minter_address: string, - esdt_swap_address: string, - esdt: string, - esdt_nft: string, - esdt_swap: string -) => Promise = async ( - node_uri: string, - minter_address: string, - esdt_swap_address: string, - esdt: string, - esdt_nft: string, - esdt_swap: string -) => { - const provider = new ProxyProvider(node_uri); + elrondParams: ElrondParams +) => Promise = async (elrondParams: ElrondParams) => { + const provider = new ProxyProvider(elrondParams.node_uri); await NetworkConfig.getDefault().sync(provider); - const mintContract = new Address(minter_address); - const swapContract = new Address(esdt_swap_address); + const mintContract = new Address(elrondParams.minter_address); + const swapContract = new Address(elrondParams.esdt_swap_address); const providerRest = axios.create({ - baseURL: node_uri, + baseURL: elrondParams.node_uri, }); - const esdtHex = Buffer.from(esdt, "utf-8"); - const esdtNftHex = Buffer.from(esdt_nft, "utf-8"); - const esdtSwaphex = Buffer.from(esdt_swap, "utf-8"); + const esdtHex = Buffer.from(elrondParams.esdt, "utf-8"); + const esdtNftHex = Buffer.from(elrondParams.esdt_nft, "utf-8"); + const esdtSwaphex = Buffer.from(elrondParams.esdt_swap, "utf-8"); const decoder = new TextDecoder(); const networkConfig = await provider.getNetworkConfig(); - const gasPriceModif = networkConfig.MinGasPrice.valueOf() * networkConfig.GasPriceModifier.valueOf(); + const gasPriceModif = + networkConfig.MinGasPrice.valueOf() * + networkConfig.GasPriceModifier.valueOf(); const syncAccount = async (signer: ISigner) => { const account = new Account(signer.getAddress()); @@ -311,24 +310,25 @@ export const elrondHelperFactory: ( throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); }; - const doEgldSwap = async ( - sender: ISigner, - value: EasyBalance - ) => { + const doEgldSwap = async (sender: ISigner, value: EasyBalance) => { const utx = new Transaction({ receiver: swapContract, gasLimit: new GasLimit(50000000), - value: new Balance(Egld.getToken(), Egld.getNonce(), new BigNumber(value.toString())), + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(value.toString()) + ), data: TransactionPayload.contractCall() .setFunction(new ContractFunction("wrapEgld")) - .build() - }) + .build(), + }); const tx = await signAndSend(sender, utx); await transactionResult(tx.getHash()); return tx; - } + }; const unsignedTransferTxn = ( chain_nonce: number, @@ -338,7 +338,11 @@ export const elrondHelperFactory: ( return new Transaction({ receiver: mintContract, gasLimit: new GasLimit(50000000), - value: new Balance(Egld.getToken(), Egld.getNonce(), new BigNumber(value.toString())), + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(value.toString()) + ), data: TransactionPayload.contractCall() .setFunction(new ContractFunction("freezeSend")) .addArg(new U64Value(new BigNumber(chain_nonce))) @@ -402,7 +406,12 @@ export const elrondHelperFactory: ( }); }; - const unsignedUnfreezeNftTxn = (address: Address, to: string, id: number, tx_fees: BigNumber) => { + const unsignedUnfreezeNftTxn = ( + address: Address, + to: string, + id: number, + tx_fees: BigNumber + ) => { return new Transaction({ receiver: address, gasLimit: new GasLimit(70000000), @@ -510,7 +519,11 @@ export const elrondHelperFactory: ( return new Transaction({ receiver: ESDT_ISSUE_ADDR, - value: new Balance(Egld.getToken(), Egld.getNonce(), new BigNumber(ESDT_ISSUE_COST.toString())), + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(ESDT_ISSUE_COST.toString()) + ), gasLimit: new GasLimit(60000000), data: baseArgs.build(), }); @@ -541,7 +554,7 @@ export const elrondHelperFactory: ( token, nonce, }: NftInfo): Promise { - const nfts = await listNft(minter_address); + const nfts = await listNft(elrondParams.minter_address); return nfts.get(`${token}-${nonce.toString()}`); } @@ -583,11 +596,8 @@ export const elrondHelperFactory: ( return [tx, id]; } - function estimateGas( - base_fees: BigNumber, - cnt: number - ) { - return base_fees.times((cnt+1)*gasPriceModif); // assume execution takes about twice as much gas fees + function estimateGas(base_fees: BigNumber, cnt: number) { + return base_fees.times((cnt + 1) * gasPriceModif); // assume execution takes about twice as much gas fees } return { @@ -621,7 +631,11 @@ export const elrondHelperFactory: ( value: EasyBalance, txFees: EasyBalance ): Promise<[Transaction, EventIdent]> { - const txu = unsignedTransferTxn(chain_nonce, to, new BigNumber(value.toString()).plus(txFees.toString())); + const txu = unsignedTransferTxn( + chain_nonce, + to, + new BigNumber(value.toString()).plus(txFees.toString()) + ); const tx = await signAndSend(sender, txu); return await extractId(tx); @@ -638,7 +652,7 @@ export const elrondHelperFactory: ( chain_nonce, sender.getAddress(), to, - value, + value ); const tx = await signAndSend(sender, txu); @@ -670,7 +684,12 @@ export const elrondHelperFactory: ( txFees: EasyBalance ): Promise<[Transaction, EventIdent]> { await doEgldSwap(sender, txFees); - const txu = unsignedUnfreezeNftTxn(sender.getAddress(), to, nonce, new BigNumber(txFees.toString())); + const txu = unsignedUnfreezeNftTxn( + sender.getAddress(), + to, + nonce, + new BigNumber(txFees.toString()) + ); const tx = await signAndSend(sender, txu); return await extractId(tx); @@ -695,7 +714,7 @@ export const elrondHelperFactory: ( const tx = await signAndSend(sender, txu); const res = await transactionResult(tx.getHash()); const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; - return Buffer.from(tickerh, "hex").toString("utf-8") + return Buffer.from(tickerh, "hex").toString("utf-8"); }, async mintNft(owner: ISigner, args: NftIssueArgs): Promise { const txu = unsignedMintNftTxn(owner.getAddress(), args); @@ -742,11 +761,11 @@ export const elrondHelperFactory: ( return Base64.atob(locked!.uris[0]); }, async estimateValidateTransferNft(validators: string[]) { - return estimateGas(NFT_TRANSFER_COST, validators.length) // TODO: properly estimate NFT_TRANSFER_COST + return estimateGas(NFT_TRANSFER_COST, validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, async estimateValidateUnfreezeNft(validators: string[]) { - return estimateGas(NFT_UNFREEZE_COST, validators.length) // TODO: properly estimate NFT_UNFREEZE_COST - } + return estimateGas(NFT_UNFREEZE_COST, validators.length); // TODO: properly estimate NFT_UNFREEZE_COST + }, }; }; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 18ea730bd..c35ad48b3 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -50,7 +50,8 @@ export type TronHelper = BaseTronHelper & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & - DecodeRawNft & EstimateTxFees & { + DecodeRawNft & + EstimateTxFees & { nftUri(info: EthNftInfo): Promise; }; @@ -88,18 +89,26 @@ export async function baseTronHelperFactory( }; } +export interface TronParams { + provider: TronWeb; + middleware_uri: string; + erc1155_addr: string; + minter_addr: string; + minter_abi: JSON; +} + export async function tronHelperFactory( - provider: TronWeb, - middleware_uri: string, - erc1155_addr: string, - minter_addr: string, - minter_abi: JSON + tronParams: TronParams ): Promise { - const base = await baseTronHelperFactory(provider); - const erc1155 = await provider.contract(ERC1155_abi, erc1155_addr); - const minter = await provider.contract(minter_abi, minter_addr); + const { provider } = tronParams; + const base = await baseTronHelperFactory(tronParams.provider); + const erc1155 = await provider.contract(ERC1155_abi, tronParams.erc1155_addr); + const minter = await provider.contract( + tronParams.minter_abi, + tronParams.minter_addr + ); const event_middleware = axios.create({ - baseURL: middleware_uri, + baseURL: tronParams.middleware_uri, headers: { "Content-Type": "application/json", }, @@ -127,7 +136,7 @@ export async function tronHelperFactory( }; const evs = await getEv(); - const ev = evs.find((e: any) => e?.contract == minter_addr); + const ev = evs.find((e: any) => e?.contract == tronParams.minter_addr); const action_id: string = ev.result["action_id"].toString(); return [hash, action_id]; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index ed575318e..18e31d18f 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -104,7 +104,8 @@ export type Web3Helper = BaseWeb3Helper & string > & DecodeWrappedNft & - DecodeRawNft & EstimateTxFees & { + DecodeRawNft & + EstimateTxFees & { /** * Get the uri of an nft given nft info */ @@ -155,18 +156,22 @@ export async function baseWeb3HelperFactory( * @param minter_addr Address of the minter smart contract * @param minter_abi ABI of the minter smart contract */ +export interface Web3Params { + provider: Provider; + minter_addr: string; + minter_abi: Interface; + erc1155_addr: string; +} + export async function web3HelperFactory( - provider: Provider, - minter_addr: string, - minter_abi: Interface, - erc1155_addr: string + params: Web3Params ): Promise { - const w3 = provider; + const w3 = params.provider; - const minter = new Contract(minter_addr, minter_abi, w3); + const minter = new Contract(params.minter_addr, params.minter_abi, w3); const erc1155_abi = new Interface(ERC1155_abi); - const erc1155 = new Contract(erc1155_addr, erc1155_abi, w3); + const erc1155 = new Contract(params.erc1155_addr, erc1155_abi, w3); function signedMinter(signer: Signer): Contract { return minter.connect(signer); @@ -182,7 +187,7 @@ export async function web3HelperFactory( throw Error("Couldn't extract action_id"); } - const evdat = minter_abi.parseLog(log); + const evdat = params.minter_abi.parseLog(log); const action_id: string = evdat.args[0].toString(); return [receipt, action_id]; } @@ -219,7 +224,7 @@ export async function web3HelperFactory( return new BigNumber(fee.toString()); } - const base = await baseWeb3HelperFactory(provider); + const base = await baseWeb3HelperFactory(params.provider); return { ...base, From 061125fac57aea1bb45ffbb05c92101d06f4b46c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 13 Oct 2021 17:35:32 +0530 Subject: [PATCH 054/956] feat(chain data): strongly type all the fields --- src/consts.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 0ac3cd228..d621cee46 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -38,7 +38,8 @@ interface ChainData { constructor: ( params: Web3Params | TronParams | ElrondParams ) => Promise; - [key: string]: unknown; + blockExplorerUrl: string; + chainId?: number; } interface ChainInfo { @@ -49,16 +50,16 @@ export const CHAIN_INFO: ChainInfo = { 2: { name: "Elrond", nonce: 2, - native: "EGLD", decimals: 1e18, constructor: (p) => elrondHelperFactory(p as ElrondParams), + blockExplorerUrl: "https://devnet-explorer.elrond.com/transactions/", }, 3: { name: "Heco", nonce: 3, chainId: 256, decimals: 1e18, - blockExplorerUrls: "https://testnet.hecoinfo.com/tx", + blockExplorerUrl: "https://testnet.hecoinfo.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), }, 4: { @@ -66,7 +67,7 @@ export const CHAIN_INFO: ChainInfo = { nonce: 4, chainId: 97, decimals: 1e18, - blockExplorerUrls: "https://testnet.bscscan.com/tx", + blockExplorerUrl: "https://testnet.bscscan.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), }, 6: { @@ -74,7 +75,7 @@ export const CHAIN_INFO: ChainInfo = { nonce: 6, chainId: 43113, decimals: 1e18, - blockExplorerUrls: "https://cchain.explorer.avax-test.network/tx", + blockExplorerUrl: "https://cchain.explorer.avax-test.network/tx", constructor: (p) => web3HelperFactory(p as Web3Params), }, 7: { @@ -82,7 +83,7 @@ export const CHAIN_INFO: ChainInfo = { nonce: 0x7, chainId: 80001, decimals: 1e18, - blockExplorerUrls: "https://mumbai.polygonscan.com/tx", + blockExplorerUrl: "https://mumbai.polygonscan.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), }, 8: { @@ -90,14 +91,14 @@ export const CHAIN_INFO: ChainInfo = { nonce: 0x8, decimals: 1e18, chainId: 4002, - blockExplorerUrls: "https://explorer.testnet.fantom.network/transactions", + blockExplorerUrl: "https://explorer.testnet.fantom.network/transactions", constructor: (p) => web3HelperFactory(p as Web3Params), }, 9: { name: "Tron", nonce: 0x9, decimals: 1e6, - blockExplorerUrls: "https://shasta.tronscan.org/#/transaction", + blockExplorerUrl: "https://shasta.tronscan.org/#/transaction", constructor: (p) => tronHelperFactory(p as TronParams), }, 11: { @@ -105,7 +106,7 @@ export const CHAIN_INFO: ChainInfo = { nonce: 0xb, decimals: 1e18, chainId: 44787, - blockExplorerUrls: "https://alfajores-blockscout.celo-testnet.org/tx", + blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", constructor: (p) => web3HelperFactory(p as Web3Params), }, 12: { @@ -113,7 +114,7 @@ export const CHAIN_INFO: ChainInfo = { nonce: 0xc, decimals: 1e18, chainId: 1666700000, - blockExplorerUrls: "https://explorer.pops.one/tx", + blockExplorerUrl: "https://explorer.pops.one/tx", constructor: (p) => web3HelperFactory(p as Web3Params), }, }; From dcd9a346344f006147ffdccca4d37ba8f726eb2f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 13 Oct 2021 18:00:52 +0530 Subject: [PATCH 055/956] feat(packages): import exchange-rate --- package.json | 3 ++- yarn.lock | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 4e8919339..5bcbff881 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "license": "MIT", "repository": { "type": "git", - "url": "https://github.com/xp-network/bridge-ui-logics.git" + "url": "https://github.com/xp-network/bridge-ui-logics.git" }, "scripts": { "build": "tsc -p tsconfig.json" @@ -33,6 +33,7 @@ "@polkadot/util-crypto": "^7.1.1", "axios": "^0.21.1", "bignumber.js": "^9.0.1", + "crypto-exchange-rate": "https://github.com/xp-network/exchange-rate#master-dist", "ethers": "^5.4.1", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", diff --git a/yarn.lock b/yarn.lock index 7e5fcacbf..c28657314 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2287,6 +2287,12 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= +"crypto-exchange-rate@https://github.com/xp-network/exchange-rate#master-dist": + version "1.0.0" + resolved "https://github.com/xp-network/exchange-rate#864e6a6d0861026bc1f0d18e6493861967cbc2cd" + dependencies: + axios "^0.21.1" + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" From 7b94502f6038128ef7e6b094052486e1cb2ed2a3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 13 Oct 2021 18:02:44 +0530 Subject: [PATCH 056/956] chore(chaindata): add currency --- src/consts.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index d621cee46..e899c3478 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -2,6 +2,7 @@ import { CrossChainHelper } from "./factory/crossChainHelper"; import { elrondHelperFactory, ElrondParams } from "./helpers/elrond"; import { tronHelperFactory, TronParams } from "./helpers/tron"; import { web3HelperFactory, Web3Params } from "./helpers/web3"; +import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; const HECO = "https://http-testnet.hecochain.com"; @@ -40,6 +41,7 @@ interface ChainData { ) => Promise; blockExplorerUrl: string; chainId?: number; + currency: SupportedCurrency; } interface ChainInfo { @@ -53,6 +55,7 @@ export const CHAIN_INFO: ChainInfo = { decimals: 1e18, constructor: (p) => elrondHelperFactory(p as ElrondParams), blockExplorerUrl: "https://devnet-explorer.elrond.com/transactions/", + currency: SupportedCurrency.EGLD, }, 3: { name: "Heco", @@ -61,6 +64,7 @@ export const CHAIN_INFO: ChainInfo = { decimals: 1e18, blockExplorerUrl: "https://testnet.hecoinfo.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.HT, }, 4: { name: "BSC", @@ -69,6 +73,7 @@ export const CHAIN_INFO: ChainInfo = { decimals: 1e18, blockExplorerUrl: "https://testnet.bscscan.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.BNB, }, 6: { name: "Avalanche", @@ -77,6 +82,7 @@ export const CHAIN_INFO: ChainInfo = { decimals: 1e18, blockExplorerUrl: "https://cchain.explorer.avax-test.network/tx", constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.AVAX, }, 7: { name: "Polygon", @@ -85,6 +91,7 @@ export const CHAIN_INFO: ChainInfo = { decimals: 1e18, blockExplorerUrl: "https://mumbai.polygonscan.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.MATIC, }, 8: { name: "Fantom", @@ -93,6 +100,7 @@ export const CHAIN_INFO: ChainInfo = { chainId: 4002, blockExplorerUrl: "https://explorer.testnet.fantom.network/transactions", constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.FTM, }, 9: { name: "Tron", @@ -100,6 +108,7 @@ export const CHAIN_INFO: ChainInfo = { decimals: 1e6, blockExplorerUrl: "https://shasta.tronscan.org/#/transaction", constructor: (p) => tronHelperFactory(p as TronParams), + currency: SupportedCurrency.TRX, }, 11: { name: "Celo", @@ -108,6 +117,7 @@ export const CHAIN_INFO: ChainInfo = { chainId: 44787, blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.CELO, }, 12: { name: "Harmony", @@ -116,5 +126,6 @@ export const CHAIN_INFO: ChainInfo = { chainId: 1666700000, blockExplorerUrl: "https://explorer.pops.one/tx", constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.CELO, }, }; From dede8b945f387784773d406e6372bf7326fa637d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 13 Oct 2021 18:26:39 +0530 Subject: [PATCH 057/956] feat(chains): implement WrappedNftCheck --- src/helpers/chain.ts | 8 ++++++++ src/helpers/elrond.ts | 6 +++++- src/helpers/tron.ts | 7 +++++-- src/helpers/web3.ts | 6 +++++- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 44f8c9db6..7e0db6ffb 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -148,6 +148,14 @@ export type WrappedNft = { chain_nonce: number; data: Uint8Array; }; +/** + * Whether the given NFT is from a foreign chain + * @param {NftIdent} nft NFT Identity + * @returns bool + */ +export interface WrappedNftCheck { + isWrappedNft(nft: NftIdent): boolean; +} export interface DecodeWrappedNft { decodeWrappedNft(raw_data: Data): WrappedNft; diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 2cb9d1cec..b0bbb5e36 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -39,6 +39,7 @@ import { UnfreezeForeign, UnfreezeForeignNft, WrappedNft, + WrappedNftCheck, } from "./chain"; import { Base64 } from "js-base64"; @@ -213,7 +214,7 @@ export type ElrondHelper = BalanceCheck & DecodeWrappedNft & DecodeRawNft & { mintableEsdts(address: Address): Promise; - }; + } & WrappedNftCheck; /** * Create an object implementing cross chain utilities for elrond @@ -728,6 +729,9 @@ export const elrondHelperFactory: ( return res.data["data"]["tokens"]; }, + isWrappedNft(nft) { + return nft.token === elrondParams.esdt_nft; + }, listNft, getLockedNft, async setESDTRole( diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index c35ad48b3..5e1ecd354 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -26,7 +26,7 @@ import { import { Base64 } from "js-base64"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; import axios from "axios"; -import { EstimateTxFees } from ".."; +import { EstimateTxFees, WrappedNftCheck } from ".."; export type BaseTronHelper = BalanceCheck & MintNft & { @@ -53,7 +53,7 @@ export type TronHelper = BaseTronHelper & DecodeRawNft & EstimateTxFees & { nftUri(info: EthNftInfo): Promise; - }; + } & WrappedNftCheck; export async function baseTronHelperFactory( provider: TronWeb @@ -186,6 +186,9 @@ export async function tronHelperFactory( return await nftUri(nft_info); }, + isWrappedNft(nft) { + return nft.contract === tronParams.erc1155_addr; + }, decodeWrappedNft(raw_data: string): WrappedNft { const u8D = Base64.toUint8Array(raw_data); const packed = NftPacked.deserializeBinary(u8D); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 18e31d18f..3ef5cd6f3 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -15,6 +15,7 @@ import { WrappedNft, DecodeRawNft, MintNft, + WrappedNftCheck, } from "./chain"; import { Contract, @@ -110,7 +111,7 @@ export type Web3Helper = BaseWeb3Helper & * Get the uri of an nft given nft info */ nftUri(info: EthNftInfo): Promise; - }; + } & WrappedNftCheck; function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; @@ -236,6 +237,9 @@ export async function web3HelperFactory( return new BigNumber(bal.toString()); }, + isWrappedNft(nft) { + return nft.contract === params.erc1155_addr; + }, async balanceWrappedBatch( address: string, chain_nonces: number[] From 097e34fb6b052eced11728238f96e0c664b4130f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 13 Oct 2021 18:32:24 +0530 Subject: [PATCH 058/956] fix(web3/tron): match with erc721 instead of erc1155 --- src/helpers/tron.ts | 3 ++- src/helpers/web3.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 5e1ecd354..aa4333515 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -95,6 +95,7 @@ export interface TronParams { erc1155_addr: string; minter_addr: string; minter_abi: JSON; + erc721_addr: string; } export async function tronHelperFactory( @@ -187,7 +188,7 @@ export async function tronHelperFactory( return await nftUri(nft_info); }, isWrappedNft(nft) { - return nft.contract === tronParams.erc1155_addr; + return nft.contract === tronParams.erc721_addr; }, decodeWrappedNft(raw_data: string): WrappedNft { const u8D = Base64.toUint8Array(raw_data); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 3ef5cd6f3..b3fe3c264 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -162,6 +162,7 @@ export interface Web3Params { minter_addr: string; minter_abi: Interface; erc1155_addr: string; + erc721_addr: string; } export async function web3HelperFactory( @@ -238,7 +239,7 @@ export async function web3HelperFactory( return new BigNumber(bal.toString()); }, isWrappedNft(nft) { - return nft.contract === params.erc1155_addr; + return nft.contract === params.erc721_addr; }, async balanceWrappedBatch( address: string, From c915475acc3cdc80807a5ab518195e7204c43a00 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 14 Oct 2021 15:23:58 +0530 Subject: [PATCH 059/956] cleanup deps --- package.json | 3 +- yarn.lock | 329 +++++++++++---------------------------------------- 2 files changed, 70 insertions(+), 262 deletions(-) diff --git a/package.json b/package.json index 2a7cc0b38..a3a9c9b7e 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,8 @@ "ethers": "^5.4.1", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", - "testsuite-ts": "git+https://github.com/xp-network/bridge-ui-logics#web3-new", "tronstation": "^1.0.1", "tronweb": "^4.0.0", - "validator": "git+https://github.com/xp-network/migration-validator#master" + "validator": "git+https://github.com/xp-network/migration-validator#web3-new" } } diff --git a/yarn.lock b/yarn.lock index 7f73da248..47767efb0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -65,10 +65,10 @@ dependencies: regenerator-runtime "^0.13.4" -"@bitauth/libauth@^1.17.1": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@bitauth/libauth/-/libauth-1.18.1.tgz#b1c632ed85f73c16a0ff89d81e8a92809fa15108" - integrity sha512-s7evdGbdGAnGkv7xt6mCbcWTTNvburc1Z9EX/8JKwcRLqofjDs7VAEz+RP3a8OGEo4MWFV6Ydqu/BeJjIA7Kdg== +"@celo-tools/celo-ethers-wrapper@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@celo-tools/celo-ethers-wrapper/-/celo-ethers-wrapper-0.0.5.tgz#a0bd4553e59c0fc4e97dcec97f719fd27dc4498b" + integrity sha512-an5TaLv/esjQLEYtF79f8isBUtHEN+ZiHci2H4gVTEAgRgS+nSp5QCq8/LV/biAh9kJJEpojEzlxJALSKu8Klg== "@elrondnetwork/bls-wasm@0.3.3": version "0.3.3" @@ -78,33 +78,6 @@ assert "^2.0.0" perf_hooks "0.0.1" -"@elrondnetwork/erdjs@^6.5.0": - version "6.6.2" - resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-6.6.2.tgz#25966b494acb80038e3506e8cb2d590a57b2f198" - integrity sha512-NZQ6yVGyXteXSVO+XhJYIxmFg34jmNuSDgYGQfAg6/A1Pio3lyuvAgCUe1a+mMRUr82Il3mMmO1uAaLUXSpjzw== - dependencies: - "@babel/runtime" "7.11.2" - "@elrondnetwork/bls-wasm" "0.3.3" - "@elrondnetwork/hw-app-elrond" "0.3.0" - "@ledgerhq/hw-transport-u2f" "5.28.0" - "@ledgerhq/hw-transport-webusb" "5.28.0" - "@walletconnect/client" "1.4.1" - abort-controller "3.0.0" - axios "0.21.1" - bech32 "1.1.4" - bignumber.js "9.0.1" - bip39 "3.0.2" - blake2b "2.1.3" - ed25519-hd-key "1.1.2" - json-bigint "1.0.0" - json-duplicate-key-handle "1.0.0" - keccak "^3.0.1" - platform "1.3.6" - protobufjs "6.10.2" - scryptsy "2.1.0" - tweetnacl "1.0.3" - uuid "8.3.2" - "@elrondnetwork/erdjs@^8.0.1-alpha.5": version "8.0.1-alpha.5" resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-8.0.1-alpha.5.tgz#5405960e273ce3fe6ff70923aaf93bb2d938bb94" @@ -133,17 +106,6 @@ tweetnacl "1.0.3" uuid "8.3.2" -"@elrondnetwork/hw-app-elrond@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@elrondnetwork/hw-app-elrond/-/hw-app-elrond-0.3.0.tgz#21b082aaa06293f54e5b1b8b87ed4457ff9bde00" - integrity sha512-amDVVV4demxQdcvL8xEZNrPDDXve3d1sO3/1Tk5UglG2S2RTW3nnmC2UccKYUROEaQaH6YAyZwYhzyTKQilz4g== - dependencies: - "@ledgerhq/hw-transport" "^5.19.1" - "@ledgerhq/hw-transport-node-hid" "^5.19.1" - bip32-path "^0.4.2" - flow-copy-source "^2.0.9" - flow-typed "^3.2.1" - "@elrondnetwork/hw-app-elrond@0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@elrondnetwork/hw-app-elrond/-/hw-app-elrond-0.3.2.tgz#3c01cda58a58a63e7e3caf1b36ac8d5909550fb2" @@ -656,20 +618,6 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== -"@json-rpc-tools/types@^1.6.1": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@json-rpc-tools/types/-/types-1.7.6.tgz#5abd5fde01364a130c46093b501715bcce5bdc0e" - integrity sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ== - dependencies: - keyvaluestorage-interface "^1.0.0" - -"@json-rpc-tools/utils@1.6.1": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@json-rpc-tools/utils/-/utils-1.6.1.tgz#26e37d0fc4522721158d0f6057e136daa8813263" - integrity sha512-cNwP4QapAls+xATU8zLLqPYa9qCbgwEyWEK7vE1oH91b3LfbUYwHtiWZ1+rv0X/mh/9cWNTo2Oi2Sah/QX0WwA== - dependencies: - "@json-rpc-tools/types" "^1.6.1" - "@ledgerhq/devices@^5.28.0", "@ledgerhq/devices@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" @@ -872,30 +820,6 @@ dependencies: "@octokit/openapi-types" "^8.3.0" -"@pedrouid/environment@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" - integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== - -"@pedrouid/iso-crypto@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@pedrouid/iso-crypto/-/iso-crypto-1.1.0.tgz#3fb4050ea99f2f8ee41ba8661193c0989c815c95" - integrity sha512-twi+tW67XT0BSOv4rsegnGo4TQMhfFswS/GY3KhrjFiNw3z9x+cMkfO+itNe1JZghQxsxHuhifvfsnG814g1hQ== - dependencies: - "@pedrouid/iso-random" "^1.1.0" - aes-js "^3.1.2" - enc-utils "^3.0.0" - hash.js "^1.1.7" - -"@pedrouid/iso-random@^1.1.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@pedrouid/iso-random/-/iso-random-1.2.1.tgz#55178d9a2e7897b0f630dd1b4be76bc8460242d7" - integrity sha512-C35NqYMmLsg61WDiEup4OwjRhgfZIcK4BL+Qg49xowHUJ+f7/LFZCO+TGuQqoXFAj1beKIOpUN33f0fqV7zneQ== - dependencies: - "@pedrouid/environment" "^1.0.1" - enc-utils "^3.0.0" - randombytes "^2.1.0" - "@polkadot/api-contract@^5.2.1": version "5.2.1" resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-5.2.1.tgz#38ffcc10a2ed37fae4f228d984e5efcadd814ad2" @@ -1293,11 +1217,6 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== -"@types/google-protobuf@^3.15.4": - version "3.15.5" - resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.15.5.tgz#644b2be0f5613b1f822c70c73c6b0e0b5b5fa2ad" - integrity sha512-6bgv24B+A2bo9AfzReeg5StdiijKzwwnRflA8RLd1V4Yv995LeTmo0z69/MPbBDFSiZWdZHQygLo/ccXhMEDgw== - "@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" @@ -1477,17 +1396,6 @@ "@typescript-eslint/types" "4.31.0" eslint-visitor-keys "^2.0.0" -"@walletconnect/browser-utils@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.4.1.tgz#a8d5a038d28c19b739eb0ff4194ced140c922d36" - integrity sha512-ONrkPSI/27o1Wj8kUwE0uUZFk0GDCDQBJy614GsrhcwuQwJEW/B+nXPQ+Ca/4WvQySM5hWVHp1gO1kozSUkh3A== - dependencies: - "@walletconnect/types" "^1.4.1" - detect-browser "5.2.0" - safe-json-utils "1.0.0" - window-getters "1.0.0" - window-metadata "1.0.0" - "@walletconnect/browser-utils@^1.6.6": version "1.6.6" resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.6.6.tgz#a985b48c99c65a986a051d66a4910010a10a0c56" @@ -1499,16 +1407,6 @@ "@walletconnect/window-metadata" "1.0.0" detect-browser "5.2.0" -"@walletconnect/client@1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.4.1.tgz#c9c50df5afde23a35e23d96fe6d207c102e53850" - integrity sha512-JRW+9+j9LwszY76/WcIumEiLmhX7eidorH9SFFmI2pFfbrhB6KLe87FaA106kxwZUyWKOLZ6jVV4d1urYSdEwA== - dependencies: - "@walletconnect/core" "^1.4.1" - "@walletconnect/iso-crypto" "^1.4.1" - "@walletconnect/types" "^1.4.1" - "@walletconnect/utils" "^1.4.1" - "@walletconnect/client@1.6.5": version "1.6.5" resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.6.5.tgz#6616ae926abc7c87c48a2d3693f2eb697858e685" @@ -1519,15 +1417,6 @@ "@walletconnect/types" "^1.6.5" "@walletconnect/utils" "^1.6.5" -"@walletconnect/core@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.4.1.tgz#68310ee7c9737a7a0a7f1308abbfc1c31212b9a6" - integrity sha512-NzWvhk4akI2uhORUxMDMS/8yAdfp+nzvb5QdTE0eTD0WOrK16qAfYLSU/IjFc2J2lqhuPVxfO2XV7QoxgCXfwA== - dependencies: - "@walletconnect/socket-transport" "^1.4.1" - "@walletconnect/types" "^1.4.1" - "@walletconnect/utils" "^1.4.1" - "@walletconnect/core@^1.6.5": version "1.6.6" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.6.6.tgz#0a35a9b0f91da8958bec27be801a510818f4e142" @@ -1561,15 +1450,6 @@ resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== -"@walletconnect/iso-crypto@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.4.1.tgz#0d9793c679d6c5443c49cce83f5d8dd476a65df2" - integrity sha512-rzfqM/DFhzNxBriMCU4DOarPkH+Brgll+2a2YeO6zHgMlwZtBKi5mMgzBwbDC3XygOvKbcRTB9G9hr8uYn+i5g== - dependencies: - "@pedrouid/iso-crypto" "^1.0.0" - "@walletconnect/types" "^1.4.1" - "@walletconnect/utils" "^1.4.1" - "@walletconnect/iso-crypto@^1.6.5": version "1.6.6" resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.6.6.tgz#19848bdcd54e9945961bab8a996cbca8a00d7cf1" @@ -1608,15 +1488,6 @@ resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== -"@walletconnect/socket-transport@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.4.1.tgz#d9b7ebb9a2843cc44cf96c880c62be78d4a1625f" - integrity sha512-/5Mhu4bu3tS52LqTlmmjx5x/N89XqbuT0YMobvQ+k/m+VqSeBDntqIjwBt7XiFlCbrUTq3/yTajavGFxWFB6pA== - dependencies: - "@walletconnect/types" "^1.4.1" - "@walletconnect/utils" "^1.4.1" - ws "7.3.0" - "@walletconnect/socket-transport@^1.6.6": version "1.6.6" resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.6.6.tgz#b80974fe3e2a2f93ba1f6b40df5a0ea492b94086" @@ -1626,29 +1497,11 @@ "@walletconnect/utils" "^1.6.6" ws "7.5.3" -"@walletconnect/types@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.4.1.tgz#48297238b86f846b8c694504ca45f0059a2cca88" - integrity sha512-lzS9NbXjVb5N+W/UnCZAflxjLtYepUi4ev1IeFozSvr/cWxAhEe/sjixe7WEIpYklW27kfBhKccMH/KjUoRC7w== - "@walletconnect/types@^1.6.5", "@walletconnect/types@^1.6.6": version "1.6.6" resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.6.6.tgz#8d644e2a390e494e40424c60272e91b4820bf0d4" integrity sha512-op77cxexOmQQN36XB1sYouNTlBRV0Rup/2NYK8A1ffdwXa3a6HLHHdhBM7I/I9BVmRXoZ4+XoOnPKGGrYtlS3g== -"@walletconnect/utils@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.4.1.tgz#86108470c211a02609274a6c7bbd516c5182a22e" - integrity sha512-JrVjcXmWVcU02fmVNZFBpJ48f84qyar24CF7szGv+k9ZxvU9J7XkM+Fic4790Dt3DaWhOzS9/eBUa+BEZcBbNw== - dependencies: - "@json-rpc-tools/utils" "1.6.1" - "@walletconnect/browser-utils" "^1.4.1" - "@walletconnect/types" "^1.4.1" - bn.js "4.11.8" - enc-utils "3.0.0" - js-sha3 "0.8.0" - query-string "6.13.5" - "@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.6.6": version "1.6.6" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.6.6.tgz#e8e49a5f2c35e4a5f9153b09ad076655f38d8c96" @@ -2152,15 +2005,6 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -2300,6 +2144,12 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master": + version "1.0.0" + resolved "git+https://github.com/xp-network/exchange-rate#b691078648d93a01a6d6ed6dcaf248ef85a5fa62" + dependencies: + axios "^0.21.1" + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -2320,7 +2170,7 @@ debug@^2.2.0: dependencies: ms "2.0.0" -debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: +debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1, debug@~4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -2468,14 +2318,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enc-utils@3.0.0, enc-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/enc-utils/-/enc-utils-3.0.0.tgz#65935d2d6a867fa0ae995f05f3a2f055ce764dcf" - integrity sha512-e57t/Z2HzWOLwOp7DZcV0VMEY8t7ptWwsxyp6kM2b2zrk6JqIpXxzkruHAMiBsy5wg9jp/183GdiRXCvBtzsYg== - dependencies: - is-typedarray "1.0.0" - typedarray-to-buffer "3.1.5" - end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2498,6 +2340,22 @@ engine.io-client@~5.1.2: ws "~7.4.2" yeast "0.1.2" +engine.io-client@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-5.2.0.tgz#ae38c79a4af16258c0300e6819c0ea8ecc1597cd" + integrity sha512-BcIBXGBkT7wKecwnfrSV79G2X5lSUSgeAGgoo60plXf8UsQEvCQww/KMwXSMhVjb98fFYNq20CC5eo8IOAPqsg== + dependencies: + base64-arraybuffer "0.1.4" + component-emitter "~1.3.0" + debug "~4.3.1" + engine.io-parser "~4.0.1" + has-cors "1.1.0" + parseqs "0.0.6" + parseuri "0.0.6" + ws "~7.4.2" + xmlhttprequest-ssl "~2.0.0" + yeast "0.1.2" + engine.io-parser@~4.0.0, engine.io-parser@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" @@ -2587,11 +2445,6 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -3097,7 +2950,7 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -3841,6 +3694,12 @@ next-tick@~1.0.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= +"nft-db-client@git+https://github.com/xp-network/nft-db-client-#master": + version "1.1.0" + resolved "git+https://github.com/xp-network/nft-db-client-#35d431d5cfb45c4f745fda529e59060ed2600638" + dependencies: + axios "^0.21.1" + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -4401,11 +4260,6 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-json-utils@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-json-utils/-/safe-json-utils-1.0.0.tgz#8b1d68b13cff2ac6a5b68e6c9651cf7f8bb56d9b" - integrity sha512-n0hJm6BgX8wk3G+AS8MOQnfcA8dfE6ZMUfwkHUNx69YxPlU3HDaZTHXWto35Z+C4mOjK1odlT95WutkGC+0Idw== - scrypt-js@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" @@ -4562,6 +4416,19 @@ socket.io-client@^4.1.3: parseuri "0.0.6" socket.io-parser "~4.0.4" +socket.io-client@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.2.0.tgz#195feed3de40283b1ae3f7d02cf91d3eb2c905c1" + integrity sha512-3GJ2KMh7inJUNAOjgf8NaKJZJa9uRyfryh2LrVJyKyxmzoXlfW9DeDNqylJn0ovOFt4e/kRLNWzMt/YqqEWYSA== + dependencies: + "@types/component-emitter" "^1.2.10" + backo2 "~1.0.2" + component-emitter "~1.3.0" + debug "~4.3.2" + engine.io-client "~5.2.0" + parseuri "0.0.6" + socket.io-parser "~4.0.4" + socket.io-parser@~4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" @@ -4771,25 +4638,6 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -"testsuite-ts@git+https://github.com/xp-network/bridge-ui-logics#web3-new": - version "2.0.0" - resolved "git+https://github.com/xp-network/bridge-ui-logics#95a5de7f0fa9124280679ee2a0339a29d58df8ab" - dependencies: - "@elrondnetwork/erdjs" "^8.0.1-alpha.5" - "@polkadot/api" "^5.2.1" - "@polkadot/api-contract" "^5.2.1" - "@polkadot/keyring" "^7.0.3" - "@polkadot/types" "^5.2.1" - "@polkadot/util" "^7.1.1" - "@polkadot/util-crypto" "^7.1.1" - axios "^0.21.1" - bignumber.js "^9.0.1" - ethers "^5.4.1" - js-base64 "^3.6.1" - socket.io-client "^4.1.3" - tronweb "^4.0.0" - validator "git+https://github.com/xp-network/migration-validator#master" - text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -5041,12 +4889,12 @@ validator@^13.6.0: resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== -"validator@git+https://github.com/xp-network/migration-validator#master": +"validator@git+https://github.com/xp-network/migration-validator#web3-new": version "1.0.0" - resolved "git+https://github.com/xp-network/migration-validator#af59e3f92a1c8c26240e96cda6e04dbd1c653572" + resolved "git+https://github.com/xp-network/migration-validator#362020ae52ec40cc30c4a883de2316ca99ccefe7" dependencies: - "@bitauth/libauth" "^1.17.1" - "@elrondnetwork/erdjs" "^6.5.0" + "@celo-tools/celo-ethers-wrapper" "^0.0.5" + "@elrondnetwork/erdjs" "^8.0.1-alpha.5" "@polkadot/api" "^5.2.1" "@polkadot/api-contract" "^5.2.1" "@polkadot/keyring" "^7.0.3" @@ -5055,13 +4903,18 @@ validator@^13.6.0: "@polkadot/util-crypto" "^7.1.1" "@polkadot/wasm-crypto" "^4.1.2" "@polkadot/x-randomvalues" "^7.1.1" - "@types/google-protobuf" "^3.15.4" + axios "^0.21.1" bignumber.js "^9.0.1" + crypto-exchange-rate "git+https://github.com/xp-network/exchange-rate#master" ethers "^5.4.2" google-protobuf "^3.17.3" + js-base64 "^3.6.1" + nft-db-client "git+https://github.com/xp-network/nft-db-client-#master" socket.io "^4.1.3" - socket.io-client "^4.1.3" - yargs "^17.0.1" + socket.io-client "^4.2.0" + tronstation "^1.0.1" + tronweb "^4.0.0" + ws "^8.2.0" vary@^1: version "1.1.2" @@ -5140,23 +4993,6 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -window-getters@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/window-getters/-/window-getters-1.0.0.tgz#b5b264538c4c79cead027f9997850222bf6d0852" - integrity sha512-xyvEFq3x+7dCA7NFhqOmTMk0fPmmAzCUYL2svkw2LGBaXXQLRP0lFnfXHzysri9WZNMkzp/FD1u0w2Qc7Co+JA== - -window-getters@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/window-getters/-/window-getters-1.0.1.tgz#a564c258413b4808789633d8bfb7ed741d798aa0" - integrity sha512-cojBfDeV58XEurDgj+rre15c7dvu27bWCPlOIpwQgreOsw6qQk0UGDR1hi7ZHKw5+L0AENUNNWGG2h4yr2Y3hQ== - -window-metadata@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/window-metadata/-/window-metadata-1.0.0.tgz#fece0446db2f50be0612a211f25fc693917e823b" - integrity sha512-eYoXsZ9X4J+6xZgbHhNAatSR5bCtT409q8B+2Ol9ySx7qsdtgVZcNfox4qszFmKlGsFtT2b1Tcmcy69bRMObcg== - dependencies: - window-getters "^1.0.0" - windows-release@^3.1.0: version "3.3.3" resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.3.tgz#1c10027c7225743eec6b89df160d64c2e0293999" @@ -5183,25 +5019,11 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -ws@7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" - integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== - ws@7.4.6, ws@~7.4.2: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" @@ -5212,6 +5034,16 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== +ws@^8.2.0: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + +xmlhttprequest-ssl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" + integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== + xxhashjs@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" @@ -5224,11 +5056,6 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - yaeti@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" @@ -5252,11 +5079,6 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - yargs@^15.0.1, yargs@^15.1.0: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -5274,19 +5096,6 @@ yargs@^15.0.1, yargs@^15.1.0: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.0.1: - version "17.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba" - integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From a7959a1c04682adeb79c93152e2354b1f5a805c4 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 14 Oct 2021 16:25:13 +0530 Subject: [PATCH 060/956] update migration-validator --- src/helpers/tron.ts | 2 +- src/helpers/web3.ts | 2 +- yarn.lock | 22 ++++++++++++++++++---- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index bf8506c88..1d1c26912 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -39,7 +39,7 @@ import TronStation from 'tronstation'; import { EthNftInfo, MintArgs } from "./web3"; import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; import { Base64 } from "js-base64"; -import { NftEthNative, NftPacked } from "validator/dist/encoding"; +import { NftEthNative, NftPacked } from "validator"; export type MinterRes = { // Minter smart contract diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index ed575318e..ad25a5f2a 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -32,7 +32,7 @@ import { Interface } from "ethers/lib/utils"; import { abi as ERC721_abi } from "../fakeERC721.json"; import { abi as ERC1155_abi } from "../fakeERC1155.json"; import * as ERC721_contract from "../XPNft.json"; -import { NftEthNative, NftPacked } from "validator/dist/encoding"; +import { NftEthNative, NftPacked } from "validator"; import { Base64 } from "js-base64"; import { EstimateTxFees } from ".."; type EasyBalance = string | number | EthBN; diff --git a/yarn.lock b/yarn.lock index 47767efb0..c0bf69279 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1217,6 +1217,11 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== +"@types/google-protobuf@^3.15.4": + version "3.15.5" + resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.15.5.tgz#644b2be0f5613b1f822c70c73c6b0e0b5b5fa2ad" + integrity sha512-6bgv24B+A2bo9AfzReeg5StdiijKzwwnRflA8RLd1V4Yv995LeTmo0z69/MPbBDFSiZWdZHQygLo/ccXhMEDgw== + "@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" @@ -1281,6 +1286,13 @@ dependencies: "@types/node" "*" +"@types/ws@^7.4.7": + version "7.4.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + "@typescript-eslint/eslint-plugin@^4.31.0": version "4.31.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" @@ -2144,9 +2156,9 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master": +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#b691078648d93a01a6d6ed6dcaf248ef85a5fa62" + resolved "git+https://github.com/xp-network/exchange-rate#88beed89f97b1ddd957d4ec78bb5bbfbf350ce73" dependencies: axios "^0.21.1" @@ -4891,7 +4903,7 @@ validator@^13.6.0: "validator@git+https://github.com/xp-network/migration-validator#web3-new": version "1.0.0" - resolved "git+https://github.com/xp-network/migration-validator#362020ae52ec40cc30c4a883de2316ca99ccefe7" + resolved "git+https://github.com/xp-network/migration-validator#4b89abfadc84183b5c12efbdd59757ee6fcf0925" dependencies: "@celo-tools/celo-ethers-wrapper" "^0.0.5" "@elrondnetwork/erdjs" "^8.0.1-alpha.5" @@ -4903,9 +4915,11 @@ validator@^13.6.0: "@polkadot/util-crypto" "^7.1.1" "@polkadot/wasm-crypto" "^4.1.2" "@polkadot/x-randomvalues" "^7.1.1" + "@types/google-protobuf" "^3.15.4" + "@types/ws" "^7.4.7" axios "^0.21.1" bignumber.js "^9.0.1" - crypto-exchange-rate "git+https://github.com/xp-network/exchange-rate#master" + crypto-exchange-rate "git+https://github.com/xp-network/exchange-rate#master-dist" ethers "^5.4.2" google-protobuf "^3.17.3" js-base64 "^3.6.1" From dffacd5faee8b2980d5b474338e5141a9cb6d3e0 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 14 Oct 2021 19:12:15 +0530 Subject: [PATCH 061/956] use typed contracts for web3 --- package.json | 3 +- src/Minter.json | 587 ------------------------------------------- src/XPNet.json | 444 -------------------------------- src/XPNft.json | 447 -------------------------------- src/fakeERC1155.json | 437 -------------------------------- src/fakeERC721.json | 385 ---------------------------- src/helpers/tron.ts | 57 ++--- src/helpers/web3.ts | 48 ++-- yarn.lock | 11 +- 9 files changed, 50 insertions(+), 2369 deletions(-) delete mode 100644 src/Minter.json delete mode 100644 src/XPNet.json delete mode 100644 src/XPNft.json delete mode 100644 src/fakeERC1155.json delete mode 100644 src/fakeERC721.json diff --git a/package.json b/package.json index a3a9c9b7e..e8da900f6 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.0.0", - "validator": "git+https://github.com/xp-network/migration-validator#web3-new" + "validator": "git+https://github.com/xp-network/Migration-validator#web3-new", + "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/src/Minter.json b/src/Minter.json deleted file mode 100644 index 6996c0267..000000000 --- a/src/Minter.json +++ /dev/null @@ -1,587 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Minter", - "sourceName": "contracts/Minter.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address[]", - "name": "_validators", - "type": "address[]" - }, - { - "internalType": "contract IERC721[]", - "name": "_nft_whitelist", - "type": "address[]" - }, - { - "internalType": "uint16", - "name": "_threshold", - "type": "uint16" - }, - { - "internalType": "contract XPNft", - "name": "_nft_token", - "type": "address" - }, - { - "internalType": "contract XPNet", - "name": "_token", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - } - ], - "name": "QuorumFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "txFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "txFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "contract_addr", - "type": "address" - } - ], - "name": "TransferErc721", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "txFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Unfreeze", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "action_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "txFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "data", - "type": "string" - } - ], - "name": "UnfreezeNft", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "freeze", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC721", - "name": "erc721_contract", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "internalType": "string", - "name": "to", - "type": "string" - } - ], - "name": "freeze_erc721", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "address", - "name": "new_validator", - "type": "address" - } - ], - "name": "validate_add_validator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - } - ], - "name": "validate_pause_bridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "address", - "name": "old_validator", - "type": "address" - } - ], - "name": "validate_remove_validator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "uint16", - "name": "new_threshold", - "type": "uint16" - } - ], - "name": "validate_set_threshold", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "validate_transfer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "string", - "name": "data", - "type": "string" - } - ], - "name": "validate_transfer_nft", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "address payable", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "validate_unfreeze", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "contract IERC721", - "name": "contract_addr", - "type": "address" - } - ], - "name": "validate_unfreeze_nft", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - } - ], - "name": "validate_unpause_bridge", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - }, - { - "internalType": "contract IERC721", - "name": "contract_addr", - "type": "address" - } - ], - "name": "validate_whitelist_nft", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "action_id", - "type": "uint128" - } - ], - "name": "validate_withdraw_fees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "chain_nonce", - "type": "uint64" - }, - { - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "to", - "type": "string" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "withdraw_nft", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x60806040526000600255600060035560006004553480156200002057600080fd5b5060405162004f5d38038062004f5d833981810160405281019062000046919062000566565b60008060006101000a81548160ff0219169083151502179055506000855111620000a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200009e906200068a565b60405180910390fd5b60008361ffff16118015620000c1575084518361ffff1611155b62000103576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000fa9062000668565b60405180910390fd5b60005b855181101562000183576200016c8682815181106200014e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516007620002da60201b6200199f1790919060201c565b5080806200017a9062000802565b91505062000106565b5060005b84518110156200024157600260096000878481518110620001d1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055508080620002389062000802565b91505062000187565b508261ffff1660018190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000993565b60006200030a836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200031260201b60201c565b905092915050565b60006200032683836200038c60201b60201c565b6200038157826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000386565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000620003c6620003c084620006d5565b620006ac565b90508083825260208201905082856020860282011115620003e657600080fd5b60005b858110156200041a5781620003ff888262000499565b845260208401935060208301925050600181019050620003e9565b5050509392505050565b60006200043b620004358462000704565b620006ac565b905080838252602082019050828560208602820111156200045b57600080fd5b60005b858110156200048f57816200047488826200050a565b8452602084019350602083019250506001810190506200045e565b5050509392505050565b600081519050620004aa8162000911565b92915050565b600082601f830112620004c257600080fd5b8151620004d4848260208601620003af565b91505092915050565b600082601f830112620004ef57600080fd5b81516200050184826020860162000424565b91505092915050565b6000815190506200051b816200092b565b92915050565b600081519050620005328162000945565b92915050565b60008151905062000549816200095f565b92915050565b600081519050620005608162000979565b92915050565b600080600080600060a086880312156200057f57600080fd5b600086015167ffffffffffffffff8111156200059a57600080fd5b620005a888828901620004b0565b955050602086015167ffffffffffffffff811115620005c657600080fd5b620005d488828901620004dd565b9450506040620005e7888289016200054f565b9350506060620005fa8882890162000538565b92505060806200060d8882890162000521565b9150509295509295909350565b60006200062960128362000733565b91506200063682620008bf565b602082019050919050565b600062000650601d8362000733565b91506200065d82620008e8565b602082019050919050565b6000602082019050818103600083015262000683816200061a565b9050919050565b60006020820190508181036000830152620006a58162000641565b9050919050565b6000620006b8620006cb565b9050620006c68282620007cc565b919050565b6000604051905090565b600067ffffffffffffffff821115620006f357620006f26200087f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156200072257620007216200087f565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006200075182620007a2565b9050919050565b6000620007658262000744565b9050919050565b6000620007798262000744565b9050919050565b60006200078d8262000744565b9050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620007d782620008ae565b810181811067ffffffffffffffff82111715620007f957620007f86200087f565b5b80604052505050565b60006200080f82620007c2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000845576200084462000850565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f696e76616c6964207468726573686f6c64210000000000000000000000000000600082015250565b7f56616c696461746f7273206d757374206e6f7420626520656d70747921000000600082015250565b6200091c8162000744565b81146200092857600080fd5b50565b620009368162000758565b81146200094257600080fd5b50565b62000950816200076c565b81146200095c57600080fd5b50565b6200096a8162000780565b81146200097657600080fd5b50565b620009848162000794565b81146200099057600080fd5b50565b6145ba80620009a36000396000f3fe6080604052600436106100fe5760003560e01c80636d0446d911610095578063daf1396411610064578063daf13964146102f2578063e2ef22171461031b578063ef1d0dec14610337578063f30f44a114610360578063f325c75414610389576100fe565b80636d0446d91461026857806372536d4f146102915780638b202d8f146102ba578063cff75c78146102d6576100fe565b8063453d7365116100d1578063453d7365146101ae578063519de490146101eb5780635c975abb146102145780635df93c7e1461023f576100fe565b80630d11f0a414610103578063128e66bd1461011f578063150b7a0214610148578063270c1cb414610185575b600080fd5b61011d60048036038101906101189190612f38565b6103b2565b005b34801561012b57600080fd5b5061014660048036038101906101419190612ffa565b61044e565b005b34801561015457600080fd5b5061016f600480360381019061016a9190612e3d565b6105b3565b60405161017c91906138ab565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190612fd1565b6105c7565b005b3480156101ba57600080fd5b506101d560048036038101906101d09190613085565b6106ba565b6040516101e29190613b54565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d9190612fd1565b610984565b005b34801561022057600080fd5b50610229610a76565b6040516102369190613890565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613036565b610a8c565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612fd1565b610c27565b005b34801561029d57600080fd5b506102b860048036038101906102b391906130f1565b610cd2565b005b6102d460048036038101906102cf919061322f565b610f17565b005b6102f060048036038101906102eb919061329b565b610fb5565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612ffa565b6110ce565b005b61033560048036038101906103309190612eb8565b61128c565b005b34801561034357600080fd5b5061035e600480360381019061035991906131cc565b611497565b005b34801561036c57600080fd5b5061038760048036038101906103829190613154565b611660565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613190565b611848565b005b600034116103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90613a26565b60405180910390fd5b6103fd610a76565b1561043d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610434906139c6565b60405180910390fd5b610449338484846119cf565b505050565b610456610a76565b15610496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048d906139c6565b60405180910390fd5b6104aa816007611d3090919063ffffffff16565b156104ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e1906139e6565b60405180910390fd5b6000816040516020016104fd91906137a8565b6040516020818303038152906040529050600061051c84600784611d60565b905060006001811115610558577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610591577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105ad576105ab83600761199f90919063ffffffff16565b505b50505050565b600063150b7a0260e01b9050949350505050565b6105cf610a76565b1561060f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610606906139c6565b60405180910390fd5b6000604051806020016040528060008152509050600061063183600584611d60565b90506000600181111561066d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156106a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156106b5576106b46124b1565b5b505050565b60006106c4610a76565b15610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906139c6565b60405180910390fd5b600060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040516020016107859190613ae1565b604051602081830303815290604052905060006107a487600184611d60565b9050600060018111156107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610819577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19876003546040518363ffffffff1660e01b815260040161087e929190613830565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260035487876040518463ffffffff1660e01b815260040161091193929190613b6f565b600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050506001600360008282546109569190613df8565b92505081905550600160035461096c9190613e7f565b9250505061097c565b6000925050505b949350505050565b61098c610a76565b6109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c2906138e6565b60405180910390fd5b600060405180602001604052806000815250905060006109ed83600684611d60565b905060006001811115610a29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a62577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a7157610a70612553565b5b505050565b60008060009054906101000a900460ff16905090565b610a94610a76565b15610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906139c6565b60405180910390fd5b600060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250604051602001610b119190613b03565b60405160208183030381529060405290506000610b3085600284611d60565b905060006001811115610b6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610ba5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c20578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1690613a66565b60405180910390fd5b5b5050505050565b60006040518060200160405280600081525090506000610c4983600a84611d60565b905060006001811115610c85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610cbe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610ccd57610ccc6125f4565b5b505050565b610cda610a76565b15610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d11906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390613aa6565b60405180910390fd5b600060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815250604051602001610e059190613b1e565b60405160208183030381529060405290506000610e2486600384611d60565b905060006001811115610e60577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610e99577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610f0f578273ffffffffffffffffffffffffffffffffffffffff166342842e0e3087876040518463ffffffff1660e01b8152600401610edc939291906137f9565b600060405180830381600087803b158015610ef657600080fd5b505af1158015610f0a573d6000803e3d6000fd5b505050505b505050505050565b60003411610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613a26565b60405180910390fd5b610f62610a76565b15610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906139c6565b60405180910390fd5b610faf33858585856126aa565b50505050565b610fbd610a76565b15610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906139c6565b60405180910390fd5b80341161103f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103690613926565b60405180910390fd5b7f88f79205ab1c13838c5021687f6e6e5840f03604b240c4f7441a657029b346e46002548483346110709190613e7f565b8585604051611083959493929190613cea565b60405180910390a160016002600082825461109e9190613df8565b9250508190555080346110b19190613e7f565b600460008282546110c29190613df8565b92505081905550505050565b6110d6610a76565b15611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d906139c6565b60405180910390fd5b600161112260076127b8565b61112c9190613e7f565b6001541115611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790613966565b60405180910390fd5b611184816007611d3090919063ffffffff16565b6111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906139a6565b60405180910390fd5b6000816040516020016111d691906137a8565b604051602081830303815290604052905060006111f584600884611d60565b905060006001811115611231577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561126a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611286576112848360076127cd90919063ffffffff16565b505b50505050565b600034116112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613a26565b60405180910390fd5b6112d7610a76565b15611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e906139c6565b60405180910390fd5b6002600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090613a46565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016113e6939291906137f9565b600060405180830381600087803b15801561140057600080fd5b505af1158015611414573d6000803e3d6000fd5b505050507fefd5d17615e8d78513f02fa7a2aab6ebdf2452857907b1293a10e321e9d5386b60025484348585898b6040516114559796959493929190613c80565b60405180910390a16001600260008282546114709190613df8565b9250508190555034600460008282546114899190613df8565b925050819055505050505050565b61149f610a76565b156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d6906139c6565b60405180910390fd5b600060405180606001604052808567ffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381525060405160200161152c9190613ac6565b6040516020818303038152906040529050600061154b86600084611d60565b905060006001811115611587577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156115c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561165857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68587866040518463ffffffff1660e01b815260040161162593929190613859565b600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050505b505050505050565b611668610a76565b156116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290613a06565b60405180910390fd5b60008160405160200161174e91906137a8565b6040516020818303038152906040529050600061176d84600484611d60565b9050600060018111156117a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156117e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611842576002600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b50505050565b611850610a76565b15611890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611887906139c6565b60405180910390fd5b61189a60076127b8565b8161ffff1611156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790613986565b60405180910390fd5b6000816040516020016118f391906137c3565b6040516020818303038152906040529050600061191284600984611d60565b90506000600181111561194e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115611987577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611999578261ffff166001819055505b50505050565b60006119c7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127fd565b905092915050565b8373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401611a419190613b54565b60206040518083038186803b158015611a5957600080fd5b505afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190612e14565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613a86565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b8152600401611b449190613b54565b60006040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b999190612f90565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b8152600401611bf69190613ba1565b600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68836040518263ffffffff1660e01b8152600401611c839190613b54565b600060405180830381600087803b158015611c9d57600080fd5b505af1158015611cb1573d6000803e3d6000fd5b505050507f9fa54a915c5d5d5ff39f445ca7c4b9bce03cbaf401223dbd10d1079fcdd0b56660025434868685604051611cee959493929190613bcf565b60405180910390a1600160026000828254611d099190613df8565b925050819055503460046000828254611d229190613df8565b925050819055505050505050565b6000611d58836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61286d565b905092915050565b6000611d76336007611d3090919063ffffffff16565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906138c6565b60405180910390fd5b6000600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611f1957604051806080016040528084600a811115611e3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001838152602001600181526020016001815250600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083600a811115611edb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151816001019080519060200190611efc929190612b07565b506040820151816002015560608201518160030155905050612293565b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613946565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461202c9190613df8565b9250508190555082600a81111561206c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600a8111156120ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212390613906565b60405180910390fd5b61220182600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101805461217590613fef565b80601f01602080910402602001604051908101604052809291908181526020018280546121a190613fef565b80156121ee5780601f106121c3576101008083540402835291602001916121ee565b820191906000526020600020905b8154815290600101906020018083116121d157829003601f168201915b505050505061289090919063ffffffff16565b612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613906565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825461228b9190613df8565b925050819055505b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600060019050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060020154141561237057600090505b61237a60076127b8565b600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414156124a657600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556001820160006124179190612b8d565b600282016000905560038201600090555050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410156124a5577fe22e1372cd6c9720ae7fc7854536a963d13d9996efde6038cbcecac7ff182e078560405161249c9190613b39565b60405180910390a15b5b809150509392505050565b6124b9610a76565b156124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f0906139c6565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861253c6128fd565b60405161254991906137de565b60405180910390a1565b61255b610a76565b61259a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612591906138e6565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6125dd6128fd565b6040516125ea91906137de565b60405180910390a1565b600061260060076127b8565b90506000816004546126129190613e4e565b905060005b828110156126a55761263381600761290590919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612678573d6000803e3d6000fd5b50816004600082825461268b9190613e7f565b92505081905550808061269d90614052565b915050612617565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161270993929190613859565b600060405180830381600087803b15801561272357600080fd5b505af1158015612737573d6000803e3d6000fd5b505050507f135c92cfa1cfe8e46534cd8748b74ee2505948ac3023824a91dc57ffda5f5b4c600254853486868660405161277696959493929190613c24565b60405180910390a16001600260008282546127919190613df8565b9250508190555034600460008282546127aa9190613df8565b925050819055505050505050565b60006127c68260000161291f565b9050919050565b60006127f5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612930565b905092915050565b6000612809838361286d565b612862578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612867565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008060019050835183518114600181146128ae57600092506128f1565b600160208701838101602088015b6002848385100114156128ec5780518351146128db5760009650600093505b6020830192506020810190506128bc565b505050505b50508091505092915050565b600033905090565b60006129148360000183612ab6565b60001c905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114612aaa5760006001826129629190613e7f565b905060006001866000018054905061297a9190613e7f565b9050818114612a355760008660000182815481106129c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612a6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612ab0565b60009150505b92915050565b6000826000018281548110612af4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b828054612b1390613fef565b90600052602060002090601f016020900481019282612b355760008555612b7c565b82601f10612b4e57805160ff1916838001178555612b7c565b82800160010185558215612b7c579182015b82811115612b7b578251825591602001919060010190612b60565b5b509050612b899190612bcd565b5090565b508054612b9990613fef565b6000825580601f10612bab5750612bca565b601f016020900490600052602060002090810190612bc99190612bcd565b5b50565b5b80821115612be6576000816000905550600101612bce565b5090565b6000612bfd612bf884613d69565b613d44565b905082815260208101848484011115612c1557600080fd5b612c20848285613fad565b509392505050565b6000612c3b612c3684613d9a565b613d44565b905082815260208101848484011115612c5357600080fd5b612c5e848285613fad565b509392505050565b6000612c79612c7484613d9a565b613d44565b905082815260208101848484011115612c9157600080fd5b612c9c848285613fbc565b509392505050565b600081359050612cb3816144e3565b92915050565b600081519050612cc8816144e3565b92915050565b600081359050612cdd816144fa565b92915050565b600082601f830112612cf457600080fd5b8135612d04848260208601612bea565b91505092915050565b600081359050612d1c81614511565b92915050565b60008083601f840112612d3457600080fd5b8235905067ffffffffffffffff811115612d4d57600080fd5b602083019150836001820283011115612d6557600080fd5b9250929050565b600082601f830112612d7d57600080fd5b8135612d8d848260208601612c28565b91505092915050565b600082601f830112612da757600080fd5b8151612db7848260208601612c66565b91505092915050565b600081359050612dcf81614528565b92915050565b600081359050612de48161453f565b92915050565b600081359050612df981614556565b92915050565b600081359050612e0e8161456d565b92915050565b600060208284031215612e2657600080fd5b6000612e3484828501612cb9565b91505092915050565b60008060008060808587031215612e5357600080fd5b6000612e6187828801612ca4565b9450506020612e7287828801612ca4565b9350506040612e8387828801612dea565b925050606085013567ffffffffffffffff811115612ea057600080fd5b612eac87828801612ce3565b91505092959194509250565b600080600080600060808688031215612ed057600080fd5b6000612ede88828901612d0d565b9550506020612eef88828901612dea565b9450506040612f0088828901612dff565b935050606086013567ffffffffffffffff811115612f1d57600080fd5b612f2988828901612d22565b92509250509295509295909350565b600080600060408486031215612f4d57600080fd5b600084013567ffffffffffffffff811115612f6757600080fd5b612f7386828701612d22565b93509350506020612f8686828701612dea565b9150509250925092565b600060208284031215612fa257600080fd5b600082015167ffffffffffffffff811115612fbc57600080fd5b612fc884828501612d96565b91505092915050565b600060208284031215612fe357600080fd5b6000612ff184828501612dc0565b91505092915050565b6000806040838503121561300d57600080fd5b600061301b85828601612dc0565b925050602061302c85828601612ca4565b9150509250929050565b60008060006060848603121561304b57600080fd5b600061305986828701612dc0565b935050602061306a86828701612cce565b925050604061307b86828701612dea565b9150509250925092565b6000806000806060858703121561309b57600080fd5b60006130a987828801612dc0565b94505060206130ba87828801612ca4565b935050604085013567ffffffffffffffff8111156130d757600080fd5b6130e387828801612d22565b925092505092959194509250565b6000806000806080858703121561310757600080fd5b600061311587828801612dc0565b945050602061312687828801612ca4565b935050604061313787828801612dea565b925050606061314887828801612d0d565b91505092959194509250565b6000806040838503121561316757600080fd5b600061317585828601612dc0565b925050602061318685828601612d0d565b9150509250929050565b600080604083850312156131a357600080fd5b60006131b185828601612dc0565b92505060206131c285828601612dd5565b9150509250929050565b600080600080608085870312156131e257600080fd5b60006131f087828801612dc0565b945050602061320187828801612dff565b935050604061321287828801612ca4565b925050606061322387828801612dea565b91505092959194509250565b6000806000806060858703121561324557600080fd5b600061325387828801612dff565b945050602085013567ffffffffffffffff81111561327057600080fd5b61327c87828801612d22565b9350935050604061328f87828801612dea565b91505092959194509250565b6000806000606084860312156132b057600080fd5b60006132be86828701612dff565b935050602084013567ffffffffffffffff8111156132db57600080fd5b6132e786828701612d6c565b92505060406132f886828701612dea565b9150509250925092565b61330b81613eb3565b82525050565b61331a81613eb3565b82525050565b61333161332c82613eb3565b61409b565b82525050565b61334081613ed7565b82525050565b61334f81613ee3565b82525050565b60006133618385613de7565b935061336e838584613fad565b6133778361418d565b840190509392505050565b600061338d82613dcb565b6133978185613dd6565b93506133a7818560208601613fbc565b6133b08161418d565b840191505092915050565b60006133c682613dcb565b6133d08185613de7565b93506133e0818560208601613fbc565b6133e98161418d565b840191505092915050565b6000613401601083613de7565b915061340c826141b8565b602082019050919050565b6000613424601483613de7565b915061342f826141e1565b602082019050919050565b6000613447600f83613de7565b91506134528261420a565b602082019050919050565b600061346a602983613de7565b915061347582614233565b604082019050919050565b600061348d601483613de7565b915061349882614282565b602082019050919050565b60006134b0603483613de7565b91506134bb826142ab565b604082019050919050565b60006134d3602783613de7565b91506134de826142fa565b604082019050919050565b60006134f6602083613de7565b915061350182614349565b602082019050919050565b6000613519601083613de7565b915061352482614372565b602082019050919050565b600061353c601383613de7565b91506135478261439b565b602082019050919050565b600061355f601783613de7565b915061356a826143c4565b602082019050919050565b6000613582601483613de7565b915061358d826143ed565b602082019050919050565b60006135a5602483613de7565b91506135b082614416565b604082019050919050565b60006135c8601483613de7565b91506135d382614465565b602082019050919050565b60006135eb601783613de7565b91506135f68261448e565b602082019050919050565b600061360e600083613de7565b9150613619826144b7565b600082019050919050565b6000613631601583613de7565b915061363c826144ba565b602082019050919050565b60608201600082015161365d600085018261378a565b5060208201516136706020850182613302565b506040820151613683604085018261375d565b50505050565b60006040830160008301516136a16000860182613302565b50602083015184820360208601526136b98282613382565b9150508091505092915050565b6040820160008201516136dc6000850182613302565b5060208201516136ef602085018261375d565b50505050565b60608201600082015161370b6000850182613302565b50602082015161371e602085018261375d565b5060408201516137316040850182613302565b50505050565b61374081613f89565b82525050565b61375761375282613f3d565b6140ad565b82525050565b61376681613f6b565b82525050565b61377581613f6b565b82525050565b61378481613f9b565b82525050565b61379381613f75565b82525050565b6137a281613f75565b82525050565b60006137b48284613320565b60148201915081905092915050565b60006137cf8284613746565b60028201915081905092915050565b60006020820190506137f36000830184613311565b92915050565b600060608201905061380e6000830186613311565b61381b6020830185613311565b613828604083018461376c565b949350505050565b60006040820190506138456000830185613311565b613852602083018461376c565b9392505050565b600060608201905061386e6000830186613311565b61387b602083018561377b565b613888604083018461376c565b949350505050565b60006020820190506138a56000830184613337565b92915050565b60006020820190506138c06000830184613346565b92915050565b600060208201905081810360008301526138df816133f4565b9050919050565b600060208201905081810360008301526138ff81613417565b9050919050565b6000602082019050818103600083015261391f8161343a565b9050919050565b6000602082019050818103600083015261393f8161345d565b9050919050565b6000602082019050818103600083015261395f81613480565b9050919050565b6000602082019050818103600083015261397f816134a3565b9050919050565b6000602082019050818103600083015261399f816134c6565b9050919050565b600060208201905081810360008301526139bf816134e9565b9050919050565b600060208201905081810360008301526139df8161350c565b9050919050565b600060208201905081810360008301526139ff8161352f565b9050919050565b60006020820190508181036000830152613a1f81613552565b9050919050565b60006020820190508181036000830152613a3f81613575565b9050919050565b60006020820190508181036000830152613a5f81613598565b9050919050565b60006020820190508181036000830152613a7f816135bb565b9050919050565b60006020820190508181036000830152613a9f816135de565b9050919050565b60006020820190508181036000830152613abf81613624565b9050919050565b6000606082019050613adb6000830184613647565b92915050565b60006020820190508181036000830152613afb8184613689565b905092915050565b6000604082019050613b1860008301846136c6565b92915050565b6000606082019050613b3360008301846136f5565b92915050565b6000602082019050613b4e6000830184613737565b92915050565b6000602082019050613b69600083018461376c565b92915050565b6000604082019050613b84600083018661376c565b8181036020830152613b97818486613355565b9050949350505050565b6000604082019050613bb6600083018461376c565b8181036020830152613bc781613601565b905092915050565b6000608082019050613be4600083018861376c565b613bf1602083018761376c565b8181036040830152613c04818587613355565b90508181036060830152613c1881846133bb565b90509695505050505050565b600060a082019050613c39600083018961376c565b613c466020830188613799565b613c53604083018761376c565b8181036060830152613c66818587613355565b9050613c75608083018461376c565b979650505050505050565b600060c082019050613c95600083018a61376c565b613ca26020830189613799565b613caf604083018861376c565b8181036060830152613cc2818688613355565b9050613cd1608083018561376c565b613cde60a0830184613311565b98975050505050505050565b600060a082019050613cff600083018861376c565b613d0c6020830187613799565b613d19604083018661376c565b8181036060830152613d2b81856133bb565b9050613d3a608083018461376c565b9695505050505050565b6000613d4e613d5f565b9050613d5a8282614021565b919050565b6000604051905090565b600067ffffffffffffffff821115613d8457613d8361415e565b5b613d8d8261418d565b9050602081019050919050565b600067ffffffffffffffff821115613db557613db461415e565b5b613dbe8261418d565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e0382613f6b565b9150613e0e83613f6b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e4357613e426140d1565b5b828201905092915050565b6000613e5982613f6b565b9150613e6483613f6b565b925082613e7457613e73614100565b5b828204905092915050565b6000613e8a82613f6b565b9150613e9583613f6b565b925082821015613ea857613ea76140d1565b5b828203905092915050565b6000613ebe82613f4b565b9050919050565b6000613ed082613f4b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000613f1a82613eb3565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000613f9482613f21565b9050919050565b6000613fa682613f75565b9050919050565b82818337600083830152505050565b60005b83811015613fda578082015181840152602081019050613fbf565b83811115613fe9576000848401525b50505050565b6000600282049050600182168061400757607f821691505b6020821081141561401b5761401a61412f565b5b50919050565b61402a8261418d565b810181811067ffffffffffffffff821117156140495761404861415e565b5b80604052505050565b600061405d82613f6b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140905761408f6140d1565b5b600182019050919050565b60006140a6826140bf565b9050919050565b60006140b88261419e565b9050919050565b60006140ca826141ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f01b9050919050565b60008160601b9050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f416374696f6e204d69736d617463680000000000000000000000000000000000600082015250565b7f6d7573742070617920626f74682076616c756520616e64207472616e7361637460008201527f696f6e2066656573210000000000000000000000000000000000000000000000602082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f75706461746520746865207468726573686f6c64206265666f72652072656d6f60008201527f76696e6720746869732076616c696461746f7221000000000000000000000000602082015250565b7f76616c696461746f7273206d757374206265203c3d2076616c696461746f727360008201527f206c656e67746800000000000000000000000000000000000000000000000000602082015250565b7f676976656e2061646472657373206973206e6f7420612076616c696461746f72600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f616c726561647920612076616c696461746f7200000000000000000000000000600082015250565b7f4e465420616c72656164792077686974656c6973746564000000000000000000600082015250565b7f5478204665657320697320726571756972656421000000000000000000000000600082015250565b7f54686973204e465420636f6e7472616374206973206e6f742077686974656c6960008201527f7374656400000000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f596f7520646f6e2774206f776e2074686973206e667421000000000000000000600082015250565b50565b7f4e4654206e6f742077686974656c69737465643f210000000000000000000000600082015250565b6144ec81613eb3565b81146144f757600080fd5b50565b61450381613ec5565b811461450e57600080fd5b50565b61451a81613f0f565b811461452557600080fd5b50565b61453181613f21565b811461453c57600080fd5b50565b61454881613f3d565b811461455357600080fd5b50565b61455f81613f6b565b811461456a57600080fd5b50565b61457681613f75565b811461458157600080fd5b5056fea2646970667358221220a659c1fdb7743f7a286cb8aef43425cab05c2f792ea5465274023c94e5d4bdad64736f6c63430008040033", - "deployedBytecode": "0x6080604052600436106100fe5760003560e01c80636d0446d911610095578063daf1396411610064578063daf13964146102f2578063e2ef22171461031b578063ef1d0dec14610337578063f30f44a114610360578063f325c75414610389576100fe565b80636d0446d91461026857806372536d4f146102915780638b202d8f146102ba578063cff75c78146102d6576100fe565b8063453d7365116100d1578063453d7365146101ae578063519de490146101eb5780635c975abb146102145780635df93c7e1461023f576100fe565b80630d11f0a414610103578063128e66bd1461011f578063150b7a0214610148578063270c1cb414610185575b600080fd5b61011d60048036038101906101189190612f38565b6103b2565b005b34801561012b57600080fd5b5061014660048036038101906101419190612ffa565b61044e565b005b34801561015457600080fd5b5061016f600480360381019061016a9190612e3d565b6105b3565b60405161017c91906138ab565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190612fd1565b6105c7565b005b3480156101ba57600080fd5b506101d560048036038101906101d09190613085565b6106ba565b6040516101e29190613b54565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d9190612fd1565b610984565b005b34801561022057600080fd5b50610229610a76565b6040516102369190613890565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613036565b610a8c565b005b34801561027457600080fd5b5061028f600480360381019061028a9190612fd1565b610c27565b005b34801561029d57600080fd5b506102b860048036038101906102b391906130f1565b610cd2565b005b6102d460048036038101906102cf919061322f565b610f17565b005b6102f060048036038101906102eb919061329b565b610fb5565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612ffa565b6110ce565b005b61033560048036038101906103309190612eb8565b61128c565b005b34801561034357600080fd5b5061035e600480360381019061035991906131cc565b611497565b005b34801561036c57600080fd5b5061038760048036038101906103829190613154565b611660565b005b34801561039557600080fd5b506103b060048036038101906103ab9190613190565b611848565b005b600034116103f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ec90613a26565b60405180910390fd5b6103fd610a76565b1561043d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610434906139c6565b60405180910390fd5b610449338484846119cf565b505050565b610456610a76565b15610496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048d906139c6565b60405180910390fd5b6104aa816007611d3090919063ffffffff16565b156104ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e1906139e6565b60405180910390fd5b6000816040516020016104fd91906137a8565b6040516020818303038152906040529050600061051c84600784611d60565b905060006001811115610558577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610591577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156105ad576105ab83600761199f90919063ffffffff16565b505b50505050565b600063150b7a0260e01b9050949350505050565b6105cf610a76565b1561060f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610606906139c6565b60405180910390fd5b6000604051806020016040528060008152509050600061063183600584611d60565b90506000600181111561066d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156106a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156106b5576106b46124b1565b5b505050565b60006106c4610a76565b15610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906139c6565b60405180910390fd5b600060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040516020016107859190613ae1565b604051602081830303815290604052905060006107a487600184611d60565b9050600060018111156107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610819577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561097557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19876003546040518363ffffffff1660e01b815260040161087e929190613830565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e260035487876040518463ffffffff1660e01b815260040161091193929190613b6f565b600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050506001600360008282546109569190613df8565b92505081905550600160035461096c9190613e7f565b9250505061097c565b6000925050505b949350505050565b61098c610a76565b6109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c2906138e6565b60405180910390fd5b600060405180602001604052806000815250905060006109ed83600684611d60565b905060006001811115610a29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610a62577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610a7157610a70612553565b5b505050565b60008060009054906101000a900460ff16905090565b610a94610a76565b15610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb906139c6565b60405180910390fd5b600060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff16815260200183815250604051602001610b119190613b03565b60405160208183030381529060405290506000610b3085600284611d60565b905060006001811115610b6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610ba5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610c20578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1690613a66565b60405180910390fd5b5b5050505050565b60006040518060200160405280600081525090506000610c4983600a84611d60565b905060006001811115610c85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610cbe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610ccd57610ccc6125f4565b5b505050565b610cda610a76565b15610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d11906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390613aa6565b60405180910390fd5b600060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815250604051602001610e059190613b1e565b60405160208183030381529060405290506000610e2486600384611d60565b905060006001811115610e60577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115610e99577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415610f0f578273ffffffffffffffffffffffffffffffffffffffff166342842e0e3087876040518463ffffffff1660e01b8152600401610edc939291906137f9565b600060405180830381600087803b158015610ef657600080fd5b505af1158015610f0a573d6000803e3d6000fd5b505050505b505050505050565b60003411610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5190613a26565b60405180910390fd5b610f62610a76565b15610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906139c6565b60405180910390fd5b610faf33858585856126aa565b50505050565b610fbd610a76565b15610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906139c6565b60405180910390fd5b80341161103f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103690613926565b60405180910390fd5b7f88f79205ab1c13838c5021687f6e6e5840f03604b240c4f7441a657029b346e46002548483346110709190613e7f565b8585604051611083959493929190613cea565b60405180910390a160016002600082825461109e9190613df8565b9250508190555080346110b19190613e7f565b600460008282546110c29190613df8565b92505081905550505050565b6110d6610a76565b15611116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110d906139c6565b60405180910390fd5b600161112260076127b8565b61112c9190613e7f565b6001541115611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790613966565b60405180910390fd5b611184816007611d3090919063ffffffff16565b6111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906139a6565b60405180910390fd5b6000816040516020016111d691906137a8565b604051602081830303815290604052905060006111f584600884611d60565b905060006001811115611231577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81600181111561126a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611286576112848360076127cd90919063ffffffff16565b505b50505050565b600034116112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690613a26565b60405180910390fd5b6112d7610a76565b15611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e906139c6565b60405180910390fd5b6002600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090613a46565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166342842e0e3330876040518463ffffffff1660e01b81526004016113e6939291906137f9565b600060405180830381600087803b15801561140057600080fd5b505af1158015611414573d6000803e3d6000fd5b505050507fefd5d17615e8d78513f02fa7a2aab6ebdf2452857907b1293a10e321e9d5386b60025484348585898b6040516114559796959493929190613c80565b60405180910390a16001600260008282546114709190613df8565b9250508190555034600460008282546114899190613df8565b925050819055505050505050565b61149f610a76565b156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d6906139c6565b60405180910390fd5b600060405180606001604052808567ffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381525060405160200161152c9190613ac6565b6040516020818303038152906040529050600061154b86600084611d60565b905060006001811115611587577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156115c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561165857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663156e29f68587866040518463ffffffff1660e01b815260040161162593929190613859565b600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050505b505050505050565b611668610a76565b156116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f906139c6565b60405180910390fd5b6002600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290613a06565b60405180910390fd5b60008160405160200161174e91906137a8565b6040516020818303038152906040529050600061176d84600484611d60565b9050600060018111156117a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160018111156117e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611842576002600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b50505050565b611850610a76565b15611890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611887906139c6565b60405180910390fd5b61189a60076127b8565b8161ffff1611156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790613986565b60405180910390fd5b6000816040516020016118f391906137c3565b6040516020818303038152906040529050600061191284600984611d60565b90506000600181111561194e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816001811115611987577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611999578261ffff166001819055505b50505050565b60006119c7836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6127fd565b905092915050565b8373ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401611a419190613b54565b60206040518083038186803b158015611a5957600080fd5b505afa158015611a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a919190612e14565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613a86565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b8152600401611b449190613b54565b60006040518083038186803b158015611b5c57600080fd5b505afa158015611b70573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b999190612f90565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663862440e2836040518263ffffffff1660e01b8152600401611bf69190613ba1565b600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68836040518263ffffffff1660e01b8152600401611c839190613b54565b600060405180830381600087803b158015611c9d57600080fd5b505af1158015611cb1573d6000803e3d6000fd5b505050507f9fa54a915c5d5d5ff39f445ca7c4b9bce03cbaf401223dbd10d1079fcdd0b56660025434868685604051611cee959493929190613bcf565b60405180910390a1600160026000828254611d099190613df8565b925050819055503460046000828254611d229190613df8565b925050819055505050505050565b6000611d58836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61286d565b905092915050565b6000611d76336007611d3090919063ffffffff16565b611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac906138c6565b60405180910390fd5b6000600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611f1957604051806080016040528084600a811115611e3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001838152602001600181526020016001815250600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083600a811115611edb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b02179055506020820151816001019080519060200190611efc929190612b07565b506040820151816002015560608201518160030155905050612293565b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613946565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461202c9190613df8565b9250508190555082600a81111561206c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600a8111156120ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1461212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212390613906565b60405180910390fd5b61220182600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600101805461217590613fef565b80601f01602080910402602001604051908101604052809291908181526020018280546121a190613fef565b80156121ee5780601f106121c3576101008083540402835291602001916121ee565b820191906000526020600020905b8154815290600101906020018083116121d157829003601f168201915b505050505061289090919063ffffffff16565b612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613906565b60405180910390fd5b6001600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825461228b9190613df8565b925050819055505b6002600b6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600060019050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200190815260200160002060020154141561237057600090505b61237a60076127b8565b600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414156124a657600a6000866fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff02191690556001820160006124179190612b8d565b600282016000905560038201600090555050600154600a6000876fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410156124a5577fe22e1372cd6c9720ae7fc7854536a963d13d9996efde6038cbcecac7ff182e078560405161249c9190613b39565b60405180910390a15b5b809150509392505050565b6124b9610a76565b156124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f0906139c6565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861253c6128fd565b60405161254991906137de565b60405180910390a1565b61255b610a76565b61259a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612591906138e6565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6125dd6128fd565b6040516125ea91906137de565b60405180910390a1565b600061260060076127b8565b90506000816004546126129190613e4e565b905060005b828110156126a55761263381600761290590919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612678573d6000803e3d6000fd5b50816004600082825461268b9190613e7f565b92505081905550808061269d90614052565b915050612617565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca8686846040518463ffffffff1660e01b815260040161270993929190613859565b600060405180830381600087803b15801561272357600080fd5b505af1158015612737573d6000803e3d6000fd5b505050507f135c92cfa1cfe8e46534cd8748b74ee2505948ac3023824a91dc57ffda5f5b4c600254853486868660405161277696959493929190613c24565b60405180910390a16001600260008282546127919190613df8565b9250508190555034600460008282546127aa9190613df8565b925050819055505050505050565b60006127c68260000161291f565b9050919050565b60006127f5836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612930565b905092915050565b6000612809838361286d565b612862578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612867565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008060019050835183518114600181146128ae57600092506128f1565b600160208701838101602088015b6002848385100114156128ec5780518351146128db5760009650600093505b6020830192506020810190506128bc565b505050505b50508091505092915050565b600033905090565b60006129148360000183612ab6565b60001c905092915050565b600081600001805490509050919050565b60008083600101600084815260200190815260200160002054905060008114612aaa5760006001826129629190613e7f565b905060006001866000018054905061297a9190613e7f565b9050818114612a355760008660000182815481106129c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612a6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612ab0565b60009150505b92915050565b6000826000018281548110612af4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905092915050565b828054612b1390613fef565b90600052602060002090601f016020900481019282612b355760008555612b7c565b82601f10612b4e57805160ff1916838001178555612b7c565b82800160010185558215612b7c579182015b82811115612b7b578251825591602001919060010190612b60565b5b509050612b899190612bcd565b5090565b508054612b9990613fef565b6000825580601f10612bab5750612bca565b601f016020900490600052602060002090810190612bc99190612bcd565b5b50565b5b80821115612be6576000816000905550600101612bce565b5090565b6000612bfd612bf884613d69565b613d44565b905082815260208101848484011115612c1557600080fd5b612c20848285613fad565b509392505050565b6000612c3b612c3684613d9a565b613d44565b905082815260208101848484011115612c5357600080fd5b612c5e848285613fad565b509392505050565b6000612c79612c7484613d9a565b613d44565b905082815260208101848484011115612c9157600080fd5b612c9c848285613fbc565b509392505050565b600081359050612cb3816144e3565b92915050565b600081519050612cc8816144e3565b92915050565b600081359050612cdd816144fa565b92915050565b600082601f830112612cf457600080fd5b8135612d04848260208601612bea565b91505092915050565b600081359050612d1c81614511565b92915050565b60008083601f840112612d3457600080fd5b8235905067ffffffffffffffff811115612d4d57600080fd5b602083019150836001820283011115612d6557600080fd5b9250929050565b600082601f830112612d7d57600080fd5b8135612d8d848260208601612c28565b91505092915050565b600082601f830112612da757600080fd5b8151612db7848260208601612c66565b91505092915050565b600081359050612dcf81614528565b92915050565b600081359050612de48161453f565b92915050565b600081359050612df981614556565b92915050565b600081359050612e0e8161456d565b92915050565b600060208284031215612e2657600080fd5b6000612e3484828501612cb9565b91505092915050565b60008060008060808587031215612e5357600080fd5b6000612e6187828801612ca4565b9450506020612e7287828801612ca4565b9350506040612e8387828801612dea565b925050606085013567ffffffffffffffff811115612ea057600080fd5b612eac87828801612ce3565b91505092959194509250565b600080600080600060808688031215612ed057600080fd5b6000612ede88828901612d0d565b9550506020612eef88828901612dea565b9450506040612f0088828901612dff565b935050606086013567ffffffffffffffff811115612f1d57600080fd5b612f2988828901612d22565b92509250509295509295909350565b600080600060408486031215612f4d57600080fd5b600084013567ffffffffffffffff811115612f6757600080fd5b612f7386828701612d22565b93509350506020612f8686828701612dea565b9150509250925092565b600060208284031215612fa257600080fd5b600082015167ffffffffffffffff811115612fbc57600080fd5b612fc884828501612d96565b91505092915050565b600060208284031215612fe357600080fd5b6000612ff184828501612dc0565b91505092915050565b6000806040838503121561300d57600080fd5b600061301b85828601612dc0565b925050602061302c85828601612ca4565b9150509250929050565b60008060006060848603121561304b57600080fd5b600061305986828701612dc0565b935050602061306a86828701612cce565b925050604061307b86828701612dea565b9150509250925092565b6000806000806060858703121561309b57600080fd5b60006130a987828801612dc0565b94505060206130ba87828801612ca4565b935050604085013567ffffffffffffffff8111156130d757600080fd5b6130e387828801612d22565b925092505092959194509250565b6000806000806080858703121561310757600080fd5b600061311587828801612dc0565b945050602061312687828801612ca4565b935050604061313787828801612dea565b925050606061314887828801612d0d565b91505092959194509250565b6000806040838503121561316757600080fd5b600061317585828601612dc0565b925050602061318685828601612d0d565b9150509250929050565b600080604083850312156131a357600080fd5b60006131b185828601612dc0565b92505060206131c285828601612dd5565b9150509250929050565b600080600080608085870312156131e257600080fd5b60006131f087828801612dc0565b945050602061320187828801612dff565b935050604061321287828801612ca4565b925050606061322387828801612dea565b91505092959194509250565b6000806000806060858703121561324557600080fd5b600061325387828801612dff565b945050602085013567ffffffffffffffff81111561327057600080fd5b61327c87828801612d22565b9350935050604061328f87828801612dea565b91505092959194509250565b6000806000606084860312156132b057600080fd5b60006132be86828701612dff565b935050602084013567ffffffffffffffff8111156132db57600080fd5b6132e786828701612d6c565b92505060406132f886828701612dea565b9150509250925092565b61330b81613eb3565b82525050565b61331a81613eb3565b82525050565b61333161332c82613eb3565b61409b565b82525050565b61334081613ed7565b82525050565b61334f81613ee3565b82525050565b60006133618385613de7565b935061336e838584613fad565b6133778361418d565b840190509392505050565b600061338d82613dcb565b6133978185613dd6565b93506133a7818560208601613fbc565b6133b08161418d565b840191505092915050565b60006133c682613dcb565b6133d08185613de7565b93506133e0818560208601613fbc565b6133e98161418d565b840191505092915050565b6000613401601083613de7565b915061340c826141b8565b602082019050919050565b6000613424601483613de7565b915061342f826141e1565b602082019050919050565b6000613447600f83613de7565b91506134528261420a565b602082019050919050565b600061346a602983613de7565b915061347582614233565b604082019050919050565b600061348d601483613de7565b915061349882614282565b602082019050919050565b60006134b0603483613de7565b91506134bb826142ab565b604082019050919050565b60006134d3602783613de7565b91506134de826142fa565b604082019050919050565b60006134f6602083613de7565b915061350182614349565b602082019050919050565b6000613519601083613de7565b915061352482614372565b602082019050919050565b600061353c601383613de7565b91506135478261439b565b602082019050919050565b600061355f601783613de7565b915061356a826143c4565b602082019050919050565b6000613582601483613de7565b915061358d826143ed565b602082019050919050565b60006135a5602483613de7565b91506135b082614416565b604082019050919050565b60006135c8601483613de7565b91506135d382614465565b602082019050919050565b60006135eb601783613de7565b91506135f68261448e565b602082019050919050565b600061360e600083613de7565b9150613619826144b7565b600082019050919050565b6000613631601583613de7565b915061363c826144ba565b602082019050919050565b60608201600082015161365d600085018261378a565b5060208201516136706020850182613302565b506040820151613683604085018261375d565b50505050565b60006040830160008301516136a16000860182613302565b50602083015184820360208601526136b98282613382565b9150508091505092915050565b6040820160008201516136dc6000850182613302565b5060208201516136ef602085018261375d565b50505050565b60608201600082015161370b6000850182613302565b50602082015161371e602085018261375d565b5060408201516137316040850182613302565b50505050565b61374081613f89565b82525050565b61375761375282613f3d565b6140ad565b82525050565b61376681613f6b565b82525050565b61377581613f6b565b82525050565b61378481613f9b565b82525050565b61379381613f75565b82525050565b6137a281613f75565b82525050565b60006137b48284613320565b60148201915081905092915050565b60006137cf8284613746565b60028201915081905092915050565b60006020820190506137f36000830184613311565b92915050565b600060608201905061380e6000830186613311565b61381b6020830185613311565b613828604083018461376c565b949350505050565b60006040820190506138456000830185613311565b613852602083018461376c565b9392505050565b600060608201905061386e6000830186613311565b61387b602083018561377b565b613888604083018461376c565b949350505050565b60006020820190506138a56000830184613337565b92915050565b60006020820190506138c06000830184613346565b92915050565b600060208201905081810360008301526138df816133f4565b9050919050565b600060208201905081810360008301526138ff81613417565b9050919050565b6000602082019050818103600083015261391f8161343a565b9050919050565b6000602082019050818103600083015261393f8161345d565b9050919050565b6000602082019050818103600083015261395f81613480565b9050919050565b6000602082019050818103600083015261397f816134a3565b9050919050565b6000602082019050818103600083015261399f816134c6565b9050919050565b600060208201905081810360008301526139bf816134e9565b9050919050565b600060208201905081810360008301526139df8161350c565b9050919050565b600060208201905081810360008301526139ff8161352f565b9050919050565b60006020820190508181036000830152613a1f81613552565b9050919050565b60006020820190508181036000830152613a3f81613575565b9050919050565b60006020820190508181036000830152613a5f81613598565b9050919050565b60006020820190508181036000830152613a7f816135bb565b9050919050565b60006020820190508181036000830152613a9f816135de565b9050919050565b60006020820190508181036000830152613abf81613624565b9050919050565b6000606082019050613adb6000830184613647565b92915050565b60006020820190508181036000830152613afb8184613689565b905092915050565b6000604082019050613b1860008301846136c6565b92915050565b6000606082019050613b3360008301846136f5565b92915050565b6000602082019050613b4e6000830184613737565b92915050565b6000602082019050613b69600083018461376c565b92915050565b6000604082019050613b84600083018661376c565b8181036020830152613b97818486613355565b9050949350505050565b6000604082019050613bb6600083018461376c565b8181036020830152613bc781613601565b905092915050565b6000608082019050613be4600083018861376c565b613bf1602083018761376c565b8181036040830152613c04818587613355565b90508181036060830152613c1881846133bb565b90509695505050505050565b600060a082019050613c39600083018961376c565b613c466020830188613799565b613c53604083018761376c565b8181036060830152613c66818587613355565b9050613c75608083018461376c565b979650505050505050565b600060c082019050613c95600083018a61376c565b613ca26020830189613799565b613caf604083018861376c565b8181036060830152613cc2818688613355565b9050613cd1608083018561376c565b613cde60a0830184613311565b98975050505050505050565b600060a082019050613cff600083018861376c565b613d0c6020830187613799565b613d19604083018661376c565b8181036060830152613d2b81856133bb565b9050613d3a608083018461376c565b9695505050505050565b6000613d4e613d5f565b9050613d5a8282614021565b919050565b6000604051905090565b600067ffffffffffffffff821115613d8457613d8361415e565b5b613d8d8261418d565b9050602081019050919050565b600067ffffffffffffffff821115613db557613db461415e565b5b613dbe8261418d565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613e0382613f6b565b9150613e0e83613f6b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e4357613e426140d1565b5b828201905092915050565b6000613e5982613f6b565b9150613e6483613f6b565b925082613e7457613e73614100565b5b828204905092915050565b6000613e8a82613f6b565b9150613e9583613f6b565b925082821015613ea857613ea76140d1565b5b828203905092915050565b6000613ebe82613f4b565b9050919050565b6000613ed082613f4b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000613f1a82613eb3565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000613f9482613f21565b9050919050565b6000613fa682613f75565b9050919050565b82818337600083830152505050565b60005b83811015613fda578082015181840152602081019050613fbf565b83811115613fe9576000848401525b50505050565b6000600282049050600182168061400757607f821691505b6020821081141561401b5761401a61412f565b5b50919050565b61402a8261418d565b810181811067ffffffffffffffff821117156140495761404861415e565b5b80604052505050565b600061405d82613f6b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140905761408f6140d1565b5b600182019050919050565b60006140a6826140bf565b9050919050565b60006140b88261419e565b9050919050565b60006140ca826141ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f01b9050919050565b60008160601b9050919050565b7f4e6f7420612076616c696461746f722100000000000000000000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f416374696f6e204d69736d617463680000000000000000000000000000000000600082015250565b7f6d7573742070617920626f74682076616c756520616e64207472616e7361637460008201527f696f6e2066656573210000000000000000000000000000000000000000000000602082015250565b7f4475706c69636174652056616c696461746f7221000000000000000000000000600082015250565b7f75706461746520746865207468726573686f6c64206265666f72652072656d6f60008201527f76696e6720746869732076616c696461746f7221000000000000000000000000602082015250565b7f76616c696461746f7273206d757374206265203c3d2076616c696461746f727360008201527f206c656e67746800000000000000000000000000000000000000000000000000602082015250565b7f676976656e2061646472657373206973206e6f7420612076616c696461746f72600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f616c726561647920612076616c696461746f7200000000000000000000000000600082015250565b7f4e465420616c72656164792077686974656c6973746564000000000000000000600082015250565b7f5478204665657320697320726571756972656421000000000000000000000000600082015250565b7f54686973204e465420636f6e7472616374206973206e6f742077686974656c6960008201527f7374656400000000000000000000000000000000000000000000000000000000602082015250565b7f4641494c454420544f205452414e534645523f21000000000000000000000000600082015250565b7f596f7520646f6e2774206f776e2074686973206e667421000000000000000000600082015250565b50565b7f4e4654206e6f742077686974656c69737465643f210000000000000000000000600082015250565b6144ec81613eb3565b81146144f757600080fd5b50565b61450381613ec5565b811461450e57600080fd5b50565b61451a81613f0f565b811461452557600080fd5b50565b61453181613f21565b811461453c57600080fd5b50565b61454881613f3d565b811461455357600080fd5b50565b61455f81613f6b565b811461456a57600080fd5b50565b61457681613f75565b811461458157600080fd5b5056fea2646970667358221220a659c1fdb7743f7a286cb8aef43425cab05c2f792ea5465274023c94e5d4bdad64736f6c63430008040033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/src/XPNet.json b/src/XPNet.json deleted file mode 100644 index c280aaff5..000000000 --- a/src/XPNet.json +++ /dev/null @@ -1,444 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "XPNet", - "sourceName": "contracts/XPNet.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "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": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "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": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "uri_", - "type": "string" - } - ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200005a60201b60201c565b5062000054620000486200007660201b60201c565b6200007e60201b60201c565b62000259565b80600290805190602001906200007292919062000144565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200015290620001f4565b90600052602060002090601f016020900481019282620001765760008555620001c2565b82601f106200019157805160ff1916838001178555620001c2565b82800160010185558215620001c2579182015b82811115620001c1578251825591602001919060010190620001a4565b5b509050620001d19190620001d5565b5090565b5b80821115620001f0576000816000905550600101620001d6565b5090565b600060028204905060018216806200020d57607f821691505b602082108114156200022457620002236200022a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6133c680620002696000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c8063862440e21161008c578063e985e9c511610066578063e985e9c514610246578063f242432a14610276578063f2fde38b14610292578063f5298aca146102ae576100e9565b8063862440e2146101f05780638da5cb5b1461020c578063a22cb4651461022a576100e9565b8063156e29f6116100c8578063156e29f61461017e5780632eb2c2d61461019a5780634e1273f4146101b6578063715018a6146101e6576100e9565b8062fdd58e146100ee57806301ffc9a71461011e5780630e89341c1461014e575b600080fd5b610108600480360381019061010391906121ed565b6102ca565b6040516101159190612a3b565b60405180910390f35b610138600480360381019061013391906122e4565b610393565b604051610145919061281e565b60405180910390f35b61016860048036038101906101639190612336565b610475565b6040516101759190612839565b60405180910390f35b61019860048036038101906101939190612229565b61051a565b005b6101b460048036038101906101af9190612063565b6105b6565b005b6101d060048036038101906101cb9190612278565b610657565b6040516101dd91906127c5565b60405180910390f35b6101ee610808565b005b61020a6004803603810190610205919061235f565b610890565b005b610214610934565b60405161022191906126e8565b60405180910390f35b610244600480360381019061023f91906121b1565b61095e565b005b610260600480360381019061025b9190612027565b610adf565b60405161026d919061281e565b60405180910390f35b610290600480360381019061028b9190612122565b610b73565b005b6102ac60048036038101906102a79190611ffe565b610c14565b005b6102c860048036038101906102c39190612229565b610d0c565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561033b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103329061289b565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061045e57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046e575061046d82610d98565b5b9050919050565b606060046000838152602001908152602001600020805461049590612caa565b80601f01602080910402602001604051908101604052809291908181526020018280546104c190612caa565b801561050e5780601f106104e35761010080835404028352916020019161050e565b820191906000526020600020905b8154815290600101906020018083116104f157829003601f168201915b50505050509050919050565b610522610e02565b73ffffffffffffffffffffffffffffffffffffffff16610540610934565b73ffffffffffffffffffffffffffffffffffffffff1614610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d9061299b565b60405180910390fd5b6105b183838360405180602001604052806000815250610e0a565b505050565b6105be610e02565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806106045750610603856105fe610e02565b610adf565b5b610643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063a9061293b565b60405180910390fd5b6106508585858585610fa0565b5050505050565b6060815183511461069d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610694906129db565b60405180910390fd5b6000835167ffffffffffffffff8111156106e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561070e5781602001602082028036833780820191505090505b50905060005b84518110156107fd576107a7858281518110610759577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015185838151811061079a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516102ca565b8282815181106107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050806107f690612d0d565b9050610714565b508091505092915050565b610810610e02565b73ffffffffffffffffffffffffffffffffffffffff1661082e610934565b73ffffffffffffffffffffffffffffffffffffffff1614610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b9061299b565b60405180910390fd5b61088e6000611300565b565b610898610e02565b73ffffffffffffffffffffffffffffffffffffffff166108b6610934565b73ffffffffffffffffffffffffffffffffffffffff161461090c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109039061299b565b60405180910390fd5b818160046000868152602001908152602001600020919061092e929190611d14565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8173ffffffffffffffffffffffffffffffffffffffff1661097d610e02565b73ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906129bb565b60405180910390fd5b80600160006109e1610e02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e02565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061281e565b60405180910390a35050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610b7b610e02565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610bc15750610bc085610bbb610e02565b610adf565b5b610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf7906128fb565b60405180910390fd5b610c0d85858585856113c6565b5050505050565b610c1c610e02565b73ffffffffffffffffffffffffffffffffffffffff16610c3a610934565b73ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c879061299b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf7906128bb565b60405180910390fd5b610d0981611300565b50565b610d14610e02565b73ffffffffffffffffffffffffffffffffffffffff16610d32610934565b73ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f9061299b565b60405180910390fd5b610d93838383611648565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7190612a1b565b60405180910390fd5b6000610e84610e02565b9050610ea581600087610e9688611865565b610e9f88611865565b8761192b565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f049190612b9e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051610f82929190612a56565b60405180910390a4610f9981600087878787611933565b5050505050565b8151835114610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb906129fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b9061291b565b60405180910390fd5b600061105e610e02565b905061106e81878787878761192b565b60005b845181101561126b5760008582815181106110b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905060008583815181106110fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061297b565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112509190612b9e565b925050819055505050508061126490612d0d565b9050611071565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516112e29291906127e7565b60405180910390a46112f8818787878787611b1a565b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d9061291b565b60405180910390fd5b6000611440610e02565b905061146081878761145188611865565b61145a88611865565b8761192b565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee9061297b565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115ac9190612b9e565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051611629929190612a56565b60405180910390a461163f828888888888611933565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af9061295b565b60405180910390fd5b60006116c2610e02565b90506116f2818560006116d487611865565b6116dd87611865565b6040518060200160405280600081525061192b565b600080600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611780906128db565b60405180910390fd5b82810360008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611856929190612a56565b60405180910390a45050505050565b60606000600167ffffffffffffffff8111156118aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156118d85781602001602082028036833780820191505090505b5090508281600081518110611916577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080915050919050565b505050505050565b6119528473ffffffffffffffffffffffffffffffffffffffff16611d01565b15611b12578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161199895949392919061276b565b602060405180830381600087803b1580156119b257600080fd5b505af19250505080156119e357506040513d601f19601f820116820180604052508101906119e0919061230d565b60015b611a89576119ef612de3565b806308c379a01415611a4c5750611a0461329e565b80611a0f5750611a4e565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a439190612839565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a809061285b565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b079061287b565b60405180910390fd5b505b505050505050565b611b398473ffffffffffffffffffffffffffffffffffffffff16611d01565b15611cf9578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611b7f959493929190612703565b602060405180830381600087803b158015611b9957600080fd5b505af1925050508015611bca57506040513d601f19601f82011682018060405250810190611bc7919061230d565b60015b611c7057611bd6612de3565b806308c379a01415611c335750611beb61329e565b80611bf65750611c35565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2a9190612839565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c679061285b565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cee9061287b565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b828054611d2090612caa565b90600052602060002090601f016020900481019282611d425760008555611d89565b82601f10611d5b57803560ff1916838001178555611d89565b82800160010185558215611d89579182015b82811115611d88578235825591602001919060010190611d6d565b5b509050611d969190611d9a565b5090565b5b80821115611db3576000816000905550600101611d9b565b5090565b6000611dca611dc584612aa4565b612a7f565b90508083825260208201905082856020860282011115611de957600080fd5b60005b85811015611e195781611dff8882611ecd565b845260208401935060208301925050600181019050611dec565b5050509392505050565b6000611e36611e3184612ad0565b612a7f565b90508083825260208201905082856020860282011115611e5557600080fd5b60005b85811015611e855781611e6b8882611fe9565b845260208401935060208301925050600181019050611e58565b5050509392505050565b6000611ea2611e9d84612afc565b612a7f565b905082815260208101848484011115611eba57600080fd5b611ec5848285612c68565b509392505050565b600081359050611edc81613334565b92915050565b600082601f830112611ef357600080fd5b8135611f03848260208601611db7565b91505092915050565b600082601f830112611f1d57600080fd5b8135611f2d848260208601611e23565b91505092915050565b600081359050611f458161334b565b92915050565b600081359050611f5a81613362565b92915050565b600081519050611f6f81613362565b92915050565b600082601f830112611f8657600080fd5b8135611f96848260208601611e8f565b91505092915050565b60008083601f840112611fb157600080fd5b8235905067ffffffffffffffff811115611fca57600080fd5b602083019150836001820283011115611fe257600080fd5b9250929050565b600081359050611ff881613379565b92915050565b60006020828403121561201057600080fd5b600061201e84828501611ecd565b91505092915050565b6000806040838503121561203a57600080fd5b600061204885828601611ecd565b925050602061205985828601611ecd565b9150509250929050565b600080600080600060a0868803121561207b57600080fd5b600061208988828901611ecd565b955050602061209a88828901611ecd565b945050604086013567ffffffffffffffff8111156120b757600080fd5b6120c388828901611f0c565b935050606086013567ffffffffffffffff8111156120e057600080fd5b6120ec88828901611f0c565b925050608086013567ffffffffffffffff81111561210957600080fd5b61211588828901611f75565b9150509295509295909350565b600080600080600060a0868803121561213a57600080fd5b600061214888828901611ecd565b955050602061215988828901611ecd565b945050604061216a88828901611fe9565b935050606061217b88828901611fe9565b925050608086013567ffffffffffffffff81111561219857600080fd5b6121a488828901611f75565b9150509295509295909350565b600080604083850312156121c457600080fd5b60006121d285828601611ecd565b92505060206121e385828601611f36565b9150509250929050565b6000806040838503121561220057600080fd5b600061220e85828601611ecd565b925050602061221f85828601611fe9565b9150509250929050565b60008060006060848603121561223e57600080fd5b600061224c86828701611ecd565b935050602061225d86828701611fe9565b925050604061226e86828701611fe9565b9150509250925092565b6000806040838503121561228b57600080fd5b600083013567ffffffffffffffff8111156122a557600080fd5b6122b185828601611ee2565b925050602083013567ffffffffffffffff8111156122ce57600080fd5b6122da85828601611f0c565b9150509250929050565b6000602082840312156122f657600080fd5b600061230484828501611f4b565b91505092915050565b60006020828403121561231f57600080fd5b600061232d84828501611f60565b91505092915050565b60006020828403121561234857600080fd5b600061235684828501611fe9565b91505092915050565b60008060006040848603121561237457600080fd5b600061238286828701611fe9565b935050602084013567ffffffffffffffff81111561239f57600080fd5b6123ab86828701611f9f565b92509250509250925092565b60006123c383836126ca565b60208301905092915050565b6123d881612bf4565b82525050565b60006123e982612b3d565b6123f38185612b6b565b93506123fe83612b2d565b8060005b8381101561242f57815161241688826123b7565b975061242183612b5e565b925050600181019050612402565b5085935050505092915050565b61244581612c06565b82525050565b600061245682612b48565b6124608185612b7c565b9350612470818560208601612c77565b61247981612e05565b840191505092915050565b600061248f82612b53565b6124998185612b8d565b93506124a9818560208601612c77565b6124b281612e05565b840191505092915050565b60006124ca603483612b8d565b91506124d582612e23565b604082019050919050565b60006124ed602883612b8d565b91506124f882612e72565b604082019050919050565b6000612510602b83612b8d565b915061251b82612ec1565b604082019050919050565b6000612533602683612b8d565b915061253e82612f10565b604082019050919050565b6000612556602483612b8d565b915061256182612f5f565b604082019050919050565b6000612579602983612b8d565b915061258482612fae565b604082019050919050565b600061259c602583612b8d565b91506125a782612ffd565b604082019050919050565b60006125bf603283612b8d565b91506125ca8261304c565b604082019050919050565b60006125e2602383612b8d565b91506125ed8261309b565b604082019050919050565b6000612605602a83612b8d565b9150612610826130ea565b604082019050919050565b6000612628602083612b8d565b915061263382613139565b602082019050919050565b600061264b602983612b8d565b915061265682613162565b604082019050919050565b600061266e602983612b8d565b9150612679826131b1565b604082019050919050565b6000612691602883612b8d565b915061269c82613200565b604082019050919050565b60006126b4602183612b8d565b91506126bf8261324f565b604082019050919050565b6126d381612c5e565b82525050565b6126e281612c5e565b82525050565b60006020820190506126fd60008301846123cf565b92915050565b600060a08201905061271860008301886123cf565b61272560208301876123cf565b818103604083015261273781866123de565b9050818103606083015261274b81856123de565b9050818103608083015261275f818461244b565b90509695505050505050565b600060a08201905061278060008301886123cf565b61278d60208301876123cf565b61279a60408301866126d9565b6127a760608301856126d9565b81810360808301526127b9818461244b565b90509695505050505050565b600060208201905081810360008301526127df81846123de565b905092915050565b6000604082019050818103600083015261280181856123de565b9050818103602083015261281581846123de565b90509392505050565b6000602082019050612833600083018461243c565b92915050565b600060208201905081810360008301526128538184612484565b905092915050565b60006020820190508181036000830152612874816124bd565b9050919050565b60006020820190508181036000830152612894816124e0565b9050919050565b600060208201905081810360008301526128b481612503565b9050919050565b600060208201905081810360008301526128d481612526565b9050919050565b600060208201905081810360008301526128f481612549565b9050919050565b600060208201905081810360008301526129148161256c565b9050919050565b600060208201905081810360008301526129348161258f565b9050919050565b60006020820190508181036000830152612954816125b2565b9050919050565b60006020820190508181036000830152612974816125d5565b9050919050565b60006020820190508181036000830152612994816125f8565b9050919050565b600060208201905081810360008301526129b48161261b565b9050919050565b600060208201905081810360008301526129d48161263e565b9050919050565b600060208201905081810360008301526129f481612661565b9050919050565b60006020820190508181036000830152612a1481612684565b9050919050565b60006020820190508181036000830152612a34816126a7565b9050919050565b6000602082019050612a5060008301846126d9565b92915050565b6000604082019050612a6b60008301856126d9565b612a7860208301846126d9565b9392505050565b6000612a89612a9a565b9050612a958282612cdc565b919050565b6000604051905090565b600067ffffffffffffffff821115612abf57612abe612db4565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612aeb57612aea612db4565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612b1757612b16612db4565b5b612b2082612e05565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ba982612c5e565b9150612bb483612c5e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612be957612be8612d56565b5b828201905092915050565b6000612bff82612c3e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612c95578082015181840152602081019050612c7a565b83811115612ca4576000848401525b50505050565b60006002820490506001821680612cc257607f821691505b60208210811415612cd657612cd5612d85565b5b50919050565b612ce582612e05565b810181811067ffffffffffffffff82111715612d0457612d03612db4565b5b80604052505050565b6000612d1882612c5e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d4b57612d4a612d56565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d1115612e025760046000803e612dff600051612e16565b90505b90565b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d10156132ae57613331565b6132b6612a9a565b60043d036004823e80513d602482011167ffffffffffffffff821117156132de575050613331565b808201805167ffffffffffffffff8111156132fc5750505050613331565b80602083010160043d038501811115613319575050505050613331565b61332882602001850186612cdc565b82955050505050505b90565b61333d81612bf4565b811461334857600080fd5b50565b61335481612c06565b811461335f57600080fd5b50565b61336b81612c12565b811461337657600080fd5b50565b61338281612c5e565b811461338d57600080fd5b5056fea26469706673582212207c954b474ba2938a61031705a0987bcb898a0dffe9cb3f5a8744e3e16585386e64736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100e95760003560e01c8063862440e21161008c578063e985e9c511610066578063e985e9c514610246578063f242432a14610276578063f2fde38b14610292578063f5298aca146102ae576100e9565b8063862440e2146101f05780638da5cb5b1461020c578063a22cb4651461022a576100e9565b8063156e29f6116100c8578063156e29f61461017e5780632eb2c2d61461019a5780634e1273f4146101b6578063715018a6146101e6576100e9565b8062fdd58e146100ee57806301ffc9a71461011e5780630e89341c1461014e575b600080fd5b610108600480360381019061010391906121ed565b6102ca565b6040516101159190612a3b565b60405180910390f35b610138600480360381019061013391906122e4565b610393565b604051610145919061281e565b60405180910390f35b61016860048036038101906101639190612336565b610475565b6040516101759190612839565b60405180910390f35b61019860048036038101906101939190612229565b61051a565b005b6101b460048036038101906101af9190612063565b6105b6565b005b6101d060048036038101906101cb9190612278565b610657565b6040516101dd91906127c5565b60405180910390f35b6101ee610808565b005b61020a6004803603810190610205919061235f565b610890565b005b610214610934565b60405161022191906126e8565b60405180910390f35b610244600480360381019061023f91906121b1565b61095e565b005b610260600480360381019061025b9190612027565b610adf565b60405161026d919061281e565b60405180910390f35b610290600480360381019061028b9190612122565b610b73565b005b6102ac60048036038101906102a79190611ffe565b610c14565b005b6102c860048036038101906102c39190612229565b610d0c565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561033b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103329061289b565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061045e57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046e575061046d82610d98565b5b9050919050565b606060046000838152602001908152602001600020805461049590612caa565b80601f01602080910402602001604051908101604052809291908181526020018280546104c190612caa565b801561050e5780601f106104e35761010080835404028352916020019161050e565b820191906000526020600020905b8154815290600101906020018083116104f157829003601f168201915b50505050509050919050565b610522610e02565b73ffffffffffffffffffffffffffffffffffffffff16610540610934565b73ffffffffffffffffffffffffffffffffffffffff1614610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d9061299b565b60405180910390fd5b6105b183838360405180602001604052806000815250610e0a565b505050565b6105be610e02565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806106045750610603856105fe610e02565b610adf565b5b610643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063a9061293b565b60405180910390fd5b6106508585858585610fa0565b5050505050565b6060815183511461069d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610694906129db565b60405180910390fd5b6000835167ffffffffffffffff8111156106e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561070e5781602001602082028036833780820191505090505b50905060005b84518110156107fd576107a7858281518110610759577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015185838151811061079a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516102ca565b8282815181106107e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050806107f690612d0d565b9050610714565b508091505092915050565b610810610e02565b73ffffffffffffffffffffffffffffffffffffffff1661082e610934565b73ffffffffffffffffffffffffffffffffffffffff1614610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b9061299b565b60405180910390fd5b61088e6000611300565b565b610898610e02565b73ffffffffffffffffffffffffffffffffffffffff166108b6610934565b73ffffffffffffffffffffffffffffffffffffffff161461090c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109039061299b565b60405180910390fd5b818160046000868152602001908152602001600020919061092e929190611d14565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8173ffffffffffffffffffffffffffffffffffffffff1661097d610e02565b73ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906129bb565b60405180910390fd5b80600160006109e1610e02565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e02565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061281e565b60405180910390a35050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610b7b610e02565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610bc15750610bc085610bbb610e02565b610adf565b5b610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf7906128fb565b60405180910390fd5b610c0d85858585856113c6565b5050505050565b610c1c610e02565b73ffffffffffffffffffffffffffffffffffffffff16610c3a610934565b73ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c879061299b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf7906128bb565b60405180910390fd5b610d0981611300565b50565b610d14610e02565b73ffffffffffffffffffffffffffffffffffffffff16610d32610934565b73ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f9061299b565b60405180910390fd5b610d93838383611648565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7190612a1b565b60405180910390fd5b6000610e84610e02565b9050610ea581600087610e9688611865565b610e9f88611865565b8761192b565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f049190612b9e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051610f82929190612a56565b60405180910390a4610f9981600087878787611933565b5050505050565b8151835114610fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdb906129fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b9061291b565b60405180910390fd5b600061105e610e02565b905061106e81878787878761192b565b60005b845181101561126b5760008582815181106110b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151905060008583815181106110fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061297b565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112509190612b9e565b925050819055505050508061126490612d0d565b9050611071565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516112e29291906127e7565b60405180910390a46112f8818787878787611b1a565b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d9061291b565b60405180910390fd5b6000611440610e02565b905061146081878761145188611865565b61145a88611865565b8761192b565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee9061297b565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115ac9190612b9e565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051611629929190612a56565b60405180910390a461163f828888888888611933565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af9061295b565b60405180910390fd5b60006116c2610e02565b90506116f2818560006116d487611865565b6116dd87611865565b6040518060200160405280600081525061192b565b600080600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611780906128db565b60405180910390fd5b82810360008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611856929190612a56565b60405180910390a45050505050565b60606000600167ffffffffffffffff8111156118aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156118d85781602001602082028036833780820191505090505b5090508281600081518110611916577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080915050919050565b505050505050565b6119528473ffffffffffffffffffffffffffffffffffffffff16611d01565b15611b12578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161199895949392919061276b565b602060405180830381600087803b1580156119b257600080fd5b505af19250505080156119e357506040513d601f19601f820116820180604052508101906119e0919061230d565b60015b611a89576119ef612de3565b806308c379a01415611a4c5750611a0461329e565b80611a0f5750611a4e565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a439190612839565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a809061285b565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b079061287b565b60405180910390fd5b505b505050505050565b611b398473ffffffffffffffffffffffffffffffffffffffff16611d01565b15611cf9578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611b7f959493929190612703565b602060405180830381600087803b158015611b9957600080fd5b505af1925050508015611bca57506040513d601f19601f82011682018060405250810190611bc7919061230d565b60015b611c7057611bd6612de3565b806308c379a01415611c335750611beb61329e565b80611bf65750611c35565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2a9190612839565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c679061285b565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cee9061287b565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b828054611d2090612caa565b90600052602060002090601f016020900481019282611d425760008555611d89565b82601f10611d5b57803560ff1916838001178555611d89565b82800160010185558215611d89579182015b82811115611d88578235825591602001919060010190611d6d565b5b509050611d969190611d9a565b5090565b5b80821115611db3576000816000905550600101611d9b565b5090565b6000611dca611dc584612aa4565b612a7f565b90508083825260208201905082856020860282011115611de957600080fd5b60005b85811015611e195781611dff8882611ecd565b845260208401935060208301925050600181019050611dec565b5050509392505050565b6000611e36611e3184612ad0565b612a7f565b90508083825260208201905082856020860282011115611e5557600080fd5b60005b85811015611e855781611e6b8882611fe9565b845260208401935060208301925050600181019050611e58565b5050509392505050565b6000611ea2611e9d84612afc565b612a7f565b905082815260208101848484011115611eba57600080fd5b611ec5848285612c68565b509392505050565b600081359050611edc81613334565b92915050565b600082601f830112611ef357600080fd5b8135611f03848260208601611db7565b91505092915050565b600082601f830112611f1d57600080fd5b8135611f2d848260208601611e23565b91505092915050565b600081359050611f458161334b565b92915050565b600081359050611f5a81613362565b92915050565b600081519050611f6f81613362565b92915050565b600082601f830112611f8657600080fd5b8135611f96848260208601611e8f565b91505092915050565b60008083601f840112611fb157600080fd5b8235905067ffffffffffffffff811115611fca57600080fd5b602083019150836001820283011115611fe257600080fd5b9250929050565b600081359050611ff881613379565b92915050565b60006020828403121561201057600080fd5b600061201e84828501611ecd565b91505092915050565b6000806040838503121561203a57600080fd5b600061204885828601611ecd565b925050602061205985828601611ecd565b9150509250929050565b600080600080600060a0868803121561207b57600080fd5b600061208988828901611ecd565b955050602061209a88828901611ecd565b945050604086013567ffffffffffffffff8111156120b757600080fd5b6120c388828901611f0c565b935050606086013567ffffffffffffffff8111156120e057600080fd5b6120ec88828901611f0c565b925050608086013567ffffffffffffffff81111561210957600080fd5b61211588828901611f75565b9150509295509295909350565b600080600080600060a0868803121561213a57600080fd5b600061214888828901611ecd565b955050602061215988828901611ecd565b945050604061216a88828901611fe9565b935050606061217b88828901611fe9565b925050608086013567ffffffffffffffff81111561219857600080fd5b6121a488828901611f75565b9150509295509295909350565b600080604083850312156121c457600080fd5b60006121d285828601611ecd565b92505060206121e385828601611f36565b9150509250929050565b6000806040838503121561220057600080fd5b600061220e85828601611ecd565b925050602061221f85828601611fe9565b9150509250929050565b60008060006060848603121561223e57600080fd5b600061224c86828701611ecd565b935050602061225d86828701611fe9565b925050604061226e86828701611fe9565b9150509250925092565b6000806040838503121561228b57600080fd5b600083013567ffffffffffffffff8111156122a557600080fd5b6122b185828601611ee2565b925050602083013567ffffffffffffffff8111156122ce57600080fd5b6122da85828601611f0c565b9150509250929050565b6000602082840312156122f657600080fd5b600061230484828501611f4b565b91505092915050565b60006020828403121561231f57600080fd5b600061232d84828501611f60565b91505092915050565b60006020828403121561234857600080fd5b600061235684828501611fe9565b91505092915050565b60008060006040848603121561237457600080fd5b600061238286828701611fe9565b935050602084013567ffffffffffffffff81111561239f57600080fd5b6123ab86828701611f9f565b92509250509250925092565b60006123c383836126ca565b60208301905092915050565b6123d881612bf4565b82525050565b60006123e982612b3d565b6123f38185612b6b565b93506123fe83612b2d565b8060005b8381101561242f57815161241688826123b7565b975061242183612b5e565b925050600181019050612402565b5085935050505092915050565b61244581612c06565b82525050565b600061245682612b48565b6124608185612b7c565b9350612470818560208601612c77565b61247981612e05565b840191505092915050565b600061248f82612b53565b6124998185612b8d565b93506124a9818560208601612c77565b6124b281612e05565b840191505092915050565b60006124ca603483612b8d565b91506124d582612e23565b604082019050919050565b60006124ed602883612b8d565b91506124f882612e72565b604082019050919050565b6000612510602b83612b8d565b915061251b82612ec1565b604082019050919050565b6000612533602683612b8d565b915061253e82612f10565b604082019050919050565b6000612556602483612b8d565b915061256182612f5f565b604082019050919050565b6000612579602983612b8d565b915061258482612fae565b604082019050919050565b600061259c602583612b8d565b91506125a782612ffd565b604082019050919050565b60006125bf603283612b8d565b91506125ca8261304c565b604082019050919050565b60006125e2602383612b8d565b91506125ed8261309b565b604082019050919050565b6000612605602a83612b8d565b9150612610826130ea565b604082019050919050565b6000612628602083612b8d565b915061263382613139565b602082019050919050565b600061264b602983612b8d565b915061265682613162565b604082019050919050565b600061266e602983612b8d565b9150612679826131b1565b604082019050919050565b6000612691602883612b8d565b915061269c82613200565b604082019050919050565b60006126b4602183612b8d565b91506126bf8261324f565b604082019050919050565b6126d381612c5e565b82525050565b6126e281612c5e565b82525050565b60006020820190506126fd60008301846123cf565b92915050565b600060a08201905061271860008301886123cf565b61272560208301876123cf565b818103604083015261273781866123de565b9050818103606083015261274b81856123de565b9050818103608083015261275f818461244b565b90509695505050505050565b600060a08201905061278060008301886123cf565b61278d60208301876123cf565b61279a60408301866126d9565b6127a760608301856126d9565b81810360808301526127b9818461244b565b90509695505050505050565b600060208201905081810360008301526127df81846123de565b905092915050565b6000604082019050818103600083015261280181856123de565b9050818103602083015261281581846123de565b90509392505050565b6000602082019050612833600083018461243c565b92915050565b600060208201905081810360008301526128538184612484565b905092915050565b60006020820190508181036000830152612874816124bd565b9050919050565b60006020820190508181036000830152612894816124e0565b9050919050565b600060208201905081810360008301526128b481612503565b9050919050565b600060208201905081810360008301526128d481612526565b9050919050565b600060208201905081810360008301526128f481612549565b9050919050565b600060208201905081810360008301526129148161256c565b9050919050565b600060208201905081810360008301526129348161258f565b9050919050565b60006020820190508181036000830152612954816125b2565b9050919050565b60006020820190508181036000830152612974816125d5565b9050919050565b60006020820190508181036000830152612994816125f8565b9050919050565b600060208201905081810360008301526129b48161261b565b9050919050565b600060208201905081810360008301526129d48161263e565b9050919050565b600060208201905081810360008301526129f481612661565b9050919050565b60006020820190508181036000830152612a1481612684565b9050919050565b60006020820190508181036000830152612a34816126a7565b9050919050565b6000602082019050612a5060008301846126d9565b92915050565b6000604082019050612a6b60008301856126d9565b612a7860208301846126d9565b9392505050565b6000612a89612a9a565b9050612a958282612cdc565b919050565b6000604051905090565b600067ffffffffffffffff821115612abf57612abe612db4565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612aeb57612aea612db4565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612b1757612b16612db4565b5b612b2082612e05565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ba982612c5e565b9150612bb483612c5e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612be957612be8612d56565b5b828201905092915050565b6000612bff82612c3e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612c95578082015181840152602081019050612c7a565b83811115612ca4576000848401525b50505050565b60006002820490506001821680612cc257607f821691505b60208210811415612cd657612cd5612d85565b5b50919050565b612ce582612e05565b810181811067ffffffffffffffff82111715612d0457612d03612db4565b5b80604052505050565b6000612d1882612c5e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d4b57612d4a612d56565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d1115612e025760046000803e612dff600051612e16565b90505b90565b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d10156132ae57613331565b6132b6612a9a565b60043d036004823e80513d602482011167ffffffffffffffff821117156132de575050613331565b808201805167ffffffffffffffff8111156132fc5750505050613331565b80602083010160043d038501811115613319575050505050613331565b61332882602001850186612cdc565b82955050505050505b90565b61333d81612bf4565b811461334857600080fd5b50565b61335481612c06565b811461335f57600080fd5b50565b61336b81612c12565b811461337657600080fd5b50565b61338281612c5e565b811461338d57600080fd5b5056fea26469706673582212207c954b474ba2938a61031705a0987bcb898a0dffe9cb3f5a8744e3e16585386e64736f6c63430008040033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/src/XPNft.json b/src/XPNft.json deleted file mode 100644 index 2f4e02f1a..000000000 --- a/src/XPNft.json +++ /dev/null @@ -1,447 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "XPNft", - "sourceName": "contracts/XPNft.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "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" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "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" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "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" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "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" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "uri_", - "type": "string" - } - ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600981526020017f5870577261704e667400000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f58504e4654000000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620001a6565b508060019080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000256565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b600060028204905060018216806200026f57607f821691505b602082108114156200028657620002856200028c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6132d080620002cb6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a22cb46511610071578063a22cb465146102f2578063b88d4fde1461030e578063c87b56dd1461032a578063e985e9c51461035a578063f2fde38b1461038a57610121565b806370a0823114610260578063715018a614610290578063862440e21461029a5780638da5cb5b146102b657806395d89b41146102d457610121565b806323b872dd116100f457806323b872dd146101c057806340c10f19146101dc57806342842e0e146101f857806342966c68146102145780636352211e1461023057610121565b806301ffc9a71461012657806306fdde0314610156578063081812fc14610174578063095ea7b3146101a4575b600080fd5b610140600480360381019061013b9190612258565b6103a6565b60405161014d91906126fc565b60405180910390f35b61015e610488565b60405161016b9190612717565b60405180910390f35b61018e600480360381019061018991906122aa565b61051a565b60405161019b9190612695565b60405180910390f35b6101be60048036038101906101b9919061221c565b61059f565b005b6101da60048036038101906101d59190612116565b6106b7565b005b6101f660048036038101906101f1919061221c565b610717565b005b610212600480360381019061020d9190612116565b6107a1565b005b61022e600480360381019061022991906122aa565b6107c1565b005b61024a600480360381019061024591906122aa565b610849565b6040516102579190612695565b60405180910390f35b61027a600480360381019061027591906120b1565b6108fb565b6040516102879190612979565b60405180910390f35b6102986109b3565b005b6102b460048036038101906102af91906122d3565b610a3b565b005b6102be610b0a565b6040516102cb9190612695565b60405180910390f35b6102dc610b34565b6040516102e99190612717565b60405180910390f35b61030c600480360381019061030791906121e0565b610bc6565b005b61032860048036038101906103239190612165565b610d47565b005b610344600480360381019061033f91906122aa565b610da9565b6040516103519190612717565b60405180910390f35b610374600480360381019061036f91906120da565b610efb565b60405161038191906126fc565b60405180910390f35b6103a4600480360381019061039f91906120b1565b610f8f565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610481575061048082611087565b5b9050919050565b60606000805461049790612b9e565b80601f01602080910402602001604051908101604052809291908181526020018280546104c390612b9e565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b5050505050905090565b6000610525826110f1565b610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b906128b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105aa82610849565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061290612939565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661063a61115d565b73ffffffffffffffffffffffffffffffffffffffff16148061066957506106688161066361115d565b610efb565b5b6106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906127f9565b60405180910390fd5b6106b28383611165565b505050565b6106c86106c261115d565b8261121e565b610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe90612959565b60405180910390fd5b6107128383836112fc565b505050565b61071f61115d565b73ffffffffffffffffffffffffffffffffffffffff1661073d610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a906128d9565b60405180910390fd5b61079d8282611558565b5050565b6107bc83838360405180602001604052806000815250610d47565b505050565b6107c961115d565b73ffffffffffffffffffffffffffffffffffffffff166107e7610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906128d9565b60405180910390fd5b61084681611576565b50565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e990612839565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612819565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109bb61115d565b73ffffffffffffffffffffffffffffffffffffffff166109d9610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906128d9565b60405180910390fd5b610a3960006115c9565b565b610a4361115d565b73ffffffffffffffffffffffffffffffffffffffff16610a61610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906128d9565b60405180910390fd5b610b058383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061168f565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b4390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6f90612b9e565b8015610bbc5780601f10610b9157610100808354040283529160200191610bbc565b820191906000526020600020905b815481529060010190602001808311610b9f57829003601f168201915b5050505050905090565b610bce61115d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c33906127b9565b60405180910390fd5b8060056000610c4961115d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610cf661115d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d3b91906126fc565b60405180910390a35050565b610d58610d5261115d565b8361121e565b610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612959565b60405180910390fd5b610da384848484611703565b50505050565b6060610db4826110f1565b610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90612899565b60405180910390fd5b6000600660008481526020019081526020016000208054610e1390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90612b9e565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b505050505090506000610e9d61175f565b9050600081511415610eb3578192505050610ef6565b600082511115610ee8578082604051602001610ed0929190612671565b60405160208183030381529060405292505050610ef6565b610ef184611776565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f9761115d565b73ffffffffffffffffffffffffffffffffffffffff16610fb5610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906128d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612759565b60405180910390fd5b611084816115c9565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166111d883610849565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611229826110f1565b611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906127d9565b60405180910390fd5b600061127383610849565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806112e257508373ffffffffffffffffffffffffffffffffffffffff166112ca8461051a565b73ffffffffffffffffffffffffffffffffffffffff16145b806112f357506112f28185610efb565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661131c82610849565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611369906128f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990612799565b60405180910390fd5b6113ed83838361181d565b6113f8600082611165565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114489190612ab4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461149f9190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611572828260405180602001604052806000815250611822565b5050565b61157f8161187d565b600060066000838152602001908152602001600020805461159f90612b9e565b9050146115c6576006600082815260200190815260200160002060006115c59190611eb3565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611698826110f1565b6116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612859565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906116fe929190611ef3565b505050565b61170e8484846112fc565b61171a8484848461198e565b611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612739565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060611781826110f1565b6117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612919565b60405180910390fd5b60006117ca61175f565b905060008151116117ea5760405180602001604052806000815250611815565b806117f484611b25565b604051602001611805929190612671565b6040516020818303038152906040525b915050919050565b505050565b61182c8383611cd2565b611839600084848461198e565b611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90612739565b60405180910390fd5b505050565b600061188882610849565b90506118968160008461181d565b6118a1600083611165565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118f19190612ab4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006119af8473ffffffffffffffffffffffffffffffffffffffff16611ea0565b15611b18578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119d861115d565b8786866040518563ffffffff1660e01b81526004016119fa94939291906126b0565b602060405180830381600087803b158015611a1457600080fd5b505af1925050508015611a4557506040513d601f19601f82011682018060405250810190611a429190612281565b60015b611ac8573d8060008114611a75576040519150601f19603f3d011682016040523d82523d6000602084013e611a7a565b606091505b50600081511415611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790612739565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b1d565b600190505b949350505050565b60606000821415611b6d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ccd565b600082905060005b60008214611b9f578080611b8890612c01565b915050600a82611b989190612a83565b9150611b75565b60008167ffffffffffffffff811115611be1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c135781602001600182028036833780820191505090505b5090505b60008514611cc657600182611c2c9190612ab4565b9150600a85611c3b9190612c4a565b6030611c479190612a2d565b60f81b818381518110611c83577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611cbf9190612a83565b9450611c17565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990612879565b60405180910390fd5b611d4b816110f1565b15611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612779565b60405180910390fd5b611d976000838361181d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de79190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611ebf90612b9e565b6000825580601f10611ed15750611ef0565b601f016020900490600052602060002090810190611eef9190611f79565b5b50565b828054611eff90612b9e565b90600052602060002090601f016020900481019282611f215760008555611f68565b82601f10611f3a57805160ff1916838001178555611f68565b82800160010185558215611f68579182015b82811115611f67578251825591602001919060010190611f4c565b5b509050611f759190611f79565b5090565b5b80821115611f92576000816000905550600101611f7a565b5090565b6000611fa9611fa4846129b9565b612994565b905082815260208101848484011115611fc157600080fd5b611fcc848285612b5c565b509392505050565b600081359050611fe38161323e565b92915050565b600081359050611ff881613255565b92915050565b60008135905061200d8161326c565b92915050565b6000815190506120228161326c565b92915050565b600082601f83011261203957600080fd5b8135612049848260208601611f96565b91505092915050565b60008083601f84011261206457600080fd5b8235905067ffffffffffffffff81111561207d57600080fd5b60208301915083600182028301111561209557600080fd5b9250929050565b6000813590506120ab81613283565b92915050565b6000602082840312156120c357600080fd5b60006120d184828501611fd4565b91505092915050565b600080604083850312156120ed57600080fd5b60006120fb85828601611fd4565b925050602061210c85828601611fd4565b9150509250929050565b60008060006060848603121561212b57600080fd5b600061213986828701611fd4565b935050602061214a86828701611fd4565b925050604061215b8682870161209c565b9150509250925092565b6000806000806080858703121561217b57600080fd5b600061218987828801611fd4565b945050602061219a87828801611fd4565b93505060406121ab8782880161209c565b925050606085013567ffffffffffffffff8111156121c857600080fd5b6121d487828801612028565b91505092959194509250565b600080604083850312156121f357600080fd5b600061220185828601611fd4565b925050602061221285828601611fe9565b9150509250929050565b6000806040838503121561222f57600080fd5b600061223d85828601611fd4565b925050602061224e8582860161209c565b9150509250929050565b60006020828403121561226a57600080fd5b600061227884828501611ffe565b91505092915050565b60006020828403121561229357600080fd5b60006122a184828501612013565b91505092915050565b6000602082840312156122bc57600080fd5b60006122ca8482850161209c565b91505092915050565b6000806000604084860312156122e857600080fd5b60006122f68682870161209c565b935050602084013567ffffffffffffffff81111561231357600080fd5b61231f86828701612052565b92509250509250925092565b61233481612ae8565b82525050565b61234381612afa565b82525050565b6000612354826129ea565b61235e8185612a00565b935061236e818560208601612b6b565b61237781612d37565b840191505092915050565b600061238d826129f5565b6123978185612a11565b93506123a7818560208601612b6b565b6123b081612d37565b840191505092915050565b60006123c6826129f5565b6123d08185612a22565b93506123e0818560208601612b6b565b80840191505092915050565b60006123f9603283612a11565b915061240482612d48565b604082019050919050565b600061241c602683612a11565b915061242782612d97565b604082019050919050565b600061243f601c83612a11565b915061244a82612de6565b602082019050919050565b6000612462602483612a11565b915061246d82612e0f565b604082019050919050565b6000612485601983612a11565b915061249082612e5e565b602082019050919050565b60006124a8602c83612a11565b91506124b382612e87565b604082019050919050565b60006124cb603883612a11565b91506124d682612ed6565b604082019050919050565b60006124ee602a83612a11565b91506124f982612f25565b604082019050919050565b6000612511602983612a11565b915061251c82612f74565b604082019050919050565b6000612534602e83612a11565b915061253f82612fc3565b604082019050919050565b6000612557602083612a11565b915061256282613012565b602082019050919050565b600061257a603183612a11565b91506125858261303b565b604082019050919050565b600061259d602c83612a11565b91506125a88261308a565b604082019050919050565b60006125c0602083612a11565b91506125cb826130d9565b602082019050919050565b60006125e3602983612a11565b91506125ee82613102565b604082019050919050565b6000612606602f83612a11565b915061261182613151565b604082019050919050565b6000612629602183612a11565b9150612634826131a0565b604082019050919050565b600061264c603183612a11565b9150612657826131ef565b604082019050919050565b61266b81612b52565b82525050565b600061267d82856123bb565b915061268982846123bb565b91508190509392505050565b60006020820190506126aa600083018461232b565b92915050565b60006080820190506126c5600083018761232b565b6126d2602083018661232b565b6126df6040830185612662565b81810360608301526126f18184612349565b905095945050505050565b6000602082019050612711600083018461233a565b92915050565b600060208201905081810360008301526127318184612382565b905092915050565b60006020820190508181036000830152612752816123ec565b9050919050565b600060208201905081810360008301526127728161240f565b9050919050565b6000602082019050818103600083015261279281612432565b9050919050565b600060208201905081810360008301526127b281612455565b9050919050565b600060208201905081810360008301526127d281612478565b9050919050565b600060208201905081810360008301526127f28161249b565b9050919050565b60006020820190508181036000830152612812816124be565b9050919050565b60006020820190508181036000830152612832816124e1565b9050919050565b6000602082019050818103600083015261285281612504565b9050919050565b6000602082019050818103600083015261287281612527565b9050919050565b600060208201905081810360008301526128928161254a565b9050919050565b600060208201905081810360008301526128b28161256d565b9050919050565b600060208201905081810360008301526128d281612590565b9050919050565b600060208201905081810360008301526128f2816125b3565b9050919050565b60006020820190508181036000830152612912816125d6565b9050919050565b60006020820190508181036000830152612932816125f9565b9050919050565b600060208201905081810360008301526129528161261c565b9050919050565b600060208201905081810360008301526129728161263f565b9050919050565b600060208201905061298e6000830184612662565b92915050565b600061299e6129af565b90506129aa8282612bd0565b919050565b6000604051905090565b600067ffffffffffffffff8211156129d4576129d3612d08565b5b6129dd82612d37565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a3882612b52565b9150612a4383612b52565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a7857612a77612c7b565b5b828201905092915050565b6000612a8e82612b52565b9150612a9983612b52565b925082612aa957612aa8612caa565b5b828204905092915050565b6000612abf82612b52565b9150612aca83612b52565b925082821015612add57612adc612c7b565b5b828203905092915050565b6000612af382612b32565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612b89578082015181840152602081019050612b6e565b83811115612b98576000848401525b50505050565b60006002820490506001821680612bb657607f821691505b60208210811415612bca57612bc9612cd9565b5b50919050565b612bd982612d37565b810181811067ffffffffffffffff82111715612bf857612bf7612d08565b5b80604052505050565b6000612c0c82612b52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c3f57612c3e612c7b565b5b600182019050919050565b6000612c5582612b52565b9150612c6083612b52565b925082612c7057612c6f612caa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61324781612ae8565b811461325257600080fd5b50565b61325e81612afa565b811461326957600080fd5b50565b61327581612b06565b811461328057600080fd5b50565b61328c81612b52565b811461329757600080fd5b5056fea264697066735822122030e436dff1e17326ae12faa33e250905a1949311adb6680e630d91dcc7fee75a64736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a22cb46511610071578063a22cb465146102f2578063b88d4fde1461030e578063c87b56dd1461032a578063e985e9c51461035a578063f2fde38b1461038a57610121565b806370a0823114610260578063715018a614610290578063862440e21461029a5780638da5cb5b146102b657806395d89b41146102d457610121565b806323b872dd116100f457806323b872dd146101c057806340c10f19146101dc57806342842e0e146101f857806342966c68146102145780636352211e1461023057610121565b806301ffc9a71461012657806306fdde0314610156578063081812fc14610174578063095ea7b3146101a4575b600080fd5b610140600480360381019061013b9190612258565b6103a6565b60405161014d91906126fc565b60405180910390f35b61015e610488565b60405161016b9190612717565b60405180910390f35b61018e600480360381019061018991906122aa565b61051a565b60405161019b9190612695565b60405180910390f35b6101be60048036038101906101b9919061221c565b61059f565b005b6101da60048036038101906101d59190612116565b6106b7565b005b6101f660048036038101906101f1919061221c565b610717565b005b610212600480360381019061020d9190612116565b6107a1565b005b61022e600480360381019061022991906122aa565b6107c1565b005b61024a600480360381019061024591906122aa565b610849565b6040516102579190612695565b60405180910390f35b61027a600480360381019061027591906120b1565b6108fb565b6040516102879190612979565b60405180910390f35b6102986109b3565b005b6102b460048036038101906102af91906122d3565b610a3b565b005b6102be610b0a565b6040516102cb9190612695565b60405180910390f35b6102dc610b34565b6040516102e99190612717565b60405180910390f35b61030c600480360381019061030791906121e0565b610bc6565b005b61032860048036038101906103239190612165565b610d47565b005b610344600480360381019061033f91906122aa565b610da9565b6040516103519190612717565b60405180910390f35b610374600480360381019061036f91906120da565b610efb565b60405161038191906126fc565b60405180910390f35b6103a4600480360381019061039f91906120b1565b610f8f565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610481575061048082611087565b5b9050919050565b60606000805461049790612b9e565b80601f01602080910402602001604051908101604052809291908181526020018280546104c390612b9e565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b5050505050905090565b6000610525826110f1565b610564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055b906128b9565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105aa82610849565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061290612939565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661063a61115d565b73ffffffffffffffffffffffffffffffffffffffff16148061066957506106688161066361115d565b610efb565b5b6106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906127f9565b60405180910390fd5b6106b28383611165565b505050565b6106c86106c261115d565b8261121e565b610707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fe90612959565b60405180910390fd5b6107128383836112fc565b505050565b61071f61115d565b73ffffffffffffffffffffffffffffffffffffffff1661073d610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078a906128d9565b60405180910390fd5b61079d8282611558565b5050565b6107bc83838360405180602001604052806000815250610d47565b505050565b6107c961115d565b73ffffffffffffffffffffffffffffffffffffffff166107e7610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906128d9565b60405180910390fd5b61084681611576565b50565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e990612839565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561096c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096390612819565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109bb61115d565b73ffffffffffffffffffffffffffffffffffffffff166109d9610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906128d9565b60405180910390fd5b610a3960006115c9565b565b610a4361115d565b73ffffffffffffffffffffffffffffffffffffffff16610a61610b0a565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906128d9565b60405180910390fd5b610b058383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061168f565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b4390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6f90612b9e565b8015610bbc5780601f10610b9157610100808354040283529160200191610bbc565b820191906000526020600020905b815481529060010190602001808311610b9f57829003601f168201915b5050505050905090565b610bce61115d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c33906127b9565b60405180910390fd5b8060056000610c4961115d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610cf661115d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610d3b91906126fc565b60405180910390a35050565b610d58610d5261115d565b8361121e565b610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612959565b60405180910390fd5b610da384848484611703565b50505050565b6060610db4826110f1565b610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea90612899565b60405180910390fd5b6000600660008481526020019081526020016000208054610e1390612b9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3f90612b9e565b8015610e8c5780601f10610e6157610100808354040283529160200191610e8c565b820191906000526020600020905b815481529060010190602001808311610e6f57829003601f168201915b505050505090506000610e9d61175f565b9050600081511415610eb3578192505050610ef6565b600082511115610ee8578082604051602001610ed0929190612671565b60405160208183030381529060405292505050610ef6565b610ef184611776565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f9761115d565b73ffffffffffffffffffffffffffffffffffffffff16610fb5610b0a565b73ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611002906128d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612759565b60405180910390fd5b611084816115c9565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166111d883610849565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611229826110f1565b611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f906127d9565b60405180910390fd5b600061127383610849565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806112e257508373ffffffffffffffffffffffffffffffffffffffff166112ca8461051a565b73ffffffffffffffffffffffffffffffffffffffff16145b806112f357506112f28185610efb565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661131c82610849565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611369906128f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990612799565b60405180910390fd5b6113ed83838361181d565b6113f8600082611165565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114489190612ab4565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461149f9190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611572828260405180602001604052806000815250611822565b5050565b61157f8161187d565b600060066000838152602001908152602001600020805461159f90612b9e565b9050146115c6576006600082815260200190815260200160002060006115c59190611eb3565b5b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611698826110f1565b6116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612859565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906116fe929190611ef3565b505050565b61170e8484846112fc565b61171a8484848461198e565b611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612739565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060611781826110f1565b6117c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b790612919565b60405180910390fd5b60006117ca61175f565b905060008151116117ea5760405180602001604052806000815250611815565b806117f484611b25565b604051602001611805929190612671565b6040516020818303038152906040525b915050919050565b505050565b61182c8383611cd2565b611839600084848461198e565b611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90612739565b60405180910390fd5b505050565b600061188882610849565b90506118968160008461181d565b6118a1600083611165565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118f19190612ab4565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006119af8473ffffffffffffffffffffffffffffffffffffffff16611ea0565b15611b18578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119d861115d565b8786866040518563ffffffff1660e01b81526004016119fa94939291906126b0565b602060405180830381600087803b158015611a1457600080fd5b505af1925050508015611a4557506040513d601f19601f82011682018060405250810190611a429190612281565b60015b611ac8573d8060008114611a75576040519150601f19603f3d011682016040523d82523d6000602084013e611a7a565b606091505b50600081511415611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790612739565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b1d565b600190505b949350505050565b60606000821415611b6d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ccd565b600082905060005b60008214611b9f578080611b8890612c01565b915050600a82611b989190612a83565b9150611b75565b60008167ffffffffffffffff811115611be1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611c135781602001600182028036833780820191505090505b5090505b60008514611cc657600182611c2c9190612ab4565b9150600a85611c3b9190612c4a565b6030611c479190612a2d565b60f81b818381518110611c83577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611cbf9190612a83565b9450611c17565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990612879565b60405180910390fd5b611d4b816110f1565b15611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290612779565b60405180910390fd5b611d976000838361181d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de79190612a2d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b508054611ebf90612b9e565b6000825580601f10611ed15750611ef0565b601f016020900490600052602060002090810190611eef9190611f79565b5b50565b828054611eff90612b9e565b90600052602060002090601f016020900481019282611f215760008555611f68565b82601f10611f3a57805160ff1916838001178555611f68565b82800160010185558215611f68579182015b82811115611f67578251825591602001919060010190611f4c565b5b509050611f759190611f79565b5090565b5b80821115611f92576000816000905550600101611f7a565b5090565b6000611fa9611fa4846129b9565b612994565b905082815260208101848484011115611fc157600080fd5b611fcc848285612b5c565b509392505050565b600081359050611fe38161323e565b92915050565b600081359050611ff881613255565b92915050565b60008135905061200d8161326c565b92915050565b6000815190506120228161326c565b92915050565b600082601f83011261203957600080fd5b8135612049848260208601611f96565b91505092915050565b60008083601f84011261206457600080fd5b8235905067ffffffffffffffff81111561207d57600080fd5b60208301915083600182028301111561209557600080fd5b9250929050565b6000813590506120ab81613283565b92915050565b6000602082840312156120c357600080fd5b60006120d184828501611fd4565b91505092915050565b600080604083850312156120ed57600080fd5b60006120fb85828601611fd4565b925050602061210c85828601611fd4565b9150509250929050565b60008060006060848603121561212b57600080fd5b600061213986828701611fd4565b935050602061214a86828701611fd4565b925050604061215b8682870161209c565b9150509250925092565b6000806000806080858703121561217b57600080fd5b600061218987828801611fd4565b945050602061219a87828801611fd4565b93505060406121ab8782880161209c565b925050606085013567ffffffffffffffff8111156121c857600080fd5b6121d487828801612028565b91505092959194509250565b600080604083850312156121f357600080fd5b600061220185828601611fd4565b925050602061221285828601611fe9565b9150509250929050565b6000806040838503121561222f57600080fd5b600061223d85828601611fd4565b925050602061224e8582860161209c565b9150509250929050565b60006020828403121561226a57600080fd5b600061227884828501611ffe565b91505092915050565b60006020828403121561229357600080fd5b60006122a184828501612013565b91505092915050565b6000602082840312156122bc57600080fd5b60006122ca8482850161209c565b91505092915050565b6000806000604084860312156122e857600080fd5b60006122f68682870161209c565b935050602084013567ffffffffffffffff81111561231357600080fd5b61231f86828701612052565b92509250509250925092565b61233481612ae8565b82525050565b61234381612afa565b82525050565b6000612354826129ea565b61235e8185612a00565b935061236e818560208601612b6b565b61237781612d37565b840191505092915050565b600061238d826129f5565b6123978185612a11565b93506123a7818560208601612b6b565b6123b081612d37565b840191505092915050565b60006123c6826129f5565b6123d08185612a22565b93506123e0818560208601612b6b565b80840191505092915050565b60006123f9603283612a11565b915061240482612d48565b604082019050919050565b600061241c602683612a11565b915061242782612d97565b604082019050919050565b600061243f601c83612a11565b915061244a82612de6565b602082019050919050565b6000612462602483612a11565b915061246d82612e0f565b604082019050919050565b6000612485601983612a11565b915061249082612e5e565b602082019050919050565b60006124a8602c83612a11565b91506124b382612e87565b604082019050919050565b60006124cb603883612a11565b91506124d682612ed6565b604082019050919050565b60006124ee602a83612a11565b91506124f982612f25565b604082019050919050565b6000612511602983612a11565b915061251c82612f74565b604082019050919050565b6000612534602e83612a11565b915061253f82612fc3565b604082019050919050565b6000612557602083612a11565b915061256282613012565b602082019050919050565b600061257a603183612a11565b91506125858261303b565b604082019050919050565b600061259d602c83612a11565b91506125a88261308a565b604082019050919050565b60006125c0602083612a11565b91506125cb826130d9565b602082019050919050565b60006125e3602983612a11565b91506125ee82613102565b604082019050919050565b6000612606602f83612a11565b915061261182613151565b604082019050919050565b6000612629602183612a11565b9150612634826131a0565b604082019050919050565b600061264c603183612a11565b9150612657826131ef565b604082019050919050565b61266b81612b52565b82525050565b600061267d82856123bb565b915061268982846123bb565b91508190509392505050565b60006020820190506126aa600083018461232b565b92915050565b60006080820190506126c5600083018761232b565b6126d2602083018661232b565b6126df6040830185612662565b81810360608301526126f18184612349565b905095945050505050565b6000602082019050612711600083018461233a565b92915050565b600060208201905081810360008301526127318184612382565b905092915050565b60006020820190508181036000830152612752816123ec565b9050919050565b600060208201905081810360008301526127728161240f565b9050919050565b6000602082019050818103600083015261279281612432565b9050919050565b600060208201905081810360008301526127b281612455565b9050919050565b600060208201905081810360008301526127d281612478565b9050919050565b600060208201905081810360008301526127f28161249b565b9050919050565b60006020820190508181036000830152612812816124be565b9050919050565b60006020820190508181036000830152612832816124e1565b9050919050565b6000602082019050818103600083015261285281612504565b9050919050565b6000602082019050818103600083015261287281612527565b9050919050565b600060208201905081810360008301526128928161254a565b9050919050565b600060208201905081810360008301526128b28161256d565b9050919050565b600060208201905081810360008301526128d281612590565b9050919050565b600060208201905081810360008301526128f2816125b3565b9050919050565b60006020820190508181036000830152612912816125d6565b9050919050565b60006020820190508181036000830152612932816125f9565b9050919050565b600060208201905081810360008301526129528161261c565b9050919050565b600060208201905081810360008301526129728161263f565b9050919050565b600060208201905061298e6000830184612662565b92915050565b600061299e6129af565b90506129aa8282612bd0565b919050565b6000604051905090565b600067ffffffffffffffff8211156129d4576129d3612d08565b5b6129dd82612d37565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a3882612b52565b9150612a4383612b52565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a7857612a77612c7b565b5b828201905092915050565b6000612a8e82612b52565b9150612a9983612b52565b925082612aa957612aa8612caa565b5b828204905092915050565b6000612abf82612b52565b9150612aca83612b52565b925082821015612add57612adc612c7b565b5b828203905092915050565b6000612af382612b32565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612b89578082015181840152602081019050612b6e565b83811115612b98576000848401525b50505050565b60006002820490506001821680612bb657607f821691505b60208210811415612bca57612bc9612cd9565b5b50919050565b612bd982612d37565b810181811067ffffffffffffffff82111715612bf857612bf7612d08565b5b80604052505050565b6000612c0c82612b52565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c3f57612c3e612c7b565b5b600182019050919050565b6000612c5582612b52565b9150612c6083612b52565b925082612c7057612c6f612caa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61324781612ae8565b811461325257600080fd5b50565b61325e81612afa565b811461326957600080fd5b50565b61327581612b06565b811461328057600080fd5b50565b61328c81612b52565b811461329757600080fd5b5056fea264697066735822122030e436dff1e17326ae12faa33e250905a1949311adb6680e630d91dcc7fee75a64736f6c63430008040033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/src/fakeERC1155.json b/src/fakeERC1155.json deleted file mode 100644 index 50e1189f7..000000000 --- a/src/fakeERC1155.json +++ /dev/null @@ -1,437 +0,0 @@ -{ - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "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": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "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": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "uri_", - "type": "string" - } - ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/src/fakeERC721.json b/src/fakeERC721.json deleted file mode 100644 index 5aacc5dc3..000000000 --- a/src/fakeERC721.json +++ /dev/null @@ -1,385 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "UserNftMinter", - "sourceName": "contracts/UserNftMinter.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "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" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "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" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "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" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "uri", - "type": "string" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "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" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "tokenId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405260006007553480156200001657600080fd5b506040518060400160405280600d81526020017f557365724e66744d696e746572000000000000000000000000000000000000008152506040518060400160405280600381526020017f554d54000000000000000000000000000000000000000000000000000000000081525081600090805190602001906200009b929190620000bd565b508060019080519060200190620000b4929190620000bd565b505050620001d2565b828054620000cb906200016d565b90600052602060002090601f016020900481019282620000ef57600085556200013b565b82601f106200010a57805160ff19168380011785556200013b565b828001600101855582156200013b579182015b828111156200013a5782518255916020019190600101906200011d565b5b5090506200014a91906200014e565b5090565b5b80821115620001695760008160009055506001016200014f565b5090565b600060028204905060018216806200018657607f821691505b602082108114156200019d576200019c620001a3565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612ea580620001e26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde146102ab578063c87b56dd146102c7578063d85d3d27146102f7578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806395d89b4114610271578063a22cb4651461028f57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611eac565b610343565b60405161012c919061231a565b60405180910390f35b61013d610425565b60405161014a9190612335565b60405180910390f35b61016d60048036038101906101689190611f43565b6104b7565b60405161017a91906122b3565b60405180910390f35b61019d60048036038101906101989190611e70565b61053c565b005b6101a7610654565b6040516101b49190612577565b60405180910390f35b6101d760048036038101906101d29190611d6a565b61065a565b005b6101f360048036038101906101ee9190611d6a565b6106ba565b005b61020f600480360381019061020a9190611f43565b6106da565b005b61022b60048036038101906102269190611f43565b610762565b60405161023891906122b3565b60405180910390f35b61025b60048036038101906102569190611d05565b610814565b6040516102689190612577565b60405180910390f35b6102796108cc565b6040516102869190612335565b60405180910390f35b6102a960048036038101906102a49190611e34565b61095e565b005b6102c560048036038101906102c09190611db9565b610adf565b005b6102e160048036038101906102dc9190611f43565b610b41565b6040516102ee9190612335565b60405180910390f35b610311600480360381019061030c9190611efe565b610c93565b005b61032d60048036038101906103289190611d2e565b610d0d565b60405161033a919061231a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610da1565b5b9050919050565b6060600080546104349061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546104609061279c565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e0b565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124b7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612517565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e77565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e77565b610d0d565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c906123f7565b60405180910390fd5b61064f8383610e7f565b505050565b60075481565b61066b610665610e77565b82610f38565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612537565b60405180910390fd5b6106b5838383611016565b505050565b6106d583838360405180602001604052806000815250610adf565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612557565b60405180910390fd5b61075e82611272565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612437565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612417565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546108db9061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546109079061279c565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050905090565b610966610e77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906123b7565b60405180910390fd5b80600560006109e1610e77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061231a565b60405180910390a35050565b610af0610aea610e77565b83610f38565b610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612537565b60405180910390fd5b610b3b848484846112c5565b50505050565b6060610b4c82610e0b565b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612497565b60405180910390fd5b6000600660008481526020019081526020016000208054610bab9061279c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd79061279c565b8015610c245780601f10610bf957610100808354040283529160200191610c24565b820191906000526020600020905b815481529060010190602001808311610c0757829003601f168201915b505050505090506000610c35611321565b9050600081511415610c4b578192505050610c8e565b600082511115610c80578082604051602001610c6892919061228f565b60405160208183030381529060405292505050610c8e565b610c8984611338565b925050505b919050565b610c9f336007546113df565b610cef60075483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506113fd565b600160076000828254610d02919061262b565b925050819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610ef283610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4382610e0b565b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906123d7565b60405180910390fd5b6000610f8d83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ffc57508373ffffffffffffffffffffffffffffffffffffffff16610fe4846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100d575061100c8185610d0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103682610762565b73ffffffffffffffffffffffffffffffffffffffff161461108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612397565b60405180910390fd5b611107838383611471565b611112600082610e7f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461116291906126b2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b9919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127b81611476565b600060066000838152602001908152602001600020805461129b9061279c565b9050146112c2576006600082815260200190815260200160002060006112c19190611b07565b5b50565b6112d0848484611016565b6112dc84848484611587565b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612357565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061134382610e0b565b611382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611379906124f7565b60405180910390fd5b600061138c611321565b905060008151116113ac57604051806020016040528060008152506113d7565b806113b68461171e565b6040516020016113c792919061228f565b6040516020818303038152906040525b915050919050565b6113f98282604051806020016040528060008152506118cb565b5050565b61140682610e0b565b611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612457565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061146c929190611b47565b505050565b505050565b600061148182610762565b905061148f81600084611471565b61149a600083610e7f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114ea91906126b2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006115a88473ffffffffffffffffffffffffffffffffffffffff16611926565b15611711578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026115d1610e77565b8786866040518563ffffffff1660e01b81526004016115f394939291906122ce565b602060405180830381600087803b15801561160d57600080fd5b505af192505050801561163e57506040513d601f19601f8201168201806040525081019061163b9190611ed5565b60015b6116c1573d806000811461166e576040519150601f19603f3d011682016040523d82523d6000602084013e611673565b606091505b506000815114156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612357565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611716565b600190505b949350505050565b60606000821415611766576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506118c6565b600082905060005b60008214611798578080611781906127ff565b915050600a826117919190612681565b915061176e565b60008167ffffffffffffffff8111156117da577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561180c5781602001600182028036833780820191505090505b5090505b600085146118bf5760018261182591906126b2565b9150600a856118349190612848565b6030611840919061262b565b60f81b81838151811061187c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856118b89190612681565b9450611810565b8093505050505b919050565b6118d58383611939565b6118e26000848484611587565b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612357565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612477565b60405180910390fd5b6119b281610e0b565b156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990612377565b60405180910390fd5b6119fe60008383611471565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a4e919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b508054611b139061279c565b6000825580601f10611b255750611b44565b601f016020900490600052602060002090810190611b439190611bcd565b5b50565b828054611b539061279c565b90600052602060002090601f016020900481019282611b755760008555611bbc565b82601f10611b8e57805160ff1916838001178555611bbc565b82800160010185558215611bbc579182015b82811115611bbb578251825591602001919060010190611ba0565b5b509050611bc99190611bcd565b5090565b5b80821115611be6576000816000905550600101611bce565b5090565b6000611bfd611bf8846125b7565b612592565b905082815260208101848484011115611c1557600080fd5b611c2084828561275a565b509392505050565b600081359050611c3781612e13565b92915050565b600081359050611c4c81612e2a565b92915050565b600081359050611c6181612e41565b92915050565b600081519050611c7681612e41565b92915050565b600082601f830112611c8d57600080fd5b8135611c9d848260208601611bea565b91505092915050565b60008083601f840112611cb857600080fd5b8235905067ffffffffffffffff811115611cd157600080fd5b602083019150836001820283011115611ce957600080fd5b9250929050565b600081359050611cff81612e58565b92915050565b600060208284031215611d1757600080fd5b6000611d2584828501611c28565b91505092915050565b60008060408385031215611d4157600080fd5b6000611d4f85828601611c28565b9250506020611d6085828601611c28565b9150509250929050565b600080600060608486031215611d7f57600080fd5b6000611d8d86828701611c28565b9350506020611d9e86828701611c28565b9250506040611daf86828701611cf0565b9150509250925092565b60008060008060808587031215611dcf57600080fd5b6000611ddd87828801611c28565b9450506020611dee87828801611c28565b9350506040611dff87828801611cf0565b925050606085013567ffffffffffffffff811115611e1c57600080fd5b611e2887828801611c7c565b91505092959194509250565b60008060408385031215611e4757600080fd5b6000611e5585828601611c28565b9250506020611e6685828601611c3d565b9150509250929050565b60008060408385031215611e8357600080fd5b6000611e9185828601611c28565b9250506020611ea285828601611cf0565b9150509250929050565b600060208284031215611ebe57600080fd5b6000611ecc84828501611c52565b91505092915050565b600060208284031215611ee757600080fd5b6000611ef584828501611c67565b91505092915050565b60008060208385031215611f1157600080fd5b600083013567ffffffffffffffff811115611f2b57600080fd5b611f3785828601611ca6565b92509250509250929050565b600060208284031215611f5557600080fd5b6000611f6384828501611cf0565b91505092915050565b611f75816126e6565b82525050565b611f84816126f8565b82525050565b6000611f95826125e8565b611f9f81856125fe565b9350611faf818560208601612769565b611fb881612935565b840191505092915050565b6000611fce826125f3565b611fd8818561260f565b9350611fe8818560208601612769565b611ff181612935565b840191505092915050565b6000612007826125f3565b6120118185612620565b9350612021818560208601612769565b80840191505092915050565b600061203a60328361260f565b915061204582612946565b604082019050919050565b600061205d601c8361260f565b915061206882612995565b602082019050919050565b600061208060248361260f565b915061208b826129be565b604082019050919050565b60006120a360198361260f565b91506120ae82612a0d565b602082019050919050565b60006120c6602c8361260f565b91506120d182612a36565b604082019050919050565b60006120e960388361260f565b91506120f482612a85565b604082019050919050565b600061210c602a8361260f565b915061211782612ad4565b604082019050919050565b600061212f60298361260f565b915061213a82612b23565b604082019050919050565b6000612152602e8361260f565b915061215d82612b72565b604082019050919050565b600061217560208361260f565b915061218082612bc1565b602082019050919050565b600061219860318361260f565b91506121a382612bea565b604082019050919050565b60006121bb602c8361260f565b91506121c682612c39565b604082019050919050565b60006121de60298361260f565b91506121e982612c88565b604082019050919050565b6000612201602f8361260f565b915061220c82612cd7565b604082019050919050565b600061222460218361260f565b915061222f82612d26565b604082019050919050565b600061224760318361260f565b915061225282612d75565b604082019050919050565b600061226a60238361260f565b915061227582612dc4565b604082019050919050565b61228981612750565b82525050565b600061229b8285611ffc565b91506122a78284611ffc565b91508190509392505050565b60006020820190506122c86000830184611f6c565b92915050565b60006080820190506122e36000830187611f6c565b6122f06020830186611f6c565b6122fd6040830185612280565b818103606083015261230f8184611f8a565b905095945050505050565b600060208201905061232f6000830184611f7b565b92915050565b6000602082019050818103600083015261234f8184611fc3565b905092915050565b600060208201905081810360008301526123708161202d565b9050919050565b6000602082019050818103600083015261239081612050565b9050919050565b600060208201905081810360008301526123b081612073565b9050919050565b600060208201905081810360008301526123d081612096565b9050919050565b600060208201905081810360008301526123f0816120b9565b9050919050565b60006020820190508181036000830152612410816120dc565b9050919050565b60006020820190508181036000830152612430816120ff565b9050919050565b6000602082019050818103600083015261245081612122565b9050919050565b6000602082019050818103600083015261247081612145565b9050919050565b6000602082019050818103600083015261249081612168565b9050919050565b600060208201905081810360008301526124b08161218b565b9050919050565b600060208201905081810360008301526124d0816121ae565b9050919050565b600060208201905081810360008301526124f0816121d1565b9050919050565b60006020820190508181036000830152612510816121f4565b9050919050565b6000602082019050818103600083015261253081612217565b9050919050565b600060208201905081810360008301526125508161223a565b9050919050565b600060208201905081810360008301526125708161225d565b9050919050565b600060208201905061258c6000830184612280565b92915050565b600061259c6125ad565b90506125a882826127ce565b919050565b6000604051905090565b600067ffffffffffffffff8211156125d2576125d1612906565b5b6125db82612935565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061263682612750565b915061264183612750565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561267657612675612879565b5b828201905092915050565b600061268c82612750565b915061269783612750565b9250826126a7576126a66128a8565b5b828204905092915050565b60006126bd82612750565b91506126c883612750565b9250828210156126db576126da612879565b5b828203905092915050565b60006126f182612730565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561278757808201518184015260208101905061276c565b83811115612796576000848401525b50505050565b600060028204905060018216806127b457607f821691505b602082108114156127c8576127c76128d7565b5b50919050565b6127d782612935565b810181811067ffffffffffffffff821117156127f6576127f5612906565b5b80604052505050565b600061280a82612750565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283d5761283c612879565b5b600182019050919050565b600061285382612750565b915061285e83612750565b92508261286e5761286d6128a8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e1c816126e6565b8114612e2757600080fd5b50565b612e33816126f8565b8114612e3e57600080fd5b50565b612e4a81612704565b8114612e5557600080fd5b50565b612e6181612750565b8114612e6c57600080fd5b5056fea2646970667358221220450c170b147f23ef2e7d9ba5dd576873827cdc58eb81e48dc3e22d0d7ebc1f2664736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde146102ab578063c87b56dd146102c7578063d85d3d27146102f7578063e985e9c51461031357610100565b80636352211e1461021157806370a082311461024157806395d89b4114610271578063a22cb4651461028f57610100565b806317d70f7c116100d357806317d70f7c1461019f57806323b872dd146101bd57806342842e0e146101d957806342966c68146101f557610100565b806301ffc9a71461010557806306fdde0314610135578063081812fc14610153578063095ea7b314610183575b600080fd5b61011f600480360381019061011a9190611eac565b610343565b60405161012c919061231a565b60405180910390f35b61013d610425565b60405161014a9190612335565b60405180910390f35b61016d60048036038101906101689190611f43565b6104b7565b60405161017a91906122b3565b60405180910390f35b61019d60048036038101906101989190611e70565b61053c565b005b6101a7610654565b6040516101b49190612577565b60405180910390f35b6101d760048036038101906101d29190611d6a565b61065a565b005b6101f360048036038101906101ee9190611d6a565b6106ba565b005b61020f600480360381019061020a9190611f43565b6106da565b005b61022b60048036038101906102269190611f43565b610762565b60405161023891906122b3565b60405180910390f35b61025b60048036038101906102569190611d05565b610814565b6040516102689190612577565b60405180910390f35b6102796108cc565b6040516102869190612335565b60405180910390f35b6102a960048036038101906102a49190611e34565b61095e565b005b6102c560048036038101906102c09190611db9565b610adf565b005b6102e160048036038101906102dc9190611f43565b610b41565b6040516102ee9190612335565b60405180910390f35b610311600480360381019061030c9190611efe565b610c93565b005b61032d60048036038101906103289190611d2e565b610d0d565b60405161033a919061231a565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061040e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061041e575061041d82610da1565b5b9050919050565b6060600080546104349061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546104609061279c565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104c282610e0b565b610501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f8906124b7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061054782610762565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af90612517565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105d7610e77565b73ffffffffffffffffffffffffffffffffffffffff161480610606575061060581610600610e77565b610d0d565b5b610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c906123f7565b60405180910390fd5b61064f8383610e7f565b505050565b60075481565b61066b610665610e77565b82610f38565b6106aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a190612537565b60405180910390fd5b6106b5838383611016565b505050565b6106d583838360405180602001604052806000815250610adf565b505050565b60006106e582610762565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612557565b60405180910390fd5b61075e82611272565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290612437565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612417565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546108db9061279c565b80601f01602080910402602001604051908101604052809291908181526020018280546109079061279c565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050905090565b610966610e77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906123b7565b60405180910390fd5b80600560006109e1610e77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610a8e610e77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610ad3919061231a565b60405180910390a35050565b610af0610aea610e77565b83610f38565b610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612537565b60405180910390fd5b610b3b848484846112c5565b50505050565b6060610b4c82610e0b565b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290612497565b60405180910390fd5b6000600660008481526020019081526020016000208054610bab9061279c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd79061279c565b8015610c245780601f10610bf957610100808354040283529160200191610c24565b820191906000526020600020905b815481529060010190602001808311610c0757829003601f168201915b505050505090506000610c35611321565b9050600081511415610c4b578192505050610c8e565b600082511115610c80578082604051602001610c6892919061228f565b60405160208183030381529060405292505050610c8e565b610c8984611338565b925050505b919050565b610c9f336007546113df565b610cef60075483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506113fd565b600160076000828254610d02919061262b565b925050819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610ef283610762565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610f4382610e0b565b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f79906123d7565b60405180910390fd5b6000610f8d83610762565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ffc57508373ffffffffffffffffffffffffffffffffffffffff16610fe4846104b7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061100d575061100c8185610d0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661103682610762565b73ffffffffffffffffffffffffffffffffffffffff161461108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612397565b60405180910390fd5b611107838383611471565b611112600082610e7f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461116291906126b2565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111b9919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61127b81611476565b600060066000838152602001908152602001600020805461129b9061279c565b9050146112c2576006600082815260200190815260200160002060006112c19190611b07565b5b50565b6112d0848484611016565b6112dc84848484611587565b61131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612357565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061134382610e0b565b611382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611379906124f7565b60405180910390fd5b600061138c611321565b905060008151116113ac57604051806020016040528060008152506113d7565b806113b68461171e565b6040516020016113c792919061228f565b6040516020818303038152906040525b915050919050565b6113f98282604051806020016040528060008152506118cb565b5050565b61140682610e0b565b611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612457565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061146c929190611b47565b505050565b505050565b600061148182610762565b905061148f81600084611471565b61149a600083610e7f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114ea91906126b2565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006115a88473ffffffffffffffffffffffffffffffffffffffff16611926565b15611711578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026115d1610e77565b8786866040518563ffffffff1660e01b81526004016115f394939291906122ce565b602060405180830381600087803b15801561160d57600080fd5b505af192505050801561163e57506040513d601f19601f8201168201806040525081019061163b9190611ed5565b60015b6116c1573d806000811461166e576040519150601f19603f3d011682016040523d82523d6000602084013e611673565b606091505b506000815114156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612357565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611716565b600190505b949350505050565b60606000821415611766576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506118c6565b600082905060005b60008214611798578080611781906127ff565b915050600a826117919190612681565b915061176e565b60008167ffffffffffffffff8111156117da577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561180c5781602001600182028036833780820191505090505b5090505b600085146118bf5760018261182591906126b2565b9150600a856118349190612848565b6030611840919061262b565b60f81b81838151811061187c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856118b89190612681565b9450611810565b8093505050505b919050565b6118d58383611939565b6118e26000848484611587565b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612357565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090612477565b60405180910390fd5b6119b281610e0b565b156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990612377565b60405180910390fd5b6119fe60008383611471565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a4e919061262b565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b508054611b139061279c565b6000825580601f10611b255750611b44565b601f016020900490600052602060002090810190611b439190611bcd565b5b50565b828054611b539061279c565b90600052602060002090601f016020900481019282611b755760008555611bbc565b82601f10611b8e57805160ff1916838001178555611bbc565b82800160010185558215611bbc579182015b82811115611bbb578251825591602001919060010190611ba0565b5b509050611bc99190611bcd565b5090565b5b80821115611be6576000816000905550600101611bce565b5090565b6000611bfd611bf8846125b7565b612592565b905082815260208101848484011115611c1557600080fd5b611c2084828561275a565b509392505050565b600081359050611c3781612e13565b92915050565b600081359050611c4c81612e2a565b92915050565b600081359050611c6181612e41565b92915050565b600081519050611c7681612e41565b92915050565b600082601f830112611c8d57600080fd5b8135611c9d848260208601611bea565b91505092915050565b60008083601f840112611cb857600080fd5b8235905067ffffffffffffffff811115611cd157600080fd5b602083019150836001820283011115611ce957600080fd5b9250929050565b600081359050611cff81612e58565b92915050565b600060208284031215611d1757600080fd5b6000611d2584828501611c28565b91505092915050565b60008060408385031215611d4157600080fd5b6000611d4f85828601611c28565b9250506020611d6085828601611c28565b9150509250929050565b600080600060608486031215611d7f57600080fd5b6000611d8d86828701611c28565b9350506020611d9e86828701611c28565b9250506040611daf86828701611cf0565b9150509250925092565b60008060008060808587031215611dcf57600080fd5b6000611ddd87828801611c28565b9450506020611dee87828801611c28565b9350506040611dff87828801611cf0565b925050606085013567ffffffffffffffff811115611e1c57600080fd5b611e2887828801611c7c565b91505092959194509250565b60008060408385031215611e4757600080fd5b6000611e5585828601611c28565b9250506020611e6685828601611c3d565b9150509250929050565b60008060408385031215611e8357600080fd5b6000611e9185828601611c28565b9250506020611ea285828601611cf0565b9150509250929050565b600060208284031215611ebe57600080fd5b6000611ecc84828501611c52565b91505092915050565b600060208284031215611ee757600080fd5b6000611ef584828501611c67565b91505092915050565b60008060208385031215611f1157600080fd5b600083013567ffffffffffffffff811115611f2b57600080fd5b611f3785828601611ca6565b92509250509250929050565b600060208284031215611f5557600080fd5b6000611f6384828501611cf0565b91505092915050565b611f75816126e6565b82525050565b611f84816126f8565b82525050565b6000611f95826125e8565b611f9f81856125fe565b9350611faf818560208601612769565b611fb881612935565b840191505092915050565b6000611fce826125f3565b611fd8818561260f565b9350611fe8818560208601612769565b611ff181612935565b840191505092915050565b6000612007826125f3565b6120118185612620565b9350612021818560208601612769565b80840191505092915050565b600061203a60328361260f565b915061204582612946565b604082019050919050565b600061205d601c8361260f565b915061206882612995565b602082019050919050565b600061208060248361260f565b915061208b826129be565b604082019050919050565b60006120a360198361260f565b91506120ae82612a0d565b602082019050919050565b60006120c6602c8361260f565b91506120d182612a36565b604082019050919050565b60006120e960388361260f565b91506120f482612a85565b604082019050919050565b600061210c602a8361260f565b915061211782612ad4565b604082019050919050565b600061212f60298361260f565b915061213a82612b23565b604082019050919050565b6000612152602e8361260f565b915061215d82612b72565b604082019050919050565b600061217560208361260f565b915061218082612bc1565b602082019050919050565b600061219860318361260f565b91506121a382612bea565b604082019050919050565b60006121bb602c8361260f565b91506121c682612c39565b604082019050919050565b60006121de60298361260f565b91506121e982612c88565b604082019050919050565b6000612201602f8361260f565b915061220c82612cd7565b604082019050919050565b600061222460218361260f565b915061222f82612d26565b604082019050919050565b600061224760318361260f565b915061225282612d75565b604082019050919050565b600061226a60238361260f565b915061227582612dc4565b604082019050919050565b61228981612750565b82525050565b600061229b8285611ffc565b91506122a78284611ffc565b91508190509392505050565b60006020820190506122c86000830184611f6c565b92915050565b60006080820190506122e36000830187611f6c565b6122f06020830186611f6c565b6122fd6040830185612280565b818103606083015261230f8184611f8a565b905095945050505050565b600060208201905061232f6000830184611f7b565b92915050565b6000602082019050818103600083015261234f8184611fc3565b905092915050565b600060208201905081810360008301526123708161202d565b9050919050565b6000602082019050818103600083015261239081612050565b9050919050565b600060208201905081810360008301526123b081612073565b9050919050565b600060208201905081810360008301526123d081612096565b9050919050565b600060208201905081810360008301526123f0816120b9565b9050919050565b60006020820190508181036000830152612410816120dc565b9050919050565b60006020820190508181036000830152612430816120ff565b9050919050565b6000602082019050818103600083015261245081612122565b9050919050565b6000602082019050818103600083015261247081612145565b9050919050565b6000602082019050818103600083015261249081612168565b9050919050565b600060208201905081810360008301526124b08161218b565b9050919050565b600060208201905081810360008301526124d0816121ae565b9050919050565b600060208201905081810360008301526124f0816121d1565b9050919050565b60006020820190508181036000830152612510816121f4565b9050919050565b6000602082019050818103600083015261253081612217565b9050919050565b600060208201905081810360008301526125508161223a565b9050919050565b600060208201905081810360008301526125708161225d565b9050919050565b600060208201905061258c6000830184612280565b92915050565b600061259c6125ad565b90506125a882826127ce565b919050565b6000604051905090565b600067ffffffffffffffff8211156125d2576125d1612906565b5b6125db82612935565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061263682612750565b915061264183612750565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561267657612675612879565b5b828201905092915050565b600061268c82612750565b915061269783612750565b9250826126a7576126a66128a8565b5b828204905092915050565b60006126bd82612750565b91506126c883612750565b9250828210156126db576126da612879565b5b828203905092915050565b60006126f182612730565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561278757808201518184015260208101905061276c565b83811115612796576000848401525b50505050565b600060028204905060018216806127b457607f821691505b602082108114156127c8576127c76128d7565b5b50919050565b6127d782612935565b810181811067ffffffffffffffff821117156127f6576127f5612906565b5b80604052505050565b600061280a82612750565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283d5761283c612879565b5b600182019050919050565b600061285382612750565b915061285e83612750565b92508261286e5761286d6128a8565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e6572206f66207468697320746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b612e1c816126e6565b8114612e2757600080fd5b50565b612e33816126f8565b8114612e3e57600080fd5b50565b612e4a81612704565b8114612e5557600080fd5b50565b612e6181612750565b8114612e6c57600080fd5b5056fea2646970667358221220450c170b147f23ef2e7d9ba5dd576873827cdc58eb81e48dc3e22d0d7ebc1f2664736f6c63430008040033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 1d1c26912..8211d1760 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -13,23 +13,6 @@ import { WrappedBalanceCheck, WrappedNft, } from "./chain"; -import { abi as ERC1155_abi } from "../fakeERC1155.json"; -import { - abi as ERC721_abi, - bytecode as ERC721_bytecode, -} from "../fakeERC721.json"; -import { - abi as XPNFT_abi, - bytecode as XPNFT_bytecode, -} from "../XPNft.json"; -import { - abi as XPNET_abi, - bytecode as XPNET_bytecode, -} from "../XPNet.json"; -import { - abi as Minter_abi, - bytecode as Minter_bytecode -} from "../Minter.json"; import axios from "axios"; // @ts-expect-error no types cope @@ -40,6 +23,7 @@ import { EthNftInfo, MintArgs } from "./web3"; import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; import { Base64 } from "js-base64"; import { NftEthNative, NftPacked } from "validator"; +import { Minter__factory, UserNftMinter__factory, XPNet__factory, XPNft__factory } from "xpnet-web3-contracts"; export type MinterRes = { // Minter smart contract @@ -103,8 +87,8 @@ export async function baseTronHelperFactory( setSigner(deployer); const contract = await provider.contract().new({ - abi: ERC721_abi, - bytecode: ERC721_bytecode, + abi: UserNftMinter__factory.abi, + bytecode: UserNftMinter__factory.bytecode, feeLimit: 3000000000, }); @@ -115,8 +99,8 @@ export async function baseTronHelperFactory( setSigner(owner); const contract = await provider.contract().new({ - abi: XPNET_abi, - bytecode: XPNET_bytecode, + abi: XPNet__factory.abi, + bytecode: XPNet__factory.abi, feeLimit: 3000000000 }); @@ -127,8 +111,8 @@ export async function baseTronHelperFactory( setSigner(deployer); const contract = await provider.contract().new({ - abi: XPNFT_abi, - bytecode: XPNFT_bytecode, + abi: XPNft__factory.abi, + bytecode: XPNft__factory.abi, feeLimit: 3000000000 }); @@ -138,7 +122,7 @@ export async function baseTronHelperFactory( return { async mintNft(owner: string, options: MintArgs): Promise { setSigner(owner); - const erc = await provider.contract(ERC721_abi, options.contract); + const erc = await provider.contract(UserNftMinter__factory.abi, options.contract); await erc.mint(options.uri).send(); }, async balance(address: string): Promise { @@ -161,8 +145,8 @@ export async function baseTronHelperFactory( const nft_token = await deployXpNft(deployer); const token = await deployErc1155_i(deployer); const minter = await provider.contract().new({ - abi: Minter_abi, - bytecode: Minter_bytecode, + abi: Minter__factory.abi, + bytecode: Minter__factory.bytecode, feeLimit: 3000000000, parameters: [validators, whitelist, threshold, nft_token.address, token.address] }); @@ -189,7 +173,7 @@ export async function tronHelperFactory( ): Promise { const station = new TronStation(provider) const base = await baseTronHelperFactory(provider); - const erc1155 = await provider.contract(ERC1155_abi, erc1155_addr); + const erc1155 = await provider.contract(XPNet__factory.abi, erc1155_addr); const minter = await provider.contract(minter_abi, minter_addr); const event_middleware = axios.create({ baseURL: middleware_uri, @@ -227,10 +211,10 @@ export async function tronHelperFactory( const nftUri = async (info: EthNftInfo): Promise => { if (info.contract_type == "ERC721") { - const erc = await provider.contract(ERC721_abi, info.contract); + const erc = await provider.contract(UserNftMinter__factory.abi, info.contract); return await erc.tokenURI(info.token).call(); } else { - const erc = await provider.contract(ERC1155_abi, info.contract); + const erc = await provider.contract(XPNet__factory.abi, info.contract); return await erc.uri(info.token).call(); } }; @@ -300,11 +284,12 @@ export async function tronHelperFactory( ): Promise<[string, string]> { setSigner(sender); - const totalVal = EthBN.from(value.toString()).add( + const val = EthBN.from(value.toString()) + const totalVal = val.add( EthBN.from(txFees.toString()) ); let res = await minter - .freeze(chain_nonce, to) + .freeze(chain_nonce, to, val) .send({ callValue: totalVal }); return await extractTxn(res); }, @@ -329,7 +314,7 @@ export async function tronHelperFactory( ): Promise<[string, string]> { setSigner(sender); const res = await minter - .withdraw_nft(to, id) + .withdrawNft(to, id.toString()) .send({ callValue: EthBN.from(txFees.toString()) }); return await extractTxn(res); }, @@ -341,11 +326,11 @@ export async function tronHelperFactory( txFees: string ): Promise<[string, string]> { setSigner(sender); - const erc = await provider.contract(ERC721_abi, id.contract); + const erc = await provider.contract(UserNftMinter__factory.abi, id.contract); await erc.approve(minter.address, id.token).send(); const txr = await minter - .freeze_erc721(id.contract, id.token, chain_nonce, to) + .freezeErc721(id.contract, id.token, chain_nonce, to) .send({ callValue: EthBN.from(txFees.toString()) }); return await extractTxn(txr); @@ -387,7 +372,7 @@ export async function tronHelperFactory( return await estimateGas( validators, - "validate_transfer_nft(uint128,address,string)", + "validateTransferNft(uint128,address,string)", [ { type: "uint128", value: randomAction() }, { type: "address", value: to }, @@ -404,7 +389,7 @@ export async function tronHelperFactory( return await estimateGas( validators, - "validate_unfreeze_nft(uint128,address,uint256,address)", + "validateUnfreezeNft(uint128,address,uint256,address)", [ { type: "uint128", value: randomAction() }, { type: "address", value: to }, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index ad25a5f2a..19467cfbe 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -17,10 +17,8 @@ import { MintNft, } from "./chain"; import { - Contract, Signer, BigNumber as EthBN, - ContractFactory, PopulatedTransaction, } from "ethers"; import { @@ -28,11 +26,8 @@ import { TransactionResponse, Provider, } from "@ethersproject/providers"; -import { Interface } from "ethers/lib/utils"; -import { abi as ERC721_abi } from "../fakeERC721.json"; -import { abi as ERC1155_abi } from "../fakeERC1155.json"; -import * as ERC721_contract from "../XPNft.json"; import { NftEthNative, NftPacked } from "validator"; +import { Minter__factory, UserNftMinter__factory, XPNet__factory } from "xpnet-web3-contracts"; import { Base64 } from "js-base64"; import { EstimateTxFees } from ".."; type EasyBalance = string | number | EthBN; @@ -124,7 +119,6 @@ export async function baseWeb3HelperFactory( provider: Provider ): Promise { const w3 = provider; - const erc721_abi = new Interface(ERC721_abi); return { async balance(address: string): Promise { @@ -134,13 +128,13 @@ export async function baseWeb3HelperFactory( return new BigNumber(bal.toString()); }, async deployErc721(owner: Signer): Promise { - const factory = ContractFactory.fromSolidity(ERC721_contract, owner); + const factory = new UserNftMinter__factory(owner); const contract = await factory.deploy(); return contract.address; }, async mintNft(owner: Signer, { contract, uri }: MintArgs): Promise { - const erc721 = new Contract(contract, erc721_abi, owner); + const erc721 = UserNftMinter__factory.connect(contract, owner); const txm = await erc721.mint(uri); await txm.wait(); @@ -158,19 +152,12 @@ export async function baseWeb3HelperFactory( export async function web3HelperFactory( provider: Provider, minter_addr: string, - minter_abi: Interface, erc1155_addr: string ): Promise { const w3 = provider; - const minter = new Contract(minter_addr, minter_abi, w3); - - const erc1155_abi = new Interface(ERC1155_abi); - const erc1155 = new Contract(erc1155_addr, erc1155_abi, w3); - - function signedMinter(signer: Signer): Contract { - return minter.connect(signer); - } + const minter = Minter__factory.connect(minter_addr, provider); + const erc1155 = XPNet__factory.connect(erc1155_addr, provider); async function extractTxn( txr: TransactionResponse, @@ -182,17 +169,17 @@ export async function web3HelperFactory( throw Error("Couldn't extract action_id"); } - const evdat = minter_abi.parseLog(log); + const evdat = minter.interface.parseLog(log); const action_id: string = evdat.args[0].toString(); return [receipt, action_id]; } async function nftUri(info: EthNftInfo): Promise { if (info.contract_type == "ERC721") { - const erc = new Contract(info.contract, ERC721_abi, w3); + const erc = UserNftMinter__factory.connect(info.contract, w3); return await erc.tokenURI(info.token); } else { - const erc = new Contract(info.contract, erc1155_abi, w3); + const erc = XPNet__factory.connect(info.contract, w3); return await erc.uri(info.token); } } @@ -251,10 +238,11 @@ export async function web3HelperFactory( value: EasyBalance, txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - const totalVal = EthBN.from(value.toString()).add( + const val = EthBN.from(value.toString()); + const totalVal = val.add( EthBN.from(txFees.toString()) ); - const res = await signedMinter(sender).freeze(chain_nonce, to, { + const res = await minter.connect(sender).freeze(chain_nonce, to, val, { value: totalVal, }); return await extractTxn(res, "Transfer"); @@ -266,14 +254,14 @@ export async function web3HelperFactory( id: EthNftInfo, txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - const erc = new Contract(id.contract, ERC721_abi, w3); - const ta = await erc.connect(sender).approve(minter.address, id.token); + const erc = UserNftMinter__factory.connect(id.contract, sender); + const ta = await erc.approve(minter.address, id.token); await ta.wait(); const txr = await minter .connect(sender) - .freeze_erc721(id.contract, id.token, chain_nonce, to, { + .freezeErc721(id.contract, id.token, chain_nonce, to, { value: EthBN.from(txFees.toString()), }); @@ -286,7 +274,7 @@ export async function web3HelperFactory( value: EasyBalance, txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender).withdraw(chain_nonce, to, value, { + const res = await minter.connect(sender).withdraw(chain_nonce, to, value, { value: EthBN.from(txFees.toString()), }); @@ -298,7 +286,7 @@ export async function web3HelperFactory( id: BigNumber, txFees: EasyBalance ): Promise<[TransactionReceipt, string]> { - const res = await signedMinter(sender).withdraw_nft(to, id, { + const res = await minter.connect(sender).withdrawNft(to, id.toString(), { value: EthBN.from(txFees.toString()), }); @@ -339,7 +327,7 @@ export async function web3HelperFactory( encoded.setChainNonce(0x1351); encoded.setData(tokdat.serializeBinary()); - const utx = await minter.populateTransaction.validate_transfer_nft( + const utx = await minter.populateTransaction.validateTransferNft( randomAction(), to, Buffer.from(encoded.serializeBinary()).toString("base64") @@ -353,7 +341,7 @@ export async function web3HelperFactory( nft_data: Uint8Array ): Promise { const nft_dat = NftEthNative.deserializeBinary(nft_data); - const utx = await minter.populateTransaction.validate_unfreeze_nft( + const utx = await minter.populateTransaction.validateUnfreezeNft( randomAction(), to, EthBN.from(nft_dat.getId().toString()), diff --git a/yarn.lock b/yarn.lock index c0bf69279..85c055fa1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4901,9 +4901,9 @@ validator@^13.6.0: resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== -"validator@git+https://github.com/xp-network/migration-validator#web3-new": +"validator@git+https://github.com/xp-network/Migration-validator#web3-new": version "1.0.0" - resolved "git+https://github.com/xp-network/migration-validator#4b89abfadc84183b5c12efbdd59757ee6fcf0925" + resolved "git+https://github.com/xp-network/Migration-validator#35804240f8b8864d92aa1c27490a107d49b2c6e8" dependencies: "@celo-tools/celo-ethers-wrapper" "^0.0.5" "@elrondnetwork/erdjs" "^8.0.1-alpha.5" @@ -4929,6 +4929,7 @@ validator@^13.6.0: tronstation "^1.0.1" tronweb "^4.0.0" ws "^8.2.0" + xpnet-web3-contracts "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" vary@^1: version "1.1.2" @@ -5058,6 +5059,12 @@ xmlhttprequest-ssl@~2.0.0: resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== +"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": + version "0.1.0" + resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#80749689f97a08e5dca8efc2600b25c91cb906c8" + dependencies: + ethers "^5.4.1" + xxhashjs@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" From f34f97ac00fe1624f36e39ac10984e30fbd115e6 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 14 Oct 2021 19:18:33 +0530 Subject: [PATCH 062/956] tron: remove abi dep from constructor --- src/helpers/tron.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 8211d1760..6d589d4b3 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -169,12 +169,11 @@ export async function tronHelperFactory( middleware_uri: string, erc1155_addr: string, minter_addr: string, - minter_abi: JSON ): Promise { const station = new TronStation(provider) const base = await baseTronHelperFactory(provider); const erc1155 = await provider.contract(XPNet__factory.abi, erc1155_addr); - const minter = await provider.contract(minter_abi, minter_addr); + const minter = await provider.contract(Minter__factory.abi, minter_addr); const event_middleware = axios.create({ baseURL: middleware_uri, headers: { From 6417e9f3c866880b1ae2daf8b2636cf96659ec20 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 14 Oct 2021 19:40:37 +0530 Subject: [PATCH 063/956] tron: fix contract bytecode --- src/helpers/tron.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 6d589d4b3..a9f3a977e 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -100,7 +100,7 @@ export async function baseTronHelperFactory( const contract = await provider.contract().new({ abi: XPNet__factory.abi, - bytecode: XPNet__factory.abi, + bytecode: XPNet__factory.bytecode, feeLimit: 3000000000 }); @@ -112,7 +112,7 @@ export async function baseTronHelperFactory( const contract = await provider.contract().new({ abi: XPNft__factory.abi, - bytecode: XPNft__factory.abi, + bytecode: XPNft__factory.bytecode, feeLimit: 3000000000 }); From 259432fdb5df9f2cb3a6344abeb51f81ec6acdf7 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 14 Oct 2021 20:05:30 +0530 Subject: [PATCH 064/956] tron: fix event identifier --- src/helpers/tron.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index a9f3a977e..3a3dd249f 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -204,7 +204,7 @@ export async function tronHelperFactory( const evs = await getEv(); const ev = evs.find((e: any) => e?.contract == minter_addr); - const action_id: string = ev.result["action_id"].toString(); + const action_id: string = ev.result["actionId"].toString(); return [hash, action_id]; } From afac32e06a4cb16f18b98b99be2311e31373df6f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 18 Oct 2021 16:23:10 +0530 Subject: [PATCH 065/956] rpcuri: use enum instead of an object --- src/consts.ts | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index e899c3478..4c17f3fc2 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -4,33 +4,17 @@ import { tronHelperFactory, TronParams } from "./helpers/tron"; import { web3HelperFactory, Web3Params } from "./helpers/web3"; import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; -const HECO = "https://http-testnet.hecochain.com"; - -const BSC = "https://data-seed-prebsc-1-s1.binance.org:8545"; - -const AVALANCE = "https://api.avax-test.network/ext/bc/C/rpc"; - -const POLYGON = "https://matic-testnet-archive-rpc.bwarelabs.com"; - -const FANTOM = "https://rpc.testnet.fantom.network/"; - -const TRON = "https://api.shasta.trongrid.io/"; - -const CELO = "https://alfajores-forno.celo-testnet.org"; - -const HARMONY = "https://api.s0.b.hmny.io"; - // All the supported testnet uri's are here. -export const RPCURI = { - HECO, - BSC, - AVALANCE, - POLYGON, - FANTOM, - TRON, - CELO, - HARMONY, -}; +export enum RpcUri { + HECO = "https://http-testnet.hecochain.com", + BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", + AVALANCE = "https://api.avax-test.network/ext/bc/C/rpc", + POLYGON = "https://matic-testnet-archive-rpc.bwarelabs.com", + FANTOM = "https://rpc.testnet.fantom.network/", + TRON = "https://api.shasta.trongrid.io/", + CELO = "https://alfajores-forno.celo-testnet.org", + HARMONY = "https://api.s0.b.hmny.io", +} interface ChainData { name: string; From 7cc7768f79ebff75aa0308923f96e20baec77656 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 18 Oct 2021 17:36:57 +0530 Subject: [PATCH 066/956] chain: use enums to get chain nonce --- src/consts.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index 4c17f3fc2..017572870 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -16,6 +16,17 @@ export enum RpcUri { HARMONY = "https://api.s0.b.hmny.io", } +export enum Chain { + HECO = 2, + BSC = 3, + AVALANCE = 4, + POLYGON = 6, + FANTOM = 8, + TRON = 9, + CELO = 11, + HARMONY = 12, +} + interface ChainData { name: string; nonce: number; From 2f0d96a7665066bb4718ec81e391f7b4df5c16af Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 18 Oct 2021 17:37:51 +0530 Subject: [PATCH 067/956] elrond: add the missing interface to the helper --- src/helpers/elrond.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index b0bbb5e36..e9b9c2572 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -42,6 +42,7 @@ import { WrappedNftCheck, } from "./chain"; import { Base64 } from "js-base64"; +import { EstimateTxFees } from ".."; type EasyBalance = string | number | BigNumber; @@ -214,7 +215,8 @@ export type ElrondHelper = BalanceCheck & DecodeWrappedNft & DecodeRawNft & { mintableEsdts(address: Address): Promise; - } & WrappedNftCheck; + } & WrappedNftCheck & + EstimateTxFees; /** * Create an object implementing cross chain utilities for elrond @@ -764,10 +766,14 @@ export const elrondHelperFactory: ( return Base64.atob(locked!.uris[0]); }, - async estimateValidateTransferNft(validators: string[]) { + async estimateValidateTransferNft( + validators: Address[], + _toAddress: Address, + _nftInfo: NftInfo + ) { return estimateGas(NFT_TRANSFER_COST, validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, - async estimateValidateUnfreezeNft(validators: string[]) { + async estimateValidateUnfreezeNft(validators: Address[]) { return estimateGas(NFT_UNFREEZE_COST, validators.length); // TODO: properly estimate NFT_UNFREEZE_COST }, }; From da94582136f65037d48e88096e25065038703a95 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 18 Oct 2021 17:58:36 +0530 Subject: [PATCH 068/956] chainfactory: setup transferring NFTs --- src/factory/crossChainHelper.ts | 53 ++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index de9c6a2cd..c206b1315 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -1,12 +1,25 @@ import { ElrondHelper, ElrondParams } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; -import { CHAIN_INFO } from "../consts"; +import { Chain, CHAIN_INFO } from "../consts"; +import { NftInfo } from "testsuite-ts"; +import { BigNumber } from "bignumber.js"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; type ChainFactory = { inner(chainNonce: number): Promise; + // IMO This should Return a transaction, which can be signed later by a wallet interface. + transferNft( + fromChain: Chain, + toChain: Chain, + nft: NftInfo, + sender: any, + receiver: any, + validators: any[] + ): Promise; + // The function that calls the different wallet methods. + signTransaction(txn: any): Promise; }; export interface ChainParams { @@ -54,5 +67,43 @@ export function chainFactory(chainParams: ChainParams): ChainFactory { } return helper!; }, + // TODO: Find some way to make this more generic, return a txn receipt, throw an exception, etc. + transferNft: async ( + fromChain: Chain, + toChain: Chain, + nft: NftInfo, + sender: any, + receiver: any, + validators: any[] + ): Promise => { + const fromHelper = map.get(fromChain)!; + const estimate = await fromHelper.estimateValidateTransferNft( + validators, + receiver, + nft as any + ); + + if (nft.chain === fromChain) { + await fromHelper.transferNativeToForeign( + sender, + toChain, + receiver, + nft as any, + estimate as string | (string & BigNumber) | (BigNumber & string) + ); + } else { + fromHelper.transferNftToForeign( + sender, + fromChain, + receiver, + nft as any, + estimate as string | (string & BigNumber) | (BigNumber & string) + ); + } + }, + signTransaction: async (_txn: any): Promise => { + // TODO + return true; + }, }; } From 64d836bc6ca07278cb529d86bfbb88ceb07dfbc1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 20 Oct 2021 17:25:18 +0530 Subject: [PATCH 069/956] crossChain: setup minting Doesnt work right now, incomplete implementation --- src/factory/crossChainHelper.ts | 55 ++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 11 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index c206b1315..f38a2231c 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -1,9 +1,11 @@ import { ElrondHelper, ElrondParams } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; -import { Web3Helper, Web3Params } from "../helpers/web3"; +import { Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, CHAIN_INFO } from "../consts"; import { NftInfo } from "testsuite-ts"; import { BigNumber } from "bignumber.js"; +import { Signer } from "validator/node_modules/ethers"; +import { MintNft } from ".."; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -20,6 +22,13 @@ type ChainFactory = { ): Promise; // The function that calls the different wallet methods. signTransaction(txn: any): Promise; + // The function that should be used to mint an nft. + mint( + chain: MintNft, + owner: Signer, + uri: string, + contract: string + ): Promise; }; export interface ChainParams { @@ -57,16 +66,17 @@ function mapNonceToParams( export function chainFactory(chainParams: ChainParams): ChainFactory { let map = new Map(); let cToP = mapNonceToParams(chainParams); + + const inner = async (chainNonce: number): Promise => { + let helper = map.get(chainNonce); + if (helper === undefined) { + helper = await CHAIN_INFO[chainNonce].constructor(cToP.get(chainNonce)!); + } + return helper!; + }; + return { - inner: async (chainNonce: number): Promise => { - let helper = map.get(chainNonce); - if (helper === undefined) { - helper = await CHAIN_INFO[chainNonce].constructor( - cToP.get(chainNonce)! - ); - } - return helper!; - }, + inner, // TODO: Find some way to make this more generic, return a txn receipt, throw an exception, etc. transferNft: async ( fromChain: Chain, @@ -76,7 +86,7 @@ export function chainFactory(chainParams: ChainParams): ChainFactory { receiver: any, validators: any[] ): Promise => { - const fromHelper = map.get(fromChain)!; + const fromHelper = await inner(fromChain); const estimate = await fromHelper.estimateValidateTransferNft( validators, receiver, @@ -105,5 +115,28 @@ export function chainFactory(chainParams: ChainParams): ChainFactory { // TODO return true; }, + mint: async ( + chain: MintNft, + owner: Signer, + uri: string, + contract: string + ): Promise => { + chain.mintNft(owner, { + uri, + contract, + }); + }, }; } + +interface NftMintArgs { + readonly contract?: string; + readonly uri: string; + readonly identifier?: string; + readonly quantity?: number | undefined; + readonly name?: string; + readonly royalties?: number | undefined; + readonly hash?: string | undefined; + readonly attrs?: string | undefined; + readonly uris?: string[]; +} From e94056640dcc6eecba18d409782c688ede639b97 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 20 Oct 2021 17:29:12 +0530 Subject: [PATCH 070/956] Get rid of signTransaction because we are not managing the signing transaction, getting rid of it --- src/factory/crossChainHelper.ts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index f38a2231c..a99f6aee9 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -20,8 +20,6 @@ type ChainFactory = { receiver: any, validators: any[] ): Promise; - // The function that calls the different wallet methods. - signTransaction(txn: any): Promise; // The function that should be used to mint an nft. mint( chain: MintNft, @@ -111,10 +109,6 @@ export function chainFactory(chainParams: ChainParams): ChainFactory { ); } }, - signTransaction: async (_txn: any): Promise => { - // TODO - return true; - }, mint: async ( chain: MintNft, owner: Signer, @@ -131,12 +125,11 @@ export function chainFactory(chainParams: ChainParams): ChainFactory { interface NftMintArgs { readonly contract?: string; - readonly uri: string; + readonly uri: string | string[]; readonly identifier?: string; readonly quantity?: number | undefined; readonly name?: string; readonly royalties?: number | undefined; readonly hash?: string | undefined; readonly attrs?: string | undefined; - readonly uris?: string[]; } From ce61e6296977e9393bbc58097f5573c968cf23bc Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 20 Oct 2021 18:54:03 +0530 Subject: [PATCH 071/956] minting: commonize minting arguments --- src/factory/crossChainHelper.ts | 36 ++++++++++++++++----------------- src/helpers/elrond.ts | 7 ++++--- src/helpers/tron.ts | 7 ++++--- src/helpers/web3.ts | 12 +++++++---- 4 files changed, 33 insertions(+), 29 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index a99f6aee9..bc61993ed 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -1,10 +1,10 @@ import { ElrondHelper, ElrondParams } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; -import { Web3Helper, Web3Params } from "../helpers/web3"; +import { Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, CHAIN_INFO } from "../consts"; import { NftInfo } from "testsuite-ts"; import { BigNumber } from "bignumber.js"; -import { Signer } from "validator/node_modules/ethers"; + import { MintNft } from ".."; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -21,11 +21,10 @@ type ChainFactory = { validators: any[] ): Promise; // The function that should be used to mint an nft. - mint( - chain: MintNft, + mint( + chain: MintNft, owner: Signer, - uri: string, - contract: string + args: NftMintArgs ): Promise; }; @@ -61,7 +60,7 @@ function mapNonceToParams( return cToP; } -export function chainFactory(chainParams: ChainParams): ChainFactory { +export function ChainFactory(chainParams: ChainParams): ChainFactory { let map = new Map(); let cToP = mapNonceToParams(chainParams); @@ -109,27 +108,26 @@ export function chainFactory(chainParams: ChainParams): ChainFactory { ); } }, - mint: async ( - chain: MintNft, + mint: async ( + chain: MintNft, owner: Signer, - uri: string, - contract: string + args: NftMintArgs ): Promise => { - chain.mintNft(owner, { - uri, - contract, - }); + chain.mintNft(owner, args); }, }; } - -interface NftMintArgs { +/* + * contract is mandatory for a web3 chains & tron. + * identifier is mandatory for a elrond chain. +*/ +export interface NftMintArgs { readonly contract?: string; - readonly uri: string | string[]; + readonly uris: string[]; readonly identifier?: string; readonly quantity?: number | undefined; readonly name?: string; readonly royalties?: number | undefined; readonly hash?: string | undefined; - readonly attrs?: string | undefined; + readonly attrs: string | undefined; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index e9b9c2572..1c77bf71f 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -43,6 +43,7 @@ import { } from "./chain"; import { Base64 } from "js-base64"; import { EstimateTxFees } from ".."; +import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | BigNumber; @@ -209,7 +210,7 @@ export type ElrondHelper = BalanceCheck & EventIdent > & IssueESDTNFT & - MintNft & + MintNft & ListNft & GetLockedNft & DecodeWrappedNft & @@ -719,8 +720,8 @@ export const elrondHelperFactory: ( const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; return Buffer.from(tickerh, "hex").toString("utf-8"); }, - async mintNft(owner: ISigner, args: NftIssueArgs): Promise { - const txu = unsignedMintNftTxn(owner.getAddress(), args); + async mintNft(owner: ISigner, args: NftMintArgs): Promise { + const txu = unsignedMintNftTxn(owner.getAddress(), args as NftIssueArgs); await signAndSend(owner, txu); }, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index aa4333515..1f53df1af 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -27,9 +27,10 @@ import { Base64 } from "js-base64"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; import axios from "axios"; import { EstimateTxFees, WrappedNftCheck } from ".."; +import { NftMintArgs } from "../factory/crossChainHelper"; export type BaseTronHelper = BalanceCheck & - MintNft & { + MintNft & { /** * * Deploy an ERC1155 smart contract @@ -75,10 +76,10 @@ export async function baseTronHelperFactory( }; return { - async mintNft(owner: string, options: MintArgs): Promise { + async mintNft(owner: string, options: NftMintArgs): Promise { setSigner(owner); const erc = await provider.contract(ERC721_abi, options.contract); - await erc.mint(options.uri).send(); + await erc.mint(options.uris[0]).send(); }, async balance(address: string): Promise { const balance = await provider.trx.getBalance(address); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index b3fe3c264..eb0db2a3f 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -36,6 +36,7 @@ import * as ERC721_contract from "../XPNft.json"; import { NftEthNative, NftPacked } from "validator/dist/encoding"; import { Base64 } from "js-base64"; import { EstimateTxFees } from ".."; +import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain @@ -69,7 +70,7 @@ export type BaseWeb3Helper = BalanceCheck & * @argument signer owner of the smart contract * @argument args See [[MintArgs]] */ - MintNft & { + MintNft & { /** * * Deploy an ERC721 smart contract @@ -141,10 +142,13 @@ export async function baseWeb3HelperFactory( return contract.address; }, - async mintNft(owner: Signer, { contract, uri }: MintArgs): Promise { - const erc721 = new Contract(contract, erc721_abi, owner); + async mintNft( + owner: Signer, + { contract, uris }: NftMintArgs + ): Promise { + const erc721 = new Contract(contract!, erc721_abi, owner); - const txm = await erc721.mint(uri); + const txm = await erc721.mint(uris[0]); await txm.wait(); }, }; From 1d75f96d0ba1fb27e2c63332738f6bf525ab4ca0 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 20 Oct 2021 19:51:56 +0530 Subject: [PATCH 072/956] elrond: setup signing with extension --- src/helpers/elrond.ts | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 1c77bf71f..a4522b050 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -13,6 +13,7 @@ import { BytesValue, ContractFunction, Egld, + ExtensionProvider, GasLimit, ISigner, NetworkConfig, @@ -256,21 +257,26 @@ export const elrondHelperFactory: ( networkConfig.MinGasPrice.valueOf() * networkConfig.GasPriceModifier.valueOf(); - const syncAccount = async (signer: ISigner) => { - const account = new Account(signer.getAddress()); + const syncAccount = async (signer: ISigner| ExtensionProvider) => { + const account = new Account(new Address(await signer.getAddress())); await account.sync(provider); return account; }; - const signAndSend = async (signer: ISigner, tx: Transaction) => { + const signAndSend = async (signer: ISigner | ExtensionProvider, tx: Transaction) => { + const acc = await syncAccount(signer); - - tx.setNonce(acc.nonce); - await signer.sign(tx); + let stx: Transaction; + if (signer instanceof ExtensionProvider) { + stx = await signer.signTransaction(tx); + } else { + await (signer as ISigner).sign(tx) + stx = tx + } try { - await tx.send(provider); + await stx.send(provider); } catch (e: any) { if (e.message.includes("lowerNonceInTx")) { throw ConcurrentSendError(); From 176ff74fd5fcc517d0e2ef01c30473f33c0e57ab Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 13:37:46 +0530 Subject: [PATCH 073/956] elrond: set nonce for tx --- src/helpers/elrond.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index a4522b050..5019305fc 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -274,7 +274,7 @@ export const elrondHelperFactory: ( await (signer as ISigner).sign(tx) stx = tx } - + stx.setNonce(acc.nonce) try { await stx.send(provider); } catch (e: any) { From fef4b78d07d59cba63572c952e9fd21a39467a13 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 13:49:38 +0530 Subject: [PATCH 074/956] chore(packages): remove testsuite --- package.json | 1 - src/factory/crossChainHelper.ts | 5 ++--- src/helpers/tron.ts | 2 +- yarn.lock | 19 ------------------- 4 files changed, 3 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 5bcbff881..9c93aa66b 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,6 @@ "ethers": "^5.4.1", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", - "testsuite-ts": "git+https://github.com/xp-network/bridge-ui-logics#web3-new", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/migration-validator#master" } diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index bc61993ed..96309dc37 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -2,7 +2,6 @@ import { ElrondHelper, ElrondParams } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, CHAIN_INFO } from "../consts"; -import { NftInfo } from "testsuite-ts"; import { BigNumber } from "bignumber.js"; import { MintNft } from ".."; @@ -15,7 +14,7 @@ type ChainFactory = { transferNft( fromChain: Chain, toChain: Chain, - nft: NftInfo, + nft: any, sender: any, receiver: any, validators: any[] @@ -78,7 +77,7 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { transferNft: async ( fromChain: Chain, toChain: Chain, - nft: NftInfo, + nft: any, sender: any, receiver: any, validators: any[] diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 1f53df1af..01a7ec811 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -14,7 +14,7 @@ import { } from "./chain"; import { abi as ERC1155_abi } from "../fakeERC1155.json"; -// @ts-ignore +//@ts-ignore import { TronWeb } from "tronweb"; import { EthNftInfo, MintArgs } from "./web3"; diff --git a/yarn.lock b/yarn.lock index c28657314..49fc7bed0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4759,25 +4759,6 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -"testsuite-ts@git+https://github.com/xp-network/bridge-ui-logics#web3-new": - version "2.0.0" - resolved "git+https://github.com/xp-network/bridge-ui-logics#95a5de7f0fa9124280679ee2a0339a29d58df8ab" - dependencies: - "@elrondnetwork/erdjs" "^8.0.1-alpha.5" - "@polkadot/api" "^5.2.1" - "@polkadot/api-contract" "^5.2.1" - "@polkadot/keyring" "^7.0.3" - "@polkadot/types" "^5.2.1" - "@polkadot/util" "^7.1.1" - "@polkadot/util-crypto" "^7.1.1" - axios "^0.21.1" - bignumber.js "^9.0.1" - ethers "^5.4.1" - js-base64 "^3.6.1" - socket.io-client "^4.1.3" - tronweb "^4.0.0" - validator "git+https://github.com/xp-network/migration-validator#master" - text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" From 019883739da3724fa65541f7be808969a5117d8d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 14:16:36 +0530 Subject: [PATCH 075/956] fix(chain): update enum values --- src/consts.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 017572870..0a15706ff 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -17,10 +17,10 @@ export enum RpcUri { } export enum Chain { - HECO = 2, - BSC = 3, - AVALANCE = 4, - POLYGON = 6, + HECO = 3, + BSC = 4, + AVALANCE = 6, + POLYGON = 7, FANTOM = 8, TRON = 9, CELO = 11, From 9241a36ffdaf53203b722a4939b2aa8c5e491be4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 16:41:12 +0530 Subject: [PATCH 076/956] fix(elrond): set nonce before signing the transaction --- src/helpers/elrond.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 5019305fc..a021b7008 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -265,8 +265,9 @@ export const elrondHelperFactory: ( }; const signAndSend = async (signer: ISigner | ExtensionProvider, tx: Transaction) => { - const acc = await syncAccount(signer); + tx.setNonce(acc.nonce) + console.log(tx) let stx: Transaction; if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); @@ -274,7 +275,7 @@ export const elrondHelperFactory: ( await (signer as ISigner).sign(tx) stx = tx } - stx.setNonce(acc.nonce) + console.log("STX", stx) try { await stx.send(provider); } catch (e: any) { From 1a4475fae8f0572d26818d6ea8ef45707d76d074 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 17:11:34 +0530 Subject: [PATCH 077/956] chore(elrond): remove redundant console logs --- src/helpers/elrond.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index a021b7008..781243f18 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -267,7 +267,6 @@ export const elrondHelperFactory: ( const signAndSend = async (signer: ISigner | ExtensionProvider, tx: Transaction) => { const acc = await syncAccount(signer); tx.setNonce(acc.nonce) - console.log(tx) let stx: Transaction; if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); @@ -275,7 +274,6 @@ export const elrondHelperFactory: ( await (signer as ISigner).sign(tx) stx = tx } - console.log("STX", stx) try { await stx.send(provider); } catch (e: any) { From 2e573996dfe0281f7fa99567beadb8d6aa2536a9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 17:16:36 +0530 Subject: [PATCH 078/956] fix(chains): add missing elrond chain --- src/consts.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index 0a15706ff..6d1353010 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -6,6 +6,7 @@ import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; // All the supported testnet uri's are here. export enum RpcUri { + ELROND = "https://devnet-api.elrond.com", HECO = "https://http-testnet.hecochain.com", BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", AVALANCE = "https://api.avax-test.network/ext/bc/C/rpc", @@ -17,6 +18,7 @@ export enum RpcUri { } export enum Chain { + ELROND = 2, HECO = 3, BSC = 4, AVALANCE = 6, From 0caec5fd2243532896184415c23938007d478ebd Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 17:57:47 +0530 Subject: [PATCH 079/956] docs: add typedocs to cross chain helpers --- package.json | 2 +- src/consts.ts | 5 +- src/factory/crossChainHelper.ts | 38 +++++++++--- yarn.lock | 102 +++++++++++--------------------- 4 files changed, 70 insertions(+), 77 deletions(-) diff --git a/package.json b/package.json index 9c93aa66b..4959cc22b 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-functional": "^3.2.1", "prettier": "^2.3.2", - "typedoc": "^0.21.0", + "typedoc": "^0.22.6", "typescript": "^4.3.5" }, "dependencies": { diff --git a/src/consts.ts b/src/consts.ts index 6d1353010..47456fab2 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -16,7 +16,10 @@ export enum RpcUri { CELO = "https://alfajores-forno.celo-testnet.org", HARMONY = "https://api.s0.b.hmny.io", } - +/** + * An enum which represents the supported chains + * Each field in the enum equals to the nonce of the chain. + */ export enum Chain { ELROND = 2, HECO = 3, diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index 96309dc37..3e170ab03 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -8,8 +8,16 @@ import { MintNft } from ".."; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; +/** + * A type representing a chain factory. + * + */ type ChainFactory = { - inner(chainNonce: number): Promise; + /** + * Create a cross chain helper object + * @param chain: {@link Chain} to create the helper for + */ + inner(chain: Chain): Promise; // IMO This should Return a transaction, which can be signed later by a wallet interface. transferNft( fromChain: Chain, @@ -19,7 +27,11 @@ type ChainFactory = { receiver: any, validators: any[] ): Promise; - // The function that should be used to mint an nft. + /** + * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the {@link inner} method. + * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar wallet. + * @param args: {@link NftMintArgs} Arguments to mint the nft. + */ mint( chain: MintNft, owner: Signer, @@ -27,6 +39,9 @@ type ChainFactory = { ): Promise; }; +/** + * A type representing all the supported chain params. + */ export interface ChainParams { elrondParams: ElrondParams; hecoParams: Web3Params; @@ -58,15 +73,19 @@ function mapNonceToParams( cToP.set(12, chainParams.harmonyParams); return cToP; } - +/** +* This function is the basic entry point to use this package as a library. +* @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. +* @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. +*/ export function ChainFactory(chainParams: ChainParams): ChainFactory { let map = new Map(); let cToP = mapNonceToParams(chainParams); - const inner = async (chainNonce: number): Promise => { - let helper = map.get(chainNonce); + const inner = async (chain: Chain): Promise => { + let helper = map.get(chain); if (helper === undefined) { - helper = await CHAIN_INFO[chainNonce].constructor(cToP.get(chainNonce)!); + helper = await CHAIN_INFO[chain].constructor(cToP.get(chain)!); } return helper!; }; @@ -116,9 +135,10 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { }, }; } -/* - * contract is mandatory for a web3 chains & tron. - * identifier is mandatory for a elrond chain. +/** + * The interface that defines the arguments to mint an NFT. + * @property contract is the address of the smart contract that will mint the NFT and it is mandatory for WEB3 and Tron Chains. + * @property identifier is the identifier of the NFT to mint and it is mandatory for Elrond Chain. */ export interface NftMintArgs { readonly contract?: string; diff --git a/yarn.lock b/yarn.lock index 49fc7bed0..97a65e153 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3130,7 +3130,7 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.0.0, glob@^7.1.3, glob@^7.1.6, glob@^7.1.7: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== @@ -3142,6 +3142,18 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.6, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + 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" + globals@^13.6.0, globals@^13.9.0: version "13.10.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" @@ -3192,18 +3204,6 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -handlebars@^4.7.7: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -3556,12 +3556,10 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" +jsonc-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" + integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== jsonfile@^4.0.0: version "4.0.0" @@ -3685,10 +3683,10 @@ macos-release@^2.2.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2" integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g== -marked@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/marked/-/marked-2.1.3.tgz#bd017cef6431724fd4b27e0657f5ceb14bff3753" - integrity sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA== +marked@^3.0.4: + version "3.0.7" + resolved "https://registry.yarnpkg.com/marked/-/marked-3.0.7.tgz#343aad9e91b96249b495c99c512ea09cfe06de1e" + integrity sha512-ctKqbnLuNbsHbI26cfMyOlKgXGfl1orOv1AvWWDX7AkgfMOwCWvmuYc+mVLeWhQ9W6hdWVBynOs96VkcscKo0Q== md5.js@^1.3.4: version "1.3.5" @@ -3765,7 +3763,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.0, minimatch@^3.0.4: +minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -3824,11 +3822,6 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.6.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - next-tick@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" @@ -4175,7 +4168,7 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -progress@^2.0.0, progress@^2.0.3: +progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -4472,12 +4465,12 @@ shelljs@^0.8.4: interpret "^1.0.0" rechoir "^0.6.2" -shiki@^0.9.3: - version "0.9.5" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.9.5.tgz#c8da81a05fbfd1810729c6873901a729a72ec541" - integrity sha512-XFn+rl3wIowDjzdr5DlHoHgQphXefgUTs2bNp/bZu4WF9gTrTLnKwio3f28VjiFG6Jpip7yQn/p4mMj6OrjrtQ== +shiki@^0.9.11: + version "0.9.12" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.9.12.tgz#70cbc8c1bb78ff7b356f84a7eecdb040efddd247" + integrity sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw== dependencies: - json5 "^2.2.0" + jsonc-parser "^3.0.0" onigasm "^2.2.5" vscode-textmate "5.2.0" @@ -4574,11 +4567,6 @@ socket.io@^4.1.3: socket.io-adapter "~2.3.1" socket.io-parser "~4.0.4" -source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" @@ -4865,24 +4853,16 @@ typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typedoc-default-themes@^0.12.10: - version "0.12.10" - resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz#614c4222fe642657f37693ea62cad4dafeddf843" - integrity sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA== - -typedoc@^0.21.0: - version "0.21.4" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.21.4.tgz#fced3cffdc30180db60a5dbfec9dbbb273cb5b31" - integrity sha512-slZQhvD9U0d9KacktYAyuNMMOXJRFNHy+Gd8xY2Qrqq3eTTTv3frv3N4au/cFnab9t3T5WA0Orb6QUjMc+1bDA== +typedoc@^0.22.6: + version "0.22.6" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.6.tgz#1122f83a6eb5cd7dbb26d1924de1f9de9e8c7c7e" + integrity sha512-ePbJqOaz0GNkU2ehRwFwBpLD4Gp6m7jbJfHysXmDdjVKc1g8DFJ83r/LOZ9TZrkC661vgpoIY3FjSPEtUilHNA== dependencies: - glob "^7.1.7" - handlebars "^4.7.7" + glob "^7.2.0" lunr "^2.3.9" - marked "^2.1.1" - minimatch "^3.0.0" - progress "^2.0.3" - shiki "^0.9.3" - typedoc-default-themes "^0.12.10" + marked "^3.0.4" + minimatch "^3.0.4" + shiki "^0.9.11" typescript-compiler@^1.4.1-2: version "1.4.1-2" @@ -4899,11 +4879,6 @@ u2f-api@0.2.7: resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== -uglify-js@^3.1.4: - version "3.13.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.10.tgz#a6bd0d28d38f592c3adb6b180ea6e07e1e540a8d" - integrity sha512-57H3ACYFXeo1IaZ1w02sfA71wI60MGco/IQFjOqK+WtKoprh7Go2/yvd2HPtoJILO2Or84ncLccI4xoHMTSbGg== - unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -5130,11 +5105,6 @@ word-wrap@^1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" From 77337157d345370318b8ade5343f34281fb8ca1d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 18:03:25 +0530 Subject: [PATCH 080/956] feat(chains): bring back ropsten --- src/consts.ts | 13 ++++++++++++- src/factory/crossChainHelper.ts | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 47456fab2..a7e728a6b 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -9,7 +9,8 @@ export enum RpcUri { ELROND = "https://devnet-api.elrond.com", HECO = "https://http-testnet.hecochain.com", BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", - AVALANCE = "https://api.avax-test.network/ext/bc/C/rpc", + ROPSTEN = "https://ropsten.infura.io/v3/182b3d3fb2d14d5fbe7421348624d1ce", + AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-testnet-archive-rpc.bwarelabs.com", FANTOM = "https://rpc.testnet.fantom.network/", TRON = "https://api.shasta.trongrid.io/", @@ -24,6 +25,7 @@ export enum Chain { ELROND = 2, HECO = 3, BSC = 4, + ROPSTEN = 5, AVALANCE = 6, POLYGON = 7, FANTOM = 8, @@ -75,6 +77,15 @@ export const CHAIN_INFO: ChainInfo = { constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.BNB, }, + 5: { + name: "Ropsten", + nonce: 5, + currency: SupportedCurrency.ETH, + chainId: 3, + decimals: 1e18, + blockExplorerUrl: "https://ropsten.etherscan.io/tx", + constructor: (p) => web3HelperFactory(p as Web3Params), + }, 6: { name: "Avalanche", nonce: 6, diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index 3e170ab03..9bfdbed4e 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -53,6 +53,7 @@ export interface ChainParams { tronParams: TronParams; celoParams: Web3Params; harmonyParams: Web3Params; + ontologyParams: Web3Params; } function mapNonceToParams( @@ -71,6 +72,7 @@ function mapNonceToParams( cToP.set(11, chainParams.celoParams); cToP.set(12, chainParams.harmonyParams); + cToP.set(13, chainParams.ontologyParams); return cToP; } /** From fc2919c8824140d61d73f028f5184ddc5e3a3265 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 18:21:12 +0530 Subject: [PATCH 081/956] feat(minting): return a receipt on successful mint --- src/factory/crossChainHelper.ts | 14 +++++++------- src/helpers/elrond.ts | 6 +++--- src/helpers/tron.ts | 6 +++--- src/helpers/web3.ts | 6 +++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index 9bfdbed4e..763b678d5 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -32,11 +32,11 @@ type ChainFactory = { * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar wallet. * @param args: {@link NftMintArgs} Arguments to mint the nft. */ - mint( - chain: MintNft, + mint( + chain: MintNft, owner: Signer, args: NftMintArgs - ): Promise; + ): Promise; }; /** @@ -128,12 +128,12 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { ); } }, - mint: async ( - chain: MintNft, + mint: async ( + chain: MintNft, owner: Signer, args: NftMintArgs - ): Promise => { - chain.mintNft(owner, args); + ): Promise => { + return chain.mintNft(owner, args); }, }; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 781243f18..710066987 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -211,7 +211,7 @@ export type ElrondHelper = BalanceCheck & EventIdent > & IssueESDTNFT & - MintNft & + MintNft & ListNft & GetLockedNft & DecodeWrappedNft & @@ -725,10 +725,10 @@ export const elrondHelperFactory: ( const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; return Buffer.from(tickerh, "hex").toString("utf-8"); }, - async mintNft(owner: ISigner, args: NftMintArgs): Promise { + async mintNft(owner: ISigner, args: NftMintArgs): Promise { const txu = unsignedMintNftTxn(owner.getAddress(), args as NftIssueArgs); - await signAndSend(owner, txu); + return await signAndSend(owner, txu); }, async mintableEsdts(address: Address): Promise { const res = await providerRest.get( diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 01a7ec811..6126c1c79 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -30,7 +30,7 @@ import { EstimateTxFees, WrappedNftCheck } from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; export type BaseTronHelper = BalanceCheck & - MintNft & { + MintNft & { /** * * Deploy an ERC1155 smart contract @@ -76,10 +76,10 @@ export async function baseTronHelperFactory( }; return { - async mintNft(owner: string, options: NftMintArgs): Promise { + async mintNft(owner: string, options: NftMintArgs): Promise { setSigner(owner); const erc = await provider.contract(ERC721_abi, options.contract); - await erc.mint(options.uris[0]).send(); + return await erc.mint(options.uris[0]).send(); }, async balance(address: string): Promise { const balance = await provider.trx.getBalance(address); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index eb0db2a3f..dc58c54df 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -70,7 +70,7 @@ export type BaseWeb3Helper = BalanceCheck & * @argument signer owner of the smart contract * @argument args See [[MintArgs]] */ - MintNft & { + MintNft & { /** * * Deploy an ERC721 smart contract @@ -145,11 +145,11 @@ export async function baseWeb3HelperFactory( async mintNft( owner: Signer, { contract, uris }: NftMintArgs - ): Promise { + ): Promise { const erc721 = new Contract(contract!, erc721_abi, owner); const txm = await erc721.mint(uris[0]); - await txm.wait(); + return await txm.wait(); }, }; } From 5fbf75198e8f6f7dba861c528a5597127725f001 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 18:43:10 +0530 Subject: [PATCH 082/956] feat(readme): add instructions on how to use this library --- README.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/README.md b/README.md index e69de29bb..3915a07a7 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,63 @@ +# XP Network JS API + +### Work In Progress / Alpha Stage Library + +Features Available :- +- [X] Minting NFTs +- [ ] Bridge +- [ ] ... and More + +## To Mint an NFT, Follow the steps as specified - + +- First make sure nodejs is installed in your machine. + + +- Import xp.network package with the command + + ``` + yarn add xp.network + ``` + + OR + + ``` + npm install xp.network + ``` + +- Import ChainFactory from the package and instantiate it with the params required i.e. for Avalanche + + ```javascript + const factory = LibChainFactory( + { + ..., + avalancheParams: { + erc1155_addr: "ADDRESS OF ERC1155 CONTRACT", + minter_abi: "The ABI OF MINTER CONTRACT", + erc721_addr: "ADDRESS OF ERC721 CONTRACT", + minter_addr: "ADDRESS OF MINTER CONTRACT", + // Appropriate Provider for Each Chain. Could be coming from metamask/tron-link wallet. Here we are using metamask. + provider: new ethers.providers.Web3Provider(await detectEthereumProvider()), + }, + ..., + }); + ``` + +- Get the inner object from this factory + + ```javascript + const inner = await factory.inner(Chain.AVALANCHE); + ``` + +- Just call the mint function on the factory with suitable arguments + + ```javascript + const receipt = await factory.mint(inner, web3Provider.getSigner(address), { + // Could be an IPFS URL or Any URL that points to a Metadata + uris: [metadata.url], + attrs: description, + name: name, + contract: "Minter Address from Before", + }); + ``` + +- That's it. From ed6673461287372f38f17bc2fad24791e035c78e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 18:50:33 +0530 Subject: [PATCH 083/956] feat(package): follow the naming convention from npm --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4959cc22b..08df17628 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "testsuite-ts", - "version": "2.0.0", + "name": "xp.network", + "version": "0.0.1", "author": "rupansh ", "main": "dist/index.js", "types": "dist/index.d.ts", From 40a63afe3081e69fda3ec8679823d789b1cc40d9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 18:52:03 +0530 Subject: [PATCH 084/956] chore(ci): push readme and license the dist --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 972ddc084..c161a3bfa 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,7 +30,7 @@ jobs: run: yarn build - name: prepare package - run: mkdir out && mv package.json out && mv dist out + run: mkdir out && mv package.json out && mv dist out && mv README.md out && mv LICENSE out - name: Prepare Master Release uses: s0/git-publish-subdir-action@develop From f7ebf7897ee6e746c56c267255a1d2a8486aec05 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 18:53:05 +0530 Subject: [PATCH 085/956] chore(lint): Prettier and Lint --- .eslintrc.json | 5 +---- .github/workflows/release.yml | 15 +++++++-------- README.md | 4 ++-- src/factory/crossChainHelper.ts | 12 ++++++------ src/helpers/elrond.ts | 17 ++++++++++------- 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 70a34c24b..0cec7246b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -24,10 +24,7 @@ { "allowWholeFile": true } ], "eslint-comments/no-unused-disable": "error", - "import/order": [ - "error", - { "alphabetize": { "order": "asc" } } - ], + "import/order": ["error", { "alphabetize": { "order": "asc" } }], "sort-imports": [ "error", { "ignoreDeclarationSort": true, "ignoreCase": true } diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c161a3bfa..1436d1d0d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,6 @@ on: branches: - "*" workflow_dispatch: - jobs: build: @@ -28,17 +27,17 @@ jobs: - name: build run: yarn build - + - name: prepare package run: mkdir out && mv package.json out && mv dist out && mv README.md out && mv LICENSE out - + - name: Prepare Master Release uses: s0/git-publish-subdir-action@develop if: ${{ github.ref == 'refs/heads/master' }} env: REPO: self - BRANCH: master-dist - FOLDER: out + BRANCH: master-dist + FOLDER: out GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} MESSAGE: "Build: ({sha}) {msg}" - name: Prepare Branch Release @@ -46,7 +45,7 @@ jobs: if: ${{ github.ref != 'refs/heads/master' }} env: REPO: self - BRANCH: bleeding-edge - FOLDER: out + BRANCH: bleeding-edge + FOLDER: out GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - MESSAGE: "Build: ({sha}) {msg}" \ No newline at end of file + MESSAGE: "Build: ({sha}) {msg}" diff --git a/README.md b/README.md index 3915a07a7..f3dee182b 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ ### Work In Progress / Alpha Stage Library Features Available :- -- [X] Minting NFTs + +- [x] Minting NFTs - [ ] Bridge - [ ] ... and More @@ -11,7 +12,6 @@ Features Available :- - First make sure nodejs is installed in your machine. - - Import xp.network package with the command ``` diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index 763b678d5..690c6fe03 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -10,7 +10,7 @@ export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; /** * A type representing a chain factory. - * + * */ type ChainFactory = { /** @@ -76,10 +76,10 @@ function mapNonceToParams( return cToP; } /** -* This function is the basic entry point to use this package as a library. -* @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. -* @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. -*/ + * This function is the basic entry point to use this package as a library. + * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. + * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. + */ export function ChainFactory(chainParams: ChainParams): ChainFactory { let map = new Map(); let cToP = mapNonceToParams(chainParams); @@ -141,7 +141,7 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { * The interface that defines the arguments to mint an NFT. * @property contract is the address of the smart contract that will mint the NFT and it is mandatory for WEB3 and Tron Chains. * @property identifier is the identifier of the NFT to mint and it is mandatory for Elrond Chain. -*/ + */ export interface NftMintArgs { readonly contract?: string; readonly uris: string[]; diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 710066987..df174994e 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -257,22 +257,25 @@ export const elrondHelperFactory: ( networkConfig.MinGasPrice.valueOf() * networkConfig.GasPriceModifier.valueOf(); - const syncAccount = async (signer: ISigner| ExtensionProvider) => { + const syncAccount = async (signer: ISigner | ExtensionProvider) => { const account = new Account(new Address(await signer.getAddress())); await account.sync(provider); return account; }; - const signAndSend = async (signer: ISigner | ExtensionProvider, tx: Transaction) => { + const signAndSend = async ( + signer: ISigner | ExtensionProvider, + tx: Transaction + ) => { const acc = await syncAccount(signer); - tx.setNonce(acc.nonce) + tx.setNonce(acc.nonce); let stx: Transaction; - if (signer instanceof ExtensionProvider) { - stx = await signer.signTransaction(tx); + if (signer instanceof ExtensionProvider) { + stx = await signer.signTransaction(tx); } else { - await (signer as ISigner).sign(tx) - stx = tx + await (signer as ISigner).sign(tx); + stx = tx; } try { await stx.send(provider); From 8d36884b6a393e2c04e0afc4bc1291be0a4fd524 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 21 Oct 2021 18:54:34 +0530 Subject: [PATCH 086/956] feat(license): create MIT license --- LICENSE | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..7abdc74c8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2021 XP.network + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file From daacde3a38938fe4d29b4ff947acc025648259c9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 24 Oct 2021 14:16:32 +0530 Subject: [PATCH 087/956] chore(packages): remove polkadot dependencies --- package.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/package.json b/package.json index 08df17628..1f56da71f 100644 --- a/package.json +++ b/package.json @@ -25,12 +25,6 @@ }, "dependencies": { "@elrondnetwork/erdjs": "^8.0.1-alpha.5", - "@polkadot/api": "^5.2.1", - "@polkadot/api-contract": "^5.2.1", - "@polkadot/keyring": "^7.0.3", - "@polkadot/types": "^5.2.1", - "@polkadot/util": "^7.1.1", - "@polkadot/util-crypto": "^7.1.1", "axios": "^0.21.1", "bignumber.js": "^9.0.1", "crypto-exchange-rate": "https://github.com/xp-network/exchange-rate#master-dist", From 65bcf2359d40feda7ae105fec630597d150bd1fb Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 24 Oct 2021 14:17:15 +0530 Subject: [PATCH 088/956] chore(docs): update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f3dee182b..609651c5e 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Features Available :- - Import ChainFactory from the package and instantiate it with the params required i.e. for Avalanche ```javascript - const factory = LibChainFactory( + const factory = ChainFactory( { ..., avalancheParams: { From 3f07c02f86c14e27d602a543e0f299a8a80ee5b1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 24 Oct 2021 15:17:35 +0530 Subject: [PATCH 089/956] feat(chain-transfer): use bignumber everywhere instead of EasyBalance --- src/factory/crossChainHelper.ts | 48 +++++++++++++++++++++------------ src/helpers/elrond.ts | 8 +++--- src/helpers/tron.ts | 20 +++++++------- src/helpers/web3.ts | 18 ++++++------- 4 files changed, 53 insertions(+), 41 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index 690c6fe03..00f2d4b06 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -2,9 +2,10 @@ import { ElrondHelper, ElrondParams } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, CHAIN_INFO } from "../consts"; -import { BigNumber } from "bignumber.js"; import { MintNft } from ".."; +import { Address, ISigner } from "@elrondnetwork/erdjs/out"; +import { Signer } from "validator/node_modules/ethers"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -26,7 +27,7 @@ type ChainFactory = { sender: any, receiver: any, validators: any[] - ): Promise; + ): Promise; /** * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the {@link inner} method. * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar wallet. @@ -99,33 +100,46 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { fromChain: Chain, toChain: Chain, nft: any, - sender: any, - receiver: any, + sender: ISigner & Signer & string, + receiver: Address & string, validators: any[] - ): Promise => { + ): Promise => { const fromHelper = await inner(fromChain); const estimate = await fromHelper.estimateValidateTransferNft( validators, receiver, - nft as any + nft ); - if (nft.chain === fromChain) { - await fromHelper.transferNativeToForeign( + const transfer = await fromHelper.transferNativeToForeign( sender, toChain, receiver, - nft as any, - estimate as string | (string & BigNumber) | (BigNumber & string) + nft, + estimate ); + return transfer; } else { - fromHelper.transferNftToForeign( - sender, - fromChain, - receiver, - nft as any, - estimate as string | (string & BigNumber) | (BigNumber & string) - ); + if (fromHelper.isWrappedNft(nft)) { + await fromHelper.unfreezeWrappedNft( + sender, + receiver, + nft.id, + estimate + ); + if (fromChain == toChain) { + return; + } else { + const receipt = await fromHelper.transferNftToForeign( + sender, + fromChain, + receiver, + nft, + estimate + ); + return receipt; + } + } } }, mint: async ( diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index df174994e..8ccb710cf 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -192,12 +192,12 @@ type EventIdent = number; */ export type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & - UnfreezeForeign & + TransferForeign & + UnfreezeForeign & TransferNftForeign< ISigner, string, - EasyBalance, + BigNumber, NftInfo, Transaction, EventIdent @@ -205,7 +205,7 @@ export type ElrondHelper = BalanceCheck & UnfreezeForeignNft< ISigner, string, - EasyBalance, + BigNumber, number, Transaction, EventIdent diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 6126c1c79..86ad01963 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -44,12 +44,12 @@ export type BaseTronHelper = BalanceCheck & export type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & + TransferForeign & // TODO: Use TX Fees - TransferNftForeign & + TransferNftForeign & // TODO: Use TX Fees UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & EstimateTxFees & { @@ -204,8 +204,8 @@ export async function tronHelperFactory( sender: string, chain_nonce: number, to: string, - value: string, - txFees: string + value: BigNumber, + txFees: BigNumber ): Promise<[string, string]> { setSigner(sender); @@ -234,12 +234,10 @@ export async function tronHelperFactory( sender: string, to: string, id: BigNumber, - txFees: string + txFees: BigNumber ): Promise<[string, string]> { setSigner(sender); - const res = await minter - .withdraw_nft(to, id) - .send({ callValue: EthBN.from(txFees.toString()) }); + const res = await minter.withdraw_nft(to, id).send({ callValue: txFees }); return await extractTxn(res); }, async transferNftToForeign( @@ -247,7 +245,7 @@ export async function tronHelperFactory( chain_nonce: number, to: string, id: EthNftInfo, - txFees: string + txFees: BigNumber ): Promise<[string, string]> { setSigner(sender); const erc = await provider.contract(ERC721_abi, id.contract); @@ -255,7 +253,7 @@ export async function tronHelperFactory( const txr = await minter .freeze_erc721(id.contract, id.token, chain_nonce, to) - .send({ callValue: EthBN.from(txFees.toString()) }); + .send({ callValue: txFees }); return await extractTxn(txr); }, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index dc58c54df..7a5522344 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -87,11 +87,11 @@ export type BaseWeb3Helper = BalanceCheck & export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & + TransferForeign & TransferNftForeign< Signer, string, - EasyBalance, + BigNumber, EthNftInfo, TransactionReceipt, string @@ -100,7 +100,7 @@ export type Web3Helper = BaseWeb3Helper & UnfreezeForeignNft< Signer, string, - EasyBalance, + BigNumber, BigNumber, TransactionReceipt, string @@ -262,8 +262,8 @@ export async function web3HelperFactory( sender: Signer, chain_nonce: number, to: string, - value: EasyBalance, - txFees: EasyBalance + value: BigNumber, + txFees: BigNumber ): Promise<[TransactionReceipt, string]> { const totalVal = EthBN.from(value.toString()).add( EthBN.from(txFees.toString()) @@ -278,7 +278,7 @@ export async function web3HelperFactory( chain_nonce: number, to: string, id: EthNftInfo, - txFees: EasyBalance + txFees: BigNumber ): Promise<[TransactionReceipt, string]> { const erc = new Contract(id.contract, ERC721_abi, w3); const ta = await erc.connect(sender).approve(minter.address, id.token); @@ -288,7 +288,7 @@ export async function web3HelperFactory( const txr = await minter .connect(sender) .freeze_erc721(id.contract, id.token, chain_nonce, to, { - value: EthBN.from(txFees.toString()), + value: txFees, }); return await extractTxn(txr, "TransferErc721"); @@ -310,10 +310,10 @@ export async function web3HelperFactory( sender: Signer, to: string, id: BigNumber, - txFees: EasyBalance + txFees: BigNumber ): Promise<[TransactionReceipt, string]> { const res = await signedMinter(sender).withdraw_nft(to, id, { - value: EthBN.from(txFees.toString()), + value: txFees, }); return await extractTxn(res, "UnfreezeNft"); From bc57d028cf5304739bce4da37aa766456710f78a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 24 Oct 2021 15:50:40 +0530 Subject: [PATCH 090/956] feat(validators): use constant values --- src/consts.ts | 13 +++++++++++++ src/factory/crossChainHelper.ts | 7 ++----- src/helpers/chain.ts | 11 +++-------- src/helpers/elrond.ts | 15 ++++++--------- src/helpers/tron.ts | 9 ++++----- src/helpers/web3.ts | 9 ++++----- 6 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index a7e728a6b..a16637fb3 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -44,6 +44,7 @@ interface ChainData { blockExplorerUrl: string; chainId?: number; currency: SupportedCurrency; + validators: string[]; } interface ChainInfo { @@ -58,6 +59,9 @@ export const CHAIN_INFO: ChainInfo = { constructor: (p) => elrondHelperFactory(p as ElrondParams), blockExplorerUrl: "https://devnet-explorer.elrond.com/transactions/", currency: SupportedCurrency.EGLD, + validators: [ + "erd1qqqqqqqqqqqqqpgqx8dhqmvpnm4f0ylhazn7elwrx7gvmwnnk4asyp83t6", + ], }, 3: { name: "Heco", @@ -67,6 +71,7 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://testnet.hecoinfo.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.HT, + validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 4: { name: "BSC", @@ -76,6 +81,7 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://testnet.bscscan.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.BNB, + validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 5: { name: "Ropsten", @@ -85,6 +91,7 @@ export const CHAIN_INFO: ChainInfo = { decimals: 1e18, blockExplorerUrl: "https://ropsten.etherscan.io/tx", constructor: (p) => web3HelperFactory(p as Web3Params), + validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 6: { name: "Avalanche", @@ -94,6 +101,7 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://cchain.explorer.avax-test.network/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.AVAX, + validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 7: { name: "Polygon", @@ -103,6 +111,7 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://mumbai.polygonscan.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.MATIC, + validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 8: { name: "Fantom", @@ -112,6 +121,7 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://explorer.testnet.fantom.network/transactions", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.FTM, + validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 9: { name: "Tron", @@ -120,6 +130,7 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://shasta.tronscan.org/#/transaction", constructor: (p) => tronHelperFactory(p as TronParams), currency: SupportedCurrency.TRX, + validators: ["TDESCaeTLQwvXv1GDz9Q1AKDMAmDk4AF6x"], }, 11: { name: "Celo", @@ -129,6 +140,7 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.CELO, + validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 12: { name: "Harmony", @@ -138,5 +150,6 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://explorer.pops.one/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.CELO, + validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, }; diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index 00f2d4b06..256bd9062 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -25,8 +25,7 @@ type ChainFactory = { toChain: Chain, nft: any, sender: any, - receiver: any, - validators: any[] + receiver: any ): Promise; /** * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the {@link inner} method. @@ -101,12 +100,10 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { toChain: Chain, nft: any, sender: ISigner & Signer & string, - receiver: Address & string, - validators: any[] + receiver: Address & string ): Promise => { const fromHelper = await inner(fromChain); const estimate = await fromHelper.estimateValidateTransferNft( - validators, receiver, nft ); diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 7e0db6ffb..6994c5a08 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -165,15 +165,10 @@ export interface DecodeRawNft { decodeUrlFromRaw(data: Uint8Array): Promise; } -export interface EstimateTxFees { - estimateValidateTransferNft( - validators: Address[], - to: Address, - nft: NftId - ): Promise; +export interface EstimateTxFees { + estimateValidateTransferNft(to: string, nft: NftId): Promise; estimateValidateUnfreezeNft( - validators: Address[], - to: Address, + to: string, nft: WrappedNftData ): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 8ccb710cf..99fe198c5 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -218,7 +218,7 @@ export type ElrondHelper = BalanceCheck & DecodeRawNft & { mintableEsdts(address: Address): Promise; } & WrappedNftCheck & - EstimateTxFees; + EstimateTxFees; /** * Create an object implementing cross chain utilities for elrond @@ -236,6 +236,7 @@ export interface ElrondParams { esdt: string; esdt_nft: string; esdt_swap: string; + validators: string[]; } export const elrondHelperFactory: ( @@ -775,15 +776,11 @@ export const elrondHelperFactory: ( return Base64.atob(locked!.uris[0]); }, - async estimateValidateTransferNft( - validators: Address[], - _toAddress: Address, - _nftInfo: NftInfo - ) { - return estimateGas(NFT_TRANSFER_COST, validators.length); // TODO: properly estimate NFT_TRANSFER_COST + async estimateValidateTransferNft(_toAddress: string, _nftInfo: NftInfo) { + return estimateGas(NFT_TRANSFER_COST, elrondParams.validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, - async estimateValidateUnfreezeNft(validators: Address[]) { - return estimateGas(NFT_UNFREEZE_COST, validators.length); // TODO: properly estimate NFT_UNFREEZE_COST + async estimateValidateUnfreezeNft(_to: string, _nft: WrappedNft) { + return estimateGas(NFT_UNFREEZE_COST, elrondParams.validators.length); // TODO: properly estimate NFT_UNFREEZE_COST }, }; }; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 86ad01963..9cbd9de51 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -52,7 +52,7 @@ export type TronHelper = BaseTronHelper & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & - EstimateTxFees & { + EstimateTxFees & { nftUri(info: EthNftInfo): Promise; } & WrappedNftCheck; @@ -97,6 +97,7 @@ export interface TronParams { minter_addr: string; minter_abi: JSON; erc721_addr: string; + validators: string[]; } export async function tronHelperFactory( @@ -278,7 +279,6 @@ export async function tronHelperFactory( return new BigNumber(bal.toString()); }, async estimateValidateTransferNft( - validators: string[], to: string, nft: EthNftInfo ): Promise { @@ -298,10 +298,9 @@ export async function tronHelperFactory( Buffer.from(encoded.serializeBinary()).toString("base64") ); - return await estimateGas(validators, utx); + return await estimateGas(tronParams.validators, utx); }, async estimateValidateUnfreezeNft( - validators: string[], to: string, nft_data: Uint8Array ): Promise { @@ -313,7 +312,7 @@ export async function tronHelperFactory( nft_dat.getContractAddr() ); - return await estimateGas(validators, utx); + return await estimateGas(tronParams.validators, utx); }, }; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 7a5522344..4a0724227 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -107,7 +107,7 @@ export type Web3Helper = BaseWeb3Helper & > & DecodeWrappedNft & DecodeRawNft & - EstimateTxFees & { + EstimateTxFees & { /** * Get the uri of an nft given nft info */ @@ -167,6 +167,7 @@ export interface Web3Params { minter_abi: Interface; erc1155_addr: string; erc721_addr: string; + validators: string[]; } export async function web3HelperFactory( @@ -339,7 +340,6 @@ export async function web3HelperFactory( return await nftUri(nft_info); }, async estimateValidateTransferNft( - validators: string[], to: string, nft: EthNftInfo ): Promise { @@ -359,10 +359,9 @@ export async function web3HelperFactory( Buffer.from(encoded.serializeBinary()).toString("base64") ); - return await estimateGas(validators, utx); + return await estimateGas(params.validators, utx); }, async estimateValidateUnfreezeNft( - validators: string[], to: string, nft_data: Uint8Array ): Promise { @@ -374,7 +373,7 @@ export async function web3HelperFactory( nft_dat.getContractAddr() ); - return await estimateGas(validators, utx); + return await estimateGas(params.validators, utx); }, }; } From 41fcabde199533ffee37337164c6ced32c2447b5 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 24 Oct 2021 19:12:48 +0530 Subject: [PATCH 091/956] feat(merge): adapt new changes --- src/factory/crossChainHelper.ts | 2 +- src/helpers/tron.ts | 19 +- src/helpers/web3.ts | 23 +- yarn.lock | 1135 +++++++++++++++++++------------ 4 files changed, 721 insertions(+), 458 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index 256bd9062..7da6a482c 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -5,7 +5,7 @@ import { Chain, CHAIN_INFO } from "../consts"; import { MintNft } from ".."; import { Address, ISigner } from "@elrondnetwork/erdjs/out"; -import { Signer } from "validator/node_modules/ethers"; +import { Signer } from "ethers"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index bd92101a1..166ed12e2 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -12,6 +12,7 @@ import { UnfreezeForeignNft, WrappedBalanceCheck, WrappedNft, + WrappedNftCheck, } from "./chain"; import axios from "axios"; @@ -29,6 +30,8 @@ import { XPNet__factory, XPNft__factory, } from "xpnet-web3-contracts"; +import { NftMintArgs } from "../factory/crossChainHelper"; +import { NftEthNative, NftPacked } from "validator"; export type MinterRes = { // Minter smart contract @@ -132,7 +135,7 @@ export async function baseTronHelperFactory( UserNftMinter__factory.abi, options.contract ); - await erc.mint(options.uri).send(); + await erc.mint(options.uris[0]).send(); }, async balance(address: string): Promise { const balance = await provider.trx.getBalance(address); @@ -184,17 +187,13 @@ export interface TronParams { middleware_uri: string; erc1155_addr: string; minter_addr: string; - minter_abi: JSON; - erc721_addr: string; validators: string[]; } export async function tronHelperFactory( - provider: TronWeb, - middleware_uri: string, - erc1155_addr: string, - minter_addr: string + tronParams: TronParams ): Promise { + const { provider, erc1155_addr, minter_addr } = tronParams; const station = new TronStation(provider); const base = await baseTronHelperFactory(provider); const erc1155 = await provider.contract(XPNet__factory.abi, erc1155_addr); @@ -299,7 +298,7 @@ export async function tronHelperFactory( return await nftUri(nft_info); }, isWrappedNft(nft) { - return nft.contract === tronParams.erc721_addr; + return nft.contract === tronParams.erc1155_addr; }, decodeWrappedNft(raw_data: string): WrappedNft { const u8D = Base64.toUint8Array(raw_data); @@ -406,7 +405,7 @@ export async function tronHelperFactory( encoded.setData(tokdat.serializeBinary()); return await estimateGas( - validators, + tronParams.validators, "validateTransferNft(uint128,address,string)", [ { type: "uint128", value: randomAction() }, @@ -425,7 +424,7 @@ export async function tronHelperFactory( const nft_dat = NftEthNative.deserializeBinary(nft_data); return await estimateGas( - validators, + tronParams.validators, "validateUnfreezeNft(uint128,address,uint256,address)", [ { type: "uint128", value: randomAction() }, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 5d1c43932..bffc73148 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -136,11 +136,14 @@ export async function baseWeb3HelperFactory( return contract.address; }, - async mintNft(owner: Signer, { contract, uri }: MintArgs): Promise { - const erc721 = UserNftMinter__factory.connect(contract, owner); - - const txm = await erc721.mint(uri); - await txm.wait(); + async mintNft( + owner: Signer, + { contract, uris }: NftMintArgs + ): Promise { + const erc721 = UserNftMinter__factory.connect(contract!, owner); + + const txm = await erc721.mint(uris[0]); + return await txm.wait(); }, }; } @@ -155,19 +158,15 @@ export async function baseWeb3HelperFactory( export interface Web3Params { provider: Provider; minter_addr: string; - minter_abi: Interface; erc1155_addr: string; - erc721_addr: string; validators: string[]; } export async function web3HelperFactory( - provider: Provider, - minter_addr: string, - erc1155_addr: string + params: Web3Params ): Promise { const w3 = params.provider; - + const { minter_addr, provider, erc1155_addr } = params; const minter = Minter__factory.connect(minter_addr, provider); const erc1155 = XPNet__factory.connect(erc1155_addr, provider); @@ -231,7 +230,7 @@ export async function web3HelperFactory( return new BigNumber(bal.toString()); }, isWrappedNft(nft) { - return nft.contract === params.erc721_addr; + return nft.contract === params.erc1155_addr; }, async balanceWrappedBatch( address: string, diff --git a/yarn.lock b/yarn.lock index 19bae7d9a..4be579614 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,34 +37,13 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.15.3", "@babel/runtime@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.14.6": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" - integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446" - integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.15.3": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" - integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== - dependencies: - regenerator-runtime "^0.13.4" - "@celo-tools/celo-ethers-wrapper@^0.0.5": version "0.0.5" resolved "https://registry.yarnpkg.com/@celo-tools/celo-ethers-wrapper/-/celo-ethers-wrapper-0.0.5.tgz#a0bd4553e59c0fc4e97dcec97f719fd27dc4498b" @@ -162,6 +141,21 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" + integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== + dependencies: + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/abstract-provider@5.4.0", "@ethersproject/abstract-provider@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.0.tgz#415331031b0f678388971e1987305244edc04e1d" @@ -188,6 +182,19 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/web" "^5.4.0" +"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.5.0": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" + integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/web" "^5.5.0" + "@ethersproject/abstract-signer@5.4.0", "@ethersproject/abstract-signer@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.0.tgz#cd5f50b93141ee9f9f49feb4075a0b3eafb57d65" @@ -210,6 +217,17 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/properties" "^5.4.0" +"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" + integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/address@5.4.0", "@ethersproject/address@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" @@ -221,6 +239,17 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/rlp" "^5.4.0" +"@ethersproject/address@5.5.0", "@ethersproject/address@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" + integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/base64@5.4.0", "@ethersproject/base64@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" @@ -228,6 +257,13 @@ dependencies: "@ethersproject/bytes" "^5.4.0" +"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" + integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/basex@5.4.0", "@ethersproject/basex@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6" @@ -236,6 +272,14 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/properties" "^5.4.0" +"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" + integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/bignumber@5.4.0", "@ethersproject/bignumber@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.0.tgz#be8dea298c0ec71208ee60f0b245be0761217ad9" @@ -254,6 +298,15 @@ "@ethersproject/logger" "^5.4.0" bn.js "^4.11.9" +"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" + integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + bn.js "^4.11.9" + "@ethersproject/bytes@5.4.0", "@ethersproject/bytes@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" @@ -261,6 +314,13 @@ dependencies: "@ethersproject/logger" "^5.4.0" +"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" + integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== + dependencies: + "@ethersproject/logger" "^5.5.0" + "@ethersproject/constants@5.4.0", "@ethersproject/constants@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" @@ -268,6 +328,13 @@ dependencies: "@ethersproject/bignumber" "^5.4.0" +"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" + integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/contracts@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.0.tgz#e05fe6bd33acc98741e27d553889ec5920078abb" @@ -300,6 +367,22 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/transactions" "^5.4.0" +"@ethersproject/contracts@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" + integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== + dependencies: + "@ethersproject/abi" "^5.5.0" + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/hash@5.4.0", "@ethersproject/hash@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" @@ -314,6 +397,20 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" + integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/hdnode@5.4.0", "@ethersproject/hdnode@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac" @@ -332,6 +429,24 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" +"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" + integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/basex" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/pbkdf2" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/wordlists" "^5.5.0" + "@ethersproject/json-wallets@5.4.0", "@ethersproject/json-wallets@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz#2583341cfe313fc9856642e8ace3080154145e95" @@ -351,6 +466,25 @@ aes-js "3.0.0" scrypt-js "3.0.1" +"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" + integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hdnode" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/pbkdf2" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + "@ethersproject/keccak256@5.4.0", "@ethersproject/keccak256@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318" @@ -359,6 +493,14 @@ "@ethersproject/bytes" "^5.4.0" js-sha3 "0.5.7" +"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" + integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + js-sha3 "0.8.0" + "@ethersproject/logger@5.4.0", "@ethersproject/logger@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.0.tgz#f39adadf62ad610c420bcd156fd41270e91b3ca9" @@ -369,6 +511,11 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== +"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" + integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== + "@ethersproject/networks@5.4.1", "@ethersproject/networks@^5.4.0": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.1.tgz#2ce83b8e42aa85216e5d277a7952d97b6ce8d852" @@ -383,6 +530,13 @@ dependencies: "@ethersproject/logger" "^5.4.0" +"@ethersproject/networks@5.5.0", "@ethersproject/networks@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" + integrity sha512-KWfP3xOnJeF89Uf/FCJdV1a2aDJe5XTN2N52p4fcQ34QhDqQFkgQKZ39VGtiqUgHcLI8DfT0l9azC3KFTunqtA== + dependencies: + "@ethersproject/logger" "^5.5.0" + "@ethersproject/pbkdf2@5.4.0", "@ethersproject/pbkdf2@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz#ed88782a67fda1594c22d60d0ca911a9d669641c" @@ -391,6 +545,14 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/sha2" "^5.4.0" +"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" + integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/properties@5.4.0", "@ethersproject/properties@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.0.tgz#38ba20539b44dcc5d5f80c45ad902017dcdbefe7" @@ -405,6 +567,13 @@ dependencies: "@ethersproject/logger" "^5.4.0" +"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" + integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== + dependencies: + "@ethersproject/logger" "^5.5.0" + "@ethersproject/providers@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.1.tgz#654267b563b833046b9c9647647cfc8267cb93b4" @@ -430,31 +599,6 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/providers@5.4.4": - version "5.4.4" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.4.tgz#6729120317942fc0ab0ecdb35e944ec6bbedb795" - integrity sha512-mQevyXj2X2D3l8p/JGDYFZbODhZjW6On15DnCK4Xc9y6b+P0vqorQC/j46omWSm4cyo7BQ/rgfhXNYmvAfyZoQ== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - bech32 "1.1.4" - ws "7.4.6" - "@ethersproject/providers@5.4.5": version "5.4.5" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" @@ -480,6 +624,31 @@ bech32 "1.1.4" ws "7.4.6" +"@ethersproject/providers@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.0.tgz#bc2876a8fe5e0053ed9828b1f3767ae46e43758b" + integrity sha512-xqMbDnS/FPy+J/9mBLKddzyLLAQFjrVff5g00efqxPzcAwXiR+SiCGVy6eJ5iAIirBOATjx7QLhDNPGV+AEQsw== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/basex" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/web" "^5.5.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/random@5.4.0", "@ethersproject/random@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" @@ -488,6 +657,14 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" +"@ethersproject/random@5.5.0", "@ethersproject/random@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" + integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/rlp@5.4.0", "@ethersproject/rlp@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931" @@ -496,6 +673,14 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" +"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" + integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/sha2@5.4.0", "@ethersproject/sha2@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" @@ -505,6 +690,15 @@ "@ethersproject/logger" "^5.4.0" hash.js "1.1.7" +"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" + integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + hash.js "1.1.7" + "@ethersproject/signing-key@5.4.0", "@ethersproject/signing-key@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec" @@ -517,6 +711,18 @@ elliptic "6.5.4" hash.js "1.1.7" +"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" + integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.7" + "@ethersproject/solidity@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.4.0.tgz#1305e058ea02dc4891df18b33232b11a14ece9ec" @@ -528,6 +734,18 @@ "@ethersproject/sha2" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/solidity@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" + integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/strings@5.4.0", "@ethersproject/strings@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" @@ -537,6 +755,15 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" +"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" + integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/transactions@5.4.0", "@ethersproject/transactions@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" @@ -552,6 +779,21 @@ "@ethersproject/rlp" "^5.4.0" "@ethersproject/signing-key" "^5.4.0" +"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" + integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== + dependencies: + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + "@ethersproject/units@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.4.0.tgz#d57477a4498b14b88b10396062c8cbbaf20c79fe" @@ -561,6 +803,15 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" +"@ethersproject/units@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" + integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/wallet@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" @@ -582,6 +833,27 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" +"@ethersproject/wallet@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" + integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/hdnode" "^5.5.0" + "@ethersproject/json-wallets" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/wordlists" "^5.5.0" + "@ethersproject/web@5.4.0", "@ethersproject/web@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" @@ -593,6 +865,17 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/web@5.5.0", "@ethersproject/web@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" + integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== + dependencies: + "@ethersproject/base64" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/wordlists@5.4.0", "@ethersproject/wordlists@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7" @@ -604,6 +887,17 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" + integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" @@ -821,150 +1115,121 @@ "@octokit/openapi-types" "^8.3.0" "@polkadot/api-contract@^5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-5.2.1.tgz#38ffcc10a2ed37fae4f228d984e5efcadd814ad2" - integrity sha512-P+dJ66JNTBywdnRnFRh29b776AozKFPLtWtxS/6QV1t40dpK5EyYVJOAdDNs/5i4G5DEvUqTnyC/IfWLIZu8iw== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/api" "5.2.1" - "@polkadot/types" "5.2.1" - "@polkadot/util" "^7.0.3" - rxjs "^7.2.0" - -"@polkadot/api-derive@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-5.2.1.tgz#40c2bf1af88a5ad0582209a5208456fb880e91ff" - integrity sha512-5W0hrXh7N2a6bAr6LqpegsLXxJW8tqtZFGkLwydUL4GoWvtbq5zGC7Ojosdyvr1oEY0hNCRMFMb0BIgQYil0kQ== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/api" "5.2.1" - "@polkadot/rpc-core" "5.2.1" - "@polkadot/types" "5.2.1" - "@polkadot/util" "^7.0.3" - "@polkadot/util-crypto" "^7.0.3" - rxjs "^7.2.0" - -"@polkadot/api@5.2.1", "@polkadot/api@^5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-5.2.1.tgz#537422c0f5b9b34d729a0866cffcd9f1a54db21f" - integrity sha512-3YO0J7oEd6ORBEwQttq8gwoPv3F2RfyHxb1/WzjQDeM/3+E8pZ1Xyh4DiQmiDSyR9O9eTvY0lpb0Areu4A/1DQ== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/api-derive" "5.2.1" - "@polkadot/keyring" "^7.0.3" - "@polkadot/rpc-core" "5.2.1" - "@polkadot/rpc-provider" "5.2.1" - "@polkadot/types" "5.2.1" - "@polkadot/types-known" "5.2.1" - "@polkadot/util" "^7.0.3" - "@polkadot/util-crypto" "^7.0.3" + version "5.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-5.9.1.tgz#c683f0d5acc4dd6e5a395665ad7dc288b6d2aac5" + integrity sha512-c6JZWaYezS99D1ZylQNAnnS/H38gDKXZl3FkVOe7nFSXHsS6/b8MVIYTNAckPg10aQgwzvbkQuiJPze0EAZGmg== + dependencies: + "@babel/runtime" "^7.15.4" + "@polkadot/api" "5.9.1" + "@polkadot/types" "5.9.1" + "@polkadot/util" "^7.3.1" + rxjs "^7.3.0" + +"@polkadot/api-derive@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-5.9.1.tgz#5937069920ded1439e6672b9d6be1072421b256b" + integrity sha512-iMrVKnYIS3UQciDlFqww6AFyXgG+iN8UqWu8QbTuZecri3qrSmM3Nn8Jkvju3meZIacwWIMSmBcnj8+zef3rkQ== + dependencies: + "@babel/runtime" "^7.15.4" + "@polkadot/api" "5.9.1" + "@polkadot/rpc-core" "5.9.1" + "@polkadot/types" "5.9.1" + "@polkadot/util" "^7.3.1" + "@polkadot/util-crypto" "^7.3.1" + rxjs "^7.3.0" + +"@polkadot/api@5.9.1", "@polkadot/api@^5.2.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-5.9.1.tgz#ce314cc34f0a47098d039db7b9036bb491c2898c" + integrity sha512-POpIXn/Ao+NLB0uMldXdXU44dVbRr6+6Ax77Z0R285M8Z2EiF5jl2K3SPvlowLo4SntxiCSaHQxCekYhUcJKlw== + dependencies: + "@babel/runtime" "^7.15.4" + "@polkadot/api-derive" "5.9.1" + "@polkadot/keyring" "^7.3.1" + "@polkadot/rpc-core" "5.9.1" + "@polkadot/rpc-provider" "5.9.1" + "@polkadot/types" "5.9.1" + "@polkadot/types-known" "5.9.1" + "@polkadot/util" "^7.3.1" + "@polkadot/util-crypto" "^7.3.1" eventemitter3 "^4.0.7" - rxjs "^7.2.0" - -"@polkadot/keyring@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-7.0.3.tgz#845539d1c099bf2c01e030cd1f8817aacce2bb7d" - integrity sha512-aHYQJ+LDgnsa2C7uGGzgR8lv30VZDg+bGa11CSs94jeCsm8Ns+dU+1hGEXSJySnDQ3TsJWmg66ijeTwmiJcE9g== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/util" "7.0.3" - "@polkadot/util-crypto" "7.0.3" - -"@polkadot/networks@7.0.3", "@polkadot/networks@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-7.0.3.tgz#6d1d8bc284bc2158919feabc155ff0075e9af4d9" - integrity sha512-DH1lbj1I0ZFxdMtY95l9MY9xybUriTa1aQ22ER+/zj3ov4v4C9VAs+i0ssi+aKwrJ+yReyQBzMLOoSba1+pykg== - dependencies: - "@babel/runtime" "^7.14.8" - -"@polkadot/networks@7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-7.1.1.tgz#ef1e190961dffa5e9f33ec7a5929f1d82bdb3761" - integrity sha512-bplFFzBfqWl5Y9ekFDqVEORQVAyjiU40Tq2hCQLoQq2sFXxUZaMeQLvCOty5FDN9cH2h8wIXxok+JpdDMft08g== - dependencies: - "@babel/runtime" "^7.14.8" - -"@polkadot/rpc-core@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-5.2.1.tgz#cdd20c25618739c5a60e613fad3820b862c90c73" - integrity sha512-/MxGC284txgK9oHfNuA0200VfJNGTtiOpFNtv7dfWRm9GjLoLyftdPkKGzqcFcCHl0K7/6Nx7KYnoEROtaRE2A== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/rpc-provider" "5.2.1" - "@polkadot/types" "5.2.1" - "@polkadot/util" "^7.0.3" - rxjs "^7.2.0" - -"@polkadot/rpc-provider@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-5.2.1.tgz#5134178462f01f12f36a63e30d35d8cfd003fd15" - integrity sha512-yoW1cIHcRFfQxYJGz0ihlGEEWtUJFpRlcOZLYX7eN14+vw0QqyknVCbEfVOMcZtzHnBSKBvrst4FScY7XmQCWA== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/types" "5.2.1" - "@polkadot/util" "^7.0.3" - "@polkadot/util-crypto" "^7.0.3" - "@polkadot/x-fetch" "^7.0.3" - "@polkadot/x-global" "^7.0.3" - "@polkadot/x-ws" "^7.0.3" + rxjs "^7.3.0" + +"@polkadot/keyring@^7.0.3", "@polkadot/keyring@^7.3.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-7.6.1.tgz#a138e417cbbf85b3f0f66af66f5cd40735ba24a1" + integrity sha512-lpbTHAQqae++cvaNfuCjdz2xbNrk0ZSGCM8w08Br6NIz8NyrwR/qm1PfV75leoLq/Qx58+aj8v2qANEBOVz4vQ== + dependencies: + "@babel/runtime" "^7.15.4" + "@polkadot/util" "7.6.1" + "@polkadot/util-crypto" "7.6.1" + +"@polkadot/networks@7.6.1", "@polkadot/networks@^7.3.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-7.6.1.tgz#d7ca346a3c15b29c9286ccbc67b1438bf9c8130e" + integrity sha512-76RdEVy+G14P13oxSe3+VDwFdVYRNVAy7xi9ESJBRZFnQC/TIL2rOeg7Gq5+HP/mkgzG4gL5X30VdE+aKzokpA== + dependencies: + "@babel/runtime" "^7.15.4" + +"@polkadot/rpc-core@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-5.9.1.tgz#68e2a2ea18c15aa15743e7487a407fdd65d1d900" + integrity sha512-5fXiICAcjp7ow81DnIl2Dq/xuCtJUqyjJkxe9jNHJWBluBxOouqYDb8bYPPGSdckiaVyYe0l8lA9fBUFMdEt6w== + dependencies: + "@babel/runtime" "^7.15.4" + "@polkadot/rpc-provider" "5.9.1" + "@polkadot/types" "5.9.1" + "@polkadot/util" "^7.3.1" + rxjs "^7.3.0" + +"@polkadot/rpc-provider@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-5.9.1.tgz#8e67769c05ba71ecf4f5bc0c5a60eb9afc699167" + integrity sha512-9zamxfnsY7iCswXIK22W0Ji1XHLprm97js3WLw3lP2hr/uSim4Cv4y07zY/z4dDQyF0gJtjKwR27Wo9CZqdr6A== + dependencies: + "@babel/runtime" "^7.15.4" + "@polkadot/types" "5.9.1" + "@polkadot/util" "^7.3.1" + "@polkadot/util-crypto" "^7.3.1" + "@polkadot/x-fetch" "^7.3.1" + "@polkadot/x-global" "^7.3.1" + "@polkadot/x-ws" "^7.3.1" eventemitter3 "^4.0.7" -"@polkadot/types-known@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-5.2.1.tgz#d2b8ffad83b19255d0fa76222c518b0816f90673" - integrity sha512-pFeEiVGs6J+E2tHXmYB/NRIzrP56kH/ymx+jw5JAfOkc0tPo5RXZwnlO31XK0bHm4iUXoIQ/Eb8j2OW4SAhz3Q== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/networks" "^7.0.3" - "@polkadot/types" "5.2.1" - "@polkadot/util" "^7.0.3" - -"@polkadot/types@5.2.1", "@polkadot/types@^5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-5.2.1.tgz#b772723d1f660c17c629520d4f7b4b8f95971774" - integrity sha512-X1dEXkTWTXLTQsMp1QY8ur58cm2/IA4RZ1ppyPkm170h26wOeCR6pstYu2cvj6Jp567c+Yq0P5qJa93VGfqxtw== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/util" "^7.0.3" - "@polkadot/util-crypto" "^7.0.3" - rxjs "^7.2.0" - -"@polkadot/util-crypto@7.0.3", "@polkadot/util-crypto@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-7.0.3.tgz#2a69eec86a067f6f2fa36cfda9796eb91fc823e3" - integrity sha512-z386lw+0uBNGuBOQ7Ay0jF9f5WdKzbxYwnJarnsRDIxqzoAm51U+V9dqgyAbxKh95+pcxLnKs/1bTI2Uy564Fg== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/networks" "7.0.3" - "@polkadot/util" "7.0.3" - "@polkadot/wasm-crypto" "^4.1.2" - "@polkadot/x-randomvalues" "7.0.3" - base-x "^3.0.8" - base64-js "^1.5.1" - blakejs "^1.1.1" - bn.js "^4.11.9" - create-hash "^1.2.0" - elliptic "^6.5.4" - hash.js "^1.1.7" - js-sha3 "^0.8.0" - scryptsy "^2.1.0" - tweetnacl "^1.0.3" - xxhashjs "^0.2.2" - -"@polkadot/util-crypto@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-7.1.1.tgz#48895489686ef922afadc49c08f5d9678e3120a1" - integrity sha512-EhbER6ftk+Ft+hedlu5lfRN9RoCpe97w9dS/jFfiqJrXUvpNtxz3RZUIoNW2Cxav68znvTn/Ak/Vb1/RSF7YFg== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/networks" "7.1.1" - "@polkadot/util" "7.1.1" - "@polkadot/wasm-crypto" "^4.1.2" - "@polkadot/x-randomvalues" "7.1.1" - base-x "^3.0.8" +"@polkadot/types-known@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-5.9.1.tgz#e52fc7b803bc7cb3f41028f88963deb4ccee40af" + integrity sha512-7lpLuIVGaKziQRzPMnTxyjlYy3spL6WqUg3CcEzmJUKQeUonHglOliQh8JSSz1bcP+YuNHGXK1cKsTjHb+GYxA== + dependencies: + "@babel/runtime" "^7.15.4" + "@polkadot/networks" "^7.3.1" + "@polkadot/types" "5.9.1" + "@polkadot/util" "^7.3.1" + +"@polkadot/types@5.9.1", "@polkadot/types@^5.2.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-5.9.1.tgz#74cf4695795f2aa365ff85d3873e22c430100bc9" + integrity sha512-30vcSlNBxPyWYZaxKDr/BoMhfLCRKB265XxpnnNJmbdZZsL+N4Zp2mJR9/UbA6ypmJBkUjD7b1s9AYsLwUs+8w== + dependencies: + "@babel/runtime" "^7.15.4" + "@polkadot/util" "^7.3.1" + "@polkadot/util-crypto" "^7.3.1" + rxjs "^7.3.0" + +"@polkadot/util-crypto@7.6.1", "@polkadot/util-crypto@^7.1.1", "@polkadot/util-crypto@^7.3.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-7.6.1.tgz#3e40270e9dce7885d92d0992aef9761feb57f2e2" + integrity sha512-5lLEfexkYOc73jitwC4K/Ll3JNA8Hdo2aU3GSOkDah8bBpm02djD7ypwfmuWRJw0UDyTgY67g0SXn4frPcQiag== + dependencies: + "@babel/runtime" "^7.15.4" + "@polkadot/networks" "7.6.1" + "@polkadot/util" "7.6.1" + "@polkadot/wasm-crypto" "^4.2.1" + "@polkadot/x-randomvalues" "7.6.1" + base-x "^3.0.9" base64-js "^1.5.1" blakejs "^1.1.1" - bn.js "^4.11.9" + bn.js "^4.12.0" create-hash "^1.2.0" ed2curve "^0.3.0" elliptic "^6.5.4" @@ -974,150 +1239,91 @@ tweetnacl "^1.0.3" xxhashjs "^0.2.2" -"@polkadot/util@7.0.3", "@polkadot/util@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-7.0.3.tgz#89887a18c0e39b2b1e22554974e9e02649db6018" - integrity sha512-2wrF+zCOg/3YTOF8mSMpaFEcRshiCKqhNK54A+EJ/qBS+olVw7Ghzjapxxt/pCmPzhJXXra9InT0QovZaqaW4g== +"@polkadot/util@7.6.1", "@polkadot/util@^7.1.1", "@polkadot/util@^7.3.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-7.6.1.tgz#e6988124728fdf053929022827216241dd50a6fa" + integrity sha512-96UgzMOxwwsndGHN4aoyPYVRXpHcVpYb4zngFH2O9ma0YxrG2HhhqqoJ5pS0OUlhvcQkVz6T6t+heGFnTkvQxw== dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/x-textdecoder" "7.0.3" - "@polkadot/x-textencoder" "7.0.3" + "@babel/runtime" "^7.15.4" + "@polkadot/x-textdecoder" "7.6.1" + "@polkadot/x-textencoder" "7.6.1" "@types/bn.js" "^4.11.6" - bn.js "^4.11.9" - camelcase "^5.3.1" + bn.js "^4.12.0" + camelcase "^6.2.0" ip-regex "^4.3.0" -"@polkadot/util@7.1.1", "@polkadot/util@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-7.1.1.tgz#1df133296ecd194a566677b68e51f93118f11c1e" - integrity sha512-FJvWGtU/XlXpORUez4TJuqTZPvW9uGW1QNAXVcaXgGrejijMDCc/uvXscOOm2QIBtSBEx092+MzeReQPoEAUbg== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/x-textdecoder" "7.1.1" - "@polkadot/x-textencoder" "7.1.1" - "@types/bn.js" "^4.11.6" - bn.js "^4.11.9" - camelcase "^5.3.1" - ip-regex "^4.3.0" - -"@polkadot/wasm-crypto-asmjs@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-4.1.2.tgz#094b3eeeb5fd39a93db177583b48454511874cfc" - integrity sha512-3Q+vVUxDAC2tXgKMM3lKzx2JW+tarDpTjkvdxIKATyi8Ek69KkUqvMyJD0VL/iFZOFZED0YDX9UU4XOJ/astlg== - dependencies: - "@babel/runtime" "^7.14.6" - -"@polkadot/wasm-crypto-wasm@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-4.1.2.tgz#773c78c1d65886671d3ba1d66c31afd86c93d02f" - integrity sha512-/l4IBEdQ41szHdHkuF//z1qr+XmWuLHlpBA7s9Eb221m1Fir6AKoCHoh1hp1r3v0ecZYLKvak1B225w6JAU3Fg== - dependencies: - "@babel/runtime" "^7.14.6" - -"@polkadot/wasm-crypto@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-4.1.2.tgz#dead71ae5d2f7722d23aed5be2112e1732d315e9" - integrity sha512-2EKdOjIrD2xHP2rC+0G/3Qo6926nL/18vCFkd34lBd9zP9YNF2GDEtDY+zAeDIRFKe1sQHTpsKgNdYSWoV2eBg== - dependencies: - "@babel/runtime" "^7.14.6" - "@polkadot/wasm-crypto-asmjs" "^4.1.2" - "@polkadot/wasm-crypto-wasm" "^4.1.2" - -"@polkadot/x-fetch@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-7.0.3.tgz#c07b7837de70ffcc21d85f8d7e70eced6b6ccb41" - integrity sha512-zITf1RLq0+yxXZ5N9ORsKCx1zC+cBmaRhM97xVG2MVDS0+hL5veqVrWdw7aT8RPaFDxTEB4Mk2V618nPv1CFGw== - dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/x-global" "7.0.3" - "@types/node-fetch" "^2.5.12" - node-fetch "^2.6.1" - -"@polkadot/x-global@7.0.3", "@polkadot/x-global@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-7.0.3.tgz#755fa6e740f00d8e34133a3cd11fe5a34d234631" - integrity sha512-hot5xzhw9nexv9G/mwKoyf+my4I0lBc+DbeEWnjq3cy3e/NjwpTudhHvKQtVUz/RV2RsYnEyulXkJappjIO5MQ== - dependencies: - "@babel/runtime" "^7.14.8" - -"@polkadot/x-global@7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-7.1.1.tgz#ca7ebec3b336120af999fc55a8939be4a910274f" - integrity sha512-Sc5UPhHPMir0pu3yuMVOQ4dUC55fNSkzSg94jZXZtmsYVAqdi6zmd+TkwNxwW+I/Yz9Sw/UTA+jtalcwknR/+A== - dependencies: - "@babel/runtime" "^7.14.8" - -"@polkadot/x-global@7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-7.2.1.tgz#32207936b7f939a21da608f82ca20535f9148cda" - integrity sha512-VNW+76TxEPqvBy3XMNV05mJRPRGZcYh3k5HjW4+asYeFunMahH4zjmCulhtD9SRI/TqdfHTiqDOqKNKe2xJcVg== +"@polkadot/wasm-crypto-asmjs@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-4.2.1.tgz#6b7eae1c011709f8042dfd30872a5fc5e9e021c0" + integrity sha512-ON9EBpTNDCI3QRUmuQJIegYoAcwvxDaNNA7uwKTaEEStu8LjCIbQxbt4WbOBYWI0PoUpl4iIluXdT3XZ3V3jXA== dependencies: "@babel/runtime" "^7.15.3" -"@polkadot/x-randomvalues@7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-7.0.3.tgz#3559efabe8c2cac442b040e18c636f2dcec9064f" - integrity sha512-ETHr/e2iGEzaSkE8/GkUJfW0NBRhQj0PdOU+PfObkYz8iqJGtncmUOnu/LaZ0IJxLrhTASMcJv19KliJ0+kmMQ== +"@polkadot/wasm-crypto-wasm@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-4.2.1.tgz#2a86f9b405e7195c3f523798c6ce4afffd19737e" + integrity sha512-Rs2CKiR4D+2hKzmKBfPNYxcd2E8NfLWia0av4fgicjT9YsWIWOGQUi9AtSOfazPOR9FrjxKJy+chQxAkcfKMnQ== dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/x-global" "7.0.3" + "@babel/runtime" "^7.15.3" -"@polkadot/x-randomvalues@7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-7.1.1.tgz#d4b293a396291609b34fcb35aa40207dd75c9b23" - integrity sha512-59QXByEmhJ79HWr62qb+DUhHhPD88gQ0enVOGr0+uxWSt7eD0hykBAv+qS/J37ijTsKPZYkv+pSSjf0GAb/VYA== +"@polkadot/wasm-crypto@^4.1.2", "@polkadot/wasm-crypto@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-4.2.1.tgz#4d09402f5ac71a90962fb58cbe4b1707772a4fb6" + integrity sha512-C/A/QnemOilRTLnM0LfhPY2N/x3ZFd1ihm9sXYyuh98CxtekSVYI9h4IJ5Jrgz5imSUHgvt9oJLqJ5GbWQV/Zg== dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/x-global" "7.1.1" + "@babel/runtime" "^7.15.3" + "@polkadot/wasm-crypto-asmjs" "^4.2.1" + "@polkadot/wasm-crypto-wasm" "^4.2.1" -"@polkadot/x-randomvalues@^7.1.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-7.2.1.tgz#708b7a54bd90ec091ab54e125d8b52e0853ea86b" - integrity sha512-B4sjwX+gFweZ1YM1Cg/S9hAEx9E/gV/vqLW89PJB6+hyvsPS9eiVvfVpaOsohc7AgmuINm/bSQbNZvtC+BbbKw== +"@polkadot/x-fetch@^7.3.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-7.6.1.tgz#fda1a89bbb584217f96c2d3c3a3ce0f10a454436" + integrity sha512-CdjCg7BGhKfKNntUiK9vFOoum44o86TInPpqNumLGWAZmqI+kU0DCUDtqcw7uFOdZL1j/3GHdXigJ6LL1TnNcg== dependencies: - "@babel/runtime" "^7.15.3" - "@polkadot/x-global" "7.2.1" + "@babel/runtime" "^7.15.4" + "@polkadot/x-global" "7.6.1" + "@types/node-fetch" "^2.5.12" + node-fetch "^2.6.5" -"@polkadot/x-textdecoder@7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-7.0.3.tgz#eccf602afb85bb94406f99284a62d58a5c7142c8" - integrity sha512-YIE5UYcoeRjGLkWMnqLhboPLEewvqsIB0lR4rz95uTdXOjbQPIdYln5P3coUGlMWobvd/8iVTb2FsXxu6opSGg== +"@polkadot/x-global@7.6.1", "@polkadot/x-global@^7.3.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-7.6.1.tgz#f43a61d40bfaf2f43f9a4ef39e01a24546768394" + integrity sha512-jKPNFHiC0yIc6TfqZtopaqsW3pDun1uh9lp0kcDkfOYozwwN1NVXWLClDBa2C5UiKU/jxA3biYiNZUyZpbV13g== dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/x-global" "7.0.3" + "@babel/runtime" "^7.15.4" -"@polkadot/x-textdecoder@7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-7.1.1.tgz#a7e0a0259f49bdb405d665355bbbc85f79e06790" - integrity sha512-/z1tOckFl4QL6wtuwyG7YSC5YZvlGP0AU5swj9u/FHij6JFYrCsyU7oQqUWft7FjlwCOdL9bEEgU0YOYn3VVVg== +"@polkadot/x-randomvalues@7.6.1", "@polkadot/x-randomvalues@^7.1.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-7.6.1.tgz#0cd143cf976e36f5c9fcf53ba41fd5fffca95c44" + integrity sha512-hfSMBeMZTrnuejv/oXp3tMZARTOGyQZ3G0GW44dV2fR2L1+tlLj9VuXgVGgupNBq7AC6eSfE3XhJwCGyH5FhmQ== dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/x-global" "7.1.1" + "@babel/runtime" "^7.15.4" + "@polkadot/x-global" "7.6.1" -"@polkadot/x-textencoder@7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-7.0.3.tgz#92125d2f58f6d6dc7337856e9f2a6edca0e38655" - integrity sha512-3BmcOnjdti85s2Y7jDzfM5VP+a3yPRYlX/9o3FkVoGwRHP28mx9Vch6Wu9Yimmd3OZvWd3/yIxTzua1GWC1f7w== +"@polkadot/x-textdecoder@7.6.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-7.6.1.tgz#7e80b512f1ddfd01f243dbbe8afc9dab7d0c6c85" + integrity sha512-sJtQMMw+jO3CwpOf0t1hrVl3xMw1BOLs/Xjd0v/yhiTAJ1rr6dqvhcnOHkU3a7udqo7G9dXDrnGi1q3efifXPw== dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/x-global" "7.0.3" + "@babel/runtime" "^7.15.4" + "@polkadot/x-global" "7.6.1" -"@polkadot/x-textencoder@7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-7.1.1.tgz#700938abed80a2c1ff277dcd7b696aca22ec7b50" - integrity sha512-BThyyjonSseOlNe2z+glLwz+JX3/+8E/0pSyzfNUyESBOPPj/Vmraz93AQUMCiIRSClLOa8DMXxntns3cN83LA== +"@polkadot/x-textencoder@7.6.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-7.6.1.tgz#2a2fb4baa13889fbc53b86ce9003de748f0df2aa" + integrity sha512-iqOGwXJIzc8rWYLPTYcO09LwA2q4fqwJhLsLCd+p13Z0yDSUvwgq785/2WEQfhSFbMd8HM6udedqrQTpnpIujg== dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/x-global" "7.1.1" + "@babel/runtime" "^7.15.4" + "@polkadot/x-global" "7.6.1" -"@polkadot/x-ws@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-7.0.3.tgz#99ef769739a555e7eeb2ab6de0aba43d9888e545" - integrity sha512-GFPy07ofxSOZODj9eYI3RD46R3eX6CXmRDpxxh50Ors/j8TCKJ8OSKmCCxdT4Y22y3URtxJTs1dbpzUSZZS8Zw== +"@polkadot/x-ws@^7.3.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-7.6.1.tgz#60c86cfb43935b38a6512f3e7bab362ffe6bec1f" + integrity sha512-nP8vHlL17SIuVinphuVbj2o3mfRWUTJqlhAYlA5RjO/sZ9TwYMvGTvL/1bOAfWdp/l451WLEWJtzSipzrVGBsg== dependencies: - "@babel/runtime" "^7.14.8" - "@polkadot/x-global" "7.0.3" - "@types/websocket" "^1.0.3" + "@babel/runtime" "^7.15.4" + "@polkadot/x-global" "7.6.1" + "@types/websocket" "^1.0.4" websocket "^1.0.34" "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": @@ -1178,6 +1384,11 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== +"@socket.io/component-emitter@~3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz#8863915676f837d9dad7b76f50cb500c1e9422e9" + integrity sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q== + "@szmarczak/http-timer@^4.0.0": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1207,12 +1418,12 @@ resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== -"@types/cookie@^0.4.0": +"@types/cookie@^0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== -"@types/cors@^2.8.10": +"@types/cors@^2.8.12": version "2.8.12" resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== @@ -1263,9 +1474,9 @@ integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== "@types/node@>=10.0.0": - version "16.7.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.1.tgz#c6b9198178da504dfca1fd0be9b2e1002f1586f0" - integrity sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A== + version "16.11.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.4.tgz#90771124822d6663814f7c1c9b45a6654d8fd964" + integrity sha512-TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ== "@types/node@^13.7.0": version "13.13.52" @@ -1279,10 +1490,10 @@ dependencies: "@types/node" "*" -"@types/websocket@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.3.tgz#49e09f939afd0ccdee4f7108d4712ec9feb0f153" - integrity sha512-ZdoTSwmDsKR7l1I8fpfQtmTI/hUwlOvE3q0iyJsp4tXU0MkdrYowimDzwxjhQvxU4qjhHLd3a6ig0OXRbLgIdw== +"@types/websocket@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8" + integrity sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA== dependencies: "@types/node" "*" @@ -1741,10 +1952,10 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" - integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== +base-x@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== dependencies: safe-buffer "^5.0.1" @@ -1753,6 +1964,11 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= +base64-arraybuffer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz#87bd13525626db4a9838e00a508c2b73efcf348c" + integrity sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA== + base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -1857,7 +2073,7 @@ bn.js@4.11.8: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -bn.js@^4.11.9: +bn.js@^4.11.9, bn.js@^4.12.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -1906,11 +2122,11 @@ buffers@~0.1.1: integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= bufferutil@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.3.tgz#66724b756bed23cd7c28c4d306d7994f9943cc6b" - integrity sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw== + version "4.0.5" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028" + integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== dependencies: - node-gyp-build "^4.2.0" + node-gyp-build "^4.3.0" cacheable-lookup@^2.0.0: version "2.0.1" @@ -1946,11 +2162,16 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + chainsaw@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" @@ -2158,10 +2379,17 @@ crypt@0.0.2: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" + uid "88beed89f97b1ddd957d4ec78bb5bbfbf350ce73" resolved "git+https://github.com/xp-network/exchange-rate#88beed89f97b1ddd957d4ec78bb5bbfbf350ce73" dependencies: axios "^0.21.1" +"crypto-exchange-rate@https://github.com/xp-network/exchange-rate#master-dist": + version "1.0.0" + resolved "https://github.com/xp-network/exchange-rate#88beed89f97b1ddd957d4ec78bb5bbfbf350ce73" + dependencies: + axios "^0.21.1" + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -2279,6 +2507,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" @@ -2352,41 +2585,50 @@ engine.io-client@~5.1.2: ws "~7.4.2" yeast "0.1.2" -engine.io-client@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-5.2.0.tgz#ae38c79a4af16258c0300e6819c0ea8ecc1597cd" - integrity sha512-BcIBXGBkT7wKecwnfrSV79G2X5lSUSgeAGgoo60plXf8UsQEvCQww/KMwXSMhVjb98fFYNq20CC5eo8IOAPqsg== +engine.io-client@~6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.0.2.tgz#ccfc059051e65ca63845e65929184757754cc34e" + integrity sha512-cAep9lhZV6Q8jMXx3TNSU5cydMzMed8/O7Tz5uzyqZvpNPtQ3WQXrLYGADxlsuaFmOLN7wZLmT7ImiFhUOku8g== dependencies: - base64-arraybuffer "0.1.4" - component-emitter "~1.3.0" + "@socket.io/component-emitter" "~3.0.0" debug "~4.3.1" - engine.io-parser "~4.0.1" + engine.io-parser "~5.0.0" has-cors "1.1.0" parseqs "0.0.6" parseuri "0.0.6" - ws "~7.4.2" + ws "~8.2.3" xmlhttprequest-ssl "~2.0.0" yeast "0.1.2" -engine.io-parser@~4.0.0, engine.io-parser@~4.0.1: +engine.io-parser@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg== dependencies: base64-arraybuffer "0.1.4" -engine.io@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-5.1.1.tgz#a1f97e51ddf10cbd4db8b5ff4b165aad3760cdd3" - integrity sha512-aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w== +engine.io-parser@~5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.1.tgz#6695fc0f1e6d76ad4a48300ff80db5f6b3654939" + integrity sha512-j4p3WwJrG2k92VISM0op7wiq60vO92MlF3CRGxhKHy9ywG1/Dkc72g0dXeDQ+//hrcDn8gqQzoEkdO9FN0d9AA== + dependencies: + base64-arraybuffer "~1.0.1" + +engine.io@~6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.0.0.tgz#2b993fcd73e6b3a6abb52b40b803651cd5747cf0" + integrity sha512-Ui7yl3JajEIaACg8MOUwWvuuwU7jepZqX3BKs1ho7NQRuP4LhN4XIykXhp8bEy+x/DhA0LBZZXYSCkZDqrwMMg== dependencies: + "@types/cookie" "^0.4.1" + "@types/cors" "^2.8.12" + "@types/node" ">=10.0.0" accepts "~1.3.4" base64id "2.0.0" cookie "~0.4.1" cors "~2.8.5" debug "~4.3.1" - engine.io-parser "~4.0.0" - ws "~7.4.2" + engine.io-parser "~5.0.0" + ws "~8.2.3" enquirer@^2.3.5: version "2.3.6" @@ -2649,40 +2891,40 @@ ethers@^5.4.1: "@ethersproject/wordlists" "5.4.0" ethers@^5.4.2: - version "5.4.5" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.5.tgz#cec133b9f5b514dc55e2561ee7aa7218c33affd7" - integrity sha512-PPZ6flOAj230sXEWf/r/It6ZZ5c7EOVWx+PU87Glkbg79OtT7pLE1WgL4MRdwx6iF7HzSOvUUI+8cAmcdzo12w== - dependencies: - "@ethersproject/abi" "5.4.0" - "@ethersproject/abstract-provider" "5.4.1" - "@ethersproject/abstract-signer" "5.4.1" - "@ethersproject/address" "5.4.0" - "@ethersproject/base64" "5.4.0" - "@ethersproject/basex" "5.4.0" - "@ethersproject/bignumber" "5.4.1" - "@ethersproject/bytes" "5.4.0" - "@ethersproject/constants" "5.4.0" - "@ethersproject/contracts" "5.4.1" - "@ethersproject/hash" "5.4.0" - "@ethersproject/hdnode" "5.4.0" - "@ethersproject/json-wallets" "5.4.0" - "@ethersproject/keccak256" "5.4.0" - "@ethersproject/logger" "5.4.0" - "@ethersproject/networks" "5.4.2" - "@ethersproject/pbkdf2" "5.4.0" - "@ethersproject/properties" "5.4.0" - "@ethersproject/providers" "5.4.4" - "@ethersproject/random" "5.4.0" - "@ethersproject/rlp" "5.4.0" - "@ethersproject/sha2" "5.4.0" - "@ethersproject/signing-key" "5.4.0" - "@ethersproject/solidity" "5.4.0" - "@ethersproject/strings" "5.4.0" - "@ethersproject/transactions" "5.4.0" - "@ethersproject/units" "5.4.0" - "@ethersproject/wallet" "5.4.0" - "@ethersproject/web" "5.4.0" - "@ethersproject/wordlists" "5.4.0" + version "5.5.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.1.tgz#d3259a95a42557844aa543906c537106c0406fbf" + integrity sha512-RodEvUFZI+EmFcE6bwkuJqpCYHazdzeR1nMzg+YWQSmQEsNtfl1KHGfp/FWZYl48bI/g7cgBeP2IlPthjiVngw== + dependencies: + "@ethersproject/abi" "5.5.0" + "@ethersproject/abstract-provider" "5.5.1" + "@ethersproject/abstract-signer" "5.5.0" + "@ethersproject/address" "5.5.0" + "@ethersproject/base64" "5.5.0" + "@ethersproject/basex" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/constants" "5.5.0" + "@ethersproject/contracts" "5.5.0" + "@ethersproject/hash" "5.5.0" + "@ethersproject/hdnode" "5.5.0" + "@ethersproject/json-wallets" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/logger" "5.5.0" + "@ethersproject/networks" "5.5.0" + "@ethersproject/pbkdf2" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/providers" "5.5.0" + "@ethersproject/random" "5.5.0" + "@ethersproject/rlp" "5.5.0" + "@ethersproject/sha2" "5.5.0" + "@ethersproject/signing-key" "5.5.0" + "@ethersproject/solidity" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@ethersproject/transactions" "5.5.0" + "@ethersproject/units" "5.5.0" + "@ethersproject/wallet" "5.5.0" + "@ethersproject/web" "5.5.0" + "@ethersproject/wordlists" "5.5.0" ethers@^5.4.4: version "5.4.6" @@ -2759,11 +3001,11 @@ expand-template@^2.0.3: integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + version "1.6.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" + integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== dependencies: - type "^2.0.0" + type "^2.5.0" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -3046,9 +3288,9 @@ globby@^11.0.3: slash "^3.0.0" google-protobuf@^3.17.3: - version "3.17.3" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.17.3.tgz#f87595073545a77946c8f0b67c302c5f7646d700" - integrity sha512-OVPzcSWIAJ+d5yiHyeaLrdufQtrvaBrF4JQg+z8ynTkbO3uFcujqXszTumqg1cGsAsjkWnI+M5B1xZ19yR4Wyg== + version "3.19.0" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.19.0.tgz#97f474323c92f19fd6737af1bb792e396991e0b8" + integrity sha512-qXGAiv3OOlaJXJNeKOBKxbBAwjsxzhx+12ZdKOkZTsqsRkyiQRmr/nBkAkqnuQ8cmA9X5NVXvObQTpHVnXE2DQ== got@^10.5.7: version "10.7.0" @@ -3591,29 +3833,17 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.48.0: - version "1.48.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" - integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== - -mime-db@1.49.0: - version "1.49.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" - integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== - -mime-types@^2.1.12: - version "2.1.31" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" - integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== - dependencies: - mime-db "1.48.0" +mime-db@1.50.0: + version "1.50.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" + integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== -mime-types@~2.1.24: - version "2.1.32" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" - integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== +mime-types@^2.1.12, mime-types@~2.1.24: + version "2.1.33" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" + integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== dependencies: - mime-db "1.49.0" + mime-db "1.50.0" mimic-response@^1.0.0: version "1.0.1" @@ -3737,11 +3967,23 @@ node-fetch@^2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== +node-fetch@^2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" + integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== + dependencies: + whatwg-url "^5.0.0" + node-gyp-build@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== +node-gyp-build@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" + integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== + node-hid@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.1.tgz#f83c8aa0bb4e6758b5f7383542477da93f67359d" @@ -4248,10 +4490,10 @@ rxjs@6: dependencies: tslib "^1.9.0" -rxjs@^7.2.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.3.0.tgz#39fe4f3461dc1e50be1475b2b85a0a88c1e938c6" - integrity sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw== +rxjs@^7.3.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" + integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== dependencies: tslib "~2.1.0" @@ -4403,10 +4645,10 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -socket.io-adapter@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.3.1.tgz#a442720cb09a4823cfb81287dda1f9b52d4ccdb2" - integrity sha512-8cVkRxI8Nt2wadkY6u60Y4rpW3ejA1rxgcK2JuyIhmF+RMNpTy1QRtkHIDUOf3B4HlQwakMsWbKftMv/71VMmw== +socket.io-adapter@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.3.2.tgz#039cd7c71a52abad984a6d57da2c0b7ecdd3c289" + integrity sha512-PBZpxUPYjmoogY0aoaTmo1643JelsaS1CiAwNjRVdrI0X9Seuc19Y2Wife8k88avW6haG8cznvwbubAZwH4Mtg== socket.io-client@^4.1.3: version "4.1.3" @@ -4422,17 +4664,16 @@ socket.io-client@^4.1.3: socket.io-parser "~4.0.4" socket.io-client@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.2.0.tgz#195feed3de40283b1ae3f7d02cf91d3eb2c905c1" - integrity sha512-3GJ2KMh7inJUNAOjgf8NaKJZJa9uRyfryh2LrVJyKyxmzoXlfW9DeDNqylJn0ovOFt4e/kRLNWzMt/YqqEWYSA== + version "4.3.2" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.3.2.tgz#9cfdb8fecac8a24d5723daf8c8749e70c8fdeb25" + integrity sha512-2B9LqSunN60yV8F7S84CCEEcgbYNfrn7ejIInZtLZ7ppWtiX8rGZAjvdCvbnC8bqo/9RlCNOUsORLyskxSFP1g== dependencies: - "@types/component-emitter" "^1.2.10" + "@socket.io/component-emitter" "~3.0.0" backo2 "~1.0.2" - component-emitter "~1.3.0" debug "~4.3.2" - engine.io-client "~5.2.0" + engine.io-client "~6.0.1" parseuri "0.0.6" - socket.io-parser "~4.0.4" + socket.io-parser "~4.1.1" socket.io-parser@~4.0.4: version "4.0.4" @@ -4443,19 +4684,24 @@ socket.io-parser@~4.0.4: component-emitter "~1.3.0" debug "~4.3.1" +socket.io-parser@~4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.1.1.tgz#0ad53d980781cab1eabe320417d8480c0133e62d" + integrity sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA== + dependencies: + "@socket.io/component-emitter" "~3.0.0" + debug "~4.3.1" + socket.io@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.1.3.tgz#d114328ef27ab31b889611792959c3fa6d502500" - integrity sha512-tLkaY13RcO4nIRh1K2hT5iuotfTaIQw7cVIe0FUykN3SuQi0cm7ALxuyT5/CtDswOMWUzMGTibxYNx/gU7In+Q== + version "4.3.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.3.1.tgz#c0aa14f3f916a8ab713e83a5bd20c16600245763" + integrity sha512-HC5w5Olv2XZ0XJ4gOLGzzHEuOCfj3G0SmoW3jLHYYh34EVsIr3EkW9h6kgfW+K3TFEcmYy8JcPWe//KUkBp5jA== dependencies: - "@types/cookie" "^0.4.0" - "@types/cors" "^2.8.10" - "@types/node" ">=10.0.0" accepts "~1.3.4" base64id "~2.0.0" - debug "~4.3.1" - engine.io "~5.1.1" - socket.io-adapter "~2.3.1" + debug "~4.3.2" + engine.io "~6.0.0" + socket.io-adapter "~2.3.2" socket.io-parser "~4.0.4" split-on-first@^1.0.0: @@ -4660,6 +4906,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + "traverse@>=0.3.0 <0.4": version "0.3.9" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" @@ -4740,7 +4991,7 @@ type@^1.0.1: resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== -type@^2.0.0: +type@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== @@ -4838,11 +5089,11 @@ usb@^1.7.0: prebuild-install "^5.3.3" utf-8-validate@^5.0.2: - version "5.0.5" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz#dd32c2e82c72002dc9f02eb67ba6761f43456ca1" - integrity sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ== + version "5.0.7" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" + integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== dependencies: - node-gyp-build "^4.2.0" + node-gyp-build "^4.3.0" util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" @@ -4878,7 +5129,7 @@ validator@^13.6.0: "validator@git+https://github.com/xp-network/Migration-validator#web3-new": version "1.0.0" - resolved "git+https://github.com/xp-network/Migration-validator#35804240f8b8864d92aa1c27490a107d49b2c6e8" + resolved "git+https://github.com/xp-network/Migration-validator#b414eeb32819934e2219393f66293456cda679fd" dependencies: "@celo-tools/celo-ethers-wrapper" "^0.0.5" "@elrondnetwork/erdjs" "^8.0.1-alpha.5" @@ -4895,6 +5146,7 @@ validator@^13.6.0: axios "^0.21.1" bignumber.js "^9.0.1" crypto-exchange-rate "git+https://github.com/xp-network/exchange-rate#master-dist" + dotenv "^10.0.0" ethers "^5.4.2" google-protobuf "^3.17.3" js-base64 "^3.6.1" @@ -4916,6 +5168,11 @@ vscode-textmate@5.2.0: resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + websocket@^1.0.34: version "1.0.34" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" @@ -4928,6 +5185,14 @@ websocket@^1.0.34: utf-8-validate "^5.0.2" yaeti "^0.0.6" +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -5019,7 +5284,7 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== -ws@^8.2.0: +ws@^8.2.0, ws@~8.2.3: version "8.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== From 8576e5739a3bcc14a10611cc14b12ca96d05dcdf Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 24 Oct 2021 19:19:54 +0530 Subject: [PATCH 092/956] fix(wrapped-nfts): fix implementation --- src/helpers/tron.ts | 3 ++- src/helpers/web3.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 166ed12e2..26ca6d391 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -187,6 +187,7 @@ export interface TronParams { middleware_uri: string; erc1155_addr: string; minter_addr: string; + erc721_addr: string; validators: string[]; } @@ -298,7 +299,7 @@ export async function tronHelperFactory( return await nftUri(nft_info); }, isWrappedNft(nft) { - return nft.contract === tronParams.erc1155_addr; + return nft.contract === tronParams.erc721_addr; }, decodeWrappedNft(raw_data: string): WrappedNft { const u8D = Base64.toUint8Array(raw_data); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index bffc73148..33b7ac171 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -159,6 +159,7 @@ export interface Web3Params { provider: Provider; minter_addr: string; erc1155_addr: string; + erc721_addr: string; validators: string[]; } @@ -230,7 +231,7 @@ export async function web3HelperFactory( return new BigNumber(bal.toString()); }, isWrappedNft(nft) { - return nft.contract === params.erc1155_addr; + return nft.contract === params.erc721_addr; }, async balanceWrappedBatch( address: string, From c3e90b185a7076d8dfc22923a04ceb237d9d53a2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 26 Oct 2021 14:09:48 +0530 Subject: [PATCH 093/956] feat(transfer): include currency conversion --- src/factory/crossChainHelper.ts | 39 ++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index 7da6a482c..da3e7c877 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -6,6 +6,12 @@ import { Chain, CHAIN_INFO } from "../consts"; import { MintNft } from ".."; import { Address, ISigner } from "@elrondnetwork/erdjs/out"; import { Signer } from "ethers"; +import { + cachedExchangeRateRepo, + networkBatchExchangeRateRepo, + NetworkModel, +} from "crypto-exchange-rate"; +import BigNumber from "bignumber.js"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -83,6 +89,17 @@ function mapNonceToParams( export function ChainFactory(chainParams: ChainParams): ChainFactory { let map = new Map(); let cToP = mapNonceToParams(chainParams); + function configBatchExchangeService(): NetworkModel.BatchExchangeRateService { + return NetworkModel.batchExchangeRateService( + "https://testing-bridge.xp.network/exchange" + ); + } + const remoteExchangeRate = cachedExchangeRateRepo( + networkBatchExchangeRateRepo( + configBatchExchangeService(), + NetworkModel.exchangeRateDtoMapper() + ) + ); const inner = async (chain: Chain): Promise => { let helper = map.get(chain); @@ -107,23 +124,29 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { receiver, nft ); + console.log(`Estimate : ${estimate}`); + const exrate = await remoteExchangeRate.getExchangeRate( + CHAIN_INFO[toChain].currency, + CHAIN_INFO[fromChain].currency + ); + const conv = estimate + .dividedBy(CHAIN_INFO[toChain].decimals) + .times(exrate * 0.05) + .times(CHAIN_INFO[fromChain].decimals) + .integerValue(BigNumber.ROUND_CEIL); + console.log("Converted Value: ", conv.toString()); if (nft.chain === fromChain) { const transfer = await fromHelper.transferNativeToForeign( sender, toChain, receiver, nft, - estimate + conv ); return transfer; } else { if (fromHelper.isWrappedNft(nft)) { - await fromHelper.unfreezeWrappedNft( - sender, - receiver, - nft.id, - estimate - ); + await fromHelper.unfreezeWrappedNft(sender, receiver, nft.id, conv); if (fromChain == toChain) { return; } else { @@ -132,7 +155,7 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { fromChain, receiver, nft, - estimate + conv ); return receipt; } From 6fda21f5a4a1db8e7d85d4ef99856640df2378e2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 26 Oct 2021 14:17:20 +0530 Subject: [PATCH 094/956] feat(transfer): include currency conversion 2/n --- src/factory/crossChainHelper.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index da3e7c877..02fb33d42 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -120,7 +120,8 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { receiver: Address & string ): Promise => { const fromHelper = await inner(fromChain); - const estimate = await fromHelper.estimateValidateTransferNft( + const toHelper = await inner(toChain); + const estimate = await toHelper.estimateValidateTransferNft( receiver, nft ); @@ -131,7 +132,7 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { ); const conv = estimate .dividedBy(CHAIN_INFO[toChain].decimals) - .times(exrate * 0.05) + .times(exrate * 1.05) .times(CHAIN_INFO[fromChain].decimals) .integerValue(BigNumber.ROUND_CEIL); console.log("Converted Value: ", conv.toString()); From 031d07a984428826ea5af40574b11a2ddf5557ee Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 26 Oct 2021 14:24:23 +0530 Subject: [PATCH 095/956] fix(transfer): pass nft id instead of the object --- src/factory/crossChainHelper.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index 02fb33d42..f11b76881 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -141,7 +141,7 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { sender, toChain, receiver, - nft, + nft.id, conv ); return transfer; @@ -155,7 +155,7 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { sender, fromChain, receiver, - nft, + nft.id, conv ); return receipt; From bd2d6b36f66f343284852b0f137ad5d16ff4fc73 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 26 Oct 2021 16:56:21 +0530 Subject: [PATCH 096/956] fix(transfer): calculate for unfreezing seprately --- package.json | 2 +- src/factory/crossChainHelper.ts | 17 ++++++++- yarn.lock | 61 +++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 3ed331f66..d316817d5 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "axios": "^0.21.1", "bignumber.js": "^9.0.1", "crypto-exchange-rate": "https://github.com/xp-network/exchange-rate#master-dist", - "ethers": "^5.4.1", + "ethers": "5.4.4", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index f11b76881..bdf4082af 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -137,7 +137,7 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { .integerValue(BigNumber.ROUND_CEIL); console.log("Converted Value: ", conv.toString()); if (nft.chain === fromChain) { - const transfer = await fromHelper.transferNativeToForeign( + const transfer = await fromHelper.transferNftToForeign( sender, toChain, receiver, @@ -147,6 +147,21 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { return transfer; } else { if (fromHelper.isWrappedNft(nft)) { + const estimate = await toHelper.estimateValidateUnfreezeNft( + receiver, + nft.raw_data + ); + + const exrate = await remoteExchangeRate.getExchangeRate( + CHAIN_INFO[toChain].currency, + CHAIN_INFO[fromChain].currency + ); + + const conv = estimate + .dividedBy(CHAIN_INFO[toChain].decimals) + .times(exrate * 1.05) + .times(CHAIN_INFO[fromChain].decimals) + .integerValue(BigNumber.ROUND_CEIL); await fromHelper.unfreezeWrappedNft(sender, receiver, nft.id, conv); if (fromChain == toChain) { return; diff --git a/yarn.lock b/yarn.lock index 4be579614..8ada77cd0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -599,6 +599,31 @@ bech32 "1.1.4" ws "7.4.6" +"@ethersproject/providers@5.4.3": + version "5.4.3" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.3.tgz#4cd7ccd9e12bc3875b33df8b24abf735663958a5" + integrity sha512-VURwkaWPoUj7jq9NheNDT5Iyy64Qcyf6BOFDwVdHsmLmX/5prNjFrgSX3GHPE4z1BRrVerDxe2yayvXKFm/NNg== + dependencies: + "@ethersproject/abstract-provider" "^5.4.0" + "@ethersproject/abstract-signer" "^5.4.0" + "@ethersproject/address" "^5.4.0" + "@ethersproject/basex" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/constants" "^5.4.0" + "@ethersproject/hash" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/networks" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/random" "^5.4.0" + "@ethersproject/rlp" "^5.4.0" + "@ethersproject/sha2" "^5.4.0" + "@ethersproject/strings" "^5.4.0" + "@ethersproject/transactions" "^5.4.0" + "@ethersproject/web" "^5.4.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/providers@5.4.5": version "5.4.5" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" @@ -2854,6 +2879,42 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +ethers@5.4.4: + version "5.4.4" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.4.tgz#35cce530505b84c699da944162195cfb3f894947" + integrity sha512-zaTs8yaDjfb0Zyj8tT6a+/hEkC+kWAA350MWRp6yP5W7NdGcURRPMOpOU+6GtkfxV9wyJEShWesqhE/TjdqpMA== + dependencies: + "@ethersproject/abi" "5.4.0" + "@ethersproject/abstract-provider" "5.4.1" + "@ethersproject/abstract-signer" "5.4.1" + "@ethersproject/address" "5.4.0" + "@ethersproject/base64" "5.4.0" + "@ethersproject/basex" "5.4.0" + "@ethersproject/bignumber" "5.4.1" + "@ethersproject/bytes" "5.4.0" + "@ethersproject/constants" "5.4.0" + "@ethersproject/contracts" "5.4.1" + "@ethersproject/hash" "5.4.0" + "@ethersproject/hdnode" "5.4.0" + "@ethersproject/json-wallets" "5.4.0" + "@ethersproject/keccak256" "5.4.0" + "@ethersproject/logger" "5.4.0" + "@ethersproject/networks" "5.4.2" + "@ethersproject/pbkdf2" "5.4.0" + "@ethersproject/properties" "5.4.0" + "@ethersproject/providers" "5.4.3" + "@ethersproject/random" "5.4.0" + "@ethersproject/rlp" "5.4.0" + "@ethersproject/sha2" "5.4.0" + "@ethersproject/signing-key" "5.4.0" + "@ethersproject/solidity" "5.4.0" + "@ethersproject/strings" "5.4.0" + "@ethersproject/transactions" "5.4.0" + "@ethersproject/units" "5.4.0" + "@ethersproject/wallet" "5.4.0" + "@ethersproject/web" "5.4.0" + "@ethersproject/wordlists" "5.4.0" + ethers@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.1.tgz#bcff1e9f45bf1a061bf313ec04e8d9881d2d53f9" From 7222a0d82a11bc5ffdb47116a9b7517721fb20c6 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 26 Oct 2021 18:09:25 +0530 Subject: [PATCH 097/956] fix(transfer): pass the appropriate fields for each kind of transfer --- src/factory/crossChainHelper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index bdf4082af..c9a629011 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -123,7 +123,7 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { const toHelper = await inner(toChain); const estimate = await toHelper.estimateValidateTransferNft( receiver, - nft + nft.hash ); console.log(`Estimate : ${estimate}`); const exrate = await remoteExchangeRate.getExchangeRate( From 3c5eda92d165d953a4c19642b5091f1dba0ac73d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 27 Oct 2021 12:39:53 +0530 Subject: [PATCH 098/956] feat(nonce): implement ChainNonce --- src/helpers/chain.ts | 4 ++++ src/helpers/elrond.ts | 9 +++++++-- src/helpers/tron.ts | 8 +++++++- src/helpers/web3.ts | 7 +++++-- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 6994c5a08..39ccf37c5 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -176,3 +176,7 @@ export interface EstimateTxFees { export function ConcurrentSendError(): Error { return new Error("concurrent_send"); } + +export interface ChainNonce { + getNonce(): number; +} diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 99fe198c5..70be6b920 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -43,7 +43,7 @@ import { WrappedNftCheck, } from "./chain"; import { Base64 } from "js-base64"; -import { EstimateTxFees } from ".."; +import { ChainNonce, EstimateTxFees } from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | BigNumber; @@ -218,7 +218,8 @@ export type ElrondHelper = BalanceCheck & DecodeRawNft & { mintableEsdts(address: Address): Promise; } & WrappedNftCheck & - EstimateTxFees; + EstimateTxFees & + ChainNonce; /** * Create an object implementing cross chain utilities for elrond @@ -237,6 +238,7 @@ export interface ElrondParams { esdt_nft: string; esdt_swap: string; validators: string[]; + nonce: number; } export const elrondHelperFactory: ( @@ -756,6 +758,9 @@ export const elrondHelperFactory: ( await signAndSend(manager, txu); }, + getNonce() { + return elrondParams.nonce; + }, decodeWrappedNft(raw_data: EsdtNftInfo): WrappedNft { if (!raw_data.attributes) { throw Error("can't decode chain nonce"); diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 26ca6d391..645e714e8 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -32,6 +32,7 @@ import { } from "xpnet-web3-contracts"; import { NftMintArgs } from "../factory/crossChainHelper"; import { NftEthNative, NftPacked } from "validator"; +import { ChainNonce } from ".."; export type MinterRes = { // Minter smart contract @@ -83,7 +84,8 @@ export type TronHelper = BaseTronHelper & DecodeRawNft & EstimateTxFees & { nftUri(info: EthNftInfo): Promise; - } & WrappedNftCheck; + } & WrappedNftCheck & + ChainNonce; export async function baseTronHelperFactory( provider: TronWeb @@ -189,6 +191,7 @@ export interface TronParams { minter_addr: string; erc721_addr: string; validators: string[]; + nonce: number; } export async function tronHelperFactory( @@ -351,6 +354,9 @@ export async function tronHelperFactory( .send({ callValue: EthBN.from(txFees.toString()) }); return await extractTxn(res); }, + getNonce() { + return tronParams.nonce; + }, async transferNftToForeign( sender: string, chain_nonce: number, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 33b7ac171..d49ccb7c2 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -30,7 +30,7 @@ import { XPNet__factory, } from "xpnet-web3-contracts"; import { Base64 } from "js-base64"; -import { EstimateTxFees } from ".."; +import { ChainNonce, EstimateTxFees } from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | EthBN; /** @@ -107,7 +107,8 @@ export type Web3Helper = BaseWeb3Helper & * Get the uri of an nft given nft info */ nftUri(info: EthNftInfo): Promise; - } & WrappedNftCheck; + } & WrappedNftCheck & + ChainNonce; function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; @@ -161,6 +162,7 @@ export interface Web3Params { erc1155_addr: string; erc721_addr: string; validators: string[]; + nonce: number; } export async function web3HelperFactory( @@ -222,6 +224,7 @@ export async function web3HelperFactory( return { ...base, + getNonce: () => params.nonce, async balanceWrapped( address: string, chain_nonce: number From aae5a75d6497a8d7280e68392466669c08a32590 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 27 Oct 2021 12:43:05 +0530 Subject: [PATCH 099/956] chore(packages): downgrade ethers --- package.json | 2 +- yarn.lock | 163 ++++++++++++++++----------------------------------- 2 files changed, 52 insertions(+), 113 deletions(-) diff --git a/package.json b/package.json index d316817d5..a8bc82b5b 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "axios": "^0.21.1", "bignumber.js": "^9.0.1", "crypto-exchange-rate": "https://github.com/xp-network/exchange-rate#master-dist", - "ethers": "5.4.4", + "ethers": "5.4.1", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index 8ada77cd0..b1f79c5a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -111,7 +111,7 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@ethersproject/abi@5.4.0", "@ethersproject/abi@^5.4.0": +"@ethersproject/abi@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.0.tgz#a6d63bdb3672f738398846d4279fa6b6c9818242" integrity sha512-9gU2H+/yK1j2eVMdzm6xvHSnMxk8waIHQGYCZg5uvAyH0rsAzxkModzBSpbAkAuhKFEovC2S9hM4nPuLym8IZw== @@ -141,7 +141,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.5.0": +"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== @@ -156,7 +156,7 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/abstract-provider@5.4.0", "@ethersproject/abstract-provider@^5.4.0": +"@ethersproject/abstract-provider@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.0.tgz#415331031b0f678388971e1987305244edc04e1d" integrity sha512-vPBR7HKUBY0lpdllIn7tLIzNN7DrVnhCLKSzY0l8WAwxz686m/aL7ASDzrVxV93GJtIub6N2t4dfZ29CkPOxgA== @@ -182,7 +182,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/web" "^5.4.0" -"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.5.0": +"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": version "5.5.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== @@ -195,7 +195,7 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/web" "^5.5.0" -"@ethersproject/abstract-signer@5.4.0", "@ethersproject/abstract-signer@^5.4.0": +"@ethersproject/abstract-signer@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.0.tgz#cd5f50b93141ee9f9f49feb4075a0b3eafb57d65" integrity sha512-AieQAzt05HJZS2bMofpuxMEp81AHufA5D6M4ScKwtolj041nrfIbIi8ciNW7+F59VYxXq+V4c3d568Q6l2m8ew== @@ -217,7 +217,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.5.0": +"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== @@ -228,7 +228,7 @@ "@ethersproject/logger" "^5.5.0" "@ethersproject/properties" "^5.5.0" -"@ethersproject/address@5.4.0", "@ethersproject/address@^5.4.0": +"@ethersproject/address@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" integrity sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q== @@ -239,7 +239,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/rlp" "^5.4.0" -"@ethersproject/address@5.5.0", "@ethersproject/address@^5.5.0": +"@ethersproject/address@5.5.0", "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== @@ -250,21 +250,21 @@ "@ethersproject/logger" "^5.5.0" "@ethersproject/rlp" "^5.5.0" -"@ethersproject/base64@5.4.0", "@ethersproject/base64@^5.4.0": +"@ethersproject/base64@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" integrity sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ== dependencies: "@ethersproject/bytes" "^5.4.0" -"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.5.0": +"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== dependencies: "@ethersproject/bytes" "^5.5.0" -"@ethersproject/basex@5.4.0", "@ethersproject/basex@^5.4.0": +"@ethersproject/basex@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6" integrity sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg== @@ -272,7 +272,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.5.0": +"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== @@ -280,7 +280,7 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/properties" "^5.5.0" -"@ethersproject/bignumber@5.4.0", "@ethersproject/bignumber@^5.4.0": +"@ethersproject/bignumber@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.0.tgz#be8dea298c0ec71208ee60f0b245be0761217ad9" integrity sha512-OXUu9f9hO3vGRIPxU40cignXZVaYyfx6j9NNMjebKdnaCL3anCLSSy8/b8d03vY6dh7duCC0kW72GEC4tZer2w== @@ -298,7 +298,7 @@ "@ethersproject/logger" "^5.4.0" bn.js "^4.11.9" -"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.5.0": +"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== @@ -307,28 +307,28 @@ "@ethersproject/logger" "^5.5.0" bn.js "^4.11.9" -"@ethersproject/bytes@5.4.0", "@ethersproject/bytes@^5.4.0": +"@ethersproject/bytes@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" integrity sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA== dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.5.0": +"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== dependencies: "@ethersproject/logger" "^5.5.0" -"@ethersproject/constants@5.4.0", "@ethersproject/constants@^5.4.0": +"@ethersproject/constants@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" integrity sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q== dependencies: "@ethersproject/bignumber" "^5.4.0" -"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.5.0": +"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== @@ -383,7 +383,7 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/transactions" "^5.5.0" -"@ethersproject/hash@5.4.0", "@ethersproject/hash@^5.4.0": +"@ethersproject/hash@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" integrity sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA== @@ -397,7 +397,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.5.0": +"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== @@ -411,7 +411,7 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/hdnode@5.4.0", "@ethersproject/hdnode@^5.4.0": +"@ethersproject/hdnode@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac" integrity sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q== @@ -429,7 +429,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" -"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.5.0": +"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== @@ -447,7 +447,7 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/wordlists" "^5.5.0" -"@ethersproject/json-wallets@5.4.0", "@ethersproject/json-wallets@^5.4.0": +"@ethersproject/json-wallets@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz#2583341cfe313fc9856642e8ace3080154145e95" integrity sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ== @@ -466,7 +466,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.5.0": +"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.4.0", "@ethersproject/json-wallets@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== @@ -485,7 +485,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.4.0", "@ethersproject/keccak256@^5.4.0": +"@ethersproject/keccak256@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318" integrity sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A== @@ -493,7 +493,7 @@ "@ethersproject/bytes" "^5.4.0" js-sha3 "0.5.7" -"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.5.0": +"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== @@ -501,7 +501,7 @@ "@ethersproject/bytes" "^5.5.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.4.0", "@ethersproject/logger@^5.4.0": +"@ethersproject/logger@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.0.tgz#f39adadf62ad610c420bcd156fd41270e91b3ca9" integrity sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ== @@ -511,12 +511,12 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== -"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.5.0": +"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== -"@ethersproject/networks@5.4.1", "@ethersproject/networks@^5.4.0": +"@ethersproject/networks@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.1.tgz#2ce83b8e42aa85216e5d277a7952d97b6ce8d852" integrity sha512-8SvowCKz9Uf4xC5DTKI8+il8lWqOr78kmiqAVLYT9lzB8aSmJHQMD1GSuJI0CW4hMAnzocpGpZLgiMdzsNSPig== @@ -530,14 +530,14 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/networks@5.5.0", "@ethersproject/networks@^5.5.0": +"@ethersproject/networks@5.5.0", "@ethersproject/networks@^5.4.0", "@ethersproject/networks@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" integrity sha512-KWfP3xOnJeF89Uf/FCJdV1a2aDJe5XTN2N52p4fcQ34QhDqQFkgQKZ39VGtiqUgHcLI8DfT0l9azC3KFTunqtA== dependencies: "@ethersproject/logger" "^5.5.0" -"@ethersproject/pbkdf2@5.4.0", "@ethersproject/pbkdf2@^5.4.0": +"@ethersproject/pbkdf2@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz#ed88782a67fda1594c22d60d0ca911a9d669641c" integrity sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g== @@ -545,7 +545,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/sha2" "^5.4.0" -"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.5.0": +"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== @@ -553,7 +553,7 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/sha2" "^5.5.0" -"@ethersproject/properties@5.4.0", "@ethersproject/properties@^5.4.0": +"@ethersproject/properties@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.0.tgz#38ba20539b44dcc5d5f80c45ad902017dcdbefe7" integrity sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A== @@ -567,7 +567,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.5.0": +"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== @@ -599,31 +599,6 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/providers@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.3.tgz#4cd7ccd9e12bc3875b33df8b24abf735663958a5" - integrity sha512-VURwkaWPoUj7jq9NheNDT5Iyy64Qcyf6BOFDwVdHsmLmX/5prNjFrgSX3GHPE4z1BRrVerDxe2yayvXKFm/NNg== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - bech32 "1.1.4" - ws "7.4.6" - "@ethersproject/providers@5.4.5": version "5.4.5" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" @@ -674,7 +649,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.4.0", "@ethersproject/random@^5.4.0": +"@ethersproject/random@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" integrity sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw== @@ -682,7 +657,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/random@5.5.0", "@ethersproject/random@^5.5.0": +"@ethersproject/random@5.5.0", "@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== @@ -690,7 +665,7 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/logger" "^5.5.0" -"@ethersproject/rlp@5.4.0", "@ethersproject/rlp@^5.4.0": +"@ethersproject/rlp@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931" integrity sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg== @@ -698,7 +673,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.5.0": +"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== @@ -706,7 +681,7 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/logger" "^5.5.0" -"@ethersproject/sha2@5.4.0", "@ethersproject/sha2@^5.4.0": +"@ethersproject/sha2@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" integrity sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg== @@ -715,7 +690,7 @@ "@ethersproject/logger" "^5.4.0" hash.js "1.1.7" -"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.5.0": +"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== @@ -724,7 +699,7 @@ "@ethersproject/logger" "^5.5.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.4.0", "@ethersproject/signing-key@^5.4.0": +"@ethersproject/signing-key@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec" integrity sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A== @@ -736,7 +711,7 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.5.0": +"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== @@ -771,7 +746,7 @@ "@ethersproject/sha2" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/strings@5.4.0", "@ethersproject/strings@^5.4.0": +"@ethersproject/strings@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" integrity sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA== @@ -780,7 +755,7 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.5.0": +"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== @@ -789,7 +764,7 @@ "@ethersproject/constants" "^5.5.0" "@ethersproject/logger" "^5.5.0" -"@ethersproject/transactions@5.4.0", "@ethersproject/transactions@^5.4.0": +"@ethersproject/transactions@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" integrity sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ== @@ -804,7 +779,7 @@ "@ethersproject/rlp" "^5.4.0" "@ethersproject/signing-key" "^5.4.0" -"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.5.0": +"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== @@ -879,7 +854,7 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/wordlists" "^5.5.0" -"@ethersproject/web@5.4.0", "@ethersproject/web@^5.4.0": +"@ethersproject/web@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" integrity sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og== @@ -890,7 +865,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/web@5.5.0", "@ethersproject/web@^5.5.0": +"@ethersproject/web@5.5.0", "@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== @@ -901,7 +876,7 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/wordlists@5.4.0", "@ethersproject/wordlists@^5.4.0": +"@ethersproject/wordlists@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7" integrity sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA== @@ -912,7 +887,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.5.0": +"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== @@ -2879,43 +2854,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -ethers@5.4.4: - version "5.4.4" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.4.tgz#35cce530505b84c699da944162195cfb3f894947" - integrity sha512-zaTs8yaDjfb0Zyj8tT6a+/hEkC+kWAA350MWRp6yP5W7NdGcURRPMOpOU+6GtkfxV9wyJEShWesqhE/TjdqpMA== - dependencies: - "@ethersproject/abi" "5.4.0" - "@ethersproject/abstract-provider" "5.4.1" - "@ethersproject/abstract-signer" "5.4.1" - "@ethersproject/address" "5.4.0" - "@ethersproject/base64" "5.4.0" - "@ethersproject/basex" "5.4.0" - "@ethersproject/bignumber" "5.4.1" - "@ethersproject/bytes" "5.4.0" - "@ethersproject/constants" "5.4.0" - "@ethersproject/contracts" "5.4.1" - "@ethersproject/hash" "5.4.0" - "@ethersproject/hdnode" "5.4.0" - "@ethersproject/json-wallets" "5.4.0" - "@ethersproject/keccak256" "5.4.0" - "@ethersproject/logger" "5.4.0" - "@ethersproject/networks" "5.4.2" - "@ethersproject/pbkdf2" "5.4.0" - "@ethersproject/properties" "5.4.0" - "@ethersproject/providers" "5.4.3" - "@ethersproject/random" "5.4.0" - "@ethersproject/rlp" "5.4.0" - "@ethersproject/sha2" "5.4.0" - "@ethersproject/signing-key" "5.4.0" - "@ethersproject/solidity" "5.4.0" - "@ethersproject/strings" "5.4.0" - "@ethersproject/transactions" "5.4.0" - "@ethersproject/units" "5.4.0" - "@ethersproject/wallet" "5.4.0" - "@ethersproject/web" "5.4.0" - "@ethersproject/wordlists" "5.4.0" - -ethers@^5.4.1: +ethers@5.4.1, ethers@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.1.tgz#bcff1e9f45bf1a061bf313ec04e8d9881d2d53f9" integrity sha512-SrcddMdCgP1hukDvCPd87Aipbf4NWjQvdfAbZ65XSZGbfyuYPtIrUJPDH5B1SBRsdlfiEgX3eoz28DdBDzMNFg== From 5ba7c37cc593f05e921a9ff9563e807751b34a53 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 28 Oct 2021 14:28:31 +0530 Subject: [PATCH 100/956] commonize Nft type across chains --- src/helpers/chain.ts | 44 ++++++++++++------------- src/helpers/elrond.ts | 66 ++++++++++++++++---------------------- src/helpers/tron.ts | 69 ++++++++++++++++------------------------ src/helpers/web3.ts | 74 +++++++++++++++++-------------------------- 4 files changed, 104 insertions(+), 149 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 39ccf37c5..e6f90ec8c 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,3 +1,13 @@ +/** + * Internal NFT Info + * WARN: should be used with care. URI might not be correct + * and must be manually resolved via cross chain helper + */ +export type NftInfo = { + readonly uri: string; + readonly native: Raw; +} + /** * Transfer Liquidity to a foregin chain, freezing the original liquidity * @@ -52,7 +62,7 @@ export interface TransferNftForeign< Signer, ForeignAddr, Balance, - NftIdent, + RawNft, Tx, EventIdent > { @@ -60,7 +70,7 @@ export interface TransferNftForeign< sender: Signer, chain_nonce: number, to: ForeignAddr, - id: NftIdent, + id: NftInfo, txFees: Balance ): Promise<[Tx, EventIdent]>; } @@ -79,14 +89,14 @@ export interface UnfreezeForeignNft< Signer, ForeignAddr, Balance, - NftIdent, + RawNft, Tx, EventIdent > { unfreezeWrappedNft( sender: Signer, to: ForeignAddr, - id: NftIdent, + id: NftInfo, txFees: Balance ): Promise<[Tx, EventIdent]>; } @@ -130,20 +140,6 @@ export interface MintNft { mintNft(owner: Signer, options: Args): Promise; } -/** - * Get the list of NFTs for a given account - */ -export interface ListNft { - listNft(owner: Addr): Promise>; -} - -/** - * Get the original data of a locked NFT (uri, name, etc) - */ -export interface GetLockedNft { - getLockedNft(ident: Ident): Promise; -} - export type WrappedNft = { chain_nonce: number; data: Uint8Array; @@ -153,23 +149,23 @@ export type WrappedNft = { * @param {NftIdent} nft NFT Identity * @returns bool */ -export interface WrappedNftCheck { - isWrappedNft(nft: NftIdent): boolean; +export interface WrappedNftCheck { + isWrappedNft(nft: NftInfo): boolean; } export interface DecodeWrappedNft { - decodeWrappedNft(raw_data: Data): WrappedNft; + decodeWrappedNft(raw_data: NftInfo): WrappedNft; } export interface DecodeRawNft { decodeUrlFromRaw(data: Uint8Array): Promise; } -export interface EstimateTxFees { - estimateValidateTransferNft(to: string, nft: NftId): Promise; +export interface EstimateTxFees { + estimateValidateTransferNft(to: string, nft: NftInfo): Promise; estimateValidateUnfreezeNft( to: string, - nft: WrappedNftData + nft: NftInfo ): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 70be6b920..33162b176 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -32,8 +32,6 @@ import { ConcurrentSendError, DecodeRawNft, DecodeWrappedNft, - GetLockedNft, - ListNft, MintNft, TransferForeign, TransferNftForeign, @@ -43,7 +41,7 @@ import { WrappedNftCheck, } from "./chain"; import { Base64 } from "js-base64"; -import { ChainNonce, EstimateTxFees } from ".."; +import { ChainNonce, EstimateTxFees, NftInfo } from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | BigNumber; @@ -56,14 +54,6 @@ const ESDT_ISSUE_COST = "50000000000000000"; const NFT_TRANSFER_COST = new BigNumber(45000000); const NFT_UNFREEZE_COST = new BigNumber(45000000); -/** - * Information required to perform NFT transfers in this chain - */ -export type NftInfo = { - token: string; - nonce: EasyBalance; -}; - type ContractRes = { readonly [idx: string]: number | string; }; @@ -72,12 +62,12 @@ type ContractRes = { * Information associated with an ESDT Token */ export type EsdtTokenInfo = { - readonly balance: string; + readonly balance: 1 | string; readonly tokenIdentifier: string; }; type BEsdtNftInfo = { - readonly attributes?: string; + readonly attributes?: string[]; readonly creator: string; readonly name: string; readonly nonce: number; @@ -198,7 +188,7 @@ export type ElrondHelper = BalanceCheck & ISigner, string, BigNumber, - NftInfo, + EsdtNftInfo, Transaction, EventIdent > & @@ -206,19 +196,17 @@ export type ElrondHelper = BalanceCheck & ISigner, string, BigNumber, - number, + EsdtNftInfo, Transaction, EventIdent > & IssueESDTNFT & MintNft & - ListNft & - GetLockedNft & DecodeWrappedNft & DecodeRawNft & { mintableEsdts(address: Address): Promise; - } & WrappedNftCheck & - EstimateTxFees & + } & WrappedNftCheck & + EstimateTxFees & ChainNonce; /** @@ -394,11 +382,17 @@ export const elrondHelperFactory: ( }); }; + function tokenIdentReal(tokenIdentifier: string): string { + const base = tokenIdentifier.split("-") + base.pop(); + return base.join("-"); + } + const unsignedTransferNftTxn = ( chain_nonce: number, address: Address, to: string, - { token, nonce }: NftInfo, + { tokenIdentifier, nonce }: EsdtNftInfo, tx_fees: BigNumber ) => { return new Transaction({ @@ -408,7 +402,7 @@ export const elrondHelperFactory: ( .setFunction(new ContractFunction("MultiESDTNFTTransfer")) .addArg(new AddressValue(mintContract)) .addArg(new BigUIntValue(new BigNumber(2))) - .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) + .addArg(new TokenIdentifierValue(Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8"))) .addArg(new U64Value(new BigNumber(nonce))) .addArg(new BigUIntValue(new BigNumber(1))) .addArg(new TokenIdentifierValue(esdtSwaphex)) @@ -565,10 +559,7 @@ export const elrondHelperFactory: ( }); }; - async function getLockedNft({ - token, - nonce, - }: NftInfo): Promise { + async function getLockedNft(token: string, nonce: number): Promise { const nfts = await listNft(elrondParams.minter_address); return nfts.get(`${token}-${nonce.toString()}`); } @@ -677,7 +668,7 @@ export const elrondHelperFactory: ( sender: ISigner, chain_nonce: number, to: string, - info: NftInfo, + info: NftInfo, txFees: EasyBalance ): Promise<[Transaction, EventIdent]> { await doEgldSwap(sender, txFees); @@ -685,7 +676,7 @@ export const elrondHelperFactory: ( chain_nonce, sender.getAddress(), to, - info, + info.native, new BigNumber(txFees.toString()) ); const tx = await signAndSend(sender, txu); @@ -695,14 +686,14 @@ export const elrondHelperFactory: ( async unfreezeWrappedNft( sender: ISigner, to: string, - nonce: number, + nft: NftInfo, txFees: EasyBalance ): Promise<[Transaction, EventIdent]> { await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeNftTxn( sender.getAddress(), to, - nonce, + nft.native.nonce, new BigNumber(txFees.toString()) ); const tx = await signAndSend(sender, txu); @@ -744,10 +735,9 @@ export const elrondHelperFactory: ( return res.data["data"]["tokens"]; }, isWrappedNft(nft) { - return nft.token === elrondParams.esdt_nft; + return tokenIdentReal(nft.native.tokenIdentifier) === elrondParams.esdt_nft; }, listNft, - getLockedNft, async setESDTRole( manager: ISigner, token: string, @@ -761,19 +751,19 @@ export const elrondHelperFactory: ( getNonce() { return elrondParams.nonce; }, - decodeWrappedNft(raw_data: EsdtNftInfo): WrappedNft { - if (!raw_data.attributes) { + decodeWrappedNft(nft: NftInfo): WrappedNft { + if (!nft.native.attributes) { throw Error("can't decode chain nonce"); } return { // TODO: CONSIDER ALL BE BYTES - chain_nonce: Base64.toUint8Array(raw_data.attributes!!)[0], - data: Base64.toUint8Array(raw_data.uris[0]), + chain_nonce: Base64.toUint8Array(nft.native.attributes[0])[0], + data: Base64.toUint8Array(nft.native.uris[0]), }; }, async decodeUrlFromRaw(data: Uint8Array): Promise { const nft_info = rawNftDecoder(data); - const locked = await getLockedNft(nft_info); + const locked = await getLockedNft(nft_info.token, nft_info.nonce); if (locked === undefined) { throw Error("Not a wrapped nft"); @@ -781,10 +771,10 @@ export const elrondHelperFactory: ( return Base64.atob(locked!.uris[0]); }, - async estimateValidateTransferNft(_toAddress: string, _nftInfo: NftInfo) { + async estimateValidateTransferNft(_toAddress: string, _nftInfo: NftInfo) { return estimateGas(NFT_TRANSFER_COST, elrondParams.validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, - async estimateValidateUnfreezeNft(_to: string, _nft: WrappedNft) { + async estimateValidateUnfreezeNft(_to: string, _nft: NftInfo) { return estimateGas(NFT_UNFREEZE_COST, elrondParams.validators.length); // TODO: properly estimate NFT_UNFREEZE_COST }, }; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 645e714e8..0a0e29602 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -32,7 +32,7 @@ import { } from "xpnet-web3-contracts"; import { NftMintArgs } from "../factory/crossChainHelper"; import { NftEthNative, NftPacked } from "validator"; -import { ChainNonce } from ".."; +import { ChainNonce, NftInfo } from ".."; export type MinterRes = { // Minter smart contract @@ -79,12 +79,11 @@ export type TronHelper = BaseTronHelper & TransferNftForeign & // TODO: Use TX Fees UnfreezeForeign & - UnfreezeForeignNft & - DecodeWrappedNft & + UnfreezeForeignNft & + DecodeWrappedNft & DecodeRawNft & - EstimateTxFees & { - nftUri(info: EthNftInfo): Promise; - } & WrappedNftCheck & + EstimateTxFees + & WrappedNftCheck & ChainNonce; export async function baseTronHelperFactory( @@ -236,23 +235,14 @@ export async function tronHelperFactory( return [hash, action_id]; } - const nftUri = async (info: EthNftInfo): Promise => { - if (info.contract_type == "ERC721") { - const erc = await provider.contract( - UserNftMinter__factory.abi, - info.contract - ); - return await erc.tokenURI(info.token).call(); - } else { - const erc = await provider.contract(XPNet__factory.abi, info.contract); - return await erc.uri(info.token).call(); - } + const nftUri = async (contract: string, tokenId: string): Promise => { + const erc = await provider.contract( + UserNftMinter__factory.abi, + contract + ); + return await erc.tokenURI(tokenId).call(); }; - function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { - return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; - } - const randomAction = () => Math.floor( Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000) @@ -293,26 +283,20 @@ export async function tronHelperFactory( ...base, async decodeUrlFromRaw(data: Uint8Array): Promise { const packed = NftEthNative.deserializeBinary(data); - const nft_info = { - contract_type: contractTypeFromNftKind(packed.getNftKind()), - contract: packed.getContractAddr(), - token: EthBN.from(packed.getId()), - }; - return await nftUri(nft_info); + return await nftUri(packed.getContractAddr(), packed.getId()); }, isWrappedNft(nft) { - return nft.contract === tronParams.erc721_addr; + return nft.native.contract === tronParams.erc721_addr; }, - decodeWrappedNft(raw_data: string): WrappedNft { - const u8D = Base64.toUint8Array(raw_data); + decodeWrappedNft(raw_data: NftInfo): WrappedNft { + const u8D = Base64.toUint8Array(raw_data.native.uri); const packed = NftPacked.deserializeBinary(u8D); return { chain_nonce: packed.getChainNonce(), data: packed.getData_asU8(), }; }, - nftUri: nftUri, async transferNativeToForeign( sender: string, chain_nonce: number, @@ -345,12 +329,12 @@ export async function tronHelperFactory( async unfreezeWrappedNft( sender: string, to: string, - id: BigNumber, + id: NftInfo, txFees: BigNumber ): Promise<[string, string]> { setSigner(sender); const res = await minter - .withdrawNft(to, id.toString()) + .withdrawNft(to, id.native.tokenId) .send({ callValue: EthBN.from(txFees.toString()) }); return await extractTxn(res); }, @@ -361,18 +345,18 @@ export async function tronHelperFactory( sender: string, chain_nonce: number, to: string, - id: EthNftInfo, + id: NftInfo, txFees: BigNumber ): Promise<[string, string]> { setSigner(sender); const erc = await provider.contract( UserNftMinter__factory.abi, - id.contract + id.native.contract ); - await erc.approve(minter.address, id.token).send(); + await erc.approve(minter.address, id.native.tokenId).send(); const txr = await minter - .freezeErc721(id.contract, id.token, chain_nonce, to) + .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to) .send({ callValue: EthBN.from(txFees.toString()) }); return await extractTxn(txr); @@ -399,13 +383,13 @@ export async function tronHelperFactory( }, async estimateValidateTransferNft( to: string, - nft: EthNftInfo + nft: NftInfo ): Promise { // Protobuf is not deterministic, though perhaps we can approximate this statically const tokdat = new NftEthNative(); - tokdat.setId(nft.token.toString()); + tokdat.setId(nft.native.tokenId); tokdat.setNftKind(1); - tokdat.setContractAddr(nft.contract); + tokdat.setContractAddr(nft.native.contract); const encoded = new NftPacked(); encoded.setChainNonce(0x1351); @@ -426,9 +410,10 @@ export async function tronHelperFactory( }, async estimateValidateUnfreezeNft( to: string, - nft_data: Uint8Array + nft: NftInfo ): Promise { - const nft_dat = NftEthNative.deserializeBinary(nft_data); + const data = Base64.toUint8Array(nft.native.uri) + const nft_dat = NftEthNative.deserializeBinary(data); return await estimateGas( tronParams.validators, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index d49ccb7c2..1dc212ffb 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -30,16 +30,18 @@ import { XPNet__factory, } from "xpnet-web3-contracts"; import { Base64 } from "js-base64"; -import { ChainNonce, EstimateTxFees } from ".."; +import { ChainNonce, EstimateTxFees, NftInfo } from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain */ export type EthNftInfo = { - contract_type: "ERC721" | "ERC1155"; + chainId: string; + tokenId: string; + owner: string; + uri: string; contract: string; - token: EthBN; }; /** @@ -96,23 +98,15 @@ export type Web3Helper = BaseWeb3Helper & Signer, string, BigNumber, - BigNumber, + EthNftInfo, TransactionReceipt, string > & - DecodeWrappedNft & + DecodeWrappedNft & DecodeRawNft & - EstimateTxFees & { - /** - * Get the uri of an nft given nft info - */ - nftUri(info: EthNftInfo): Promise; - } & WrappedNftCheck & - ChainNonce; - -function contractTypeFromNftKind(kind: 0 | 1): "ERC721" | "ERC1155" { - return kind === NftEthNative.NftKind.ERC721 ? "ERC721" : "ERC1155"; -} + EstimateTxFees + & WrappedNftCheck + & ChainNonce; /** * Create an object implementing minimal utilities for a web3 chain @@ -188,14 +182,9 @@ export async function web3HelperFactory( return [receipt, action_id]; } - async function nftUri(info: EthNftInfo): Promise { - if (info.contract_type == "ERC721") { - const erc = UserNftMinter__factory.connect(info.contract, w3); - return await erc.tokenURI(info.token); - } else { - const erc = XPNet__factory.connect(info.contract, w3); - return await erc.uri(info.token); - } + async function nftUri(contract: string, tokenId: EthBN): Promise { + const erc = UserNftMinter__factory.connect(contract, w3); + return await erc.tokenURI(tokenId); } const randomAction = () => @@ -234,7 +223,7 @@ export async function web3HelperFactory( return new BigNumber(bal.toString()); }, isWrappedNft(nft) { - return nft.contract === params.erc721_addr; + return nft.native.contract === params.erc721_addr; }, async balanceWrappedBatch( address: string, @@ -267,17 +256,17 @@ export async function web3HelperFactory( sender: Signer, chain_nonce: number, to: string, - id: EthNftInfo, + id: NftInfo, txFees: BigNumber ): Promise<[TransactionReceipt, string]> { - const erc = UserNftMinter__factory.connect(id.contract, sender); - const ta = await erc.approve(minter.address, id.token); + const erc = UserNftMinter__factory.connect(id.native.contract, sender); + const ta = await erc.approve(minter.address, id.native.tokenId); await ta.wait(); const txr = await minter .connect(sender) - .freezeErc721(id.contract, id.token, chain_nonce, to, { + .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to, { value: EthBN.from(txFees.toString()), }); @@ -301,18 +290,17 @@ export async function web3HelperFactory( async unfreezeWrappedNft( sender: Signer, to: string, - id: BigNumber, + id: NftInfo, txFees: BigNumber ): Promise<[TransactionReceipt, string]> { - const res = await minter.connect(sender).withdrawNft(to, id.toString(), { + const res = await minter.connect(sender).withdrawNft(to, id.native.tokenId, { value: EthBN.from(txFees.toString()), }); return await extractTxn(res, "UnfreezeNft"); }, - nftUri, - decodeWrappedNft(raw_data: string): WrappedNft { - const u8D = Base64.toUint8Array(raw_data); + decodeWrappedNft(nft: NftInfo): WrappedNft { + const u8D = Base64.toUint8Array(nft.native.uri); const packed = NftPacked.deserializeBinary(u8D); return { @@ -322,23 +310,18 @@ export async function web3HelperFactory( }, async decodeUrlFromRaw(data: Uint8Array): Promise { const packed = NftEthNative.deserializeBinary(data); - const nft_info = { - contract_type: contractTypeFromNftKind(packed.getNftKind()), - contract: packed.getContractAddr(), - token: EthBN.from(packed.getId()), - }; - return await nftUri(nft_info); + return await nftUri(packed.getContractAddr(), EthBN.from(packed.getId())); }, async estimateValidateTransferNft( to: string, - nft: EthNftInfo + nft: NftInfo ): Promise { // Protobuf is not deterministic, though perhaps we can approximate this statically const tokdat = new NftEthNative(); - tokdat.setId(nft.token.toString()); + tokdat.setId(nft.native.tokenId); tokdat.setNftKind(1); - tokdat.setContractAddr(nft.contract); + tokdat.setContractAddr(nft.native.contract); const encoded = new NftPacked(); encoded.setChainNonce(0x1351); @@ -354,9 +337,10 @@ export async function web3HelperFactory( }, async estimateValidateUnfreezeNft( to: string, - nft_data: Uint8Array + nft: NftInfo ): Promise { - const nft_dat = NftEthNative.deserializeBinary(nft_data); + const raw = Base64.toUint8Array(nft.native.uri) + const nft_dat = NftEthNative.deserializeBinary(raw); const utx = await minter.populateTransaction.validateUnfreezeNft( randomAction(), to, From f4614ab668c0b5caf78e1429436f7c5d7f6d9f1f Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 28 Oct 2021 16:12:34 +0530 Subject: [PATCH 101/956] proper typing for TransferNft --- src/consts.ts | 32 +++---- src/factory/crossChainHelper.ts | 153 ++++++++++++++++---------------- src/helpers/chain.ts | 25 +++++- src/helpers/elrond.ts | 27 ++++-- src/helpers/tron.ts | 40 ++++++--- src/helpers/web3.ts | 45 ++++++---- 6 files changed, 191 insertions(+), 131 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index a16637fb3..dc013a256 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -3,6 +3,7 @@ import { elrondHelperFactory, ElrondParams } from "./helpers/elrond"; import { tronHelperFactory, TronParams } from "./helpers/tron"; import { web3HelperFactory, Web3Params } from "./helpers/web3"; import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; +import { ElrondHelper, Web3Helper } from "validator"; // All the supported testnet uri's are here. export enum RpcUri { @@ -17,21 +18,22 @@ export enum RpcUri { CELO = "https://alfajores-forno.celo-testnet.org", HARMONY = "https://api.s0.b.hmny.io", } -/** - * An enum which represents the supported chains - * Each field in the enum equals to the nonce of the chain. - */ -export enum Chain { - ELROND = 2, - HECO = 3, - BSC = 4, - ROPSTEN = 5, - AVALANCE = 6, - POLYGON = 7, - FANTOM = 8, - TRON = 9, - CELO = 11, - HARMONY = 12, + +export type ChainNonce = number & ThisType & ThisType

; +export type ElrondNonce = ChainNonce; +export type Web3Nonce = ChainNonce + +export namespace Chain { + export const ELROND: ElrondNonce = 2; + export const HECO: Web3Nonce = 3; + export const BSC: Web3Nonce = 4; + export const ROPSTEN: Web3Nonce = 5; + export const AVALANCHE: Web3Nonce = 6; + export const POLYGON: Web3Nonce = 7; + export const FANTOM: Web3Nonce = 8; + export const TRON: Web3Nonce = 9; + export const CELO: Web3Nonce = 0xb; + export const HARMONY: Web3Nonce = 0xc; } interface ChainData { diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index c9a629011..e67c7d122 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -1,11 +1,9 @@ import { ElrondHelper, ElrondParams } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; -import { Chain, CHAIN_INFO } from "../consts"; +import { ChainNonce, CHAIN_INFO } from "../consts"; -import { MintNft } from ".."; -import { Address, ISigner } from "@elrondnetwork/erdjs/out"; -import { Signer } from "ethers"; +import { ChainNonceGet, DecodeRawNft, DecodeWrappedNft, EstimateTxFees, MintNft, NftInfo, PackNft, TransferNftForeign, UnfreezeForeignNft, WrappedNftCheck } from ".."; import { cachedExchangeRateRepo, networkBatchExchangeRateRepo, @@ -15,6 +13,15 @@ import BigNumber from "bignumber.js"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; +type TransferChain = ChainNonceGet + & TransferNftForeign + & UnfreezeForeignNft + & EstimateTxFees + & PackNft + & WrappedNftCheck + & DecodeWrappedNft + & DecodeRawNft; + /** * A type representing a chain factory. * @@ -24,25 +31,32 @@ type ChainFactory = { * Create a cross chain helper object * @param chain: {@link Chain} to create the helper for */ - inner(chain: Chain): Promise; + inner(chain: ChainNonce): Promise; // IMO This should Return a transaction, which can be signed later by a wallet interface. - transferNft( - fromChain: Chain, - toChain: Chain, - nft: any, - sender: any, - receiver: any - ): Promise; + transferNft< + SignerF, + RawNftF, + TxF, + SignerT, + RawNftT, + TxT + >( + fromChain: TransferChain, + toChain: TransferChain, + nft: NftInfo, + sender: SignerF, + receiver: string + ): Promise; /** * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the {@link inner} method. * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar wallet. * @param args: {@link NftMintArgs} Arguments to mint the nft. */ - mint( - chain: MintNft, + mint( + chain: MintNft, owner: Signer, args: NftMintArgs - ): Promise; + ): Promise; }; /** @@ -101,81 +115,70 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { ) ); - const inner = async (chain: Chain): Promise => { + const inner = async (chain: ChainNonce): Promise => { let helper = map.get(chain); if (helper === undefined) { helper = await CHAIN_INFO[chain].constructor(cToP.get(chain)!); } - return helper!; + return helper! as any as T; }; + async function calcExchangeFees(fromChain: number, toChain: number, val: BigNumber): Promise { + const exrate = await remoteExchangeRate.getExchangeRate( + CHAIN_INFO[toChain].currency, + CHAIN_INFO[fromChain].currency + ); + + return val + .dividedBy(CHAIN_INFO[toChain].decimals) + .times(exrate * 1.05) + .times(CHAIN_INFO[fromChain].decimals) + .integerValue(BigNumber.ROUND_CEIL); + } + return { inner, // TODO: Find some way to make this more generic, return a txn receipt, throw an exception, etc. transferNft: async ( - fromChain: Chain, - toChain: Chain, - nft: any, - sender: ISigner & Signer & string, - receiver: Address & string - ): Promise => { - const fromHelper = await inner(fromChain); - const toHelper = await inner(toChain); - const estimate = await toHelper.estimateValidateTransferNft( - receiver, - nft.hash - ); - console.log(`Estimate : ${estimate}`); - const exrate = await remoteExchangeRate.getExchangeRate( - CHAIN_INFO[toChain].currency, - CHAIN_INFO[fromChain].currency - ); - const conv = estimate - .dividedBy(CHAIN_INFO[toChain].decimals) - .times(exrate * 1.05) - .times(CHAIN_INFO[fromChain].decimals) - .integerValue(BigNumber.ROUND_CEIL); - console.log("Converted Value: ", conv.toString()); - if (nft.chain === fromChain) { - const transfer = await fromHelper.transferNftToForeign( + fromChain, + toChain, + nft, + sender, + receiver + ): Promise => { + if (fromChain.isWrappedNft(nft)) { + const decoded = fromChain.decodeWrappedNft(nft); + if (decoded.chain_nonce != toChain.getNonce()) { + throw Error("trying to send wrapped nft to non-origin chain!!!"); + } + const approxNft = await toChain.decodeNftFromRaw(decoded.data); + const estimate = await toChain.estimateValidateUnfreezeNft( + receiver, + approxNft + ); + const conv = await calcExchangeFees(fromChain.getNonce(), toChain.getNonce(), estimate); + const [, action] = await fromChain.unfreezeWrappedNft( sender, - toChain, receiver, - nft.id, + nft, conv ); - return transfer; + return action; } else { - if (fromHelper.isWrappedNft(nft)) { - const estimate = await toHelper.estimateValidateUnfreezeNft( - receiver, - nft.raw_data - ); - - const exrate = await remoteExchangeRate.getExchangeRate( - CHAIN_INFO[toChain].currency, - CHAIN_INFO[fromChain].currency - ); - - const conv = estimate - .dividedBy(CHAIN_INFO[toChain].decimals) - .times(exrate * 1.05) - .times(CHAIN_INFO[fromChain].decimals) - .integerValue(BigNumber.ROUND_CEIL); - await fromHelper.unfreezeWrappedNft(sender, receiver, nft.id, conv); - if (fromChain == toChain) { - return; - } else { - const receipt = await fromHelper.transferNftToForeign( - sender, - fromChain, - receiver, - nft.id, - conv - ); - return receipt; - } - } + const packed = fromChain.wrapNftForTransfer(nft); + const estimate = await toChain.estimateValidateTransferNft( + receiver, + packed + ); + const conv = await calcExchangeFees(fromChain.getNonce(), toChain.getNonce(), estimate); + const [, action] = await fromChain.transferNftToForeign( + sender, + toChain.getNonce(), + receiver, + nft, + conv + ) + return action; } }, mint: async ( diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index e6f90ec8c..b0c330550 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -153,16 +153,33 @@ export interface WrappedNftCheck { isWrappedNft(nft: NftInfo): boolean; } +export interface PackNft { + wrapNftForTransfer(nft: NftInfo): Uint8Array; +} + export interface DecodeWrappedNft { decodeWrappedNft(raw_data: NftInfo): WrappedNft; } -export interface DecodeRawNft { - decodeUrlFromRaw(data: Uint8Array): Promise; +// @internal +export interface DecodeRawNft { + /** + * convert raw nft to native one + * uri should be unset! + */ + decodeNftFromRaw(data: Uint8Array): Promise>; +} + +// @internal +export interface FetchUri { + /** + * Get uri for an nft from "decodeNftFromRaw" + */ + nftUri(nft: NativeRaw): Promise } export interface EstimateTxFees { - estimateValidateTransferNft(to: string, nft: NftInfo): Promise; + estimateValidateTransferNft(to: string, nft: Uint8Array): Promise; estimateValidateUnfreezeNft( to: string, nft: NftInfo @@ -173,6 +190,6 @@ export function ConcurrentSendError(): Error { return new Error("concurrent_send"); } -export interface ChainNonce { +export interface ChainNonceGet { getNonce(): number; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 33162b176..09047a264 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -41,7 +41,7 @@ import { WrappedNftCheck, } from "./chain"; import { Base64 } from "js-base64"; -import { ChainNonce, EstimateTxFees, NftInfo } from ".."; +import { ChainNonceGet, EstimateTxFees, NftInfo, PackNft } from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | BigNumber; @@ -203,11 +203,12 @@ export type ElrondHelper = BalanceCheck & IssueESDTNFT & MintNft & DecodeWrappedNft & - DecodeRawNft & { + DecodeRawNft & { mintableEsdts(address: Address): Promise; } & WrappedNftCheck & EstimateTxFees & - ChainNonce; + PackNft + & ChainNonceGet; /** * Create an object implementing cross chain utilities for elrond @@ -761,7 +762,7 @@ export const elrondHelperFactory: ( data: Base64.toUint8Array(nft.native.uris[0]), }; }, - async decodeUrlFromRaw(data: Uint8Array): Promise { + async decodeNftFromRaw(data: Uint8Array) { const nft_info = rawNftDecoder(data); const locked = await getLockedNft(nft_info.token, nft_info.nonce); @@ -769,14 +770,28 @@ export const elrondHelperFactory: ( throw Error("Not a wrapped nft"); } - return Base64.atob(locked!.uris[0]); + return {uri: '', + native: { + balance: 1, + tokenIdentifier: `${nft_info.token}-${nft_info.nonce.toString(16)}`, + creator: '', + name: '', + nonce: nft_info.nonce, + royalties: '', + uris: [], + }}; }, - async estimateValidateTransferNft(_toAddress: string, _nftInfo: NftInfo) { + async estimateValidateTransferNft(_toAddress: string, _nftInfo: Uint8Array) { return estimateGas(NFT_TRANSFER_COST, elrondParams.validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, async estimateValidateUnfreezeNft(_to: string, _nft: NftInfo) { return estimateGas(NFT_UNFREEZE_COST, elrondParams.validators.length); // TODO: properly estimate NFT_UNFREEZE_COST }, + wrapNftForTransfer(nft: NftInfo) { + // Approximation for wrapping this nft + const dataLen = 4 + tokenIdentReal(nft.native.tokenIdentifier).length + 4; + return new Uint8Array(dataLen); + } }; }; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 0a0e29602..4a642e39f 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -32,7 +32,7 @@ import { } from "xpnet-web3-contracts"; import { NftMintArgs } from "../factory/crossChainHelper"; import { NftEthNative, NftPacked } from "validator"; -import { ChainNonce, NftInfo } from ".."; +import { ChainNonceGet, NftInfo, PackNft } from ".."; export type MinterRes = { // Minter smart contract @@ -81,10 +81,11 @@ export type TronHelper = BaseTronHelper & UnfreezeForeign & UnfreezeForeignNft & DecodeWrappedNft & - DecodeRawNft & + DecodeRawNft & EstimateTxFees & WrappedNftCheck & - ChainNonce; + ChainNonceGet + & PackNft; export async function baseTronHelperFactory( provider: TronWeb @@ -281,10 +282,19 @@ export async function tronHelperFactory( return { ...base, - async decodeUrlFromRaw(data: Uint8Array): Promise { + async decodeNftFromRaw(data: Uint8Array) { const packed = NftEthNative.deserializeBinary(data); - return await nftUri(packed.getContractAddr(), packed.getId()); + return { + uri: '', + native: { + uri: '', + contract: packed.getContractAddr(), + tokenId: packed.getId(), + owner: minter_addr, + chainId: tronParams.nonce.toString() + } + } }, isWrappedNft(nft) { return nft.native.contract === tronParams.erc721_addr; @@ -383,17 +393,11 @@ export async function tronHelperFactory( }, async estimateValidateTransferNft( to: string, - nft: NftInfo + nft: Uint8Array ): Promise { - // Protobuf is not deterministic, though perhaps we can approximate this statically - const tokdat = new NftEthNative(); - tokdat.setId(nft.native.tokenId); - tokdat.setNftKind(1); - tokdat.setContractAddr(nft.native.contract); - const encoded = new NftPacked(); encoded.setChainNonce(0x1351); - encoded.setData(tokdat.serializeBinary()); + encoded.setData(nft); return await estimateGas( tronParams.validators, @@ -403,7 +407,7 @@ export async function tronHelperFactory( { type: "address", value: to }, { type: "string", - value: Buffer.from(encoded.serializeBinary()).toString("base64"), + value: Buffer.from(nft).toString("base64"), }, ] ); @@ -426,5 +430,13 @@ export async function tronHelperFactory( ] ); }, + wrapNftForTransfer(nft: NftInfo) { + // Protobuf is not deterministic, though perhaps we can approximate this statically + const tokdat = new NftEthNative(); + tokdat.setId(nft.native.tokenId); + tokdat.setNftKind(1); + tokdat.setContractAddr(nft.native.contract); + return tokdat.serializeBinary() + } }; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 1dc212ffb..e8f3bd41d 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -30,7 +30,7 @@ import { XPNet__factory, } from "xpnet-web3-contracts"; import { Base64 } from "js-base64"; -import { ChainNonce, EstimateTxFees, NftInfo } from ".."; +import { ChainNonceGet, EstimateTxFees, NftInfo, PackNft } from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | EthBN; /** @@ -103,10 +103,11 @@ export type Web3Helper = BaseWeb3Helper & string > & DecodeWrappedNft & - DecodeRawNft & + DecodeRawNft & EstimateTxFees + & PackNft & WrappedNftCheck - & ChainNonce; + & ChainNonceGet; /** * Create an object implementing minimal utilities for a web3 chain @@ -308,24 +309,27 @@ export async function web3HelperFactory( data: packed.getData_asU8(), }; }, - async decodeUrlFromRaw(data: Uint8Array): Promise { + async decodeNftFromRaw(data: Uint8Array) { const packed = NftEthNative.deserializeBinary(data); - return await nftUri(packed.getContractAddr(), EthBN.from(packed.getId())); + return { + uri: '', + native: { + uri: '', + contract: packed.getContractAddr(), + tokenId: packed.getId(), + owner: minter_addr, + chainId: params.nonce.toString() + } + } }, async estimateValidateTransferNft( to: string, - nft: NftInfo + nft: Uint8Array ): Promise { - // Protobuf is not deterministic, though perhaps we can approximate this statically - const tokdat = new NftEthNative(); - tokdat.setId(nft.native.tokenId); - tokdat.setNftKind(1); - tokdat.setContractAddr(nft.native.contract); - const encoded = new NftPacked(); encoded.setChainNonce(0x1351); - encoded.setData(tokdat.serializeBinary()); + encoded.setData(nft); const utx = await minter.populateTransaction.validateTransferNft( randomAction(), @@ -339,16 +343,23 @@ export async function web3HelperFactory( to: string, nft: NftInfo ): Promise { - const raw = Base64.toUint8Array(nft.native.uri) - const nft_dat = NftEthNative.deserializeBinary(raw); const utx = await minter.populateTransaction.validateUnfreezeNft( randomAction(), to, - EthBN.from(nft_dat.getId().toString()), - nft_dat.getContractAddr() + EthBN.from(nft.native.tokenId.toString), + nft.native.contract ); return await estimateGas(params.validators, utx); }, + wrapNftForTransfer(nft) { + // Protobuf is not deterministic, though perhaps we can approximate this statically + const tokdat = new NftEthNative(); + tokdat.setId(nft.native.tokenId); + tokdat.setNftKind(1); + tokdat.setContractAddr(nft.native.contract); + + return tokdat.serializeBinary(); + } }; } From b6596a0af96ffe91d48003ec8da973a8f4d51c51 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 28 Oct 2021 16:21:52 +0530 Subject: [PATCH 102/956] factory: crossChainHelper: properly implement transferNft --- src/factory/crossChainHelper.ts | 9 ++++----- src/helpers/elrond.ts | 4 ++-- tsconfig.json | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index e67c7d122..632c7c26b 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -14,8 +14,8 @@ import BigNumber from "bignumber.js"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; type TransferChain = ChainNonceGet - & TransferNftForeign - & UnfreezeForeignNft + & TransferNftForeign + & UnfreezeForeignNft & EstimateTxFees & PackNft & WrappedNftCheck @@ -46,7 +46,7 @@ type ChainFactory = { nft: NftInfo, sender: SignerF, receiver: string - ): Promise; + ): Promise; /** * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the {@link inner} method. * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar wallet. @@ -138,14 +138,13 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { return { inner, - // TODO: Find some way to make this more generic, return a txn receipt, throw an exception, etc. transferNft: async ( fromChain, toChain, nft, sender, receiver - ): Promise => { + ): Promise => { if (fromChain.isWrappedNft(nft)) { const decoded = fromChain.decodeWrappedNft(nft); if (decoded.chain_nonce != toChain.getNonce()) { diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 09047a264..5436e6a25 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -175,7 +175,7 @@ export interface SetESDTRoles { /** * Identifier for tracking a given action */ -type EventIdent = number; +type EventIdent = string; /** * Traits implemented by this module @@ -600,7 +600,7 @@ export const elrondHelperFactory: ( const id = filterEventId(txr["smartContractResults"]); - return [tx, id]; + return [tx, id.toString()]; } function estimateGas(base_fees: BigNumber, cnt: number) { diff --git a/tsconfig.json b/tsconfig.json index a14ba0841..7eeaf492c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,7 +22,7 @@ // "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, /* Additional Checks */ - "noUnusedLocals": true /* Report errors on unused locals. */, + //"noUnusedLocals": true /* Report errors on unused locals. */, "noUnusedParameters": true /* Report errors on unused parameters. */, "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, From d0baad68d8feb7994ce4f0c224f0bbbfb9b501d5 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 28 Oct 2021 17:15:22 +0530 Subject: [PATCH 103/956] factory: add getter for nft list --- src/factory/crossChainHelper.ts | 66 ++++++++++++++++++++++++++++----- src/helpers/chain.ts | 9 ++++- src/helpers/elrond.ts | 26 ++++++++----- src/helpers/tron.ts | 15 ++++++-- src/helpers/web3.ts | 15 ++++++-- 5 files changed, 103 insertions(+), 28 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index 632c7c26b..bcc2ce72e 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -1,26 +1,31 @@ import { ElrondHelper, ElrondParams } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; -import { ChainNonce, CHAIN_INFO } from "../consts"; +import { Chain, ChainNonce, CHAIN_INFO } from "../consts"; -import { ChainNonceGet, DecodeRawNft, DecodeWrappedNft, EstimateTxFees, MintNft, NftInfo, PackNft, TransferNftForeign, UnfreezeForeignNft, WrappedNftCheck } from ".."; +import { BareNft, ChainNonceGet, DecodeRawNft, DecodeWrappedNft, EstimateTxFees, MintNft, NftInfo, PackNft, PopulateDecodedNft, TransferNftForeign, UnfreezeForeignNft, WrappedNftCheck } from ".."; import { cachedExchangeRateRepo, networkBatchExchangeRateRepo, NetworkModel, } from "crypto-exchange-rate"; import BigNumber from "bignumber.js"; +import { Transaction } from "ethers"; +import axios, { AxiosResponse } from "axios"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; -type TransferChain = ChainNonceGet - & TransferNftForeign +type NftUriChain = ChainNonceGet + & WrappedNftCheck + & DecodeWrappedNft + & DecodeRawNft + & PopulateDecodedNft; + +type FullChain = TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & PackNft - & WrappedNftCheck - & DecodeWrappedNft - & DecodeRawNft; + & NftUriChain; /** * A type representing a chain factory. @@ -41,8 +46,8 @@ type ChainFactory = { RawNftT, TxT >( - fromChain: TransferChain, - toChain: TransferChain, + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, sender: SignerF, receiver: string @@ -57,6 +62,14 @@ type ChainFactory = { owner: Signer, args: NftMintArgs ): Promise; + nftList( + chain: NftUriChain, + owner: string + ): Promise[]>; + nftUri( + chain: NftUriChain, + nft: NftInfo + ): Promise; }; /** @@ -114,6 +127,9 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { NetworkModel.exchangeRateDtoMapper() ) ); + const nftlistRest = axios.create({ + baseURL: 'https://nft-list.herokuapp.com/' + }); const inner = async (chain: ChainNonce): Promise => { let helper = map.get(chain); @@ -138,6 +154,38 @@ export function ChainFactory(chainParams: ChainParams): ChainFactory { return { inner, + async nftList( + chain: NftUriChain, + owner: string + ) { + let endpoint; + switch (chain.getNonce()) { + case Chain.ELROND: + endpoint = `/elrond/${owner}`; + break; + default: + endpoint = `/web3/${chain.getNonce()}/${owner}`; + break; + } + const res: AxiosResponse[]> = await nftlistRest.get(endpoint); + + return res.data; + }, + async nftUri( + chain, + nft + ) { + if (chain.isWrappedNft(nft)) { + const decoded = chain.decodeWrappedNft(nft); + const helper: CrossChainHelper = await inner(decoded.chain_nonce); + const native = await helper.decodeNftFromRaw(decoded.data); + return await helper.populateNft(native as any); + } + return { + uri: nft.uri, + chainId: chain.getNonce().toString() + }; + }, transferNft: async ( fromChain, toChain, diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index b0c330550..ce9c229aa 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -170,12 +170,17 @@ export interface DecodeRawNft { decodeNftFromRaw(data: Uint8Array): Promise>; } +export type BareNft = { + chainId: string, + uri: string +} + // @internal -export interface FetchUri { +export interface PopulateDecodedNft { /** * Get uri for an nft from "decodeNftFromRaw" */ - nftUri(nft: NativeRaw): Promise + populateNft(nft: NftInfo): Promise } export interface EstimateTxFees { diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 5436e6a25..2c4579697 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -41,7 +41,7 @@ import { WrappedNftCheck, } from "./chain"; import { Base64 } from "js-base64"; -import { ChainNonceGet, EstimateTxFees, NftInfo, PackNft } from ".."; +import { BareNft, ChainNonceGet, EstimateTxFees, NftInfo, PackNft, PopulateDecodedNft } from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | BigNumber; @@ -208,7 +208,8 @@ export type ElrondHelper = BalanceCheck & } & WrappedNftCheck & EstimateTxFees & PackNft - & ChainNonceGet; + & ChainNonceGet + & PopulateDecodedNft; /** * Create an object implementing cross chain utilities for elrond @@ -560,9 +561,13 @@ export const elrondHelperFactory: ( }); }; - async function getLockedNft(token: string, nonce: number): Promise { + async function getLockedNft(ident: string): Promise { const nfts = await listNft(elrondParams.minter_address); - return nfts.get(`${token}-${nonce.toString()}`); + const res = nfts.get(ident); + return res && { + uri: Base64.atob(res.uris[0]), + chainId: elrondParams.nonce.toString() + } } const rawNftDecoder = (nftDat: Uint8Array) => { @@ -764,11 +769,6 @@ export const elrondHelperFactory: ( }, async decodeNftFromRaw(data: Uint8Array) { const nft_info = rawNftDecoder(data); - const locked = await getLockedNft(nft_info.token, nft_info.nonce); - - if (locked === undefined) { - throw Error("Not a wrapped nft"); - } return {uri: '', native: { @@ -781,6 +781,14 @@ export const elrondHelperFactory: ( uris: [], }}; }, + async populateNft(nft: NftInfo) { + const locked = await getLockedNft(nft.native.tokenIdentifier); + + if (locked === undefined) { + throw Error("Not a wrapped nft"); + } + return locked; + }, async estimateValidateTransferNft(_toAddress: string, _nftInfo: Uint8Array) { return estimateGas(NFT_TRANSFER_COST, elrondParams.validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 4a642e39f..aceac3b7f 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -32,7 +32,7 @@ import { } from "xpnet-web3-contracts"; import { NftMintArgs } from "../factory/crossChainHelper"; import { NftEthNative, NftPacked } from "validator"; -import { ChainNonceGet, NftInfo, PackNft } from ".."; +import { BareNft, ChainNonceGet, NftInfo, PackNft, PopulateDecodedNft } from ".."; export type MinterRes = { // Minter smart contract @@ -85,7 +85,8 @@ export type TronHelper = BaseTronHelper & EstimateTxFees & WrappedNftCheck & ChainNonceGet - & PackNft; + & PackNft + & PopulateDecodedNft; export async function baseTronHelperFactory( provider: TronWeb @@ -236,12 +237,15 @@ export async function tronHelperFactory( return [hash, action_id]; } - const nftUri = async (contract: string, tokenId: string): Promise => { + const nftUri = async (contract: string, tokenId: string): Promise => { const erc = await provider.contract( UserNftMinter__factory.abi, contract ); - return await erc.tokenURI(tokenId).call(); + return { + uri: await erc.tokenURI(tokenId).call(), + chainId: tronParams.nonce.toString() + }; }; const randomAction = () => @@ -282,6 +286,9 @@ export async function tronHelperFactory( return { ...base, + async populateNft(nft) { + return await nftUri(nft.native.contract, nft.native.tokenId); + }, async decodeNftFromRaw(data: Uint8Array) { const packed = NftEthNative.deserializeBinary(data); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index e8f3bd41d..075f7d9c0 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -30,7 +30,7 @@ import { XPNet__factory, } from "xpnet-web3-contracts"; import { Base64 } from "js-base64"; -import { ChainNonceGet, EstimateTxFees, NftInfo, PackNft } from ".."; +import { BareNft, ChainNonceGet, EstimateTxFees, NftInfo, PackNft, PopulateDecodedNft } from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | EthBN; /** @@ -107,7 +107,8 @@ export type Web3Helper = BaseWeb3Helper & EstimateTxFees & PackNft & WrappedNftCheck - & ChainNonceGet; + & ChainNonceGet + & PopulateDecodedNft; /** * Create an object implementing minimal utilities for a web3 chain @@ -183,9 +184,12 @@ export async function web3HelperFactory( return [receipt, action_id]; } - async function nftUri(contract: string, tokenId: EthBN): Promise { + async function nftUri(contract: string, tokenId: EthBN): Promise { const erc = UserNftMinter__factory.connect(contract, w3); - return await erc.tokenURI(tokenId); + return { + uri: await erc.tokenURI(tokenId), + chainId: params.nonce.toString() + }; } const randomAction = () => @@ -214,6 +218,9 @@ export async function web3HelperFactory( return { ...base, + async populateNft(nft) { + return await nftUri(nft.native.contract, EthBN.from(nft.native.tokenId)); + }, getNonce: () => params.nonce, async balanceWrapped( address: string, From ca2f2b62377b3ca2b36c059cefdb80cdd6ab4938 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 28 Oct 2021 17:37:55 +0530 Subject: [PATCH 104/956] feat(chain-factory): convert ChainParams to Partial --- src/factory/crossChainHelper.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index bcc2ce72e..c1b8606dc 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -90,9 +90,9 @@ export interface ChainParams { } function mapNonceToParams( - chainParams: ChainParams -): Map { - const cToP = new Map(); + chainParams: Partial +): Map { + const cToP = new Map(); cToP.set(2, chainParams.elrondParams); cToP.set(3, chainParams.hecoParams); @@ -113,7 +113,7 @@ function mapNonceToParams( * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. */ -export function ChainFactory(chainParams: ChainParams): ChainFactory { +export function ChainFactory(chainParams: Partial): ChainFactory { let map = new Map(); let cToP = mapNonceToParams(chainParams); function configBatchExchangeService(): NetworkModel.BatchExchangeRateService { From b14b82b8470108117f0e53d8ae287e39809c3a73 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 28 Oct 2021 17:38:33 +0530 Subject: [PATCH 105/956] feat(formatting): prettier --- src/consts.ts | 2 +- src/factory/crossChainHelper.ts | 90 ++++++++++++++++++++------------- src/helpers/chain.ts | 10 ++-- src/helpers/elrond.ts | 66 +++++++++++++++--------- src/helpers/tron.ts | 46 +++++++++-------- src/helpers/web3.ts | 41 +++++++++------ 6 files changed, 156 insertions(+), 99 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index dc013a256..2193d8e57 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -21,7 +21,7 @@ export enum RpcUri { export type ChainNonce = number & ThisType & ThisType

; export type ElrondNonce = ChainNonce; -export type Web3Nonce = ChainNonce +export type Web3Nonce = ChainNonce; export namespace Chain { export const ELROND: ElrondNonce = 2; diff --git a/src/factory/crossChainHelper.ts b/src/factory/crossChainHelper.ts index c1b8606dc..387af15a2 100644 --- a/src/factory/crossChainHelper.ts +++ b/src/factory/crossChainHelper.ts @@ -3,7 +3,20 @@ import { TronHelper, TronParams } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, ChainNonce, CHAIN_INFO } from "../consts"; -import { BareNft, ChainNonceGet, DecodeRawNft, DecodeWrappedNft, EstimateTxFees, MintNft, NftInfo, PackNft, PopulateDecodedNft, TransferNftForeign, UnfreezeForeignNft, WrappedNftCheck } from ".."; +import { + BareNft, + ChainNonceGet, + DecodeRawNft, + DecodeWrappedNft, + EstimateTxFees, + MintNft, + NftInfo, + PackNft, + PopulateDecodedNft, + TransferNftForeign, + UnfreezeForeignNft, + WrappedNftCheck, +} from ".."; import { cachedExchangeRateRepo, networkBatchExchangeRateRepo, @@ -15,17 +28,24 @@ import axios, { AxiosResponse } from "axios"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; -type NftUriChain = ChainNonceGet - & WrappedNftCheck - & DecodeWrappedNft - & DecodeRawNft - & PopulateDecodedNft; +type NftUriChain = ChainNonceGet & + WrappedNftCheck & + DecodeWrappedNft & + DecodeRawNft & + PopulateDecodedNft; -type FullChain = TransferNftForeign - & UnfreezeForeignNft - & EstimateTxFees - & PackNft - & NftUriChain; +type FullChain = TransferNftForeign< + Signer, + string, + BigNumber, + RawNft, + Tx, + string +> & + UnfreezeForeignNft & + EstimateTxFees & + PackNft & + NftUriChain; /** * A type representing a chain factory. @@ -38,14 +58,7 @@ type ChainFactory = { */ inner(chain: ChainNonce): Promise; // IMO This should Return a transaction, which can be signed later by a wallet interface. - transferNft< - SignerF, - RawNftF, - TxF, - SignerT, - RawNftT, - TxT - >( + transferNft( fromChain: FullChain, toChain: FullChain, nft: NftInfo, @@ -92,7 +105,10 @@ export interface ChainParams { function mapNonceToParams( chainParams: Partial ): Map { - const cToP = new Map(); + const cToP = new Map< + number, + Web3Params | ElrondParams | TronParams | undefined + >(); cToP.set(2, chainParams.elrondParams); cToP.set(3, chainParams.hecoParams); @@ -128,7 +144,7 @@ export function ChainFactory(chainParams: Partial): ChainFactory { ) ); const nftlistRest = axios.create({ - baseURL: 'https://nft-list.herokuapp.com/' + baseURL: "https://nft-list.herokuapp.com/", }); const inner = async (chain: ChainNonce): Promise => { @@ -139,7 +155,11 @@ export function ChainFactory(chainParams: Partial): ChainFactory { return helper! as any as T; }; - async function calcExchangeFees(fromChain: number, toChain: number, val: BigNumber): Promise { + async function calcExchangeFees( + fromChain: number, + toChain: number, + val: BigNumber + ): Promise { const exrate = await remoteExchangeRate.getExchangeRate( CHAIN_INFO[toChain].currency, CHAIN_INFO[fromChain].currency @@ -154,10 +174,7 @@ export function ChainFactory(chainParams: Partial): ChainFactory { return { inner, - async nftList( - chain: NftUriChain, - owner: string - ) { + async nftList(chain: NftUriChain, owner: string) { let endpoint; switch (chain.getNonce()) { case Chain.ELROND: @@ -171,10 +188,7 @@ export function ChainFactory(chainParams: Partial): ChainFactory { return res.data; }, - async nftUri( - chain, - nft - ) { + async nftUri(chain, nft) { if (chain.isWrappedNft(nft)) { const decoded = chain.decodeWrappedNft(nft); const helper: CrossChainHelper = await inner(decoded.chain_nonce); @@ -183,7 +197,7 @@ export function ChainFactory(chainParams: Partial): ChainFactory { } return { uri: nft.uri, - chainId: chain.getNonce().toString() + chainId: chain.getNonce().toString(), }; }, transferNft: async ( @@ -203,7 +217,11 @@ export function ChainFactory(chainParams: Partial): ChainFactory { receiver, approxNft ); - const conv = await calcExchangeFees(fromChain.getNonce(), toChain.getNonce(), estimate); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate + ); const [, action] = await fromChain.unfreezeWrappedNft( sender, receiver, @@ -217,14 +235,18 @@ export function ChainFactory(chainParams: Partial): ChainFactory { receiver, packed ); - const conv = await calcExchangeFees(fromChain.getNonce(), toChain.getNonce(), estimate); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate + ); const [, action] = await fromChain.transferNftToForeign( sender, toChain.getNonce(), receiver, nft, conv - ) + ); return action; } }, diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index ce9c229aa..4f2b5cc04 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -6,7 +6,7 @@ export type NftInfo = { readonly uri: string; readonly native: Raw; -} +}; /** * Transfer Liquidity to a foregin chain, freezing the original liquidity @@ -171,16 +171,16 @@ export interface DecodeRawNft { } export type BareNft = { - chainId: string, - uri: string -} + chainId: string; + uri: string; +}; // @internal export interface PopulateDecodedNft { /** * Get uri for an nft from "decodeNftFromRaw" */ - populateNft(nft: NftInfo): Promise + populateNft(nft: NftInfo): Promise; } export interface EstimateTxFees { diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 2c4579697..00515b8a2 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -41,7 +41,14 @@ import { WrappedNftCheck, } from "./chain"; import { Base64 } from "js-base64"; -import { BareNft, ChainNonceGet, EstimateTxFees, NftInfo, PackNft, PopulateDecodedNft } from ".."; +import { + BareNft, + ChainNonceGet, + EstimateTxFees, + NftInfo, + PackNft, + PopulateDecodedNft, +} from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | BigNumber; @@ -207,9 +214,9 @@ export type ElrondHelper = BalanceCheck & mintableEsdts(address: Address): Promise; } & WrappedNftCheck & EstimateTxFees & - PackNft - & ChainNonceGet - & PopulateDecodedNft; + PackNft & + ChainNonceGet & + PopulateDecodedNft; /** * Create an object implementing cross chain utilities for elrond @@ -385,7 +392,7 @@ export const elrondHelperFactory: ( }; function tokenIdentReal(tokenIdentifier: string): string { - const base = tokenIdentifier.split("-") + const base = tokenIdentifier.split("-"); base.pop(); return base.join("-"); } @@ -404,7 +411,11 @@ export const elrondHelperFactory: ( .setFunction(new ContractFunction("MultiESDTNFTTransfer")) .addArg(new AddressValue(mintContract)) .addArg(new BigUIntValue(new BigNumber(2))) - .addArg(new TokenIdentifierValue(Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8"))) + .addArg( + new TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + ) + ) .addArg(new U64Value(new BigNumber(nonce))) .addArg(new BigUIntValue(new BigNumber(1))) .addArg(new TokenIdentifierValue(esdtSwaphex)) @@ -564,10 +575,12 @@ export const elrondHelperFactory: ( async function getLockedNft(ident: string): Promise { const nfts = await listNft(elrondParams.minter_address); const res = nfts.get(ident); - return res && { - uri: Base64.atob(res.uris[0]), - chainId: elrondParams.nonce.toString() - } + return ( + res && { + uri: Base64.atob(res.uris[0]), + chainId: elrondParams.nonce.toString(), + } + ); } const rawNftDecoder = (nftDat: Uint8Array) => { @@ -741,7 +754,9 @@ export const elrondHelperFactory: ( return res.data["data"]["tokens"]; }, isWrappedNft(nft) { - return tokenIdentReal(nft.native.tokenIdentifier) === elrondParams.esdt_nft; + return ( + tokenIdentReal(nft.native.tokenIdentifier) === elrondParams.esdt_nft + ); }, listNft, async setESDTRole( @@ -770,16 +785,18 @@ export const elrondHelperFactory: ( async decodeNftFromRaw(data: Uint8Array) { const nft_info = rawNftDecoder(data); - return {uri: '', - native: { - balance: 1, - tokenIdentifier: `${nft_info.token}-${nft_info.nonce.toString(16)}`, - creator: '', - name: '', - nonce: nft_info.nonce, - royalties: '', - uris: [], - }}; + return { + uri: "", + native: { + balance: 1, + tokenIdentifier: `${nft_info.token}-${nft_info.nonce.toString(16)}`, + creator: "", + name: "", + nonce: nft_info.nonce, + royalties: "", + uris: [], + }, + }; }, async populateNft(nft: NftInfo) { const locked = await getLockedNft(nft.native.tokenIdentifier); @@ -789,7 +806,10 @@ export const elrondHelperFactory: ( } return locked; }, - async estimateValidateTransferNft(_toAddress: string, _nftInfo: Uint8Array) { + async estimateValidateTransferNft( + _toAddress: string, + _nftInfo: Uint8Array + ) { return estimateGas(NFT_TRANSFER_COST, elrondParams.validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, async estimateValidateUnfreezeNft(_to: string, _nft: NftInfo) { @@ -799,7 +819,7 @@ export const elrondHelperFactory: ( // Approximation for wrapping this nft const dataLen = 4 + tokenIdentReal(nft.native.tokenIdentifier).length + 4; return new Uint8Array(dataLen); - } + }, }; }; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index aceac3b7f..a5429abc5 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -32,7 +32,13 @@ import { } from "xpnet-web3-contracts"; import { NftMintArgs } from "../factory/crossChainHelper"; import { NftEthNative, NftPacked } from "validator"; -import { BareNft, ChainNonceGet, NftInfo, PackNft, PopulateDecodedNft } from ".."; +import { + BareNft, + ChainNonceGet, + NftInfo, + PackNft, + PopulateDecodedNft, +} from ".."; export type MinterRes = { // Minter smart contract @@ -82,11 +88,11 @@ export type TronHelper = BaseTronHelper & UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & - EstimateTxFees - & WrappedNftCheck & - ChainNonceGet - & PackNft - & PopulateDecodedNft; + EstimateTxFees & + WrappedNftCheck & + ChainNonceGet & + PackNft & + PopulateDecodedNft; export async function baseTronHelperFactory( provider: TronWeb @@ -237,14 +243,14 @@ export async function tronHelperFactory( return [hash, action_id]; } - const nftUri = async (contract: string, tokenId: string): Promise => { - const erc = await provider.contract( - UserNftMinter__factory.abi, - contract - ); + const nftUri = async ( + contract: string, + tokenId: string + ): Promise => { + const erc = await provider.contract(UserNftMinter__factory.abi, contract); return { uri: await erc.tokenURI(tokenId).call(), - chainId: tronParams.nonce.toString() + chainId: tronParams.nonce.toString(), }; }; @@ -293,15 +299,15 @@ export async function tronHelperFactory( const packed = NftEthNative.deserializeBinary(data); return { - uri: '', + uri: "", native: { - uri: '', + uri: "", contract: packed.getContractAddr(), tokenId: packed.getId(), owner: minter_addr, - chainId: tronParams.nonce.toString() - } - } + chainId: tronParams.nonce.toString(), + }, + }; }, isWrappedNft(nft) { return nft.native.contract === tronParams.erc721_addr; @@ -423,7 +429,7 @@ export async function tronHelperFactory( to: string, nft: NftInfo ): Promise { - const data = Base64.toUint8Array(nft.native.uri) + const data = Base64.toUint8Array(nft.native.uri); const nft_dat = NftEthNative.deserializeBinary(data); return await estimateGas( @@ -443,7 +449,7 @@ export async function tronHelperFactory( tokdat.setId(nft.native.tokenId); tokdat.setNftKind(1); tokdat.setContractAddr(nft.native.contract); - return tokdat.serializeBinary() - } + return tokdat.serializeBinary(); + }, }; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 075f7d9c0..93af2540d 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -30,7 +30,14 @@ import { XPNet__factory, } from "xpnet-web3-contracts"; import { Base64 } from "js-base64"; -import { BareNft, ChainNonceGet, EstimateTxFees, NftInfo, PackNft, PopulateDecodedNft } from ".."; +import { + BareNft, + ChainNonceGet, + EstimateTxFees, + NftInfo, + PackNft, + PopulateDecodedNft, +} from ".."; import { NftMintArgs } from "../factory/crossChainHelper"; type EasyBalance = string | number | EthBN; /** @@ -104,11 +111,11 @@ export type Web3Helper = BaseWeb3Helper & > & DecodeWrappedNft & DecodeRawNft & - EstimateTxFees - & PackNft - & WrappedNftCheck - & ChainNonceGet - & PopulateDecodedNft; + EstimateTxFees & + PackNft & + WrappedNftCheck & + ChainNonceGet & + PopulateDecodedNft; /** * Create an object implementing minimal utilities for a web3 chain @@ -188,7 +195,7 @@ export async function web3HelperFactory( const erc = UserNftMinter__factory.connect(contract, w3); return { uri: await erc.tokenURI(tokenId), - chainId: params.nonce.toString() + chainId: params.nonce.toString(), }; } @@ -301,9 +308,11 @@ export async function web3HelperFactory( id: NftInfo, txFees: BigNumber ): Promise<[TransactionReceipt, string]> { - const res = await minter.connect(sender).withdrawNft(to, id.native.tokenId, { - value: EthBN.from(txFees.toString()), - }); + const res = await minter + .connect(sender) + .withdrawNft(to, id.native.tokenId, { + value: EthBN.from(txFees.toString()), + }); return await extractTxn(res, "UnfreezeNft"); }, @@ -320,15 +329,15 @@ export async function web3HelperFactory( const packed = NftEthNative.deserializeBinary(data); return { - uri: '', + uri: "", native: { - uri: '', + uri: "", contract: packed.getContractAddr(), tokenId: packed.getId(), owner: minter_addr, - chainId: params.nonce.toString() - } - } + chainId: params.nonce.toString(), + }, + }; }, async estimateValidateTransferNft( to: string, @@ -367,6 +376,6 @@ export async function web3HelperFactory( tokdat.setContractAddr(nft.native.contract); return tokdat.serializeBinary(); - } + }, }; } From 0694604458aaa4a11533b7af6e9faa502270b388 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 28 Oct 2021 18:01:39 +0530 Subject: [PATCH 106/956] feat(ci): add docs generation --- .github/workflows/release.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1436d1d0d..400eba311 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,9 +27,12 @@ jobs: - name: build run: yarn build + + - name: Generate Docs + run: npx typedoc --out docs src/index.ts - name: prepare package - run: mkdir out && mv package.json out && mv dist out && mv README.md out && mv LICENSE out + run: mkdir out && mv package.json out && mv dist out && mv README.md out && mv LICENSE out && mv docs out - name: Prepare Master Release uses: s0/git-publish-subdir-action@develop From 4e8f27ab162c4acd603327038ddc5ce6eb64f8fa Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 28 Oct 2021 18:32:09 +0530 Subject: [PATCH 107/956] feat(lib): export ChainFactory --- README.md | 2 +- src/consts.ts | 2 +- src/factory/{crossChainHelper.ts => index.ts} | 0 src/helpers/elrond.ts | 2 +- src/helpers/tron.ts | 2 +- src/helpers/web3.ts | 2 +- src/index.ts | 1 + 7 files changed, 6 insertions(+), 5 deletions(-) rename src/factory/{crossChainHelper.ts => index.ts} (100%) diff --git a/README.md b/README.md index 609651c5e..44813dc59 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Features Available :- - [x] Minting NFTs -- [ ] Bridge +- [X] Bridge - [ ] ... and More ## To Mint an NFT, Follow the steps as specified - diff --git a/src/consts.ts b/src/consts.ts index 2193d8e57..b10989ba7 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -1,4 +1,4 @@ -import { CrossChainHelper } from "./factory/crossChainHelper"; +import { CrossChainHelper } from "."; import { elrondHelperFactory, ElrondParams } from "./helpers/elrond"; import { tronHelperFactory, TronParams } from "./helpers/tron"; import { web3HelperFactory, Web3Params } from "./helpers/web3"; diff --git a/src/factory/crossChainHelper.ts b/src/factory/index.ts similarity index 100% rename from src/factory/crossChainHelper.ts rename to src/factory/index.ts diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 00515b8a2..3b1762596 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -49,7 +49,7 @@ import { PackNft, PopulateDecodedNft, } from ".."; -import { NftMintArgs } from "../factory/crossChainHelper"; +import { NftMintArgs } from ".."; type EasyBalance = string | number | BigNumber; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index a5429abc5..036ff07b9 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -30,7 +30,7 @@ import { XPNet__factory, XPNft__factory, } from "xpnet-web3-contracts"; -import { NftMintArgs } from "../factory/crossChainHelper"; +import { NftMintArgs } from ".."; import { NftEthNative, NftPacked } from "validator"; import { BareNft, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 93af2540d..719b4b2a5 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -38,7 +38,7 @@ import { PackNft, PopulateDecodedNft, } from ".."; -import { NftMintArgs } from "../factory/crossChainHelper"; +import { NftMintArgs } from ".."; type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain diff --git a/src/index.ts b/src/index.ts index 86917106d..b3f088d55 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,3 +3,4 @@ export * from "./helpers/elrond"; export * from "./helpers/web3"; export * from "./helpers/tron"; export * from "./socket"; +export * from "./factory" From 539d2c565bd14471d0fc0987cd60c66bee6cd4e3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 28 Oct 2021 18:34:18 +0530 Subject: [PATCH 108/956] feat(lint): prettier --- .github/workflows/release.yml | 2 +- README.md | 2 +- src/factory/index.ts | 2 +- src/index.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 400eba311..5b71cd4e5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: - name: build run: yarn build - + - name: Generate Docs run: npx typedoc --out docs src/index.ts diff --git a/README.md b/README.md index 44813dc59..5371f12cf 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Features Available :- - [x] Minting NFTs -- [X] Bridge +- [x] Bridge - [ ] ... and More ## To Mint an NFT, Follow the steps as specified - diff --git a/src/factory/index.ts b/src/factory/index.ts index 387af15a2..cb3abfe00 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -23,7 +23,7 @@ import { NetworkModel, } from "crypto-exchange-rate"; import BigNumber from "bignumber.js"; -import { Transaction } from "ethers"; + import axios, { AxiosResponse } from "axios"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; diff --git a/src/index.ts b/src/index.ts index b3f088d55..89a193c50 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,4 +3,4 @@ export * from "./helpers/elrond"; export * from "./helpers/web3"; export * from "./helpers/tron"; export * from "./socket"; -export * from "./factory" +export * from "./factory"; From 68e29907dfc3fc68683f316b39fd698e970831c1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 28 Oct 2021 19:49:58 +0530 Subject: [PATCH 109/956] feat(docs): add more docs --- src/consts.ts | 5 +++-- src/factory/index.ts | 32 ++++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index b10989ba7..1b4c9229e 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -3,7 +3,7 @@ import { elrondHelperFactory, ElrondParams } from "./helpers/elrond"; import { tronHelperFactory, TronParams } from "./helpers/tron"; import { web3HelperFactory, Web3Params } from "./helpers/web3"; import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; -import { ElrondHelper, Web3Helper } from "validator"; +import { ElrondHelper, Web3Helper, TronHelper } from "validator"; // All the supported testnet uri's are here. export enum RpcUri { @@ -22,6 +22,7 @@ export enum RpcUri { export type ChainNonce = number & ThisType & ThisType

; export type ElrondNonce = ChainNonce; export type Web3Nonce = ChainNonce; +export type TronNonce = ChainNonce; export namespace Chain { export const ELROND: ElrondNonce = 2; @@ -31,7 +32,7 @@ export namespace Chain { export const AVALANCHE: Web3Nonce = 6; export const POLYGON: Web3Nonce = 7; export const FANTOM: Web3Nonce = 8; - export const TRON: Web3Nonce = 9; + export const TRON: TronNonce = 9; export const CELO: Web3Nonce = 0xb; export const HARMONY: Web3Nonce = 0xc; } diff --git a/src/factory/index.ts b/src/factory/index.ts index cb3abfe00..42a8d42e8 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -53,11 +53,20 @@ type FullChain = TransferNftForeign< */ type ChainFactory = { /** - * Create a cross chain helper object - * @param chain: {@link Chain} to create the helper for + * Creates an helper factory for a given chain + * @type T: Either {@link ElrondHelper} | {@link Web3Helper} | {@link TronHelper} as required. + * @type P: Either {@link ElrondParams} | {@link Web3Params} | {@link TronParams} as required. + * @param chain: {@link Chain} to create the helper for. */ inner(chain: ChainNonce): Promise; - // IMO This should Return a transaction, which can be signed later by a wallet interface. + /** + * Transfers the NFT from one chain to other. + * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. + * @param toChain {@link FullChain} the chain to transfer to. Use inner method of the factory to get this. + * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the nftList method of the factory. + * @param sender {@link Sender} The owner of the NFT. + * @param receiver Address of the Receiver of the NFT. + */ transferNft( fromChain: FullChain, toChain: FullChain, @@ -66,19 +75,30 @@ type ChainFactory = { receiver: string ): Promise; /** - * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the {@link inner} method. - * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar wallet. - * @param args: {@link NftMintArgs} Arguments to mint the nft. + * Mints an NFT on the chain. + * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. + * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar wallet. + * @param args: {@link NftMintArgs} Arguments to mint the nft. Contract is must for web3 and tron. Identifier is must for elrond. */ mint( chain: MintNft, owner: Signer, args: NftMintArgs ): Promise; + /** + * Lists all the NFTs on the chain owner by {@param owner}. + * @param chain: {@link NftUriChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. + * @param owner: Address of the owner of the NFT. + */ nftList( chain: NftUriChain, owner: string ): Promise[]>; + /** + * Fetches the URI of the NFTs on the chain. + * @param chain: {@link NftUriChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. + * @param nft: {@link NftInfo} The NFT of which you want to fetch the URI. Usually comes from the `nftList` method. + */ nftUri( chain: NftUriChain, nft: NftInfo From 68e7451b2ba8fe7a262b16bd1d099478a9aed2da Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 28 Oct 2021 23:02:44 +0530 Subject: [PATCH 110/956] fix(map): add ropsten to the map --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 42a8d42e8..175e09c57 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -133,7 +133,7 @@ function mapNonceToParams( cToP.set(2, chainParams.elrondParams); cToP.set(3, chainParams.hecoParams); cToP.set(4, chainParams.bscParams); - + cToP.set(5, chainParams.ropstenParams); cToP.set(6, chainParams.avalancheParams); cToP.set(7, chainParams.polygonParams); cToP.set(8, chainParams.fantomParams); From 3f9adc848444483820b6defc7fff56f820df31d1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 29 Oct 2021 14:04:37 +0530 Subject: [PATCH 111/956] feat(factory): add fee estimation --- src/factory/index.ts | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 175e09c57..2489614d8 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -64,7 +64,7 @@ type ChainFactory = { * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. * @param toChain {@link FullChain} the chain to transfer to. Use inner method of the factory to get this. * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the nftList method of the factory. - * @param sender {@link Sender} The owner of the NFT. + * @param sender {@link Sender} The owner of the NFT. * @param receiver Address of the Receiver of the NFT. */ transferNft( @@ -103,6 +103,12 @@ type ChainFactory = { chain: NftUriChain, nft: NftInfo ): Promise; + estimateFees( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + receiver: string + ): Promise; }; /** @@ -193,6 +199,34 @@ export function ChainFactory(chainParams: Partial): ChainFactory { } return { + async estimateFees(fromChain, toChain, nft, receiver) { + if (fromChain.isWrappedNft(nft)) { + const decoded = fromChain.decodeWrappedNft(nft); + const approxNft = await toChain.decodeNftFromRaw(decoded.data); + const estimate = await toChain.estimateValidateUnfreezeNft( + receiver, + approxNft + ); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate + ); + return conv; + } else { + const packed = fromChain.wrapNftForTransfer(nft); + const estimate = await toChain.estimateValidateTransferNft( + receiver, + packed + ); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate + ); + return conv; + } + }, inner, async nftList(chain: NftUriChain, owner: string) { let endpoint; From ee357a659420d6187d1735a05c270262772b6c7b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 29 Oct 2021 14:08:34 +0530 Subject: [PATCH 112/956] feat(packages): bump ethers --- package.json | 2 +- yarn.lock | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a8bc82b5b..d316817d5 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "axios": "^0.21.1", "bignumber.js": "^9.0.1", "crypto-exchange-rate": "https://github.com/xp-network/exchange-rate#master-dist", - "ethers": "5.4.1", + "ethers": "5.4.4", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index b1f79c5a0..77edda116 100644 --- a/yarn.lock +++ b/yarn.lock @@ -599,6 +599,31 @@ bech32 "1.1.4" ws "7.4.6" +"@ethersproject/providers@5.4.3": + version "5.4.3" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.3.tgz#4cd7ccd9e12bc3875b33df8b24abf735663958a5" + integrity sha512-VURwkaWPoUj7jq9NheNDT5Iyy64Qcyf6BOFDwVdHsmLmX/5prNjFrgSX3GHPE4z1BRrVerDxe2yayvXKFm/NNg== + dependencies: + "@ethersproject/abstract-provider" "^5.4.0" + "@ethersproject/abstract-signer" "^5.4.0" + "@ethersproject/address" "^5.4.0" + "@ethersproject/basex" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/constants" "^5.4.0" + "@ethersproject/hash" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/networks" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/random" "^5.4.0" + "@ethersproject/rlp" "^5.4.0" + "@ethersproject/sha2" "^5.4.0" + "@ethersproject/strings" "^5.4.0" + "@ethersproject/transactions" "^5.4.0" + "@ethersproject/web" "^5.4.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/providers@5.4.5": version "5.4.5" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" @@ -2854,7 +2879,43 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -ethers@5.4.1, ethers@^5.4.1: +ethers@5.4.4: + version "5.4.4" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.4.tgz#35cce530505b84c699da944162195cfb3f894947" + integrity sha512-zaTs8yaDjfb0Zyj8tT6a+/hEkC+kWAA350MWRp6yP5W7NdGcURRPMOpOU+6GtkfxV9wyJEShWesqhE/TjdqpMA== + dependencies: + "@ethersproject/abi" "5.4.0" + "@ethersproject/abstract-provider" "5.4.1" + "@ethersproject/abstract-signer" "5.4.1" + "@ethersproject/address" "5.4.0" + "@ethersproject/base64" "5.4.0" + "@ethersproject/basex" "5.4.0" + "@ethersproject/bignumber" "5.4.1" + "@ethersproject/bytes" "5.4.0" + "@ethersproject/constants" "5.4.0" + "@ethersproject/contracts" "5.4.1" + "@ethersproject/hash" "5.4.0" + "@ethersproject/hdnode" "5.4.0" + "@ethersproject/json-wallets" "5.4.0" + "@ethersproject/keccak256" "5.4.0" + "@ethersproject/logger" "5.4.0" + "@ethersproject/networks" "5.4.2" + "@ethersproject/pbkdf2" "5.4.0" + "@ethersproject/properties" "5.4.0" + "@ethersproject/providers" "5.4.3" + "@ethersproject/random" "5.4.0" + "@ethersproject/rlp" "5.4.0" + "@ethersproject/sha2" "5.4.0" + "@ethersproject/signing-key" "5.4.0" + "@ethersproject/solidity" "5.4.0" + "@ethersproject/strings" "5.4.0" + "@ethersproject/transactions" "5.4.0" + "@ethersproject/units" "5.4.0" + "@ethersproject/wallet" "5.4.0" + "@ethersproject/web" "5.4.0" + "@ethersproject/wordlists" "5.4.0" + +ethers@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.1.tgz#bcff1e9f45bf1a061bf313ec04e8d9881d2d53f9" integrity sha512-SrcddMdCgP1hukDvCPd87Aipbf4NWjQvdfAbZ65XSZGbfyuYPtIrUJPDH5B1SBRsdlfiEgX3eoz28DdBDzMNFg== From 21afbd4d9f7c5c1afb55c96a166be6b30ed80a1a Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 29 Oct 2021 16:26:40 +0530 Subject: [PATCH 113/956] crossChainHelper: add updateParams --- src/factory/index.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 2489614d8..b664133b7 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -109,6 +109,11 @@ type ChainFactory = { nft: NftInfo, receiver: string ): Promise; + // Update parameters for a specific chain + updateParams( + nonce: ChainNonce, + params: TP + ): void; }; /** @@ -228,7 +233,17 @@ export function ChainFactory(chainParams: Partial): ChainFactory { } }, inner, - async nftList(chain: NftUriChain, owner: string) { + updateParams( + chainNonce: ChainNonce, + params: TP + ) { + map.delete(chainNonce); + cToP.set(chainNonce, params as any); + }, + async nftList( + chain: NftUriChain, + owner: string + ) { let endpoint; switch (chain.getNonce()) { case Chain.ELROND: From c62dcdb907715ab3943f268c4c7f67c42dfd4c7f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 29 Oct 2021 17:34:09 +0530 Subject: [PATCH 114/956] feat(web3): add approve methods --- src/helpers/chain.ts | 3 +++ src/helpers/web3.ts | 64 ++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 62 insertions(+), 5 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 4f2b5cc04..076243184 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,3 +1,6 @@ +import { Signer } from "ethers"; +import { UserNftMinter } from "xpnet-web3-contracts"; + /** * Internal NFT Info * WARN: should be used with care. URI might not be correct diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 719b4b2a5..272cdce14 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -17,7 +17,12 @@ import { MintNft, WrappedNftCheck, } from "./chain"; -import { Signer, BigNumber as EthBN, PopulatedTransaction } from "ethers"; +import { + Signer, + BigNumber as EthBN, + PopulatedTransaction, + Wallet, +} from "ethers"; import { TransactionReceipt, TransactionResponse, @@ -26,6 +31,7 @@ import { import { NftEthNative, NftPacked } from "validator"; import { Minter__factory, + UserNftMinter, UserNftMinter__factory, XPNet__factory, } from "xpnet-web3-contracts"; @@ -39,6 +45,7 @@ import { PopulateDecodedNft, } from ".."; import { NftMintArgs } from ".."; +import { ApiProvider } from "@elrondnetwork/erdjs/out"; type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain @@ -64,6 +71,21 @@ export type MintArgs = { uri: string; }; +export interface IsApproved { + isApprovedForMinter( + address: NftInfo, + erc: UserNftMinter + ): Promise; +} + +export interface Approve { + approveForMinter( + address: NftInfo, + sender: Signer, + erc: UserNftMinter + ): Promise; +} + /** * Base util traits */ @@ -115,7 +137,9 @@ export type Web3Helper = BaseWeb3Helper & PackNft & WrappedNftCheck & ChainNonceGet & - PopulateDecodedNft; + PopulateDecodedNft & + IsApproved & + Approve; /** * Create an object implementing minimal utilities for a web3 chain @@ -221,10 +245,42 @@ export async function web3HelperFactory( return new BigNumber(fee.toString()); } + const isApprovedForMinter = async ( + id: NftInfo, + erc: UserNftMinter + ) => { + const approvedAddress = await erc.getApproved(id.native.tokenId); + if (approvedAddress === id.native.contract) { + return true; + } + return false; + }; + + const approveForMinter = async ( + id: NftInfo, + sender: Signer, + erc: UserNftMinter + ) => { + const isApproved = await isApprovedForMinter(id, erc); + + if (isApproved) { + return true; + } + + const receipt = await erc.approve( + await sender.getAddress(), + id.native.tokenId + ); + await receipt.wait(); + return true; + }; + const base = await baseWeb3HelperFactory(params.provider); return { ...base, + approveForMinter, + isApprovedForMinter, async populateNft(nft) { return await nftUri(nft.native.contract, EthBN.from(nft.native.tokenId)); }, @@ -275,9 +331,7 @@ export async function web3HelperFactory( txFees: BigNumber ): Promise<[TransactionReceipt, string]> { const erc = UserNftMinter__factory.connect(id.native.contract, sender); - const ta = await erc.approve(minter.address, id.native.tokenId); - - await ta.wait(); + await approveForMinter(id, sender, erc); const txr = await minter .connect(sender) From b98f2f513d24870fb7e0e246b0a07817ba998611 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 29 Oct 2021 17:52:36 +0530 Subject: [PATCH 115/956] web3: estimateValidateUnfreezeNft: fix derp --- src/helpers/web3.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 272cdce14..37e56dcde 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -416,7 +416,7 @@ export async function web3HelperFactory( const utx = await minter.populateTransaction.validateUnfreezeNft( randomAction(), to, - EthBN.from(nft.native.tokenId.toString), + EthBN.from(nft.native.tokenId.toString()), nft.native.contract ); From 5ed005229c609e5dea29f596ebcb61f55c329754 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 29 Oct 2021 20:02:11 +0530 Subject: [PATCH 116/956] Revert "feat(web3): add approve methods" This reverts commit c62dcdb907715ab3943f268c4c7f67c42dfd4c7f. --- src/helpers/chain.ts | 3 --- src/helpers/web3.ts | 64 ++++---------------------------------------- 2 files changed, 5 insertions(+), 62 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 076243184..4f2b5cc04 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,6 +1,3 @@ -import { Signer } from "ethers"; -import { UserNftMinter } from "xpnet-web3-contracts"; - /** * Internal NFT Info * WARN: should be used with care. URI might not be correct diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 37e56dcde..b23386187 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -17,12 +17,7 @@ import { MintNft, WrappedNftCheck, } from "./chain"; -import { - Signer, - BigNumber as EthBN, - PopulatedTransaction, - Wallet, -} from "ethers"; +import { Signer, BigNumber as EthBN, PopulatedTransaction } from "ethers"; import { TransactionReceipt, TransactionResponse, @@ -31,7 +26,6 @@ import { import { NftEthNative, NftPacked } from "validator"; import { Minter__factory, - UserNftMinter, UserNftMinter__factory, XPNet__factory, } from "xpnet-web3-contracts"; @@ -45,7 +39,6 @@ import { PopulateDecodedNft, } from ".."; import { NftMintArgs } from ".."; -import { ApiProvider } from "@elrondnetwork/erdjs/out"; type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain @@ -71,21 +64,6 @@ export type MintArgs = { uri: string; }; -export interface IsApproved { - isApprovedForMinter( - address: NftInfo, - erc: UserNftMinter - ): Promise; -} - -export interface Approve { - approveForMinter( - address: NftInfo, - sender: Signer, - erc: UserNftMinter - ): Promise; -} - /** * Base util traits */ @@ -137,9 +115,7 @@ export type Web3Helper = BaseWeb3Helper & PackNft & WrappedNftCheck & ChainNonceGet & - PopulateDecodedNft & - IsApproved & - Approve; + PopulateDecodedNft; /** * Create an object implementing minimal utilities for a web3 chain @@ -245,42 +221,10 @@ export async function web3HelperFactory( return new BigNumber(fee.toString()); } - const isApprovedForMinter = async ( - id: NftInfo, - erc: UserNftMinter - ) => { - const approvedAddress = await erc.getApproved(id.native.tokenId); - if (approvedAddress === id.native.contract) { - return true; - } - return false; - }; - - const approveForMinter = async ( - id: NftInfo, - sender: Signer, - erc: UserNftMinter - ) => { - const isApproved = await isApprovedForMinter(id, erc); - - if (isApproved) { - return true; - } - - const receipt = await erc.approve( - await sender.getAddress(), - id.native.tokenId - ); - await receipt.wait(); - return true; - }; - const base = await baseWeb3HelperFactory(params.provider); return { ...base, - approveForMinter, - isApprovedForMinter, async populateNft(nft) { return await nftUri(nft.native.contract, EthBN.from(nft.native.tokenId)); }, @@ -331,7 +275,9 @@ export async function web3HelperFactory( txFees: BigNumber ): Promise<[TransactionReceipt, string]> { const erc = UserNftMinter__factory.connect(id.native.contract, sender); - await approveForMinter(id, sender, erc); + const ta = await erc.approve(minter.address, id.native.tokenId); + + await ta.wait(); const txr = await minter .connect(sender) From ce9de5185901cf0509af3c79fc12cc1d0eeb34cc Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 30 Oct 2021 14:32:01 +0530 Subject: [PATCH 117/956] feat(factory): return receipt and action ID --- src/factory/index.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index b664133b7..05acae091 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -73,7 +73,7 @@ type ChainFactory = { nft: NftInfo, sender: SignerF, receiver: string - ): Promise; + ): Promise<[TxF, string]>; /** * Mints an NFT on the chain. * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. @@ -275,7 +275,7 @@ export function ChainFactory(chainParams: Partial): ChainFactory { nft, sender, receiver - ): Promise => { + )=> { if (fromChain.isWrappedNft(nft)) { const decoded = fromChain.decodeWrappedNft(nft); if (decoded.chain_nonce != toChain.getNonce()) { @@ -291,13 +291,13 @@ export function ChainFactory(chainParams: Partial): ChainFactory { toChain.getNonce(), estimate ); - const [, action] = await fromChain.unfreezeWrappedNft( + const res = await fromChain.unfreezeWrappedNft( sender, receiver, nft, conv ); - return action; + return res; } else { const packed = fromChain.wrapNftForTransfer(nft); const estimate = await toChain.estimateValidateTransferNft( @@ -309,14 +309,14 @@ export function ChainFactory(chainParams: Partial): ChainFactory { toChain.getNonce(), estimate ); - const [, action] = await fromChain.transferNftToForeign( + const res = await fromChain.transferNftToForeign( sender, toChain.getNonce(), receiver, nft, conv ); - return action; + return res; } }, mint: async ( From 3f70ae7f2d06f61386ecb5b2c5ca18890645c363 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 30 Oct 2021 15:31:45 +0530 Subject: [PATCH 118/956] Revert "Revert "feat(web3): add approve methods"" This reverts commit 5ed005229c609e5dea29f596ebcb61f55c329754. --- src/helpers/chain.ts | 3 +++ src/helpers/web3.ts | 64 ++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 62 insertions(+), 5 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 4f2b5cc04..076243184 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,3 +1,6 @@ +import { Signer } from "ethers"; +import { UserNftMinter } from "xpnet-web3-contracts"; + /** * Internal NFT Info * WARN: should be used with care. URI might not be correct diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index b23386187..37e56dcde 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -17,7 +17,12 @@ import { MintNft, WrappedNftCheck, } from "./chain"; -import { Signer, BigNumber as EthBN, PopulatedTransaction } from "ethers"; +import { + Signer, + BigNumber as EthBN, + PopulatedTransaction, + Wallet, +} from "ethers"; import { TransactionReceipt, TransactionResponse, @@ -26,6 +31,7 @@ import { import { NftEthNative, NftPacked } from "validator"; import { Minter__factory, + UserNftMinter, UserNftMinter__factory, XPNet__factory, } from "xpnet-web3-contracts"; @@ -39,6 +45,7 @@ import { PopulateDecodedNft, } from ".."; import { NftMintArgs } from ".."; +import { ApiProvider } from "@elrondnetwork/erdjs/out"; type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain @@ -64,6 +71,21 @@ export type MintArgs = { uri: string; }; +export interface IsApproved { + isApprovedForMinter( + address: NftInfo, + erc: UserNftMinter + ): Promise; +} + +export interface Approve { + approveForMinter( + address: NftInfo, + sender: Signer, + erc: UserNftMinter + ): Promise; +} + /** * Base util traits */ @@ -115,7 +137,9 @@ export type Web3Helper = BaseWeb3Helper & PackNft & WrappedNftCheck & ChainNonceGet & - PopulateDecodedNft; + PopulateDecodedNft & + IsApproved & + Approve; /** * Create an object implementing minimal utilities for a web3 chain @@ -221,10 +245,42 @@ export async function web3HelperFactory( return new BigNumber(fee.toString()); } + const isApprovedForMinter = async ( + id: NftInfo, + erc: UserNftMinter + ) => { + const approvedAddress = await erc.getApproved(id.native.tokenId); + if (approvedAddress === id.native.contract) { + return true; + } + return false; + }; + + const approveForMinter = async ( + id: NftInfo, + sender: Signer, + erc: UserNftMinter + ) => { + const isApproved = await isApprovedForMinter(id, erc); + + if (isApproved) { + return true; + } + + const receipt = await erc.approve( + await sender.getAddress(), + id.native.tokenId + ); + await receipt.wait(); + return true; + }; + const base = await baseWeb3HelperFactory(params.provider); return { ...base, + approveForMinter, + isApprovedForMinter, async populateNft(nft) { return await nftUri(nft.native.contract, EthBN.from(nft.native.tokenId)); }, @@ -275,9 +331,7 @@ export async function web3HelperFactory( txFees: BigNumber ): Promise<[TransactionReceipt, string]> { const erc = UserNftMinter__factory.connect(id.native.contract, sender); - const ta = await erc.approve(minter.address, id.native.tokenId); - - await ta.wait(); + await approveForMinter(id, sender, erc); const txr = await minter .connect(sender) From 4193a9dd80a4c3c25dcfe677c319bf4fa85bf134 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 30 Oct 2021 15:36:41 +0530 Subject: [PATCH 119/956] fix(web3): approve --- src/helpers/web3.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 37e56dcde..bf00bd021 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -74,15 +74,14 @@ export type MintArgs = { export interface IsApproved { isApprovedForMinter( address: NftInfo, - erc: UserNftMinter + sender: Signer ): Promise; } export interface Approve { approveForMinter( address: NftInfo, - sender: Signer, - erc: UserNftMinter + sender: Signer ): Promise; } @@ -247,8 +246,9 @@ export async function web3HelperFactory( const isApprovedForMinter = async ( id: NftInfo, - erc: UserNftMinter + signer: Signer ) => { + const erc = UserNftMinter__factory.connect(id.native.contract, signer) const approvedAddress = await erc.getApproved(id.native.tokenId); if (approvedAddress === id.native.contract) { return true; @@ -258,11 +258,10 @@ export async function web3HelperFactory( const approveForMinter = async ( id: NftInfo, - sender: Signer, - erc: UserNftMinter + sender: Signer ) => { - const isApproved = await isApprovedForMinter(id, erc); - + const isApproved = await isApprovedForMinter(id, sender); + const erc = UserNftMinter__factory.connect(id.native.contract, w3) if (isApproved) { return true; } @@ -331,7 +330,7 @@ export async function web3HelperFactory( txFees: BigNumber ): Promise<[TransactionReceipt, string]> { const erc = UserNftMinter__factory.connect(id.native.contract, sender); - await approveForMinter(id, sender, erc); + await approveForMinter(id, sender); const txr = await minter .connect(sender) From 14189a8b4bfe18e2761dc4af65370b2b4caffbd0 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sat, 30 Oct 2021 15:40:31 +0530 Subject: [PATCH 120/956] elrond: minor changes for ExtensionProvider --- src/helpers/elrond.ts | 50 ++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 3b1762596..71807d680 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -51,6 +51,8 @@ import { } from ".."; import { NftMintArgs } from ".."; +type ElrondSigner = ISigner | ExtensionProvider; + type EasyBalance = string | number | BigNumber; const ESDT_ISSUE_ADDR = new Address( @@ -134,7 +136,7 @@ export interface IssueESDTNFT { * @returns ticker of the esdt */ issueESDTNft( - sender: ISigner, + sender: ElrondSigner, name: string, ticker: string, canFreeze: boolean | undefined, @@ -176,7 +178,7 @@ export interface SetESDTRoles { * @param token ESDT Identifier * @param roles Roles to set */ - setESDTRole(sender: ISigner, token: string, roles: [ESDTRole]): Promise; + setESDTRole(sender: ElrondSigner, token: string, roles: [ESDTRole]): Promise; } /** @@ -189,10 +191,10 @@ type EventIdent = string; */ export type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & - UnfreezeForeign & + TransferForeign & + UnfreezeForeign & TransferNftForeign< - ISigner, + ElrondSigner, string, BigNumber, EsdtNftInfo, @@ -200,7 +202,7 @@ export type ElrondHelper = BalanceCheck & EventIdent > & UnfreezeForeignNft< - ISigner, + ElrondSigner, string, BigNumber, EsdtNftInfo, @@ -208,7 +210,7 @@ export type ElrondHelper = BalanceCheck & EventIdent > & IssueESDTNFT & - MintNft & + MintNft & DecodeWrappedNft & DecodeRawNft & { mintableEsdts(address: Address): Promise; @@ -257,15 +259,15 @@ export const elrondHelperFactory: ( networkConfig.MinGasPrice.valueOf() * networkConfig.GasPriceModifier.valueOf(); - const syncAccount = async (signer: ISigner | ExtensionProvider) => { - const account = new Account(new Address(await signer.getAddress())); + const syncAccount = async (signer: ElrondSigner) => { + const account = new Account(await getAddress(signer)); await account.sync(provider); return account; }; const signAndSend = async ( - signer: ISigner | ExtensionProvider, + signer: ElrondSigner, tx: Transaction ) => { const acc = await syncAccount(signer); @@ -322,7 +324,7 @@ export const elrondHelperFactory: ( throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); }; - const doEgldSwap = async (sender: ISigner, value: EasyBalance) => { + const doEgldSwap = async (sender: ElrondSigner, value: EasyBalance) => { const utx = new Transaction({ receiver: swapContract, gasLimit: new GasLimit(50000000), @@ -625,6 +627,10 @@ export const elrondHelperFactory: ( return base_fees.times((cnt + 1) * gasPriceModif); // assume execution takes about twice as much gas fees } + async function getAddress(sender: ElrondSigner): Promise

{ + return new Address(await sender.getAddress()) + } + return { async balance(address: string | Address): Promise { const wallet = new Account(new Address(address)); @@ -650,7 +656,7 @@ export const elrondHelperFactory: ( return res; }, async transferNativeToForeign( - sender: ISigner, + sender: ElrondSigner, chain_nonce: number, to: string, value: EasyBalance, @@ -666,7 +672,7 @@ export const elrondHelperFactory: ( return await extractId(tx); }, async unfreezeWrapped( - sender: ISigner, + sender: ElrondSigner, chain_nonce: number, to: string, value: EasyBalance, @@ -675,7 +681,7 @@ export const elrondHelperFactory: ( await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeTxn( chain_nonce, - sender.getAddress(), + await getAddress(sender), to, value ); @@ -684,7 +690,7 @@ export const elrondHelperFactory: ( return await extractId(tx); }, async transferNftToForeign( - sender: ISigner, + sender: ElrondSigner, chain_nonce: number, to: string, info: NftInfo, @@ -693,7 +699,7 @@ export const elrondHelperFactory: ( await doEgldSwap(sender, txFees); const txu = unsignedTransferNftTxn( chain_nonce, - sender.getAddress(), + await getAddress(sender), to, info.native, new BigNumber(txFees.toString()) @@ -703,14 +709,14 @@ export const elrondHelperFactory: ( return await extractId(tx); }, async unfreezeWrappedNft( - sender: ISigner, + sender: ElrondSigner, to: string, nft: NftInfo, txFees: EasyBalance ): Promise<[Transaction, EventIdent]> { await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeNftTxn( - sender.getAddress(), + await getAddress(sender), to, nft.native.nonce, new BigNumber(txFees.toString()) @@ -721,7 +727,7 @@ export const elrondHelperFactory: ( }, unsignedIssueESDTNft, async issueESDTNft( - sender: ISigner, + sender: ElrondSigner, name: string, ticker: string, canFreeze: boolean = false, @@ -741,8 +747,8 @@ export const elrondHelperFactory: ( const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; return Buffer.from(tickerh, "hex").toString("utf-8"); }, - async mintNft(owner: ISigner, args: NftMintArgs): Promise { - const txu = unsignedMintNftTxn(owner.getAddress(), args as NftIssueArgs); + async mintNft(owner: ElrondSigner, args: NftMintArgs): Promise { + const txu = unsignedMintNftTxn(await getAddress(owner), args as NftIssueArgs); return await signAndSend(owner, txu); }, @@ -760,7 +766,7 @@ export const elrondHelperFactory: ( }, listNft, async setESDTRole( - manager: ISigner, + manager: ElrondSigner, token: string, target: Address, roles: [ESDTRole] From de3e888088b0afcec3cf3db9f27a10b3bfb57004 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sat, 30 Oct 2021 16:20:44 +0530 Subject: [PATCH 121/956] tron: make signer optional --- src/helpers/tron.ts | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 036ff07b9..fcb125a24 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -40,6 +40,9 @@ import { PopulateDecodedNft, } from ".."; +// Uses default private key in provider if sender is undefinedd +type TronSender = string | undefined; + export type MinterRes = { // Minter smart contract minter: string; @@ -52,7 +55,7 @@ export type MinterRes = { }; export type BaseTronHelper = BalanceCheck & - MintNft & { + MintNft & { /** * * Deploy an ERC721 user minter smart contract @@ -60,7 +63,7 @@ export type BaseTronHelper = BalanceCheck & * @argument deployer deployer of this smart contract * @returns Address of the deployed smart contract */ - deployErc721(deployer: string): Promise; + deployErc721(deployer: TronSender): Promise; /** * Deploy Minter Smart Contract * @@ -70,7 +73,7 @@ export type BaseTronHelper = BalanceCheck & * @argument whitelist optional whitelisted nfts contract (deploys one if empty/undefined) */ deployMinter( - deployer: string, + deployer: TronSender, validators: string[], threshold: number, whitelist: string[] | undefined @@ -80,12 +83,12 @@ export type BaseTronHelper = BalanceCheck & export type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & + TransferForeign & // TODO: Use TX Fees - TransferNftForeign & + TransferNftForeign & // TODO: Use TX Fees - UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeign & + UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & EstimateTxFees & @@ -97,11 +100,11 @@ export type TronHelper = BaseTronHelper & export async function baseTronHelperFactory( provider: TronWeb ): Promise { - const setSigner = (signer: string) => { - return provider.setPrivateKey(signer); + const setSigner = (signer: TronSender) => { + return signer && provider.setPrivateKey(signer); }; - const deployErc721_i = async (deployer: string) => { + const deployErc721_i = async (deployer: TronSender) => { setSigner(deployer); const contract = await provider.contract().new({ @@ -113,7 +116,7 @@ export async function baseTronHelperFactory( return contract; }; - const deployErc1155_i = async (owner: string) => { + const deployErc1155_i = async (owner: TronSender) => { setSigner(owner); const contract = await provider.contract().new({ @@ -125,7 +128,7 @@ export async function baseTronHelperFactory( return contract; }; - const deployXpNft = async (deployer: string) => { + const deployXpNft = async (deployer: TronSender) => { setSigner(deployer); const contract = await provider.contract().new({ @@ -138,7 +141,7 @@ export async function baseTronHelperFactory( }; return { - async mintNft(owner: string, options: NftMintArgs): Promise { + async mintNft(owner: TronSender, options: NftMintArgs): Promise { setSigner(owner); const erc = await provider.contract( UserNftMinter__factory.abi, @@ -153,7 +156,7 @@ export async function baseTronHelperFactory( deployErc721: async (owner) => await deployErc721_i(owner).then((c) => c.address), async deployMinter( - deployer: string, + deployer: TronSender, validators: string[], threshold: number, whitelist: string[] = [] @@ -216,8 +219,8 @@ export async function tronHelperFactory( }, }); - const setSigner = (signer: string) => { - return provider.setPrivateKey(signer); + const setSigner = (signer: TronSender) => { + return signer && provider.setPrivateKey(signer); }; async function extractTxn(hash: string): Promise<[string, string]> { @@ -321,7 +324,7 @@ export async function tronHelperFactory( }; }, async transferNativeToForeign( - sender: string, + sender: TronSender, chain_nonce: number, to: string, value: BigNumber, @@ -337,7 +340,7 @@ export async function tronHelperFactory( return await extractTxn(res); }, async unfreezeWrapped( - sender: string, + sender: TronSender, chain_nonce: number, to: string, value: string, @@ -350,7 +353,7 @@ export async function tronHelperFactory( return await extractTxn(res); }, async unfreezeWrappedNft( - sender: string, + sender: TronSender, to: string, id: NftInfo, txFees: BigNumber @@ -365,7 +368,7 @@ export async function tronHelperFactory( return tronParams.nonce; }, async transferNftToForeign( - sender: string, + sender: TronSender, chain_nonce: number, to: string, id: NftInfo, From 2c0a6206e163003730fb22693c82b9163b690c1d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 30 Oct 2021 16:30:56 +0530 Subject: [PATCH 122/956] fix(web3): pass signer instead of provider --- src/helpers/web3.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index bf00bd021..95418e1e5 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -261,7 +261,7 @@ export async function web3HelperFactory( sender: Signer ) => { const isApproved = await isApprovedForMinter(id, sender); - const erc = UserNftMinter__factory.connect(id.native.contract, w3) + const erc = UserNftMinter__factory.connect(id.native.contract, sender) if (isApproved) { return true; } From 46135da0a656c8079ed3ba46e9c2aa32fa64ce00 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 30 Oct 2021 16:56:42 +0530 Subject: [PATCH 123/956] fix(web3): approve for minter instead of user signer --- src/helpers/web3.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 95418e1e5..0862bca07 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -250,7 +250,7 @@ export async function web3HelperFactory( ) => { const erc = UserNftMinter__factory.connect(id.native.contract, signer) const approvedAddress = await erc.getApproved(id.native.tokenId); - if (approvedAddress === id.native.contract) { + if (approvedAddress === minter_addr) { return true; } return false; @@ -267,7 +267,7 @@ export async function web3HelperFactory( } const receipt = await erc.approve( - await sender.getAddress(), + minter_addr, id.native.tokenId ); await receipt.wait(); From c32d22d59d9cdd9febd08f10e92d16c3a495820f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 31 Oct 2021 13:47:24 +0530 Subject: [PATCH 124/956] feat(transfer): add an optional fee param --- src/factory/index.ts | 72 +++++++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 31 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 05acae091..581d58530 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -72,7 +72,8 @@ type ChainFactory = { toChain: FullChain, nft: NftInfo, sender: SignerF, - receiver: string + receiver: string, + fee?: BigNumber ): Promise<[TxF, string]>; /** * Mints an NFT on the chain. @@ -202,36 +203,41 @@ export function ChainFactory(chainParams: Partial): ChainFactory { .times(CHAIN_INFO[fromChain].decimals) .integerValue(BigNumber.ROUND_CEIL); } - + const estimateFees = async( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + receiver: string + ) => { + if (fromChain.isWrappedNft(nft)) { + const decoded = fromChain.decodeWrappedNft(nft); + const approxNft = await toChain.decodeNftFromRaw(decoded.data); + const estimate = await toChain.estimateValidateUnfreezeNft( + receiver, + approxNft + ); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate + ); + return conv; + } else { + const packed = fromChain.wrapNftForTransfer(nft); + const estimate = await toChain.estimateValidateTransferNft( + receiver, + packed + ); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate + ); + return conv; + } + } return { - async estimateFees(fromChain, toChain, nft, receiver) { - if (fromChain.isWrappedNft(nft)) { - const decoded = fromChain.decodeWrappedNft(nft); - const approxNft = await toChain.decodeNftFromRaw(decoded.data); - const estimate = await toChain.estimateValidateUnfreezeNft( - receiver, - approxNft - ); - const conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate - ); - return conv; - } else { - const packed = fromChain.wrapNftForTransfer(nft); - const estimate = await toChain.estimateValidateTransferNft( - receiver, - packed - ); - const conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate - ); - return conv; - } - }, + estimateFees, inner, updateParams( chainNonce: ChainNonce, @@ -274,8 +280,12 @@ export function ChainFactory(chainParams: Partial): ChainFactory { toChain, nft, sender, - receiver + receiver, + fee )=> { + if (!fee) { + fee = await estimateFees(fromChain, toChain, nft, receiver); + } if (fromChain.isWrappedNft(nft)) { const decoded = fromChain.decodeWrappedNft(nft); if (decoded.chain_nonce != toChain.getNonce()) { From c92db2759bedf3a31fbb53988ff8279ddb7bd905 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 31 Oct 2021 15:43:56 +0530 Subject: [PATCH 125/956] fix(transfer): use the fee --- src/factory/index.ts | 52 +++++++------------------------------------- 1 file changed, 8 insertions(+), 44 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 581d58530..68741ba38 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -111,10 +111,7 @@ type ChainFactory = { receiver: string ): Promise; // Update parameters for a specific chain - updateParams( - nonce: ChainNonce, - params: TP - ): void; + updateParams(nonce: ChainNonce, params: TP): void; }; /** @@ -203,7 +200,7 @@ export function ChainFactory(chainParams: Partial): ChainFactory { .times(CHAIN_INFO[fromChain].decimals) .integerValue(BigNumber.ROUND_CEIL); } - const estimateFees = async( + const estimateFees = async ( fromChain: FullChain, toChain: FullChain, nft: NftInfo, @@ -235,21 +232,15 @@ export function ChainFactory(chainParams: Partial): ChainFactory { ); return conv; } - } + }; return { estimateFees, inner, - updateParams( - chainNonce: ChainNonce, - params: TP - ) { + updateParams(chainNonce: ChainNonce, params: TP) { map.delete(chainNonce); cToP.set(chainNonce, params as any); }, - async nftList( - chain: NftUriChain, - owner: string - ) { + async nftList(chain: NftUriChain, owner: string) { let endpoint; switch (chain.getNonce()) { case Chain.ELROND: @@ -275,14 +266,7 @@ export function ChainFactory(chainParams: Partial): ChainFactory { chainId: chain.getNonce().toString(), }; }, - transferNft: async ( - fromChain, - toChain, - nft, - sender, - receiver, - fee - )=> { + transferNft: async (fromChain, toChain, nft, sender, receiver, fee) => { if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); } @@ -291,40 +275,20 @@ export function ChainFactory(chainParams: Partial): ChainFactory { if (decoded.chain_nonce != toChain.getNonce()) { throw Error("trying to send wrapped nft to non-origin chain!!!"); } - const approxNft = await toChain.decodeNftFromRaw(decoded.data); - const estimate = await toChain.estimateValidateUnfreezeNft( - receiver, - approxNft - ); - const conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate - ); const res = await fromChain.unfreezeWrappedNft( sender, receiver, nft, - conv + fee ); return res; } else { - const packed = fromChain.wrapNftForTransfer(nft); - const estimate = await toChain.estimateValidateTransferNft( - receiver, - packed - ); - const conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate - ); const res = await fromChain.transferNftToForeign( sender, toChain.getNonce(), receiver, nft, - conv + fee ); return res; } From cfecc803f667ce34f251718748b0698eab51ea07 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 31 Oct 2021 15:59:14 +0530 Subject: [PATCH 126/956] fix(transfer): return tx-id as early as possible --- src/factory/index.ts | 7 +++---- src/helpers/chain.ts | 18 ++++++++---------- src/helpers/elrond.ts | 26 ++++++++++++-------------- src/helpers/tron.ts | 24 ++++++++++++------------ src/helpers/web3.ts | 27 +++++++++++++-------------- 5 files changed, 48 insertions(+), 54 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 68741ba38..d4c515f49 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -39,10 +39,9 @@ type FullChain = TransferNftForeign< string, BigNumber, RawNft, - Tx, - string + Tx > & - UnfreezeForeignNft & + UnfreezeForeignNft & EstimateTxFees & PackNft & NftUriChain; @@ -74,7 +73,7 @@ type ChainFactory = { sender: SignerF, receiver: string, fee?: BigNumber - ): Promise<[TxF, string]>; + ): Promise; /** * Mints an NFT on the chain. * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 076243184..7d14e4bb7 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -21,14 +21,14 @@ export type NftInfo = { * * @returns Transaction and the Identifier of this action to track the status */ -export interface TransferForeign { +export interface TransferForeign { transferNativeToForeign( sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance, txFees: Balance - ): Promise<[Tx, EventIdent]>; + ): Promise; } /** @@ -41,14 +41,14 @@ export interface TransferForeign { * * @returns Transaction and the Identifier of this action to track the status */ -export interface UnfreezeForeign { +export interface UnfreezeForeign { unfreezeWrapped( sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance, txFees: Balance - ): Promise<[Tx, EventIdent]>; + ): Promise; } /** @@ -66,8 +66,7 @@ export interface TransferNftForeign< ForeignAddr, Balance, RawNft, - Tx, - EventIdent + Tx > { transferNftToForeign( sender: Signer, @@ -75,7 +74,7 @@ export interface TransferNftForeign< to: ForeignAddr, id: NftInfo, txFees: Balance - ): Promise<[Tx, EventIdent]>; + ): Promise; } /** @@ -93,15 +92,14 @@ export interface UnfreezeForeignNft< ForeignAddr, Balance, RawNft, - Tx, - EventIdent + Tx > { unfreezeWrappedNft( sender: Signer, to: ForeignAddr, id: NftInfo, txFees: Balance - ): Promise<[Tx, EventIdent]>; + ): Promise; } /** diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 71807d680..5c91b3203 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -191,23 +191,21 @@ type EventIdent = string; */ export type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & - UnfreezeForeign & + TransferForeign & + UnfreezeForeign & TransferNftForeign< ElrondSigner, string, BigNumber, EsdtNftInfo, - Transaction, - EventIdent + Transaction > & UnfreezeForeignNft< ElrondSigner, string, BigNumber, EsdtNftInfo, - Transaction, - EventIdent + Transaction > & IssueESDTNFT & MintNft & @@ -661,7 +659,7 @@ export const elrondHelperFactory: ( to: string, value: EasyBalance, txFees: EasyBalance - ): Promise<[Transaction, EventIdent]> { + ): Promise { const txu = unsignedTransferTxn( chain_nonce, to, @@ -669,7 +667,7 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return await extractId(tx); + return tx; }, async unfreezeWrapped( sender: ElrondSigner, @@ -677,7 +675,7 @@ export const elrondHelperFactory: ( to: string, value: EasyBalance, txFees: EasyBalance - ): Promise<[Transaction, EventIdent]> { + ): Promise { await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeTxn( chain_nonce, @@ -687,7 +685,7 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return await extractId(tx); + return tx; }, async transferNftToForeign( sender: ElrondSigner, @@ -695,7 +693,7 @@ export const elrondHelperFactory: ( to: string, info: NftInfo, txFees: EasyBalance - ): Promise<[Transaction, EventIdent]> { + ): Promise { await doEgldSwap(sender, txFees); const txu = unsignedTransferNftTxn( chain_nonce, @@ -706,14 +704,14 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return await extractId(tx); + return tx; }, async unfreezeWrappedNft( sender: ElrondSigner, to: string, nft: NftInfo, txFees: EasyBalance - ): Promise<[Transaction, EventIdent]> { + ): Promise { await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeNftTxn( await getAddress(sender), @@ -723,7 +721,7 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return await extractId(tx); + return tx; }, unsignedIssueESDTNft, async issueESDTNft( diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index fcb125a24..cfe096392 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -83,12 +83,12 @@ export type BaseTronHelper = BalanceCheck & export type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & + TransferForeign & // TODO: Use TX Fees - TransferNftForeign & + TransferNftForeign & // TODO: Use TX Fees - UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeign & + UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & EstimateTxFees & @@ -329,7 +329,7 @@ export async function tronHelperFactory( to: string, value: BigNumber, txFees: BigNumber - ): Promise<[string, string]> { + ): Promise { setSigner(sender); const val = EthBN.from(value.toString()); @@ -337,7 +337,7 @@ export async function tronHelperFactory( let res = await minter .freeze(chain_nonce, to, val) .send({ callValue: totalVal }); - return await extractTxn(res); + return res; }, async unfreezeWrapped( sender: TronSender, @@ -345,24 +345,24 @@ export async function tronHelperFactory( to: string, value: string, txFees: string - ): Promise<[string, string]> { + ): Promise { setSigner(sender); const res = await minter .withdraw(chain_nonce, to, value) .send({ callValue: EthBN.from(txFees.toString()) }); - return await extractTxn(res); + return res; }, async unfreezeWrappedNft( sender: TronSender, to: string, id: NftInfo, txFees: BigNumber - ): Promise<[string, string]> { + ): Promise { setSigner(sender); const res = await minter .withdrawNft(to, id.native.tokenId) .send({ callValue: EthBN.from(txFees.toString()) }); - return await extractTxn(res); + return res; }, getNonce() { return tronParams.nonce; @@ -373,7 +373,7 @@ export async function tronHelperFactory( to: string, id: NftInfo, txFees: BigNumber - ): Promise<[string, string]> { + ): Promise { setSigner(sender); const erc = await provider.contract( UserNftMinter__factory.abi, @@ -385,7 +385,7 @@ export async function tronHelperFactory( .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to) .send({ callValue: EthBN.from(txFees.toString()) }); - return await extractTxn(txr); + return txr; }, async balanceWrappedBatch( address: string, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 0862bca07..0a23437e1 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -22,6 +22,7 @@ import { BigNumber as EthBN, PopulatedTransaction, Wallet, + ContractTransaction, } from "ethers"; import { TransactionReceipt, @@ -112,23 +113,21 @@ export type BaseWeb3Helper = BalanceCheck & export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & + TransferForeign & TransferNftForeign< Signer, string, BigNumber, EthNftInfo, - TransactionReceipt, - string + ContractTransaction > & - UnfreezeForeign & + UnfreezeForeign & UnfreezeForeignNft< Signer, string, BigNumber, EthNftInfo, - TransactionReceipt, - string + ContractTransaction > & DecodeWrappedNft & DecodeRawNft & @@ -314,13 +313,13 @@ export async function web3HelperFactory( to: string, value: BigNumber, txFees: BigNumber - ): Promise<[TransactionReceipt, string]> { + ): Promise { const val = EthBN.from(value.toString()); const totalVal = val.add(EthBN.from(txFees.toString())); const res = await minter.connect(sender).freeze(chain_nonce, to, val, { value: totalVal, }); - return await extractTxn(res, "Transfer"); + return res; }, async transferNftToForeign( sender: Signer, @@ -328,7 +327,7 @@ export async function web3HelperFactory( to: string, id: NftInfo, txFees: BigNumber - ): Promise<[TransactionReceipt, string]> { + ): Promise { const erc = UserNftMinter__factory.connect(id.native.contract, sender); await approveForMinter(id, sender); @@ -338,7 +337,7 @@ export async function web3HelperFactory( value: EthBN.from(txFees.toString()), }); - return await extractTxn(txr, "TransferErc721"); + return txr; }, async unfreezeWrapped( sender: Signer, @@ -346,28 +345,28 @@ export async function web3HelperFactory( to: string, value: EasyBalance, txFees: EasyBalance - ): Promise<[TransactionReceipt, string]> { + ): Promise { const res = await minter .connect(sender) .withdraw(chain_nonce, to, value, { value: EthBN.from(txFees.toString()), }); - return await extractTxn(res, "Unfreeze"); + return res; }, async unfreezeWrappedNft( sender: Signer, to: string, id: NftInfo, txFees: BigNumber - ): Promise<[TransactionReceipt, string]> { + ): Promise { const res = await minter .connect(sender) .withdrawNft(to, id.native.tokenId, { value: EthBN.from(txFees.toString()), }); - return await extractTxn(res, "UnfreezeNft"); + return res; }, decodeWrappedNft(nft: NftInfo): WrappedNft { const u8D = Base64.toUint8Array(nft.native.uri); From 0394521cff3dcea2b8a895fb3ca76c7fc980dfff Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 31 Oct 2021 17:11:29 +0530 Subject: [PATCH 127/956] fix(transfer): return tx-id string only instead of full txn --- src/factory/index.ts | 27 +++++++++++++-------------- src/helpers/chain.ts | 18 ++++++++---------- src/helpers/elrond.ts | 26 ++++++++++++-------------- src/helpers/tron.ts | 8 ++++---- src/helpers/web3.ts | 26 ++++++++++++-------------- 5 files changed, 49 insertions(+), 56 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d4c515f49..215b9d784 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -34,14 +34,13 @@ type NftUriChain = ChainNonceGet & DecodeRawNft & PopulateDecodedNft; -type FullChain = TransferNftForeign< +type FullChain = TransferNftForeign< Signer, string, BigNumber, - RawNft, - Tx + RawNft > & - UnfreezeForeignNft & + UnfreezeForeignNft & EstimateTxFees & PackNft & NftUriChain; @@ -66,14 +65,14 @@ type ChainFactory = { * @param sender {@link Sender} The owner of the NFT. * @param receiver Address of the Receiver of the NFT. */ - transferNft( - fromChain: FullChain, - toChain: FullChain, + transferNft( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, sender: SignerF, receiver: string, fee?: BigNumber - ): Promise; + ): Promise; /** * Mints an NFT on the chain. * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. @@ -103,9 +102,9 @@ type ChainFactory = { chain: NftUriChain, nft: NftInfo ): Promise; - estimateFees( - fromChain: FullChain, - toChain: FullChain, + estimateFees( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, receiver: string ): Promise; @@ -199,9 +198,9 @@ export function ChainFactory(chainParams: Partial): ChainFactory { .times(CHAIN_INFO[fromChain].decimals) .integerValue(BigNumber.ROUND_CEIL); } - const estimateFees = async ( - fromChain: FullChain, - toChain: FullChain, + const estimateFees = async ( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, receiver: string ) => { diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 7d14e4bb7..215204576 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -21,14 +21,14 @@ export type NftInfo = { * * @returns Transaction and the Identifier of this action to track the status */ -export interface TransferForeign { +export interface TransferForeign { transferNativeToForeign( sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance, txFees: Balance - ): Promise; + ): Promise; } /** @@ -41,14 +41,14 @@ export interface TransferForeign { * * @returns Transaction and the Identifier of this action to track the status */ -export interface UnfreezeForeign { +export interface UnfreezeForeign { unfreezeWrapped( sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance, txFees: Balance - ): Promise; + ): Promise; } /** @@ -65,8 +65,7 @@ export interface TransferNftForeign< Signer, ForeignAddr, Balance, - RawNft, - Tx + RawNft > { transferNftToForeign( sender: Signer, @@ -74,7 +73,7 @@ export interface TransferNftForeign< to: ForeignAddr, id: NftInfo, txFees: Balance - ): Promise; + ): Promise; } /** @@ -91,15 +90,14 @@ export interface UnfreezeForeignNft< Signer, ForeignAddr, Balance, - RawNft, - Tx + RawNft > { unfreezeWrappedNft( sender: Signer, to: ForeignAddr, id: NftInfo, txFees: Balance - ): Promise; + ): Promise; } /** diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 5c91b3203..c703a7d49 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -191,21 +191,19 @@ type EventIdent = string; */ export type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & - UnfreezeForeign & + TransferForeign & + UnfreezeForeign & TransferNftForeign< ElrondSigner, string, BigNumber, - EsdtNftInfo, - Transaction + EsdtNftInfo > & UnfreezeForeignNft< ElrondSigner, string, BigNumber, - EsdtNftInfo, - Transaction + EsdtNftInfo > & IssueESDTNFT & MintNft & @@ -659,7 +657,7 @@ export const elrondHelperFactory: ( to: string, value: EasyBalance, txFees: EasyBalance - ): Promise { + ): Promise { const txu = unsignedTransferTxn( chain_nonce, to, @@ -667,7 +665,7 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return tx; + return tx.getHash().toString(); }, async unfreezeWrapped( sender: ElrondSigner, @@ -675,7 +673,7 @@ export const elrondHelperFactory: ( to: string, value: EasyBalance, txFees: EasyBalance - ): Promise { + ): Promise { await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeTxn( chain_nonce, @@ -685,7 +683,7 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return tx; + return tx.getHash().toString(); }, async transferNftToForeign( sender: ElrondSigner, @@ -693,7 +691,7 @@ export const elrondHelperFactory: ( to: string, info: NftInfo, txFees: EasyBalance - ): Promise { + ): Promise { await doEgldSwap(sender, txFees); const txu = unsignedTransferNftTxn( chain_nonce, @@ -704,14 +702,14 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return tx; + return tx.getHash().toString(); }, async unfreezeWrappedNft( sender: ElrondSigner, to: string, nft: NftInfo, txFees: EasyBalance - ): Promise { + ): Promise { await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeNftTxn( await getAddress(sender), @@ -721,7 +719,7 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return tx; + return tx.getHash().toString(); }, unsignedIssueESDTNft, async issueESDTNft( diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index cfe096392..95d49eb9f 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -83,12 +83,12 @@ export type BaseTronHelper = BalanceCheck & export type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & + TransferForeign & // TODO: Use TX Fees - TransferNftForeign & + TransferNftForeign & // TODO: Use TX Fees - UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeign & + UnfreezeForeignNft & DecodeWrappedNft & DecodeRawNft & EstimateTxFees & diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 0a23437e1..3e412d176 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -113,21 +113,19 @@ export type BaseWeb3Helper = BalanceCheck & export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & + TransferForeign & TransferNftForeign< Signer, string, BigNumber, - EthNftInfo, - ContractTransaction + EthNftInfo > & - UnfreezeForeign & + UnfreezeForeign & UnfreezeForeignNft< Signer, string, BigNumber, - EthNftInfo, - ContractTransaction + EthNftInfo > & DecodeWrappedNft & DecodeRawNft & @@ -313,13 +311,13 @@ export async function web3HelperFactory( to: string, value: BigNumber, txFees: BigNumber - ): Promise { + ): Promise { const val = EthBN.from(value.toString()); const totalVal = val.add(EthBN.from(txFees.toString())); const res = await minter.connect(sender).freeze(chain_nonce, to, val, { value: totalVal, }); - return res; + return res.hash; }, async transferNftToForeign( sender: Signer, @@ -327,7 +325,7 @@ export async function web3HelperFactory( to: string, id: NftInfo, txFees: BigNumber - ): Promise { + ): Promise { const erc = UserNftMinter__factory.connect(id.native.contract, sender); await approveForMinter(id, sender); @@ -337,7 +335,7 @@ export async function web3HelperFactory( value: EthBN.from(txFees.toString()), }); - return txr; + return txr.hash; }, async unfreezeWrapped( sender: Signer, @@ -345,28 +343,28 @@ export async function web3HelperFactory( to: string, value: EasyBalance, txFees: EasyBalance - ): Promise { + ): Promise { const res = await minter .connect(sender) .withdraw(chain_nonce, to, value, { value: EthBN.from(txFees.toString()), }); - return res; + return res.hash; }, async unfreezeWrappedNft( sender: Signer, to: string, id: NftInfo, txFees: BigNumber - ): Promise { + ): Promise { const res = await minter .connect(sender) .withdrawNft(to, id.native.tokenId, { value: EthBN.from(txFees.toString()), }); - return res; + return res.hash; }, decodeWrappedNft(nft: NftInfo): WrappedNft { const u8D = Base64.toUint8Array(nft.native.uri); From 0f54fa7bbceeaea77ab74cf67796cd9e655fde45 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 1 Nov 2021 00:37:14 +0530 Subject: [PATCH 128/956] fix(elrond): return sent txn --- src/helpers/elrond.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index c703a7d49..650d70e03 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -284,7 +284,7 @@ export const elrondHelperFactory: ( throw e; } } - return tx; + return stx; }; const transactionResult = async (tx_hash: TransactionHash) => { From 353ce4da2f369a0a1ca6f95a008e32f7dc0e0439 Mon Sep 17 00:00:00 2001 From: xp-network Date: Sun, 31 Oct 2021 23:30:08 +0200 Subject: [PATCH 129/956] doegldswap --- src/helpers/elrond.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 650d70e03..4a7438fec 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -685,6 +685,7 @@ export const elrondHelperFactory: ( return tx.getHash().toString(); }, + doEgldSwap, async transferNftToForeign( sender: ElrondSigner, chain_nonce: number, @@ -692,7 +693,6 @@ export const elrondHelperFactory: ( info: NftInfo, txFees: EasyBalance ): Promise { - await doEgldSwap(sender, txFees); const txu = unsignedTransferNftTxn( chain_nonce, await getAddress(sender), From 55cb2f9e69a334f91d398c8a8da0bd5b89fa13de Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 1 Nov 2021 16:59:19 +0530 Subject: [PATCH 130/956] elrond: decodeNftFromRaw: fix tokenIdentifier --- src/helpers/elrond.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 71807d680..59f71d345 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -795,7 +795,7 @@ export const elrondHelperFactory: ( uri: "", native: { balance: 1, - tokenIdentifier: `${nft_info.token}-${nft_info.nonce.toString(16)}`, + tokenIdentifier: `${nft_info.token}-${nft_info.nonce.toString()}`, creator: "", name: "", nonce: nft_info.nonce, From b8e965b4d76c37708f5188b648ba327395b421ef Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 1 Nov 2021 17:00:43 +0530 Subject: [PATCH 131/956] elrond: decodeNftFromRaw: fix tokenIdentifier --- src/helpers/elrond.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 4a7438fec..026a5c733 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -791,7 +791,7 @@ export const elrondHelperFactory: ( uri: "", native: { balance: 1, - tokenIdentifier: `${nft_info.token}-${nft_info.nonce.toString(16)}`, + tokenIdentifier: `${nft_info.token}-${nft_info.nonce.toString()}`, creator: "", name: "", nonce: nft_info.nonce, From 848ce8b033d5dced897a15188c91056c946a383a Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 1 Nov 2021 17:25:16 +0530 Subject: [PATCH 132/956] elrond: unfreezeWrappedNft: stop doing egld swap --- src/helpers/elrond.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 026a5c733..d1ec4b9de 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -710,7 +710,6 @@ export const elrondHelperFactory: ( nft: NftInfo, txFees: EasyBalance ): Promise { - await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeNftTxn( await getAddress(sender), to, From 077123d6bb851a1e6f83ffd2a7063fa89f14575e Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 1 Nov 2021 17:51:41 +0530 Subject: [PATCH 133/956] validate target address before doing a transfer --- src/factory/index.ts | 7 ++++++- src/helpers/chain.ts | 4 ++++ src/helpers/elrond.ts | 19 ++++++++++++++++++- src/helpers/web3.ts | 8 +++++++- 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 215b9d784..216a87916 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -15,6 +15,7 @@ import { PopulateDecodedNft, TransferNftForeign, UnfreezeForeignNft, + ValidateAddress, WrappedNftCheck, } from ".."; import { @@ -43,7 +44,8 @@ type FullChain = TransferNftForeign< UnfreezeForeignNft & EstimateTxFees & PackNft & - NftUriChain; + NftUriChain & + ValidateAddress; /** * A type representing a chain factory. @@ -268,6 +270,9 @@ export function ChainFactory(chainParams: Partial): ChainFactory { if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); } + if (!await toChain.validateAddress(receiver)) { + throw Error('invalid address'); + } if (fromChain.isWrappedNft(nft)) { const decoded = fromChain.decodeWrappedNft(nft); if (decoded.chain_nonce != toChain.getNonce()) { diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 215204576..d6f8b5191 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -169,6 +169,10 @@ export interface DecodeRawNft { decodeNftFromRaw(data: Uint8Array): Promise>; } +export interface ValidateAddress { + validateAddress(adr: string): Promise; +} + export type BareNft = { chainId: string; uri: string; diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index d1ec4b9de..1128295e9 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -48,6 +48,7 @@ import { NftInfo, PackNft, PopulateDecodedNft, + ValidateAddress, } from ".."; import { NftMintArgs } from ".."; @@ -214,7 +215,8 @@ export type ElrondHelper = BalanceCheck & EstimateTxFees & PackNft & ChainNonceGet & - PopulateDecodedNft; + PopulateDecodedNft & + ValidateAddress; /** * Create an object implementing cross chain utilities for elrond @@ -821,6 +823,21 @@ export const elrondHelperFactory: ( const dataLen = 4 + tokenIdentReal(nft.native.tokenIdentifier).length + 4; return new Uint8Array(dataLen); }, + async validateAddress(adr: string) { + try { + new Address(adr); + const remote = await providerRest.get(`/address/${adr}/esdt`); + if (remote.data.code != "successful") { + if (!remote.data.error.includes("account was not found")) { + console.warn(`elrond: validateAddress: unhandled error ${JSON.stringify(remote.data)}`); + } + return false; + } + return true; + } catch (_) { + return false; + } + } }; }; diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 3e412d176..62672de0b 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -23,6 +23,7 @@ import { PopulatedTransaction, Wallet, ContractTransaction, + ethers, } from "ethers"; import { TransactionReceipt, @@ -44,6 +45,7 @@ import { NftInfo, PackNft, PopulateDecodedNft, + ValidateAddress, } from ".."; import { NftMintArgs } from ".."; import { ApiProvider } from "@elrondnetwork/erdjs/out"; @@ -135,7 +137,8 @@ export type Web3Helper = BaseWeb3Helper & ChainNonceGet & PopulateDecodedNft & IsApproved & - Approve; + Approve & + ValidateAddress; /** * Create an object implementing minimal utilities for a web3 chain @@ -427,5 +430,8 @@ export async function web3HelperFactory( return tokdat.serializeBinary(); }, + validateAddress(adr) { + return Promise.resolve(ethers.utils.isAddress(adr)); + } }; } From b73bb367d187532f52d00af89a354d91fc8cd54f Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 1 Nov 2021 18:10:10 +0530 Subject: [PATCH 134/956] elrond: change address validation --- src/helpers/elrond.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 1128295e9..594b42174 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -826,14 +826,9 @@ export const elrondHelperFactory: ( async validateAddress(adr: string) { try { new Address(adr); - const remote = await providerRest.get(`/address/${adr}/esdt`); - if (remote.data.code != "successful") { - if (!remote.data.error.includes("account was not found")) { - console.warn(`elrond: validateAddress: unhandled error ${JSON.stringify(remote.data)}`); - } - return false; - } - return true; + return await providerRest.get(`/address/${adr}/esdt`) + .then(_ => true) + .catch(_ => false); } catch (_) { return false; } From 35cd0f170e9d3b5da23199286463f33cf5dc8d5f Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 2 Nov 2021 18:24:27 +0530 Subject: [PATCH 135/956] factory: update nft list logic --- package.json | 3 +- src/factory/cons.ts | 31 + src/factory/index.ts | 41 +- yarn.lock | 2239 ++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 2235 insertions(+), 79 deletions(-) create mode 100644 src/factory/cons.ts diff --git a/package.json b/package.json index d316817d5..9bd399636 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "typescript": "^4.3.5" }, "dependencies": { - "@elrondnetwork/erdjs": "^8.0.1-alpha.5", + "@elrondnetwork/erdjs": "^8.0.1-alpha.8", "axios": "^0.21.1", "bignumber.js": "^9.0.1", "crypto-exchange-rate": "https://github.com/xp-network/exchange-rate#master-dist", @@ -34,6 +34,7 @@ "tronstation": "^1.0.1", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/Migration-validator#web3-new", + "xpnet-nft-list": "git+https://github.com/xp-network/nft-list-backend#bleeding-edge", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/src/factory/cons.ts b/src/factory/cons.ts new file mode 100644 index 000000000..19d1b18d8 --- /dev/null +++ b/src/factory/cons.ts @@ -0,0 +1,31 @@ +import { cachedExchangeRateRepo, ExchangeRateRepo, networkBatchExchangeRateRepo, NetworkModel } from "crypto-exchange-rate"; +import { ElrdNftListRepo, elrdNftListService, elrdRawTokenMapper, mockChainIdentMapper, moralisChainIdMapper, MoralisNftListRepo, moralisNftListService, moralisNftMapper, nftListRepo } from "xpnet-nft-list"; + +export function elrondNftList(proxy: string): ElrdNftListRepo { + return nftListRepo( + elrdNftListService(proxy), + elrdRawTokenMapper(), + mockChainIdentMapper() + ); +} + +export function moralisNftList(server: string, appId: string): MoralisNftListRepo { + return nftListRepo( + moralisNftListService({ serverUrl: server, appId }), + moralisNftMapper(), + moralisChainIdMapper() + ); +} + +export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { + const baseService = NetworkModel.batchExchangeRateService( + baseUrl + ); + + return cachedExchangeRateRepo( + networkBatchExchangeRateRepo( + baseService, + NetworkModel.exchangeRateDtoMapper() + ) + ); +} \ No newline at end of file diff --git a/src/factory/index.ts b/src/factory/index.ts index 216a87916..201457624 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -26,6 +26,8 @@ import { import BigNumber from "bignumber.js"; import axios, { AxiosResponse } from "axios"; +import { elrondNftList, exchangeRateRepo, moralisNftList } from "./cons"; +import { Address } from "@elrondnetwork/erdjs/out"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -131,6 +133,12 @@ export interface ChainParams { ontologyParams: Web3Params; } +export interface AppConfig { + exchangeRateUri: string, + moralisServer: string, + moralisAppId: string +} + function mapNonceToParams( chainParams: Partial ): Map { @@ -158,20 +166,17 @@ function mapNonceToParams( * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. */ -export function ChainFactory(chainParams: Partial): ChainFactory { +export function ChainFactory( + appConfig: AppConfig, + chainParams: Partial, +): ChainFactory { let map = new Map(); let cToP = mapNonceToParams(chainParams); - function configBatchExchangeService(): NetworkModel.BatchExchangeRateService { - return NetworkModel.batchExchangeRateService( - "https://testing-bridge.xp.network/exchange" - ); - } - const remoteExchangeRate = cachedExchangeRateRepo( - networkBatchExchangeRateRepo( - configBatchExchangeService(), - NetworkModel.exchangeRateDtoMapper() - ) - ); + const remoteExchangeRate = exchangeRateRepo(appConfig.exchangeRateUri); + + const elrondNftRepo = elrondNftList(chainParams.elrondParams?.node_uri || ''); + const moralisNftRepo = moralisNftList(appConfig.moralisServer, appConfig.moralisAppId); + const nftlistRest = axios.create({ baseURL: "https://nft-list.herokuapp.com/", }); @@ -241,18 +246,20 @@ export function ChainFactory(chainParams: Partial): ChainFactory { cToP.set(chainNonce, params as any); }, async nftList(chain: NftUriChain, owner: string) { - let endpoint; + let res: NftInfo[]; switch (chain.getNonce()) { case Chain.ELROND: - endpoint = `/elrond/${owner}`; + res = await elrondNftRepo.nfts(BigInt(chain.getNonce()), new Address(owner)) as any as NftInfo[]; + break; + case Chain.FANTOM: + res = await nftlistRest.get(`/web3/${chain.getNonce()}/${owner}`).then(v => v.data); break; default: - endpoint = `/web3/${chain.getNonce()}/${owner}`; + res = await moralisNftRepo.nfts(BigInt(chain.getNonce()), owner) as any as NftInfo[]; break; } - const res: AxiosResponse[]> = await nftlistRest.get(endpoint); - return res.data; + return res; }, async nftUri(chain, nft) { if (chain.isWrappedNft(nft)) { diff --git a/yarn.lock b/yarn.lock index 77edda116..f08a3bbe8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,13 @@ dependencies: "@babel/highlight" "^7.10.4" +"@babel/code-frame@^7.0.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" + integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== + dependencies: + "@babel/highlight" "^7.16.0" + "@babel/code-frame@^7.10.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" @@ -21,6 +28,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== +"@babel/helper-validator-identifier@^7.15.7": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== + "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" @@ -30,6 +42,23 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" + integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime-corejs3@7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz#ffee91da0eb4c6dae080774e94ba606368e414f4" + integrity sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + "@babel/runtime@7.11.2": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" @@ -37,6 +66,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" + integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.0.0", "@babel/runtime@^7.15.3", "@babel/runtime@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" @@ -85,6 +121,34 @@ tweetnacl "1.0.3" uuid "8.3.2" +"@elrondnetwork/erdjs@^8.0.1-alpha.8": + version "8.0.1-alpha.10" + resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-8.0.1-alpha.10.tgz#3e4f1f5f7ab8f9ca6998ff004954b026ef3a2856" + integrity sha512-CV7QNRKBaGWgD1QJk7tLZ4qm8bC3ThH4XU9Kbw3K2dFvIsIb2WXutM4G3c43YbHXqp3hKl4p3lkh+FzTfCEwAA== + dependencies: + "@babel/runtime" "7.11.2" + "@elrondnetwork/bls-wasm" "0.3.3" + "@elrondnetwork/hw-app-elrond" "0.3.2" + "@ledgerhq/hw-transport-u2f" "5.28.0" + "@ledgerhq/hw-transport-webusb" "5.28.0" + "@walletconnect/client" "1.6.5" + abort-controller "3.0.0" + axios "0.21.1" + bech32 "1.1.4" + bignumber.js "9.0.1" + bip39 "3.0.2" + blake2b "2.1.3" + ed25519-hd-key "1.1.2" + json-bigint "1.0.0" + json-duplicate-key-handle "1.0.0" + keccak "^3.0.1" + platform "1.3.6" + protobufjs "6.10.2" + qs "6.10.1" + scryptsy "2.1.0" + tweetnacl "1.0.3" + uuid "8.3.2" + "@elrondnetwork/hw-app-elrond@0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@elrondnetwork/hw-app-elrond/-/hw-app-elrond-0.3.2.tgz#3c01cda58a58a63e7e3caf1b36ac8d5909550fb2" @@ -111,6 +175,37 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@ethereumjs/common@^2.3.0", "@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" + integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.1" + +"@ethereumjs/tx@^3.2.1": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" + integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== + dependencies: + "@ethereumjs/common" "^2.5.0" + ethereumjs-util "^7.1.2" + +"@ethersproject/abi@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@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/abi@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.0.tgz#a6d63bdb3672f738398846d4279fa6b6c9818242" @@ -239,7 +334,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/rlp" "^5.4.0" -"@ethersproject/address@5.5.0", "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": +"@ethersproject/address@5.5.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== @@ -298,7 +393,7 @@ "@ethersproject/logger" "^5.4.0" bn.js "^4.11.9" -"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": +"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== @@ -314,7 +409,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": +"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== @@ -328,7 +423,7 @@ dependencies: "@ethersproject/bignumber" "^5.4.0" -"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": +"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== @@ -397,7 +492,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": +"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== @@ -493,7 +588,7 @@ "@ethersproject/bytes" "^5.4.0" js-sha3 "0.5.7" -"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": +"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== @@ -511,7 +606,7 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== -"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": +"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== @@ -567,7 +662,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": +"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== @@ -780,7 +875,7 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": +"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== @@ -804,7 +899,7 @@ "@ethersproject/rlp" "^5.4.0" "@ethersproject/signing-key" "^5.4.0" -"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": +"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== @@ -1011,6 +1106,11 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== +"@metamask/detect-provider@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@metamask/detect-provider/-/detect-provider-1.2.0.tgz#3667a7531f2a682e3c3a43eaf3a1958bdb42a696" + integrity sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1404,6 +1504,11 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + "@sindresorhus/is@^2.0.0": version "2.1.1" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" @@ -1414,6 +1519,13 @@ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz#8863915676f837d9dad7b76f50cb500c1e9422e9" integrity sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q== +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + "@szmarczak/http-timer@^4.0.0": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1421,13 +1533,20 @@ dependencies: defer-to-connect "^2.0.0" -"@types/bn.js@^4.11.6": +"@types/bn.js@^4.11.5", "@types/bn.js@^4.11.6": version "4.11.6" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== dependencies: "@types/node" "*" +"@types/bn.js@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" + integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== + dependencies: + "@types/node" "*" + "@types/cacheable-request@^6.0.1": version "6.0.2" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" @@ -1503,11 +1622,28 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.4.tgz#90771124822d6663814f7c1c9b45a6654d8fd964" integrity sha512-TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ== +"@types/node@^12.12.6": + version "12.20.36" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.36.tgz#5bd54d2383e714fc4d2c258107ee70c5bad86d0c" + integrity sha512-+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA== + "@types/node@^13.7.0": version "13.13.52" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" + "@types/responselike@*": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -1515,6 +1651,13 @@ dependencies: "@types/node" "*" +"@types/secp256k1@^4.0.1": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + dependencies: + "@types/node" "*" + "@types/websocket@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8" @@ -1782,7 +1925,7 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" -accepts@~1.3.4: +accepts@~1.3.4, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== @@ -1810,7 +1953,15 @@ aes-js@^3.1.2: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1835,6 +1986,13 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -1897,6 +2055,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -1912,6 +2075,28 @@ array.prototype.flatmap@^1.2.4: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + assert@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" @@ -1932,6 +2117,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1947,6 +2137,16 @@ available-typed-arrays@^1.0.2: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + axios@0.21.1, axios@^0.21.1: version "0.21.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" @@ -1954,6 +2154,13 @@ axios@0.21.1, axios@^0.21.1: dependencies: follow-redirects "^1.10.0" +axios@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.23.0.tgz#b0fa5d0948a8d1d75e3d5635238b6c4625b05149" + integrity sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg== + dependencies: + follow-redirects "^1.14.4" + babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1977,7 +2184,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.9: +base-x@^3.0.2, base-x@^3.0.8, base-x@^3.0.9: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== @@ -2004,6 +2211,13 @@ base64id@2.0.0, base64id@~2.0.0: resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -2083,26 +2297,57 @@ blake2b@2.1.3: blake2b-wasm "^1.1.0" nanoassert "^1.0.0" -blakejs@^1.1.1: +blakejs@^1.1.0, blakejs@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== +bluebird@^3.5.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + bluebird@~3.4.1: version "3.4.7" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= + bn.js@4.11.8: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -bn.js@^4.11.9, bn.js@^4.12.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9, bn.js@^4.12.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +body-parser@1.19.0, body-parser@^1.16.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2118,11 +2363,81 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.1.0: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + 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" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +bs58@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + dependencies: + base-x "^3.0.2" + +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + btoa-lite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" @@ -2133,7 +2448,17 @@ buffer-indexof-polyfill@~1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== -buffer@^5.5.0: +buffer-to-arraybuffer@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2153,6 +2478,11 @@ bufferutil@^4.0.1: dependencies: node-gyp-build "^4.3.0" +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + cacheable-lookup@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" @@ -2161,6 +2491,19 @@ cacheable-lookup@^2.0.0: "@types/keyv" "^3.1.1" keyv "^4.0.0" +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + 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" + cacheable-request@^7.0.1: version "7.0.2" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" @@ -2197,6 +2540,11 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + chainsaw@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" @@ -2241,12 +2589,23 @@ chokidar@^3.0.0: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: +chownr@^1.1.1, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -cipher-base@^1.0.1, cipher-base@^1.0.3: +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== @@ -2254,6 +2613,31 @@ cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-truncate@2.1.0, cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2299,12 +2683,22 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + +colorette@^2.0.16: + version "2.0.16" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.8: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -2316,6 +2710,11 @@ commander@^6.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -2331,22 +2730,63 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-hash@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + cookie@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== +cookiejar@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" + integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== + +core-js-pure@^3.0.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.19.0.tgz#db6fdadfdd4dc280ec93b64c3c2e8460e6f10094" + integrity sha512-UEQk8AxyCYvNAs6baNoPqDADv7BX0AmBLGxVsrAifPPx/C8EAzV4Q+2ZUJqVzfI2TQQEZITnwUkWcHpgc/IubQ== + core-js@^2.4.0: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@~2.8.5: +cors@^2.8.1, cors@^2.8.5, cors@~2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -2354,6 +2794,33 @@ cors@~2.8.5: object-assign "^4" vary "^1" +cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +crc-32@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -2365,7 +2832,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@1.1.7, create-hmac@^1.1.4: +create-hmac@1.1.7, create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -2388,7 +2855,7 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.2: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2402,6 +2869,23 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= +crypto-browserify@3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" uid "88beed89f97b1ddd957d4ec78bb5bbfbf350ce73" @@ -2415,6 +2899,11 @@ crypt@0.0.2: dependencies: axios "^0.21.1" +crypto-js@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc" + integrity sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg== + cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" @@ -2428,14 +2917,21 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" -debug@^2.2.0: +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debug@2.6.9, debug@^2.2.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1, debug@~4.3.2: +debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@~4.3.1, debug@~4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -2452,6 +2948,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + decompress-response@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" @@ -2481,6 +2984,11 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + defer-to-connect@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" @@ -2503,11 +3011,29 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-browser@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" @@ -2518,6 +3044,15 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2532,6 +3067,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + dotenv@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" @@ -2549,6 +3089,14 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + ed25519-hd-key@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.1.2.tgz#168dcf08419694be7bba3319e7d64e4a5cfe5d44" @@ -2565,7 +3113,12 @@ ed2curve@^0.3.0: dependencies: tweetnacl "1.x.x" -elliptic@6.5.4, elliptic@^6.5.4: +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -2588,6 +3141,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2655,13 +3213,20 @@ engine.io@~6.0.0: engine.io-parser "~5.0.0" ws "~8.2.3" -enquirer@^2.3.5: +enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: version "1.18.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" @@ -2724,6 +3289,11 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2879,6 +3449,79 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eth-ens-namehash@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" + integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= + dependencies: + idna-uts46-hx "^2.3.1" + js-sha3 "^0.5.7" + +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + +eth-lib@^0.1.26: + version "0.1.29" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" + integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + nano-json-stream-parser "^0.1.2" + servify "^0.1.12" + ws "^3.0.0" + xhr-request-promise "^0.1.2" + +ethereum-bloom-filters@^1.0.6: + version "1.0.10" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== + dependencies: + js-sha3 "^0.8.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@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" + +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz#b55d7b64dde3e3e45749e4c41288238edec32d23" + integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== + dependencies: + "@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" + ethers@5.4.4: version "5.4.4" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.4.tgz#35cce530505b84c699da944162195cfb3f894947" @@ -2951,7 +3594,7 @@ ethers@^5.4.1: "@ethersproject/web" "5.4.0" "@ethersproject/wordlists" "5.4.0" -ethers@^5.4.2: +ethers@^5.4.2, ethers@^5.5.1: version "5.5.1" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.1.tgz#d3259a95a42557844aa543906c537106c0406fbf" integrity sha512-RodEvUFZI+EmFcE6bwkuJqpCYHazdzeR1nMzg+YWQSmQEsNtfl1KHGfp/FWZYl48bI/g7cgBeP2IlPthjiVngw== @@ -3023,11 +3666,24 @@ ethers@^5.4.4: "@ethersproject/web" "5.4.0" "@ethersproject/wordlists" "5.4.0" +ethjs-unit@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= + dependencies: + bn.js "4.11.6" + number-to-bn "1.7.0" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" @@ -3043,6 +3699,14 @@ events@^3.3.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -3056,11 +3720,67 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== +express@^4.14.0, express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + ext@^1.1.2: version "1.6.0" resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" @@ -3068,8 +3788,23 @@ ext@^1.1.2: dependencies: type "^2.5.0" -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -3120,6 +3855,19 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3193,11 +3941,21 @@ follow-redirects@^1.10.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== +follow-redirects@^1.14.4: + version "1.14.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381" + integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA== + foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -3207,11 +3965,39 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -3221,6 +4007,13 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -3279,7 +4072,17 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-stream@^4.0.0: +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -3293,6 +4096,18 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" @@ -3329,6 +4144,14 @@ glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" +global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + globals@^13.6.0, globals@^13.9.0: version "13.10.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" @@ -3353,6 +4176,23 @@ google-protobuf@^3.17.3: resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.19.0.tgz#97f474323c92f19fd6737af1bb792e396991e0b8" integrity sha512-qXGAiv3OOlaJXJNeKOBKxbBAwjsxzhx+12ZdKOkZTsqsRkyiQRmr/nBkAkqnuQ8cmA9X5NVXvObQTpHVnXE2DQ== +got@9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + 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" + got@^10.5.7: version "10.7.0" resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" @@ -3374,11 +4214,44 @@ got@^10.5.7: to-readable-stream "^2.0.0" type-fest "^0.10.0" +got@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -3399,11 +4272,23 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3447,6 +4332,61 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +idna-uts46-hx@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== + dependencies: + punycode "2.1.0" + ieee754@^1.1.13: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -3475,6 +4415,11 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -3483,11 +4428,16 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -3508,6 +4458,11 @@ ip-regex@^4.3.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + is-arguments@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" @@ -3515,6 +4470,11 @@ is-arguments@^1.0.4: dependencies: call-bind "^1.0.0" +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + is-bigint@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" @@ -3578,6 +4538,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + is-generator-function@^1.0.7: version "1.0.9" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c" @@ -3590,6 +4555,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= + is-nan@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -3613,6 +4583,21 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -3626,11 +4611,26 @@ is-regex@^1.1.3: call-bind "^1.0.2" has-symbols "^1.0.2" -is-stream@^1.1.0: +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-retry-allowed@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + is-string@^1.0.5, is-string@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" @@ -3654,7 +4654,7 @@ is-typed-array@^1.1.3: foreach "^2.0.5" has-symbols "^1.0.1" -is-typedarray@1.0.0, is-typedarray@^1.0.0: +is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -3669,12 +4669,30 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + js-base64@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.1.tgz#555aae398b74694b4037af1f8a5a6209d170efbe" integrity sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ== -js-sha3@0.5.7: +js-base64@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" + integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== + +js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= @@ -3697,6 +4715,11 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + json-bigint@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -3704,6 +4727,11 @@ json-bigint@1.0.0: dependencies: bignumber.js "^9.0.0" +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -3716,6 +4744,11 @@ json-duplicate-key-handle@1.0.0: dependencies: backslash "^0.2.0" +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -3726,11 +4759,21 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" @@ -3743,7 +4786,17 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -keccak@^3.0.1: +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +keccak@^3.0.0, keccak@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== @@ -3757,6 +4810,13 @@ kefir@^3.7.3: resolved "https://registry.yarnpkg.com/kefir/-/kefir-3.8.8.tgz#235932ddfbed422acebf5d7cba503035e9ea05c5" integrity sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA== +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + keyv@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" @@ -3777,11 +4837,49 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +lint-staged@^11.1.2: + version "11.2.6" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.6.tgz#f477b1af0294db054e5937f171679df63baa4c43" + integrity sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg== + dependencies: + cli-truncate "2.1.0" + colorette "^1.4.0" + commander "^8.2.0" + cosmiconfig "^7.0.1" + debug "^4.3.2" + enquirer "^2.3.6" + execa "^5.1.1" + listr2 "^3.12.2" + micromatch "^4.0.4" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "3.3.0" + supports-color "8.1.1" + listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= +listr2@^3.12.2: + version "3.13.1" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.1.tgz#816e8c1728d50f223795f530d72d248c7fa14602" + integrity sha512-pk4YBDA2cxtpM8iLHbz6oEsfZieJKHf6Pt19NlKaHZZVpqHyVs/Wqr7RfBBCeAFCJchGO7WQHVkUPZTvJMHk8w== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rxjs "^6.6.7" + through "^2.3.8" + wrap-ansi "^7.0.0" + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -3824,11 +4922,26 @@ lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -3881,11 +4994,31 @@ md5@^2.2.1: crypt "0.0.2" is-buffer "~1.1.6" +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" @@ -3894,19 +5027,37 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + mime-db@1.50.0: version "1.50.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== -mime-types@^2.1.12, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.33" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== dependencies: mime-db "1.50.0" -mimic-response@^1.0.0: +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== @@ -3916,6 +5067,13 @@ mimic-response@^2.0.0, mimic-response@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -3938,33 +5096,128 @@ minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -"mkdirp@>=0.5 0": +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +"mkdirp@>=0.5 0", mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mock-fs@^4.1.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== + +moralis@^0.0.116: + version "0.0.116" + resolved "https://registry.yarnpkg.com/moralis/-/moralis-0.0.116.tgz#e58ad5c8bac7184934218cac69b8934b5dd0739b" + integrity sha512-ZdYei8hDi4qrJmDpl7MV9/hpFGnVBmNG0pdraGo96z9GMbtbHYHw8Qs2M6UqSHAwcKc0I65ISO3VUS5NituBFA== + dependencies: + "@babel/runtime" "7.12.5" + "@babel/runtime-corejs3" "7.12.5" + "@metamask/detect-provider" "^1.2.0" + axios "^0.23.0" + lint-staged "^11.1.2" + react-native-crypto-js "1.0.0" + uuid "3.4.0" + web3 "^1.3.6" + ws "^7.4.6" + xmlhttprequest "1.8.0" + optionalDependencies: + crypto-js "4.0.0" ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +nano-json-stream-parser@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= + nanoassert@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" @@ -4064,6 +5317,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -4076,6 +5334,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + npmlog@^4.0.1: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -4091,7 +5356,20 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -object-assign@^4, object-assign@^4.1.0: +number-to-bn@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -4134,11 +5412,25 @@ object.fromentries@^2.0.3: es-abstract "^1.18.0-next.2" has "^1.0.3" +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= + dependencies: + http-https "^1.0.0" + octokit-pagination-methods@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -4146,6 +5438,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + onigasm@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.5.tgz#cc4d2a79a0fa0b64caec1f4c7ea367585a676892" @@ -4173,6 +5472,16 @@ os-name@^3.1.0: macos-release "^2.2.0" windows-release "^3.1.0" +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" @@ -4204,6 +5513,20 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + dependencies: + p-finally "^1.0.0" + p-timeout@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -4223,6 +5546,32 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-headers@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" + integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + parseqs@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" @@ -4233,6 +5582,11 @@ parseuri@0.0.6: resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -4248,7 +5602,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -4258,12 +5612,17 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.9: +pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -4279,6 +5638,11 @@ perf_hooks@0.0.1: resolved "https://registry.yarnpkg.com/perf_hooks/-/perf_hooks-0.0.1.tgz#253e7e18b71fcc0390fd3afb2cd7cf1685df040c" integrity sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw== +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" @@ -4289,6 +5653,13 @@ platform@1.3.6: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + prebuild-install@^5.3.3: version "5.3.6" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz#7c225568d864c71d89d07f8796042733a3f54291" @@ -4334,6 +5705,16 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + prettier@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" @@ -4344,11 +5725,21 @@ prettier@^2.1.1, prettier@^2.3.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -4373,6 +5764,31 @@ protobufjs@6.10.2: "@types/node" "^13.7.0" long "^4.0.0" +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -4381,7 +5797,12 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0: +punycode@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= + +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -4393,6 +5814,16 @@ qs@6.10.1: dependencies: side-channel "^1.0.4" +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + query-string@6.13.5: version "6.13.5" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" @@ -4402,18 +5833,50 @@ query-string@6.13.5: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.0.1, randombytes@^2.1.0: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -4424,6 +5887,11 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-native-crypto-js@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/react-native-crypto-js/-/react-native-crypto-js-1.0.0.tgz#e677e022e147f41b35614416c92d655f87e2450a" + integrity sha512-FNbLuG/HAdapQoybeZSoes1PWdOj0w242gb+e1R0hicf3Gyj/Mf8M9NaED2AnXVOX01b2FXomwUiw1xP1K+8sA== + readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -4475,6 +5943,32 @@ regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +request@^2.79.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -4503,6 +5997,13 @@ resolve@^1.1.6: is-core-module "^2.2.0" path-parse "^1.0.6" +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + responselike@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" @@ -4510,6 +6011,14 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -4537,6 +6046,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -4544,7 +6060,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@6: +rxjs@6, rxjs@^6.6.7: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -4558,17 +6074,22 @@ rxjs@^7.3.0: dependencies: tslib "~2.1.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scrypt-js@3.0.1: +scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -4578,6 +6099,20 @@ scryptsy@2.1.0, scryptsy@^2.1.0: resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== +secp256k1@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" + integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== + dependencies: + elliptic "^6.5.2" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + semver@7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" @@ -4595,16 +6130,61 @@ semver@^7.2.1, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +servify@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== + dependencies: + body-parser "^1.16.0" + cors "^2.8.1" + express "^4.14.0" + request "^2.79.0" + xhr "^2.3.3" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -setimmediate@~1.0.4: +setimmediate@^1.0.5, setimmediate@~1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -4669,11 +6249,25 @@ signal-exit@^3.0.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.5" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" + integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== + simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== +simple-get@^2.7.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" + integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-get@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" @@ -4697,6 +6291,15 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -4775,11 +6378,41 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -4845,6 +6478,15 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-object@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -4878,6 +6520,18 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= + dependencies: + is-hex-prefixed "1.0.0" + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -4888,6 +6542,13 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4902,6 +6563,23 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +swarm-js@^0.1.40: + version "0.1.40" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" + integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== + dependencies: + bluebird "^3.5.0" + buffer "^5.0.5" + eth-lib "^0.1.26" + fs-extra "^4.0.2" + got "^7.1.0" + mime-types "^2.1.16" + mkdirp-promise "^5.0.1" + mock-fs "^4.1.0" + setimmediate "^1.0.5" + tar "^4.0.2" + xhr-request "^1.0.1" + table@^5.4.6: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -4945,6 +6623,19 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" +tar@^4.0.2: + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -4955,6 +6646,16 @@ through@^2.3.8: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + to-readable-stream@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" @@ -4967,6 +6668,19 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -5030,6 +6744,11 @@ tweetnacl@1.0.3, tweetnacl@1.x.x, tweetnacl@^1.0.3: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -5047,6 +6766,19 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + type@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" @@ -5090,6 +6822,11 @@ u2f-api@0.2.7: resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -5117,6 +6854,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + unzipper@^0.10.8: version "0.10.11" resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" @@ -5140,6 +6882,30 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-set-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + usb@^1.7.0: version "1.7.1" resolved "https://registry.yarnpkg.com/usb/-/usb-1.7.1.tgz#d723223ec517b802c4d2082e31a4649c65c491c5" @@ -5156,6 +6922,11 @@ utf-8-validate@^5.0.2: dependencies: node-gyp-build "^4.3.0" +utf8@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -5173,6 +6944,21 @@ util@^0.12.0: safe-buffer "^5.1.2" which-typed-array "^1.1.2" +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@3.4.0, uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + uuid@8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -5219,22 +7005,265 @@ validator@^13.6.0: ws "^8.2.0" xpnet-web3-contracts "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" -vary@^1: +varint@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vscode-textmate@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== +web3-bzz@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.6.0.tgz#584b51339f21eedff159abc9239b4b7ef6ded840" + integrity sha512-ugYV6BsinwhIi0CsLWINBz4mqN9wR9vNG0WmyEbdECjxcPyr6vkaWt4qi0zqlUxEnYAwGj4EJXNrbjPILntQTQ== + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + +web3-core-helpers@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.6.0.tgz#77e161b6ba930a4008a0df804ab379e0aa7e1e7f" + integrity sha512-H/IAH/0mrgvad/oxVKiAMC7qDzMrPPe/nRKmJOoIsupRg9/frvL62kZZiHhqVD1HMyyswbQFC69QRl7JqWzvxg== + dependencies: + web3-eth-iban "1.6.0" + web3-utils "1.6.0" + +web3-core-method@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.6.0.tgz#ebe4ea51f5a4fa809bb68185576186359d3982e9" + integrity sha512-cHekyEil4mtcCOk6Q1Zh4y+2o5pTwsLIxP6Bpt4BRtZgdsyPiadYJpkLAVT/quch5xN7Qs5ZwG5AvRCS3VwD2g== + dependencies: + "@ethereumjs/common" "^2.4.0" + "@ethersproject/transactions" "^5.0.0-beta.135" + web3-core-helpers "1.6.0" + web3-core-promievent "1.6.0" + web3-core-subscriptions "1.6.0" + web3-utils "1.6.0" + +web3-core-promievent@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.6.0.tgz#8b6053ae83cb47164540167fc361469fc604d2dd" + integrity sha512-ZzsevjMXWkhqW9dnVfTfb1OUcK7jKcKPvPIbQ4boJccNgvNZPZKlo8xB4pkAX38n4c59O5mC7Lt/z2QL/M5CeQ== + dependencies: + eventemitter3 "4.0.4" + +web3-core-requestmanager@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.6.0.tgz#8ef3a3b89cd08983bd94574f9c5893f70a8a6aea" + integrity sha512-CY5paPdiDXKTXPWaEUZekDfUXSuoE2vPxolwqzsvKwFWH5+H1NaXgrc+D5HpufgSvTXawTw0fy7IAicg8+PWqA== + dependencies: + util "^0.12.0" + web3-core-helpers "1.6.0" + web3-providers-http "1.6.0" + web3-providers-ipc "1.6.0" + web3-providers-ws "1.6.0" + +web3-core-subscriptions@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.6.0.tgz#8c23b15b434a7c9f937652ecca45d7108e2c54df" + integrity sha512-kY9WZUY/m1URSOv3uTLshoZD9ZDiFKReIzHuPUkxFpD5oYNmr1/aPQNPCrrMxKODR7UVX/D90FxWwCYqHhLaxQ== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.6.0" + +web3-core@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.6.0.tgz#144eb00f651c9812faf7176abd7ee99d5f45e212" + integrity sha512-o0WsLrJ2yD+HAAc29lGMWJef/MutTyuzpJC0UzLJtIAQJqtpDalzWINEu4j8XYXGk34N/V6vudtzRPo23QEE6g== + dependencies: + "@types/bn.js" "^4.11.5" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.6.0" + web3-core-method "1.6.0" + web3-core-requestmanager "1.6.0" + web3-utils "1.6.0" + +web3-eth-abi@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.6.0.tgz#4225608f61ebb0607d80849bb2b20f910780253d" + integrity sha512-fImomGE9McuTMJLwK8Tp0lTUzXqCkWeMm00qPVIwpJ/h7lCw9UFYV9+4m29wSqW6FF+FIZKwc6UBEf9dlx3orA== + dependencies: + "@ethersproject/abi" "5.0.7" + web3-utils "1.6.0" + +web3-eth-accounts@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.6.0.tgz#530927f4c5b78df93b3ea1203abbb467de29cd04" + integrity sha512-2f6HS4KIH4laAsNCOfbNX3dRiQosqSY2TRK86C8jtAA/QKGdx+5qlPfYzbI2RjG81iayb2+mVbHIaEaBGZ8sGw== + dependencies: + "@ethereumjs/common" "^2.3.0" + "@ethereumjs/tx" "^3.2.1" + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-util "^7.0.10" + scrypt-js "^3.0.1" + uuid "3.3.2" + web3-core "1.6.0" + web3-core-helpers "1.6.0" + web3-core-method "1.6.0" + web3-utils "1.6.0" + +web3-eth-contract@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.6.0.tgz#deb946867ad86d32bcbba899d733b681b25ea674" + integrity sha512-ZUtO77zFnxuFtrc+D+iJ3AzNgFXAVcKnhEYN7f1PNz/mFjbtE6dJ+ujO0mvMbxIZF02t9IZv0CIXRpK0rDvZAw== + dependencies: + "@types/bn.js" "^4.11.5" + web3-core "1.6.0" + web3-core-helpers "1.6.0" + web3-core-method "1.6.0" + web3-core-promievent "1.6.0" + web3-core-subscriptions "1.6.0" + web3-eth-abi "1.6.0" + web3-utils "1.6.0" + +web3-eth-ens@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.6.0.tgz#af13852168d56fa71b9198eb097e96fb93831c2a" + integrity sha512-AG24PNv9qbYHSpjHcU2pViOII0jvIR7TeojJ2bxXSDqfcgHuRp3NZGKv6xFvT4uNI4LEQHUhSC7bzHoNF5t8CA== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + web3-core "1.6.0" + web3-core-helpers "1.6.0" + web3-core-promievent "1.6.0" + web3-eth-abi "1.6.0" + web3-eth-contract "1.6.0" + web3-utils "1.6.0" + +web3-eth-iban@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.6.0.tgz#edbe46cedc5b148d53fa455edea6b4eef53b2be7" + integrity sha512-HM/bKBS/e8qg0+Eh7B8C/JVG+GkR4AJty17DKRuwMtrh78YsonPj7GKt99zS4n5sDLFww1Imu/ZIk3+K5uJCjw== + dependencies: + bn.js "^4.11.9" + web3-utils "1.6.0" + +web3-eth-personal@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.6.0.tgz#b75a61c0737b8b8bcc11d05db2ed7bfce7e4b262" + integrity sha512-8ohf4qAwbShf4RwES2tLHVqa+pHZnS5Q6tV80sU//bivmlZeyO1W4UWyNn59vu9KPpEYvLseOOC6Muxuvr8mFQ== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.6.0" + web3-core-helpers "1.6.0" + web3-core-method "1.6.0" + web3-net "1.6.0" + web3-utils "1.6.0" + +web3-eth@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.6.0.tgz#4c9d5fb4eccf9f8744828281757e6ea76af58cbd" + integrity sha512-qJMvai//r0be6I9ghU24/152f0zgJfYC23TMszN3Y6jse1JtjCBP2TlTibFcvkUN1RRdIUY5giqO7ZqAYAmp7w== + dependencies: + web3-core "1.6.0" + web3-core-helpers "1.6.0" + web3-core-method "1.6.0" + web3-core-subscriptions "1.6.0" + web3-eth-abi "1.6.0" + web3-eth-accounts "1.6.0" + web3-eth-contract "1.6.0" + web3-eth-ens "1.6.0" + web3-eth-iban "1.6.0" + web3-eth-personal "1.6.0" + web3-net "1.6.0" + web3-utils "1.6.0" + +web3-net@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.6.0.tgz#2c28f8787073110a7c2310336889d2dad647e500" + integrity sha512-LFfG95ovTT2sNHkO1TEfsaKpYcxOSUtbuwHQ0K3G0e5nevKDJkPEFIqIcob40yiwcWoqEjENJP9Bjk8CRrZ99Q== + dependencies: + web3-core "1.6.0" + web3-core-method "1.6.0" + web3-utils "1.6.0" + +web3-providers-http@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.6.0.tgz#8db4e589abf7197f5d65b12af1bf9726c45f4160" + integrity sha512-sNxHFNv3lnxpmULt34AS6M36IYB/Hzm2Et4yPNzdP1XE644D8sQBZQZaJQdTaza5HfrlwoqU6AOK935armqGuA== + dependencies: + web3-core-helpers "1.6.0" + xhr2-cookies "1.1.0" + +web3-providers-ipc@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.6.0.tgz#6a3410fd47a67c4a36719fb97f99534ae12aac98" + integrity sha512-ETYdfhpGiGoWpmmSJnONvnPfd3TPivHEGjXyuX+L5FUsbMOVZj9MFLNIS19Cx/YGL8UWJ/8alLJoTcWSIdz/aA== + dependencies: + oboe "2.1.5" + web3-core-helpers "1.6.0" + +web3-providers-ws@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.6.0.tgz#dc15dc18c30089efda992015fd5254bd2b77af5f" + integrity sha512-eNRmlhOPCpuVYwBrKBBQRLGPFb4U1Uo44r9EWV69Cpo4gP6XeBTl6nkawhLz6DS0fq79apyPfItJVuSfAy77pA== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.6.0" + websocket "^1.0.32" + +web3-shh@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.6.0.tgz#838a3435dce1039f669a48e53e948062de197931" + integrity sha512-ymN0OFL81WtEeSyb+PFpuUv39fR3frGwsZnIg5EVPZvrOIdaDSFcGSLDmafUt0vKSubvLMVYIBOCskRD6YdtEQ== + dependencies: + web3-core "1.6.0" + web3-core-method "1.6.0" + web3-core-subscriptions "1.6.0" + web3-net "1.6.0" + +web3-utils@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.6.0.tgz#1975c5ee5b7db8a0836eb7004848a7cd962d1ddc" + integrity sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg== + dependencies: + 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" + +web3@^1.3.6: + version "1.6.0" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.6.0.tgz#d8fa0cd9e7bf252f9fe43bb77dc42bc6671affde" + integrity sha512-rWpXnO88MiVX5yTRqMBCVKASxc7QDkXZZUl1D48sKlbX4dt3BAV+nVMVUKCBKiluZ5Bp8pDrVCUdPx/jIYai5Q== + dependencies: + web3-bzz "1.6.0" + web3-core "1.6.0" + web3-eth "1.6.0" + web3-eth-personal "1.6.0" + web3-net "1.6.0" + web3-shh "1.6.0" + web3-utils "1.6.0" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= -websocket@^1.0.34: +websocket@^1.0.32, websocket@^1.0.34: version "1.0.34" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== @@ -5330,6 +7359,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -5345,22 +7383,96 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== +ws@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@^7.4.6: + version "7.5.5" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" + integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== + ws@^8.2.0, ws@~8.2.3: version "8.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== +xhr-request-promise@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== + dependencies: + xhr-request "^1.1.0" + +xhr-request@^1.0.1, xhr-request@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== + dependencies: + buffer-to-arraybuffer "^0.0.5" + object-assign "^4.1.1" + query-string "^5.0.1" + simple-get "^2.7.0" + timed-out "^4.0.1" + url-set-query "^1.0.0" + xhr "^2.0.4" + +xhr2-cookies@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" + integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= + dependencies: + cookiejar "^2.1.1" + +xhr@^2.0.4, xhr@^2.3.3: + version "2.6.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + xmlhttprequest-ssl@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== +xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= + +"xpnet-nft-list@git+https://github.com/xp-network/nft-list-backend#bleeding-edge": + version "0.0.1" + resolved "git+https://github.com/xp-network/nft-list-backend#5f76af5da19302165075bbbc79b4a8aaccf32eeb" + dependencies: + "@elrondnetwork/erdjs" "^8.0.1-alpha.8" + axios "^0.23.0" + cors "^2.8.5" + dotenv "^10.0.0" + ethers "^5.5.1" + express "^4.17.1" + js-base64 "^3.7.2" + moralis "^0.0.116" + "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": version "0.1.0" resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#80749689f97a08e5dca8efc2600b25c91cb906c8" dependencies: ethers "^5.4.1" +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + xxhashjs@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" @@ -5378,7 +7490,7 @@ yaeti@^0.0.6: resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= -yallist@^3.0.2: +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -5388,6 +7500,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" From 16010f2ca7528820eff635f004ed2ae5a693efc6 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 2 Nov 2021 18:27:53 +0530 Subject: [PATCH 136/956] README: update instantiation --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 5371f12cf..06a53f526 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,11 @@ Features Available :- ```javascript const factory = ChainFactory( + { + exchangRateUri: "https://", + moralisServer: "https:///server", + moralisAppId: "MORALIS_APP_ID" + }, { ..., avalancheParams: { From 3e7e0700943d94ea6cb4ff9e6f648b6d75c0a8c4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 2 Nov 2021 18:50:42 +0530 Subject: [PATCH 137/956] feat(factories): add pre made factories --- src/consts.ts | 15 ++- src/factory/factories.ts | 213 +++++++++++++++++++++++++++++++++++++++ src/factory/index.ts | 1 + 3 files changed, 228 insertions(+), 1 deletion(-) create mode 100644 src/factory/factories.ts diff --git a/src/consts.ts b/src/consts.ts index 1b4c9229e..8901b2104 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -6,7 +6,7 @@ import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; import { ElrondHelper, Web3Helper, TronHelper } from "validator"; // All the supported testnet uri's are here. -export enum RpcUri { +export enum TestNetRpcUri { ELROND = "https://devnet-api.elrond.com", HECO = "https://http-testnet.hecochain.com", BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", @@ -19,6 +19,19 @@ export enum RpcUri { HARMONY = "https://api.s0.b.hmny.io", } +export enum MainNetRpcUri { + ELROND = "https://devnet-api.elrond.com", + HECO = "https://http-testnet.hecochain.com", + BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", + ETHEREUM = "https://ropsten.infura.io/v3/182b3d3fb2d14d5fbe7421348624d1ce", + AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", + POLYGON = "https://matic-testnet-archive-rpc.bwarelabs.com", + FANTOM = "https://rpc.testnet.fantom.network/", + TRON = "https://api.shasta.trongrid.io/", + CELO = "https://alfajores-forno.celo-testnet.org", + HARMONY = "https://api.s0.b.hmny.io", +} + export type ChainNonce = number & ThisType & ThisType

; export type ElrondNonce = ChainNonce; export type Web3Nonce = ChainNonce; diff --git a/src/factory/factories.ts b/src/factory/factories.ts new file mode 100644 index 000000000..842add888 --- /dev/null +++ b/src/factory/factories.ts @@ -0,0 +1,213 @@ +import { AppConfig, ChainFactory } from "."; +//@ts-ignore +import TronWeb from "tronweb"; +import { Chain, MainNetRpcUri, TestNetRpcUri } from "../consts"; +import { ethers } from "ethers"; + +const EVM_VALIDATORS = [ + "0xadFF46B0064a490c1258506d91e4325A277B22aE", + "0xa50d8208B15F5e79A1ceABdB4a3ED1866CEB764c", + "0xa3F99eF33eDA9E54DbA4c04a6133c0c507bA4352", + // '0xAC415a404b5275EF9B3E1808870d8393eCa843Ec', + // '0xca2e73418bEbe203c9E88407f68C216CdCd60b38', + // '0x2523d5F7E74A885c720085713a71389845A8F0D2', + // '0xEBAC44f9e63988112Eb4AfE8B8E03e179b6429A6' +]; + +export namespace ChainFactories { + export const TestNetChainFactory = (moralis: AppConfig) => { + return ChainFactory(moralis, { + elrondParams: { + node_uri: "https://devnet-api.elrond.com", + minter_address: + "erd1qqqqqqqqqqqqqpgq3cpmdjk5mwnvqqe7tswcwhdufsddjd4vk4as8qtp05", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqsu5cn3h380l7cem86zfs6k904wnsa9hak4as942duy", + esdt: "XPNET-acb2d0", + esdt_nft: "XPNFT-1a124f", + esdt_swap: "WEGLD-fdf787", + validators: [ + "erd1akrlykhmjl8ykhfukhykzdvcnyay5d0kvdazc82wwt7cvn83arzsgg7w9c", + "erd1dt2mttgf2xpdy9jlxlrd0fcr3nf4sly2tpmam0djq7jj65axvkyqv6hu20", + "erd1hd3afqqhunypqdz292qledsxwtjlnf9t60mftf4xq5tuyutnqntqg5dng4", + "erd14qgeqvr2lfnv7m3nzrmpzdzr5tecns50s82qndk2s84qhw3fg6vsfcaffa", + "erd16gztcqtjzr20ytrwm2wefylydfxhgv7a96kwppa5z3840x4rvavqeazy0v", + "erd19tydrsuwcpcnwku5p90xk3n82gxhmvz54s8fsvz6yhc4ugq67f4qaayrex", + "erd1575jxqnmt9q495xtmre0gmxpc9gjzrcx9ypw7gls5xg59k0m73ksgp0xfu", + ], + nonce: 2, + }, + tronParams: { + provider: new TronWeb({fullhost: MainNetRpcUri.TRON}), + middleware_uri: "string", + erc1155_addr: "string", + minter_addr: "string", + erc721_addr: "string", + validators: ["string[]"], + nonce: Chain.TRON, + }, + avalancheParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: ["string[]"], + nonce: Chain.AVALANCHE, + }, + polygonParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), + minter_addr: "0xc6148C73f4beCbd7aE39ba23a9CeBa9518fF96BE", + erc1155_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", + erc721_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", + validators: [ + "0x060093d5559dcF01aeD66042Ba33bf243ee422b6", + "0xd067607e5D22BD8Fb806e07090FaE9A048a8Fc0d", + "0xB331E65875EeF5979b83DdF8aFB05bC5E86bB78D", + "0xB6C11DC232ab25BD61b3efc7a95C971ec002127C", + "0x848AF71847407d27fD8DD3A099F43F59B617C26a", + "0x54E68543464e0253C5A9e83471fc00aa9866d7bE", + "0x4Cfc8800606EDBd970298bB040Fc8D859c806702", + ], + nonce: Chain.POLYGON, + }, + fantomParams: { + provider:new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: ["string[]"], + nonce: Chain.FANTOM, + }, + bscParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: ["string[]"], + nonce: Chain.BSC, + }, + celoParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: ["string[]"], + nonce: Chain.CELO, + }, + harmonyParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: ["string[]"], + nonce: Chain.HARMONY, + }, + ropstenParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), + minter_addr: "0x8C03d5A667A03Ef2A56E78609E510B6cB33147AD", + erc1155_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", + erc721_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", + validators: [ + "0x060093d5559dcF01aeD66042Ba33bf243ee422b6", + "0xd067607e5D22BD8Fb806e07090FaE9A048a8Fc0d", + "0xB331E65875EeF5979b83DdF8aFB05bC5E86bB78D", + "0xB6C11DC232ab25BD61b3efc7a95C971ec002127C", + "0x848AF71847407d27fD8DD3A099F43F59B617C26a", + "0x54E68543464e0253C5A9e83471fc00aa9866d7bE", + "0x4Cfc8800606EDBd970298bB040Fc8D859c806702", + ], + nonce: Chain.ROPSTEN, + }, + }); + }; + + export const MainNetChainFactory = (moralis: AppConfig) => { + return ChainFactory(moralis,{ + elrondParams: { + node_uri: "https://elrondnode.xp.network/proxy/", + minter_address: + "erd1qqqqqqqqqqqqqpgqe4hsht34ut085demqk2g2llcznankw84p7tqx5s9ce", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqkkcsf8aky3vn057086cgnps768ann7nfp7tqxppx53", + esdt: "XPNET-0e265d", + esdt_nft: "XPNFT-9d19d5", + esdt_swap: "WEGLD-6823c1", + validators: [ + "erd1lwyjz0adjd3vqpcjqs5rntw6sxzf9pvqussadygy2u76mz9ap7tquc0z5s", + "erd1tzc9qltpntlgnpetrz58llqsg93dnxety54umln0kuq2k6dajf6qk796wh", + "erd14aw3kvmepsffajkywp6autxxf7zy77uvnhy9e93wwz4qjkd88muquys007", + "erd1nj85l5qx2gn2euj4hnjzq464euwzh8fe6txkf046nttne7y3cl4qmndgya", + "erd1fl3mpjnrev7x5dz4un0hpzhvny4dlv4d2zt38yhqe37u9ulzx2aqeqr8sr", + "erd16kufez3g0tmxhyra2ysgpkqckurqe80ulxet8dfffm0t28tnavpstr0s93", + "erd1wua3q7zja2g08gyta4pkd4eax2r03c3edsz72dp90m3z69rk8yuqqnrg63", + ], + nonce: Chain.ELROND, + }, + tronParams: { + provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), + middleware_uri: "string", + erc1155_addr: "string", + minter_addr: "string", + erc721_addr: "string", + nonce: Chain.TRON, + validators: [""], + }, + avalancheParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), + minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", + erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + validators: [""], + nonce: Chain.AVALANCHE, + }, + polygonParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), + minter_addr: "0x2f072879411503580B8974A221bf76638C50a82a", + erc1155_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", + erc721_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", + validators: EVM_VALIDATORS, + nonce: Chain.POLYGON, + }, + fantomParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), + minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", + erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + validators: EVM_VALIDATORS, + nonce: Chain.FANTOM, + }, + bscParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), + minter_addr: "0xF8679A16858cB7d21b3aF6b2AA1d6818876D3741", + erc1155_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", + erc721_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", + validators: EVM_VALIDATORS, + nonce: Chain.BSC, + }, + celoParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: EVM_VALIDATORS, + nonce: Chain.CELO, + }, + harmonyParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: [], + nonce: Chain.HARMONY, + }, + ropstenParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), + minter_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", + erc1155_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", + erc721_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", + validators: EVM_VALIDATORS, + nonce: Chain.ROPSTEN, + }, + }); + }; +} diff --git a/src/factory/index.ts b/src/factory/index.ts index 201457624..987ff8b90 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -2,6 +2,7 @@ import { ElrondHelper, ElrondParams } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, ChainNonce, CHAIN_INFO } from "../consts"; +export * from "./factories" import { BareNft, From ca4fa8c50720bf58b749da850514f21eb44e70cd Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 2 Nov 2021 19:10:06 +0530 Subject: [PATCH 138/956] helpers: isWrapped: ignore contract case --- src/helpers/tron.ts | 2 +- src/helpers/web3.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 95d49eb9f..55c87d72e 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -313,7 +313,7 @@ export async function tronHelperFactory( }; }, isWrappedNft(nft) { - return nft.native.contract === tronParams.erc721_addr; + return nft.native.contract.toLowerCase() === tronParams.erc721_addr.toLowerCase(); }, decodeWrappedNft(raw_data: NftInfo): WrappedNft { const u8D = Base64.toUint8Array(raw_data.native.uri); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 62672de0b..0461d3dc1 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -293,7 +293,7 @@ export async function web3HelperFactory( return new BigNumber(bal.toString()); }, isWrappedNft(nft) { - return nft.native.contract === params.erc721_addr; + return nft.native.contract.toLowerCase() === params.erc721_addr.toLowerCase(); }, async balanceWrappedBatch( address: string, From 28dfff20b31d53574df2664a9a7f2a4d3c718a35 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 2 Nov 2021 19:13:12 +0530 Subject: [PATCH 139/956] update nft-list --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index f08a3bbe8..d228d0004 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7451,7 +7451,7 @@ xmlhttprequest@1.8.0: "xpnet-nft-list@git+https://github.com/xp-network/nft-list-backend#bleeding-edge": version "0.0.1" - resolved "git+https://github.com/xp-network/nft-list-backend#5f76af5da19302165075bbbc79b4a8aaccf32eeb" + resolved "git+https://github.com/xp-network/nft-list-backend#089d9c2dfc0e372c1d5ab3104dc6e6f51191c4b4" dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" axios "^0.23.0" From 2fa71177239b1fadc90cc1a053bcdd7b521cf91e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 2 Nov 2021 19:24:08 +0530 Subject: [PATCH 140/956] fix(mainnet-uri): update the mainnet URIs --- src/consts.ts | 22 +++++++++++----------- src/factory/factories.ts | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 8901b2104..367633493 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -10,7 +10,7 @@ export enum TestNetRpcUri { ELROND = "https://devnet-api.elrond.com", HECO = "https://http-testnet.hecochain.com", BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", - ROPSTEN = "https://ropsten.infura.io/v3/182b3d3fb2d14d5fbe7421348624d1ce", + ROPSTEN = "https://ropsten.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-testnet-archive-rpc.bwarelabs.com", FANTOM = "https://rpc.testnet.fantom.network/", @@ -20,16 +20,16 @@ export enum TestNetRpcUri { } export enum MainNetRpcUri { - ELROND = "https://devnet-api.elrond.com", - HECO = "https://http-testnet.hecochain.com", - BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", - ETHEREUM = "https://ropsten.infura.io/v3/182b3d3fb2d14d5fbe7421348624d1ce", - AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", - POLYGON = "https://matic-testnet-archive-rpc.bwarelabs.com", - FANTOM = "https://rpc.testnet.fantom.network/", - TRON = "https://api.shasta.trongrid.io/", - CELO = "https://alfajores-forno.celo-testnet.org", - HARMONY = "https://api.s0.b.hmny.io", + ELROND = "https://gateway.elrond.com", + HECO = "https://http-mainnet-node.huobichain.com", + BSC = "https://bsc-dataseed.binance.org/", + ETHEREUM = "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", + AVALANCHE = "https://api.avax.network/ext/bc/C/rpc", + POLYGON = "https://rpc-mainnet.matic.network", + FANTOM = "https://rpc.ftm.tools/", + TRON = "https://api.trongrid.io/", + CELO = "https://forno.celo.org", + HARMONY = "https://api.harmony.one", } export type ChainNonce = number & ThisType & ThisType

; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 842add888..ef4c8ace4 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -18,7 +18,7 @@ export namespace ChainFactories { export const TestNetChainFactory = (moralis: AppConfig) => { return ChainFactory(moralis, { elrondParams: { - node_uri: "https://devnet-api.elrond.com", + node_uri: TestNetRpcUri.ELROND, minter_address: "erd1qqqqqqqqqqqqqpgq3cpmdjk5mwnvqqe7tswcwhdufsddjd4vk4as8qtp05", esdt_swap_address: @@ -124,7 +124,7 @@ export namespace ChainFactories { export const MainNetChainFactory = (moralis: AppConfig) => { return ChainFactory(moralis,{ elrondParams: { - node_uri: "https://elrondnode.xp.network/proxy/", + node_uri: MainNetRpcUri.ELROND, minter_address: "erd1qqqqqqqqqqqqqpgqe4hsht34ut085demqk2g2llcznankw84p7tqx5s9ce", esdt_swap_address: From 194d3a5602e38f6b74e61b4efc096e821364e5fa Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 2 Nov 2021 19:49:46 +0530 Subject: [PATCH 141/956] chore(factories): extract away testnet validators --- src/factory/factories.ts | 48 ++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index ef4c8ace4..951489195 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -14,6 +14,16 @@ const EVM_VALIDATORS = [ // '0xEBAC44f9e63988112Eb4AfE8B8E03e179b6429A6' ]; +const EVM_TESTNET_VALIDATORS = [ + "0x060093d5559dcF01aeD66042Ba33bf243ee422b6", + "0xd067607e5D22BD8Fb806e07090FaE9A048a8Fc0d", + "0xB331E65875EeF5979b83DdF8aFB05bC5E86bB78D", + "0xB6C11DC232ab25BD61b3efc7a95C971ec002127C", + "0x848AF71847407d27fD8DD3A099F43F59B617C26a", + "0x54E68543464e0253C5A9e83471fc00aa9866d7bE", + "0x4Cfc8800606EDBd970298bB040Fc8D859c806702", +]; + export namespace ChainFactories { export const TestNetChainFactory = (moralis: AppConfig) => { return ChainFactory(moralis, { @@ -38,12 +48,12 @@ export namespace ChainFactories { nonce: 2, }, tronParams: { - provider: new TronWeb({fullhost: MainNetRpcUri.TRON}), + provider: new TronWeb({ fullhost: MainNetRpcUri.TRON }), middleware_uri: "string", erc1155_addr: "string", minter_addr: "string", erc721_addr: "string", - validators: ["string[]"], + validators: EVM_TESTNET_VALIDATORS, nonce: Chain.TRON, }, avalancheParams: { @@ -51,7 +61,7 @@ export namespace ChainFactories { minter_addr: "string", erc1155_addr: "string", erc721_addr: "string", - validators: ["string[]"], + validators: EVM_TESTNET_VALIDATORS, nonce: Chain.AVALANCHE, }, polygonParams: { @@ -59,23 +69,15 @@ export namespace ChainFactories { minter_addr: "0xc6148C73f4beCbd7aE39ba23a9CeBa9518fF96BE", erc1155_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", erc721_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", - validators: [ - "0x060093d5559dcF01aeD66042Ba33bf243ee422b6", - "0xd067607e5D22BD8Fb806e07090FaE9A048a8Fc0d", - "0xB331E65875EeF5979b83DdF8aFB05bC5E86bB78D", - "0xB6C11DC232ab25BD61b3efc7a95C971ec002127C", - "0x848AF71847407d27fD8DD3A099F43F59B617C26a", - "0x54E68543464e0253C5A9e83471fc00aa9866d7bE", - "0x4Cfc8800606EDBd970298bB040Fc8D859c806702", - ], + validators: EVM_TESTNET_VALIDATORS, nonce: Chain.POLYGON, }, fantomParams: { - provider:new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), minter_addr: "string", erc1155_addr: "string", erc721_addr: "string", - validators: ["string[]"], + validators: EVM_TESTNET_VALIDATORS, nonce: Chain.FANTOM, }, bscParams: { @@ -83,7 +85,7 @@ export namespace ChainFactories { minter_addr: "string", erc1155_addr: "string", erc721_addr: "string", - validators: ["string[]"], + validators: EVM_TESTNET_VALIDATORS, nonce: Chain.BSC, }, celoParams: { @@ -91,7 +93,7 @@ export namespace ChainFactories { minter_addr: "string", erc1155_addr: "string", erc721_addr: "string", - validators: ["string[]"], + validators: EVM_TESTNET_VALIDATORS, nonce: Chain.CELO, }, harmonyParams: { @@ -99,7 +101,7 @@ export namespace ChainFactories { minter_addr: "string", erc1155_addr: "string", erc721_addr: "string", - validators: ["string[]"], + validators: EVM_TESTNET_VALIDATORS, nonce: Chain.HARMONY, }, ropstenParams: { @@ -107,22 +109,14 @@ export namespace ChainFactories { minter_addr: "0x8C03d5A667A03Ef2A56E78609E510B6cB33147AD", erc1155_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", erc721_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", - validators: [ - "0x060093d5559dcF01aeD66042Ba33bf243ee422b6", - "0xd067607e5D22BD8Fb806e07090FaE9A048a8Fc0d", - "0xB331E65875EeF5979b83DdF8aFB05bC5E86bB78D", - "0xB6C11DC232ab25BD61b3efc7a95C971ec002127C", - "0x848AF71847407d27fD8DD3A099F43F59B617C26a", - "0x54E68543464e0253C5A9e83471fc00aa9866d7bE", - "0x4Cfc8800606EDBd970298bB040Fc8D859c806702", - ], + validators: EVM_TESTNET_VALIDATORS, nonce: Chain.ROPSTEN, }, }); }; export const MainNetChainFactory = (moralis: AppConfig) => { - return ChainFactory(moralis,{ + return ChainFactory(moralis, { elrondParams: { node_uri: MainNetRpcUri.ELROND, minter_address: From b9c80a68c119a42b4129abb7829f7f104b1fb5d3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 3 Nov 2021 15:37:22 +0530 Subject: [PATCH 142/956] chore(factories): add missing smart contract addresses --- src/factory/factories.ts | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 951489195..6b7eb7dd6 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -58,9 +58,9 @@ export namespace ChainFactories { }, avalancheParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), - minter_addr: "string", - erc1155_addr: "string", - erc721_addr: "string", + minter_addr: "0x273c507D8E21cDE039491B14647Fe9278D88e91D", + erc1155_addr: "0x04F75a27cE2FDC591C71a88f1EcaC7e5Ce44f5Fc", + erc721_addr: "0xCC5Bc84C3FDbcF262AaDD9F76652D6784293dD9e", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.AVALANCHE, }, @@ -74,33 +74,33 @@ export namespace ChainFactories { }, fantomParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), - minter_addr: "string", - erc1155_addr: "string", - erc721_addr: "string", + minter_addr: "0x4Bd915C3e39cfF4eac842255965E79061c38cACD", + erc1155_addr: "0xAAd4F7BB5FB661181D500829e60010043833a85B", + erc721_addr: "0x72aC6A36de2f72BD39e9c782e9db0DCc41FEbfe2", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.FANTOM, }, bscParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), - minter_addr: "string", - erc1155_addr: "string", - erc721_addr: "string", + minter_addr: "0x346cb8F9081CA561946E5F0f258e64dB7C075465", + erc1155_addr: "0x434541d6aA0e8395d30e6E6Dd0A83680bc8Cd4B7", + erc721_addr: "0x4BC19A536178cf7E8EE49206357f68c891752FA0", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.BSC, }, celoParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), - minter_addr: "string", - erc1155_addr: "string", - erc721_addr: "string", + minter_addr: "0x00CAC06Dd0BB4103f8b62D280fE9BCEE8f26fD59", + erc1155_addr: "0xAD2935E147b61175D5dc3A9e7bDa93B0975A43BA", + erc721_addr: "0x06b3244b086cecC40F1e5A826f736Ded68068a0F", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.CELO, }, harmonyParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), - minter_addr: "string", - erc1155_addr: "string", - erc721_addr: "string", + minter_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", + erc1155_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", + erc721_addr: "0xB82008565FdC7e44609fA118A4a681E92581e680", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.HARMONY, }, @@ -151,7 +151,7 @@ export namespace ChainFactories { minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - validators: [""], + validators: EVM_VALIDATORS, nonce: Chain.AVALANCHE, }, polygonParams: { From 5a83652399deacce83f872c555f26566b5ddbeb4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 3 Nov 2021 16:02:38 +0530 Subject: [PATCH 143/956] feat(readme): add instructions on how to transfer NFTs --- README.md | 75 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 06a53f526..13544c7af 100644 --- a/README.md +++ b/README.md @@ -24,39 +24,28 @@ Features Available :- npm install xp.network ``` -- Import ChainFactory from the package and instantiate it with the params required i.e. for Avalanche +- Instantiate a ChainFactory from the package depending on the the network you want to use (ie Testnet or Mainnet). It has our smart contract address. ```javascript - const factory = ChainFactory( - { - exchangRateUri: "https://", - moralisServer: "https:///server", - moralisAppId: "MORALIS_APP_ID" - }, - { - ..., - avalancheParams: { - erc1155_addr: "ADDRESS OF ERC1155 CONTRACT", - minter_abi: "The ABI OF MINTER CONTRACT", - erc721_addr: "ADDRESS OF ERC721 CONTRACT", - minter_addr: "ADDRESS OF MINTER CONTRACT", - // Appropriate Provider for Each Chain. Could be coming from metamask/tron-link wallet. Here we are using metamask. - provider: new ethers.providers.Web3Provider(await detectEthereumProvider()), - }, - ..., - }); + import { ChainFactories } from "xp.network/dist"; + + const factory = ChainFactories.TestNetChainFactory({ + exchangeRateUri: "https://", + moralisServer: "https:///server", + moralisAppId: "MORALIS_APP_ID", + }); // You can also call the ChainFactories.MainNetChainFactory() ``` - Get the inner object from this factory ```javascript - const inner = await factory.inner(Chain.AVALANCHE); + const avax = await factory.inner(Chain.AVALANCHE); ``` - Just call the mint function on the factory with suitable arguments ```javascript - const receipt = await factory.mint(inner, web3Provider.getSigner(address), { + const receipt = await factory.mint(avax, web3Provider.getSigner(address), { // Could be an IPFS URL or Any URL that points to a Metadata uris: [metadata.url], attrs: description, @@ -66,3 +55,47 @@ Features Available :- ``` - That's it. + +## To Transfer an NFT, Follow the steps as specified - + +- Instantiate a ChainFactory from the package depending on the the network you want to use (ie Testnet or Mainnet). It has our smart contract address. + + ```javascript + import { ChainFactories } from "xp.network/dist"; + + const factory = ChainFactories.TestNetChainFactory({ + exchangeRateUri: "https://", + moralisServer: "https:///server", + moralisAppId: "MORALIS_APP_ID", + }); // You can also call the ChainFactories.MainNetChainFactory() + ``` + +- Get chain handlers for the source chain and the target chain. + + ```javascript + const avax = await factory.inner(Chain.AVALANCHE); + const bsc = await factory.inner(Chain.BSC); + ``` + +- Get NFTs Owned by the sender + +```javascript +const nfts = await factory.nftList(avax, "NFT OWNER ADDRESS"); +``` + +- Call the transferNft function on the factory with suitable arguments + + ```javascript + factory.transferNft( + heco, + bsc, + nfts[0], // Or the nft of your choosing. + new Wallet( + "ADDRESS OF SENDER", // Can use Metamask for Web3 Chains, Tronlink for Tron + avaxProvider // and Maiar for Elrond if running in browser. + ), + "ADDRESS OF THE RECEIVER" + ); + ``` + +- That's it. The NFT will be transferred and added to the receiver's address. From f6741436a3d411895501b7329266fbe54ac48a19 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 3 Nov 2021 19:11:45 +0530 Subject: [PATCH 144/956] feat(chains): add xDai --- package.json | 2 +- src/consts.ts | 23 +++++++++++++++++++ src/factory/factories.ts | 48 ++++++++++++++++++++++++++-------------- src/factory/index.ts | 2 ++ yarn.lock | 9 +------- 5 files changed, 59 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 9bd399636..d10863429 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@elrondnetwork/erdjs": "^8.0.1-alpha.8", "axios": "^0.21.1", "bignumber.js": "^9.0.1", - "crypto-exchange-rate": "https://github.com/xp-network/exchange-rate#master-dist", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", "ethers": "5.4.4", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", diff --git a/src/consts.ts b/src/consts.ts index 367633493..7ee45a997 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -17,6 +17,7 @@ export enum TestNetRpcUri { TRON = "https://api.shasta.trongrid.io/", CELO = "https://alfajores-forno.celo-testnet.org", HARMONY = "https://api.s0.b.hmny.io", + XDAI = "https://sokol.poa.network" } export enum MainNetRpcUri { @@ -30,6 +31,7 @@ export enum MainNetRpcUri { TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", HARMONY = "https://api.harmony.one", + XDAI = "https://rpc.xdaichain.com/" } export type ChainNonce = number & ThisType & ThisType

; @@ -48,6 +50,7 @@ export namespace Chain { export const TRON: TronNonce = 9; export const CELO: Web3Nonce = 0xb; export const HARMONY: Web3Nonce = 0xc; + export const XDAI: Web3Nonce = 0xe; } interface ChainData { @@ -168,4 +171,24 @@ export const CHAIN_INFO: ChainInfo = { currency: SupportedCurrency.CELO, validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, + // 13: { + // name: "Ontology", + // nonce: 0xd, + // decimals: 1e18, + // chainId: 1666700000, + // blockExplorerUrl: "https://explorer.pops.one/tx", + // constructor: (p) => web3HelperFactory(p as Web3Params), + // currency: SupportedCurrency.CELO, + // validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], + // }, + 14: { + name: "xDai", + nonce: 0xe, + decimals: 1e18, + chainId: 0x64, + blockExplorerUrl: "https://blockscout.com/xdai/mainnet/", + constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.STAKE, + validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], + } }; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 6b7eb7dd6..c2998a13e 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -48,7 +48,7 @@ export namespace ChainFactories { nonce: 2, }, tronParams: { - provider: new TronWeb({ fullhost: MainNetRpcUri.TRON }), + provider: new TronWeb({ fullhost: TestNetRpcUri.TRON }), middleware_uri: "string", erc1155_addr: "string", minter_addr: "string", @@ -57,7 +57,7 @@ export namespace ChainFactories { nonce: Chain.TRON, }, avalancheParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), minter_addr: "0x273c507D8E21cDE039491B14647Fe9278D88e91D", erc1155_addr: "0x04F75a27cE2FDC591C71a88f1EcaC7e5Ce44f5Fc", erc721_addr: "0xCC5Bc84C3FDbcF262AaDD9F76652D6784293dD9e", @@ -65,7 +65,7 @@ export namespace ChainFactories { nonce: Chain.AVALANCHE, }, polygonParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), minter_addr: "0xc6148C73f4beCbd7aE39ba23a9CeBa9518fF96BE", erc1155_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", erc721_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", @@ -73,7 +73,7 @@ export namespace ChainFactories { nonce: Chain.POLYGON, }, fantomParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), minter_addr: "0x4Bd915C3e39cfF4eac842255965E79061c38cACD", erc1155_addr: "0xAAd4F7BB5FB661181D500829e60010043833a85B", erc721_addr: "0x72aC6A36de2f72BD39e9c782e9db0DCc41FEbfe2", @@ -81,7 +81,7 @@ export namespace ChainFactories { nonce: Chain.FANTOM, }, bscParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), minter_addr: "0x346cb8F9081CA561946E5F0f258e64dB7C075465", erc1155_addr: "0x434541d6aA0e8395d30e6E6Dd0A83680bc8Cd4B7", erc721_addr: "0x4BC19A536178cf7E8EE49206357f68c891752FA0", @@ -89,7 +89,7 @@ export namespace ChainFactories { nonce: Chain.BSC, }, celoParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), minter_addr: "0x00CAC06Dd0BB4103f8b62D280fE9BCEE8f26fD59", erc1155_addr: "0xAD2935E147b61175D5dc3A9e7bDa93B0975A43BA", erc721_addr: "0x06b3244b086cecC40F1e5A826f736Ded68068a0F", @@ -97,7 +97,7 @@ export namespace ChainFactories { nonce: Chain.CELO, }, harmonyParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), minter_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", erc1155_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", erc721_addr: "0xB82008565FdC7e44609fA118A4a681E92581e680", @@ -105,13 +105,21 @@ export namespace ChainFactories { nonce: Chain.HARMONY, }, ropstenParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), minter_addr: "0x8C03d5A667A03Ef2A56E78609E510B6cB33147AD", erc1155_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", erc721_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.ROPSTEN, }, + xDaiParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.XDAI, + }, }); }; @@ -138,7 +146,7 @@ export namespace ChainFactories { nonce: Chain.ELROND, }, tronParams: { - provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), + provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), middleware_uri: "string", erc1155_addr: "string", minter_addr: "string", @@ -147,7 +155,7 @@ export namespace ChainFactories { validators: [""], }, avalancheParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", @@ -155,7 +163,7 @@ export namespace ChainFactories { nonce: Chain.AVALANCHE, }, polygonParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), minter_addr: "0x2f072879411503580B8974A221bf76638C50a82a", erc1155_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", erc721_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", @@ -163,7 +171,7 @@ export namespace ChainFactories { nonce: Chain.POLYGON, }, fantomParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", @@ -171,7 +179,7 @@ export namespace ChainFactories { nonce: Chain.FANTOM, }, bscParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), minter_addr: "0xF8679A16858cB7d21b3aF6b2AA1d6818876D3741", erc1155_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", erc721_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", @@ -179,7 +187,7 @@ export namespace ChainFactories { nonce: Chain.BSC, }, celoParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), minter_addr: "string", erc1155_addr: "string", erc721_addr: "string", @@ -187,7 +195,7 @@ export namespace ChainFactories { nonce: Chain.CELO, }, harmonyParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), minter_addr: "string", erc1155_addr: "string", erc721_addr: "string", @@ -195,13 +203,21 @@ export namespace ChainFactories { nonce: Chain.HARMONY, }, ropstenParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), minter_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", erc1155_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", erc721_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", validators: EVM_VALIDATORS, nonce: Chain.ROPSTEN, }, + xDaiParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), + minter_addr: "0xcE0066b1008237625dDDBE4a751827de037E53D2", + erc1155_addr: "0x7B4f352Cd40114f12e82fC675b5BA8C7582FC513", + erc721_addr: "0xAdE429ba898c34722e722415D722A70a297cE3a2", + validators: EVM_VALIDATORS, + nonce: Chain.XDAI, + }, }); }; } diff --git a/src/factory/index.ts b/src/factory/index.ts index 987ff8b90..917a053f7 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -132,6 +132,7 @@ export interface ChainParams { celoParams: Web3Params; harmonyParams: Web3Params; ontologyParams: Web3Params; + xDaiParams: Web3Params; } export interface AppConfig { @@ -160,6 +161,7 @@ function mapNonceToParams( cToP.set(11, chainParams.celoParams); cToP.set(12, chainParams.harmonyParams); cToP.set(13, chainParams.ontologyParams); + cToP.set(14, chainParams.xDaiParams); return cToP; } /** diff --git a/yarn.lock b/yarn.lock index d228d0004..68f5aa4ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2888,14 +2888,7 @@ crypto-browserify@3.12.0: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - uid "88beed89f97b1ddd957d4ec78bb5bbfbf350ce73" - resolved "git+https://github.com/xp-network/exchange-rate#88beed89f97b1ddd957d4ec78bb5bbfbf350ce73" - dependencies: - axios "^0.21.1" - -"crypto-exchange-rate@https://github.com/xp-network/exchange-rate#master-dist": - version "1.0.0" - resolved "https://github.com/xp-network/exchange-rate#88beed89f97b1ddd957d4ec78bb5bbfbf350ce73" + resolved "git+https://github.com/xp-network/exchange-rate#aa69f8dcc324a3a66e070542e966f61efd6e5c39" dependencies: axios "^0.21.1" From 6c3c5211b631d3f3f5c6cde1cd33ed0a1d2db214 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 5 Nov 2021 15:41:33 +0530 Subject: [PATCH 145/956] .lock: use latest xpnet-web3-contracts --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 68f5aa4ec..5577fcea7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7457,7 +7457,7 @@ xmlhttprequest@1.8.0: "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": version "0.1.0" - resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#80749689f97a08e5dca8efc2600b25c91cb906c8" + resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#97e721fe84f6b73a62414f96f882ec95b3627904" dependencies: ethers "^5.4.1" From 1fcae7c6ef65292bbaf0ed3c3ec9c6522fefe40f Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 5 Nov 2021 17:57:32 +0530 Subject: [PATCH 146/956] helpers: tron: fix unfreeze estimation --- src/helpers/tron.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 55c87d72e..98e2b24c3 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -432,17 +432,14 @@ export async function tronHelperFactory( to: string, nft: NftInfo ): Promise { - const data = Base64.toUint8Array(nft.native.uri); - const nft_dat = NftEthNative.deserializeBinary(data); - return await estimateGas( tronParams.validators, "validateUnfreezeNft(uint128,address,uint256,address)", [ { type: "uint128", value: randomAction() }, { type: "address", value: to }, - { type: "uint256", value: nft_dat.getId().toString() }, - { type: "address", value: nft_dat.getContractAddr() }, + { type: "uint256", value: EthBN.from(nft.native.tokenId.toString()) }, + { type: "address", value: nft.native.contract }, ] ); }, From abb227630217f1abdbdddadc0e46fa69137c4162 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 5 Nov 2021 18:43:23 +0530 Subject: [PATCH 147/956] tron: send event to validator --- src/helpers/tron.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 98e2b24c3..c6fbfdbc7 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -223,8 +223,11 @@ export async function tronHelperFactory( return signer && provider.setPrivateKey(signer); }; - async function extractTxn(hash: string): Promise<[string, string]> { + async function notifyValidator(hash: string): Promise { await event_middleware.post("/tx/tron", { tx_hash: hash }); + } + + async function extractTxn(hash: string): Promise<[string, string]> { await new Promise((r) => setTimeout(r, 6000)); // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -337,6 +340,8 @@ export async function tronHelperFactory( let res = await minter .freeze(chain_nonce, to, val) .send({ callValue: totalVal }); + + await notifyValidator(res); return res; }, async unfreezeWrapped( @@ -350,6 +355,8 @@ export async function tronHelperFactory( const res = await minter .withdraw(chain_nonce, to, value) .send({ callValue: EthBN.from(txFees.toString()) }); + + await notifyValidator(res); return res; }, async unfreezeWrappedNft( @@ -362,6 +369,8 @@ export async function tronHelperFactory( const res = await minter .withdrawNft(to, id.native.tokenId) .send({ callValue: EthBN.from(txFees.toString()) }); + + await notifyValidator(res); return res; }, getNonce() { @@ -385,6 +394,7 @@ export async function tronHelperFactory( .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to) .send({ callValue: EthBN.from(txFees.toString()) }); + await notifyValidator(txr); return txr; }, async balanceWrappedBatch( From 67880b2f29697cda8e162765d3e0dc1e05b26e62 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 7 Nov 2021 21:53:57 +0530 Subject: [PATCH 148/956] factory: use nft-list-backend for nfts --- src/factory/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 917a053f7..2c9d7aea1 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -254,6 +254,7 @@ export function ChainFactory( case Chain.ELROND: res = await elrondNftRepo.nfts(BigInt(chain.getNonce()), new Address(owner)) as any as NftInfo[]; break; + case Chain.TRON: case Chain.FANTOM: res = await nftlistRest.get(`/web3/${chain.getNonce()}/${owner}`).then(v => v.data); break; From 6c2fe837cda9c54e0f3569c95d964d0a190d2623 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 8 Nov 2021 16:50:34 +0530 Subject: [PATCH 149/956] yarn.lock: update nft-list-backendl --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 5577fcea7..7e260ced2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7444,7 +7444,7 @@ xmlhttprequest@1.8.0: "xpnet-nft-list@git+https://github.com/xp-network/nft-list-backend#bleeding-edge": version "0.0.1" - resolved "git+https://github.com/xp-network/nft-list-backend#089d9c2dfc0e372c1d5ab3104dc6e6f51191c4b4" + resolved "git+https://github.com/xp-network/nft-list-backend#4f2b1fef3f0ba7afe0055e5036c30beac637c4f0" dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" axios "^0.23.0" From f8c402674a850fcc80fd9cdf3bd30f3891402d50 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 8 Nov 2021 19:15:28 +0530 Subject: [PATCH 150/956] factory: add support for tron --- src/factory/cons.ts | 12 +++++++++++- src/factory/index.ts | 16 +++++++++------- tsconfig.json | 1 + yarn.lock | 9 ++++++++- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 19d1b18d8..c37b070d4 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -1,5 +1,7 @@ import { cachedExchangeRateRepo, ExchangeRateRepo, networkBatchExchangeRateRepo, NetworkModel } from "crypto-exchange-rate"; -import { ElrdNftListRepo, elrdNftListService, elrdRawTokenMapper, mockChainIdentMapper, moralisChainIdMapper, MoralisNftListRepo, moralisNftListService, moralisNftMapper, nftListRepo } from "xpnet-nft-list"; +import { ElrdNftListRepo, elrdNftListService, elrdRawTokenMapper, ethNftJMapper, EthNftJson, mockChainIdentMapper, moralisChainIdMapper, MoralisNftListRepo, moralisNftListService, moralisNftMapper, NftListRepo, nftListRepo, trxNftListService, TrxNftListService } from "xpnet-nft-list"; +//@ts-expect-error no types cope +import TronWeb from "tronweb"; export function elrondNftList(proxy: string): ElrdNftListRepo { return nftListRepo( @@ -17,6 +19,14 @@ export function moralisNftList(server: string, appId: string): MoralisNftListRep ); } +export function tronListNft(tronWeb: TronWeb, tronScan: string): NftListRepo { + return nftListRepo( + trxNftListService(tronWeb, tronScan), + ethNftJMapper(), + mockChainIdentMapper() + ) +} + export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { const baseService = NetworkModel.batchExchangeRateService( baseUrl diff --git a/src/factory/index.ts b/src/factory/index.ts index 2c9d7aea1..f56e1575e 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -19,15 +19,10 @@ import { ValidateAddress, WrappedNftCheck, } from ".."; -import { - cachedExchangeRateRepo, - networkBatchExchangeRateRepo, - NetworkModel, -} from "crypto-exchange-rate"; import BigNumber from "bignumber.js"; import axios, { AxiosResponse } from "axios"; -import { elrondNftList, exchangeRateRepo, moralisNftList } from "./cons"; +import { elrondNftList, exchangeRateRepo, moralisNftList, tronListNft } from "./cons"; import { Address } from "@elrondnetwork/erdjs/out"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -138,7 +133,8 @@ export interface ChainParams { export interface AppConfig { exchangeRateUri: string, moralisServer: string, - moralisAppId: string + moralisAppId: string, + tronScanUri: string } function mapNonceToParams( @@ -179,6 +175,10 @@ export function ChainFactory( const elrondNftRepo = elrondNftList(chainParams.elrondParams?.node_uri || ''); const moralisNftRepo = moralisNftList(appConfig.moralisServer, appConfig.moralisAppId); + const tronNftRepo = chainParams.tronParams && tronListNft( + chainParams.tronParams.provider, + appConfig.tronScanUri + ); const nftlistRest = axios.create({ baseURL: "https://nft-list.herokuapp.com/", @@ -255,6 +255,8 @@ export function ChainFactory( res = await elrondNftRepo.nfts(BigInt(chain.getNonce()), new Address(owner)) as any as NftInfo[]; break; case Chain.TRON: + res = await tronNftRepo!.nfts(BigInt(0x9), owner) as any as NftInfo[]; + break; case Chain.FANTOM: res = await nftlistRest.get(`/web3/${chain.getNonce()}/${owner}`).then(v => v.data); break; diff --git a/tsconfig.json b/tsconfig.json index 7eeaf492c..44dbb409f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,7 @@ "inlineSourceMap": true, "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, "resolveJsonModule": true /* Include modules imported with .json extension. */, + "skipLibCheck": true, "strict": true /* Enable all strict type-checking options. */, diff --git a/yarn.lock b/yarn.lock index 7e260ced2..338311139 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1519,6 +1519,11 @@ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz#8863915676f837d9dad7b76f50cb500c1e9422e9" integrity sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q== +"@supercharge/promise-pool@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-1.9.0.tgz#7630c760535919db93711ca35716ada59d86feb7" + integrity sha512-UqQrree8uGTCEDKAnGJci1B7NGIZ1xepXHjUEqbH16Wgvr/j5+54hxebkpTpDcz5t2SrzY6J6USSlmgQeo66/g== + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -7444,9 +7449,10 @@ xmlhttprequest@1.8.0: "xpnet-nft-list@git+https://github.com/xp-network/nft-list-backend#bleeding-edge": version "0.0.1" - resolved "git+https://github.com/xp-network/nft-list-backend#4f2b1fef3f0ba7afe0055e5036c30beac637c4f0" + resolved "git+https://github.com/xp-network/nft-list-backend#91f48667258e0f331e28bd2dc96dfc68d63c4d27" dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" + "@supercharge/promise-pool" "^1.9.0" axios "^0.23.0" cors "^2.8.5" dotenv "^10.0.0" @@ -7454,6 +7460,7 @@ xmlhttprequest@1.8.0: express "^4.17.1" js-base64 "^3.7.2" moralis "^0.0.116" + tronweb "^4.0.0" "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": version "0.1.0" From cef530a62365e6a66bd145e0af41e7d8b413326a Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 8 Nov 2021 19:33:14 +0530 Subject: [PATCH 151/956] bump nft-list --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 338311139..760f13bfd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7449,7 +7449,7 @@ xmlhttprequest@1.8.0: "xpnet-nft-list@git+https://github.com/xp-network/nft-list-backend#bleeding-edge": version "0.0.1" - resolved "git+https://github.com/xp-network/nft-list-backend#91f48667258e0f331e28bd2dc96dfc68d63c4d27" + resolved "git+https://github.com/xp-network/nft-list-backend#03989da3f56ee29afee81cac6d0bc656ffeae98c" dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" "@supercharge/promise-pool" "^1.9.0" From 6b1d2b760a002817ce6d5e30b2745ab06dbe394f Mon Sep 17 00:00:00 2001 From: xp-network Date: Mon, 8 Nov 2021 19:25:28 +0200 Subject: [PATCH 152/956] added xdai to lister --- src/factory/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 2c9d7aea1..1dccac6df 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -255,6 +255,7 @@ export function ChainFactory( res = await elrondNftRepo.nfts(BigInt(chain.getNonce()), new Address(owner)) as any as NftInfo[]; break; case Chain.TRON: + case Chain.XDAI: case Chain.FANTOM: res = await nftlistRest.get(`/web3/${chain.getNonce()}/${owner}`).then(v => v.data); break; From 1d8d568ac4458c8585845d26f597ca3fe785cb00 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 9 Nov 2021 19:51:26 +0530 Subject: [PATCH 153/956] initial changes for web3 metadata --- src/erc721_metadata.ts | 28 ++++++++++++++ src/factory/index.ts | 51 ++++++-------------------- src/helpers/chain.ts | 44 ++-------------------- src/helpers/elrond.ts | 83 ++---------------------------------------- src/helpers/tron.ts | 80 +++++++--------------------------------- src/helpers/web3.ts | 74 +++++-------------------------------- 6 files changed, 69 insertions(+), 291 deletions(-) create mode 100644 src/erc721_metadata.ts diff --git a/src/erc721_metadata.ts b/src/erc721_metadata.ts new file mode 100644 index 000000000..8d4fb4342 --- /dev/null +++ b/src/erc721_metadata.ts @@ -0,0 +1,28 @@ +export type Erc721Attrs = { + trait_type: string, + value: string +}; + +export type Erc721Metadata = { + name: string, + description: string, + image: string, + attributes: Erc721Attrs[] +}; + +export type Erc721WrappedData = { + contract: string, + tokenId: string +} + +export type ElrdWrappedData = { + tokenId: string, + nonce: string +} + +export type Erc721MetadataEx = Erc721Metadata & { + wrapped: T & { + origin: string, + original_uri: string + } +}; \ No newline at end of file diff --git a/src/factory/index.ts b/src/factory/index.ts index 297ff3c62..a2ed04e04 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -5,15 +5,10 @@ import { Chain, ChainNonce, CHAIN_INFO } from "../consts"; export * from "./factories" import { - BareNft, ChainNonceGet, - DecodeRawNft, - DecodeWrappedNft, EstimateTxFees, MintNft, NftInfo, - PackNft, - PopulateDecodedNft, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -21,17 +16,15 @@ import { } from ".."; import BigNumber from "bignumber.js"; -import axios, { AxiosResponse } from "axios"; +import axios from "axios"; import { elrondNftList, exchangeRateRepo, moralisNftList, tronListNft } from "./cons"; import { Address } from "@elrondnetwork/erdjs/out"; +import { Erc721MetadataEx } from "../erc721_metadata"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; type NftUriChain = ChainNonceGet & - WrappedNftCheck & - DecodeWrappedNft & - DecodeRawNft & - PopulateDecodedNft; + WrappedNftCheck; type FullChain = TransferNftForeign< Signer, @@ -40,8 +33,7 @@ type FullChain = TransferNftForeign< RawNft > & UnfreezeForeignNft & - EstimateTxFees & - PackNft & + EstimateTxFees & NftUriChain & ValidateAddress; @@ -93,15 +85,6 @@ type ChainFactory = { chain: NftUriChain, owner: string ): Promise[]>; - /** - * Fetches the URI of the NFTs on the chain. - * @param chain: {@link NftUriChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. - * @param nft: {@link NftInfo} The NFT of which you want to fetch the URI. Usually comes from the `nftList` method. - */ - nftUri( - chain: NftUriChain, - nft: NftInfo - ): Promise; estimateFees( fromChain: FullChain, toChain: FullChain, @@ -215,11 +198,9 @@ export function ChainFactory( receiver: string ) => { if (fromChain.isWrappedNft(nft)) { - const decoded = fromChain.decodeWrappedNft(nft); - const approxNft = await toChain.decodeNftFromRaw(decoded.data); const estimate = await toChain.estimateValidateUnfreezeNft( receiver, - approxNft + nft.uri ); const conv = await calcExchangeFees( fromChain.getNonce(), @@ -228,10 +209,9 @@ export function ChainFactory( ); return conv; } else { - const packed = fromChain.wrapNftForTransfer(nft); const estimate = await toChain.estimateValidateTransferNft( receiver, - packed + "a".repeat(55) // approx size of uri ); const conv = await calcExchangeFees( fromChain.getNonce(), @@ -268,19 +248,10 @@ export function ChainFactory( return res; }, - async nftUri(chain, nft) { - if (chain.isWrappedNft(nft)) { - const decoded = chain.decodeWrappedNft(nft); - const helper: CrossChainHelper = await inner(decoded.chain_nonce); - const native = await helper.decodeNftFromRaw(decoded.data); - return await helper.populateNft(native as any); - } - return { - uri: nft.uri, - chainId: chain.getNonce().toString(), - }; - }, transferNft: async (fromChain, toChain, nft, sender, receiver, fee) => { + if (fromChain.getNonce() == 0x2 || toChain.getNonce() == 0x2) { + throw Error("Elrond is temporarily disabled!"); + } if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); } @@ -288,8 +259,8 @@ export function ChainFactory( throw Error('invalid address'); } if (fromChain.isWrappedNft(nft)) { - const decoded = fromChain.decodeWrappedNft(nft); - if (decoded.chain_nonce != toChain.getNonce()) { + const meta = await axios.get>(nft.uri); + if (meta.data.wrapped.origin != toChain.getNonce().toString()) { throw Error("trying to send wrapped nft to non-origin chain!!!"); } const res = await fromChain.unfreezeWrappedNft( diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index d6f8b5191..6fa106fcd 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -2,9 +2,7 @@ import { Signer } from "ethers"; import { UserNftMinter } from "xpnet-web3-contracts"; /** - * Internal NFT Info - * WARN: should be used with care. URI might not be correct - * and must be manually resolved via cross chain helper + * NFT Info */ export type NftInfo = { readonly uri: string; @@ -139,10 +137,6 @@ export interface MintNft { mintNft(owner: Signer, options: Args): Promise; } -export type WrappedNft = { - chain_nonce: number; - data: Uint8Array; -}; /** * Whether the given NFT is from a foreign chain * @param {NftIdent} nft NFT Identity @@ -152,45 +146,15 @@ export interface WrappedNftCheck { isWrappedNft(nft: NftInfo): boolean; } -export interface PackNft { - wrapNftForTransfer(nft: NftInfo): Uint8Array; -} - -export interface DecodeWrappedNft { - decodeWrappedNft(raw_data: NftInfo): WrappedNft; -} - -// @internal -export interface DecodeRawNft { - /** - * convert raw nft to native one - * uri should be unset! - */ - decodeNftFromRaw(data: Uint8Array): Promise>; -} - export interface ValidateAddress { validateAddress(adr: string): Promise; } -export type BareNft = { - chainId: string; - uri: string; -}; - -// @internal -export interface PopulateDecodedNft { - /** - * Get uri for an nft from "decodeNftFromRaw" - */ - populateNft(nft: NftInfo): Promise; -} - -export interface EstimateTxFees { - estimateValidateTransferNft(to: string, nft: Uint8Array): Promise; +export interface EstimateTxFees { + estimateValidateTransferNft(to: string, metadataUri: string): Promise; estimateValidateUnfreezeNft( to: string, - nft: NftInfo + metadataUri: string ): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 594b42174..e1623fb3d 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -30,24 +30,18 @@ import { BalanceCheck, BatchWrappedBalanceCheck, ConcurrentSendError, - DecodeRawNft, - DecodeWrappedNft, MintNft, TransferForeign, TransferNftForeign, UnfreezeForeign, UnfreezeForeignNft, - WrappedNft, WrappedNftCheck, } from "./chain"; import { Base64 } from "js-base64"; import { - BareNft, ChainNonceGet, EstimateTxFees, NftInfo, - PackNft, - PopulateDecodedNft, ValidateAddress, } from ".."; import { NftMintArgs } from ".."; @@ -207,15 +201,10 @@ export type ElrondHelper = BalanceCheck & EsdtNftInfo > & IssueESDTNFT & - MintNft & - DecodeWrappedNft & - DecodeRawNft & { + MintNft & { mintableEsdts(address: Address): Promise; } & WrappedNftCheck & - EstimateTxFees & - PackNft & ChainNonceGet & - PopulateDecodedNft & ValidateAddress; /** @@ -572,38 +561,6 @@ export const elrondHelperFactory: ( }); }; - async function getLockedNft(ident: string): Promise { - const nfts = await listNft(elrondParams.minter_address); - const res = nfts.get(ident); - return ( - res && { - uri: Base64.atob(res.uris[0]), - chainId: elrondParams.nonce.toString(), - } - ); - } - - const rawNftDecoder = (nftDat: Uint8Array) => { - /// TokenLen(4 by), TokenIdent(TokenLen by), Nonce(8 by) - /// BinaryCodec is broken for browsers. Decode manually :| - if (nftDat.length < 12) { - throw Error("not a wrapped nft"); - } - - const tokenLen = new Uint32Array(nftDat.slice(0, 4).reverse())[0]; - if (nftDat.length !== 12 + tokenLen) { - throw Error("not a wrapped nft"); - } - const token = decoder.decode(nftDat.slice(4, 4 + tokenLen)); - // TODO: Consider LO - // tfw js can't convert be bytes to u64 - const nonce = new Uint32Array( - nftDat.slice(4 + tokenLen, 12 + tokenLen).reverse() - )[0]; - - return { token, nonce }; - }; - async function extractId( tx: Transaction ): Promise<[Transaction, EventIdent]> { @@ -775,47 +732,13 @@ export const elrondHelperFactory: ( getNonce() { return elrondParams.nonce; }, - decodeWrappedNft(nft: NftInfo): WrappedNft { - if (!nft.native.attributes) { - throw Error("can't decode chain nonce"); - } - return { - // TODO: CONSIDER ALL BE BYTES - chain_nonce: Base64.toUint8Array(nft.native.attributes[0])[0], - data: Base64.toUint8Array(nft.native.uris[0]), - }; - }, - async decodeNftFromRaw(data: Uint8Array) { - const nft_info = rawNftDecoder(data); - - return { - uri: "", - native: { - balance: 1, - tokenIdentifier: `${nft_info.token}-${nft_info.nonce.toString()}`, - creator: "", - name: "", - nonce: nft_info.nonce, - royalties: "", - uris: [], - }, - }; - }, - async populateNft(nft: NftInfo) { - const locked = await getLockedNft(nft.native.tokenIdentifier); - - if (locked === undefined) { - throw Error("Not a wrapped nft"); - } - return locked; - }, async estimateValidateTransferNft( _toAddress: string, - _nftInfo: Uint8Array + _nftUri: string ) { return estimateGas(NFT_TRANSFER_COST, elrondParams.validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, - async estimateValidateUnfreezeNft(_to: string, _nft: NftInfo) { + async estimateValidateUnfreezeNft(_to: string, _nftUri: string) { return estimateGas(NFT_UNFREEZE_COST, elrondParams.validators.length); // TODO: properly estimate NFT_UNFREEZE_COST }, wrapNftForTransfer(nft: NftInfo) { diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index c6fbfdbc7..2cfda047d 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -2,8 +2,6 @@ import { BigNumber } from "bignumber.js"; import { BalanceCheck, BatchWrappedBalanceCheck, - DecodeRawNft, - DecodeWrappedNft, EstimateTxFees, MintNft, TransferForeign, @@ -11,7 +9,6 @@ import { UnfreezeForeign, UnfreezeForeignNft, WrappedBalanceCheck, - WrappedNft, WrappedNftCheck, } from "./chain"; @@ -30,15 +27,13 @@ import { XPNet__factory, XPNft__factory, } from "xpnet-web3-contracts"; -import { NftMintArgs } from ".."; +import { NftMintArgs, ValidateAddress } from ".."; import { NftEthNative, NftPacked } from "validator"; import { - BareNft, ChainNonceGet, - NftInfo, - PackNft, - PopulateDecodedNft, + NftInfo } from ".."; +import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; // Uses default private key in provider if sender is undefinedd type TronSender = string | undefined; @@ -89,13 +84,10 @@ export type TronHelper = BaseTronHelper & // TODO: Use TX Fees UnfreezeForeign & UnfreezeForeignNft & - DecodeWrappedNft & - DecodeRawNft & - EstimateTxFees & WrappedNftCheck & + EstimateTxFees & ChainNonceGet & - PackNft & - PopulateDecodedNft; + ValidateAddress; export async function baseTronHelperFactory( provider: TronWeb @@ -249,17 +241,6 @@ export async function tronHelperFactory( return [hash, action_id]; } - const nftUri = async ( - contract: string, - tokenId: string - ): Promise => { - const erc = await provider.contract(UserNftMinter__factory.abi, contract); - return { - uri: await erc.tokenURI(tokenId).call(), - chainId: tronParams.nonce.toString(), - }; - }; - const randomAction = () => Math.floor( Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000) @@ -298,34 +279,9 @@ export async function tronHelperFactory( return { ...base, - async populateNft(nft) { - return await nftUri(nft.native.contract, nft.native.tokenId); - }, - async decodeNftFromRaw(data: Uint8Array) { - const packed = NftEthNative.deserializeBinary(data); - - return { - uri: "", - native: { - uri: "", - contract: packed.getContractAddr(), - tokenId: packed.getId(), - owner: minter_addr, - chainId: tronParams.nonce.toString(), - }, - }; - }, isWrappedNft(nft) { return nft.native.contract.toLowerCase() === tronParams.erc721_addr.toLowerCase(); }, - decodeWrappedNft(raw_data: NftInfo): WrappedNft { - const u8D = Base64.toUint8Array(raw_data.native.uri); - const packed = NftPacked.deserializeBinary(u8D); - return { - chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8(), - }; - }, async transferNativeToForeign( sender: TronSender, chain_nonce: number, @@ -419,12 +375,8 @@ export async function tronHelperFactory( }, async estimateValidateTransferNft( to: string, - nft: Uint8Array + nftUri: string ): Promise { - const encoded = new NftPacked(); - encoded.setChainNonce(0x1351); - encoded.setData(nft); - return await estimateGas( tronParams.validators, "validateTransferNft(uint128,address,string)", @@ -433,33 +385,29 @@ export async function tronHelperFactory( { type: "address", value: to }, { type: "string", - value: Buffer.from(nft).toString("base64"), + value: nftUri, }, ] ); }, async estimateValidateUnfreezeNft( to: string, - nft: NftInfo + nftUri: string ): Promise { + const wrappedData = await axios.get>(nftUri); return await estimateGas( tronParams.validators, "validateUnfreezeNft(uint128,address,uint256,address)", [ { type: "uint128", value: randomAction() }, { type: "address", value: to }, - { type: "uint256", value: EthBN.from(nft.native.tokenId.toString()) }, - { type: "address", value: nft.native.contract }, + { type: "uint256", value: EthBN.from(wrappedData.data.wrapped.tokenId) }, + { type: "address", value: wrappedData.data.wrapped.contract }, ] ); }, - wrapNftForTransfer(nft: NftInfo) { - // Protobuf is not deterministic, though perhaps we can approximate this statically - const tokdat = new NftEthNative(); - tokdat.setId(nft.native.tokenId); - tokdat.setNftKind(1); - tokdat.setContractAddr(nft.native.contract); - return tokdat.serializeBinary(); - }, + async validateAddress(adr: string): Promise { + return provider.isAddress(adr); + } }; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 0461d3dc1..f7d3a2bc0 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -11,9 +11,6 @@ import { TransferNftForeign, WrappedBalanceCheck, BatchWrappedBalanceCheck, - DecodeWrappedNft, - WrappedNft, - DecodeRawNft, MintNft, WrappedNftCheck, } from "./chain"; @@ -39,16 +36,14 @@ import { } from "xpnet-web3-contracts"; import { Base64 } from "js-base64"; import { - BareNft, ChainNonceGet, EstimateTxFees, NftInfo, - PackNft, - PopulateDecodedNft, ValidateAddress, } from ".."; import { NftMintArgs } from ".."; -import { ApiProvider } from "@elrondnetwork/erdjs/out"; +import axios from "axios"; +import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain @@ -129,13 +124,9 @@ export type Web3Helper = BaseWeb3Helper & BigNumber, EthNftInfo > & - DecodeWrappedNft & - DecodeRawNft & - EstimateTxFees & - PackNft & WrappedNftCheck & + EstimateTxFees & ChainNonceGet & - PopulateDecodedNft & IsApproved & Approve & ValidateAddress; @@ -214,14 +205,6 @@ export async function web3HelperFactory( return [receipt, action_id]; } - async function nftUri(contract: string, tokenId: EthBN): Promise { - const erc = UserNftMinter__factory.connect(contract, w3); - return { - uri: await erc.tokenURI(tokenId), - chainId: params.nonce.toString(), - }; - } - const randomAction = () => EthBN.from( Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000)) @@ -280,9 +263,6 @@ export async function web3HelperFactory( ...base, approveForMinter, isApprovedForMinter, - async populateNft(nft) { - return await nftUri(nft.native.contract, EthBN.from(nft.native.tokenId)); - }, getNonce: () => params.nonce, async balanceWrapped( address: string, @@ -329,7 +309,6 @@ export async function web3HelperFactory( id: NftInfo, txFees: BigNumber ): Promise { - const erc = UserNftMinter__factory.connect(id.native.contract, sender); await approveForMinter(id, sender); const txr = await minter @@ -369,67 +348,32 @@ export async function web3HelperFactory( return res.hash; }, - decodeWrappedNft(nft: NftInfo): WrappedNft { - const u8D = Base64.toUint8Array(nft.native.uri); - const packed = NftPacked.deserializeBinary(u8D); - - return { - chain_nonce: packed.getChainNonce(), - data: packed.getData_asU8(), - }; - }, - async decodeNftFromRaw(data: Uint8Array) { - const packed = NftEthNative.deserializeBinary(data); - - return { - uri: "", - native: { - uri: "", - contract: packed.getContractAddr(), - tokenId: packed.getId(), - owner: minter_addr, - chainId: params.nonce.toString(), - }, - }; - }, async estimateValidateTransferNft( to: string, - nft: Uint8Array + nftUri: string ): Promise { - const encoded = new NftPacked(); - encoded.setChainNonce(0x1351); - encoded.setData(nft); - const utx = await minter.populateTransaction.validateTransferNft( randomAction(), to, - Buffer.from(encoded.serializeBinary()).toString("base64") + nftUri ); return await estimateGas(params.validators, utx); }, async estimateValidateUnfreezeNft( to: string, - nft: NftInfo + nftUri: string ): Promise { + const wrappedData = await axios.get>(nftUri); const utx = await minter.populateTransaction.validateUnfreezeNft( randomAction(), to, - EthBN.from(nft.native.tokenId.toString()), - nft.native.contract + EthBN.from(wrappedData.data.wrapped.tokenId), + wrappedData.data.wrapped.contract ); return await estimateGas(params.validators, utx); }, - wrapNftForTransfer(nft) { - // Protobuf is not deterministic, though perhaps we can approximate this statically - const tokdat = new NftEthNative(); - tokdat.setId(nft.native.tokenId); - tokdat.setNftKind(1); - tokdat.setContractAddr(nft.native.contract); - - return tokdat.serializeBinary(); - }, validateAddress(adr) { return Promise.resolve(ethers.utils.isAddress(adr)); } From 9dd85d05d78e2ab0480c5a312df8bfc8b55b0d32 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Wed, 10 Nov 2021 13:14:59 +0200 Subject: [PATCH 154/956] Update README.md --- README.md | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 13544c7af..9572c6287 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,9 @@ Features Available :- - [x] Minting NFTs -- [x] Bridge +- [x] Transferring NFTs between chains +- [x] Listing NFTs +- [x] Estimating the TX fee - [ ] ... and More ## To Mint an NFT, Follow the steps as specified - @@ -24,15 +26,20 @@ Features Available :- npm install xp.network ``` -- Instantiate a ChainFactory from the package depending on the the network you want to use (ie Testnet or Mainnet). It has our smart contract address. + ### Create a moralis account + - [Register your free Moralis account here:](https://admin.moralis.io/register) + +1. Instantiate a ChainFactory from the package depending on the the network you want to use (i.e. Testnet or Mainnet). It has our smart contract address. +2. Add a moralis server that fits your needs +3. When the server is set up, click the "View Details" button and take the "Server URL" & "Application ID" ```javascript import { ChainFactories } from "xp.network/dist"; const factory = ChainFactories.TestNetChainFactory({ - exchangeRateUri: "https://", - moralisServer: "https:///server", - moralisAppId: "MORALIS_APP_ID", + exchangeRateUri: "https://github.com/xp-network/exchange-rate#master-dist", + moralisServer: "https:///server", // The one you retrieved at step 3 + moralisAppId: "Application ID", // The one you retrieved at step 3 }); // You can also call the ChainFactories.MainNetChainFactory() ``` @@ -64,9 +71,9 @@ Features Available :- import { ChainFactories } from "xp.network/dist"; const factory = ChainFactories.TestNetChainFactory({ - exchangeRateUri: "https://", + exchangeRateUri: "https://github.com/xp-network/exchange-rate#master-dist", moralisServer: "https:///server", - moralisAppId: "MORALIS_APP_ID", + moralisAppId: "Application ID", }); // You can also call the ChainFactories.MainNetChainFactory() ``` @@ -87,15 +94,15 @@ const nfts = await factory.nftList(avax, "NFT OWNER ADDRESS"); ```javascript factory.transferNft( - heco, + avax, bsc, nfts[0], // Or the nft of your choosing. new Wallet( - "ADDRESS OF SENDER", // Can use Metamask for Web3 Chains, Tronlink for Tron + "ADDRESS OF THE SENDER", // Can use Metamask for Web3 Chains, Tronlink for Tron avaxProvider // and Maiar for Elrond if running in browser. ), "ADDRESS OF THE RECEIVER" ); ``` -- That's it. The NFT will be transferred and added to the receiver's address. +- The NFT will be transferred and added to the receiver's address. From 593c3ee1645c270a8d81ffaa9937e321ccf64d6d Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Wed, 10 Nov 2021 13:16:32 +0200 Subject: [PATCH 155/956] Update package.json --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d10863429..225304cfa 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "xp.network", - "version": "0.0.1", - "author": "rupansh ", + "version": "0.0.2", + "author": "xp-network ", "main": "dist/index.js", "types": "dist/index.d.ts", "license": "MIT", From 893d47de0796c6ddbb051a2a18b28c9e29cf3205 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 10 Nov 2021 18:02:52 +0530 Subject: [PATCH 156/956] factory: enable elrond --- src/factory/index.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index a2ed04e04..53bd9c7c0 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -249,9 +249,6 @@ export function ChainFactory( return res; }, transferNft: async (fromChain, toChain, nft, sender, receiver, fee) => { - if (fromChain.getNonce() == 0x2 || toChain.getNonce() == 0x2) { - throw Error("Elrond is temporarily disabled!"); - } if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); } From 917365eda28b88041118fd2d8e2997051e2b68c7 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 10 Nov 2021 18:15:55 +0530 Subject: [PATCH 157/956] use xpnet-nft-list from npm --- package.json | 2 +- yarn.lock | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 225304cfa..e9b4fd9cf 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "tronstation": "^1.0.1", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/Migration-validator#web3-new", - "xpnet-nft-list": "git+https://github.com/xp-network/nft-list-backend#bleeding-edge", + "xpnet-nft-list": "^0.1.0", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/yarn.lock b/yarn.lock index 760f13bfd..7ce022bfd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7447,9 +7447,10 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -"xpnet-nft-list@git+https://github.com/xp-network/nft-list-backend#bleeding-edge": - version "0.0.1" - resolved "git+https://github.com/xp-network/nft-list-backend#03989da3f56ee29afee81cac6d0bc656ffeae98c" +xpnet-nft-list@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.1.0.tgz#d23fc470724d9b42906d668b2e856eb64cdcc904" + integrity sha512-Up65s7ZWeF/xmanyoqUZE62mjviMv4khUwmrKX+M4GW7FcQyEDnRAS0z/zpT+Gvz5k8qrdmXnrWvad6WWwzy+A== dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" "@supercharge/promise-pool" "^1.9.0" From d76748c328675b344cf6510084d5f82ff7c5bc1e Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 10 Nov 2021 19:03:58 +0530 Subject: [PATCH 158/956] yarn & package updates --- package.json | 2 +- tsconfig.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index e9b4fd9cf..988ed1118 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "tronstation": "^1.0.1", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/Migration-validator#web3-new", - "xpnet-nft-list": "^0.1.0", + "xpnet-nft-list": "0.1.4", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/tsconfig.json b/tsconfig.json index 44dbb409f..623ceabe1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "incremental": true, + "incremental": false, "target": "es2017", "outDir": "./dist", "rootDir": "src", diff --git a/yarn.lock b/yarn.lock index 7ce022bfd..28cba0751 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7447,10 +7447,10 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xpnet-nft-list@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.1.0.tgz#d23fc470724d9b42906d668b2e856eb64cdcc904" - integrity sha512-Up65s7ZWeF/xmanyoqUZE62mjviMv4khUwmrKX+M4GW7FcQyEDnRAS0z/zpT+Gvz5k8qrdmXnrWvad6WWwzy+A== +xpnet-nft-list@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.1.4.tgz#7429577720b9d6fa858bd303f617dce0f7bc1a7c" + integrity sha512-2MxhfyFX/7jgg5mcrd8ZBUSh1FNfXaNiU2/Pfq8+o4NBeDNdLN9bMLD5tIxdArhXYGOsLfxGsGzRVaMTUoO1IA== dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" "@supercharge/promise-pool" "^1.9.0" From 826cb99092be7e2c36446c8729e54a1e4b01c643 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 12 Nov 2021 12:25:25 +0530 Subject: [PATCH 159/956] chore(lib): return config instead of the factories The idea is that the config returned contains the providers and smart contract details which might be needed after the construction of the factory. Hence, we are returning the config so the user can use these config which also includes chain providers for all the chains --- src/factory/factories.ts | 384 +++++++++++++++++++-------------------- src/factory/index.ts | 29 ++- 2 files changed, 214 insertions(+), 199 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index c2998a13e..fc03f9295 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -1,4 +1,4 @@ -import { AppConfig, ChainFactory } from "."; +import { AppConfig, ChainFactory, ChainParams } from "."; //@ts-ignore import TronWeb from "tronweb"; import { Chain, MainNetRpcUri, TestNetRpcUri } from "../consts"; @@ -24,200 +24,196 @@ const EVM_TESTNET_VALIDATORS = [ "0x4Cfc8800606EDBd970298bB040Fc8D859c806702", ]; -export namespace ChainFactories { - export const TestNetChainFactory = (moralis: AppConfig) => { - return ChainFactory(moralis, { - elrondParams: { - node_uri: TestNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgq3cpmdjk5mwnvqqe7tswcwhdufsddjd4vk4as8qtp05", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqsu5cn3h380l7cem86zfs6k904wnsa9hak4as942duy", - esdt: "XPNET-acb2d0", - esdt_nft: "XPNFT-1a124f", - esdt_swap: "WEGLD-fdf787", - validators: [ - "erd1akrlykhmjl8ykhfukhykzdvcnyay5d0kvdazc82wwt7cvn83arzsgg7w9c", - "erd1dt2mttgf2xpdy9jlxlrd0fcr3nf4sly2tpmam0djq7jj65axvkyqv6hu20", - "erd1hd3afqqhunypqdz292qledsxwtjlnf9t60mftf4xq5tuyutnqntqg5dng4", - "erd14qgeqvr2lfnv7m3nzrmpzdzr5tecns50s82qndk2s84qhw3fg6vsfcaffa", - "erd16gztcqtjzr20ytrwm2wefylydfxhgv7a96kwppa5z3840x4rvavqeazy0v", - "erd19tydrsuwcpcnwku5p90xk3n82gxhmvz54s8fsvz6yhc4ugq67f4qaayrex", - "erd1575jxqnmt9q495xtmre0gmxpc9gjzrcx9ypw7gls5xg59k0m73ksgp0xfu", - ], - nonce: 2, - }, - tronParams: { - provider: new TronWeb({ fullhost: TestNetRpcUri.TRON }), - middleware_uri: "string", - erc1155_addr: "string", - minter_addr: "string", - erc721_addr: "string", - validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.TRON, - }, - avalancheParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), - minter_addr: "0x273c507D8E21cDE039491B14647Fe9278D88e91D", - erc1155_addr: "0x04F75a27cE2FDC591C71a88f1EcaC7e5Ce44f5Fc", - erc721_addr: "0xCC5Bc84C3FDbcF262AaDD9F76652D6784293dD9e", - validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.AVALANCHE, - }, - polygonParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), - minter_addr: "0xc6148C73f4beCbd7aE39ba23a9CeBa9518fF96BE", - erc1155_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", - erc721_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", - validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.POLYGON, - }, - fantomParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), - minter_addr: "0x4Bd915C3e39cfF4eac842255965E79061c38cACD", - erc1155_addr: "0xAAd4F7BB5FB661181D500829e60010043833a85B", - erc721_addr: "0x72aC6A36de2f72BD39e9c782e9db0DCc41FEbfe2", - validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.FANTOM, - }, - bscParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), - minter_addr: "0x346cb8F9081CA561946E5F0f258e64dB7C075465", - erc1155_addr: "0x434541d6aA0e8395d30e6E6Dd0A83680bc8Cd4B7", - erc721_addr: "0x4BC19A536178cf7E8EE49206357f68c891752FA0", - validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.BSC, - }, - celoParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), - minter_addr: "0x00CAC06Dd0BB4103f8b62D280fE9BCEE8f26fD59", - erc1155_addr: "0xAD2935E147b61175D5dc3A9e7bDa93B0975A43BA", - erc721_addr: "0x06b3244b086cecC40F1e5A826f736Ded68068a0F", - validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.CELO, - }, - harmonyParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), - minter_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", - erc1155_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", - erc721_addr: "0xB82008565FdC7e44609fA118A4a681E92581e680", - validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.HARMONY, - }, - ropstenParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), - minter_addr: "0x8C03d5A667A03Ef2A56E78609E510B6cB33147AD", - erc1155_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", - erc721_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", - validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.ROPSTEN, - }, - xDaiParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), - minter_addr: "string", - erc1155_addr: "string", - erc721_addr: "string", - validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.XDAI, - }, - }); +export namespace ChainFactoryConfigs { + export const TestNet: Partial = { + elrondParams: { + node_uri: TestNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgq3cpmdjk5mwnvqqe7tswcwhdufsddjd4vk4as8qtp05", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqsu5cn3h380l7cem86zfs6k904wnsa9hak4as942duy", + esdt: "XPNET-acb2d0", + esdt_nft: "XPNFT-1a124f", + esdt_swap: "WEGLD-fdf787", + validators: [ + "erd1akrlykhmjl8ykhfukhykzdvcnyay5d0kvdazc82wwt7cvn83arzsgg7w9c", + "erd1dt2mttgf2xpdy9jlxlrd0fcr3nf4sly2tpmam0djq7jj65axvkyqv6hu20", + "erd1hd3afqqhunypqdz292qledsxwtjlnf9t60mftf4xq5tuyutnqntqg5dng4", + "erd14qgeqvr2lfnv7m3nzrmpzdzr5tecns50s82qndk2s84qhw3fg6vsfcaffa", + "erd16gztcqtjzr20ytrwm2wefylydfxhgv7a96kwppa5z3840x4rvavqeazy0v", + "erd19tydrsuwcpcnwku5p90xk3n82gxhmvz54s8fsvz6yhc4ugq67f4qaayrex", + "erd1575jxqnmt9q495xtmre0gmxpc9gjzrcx9ypw7gls5xg59k0m73ksgp0xfu", + ], + nonce: 2, + }, + tronParams: { + provider: new TronWeb({ fullhost: TestNetRpcUri.TRON }), + middleware_uri: "string", + erc1155_addr: "string", + minter_addr: "string", + erc721_addr: "string", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.TRON, + }, + avalancheParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), + minter_addr: "0x273c507D8E21cDE039491B14647Fe9278D88e91D", + erc1155_addr: "0x04F75a27cE2FDC591C71a88f1EcaC7e5Ce44f5Fc", + erc721_addr: "0xCC5Bc84C3FDbcF262AaDD9F76652D6784293dD9e", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.AVALANCHE, + }, + polygonParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), + minter_addr: "0xc6148C73f4beCbd7aE39ba23a9CeBa9518fF96BE", + erc1155_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", + erc721_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.POLYGON, + }, + fantomParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), + minter_addr: "0x4Bd915C3e39cfF4eac842255965E79061c38cACD", + erc1155_addr: "0xAAd4F7BB5FB661181D500829e60010043833a85B", + erc721_addr: "0x72aC6A36de2f72BD39e9c782e9db0DCc41FEbfe2", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.FANTOM, + }, + bscParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), + minter_addr: "0x346cb8F9081CA561946E5F0f258e64dB7C075465", + erc1155_addr: "0x434541d6aA0e8395d30e6E6Dd0A83680bc8Cd4B7", + erc721_addr: "0x4BC19A536178cf7E8EE49206357f68c891752FA0", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.BSC, + }, + celoParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), + minter_addr: "0x00CAC06Dd0BB4103f8b62D280fE9BCEE8f26fD59", + erc1155_addr: "0xAD2935E147b61175D5dc3A9e7bDa93B0975A43BA", + erc721_addr: "0x06b3244b086cecC40F1e5A826f736Ded68068a0F", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.CELO, + }, + harmonyParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), + minter_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", + erc1155_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", + erc721_addr: "0xB82008565FdC7e44609fA118A4a681E92581e680", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.HARMONY, + }, + ropstenParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), + minter_addr: "0x8C03d5A667A03Ef2A56E78609E510B6cB33147AD", + erc1155_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", + erc721_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.ROPSTEN, + }, + xDaiParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.XDAI, + }, }; - export const MainNetChainFactory = (moralis: AppConfig) => { - return ChainFactory(moralis, { - elrondParams: { - node_uri: MainNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgqe4hsht34ut085demqk2g2llcznankw84p7tqx5s9ce", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqkkcsf8aky3vn057086cgnps768ann7nfp7tqxppx53", - esdt: "XPNET-0e265d", - esdt_nft: "XPNFT-9d19d5", - esdt_swap: "WEGLD-6823c1", - validators: [ - "erd1lwyjz0adjd3vqpcjqs5rntw6sxzf9pvqussadygy2u76mz9ap7tquc0z5s", - "erd1tzc9qltpntlgnpetrz58llqsg93dnxety54umln0kuq2k6dajf6qk796wh", - "erd14aw3kvmepsffajkywp6autxxf7zy77uvnhy9e93wwz4qjkd88muquys007", - "erd1nj85l5qx2gn2euj4hnjzq464euwzh8fe6txkf046nttne7y3cl4qmndgya", - "erd1fl3mpjnrev7x5dz4un0hpzhvny4dlv4d2zt38yhqe37u9ulzx2aqeqr8sr", - "erd16kufez3g0tmxhyra2ysgpkqckurqe80ulxet8dfffm0t28tnavpstr0s93", - "erd1wua3q7zja2g08gyta4pkd4eax2r03c3edsz72dp90m3z69rk8yuqqnrg63", - ], - nonce: Chain.ELROND, - }, - tronParams: { - provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), - middleware_uri: "string", - erc1155_addr: "string", - minter_addr: "string", - erc721_addr: "string", - nonce: Chain.TRON, - validators: [""], - }, - avalancheParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), - minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", - erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - validators: EVM_VALIDATORS, - nonce: Chain.AVALANCHE, - }, - polygonParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), - minter_addr: "0x2f072879411503580B8974A221bf76638C50a82a", - erc1155_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", - erc721_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", - validators: EVM_VALIDATORS, - nonce: Chain.POLYGON, - }, - fantomParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), - minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", - erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - validators: EVM_VALIDATORS, - nonce: Chain.FANTOM, - }, - bscParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), - minter_addr: "0xF8679A16858cB7d21b3aF6b2AA1d6818876D3741", - erc1155_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", - erc721_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", - validators: EVM_VALIDATORS, - nonce: Chain.BSC, - }, - celoParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), - minter_addr: "string", - erc1155_addr: "string", - erc721_addr: "string", - validators: EVM_VALIDATORS, - nonce: Chain.CELO, - }, - harmonyParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), - minter_addr: "string", - erc1155_addr: "string", - erc721_addr: "string", - validators: [], - nonce: Chain.HARMONY, - }, - ropstenParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), - minter_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", - erc1155_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", - erc721_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", - validators: EVM_VALIDATORS, - nonce: Chain.ROPSTEN, - }, - xDaiParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), - minter_addr: "0xcE0066b1008237625dDDBE4a751827de037E53D2", - erc1155_addr: "0x7B4f352Cd40114f12e82fC675b5BA8C7582FC513", - erc721_addr: "0xAdE429ba898c34722e722415D722A70a297cE3a2", - validators: EVM_VALIDATORS, - nonce: Chain.XDAI, - }, - }); + export const MainNet: Partial = { + elrondParams: { + node_uri: MainNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgqe4hsht34ut085demqk2g2llcznankw84p7tqx5s9ce", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqkkcsf8aky3vn057086cgnps768ann7nfp7tqxppx53", + esdt: "XPNET-0e265d", + esdt_nft: "XPNFT-9d19d5", + esdt_swap: "WEGLD-6823c1", + validators: [ + "erd1lwyjz0adjd3vqpcjqs5rntw6sxzf9pvqussadygy2u76mz9ap7tquc0z5s", + "erd1tzc9qltpntlgnpetrz58llqsg93dnxety54umln0kuq2k6dajf6qk796wh", + "erd14aw3kvmepsffajkywp6autxxf7zy77uvnhy9e93wwz4qjkd88muquys007", + "erd1nj85l5qx2gn2euj4hnjzq464euwzh8fe6txkf046nttne7y3cl4qmndgya", + "erd1fl3mpjnrev7x5dz4un0hpzhvny4dlv4d2zt38yhqe37u9ulzx2aqeqr8sr", + "erd16kufez3g0tmxhyra2ysgpkqckurqe80ulxet8dfffm0t28tnavpstr0s93", + "erd1wua3q7zja2g08gyta4pkd4eax2r03c3edsz72dp90m3z69rk8yuqqnrg63", + ], + nonce: Chain.ELROND, + }, + tronParams: { + provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), + middleware_uri: "string", + erc1155_addr: "string", + minter_addr: "string", + erc721_addr: "string", + nonce: Chain.TRON, + validators: [""], + }, + avalancheParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), + minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", + erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + validators: EVM_VALIDATORS, + nonce: Chain.AVALANCHE, + }, + polygonParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), + minter_addr: "0x2f072879411503580B8974A221bf76638C50a82a", + erc1155_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", + erc721_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", + validators: EVM_VALIDATORS, + nonce: Chain.POLYGON, + }, + fantomParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), + minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", + erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + validators: EVM_VALIDATORS, + nonce: Chain.FANTOM, + }, + bscParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), + minter_addr: "0xF8679A16858cB7d21b3aF6b2AA1d6818876D3741", + erc1155_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", + erc721_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", + validators: EVM_VALIDATORS, + nonce: Chain.BSC, + }, + celoParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: EVM_VALIDATORS, + nonce: Chain.CELO, + }, + harmonyParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), + minter_addr: "string", + erc1155_addr: "string", + erc721_addr: "string", + validators: [], + nonce: Chain.HARMONY, + }, + ropstenParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), + minter_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", + erc1155_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", + erc721_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", + validators: EVM_VALIDATORS, + nonce: Chain.ROPSTEN, + }, + xDaiParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), + minter_addr: "0xcE0066b1008237625dDDBE4a751827de037E53D2", + erc1155_addr: "0x7B4f352Cd40114f12e82fC675b5BA8C7582FC513", + erc721_addr: "0xAdE429ba898c34722e722415D722A70a297cE3a2", + validators: EVM_VALIDATORS, + nonce: Chain.XDAI, + }, }; } diff --git a/src/factory/index.ts b/src/factory/index.ts index 53bd9c7c0..6edfc20c8 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -53,9 +53,9 @@ type ChainFactory = { * Transfers the NFT from one chain to other. * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. * @param toChain {@link FullChain} the chain to transfer to. Use inner method of the factory to get this. - * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the nftList method of the factory. + * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the `nftList` method of the factory. * @param sender {@link Sender} The owner of the NFT. - * @param receiver Address of the Receiver of the NFT. + * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. */ transferNft( fromChain: FullChain, @@ -68,7 +68,7 @@ type ChainFactory = { /** * Mints an NFT on the chain. * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. - * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar wallet. + * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar defi wallet. * @param args: {@link NftMintArgs} Arguments to mint the nft. Contract is must for web3 and tron. Identifier is must for elrond. */ mint( @@ -79,19 +79,30 @@ type ChainFactory = { /** * Lists all the NFTs on the chain owner by {@param owner}. * @param chain: {@link NftUriChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. - * @param owner: Address of the owner of the NFT. + * @param owner: Address of the owner of the NFT as a raw string. */ nftList( chain: NftUriChain, owner: string ): Promise[]>; + /** + * Estimates the required fee for transferring an NFT. + * @param fromChain: {@link FullChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. + * @param toChain: {@link FullChain} Chain to which the NFT must be sent. Can be obtained from the `inner` method on the factory. + * @param nft: {@link NftInfo} The NFT that has to be transferred. Generally comes from the `nftList` method of the factory. + * @param receiver: Address of the receiver of the NFT in raw string.. + */ estimateFees( fromChain: FullChain, toChain: FullChain, nft: NftInfo, receiver: string ): Promise; - // Update parameters for a specific chain + /** + * + * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. + * @param params : New Params to be set. + */ updateParams(nonce: ChainNonce, params: TP): void; }; @@ -113,6 +124,13 @@ export interface ChainParams { xDaiParams: Web3Params; } +/** + * A struct for the configuration of the library. + * @field exchangeRateUri: The URI of the exchange rate service. + * @field moralisServer: The URI of the moralis server. + * @field moralisAppId: The app id of the moralis server. + * @field tronScanUri: The URI of the tron scan service. + */ export interface AppConfig { exchangeRateUri: string, moralisServer: string, @@ -145,6 +163,7 @@ function mapNonceToParams( } /** * This function is the basic entry point to use this package as a library. + * @param appConfig: {@link AppConfig} The configuration of the library. * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. */ From 7b373c4af8b007a3d85060c49e19f61392fe6189 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 12 Nov 2021 12:26:21 +0530 Subject: [PATCH 160/956] chore(docs): update readme to follow the new developments --- README.md | 153 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 117 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 9572c6287..fb01b9d25 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,14 @@ Features Available :- - [x] Estimating the TX fee - [ ] ... and More + ### Create a moralis account + + Before getting started, we recommend making a moralis account if you dont have one already. We use moralis to query WEB3 Blockchain nodes to query the NFTs owned by an address. + + - [Register for a free Moralis account here](https://admin.moralis.io/register) + + When your account created, click the "View Details" button and take the "Server URL" & "Application ID". We will need this in the later part of this section. + ## To Mint an NFT, Follow the steps as specified - - First make sure nodejs is installed in your machine. @@ -26,38 +34,82 @@ Features Available :- npm install xp.network ``` - ### Create a moralis account - - [Register your free Moralis account here:](https://admin.moralis.io/register) + ```javascript + import { ChainFactoryConfigs, ChainFactory } from "xp.network/dist"; + + // Fetch the config for required networks i.e. Mainnet/Testnet + // Networks from the ChainFactoryConfigs namespace. You can also mix + // and match the configs to your heart's desire. + const mainnetConfig = ChainFactoryConfigs.TestNet; // You can also call the ChainFactoryConfigs.MainNet + + // Create an object with the following details + const moralisConfig = { + exchangeRateUri: "https://github.com/xp-network/exchange-rate#master-dist", // Check our exchange-rate repository for this. + moralisServer: "https:///server", // The one you retrieved while creating a moralis account. + moralisAppId: "Application ID", // The one you retrieved while creating a moralis account. + }; + // Instantiate the factory by passing the above objects to the function call. + const factory = ChainFactory(moralisConfig, mainnetConfig); + ``` -1. Instantiate a ChainFactory from the package depending on the the network you want to use (i.e. Testnet or Mainnet). It has our smart contract address. -2. Add a moralis server that fits your needs -3. When the server is set up, click the "View Details" button and take the "Server URL" & "Application ID" +- Get the inner object from this factory. This is used for transferring, minting, estimation of gas fees. The param can be anything from the Chain Namespace. i.e Chain.BSC, Chain.HECO. Depends on which chain do you want to mint the NFTs. ```javascript - import { ChainFactories } from "xp.network/dist"; + const avax = await factory.inner(Chain.AVALANCHE); + const elrond = await factory.inner(Chain.ELROND); + const tron = await factory.inner(Chain.TRON); + ``` + +- Just call the mint function on the factory with suitable arguments. - const factory = ChainFactories.TestNetChainFactory({ - exchangeRateUri: "https://github.com/xp-network/exchange-rate#master-dist", - moralisServer: "https:///server", // The one you retrieved at step 3 - moralisAppId: "Application ID", // The one you retrieved at step 3 - }); // You can also call the ChainFactories.MainNetChainFactory() + 1. For Web3 Chains: + + ```javascript + // Web3Provider generally refers to a walletProvider like Metamask. + const receipt = await factory.mint(avax, web3Provider.getSigner(address), { + // Could be an IPFS URL or Any URL that points to a Metadata + uris: [metadata.url], + // Description of your NFT. Can be an object. + attrs: description, + // A name that defines your NFT. + name: name, + // The contract with which you want to mint the NFT. + contract: "Can be fetched from the mainnetConfig or testnetConfig", + }); ``` -- Get the inner object from this factory + 2. For Elrond: ```javascript - const avax = await factory.inner(Chain.AVALANCHE); + // Dont forget to import ExtensionProvider from @elrondnetwork/erdjs library. + const receipt = await factory.mint(elrond, ExtensionProvider.getInstance(), { + // Could be an IPFS URL or Any URL that points to a Metadata + uris: [metadata.url], + // Description of your NFT. Can be an object. + attrs: description, + // A name that defines your NFT. + name: name, + // The identifier with which you want to mint the NFT. You have to own this identifier. i.e. + identifier: "PANDA-eda5d0-c5", + }); ``` -- Just call the mint function on the factory with suitable arguments + 3. For Tron: ```javascript - const receipt = await factory.mint(avax, web3Provider.getSigner(address), { + // Address is fetched from tronweb + const addresses = await window.tronLink.tronWeb.request({ + method: "tron_requestAccounts", + }); + const receipt = await factory.mint(avax, addresses[0], { // Could be an IPFS URL or Any URL that points to a Metadata uris: [metadata.url], + // Description of your NFT. Can be an object. attrs: description, + // A name that defines your NFT. name: name, - contract: "Minter Address from Before", + // The contract with which you want to mint the NFT. + contract: "Can be fetched from the mainnetConfig or testnetConfig", }); ``` @@ -68,40 +120,69 @@ Features Available :- - Instantiate a ChainFactory from the package depending on the the network you want to use (ie Testnet or Mainnet). It has our smart contract address. ```javascript - import { ChainFactories } from "xp.network/dist"; - - const factory = ChainFactories.TestNetChainFactory({ - exchangeRateUri: "https://github.com/xp-network/exchange-rate#master-dist", - moralisServer: "https:///server", - moralisAppId: "Application ID", - }); // You can also call the ChainFactories.MainNetChainFactory() + import { ChainFactoryConfigs, ChainFactory } from "xp.network/dist"; + + // Fetch the config for required networks i.e. Mainnet/Testnet + // Networks from the ChainFactoryConfigs namespace. You can also mix + // and match the configs to your heart's desire. + const mainnetConfig = ChainFactoryConfigs.TestNet; // You can also call the ChainFactoryConfigs.MainNet + + // Create an object with the following details + const moralisConfig = { + exchangeRateUri: "https://github.com/xp-network/exchange-rate#master-dist", // Check our exchange-rate repository for this. + moralisServer: "https:///server", // The one you retrieved while creating a moralis account. + moralisAppId: "Application ID", // The one you retrieved while creating a moralis account. + }; + // Instantiate the factory by passing the above objects to the function call. + const factory = ChainFactory(moralisConfig, mainnetConfig); ``` -- Get chain handlers for the source chain and the target chain. +- Get chain handlers for the source chain and the target chain. This is used for transferring, minting, estimation of gas fees. The param can be anything from the Chain Namespace. i.e Chain.BSC, Chain.HECO. Depends on which chain do you want to transfer from/to. ```javascript const avax = await factory.inner(Chain.AVALANCHE); const bsc = await factory.inner(Chain.BSC); ``` -- Get NFTs Owned by the sender +- Get NFTs Owned by the sender. + + ```javascript + const nfts = await factory.nftList(avax, "NFT OWNER ADDRESS"); + // Choose an NFT to transfer, we are choosing the first one here. + const theChosenOne = nfts[0]; + ``` + +- Getting a Wallet/Signer to sign the transaction. This could be done in many ways. i.e. + + For Example: + + 1. Via Ethers : We need the provider from the config of the source chain and the Private Key of the Signer/Sender/Owner. + + ```javascript + // Dont forget to import Wallet from ethersjs. + const signer = new Wallet( + "PRIVATE KEY HERE", + mainnetConfig.avalancheParams.provider + ); + ``` + + 2. Via Metamask: Connecting to metamask is beyond the library's scope. but, to get the signer from metamask. + + ```javascript + const signer = metamaskProvider.getSigner(); + ``` -```javascript -const nfts = await factory.nftList(avax, "NFT OWNER ADDRESS"); -``` + 3. For other methods, check this repo [Mainnet-UI](https://github.com/xp-network/mainnet-bridge-ui). - Call the transferNft function on the factory with suitable arguments ```javascript factory.transferNft( - avax, - bsc, - nfts[0], // Or the nft of your choosing. - new Wallet( - "ADDRESS OF THE SENDER", // Can use Metamask for Web3 Chains, Tronlink for Tron - avaxProvider // and Maiar for Elrond if running in browser. - ), - "ADDRESS OF THE RECEIVER" + avax, // Source Chain. + bsc, // Destination Chain. + theChosenOne, // Or the nft of your choosing. + signer, // or tronlink or maiar. + "ADDRESS OF THE RECEIVER" // The address to whom you are transferring the NFT to. ); ``` From 2c48db54e39ab46a39617b846f96164c0d6b0a47 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 12 Nov 2021 17:04:25 +0530 Subject: [PATCH 161/956] chore(packages): bump smart contracts dependency --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 28cba0751..0f59516d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7465,7 +7465,7 @@ xpnet-nft-list@0.1.4: "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": version "0.1.0" - resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#97e721fe84f6b73a62414f96f882ec95b3627904" + resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#091246c404973dc9024895d28f999b71a702f82e" dependencies: ethers "^5.4.1" From c4e4fef01293c5853675757ec1d1e38a03f83974 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 12 Nov 2021 17:25:59 +0530 Subject: [PATCH 162/956] chore(release): we are 0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 988ed1118..428c78074 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "0.0.2", + "version": "0.1.0", "author": "xp-network ", "main": "dist/index.js", "types": "dist/index.d.ts", From 6dab6b4a7b5daf1b207d3f08c83d7cc5cbb4c511 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 12 Nov 2021 17:49:43 +0530 Subject: [PATCH 163/956] chore(readme): add mising imports --- README.md | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fb01b9d25..ac3c50959 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,16 @@ Features Available :- ``` ```javascript - import { ChainFactoryConfigs, ChainFactory } from "xp.network/dist"; + import { + ChainFactoryConfigs, + ChainFactory, + ElrondHelper, + ElrondParams, + TronHelper, + TronParams, + Web3Helper, + Web3Params, + } from "xp.network/dist"; // Fetch the config for required networks i.e. Mainnet/Testnet // Networks from the ChainFactoryConfigs namespace. You can also mix @@ -65,8 +74,13 @@ Features Available :- 1. For Web3 Chains: ```javascript + import detectEthereumProvider from "@metamask/detect-provider"; + + const metamask = await detectEthereumProvider(); + const metamaskProvider = ethers.providers.Web3Provider(metamask); + const signer = metamaskProvider.getSigner(); // Web3Provider generally refers to a walletProvider like Metamask. - const receipt = await factory.mint(avax, web3Provider.getSigner(address), { + const receipt = await factory.mint(avax, signer, { // Could be an IPFS URL or Any URL that points to a Metadata uris: [metadata.url], // Description of your NFT. Can be an object. @@ -82,6 +96,7 @@ Features Available :- ```javascript // Dont forget to import ExtensionProvider from @elrondnetwork/erdjs library. + import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; const receipt = await factory.mint(elrond, ExtensionProvider.getInstance(), { // Could be an IPFS URL or Any URL that points to a Metadata uris: [metadata.url], @@ -120,7 +135,14 @@ Features Available :- - Instantiate a ChainFactory from the package depending on the the network you want to use (ie Testnet or Mainnet). It has our smart contract address. ```javascript - import { ChainFactoryConfigs, ChainFactory } from "xp.network/dist"; + import { + ChainFactoryConfigs, + ChainFactory, + Web3Helper, + Web3Params, + } from "xp.network/dist"; + import { Wallet } from "ethers"; + import detectEthereumProvider from "@metamask/detect-provider"; // Fetch the config for required networks i.e. Mainnet/Testnet // Networks from the ChainFactoryConfigs namespace. You can also mix @@ -160,6 +182,7 @@ Features Available :- ```javascript // Dont forget to import Wallet from ethersjs. + import { Wallet } from "ethers"; const signer = new Wallet( "PRIVATE KEY HERE", mainnetConfig.avalancheParams.provider @@ -169,6 +192,8 @@ Features Available :- 2. Via Metamask: Connecting to metamask is beyond the library's scope. but, to get the signer from metamask. ```javascript + const metamask = await detectEthereumProvider(); + const metamaskProvider = ethers.providers.Web3Provider(metamask); const signer = metamaskProvider.getSigner(); ``` From f58b3f9b0df4a2ac9cfb533c88ff7ea7952b93fb Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 14 Nov 2021 16:40:42 +0530 Subject: [PATCH 164/956] factory: configs: change to getters this avoids unnecessarily instantiating all providers --- src/factory/factories.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index fc03f9295..347e4b9a0 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -25,7 +25,7 @@ const EVM_TESTNET_VALIDATORS = [ ]; export namespace ChainFactoryConfigs { - export const TestNet: Partial = { + export const TestNet: () => Partial = () => ({ elrondParams: { node_uri: TestNetRpcUri.ELROND, minter_address: @@ -119,9 +119,9 @@ export namespace ChainFactoryConfigs { validators: EVM_TESTNET_VALIDATORS, nonce: Chain.XDAI, }, - }; + }); - export const MainNet: Partial = { + export const MainNet: () => Partial = () => ({ elrondParams: { node_uri: MainNetRpcUri.ELROND, minter_address: @@ -215,5 +215,5 @@ export namespace ChainFactoryConfigs { validators: EVM_VALIDATORS, nonce: Chain.XDAI, }, - }; + }); } From 1601474e00d12093a84387682fa37b45104c3404 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 14 Nov 2021 17:17:03 +0530 Subject: [PATCH 165/956] package: bump nft-list-backend --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 428c78074..03ab28f05 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "tronstation": "^1.0.1", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/Migration-validator#web3-new", - "xpnet-nft-list": "0.1.4", + "xpnet-nft-list": "0.2.1", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/yarn.lock b/yarn.lock index 0f59516d4..a71b2c984 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7447,10 +7447,10 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xpnet-nft-list@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.1.4.tgz#7429577720b9d6fa858bd303f617dce0f7bc1a7c" - integrity sha512-2MxhfyFX/7jgg5mcrd8ZBUSh1FNfXaNiU2/Pfq8+o4NBeDNdLN9bMLD5tIxdArhXYGOsLfxGsGzRVaMTUoO1IA== +xpnet-nft-list@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.1.tgz#48bb0711a65dd821f3094943495a44efe321b126" + integrity sha512-s+P97e9ALT6DamO1tDguVCobtP9WuIP9BuWUlOSzcq1ZKJEVGoPTrKdixkLy2qo3MMmOBNQRkE2f7F1nVjpWjg== dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" "@supercharge/promise-pool" "^1.9.0" From c361b188c868cccee3a6bf2db6f94ffaf7240b70 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 14 Nov 2021 20:37:58 +0530 Subject: [PATCH 166/956] factory: check bridge status before transfering --- src/factory/index.ts | 39 ++++++++++++++++++++++++++++++++++++++- src/heartbeat/index.ts | 21 +++++++++++++++++++++ src/heartbeat/resp.ts | 18 ++++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 src/heartbeat/index.ts create mode 100644 src/heartbeat/resp.ts diff --git a/src/factory/index.ts b/src/factory/index.ts index 6edfc20c8..b86a18408 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -20,6 +20,7 @@ import axios from "axios"; import { elrondNftList, exchangeRateRepo, moralisNftList, tronListNft } from "./cons"; import { Address } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; +import { bridgeHeartbeat } from "../heartbeat"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -49,6 +50,11 @@ type ChainFactory = { * @param chain: {@link Chain} to create the helper for. */ inner(chain: ChainNonce): Promise; + /** + * Whether or not the bridge is alive for a given chain + * this is checked regardless before using any bridge related function(e.g transferNft) is called + */ + bridgeStatus(): Promise<{ [chainNonce: number]: "alive" | "dead" }>; /** * Transfers the NFT from one chain to other. * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. @@ -133,9 +139,10 @@ export interface ChainParams { */ export interface AppConfig { exchangeRateUri: string, + heartbeatUri: string, moralisServer: string, moralisAppId: string, - tronScanUri: string + tronScanUri: string, } function mapNonceToParams( @@ -173,6 +180,9 @@ export function ChainFactory( ): ChainFactory { let map = new Map(); let cToP = mapNonceToParams(chainParams); + + const heartbeatRepo = bridgeHeartbeat(appConfig.heartbeatUri); + const remoteExchangeRate = exchangeRateRepo(appConfig.exchangeRateUri); const elrondNftRepo = elrondNftList(chainParams.elrondParams?.node_uri || ''); @@ -240,9 +250,34 @@ export function ChainFactory( return conv; } }; + + async function bridgeStatus(): Promise<{ [x: number]: "alive" | "dead" }> { + const res = await heartbeatRepo.status(); + return Object.fromEntries( + Object.entries(res) + .map(([c, s]) => [c, s.bridge_alive ? "alive" : "dead"]) + ); + } + + async function requireBridge(chains: number[]): Promise { + const status = await heartbeatRepo.status(); + let deadChain: number | undefined; + const alive = chains.every(c => { + const stat = status[c].bridge_alive; + if (!stat) { + deadChain = c; + } + return stat; + }); + if (!alive) { + throw Error(`chain ${deadChain} is dead! its unsafe to use the bridge`); + } + } + return { estimateFees, inner, + bridgeStatus, updateParams(chainNonce: ChainNonce, params: TP) { map.delete(chainNonce); cToP.set(chainNonce, params as any); @@ -268,6 +303,8 @@ export function ChainFactory( return res; }, transferNft: async (fromChain, toChain, nft, sender, receiver, fee) => { + await requireBridge([fromChain.getNonce(), toChain.getNonce()]); + if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); } diff --git a/src/heartbeat/index.ts b/src/heartbeat/index.ts new file mode 100644 index 000000000..683b6a829 --- /dev/null +++ b/src/heartbeat/index.ts @@ -0,0 +1,21 @@ +import axios from "axios"; +import { StatusResp } from "./resp"; + +export type BridgeHeartbeat = { + status(): Promise +} + +export function bridgeHeartbeat( + baseURL: string +): BridgeHeartbeat { + const api = axios.create({ + baseURL + }); + + return { + async status() { + const res = await api.get("/status"); + return res.data; + } + } +} \ No newline at end of file diff --git a/src/heartbeat/resp.ts b/src/heartbeat/resp.ts new file mode 100644 index 000000000..96e37a58a --- /dev/null +++ b/src/heartbeat/resp.ts @@ -0,0 +1,18 @@ +type DeathReason = { + component: "node" | "validator" | "balance" + error: string; +} + +type ValidatorStatus = { + status: "alive" | "dead"; + death_reason?: DeathReason; +} + +type ChainStatus = { + bridge_alive: boolean; + validators: ValidatorStatus[] +} + +export type StatusResp = { + [chainNonce: string]: ChainStatus +} \ No newline at end of file From cba683c001a484727dd7c9ededf5beb0cf41f3c0 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 15 Nov 2021 17:15:08 +0530 Subject: [PATCH 167/956] factory: mainnet: fix tron --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 347e4b9a0..e2f3b66cf 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -47,7 +47,7 @@ export namespace ChainFactoryConfigs { nonce: 2, }, tronParams: { - provider: new TronWeb({ fullhost: TestNetRpcUri.TRON }), + provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), middleware_uri: "string", erc1155_addr: "string", minter_addr: "string", From 7e83e2fb08a5fda829ee1f2964991e903badf612 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 15 Nov 2021 17:19:28 +0530 Subject: [PATCH 168/956] bump xpnet-nft-list dep --- package.json | 2 +- yarn.lock | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 03ab28f05..9145315a5 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "tronstation": "^1.0.1", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/Migration-validator#web3-new", - "xpnet-nft-list": "0.2.1", + "xpnet-nft-list": "0.2.2", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/yarn.lock b/yarn.lock index a71b2c984..b6c6e38e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5138,10 +5138,10 @@ mock-fs@^4.1.0: resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== -moralis@^0.0.116: - version "0.0.116" - resolved "https://registry.yarnpkg.com/moralis/-/moralis-0.0.116.tgz#e58ad5c8bac7184934218cac69b8934b5dd0739b" - integrity sha512-ZdYei8hDi4qrJmDpl7MV9/hpFGnVBmNG0pdraGo96z9GMbtbHYHw8Qs2M6UqSHAwcKc0I65ISO3VUS5NituBFA== +moralis@^0.0.132: + version "0.0.132" + resolved "https://registry.yarnpkg.com/moralis/-/moralis-0.0.132.tgz#3b651274b6e0172f5aa390f0cab4639a8c10d1aa" + integrity sha512-ftkBDkFmoNmFEjxWITY1q9hVrd94w8dviwsWsajIH2OW4xOm33nV6Ay3aSsaWC6tTJHRV5/NYv8Hz4XARVw3mQ== dependencies: "@babel/runtime" "7.12.5" "@babel/runtime-corejs3" "7.12.5" @@ -5150,7 +5150,7 @@ moralis@^0.0.116: lint-staged "^11.1.2" react-native-crypto-js "1.0.0" uuid "3.4.0" - web3 "^1.3.6" + web3 "^1.6.0" ws "^7.4.6" xmlhttprequest "1.8.0" optionalDependencies: @@ -7243,7 +7243,7 @@ web3-utils@1.6.0: randombytes "^2.1.0" utf8 "3.0.0" -web3@^1.3.6: +web3@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/web3/-/web3-1.6.0.tgz#d8fa0cd9e7bf252f9fe43bb77dc42bc6671affde" integrity sha512-rWpXnO88MiVX5yTRqMBCVKASxc7QDkXZZUl1D48sKlbX4dt3BAV+nVMVUKCBKiluZ5Bp8pDrVCUdPx/jIYai5Q== @@ -7447,10 +7447,10 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xpnet-nft-list@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.1.tgz#48bb0711a65dd821f3094943495a44efe321b126" - integrity sha512-s+P97e9ALT6DamO1tDguVCobtP9WuIP9BuWUlOSzcq1ZKJEVGoPTrKdixkLy2qo3MMmOBNQRkE2f7F1nVjpWjg== +xpnet-nft-list@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.2.tgz#f2b14986ca9fca0cf76791a555e7f02e1452ebf3" + integrity sha512-DwMveHrCGid/EyW5NMLNaO3fpXVI358qz60xVH9/iYQ6Uqm+24XnmuFBN/+292MIQtjqr5zgmEJjtJw9s4IrJw== dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" "@supercharge/promise-pool" "^1.9.0" @@ -7460,7 +7460,7 @@ xpnet-nft-list@0.2.1: ethers "^5.5.1" express "^4.17.1" js-base64 "^3.7.2" - moralis "^0.0.116" + moralis "^0.0.132" tronweb "^4.0.0" "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": From 0245a4016fbece2996c578b4a8de00dab6be652b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 15 Nov 2021 17:20:51 +0530 Subject: [PATCH 169/956] chore(deps): bump list dependency --- package.json | 2 +- yarn.lock | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 03ab28f05..2c0b5d955 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "tronstation": "^1.0.1", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/Migration-validator#web3-new", - "xpnet-nft-list": "0.2.1", + "xpnet-nft-list": "^0.2.2", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/yarn.lock b/yarn.lock index a71b2c984..2b6947c89 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5138,10 +5138,10 @@ mock-fs@^4.1.0: resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== -moralis@^0.0.116: - version "0.0.116" - resolved "https://registry.yarnpkg.com/moralis/-/moralis-0.0.116.tgz#e58ad5c8bac7184934218cac69b8934b5dd0739b" - integrity sha512-ZdYei8hDi4qrJmDpl7MV9/hpFGnVBmNG0pdraGo96z9GMbtbHYHw8Qs2M6UqSHAwcKc0I65ISO3VUS5NituBFA== +moralis@^0.0.132: + version "0.0.132" + resolved "https://registry.yarnpkg.com/moralis/-/moralis-0.0.132.tgz#3b651274b6e0172f5aa390f0cab4639a8c10d1aa" + integrity sha512-ftkBDkFmoNmFEjxWITY1q9hVrd94w8dviwsWsajIH2OW4xOm33nV6Ay3aSsaWC6tTJHRV5/NYv8Hz4XARVw3mQ== dependencies: "@babel/runtime" "7.12.5" "@babel/runtime-corejs3" "7.12.5" @@ -5150,7 +5150,7 @@ moralis@^0.0.116: lint-staged "^11.1.2" react-native-crypto-js "1.0.0" uuid "3.4.0" - web3 "^1.3.6" + web3 "^1.6.0" ws "^7.4.6" xmlhttprequest "1.8.0" optionalDependencies: @@ -7243,7 +7243,7 @@ web3-utils@1.6.0: randombytes "^2.1.0" utf8 "3.0.0" -web3@^1.3.6: +web3@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/web3/-/web3-1.6.0.tgz#d8fa0cd9e7bf252f9fe43bb77dc42bc6671affde" integrity sha512-rWpXnO88MiVX5yTRqMBCVKASxc7QDkXZZUl1D48sKlbX4dt3BAV+nVMVUKCBKiluZ5Bp8pDrVCUdPx/jIYai5Q== @@ -7447,10 +7447,10 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xpnet-nft-list@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.1.tgz#48bb0711a65dd821f3094943495a44efe321b126" - integrity sha512-s+P97e9ALT6DamO1tDguVCobtP9WuIP9BuWUlOSzcq1ZKJEVGoPTrKdixkLy2qo3MMmOBNQRkE2f7F1nVjpWjg== +xpnet-nft-list@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.2.tgz#f2b14986ca9fca0cf76791a555e7f02e1452ebf3" + integrity sha512-DwMveHrCGid/EyW5NMLNaO3fpXVI358qz60xVH9/iYQ6Uqm+24XnmuFBN/+292MIQtjqr5zgmEJjtJw9s4IrJw== dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" "@supercharge/promise-pool" "^1.9.0" @@ -7460,7 +7460,7 @@ xpnet-nft-list@0.2.1: ethers "^5.5.1" express "^4.17.1" js-base64 "^3.7.2" - moralis "^0.0.116" + moralis "^0.0.132" tronweb "^4.0.0" "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": From ad9a6a5b4109f42d0477be6e5e8067bc2fd32ef4 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 15 Nov 2021 17:52:23 +0530 Subject: [PATCH 170/956] bump xpnet-nft-list dep --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9145315a5..d97480b7a 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "tronstation": "^1.0.1", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/Migration-validator#web3-new", - "xpnet-nft-list": "0.2.2", + "xpnet-nft-list": "0.2.3", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/yarn.lock b/yarn.lock index b6c6e38e2..277895dc8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7447,10 +7447,10 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xpnet-nft-list@0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.2.tgz#f2b14986ca9fca0cf76791a555e7f02e1452ebf3" - integrity sha512-DwMveHrCGid/EyW5NMLNaO3fpXVI358qz60xVH9/iYQ6Uqm+24XnmuFBN/+292MIQtjqr5zgmEJjtJw9s4IrJw== +xpnet-nft-list@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.3.tgz#01b252ab4a00e65b3b6c35ca4a8f747fa9d0529d" + integrity sha512-7rXdq9mx6ht4d9XXfcWfy0b48tC4y0blhVqFN1dxVXzcWncp5fvZwcaCvD4o1CspaRFFCO/7rkZYrQT1UbAWxg== dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" "@supercharge/promise-pool" "^1.9.0" From 637753d31adddb28a93543fdf652c7b63591a137 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 15 Nov 2021 18:32:29 +0530 Subject: [PATCH 171/956] feat(elrond-helper): add support for wallet connect --- src/helpers/elrond.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index e1623fb3d..45e37cb7f 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -23,6 +23,7 @@ import { TransactionHash, TransactionPayload, U64Value, + WalletConnectProvider } from "@elrondnetwork/erdjs"; import axios from "axios"; import BigNumber from "bignumber.js"; @@ -46,7 +47,7 @@ import { } from ".."; import { NftMintArgs } from ".."; -type ElrondSigner = ISigner | ExtensionProvider; +type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; type EasyBalance = string | number | BigNumber; @@ -260,6 +261,9 @@ export const elrondHelperFactory: ( const acc = await syncAccount(signer); tx.setNonce(acc.nonce); let stx: Transaction; + if (signer instanceof WalletConnectProvider) { + stx = await signer.signTransaction(tx) + } if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); } else { From c2fa6a9030be1560871f14d7c6054c841af8f56f Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 15 Nov 2021 19:30:46 +0530 Subject: [PATCH 172/956] tron: add approveForMinter --- src/helpers/tron.ts | 45 +++++++++++++++++++++++++++++++++++++++------ src/helpers/web3.ts | 12 ++++++------ 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 2cfda047d..7f487f632 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -27,7 +27,7 @@ import { XPNet__factory, XPNft__factory, } from "xpnet-web3-contracts"; -import { NftMintArgs, ValidateAddress } from ".."; +import { Approve, IsApproved, NftMintArgs, ValidateAddress } from ".."; import { NftEthNative, NftPacked } from "validator"; import { ChainNonceGet, @@ -87,6 +87,7 @@ export type TronHelper = BaseTronHelper & WrappedNftCheck & EstimateTxFees & ChainNonceGet & + Approve & ValidateAddress; export async function baseTronHelperFactory( @@ -277,8 +278,44 @@ export async function tronHelperFactory( return fee; } + const isApprovedForMinter = async ( + erc: any, + id: NftInfo + ) => { + const approvedAddress = await erc.getApproved(id.native.tokenId).call({ + from: tronParams.provider.defaultAddress.base58 + }); + if (approvedAddress === minter_addr) { + return true; + } + return false; + }; + + const approveForMinter = async ( + id: NftInfo, + sender: TronSender | undefined + ) => { + await setSigner(sender); + const erc = await provider.contract( + UserNftMinter__factory.abi, + id.native.contract + ); + const isApproved = await isApprovedForMinter(erc, id); + if (isApproved) { + return true; + } + + await erc.approve( + minter_addr, + id.native.tokenId + ).send(); + + return true; + }; + return { ...base, + approveForMinter, isWrappedNft(nft) { return nft.native.contract.toLowerCase() === tronParams.erc721_addr.toLowerCase(); }, @@ -340,11 +377,7 @@ export async function tronHelperFactory( txFees: BigNumber ): Promise { setSigner(sender); - const erc = await provider.contract( - UserNftMinter__factory.abi, - id.native.contract - ); - await erc.approve(minter.address, id.native.tokenId).send(); + await approveForMinter(id, sender); const txr = await minter .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index f7d3a2bc0..6015ca2c5 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -69,17 +69,17 @@ export type MintArgs = { uri: string; }; -export interface IsApproved { +export interface IsApproved { isApprovedForMinter( address: NftInfo, - sender: Signer + sender: Sender ): Promise; } -export interface Approve { +export interface Approve { approveForMinter( address: NftInfo, - sender: Signer + sender: Sender ): Promise; } @@ -127,8 +127,8 @@ export type Web3Helper = BaseWeb3Helper & WrappedNftCheck & EstimateTxFees & ChainNonceGet & - IsApproved & - Approve & + IsApproved & + Approve & ValidateAddress; /** From ae12420b90f39fc17281309f4c01340e494be57a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 15 Nov 2021 18:32:29 +0530 Subject: [PATCH 173/956] feat(elrond-helper): add support for wallet connect --- src/helpers/elrond.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index e1623fb3d..45e37cb7f 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -23,6 +23,7 @@ import { TransactionHash, TransactionPayload, U64Value, + WalletConnectProvider } from "@elrondnetwork/erdjs"; import axios from "axios"; import BigNumber from "bignumber.js"; @@ -46,7 +47,7 @@ import { } from ".."; import { NftMintArgs } from ".."; -type ElrondSigner = ISigner | ExtensionProvider; +type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; type EasyBalance = string | number | BigNumber; @@ -260,6 +261,9 @@ export const elrondHelperFactory: ( const acc = await syncAccount(signer); tx.setNonce(acc.nonce); let stx: Transaction; + if (signer instanceof WalletConnectProvider) { + stx = await signer.signTransaction(tx) + } if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); } else { From e5ff446ce4df14ba68c89e894980773797d15d82 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 16 Nov 2021 13:27:39 +0530 Subject: [PATCH 174/956] feat(ctron): expose isApprovedForMinter --- src/helpers/tron.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 7f487f632..596886ec5 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -88,7 +88,7 @@ export type TronHelper = BaseTronHelper & EstimateTxFees & ChainNonceGet & Approve & - ValidateAddress; + ValidateAddress & IsApproved; export async function baseTronHelperFactory( provider: TronWeb @@ -279,9 +279,13 @@ export async function tronHelperFactory( } const isApprovedForMinter = async ( - erc: any, - id: NftInfo + id: NftInfo, + _sender: TronSender ) => { + const erc = await provider.contract( + UserNftMinter__factory.abi, + id.native.contract + ); const approvedAddress = await erc.getApproved(id.native.tokenId).call({ from: tronParams.provider.defaultAddress.base58 }); @@ -300,7 +304,7 @@ export async function tronHelperFactory( UserNftMinter__factory.abi, id.native.contract ); - const isApproved = await isApprovedForMinter(erc, id); + const isApproved = await isApprovedForMinter(id, sender); if (isApproved) { return true; } @@ -319,6 +323,7 @@ export async function tronHelperFactory( isWrappedNft(nft) { return nft.native.contract.toLowerCase() === tronParams.erc721_addr.toLowerCase(); }, + isApprovedForMinter, async transferNativeToForeign( sender: TronSender, chain_nonce: number, From 065fc2b7527d711ac8622eba5af22e460af414dd Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 16 Nov 2021 15:21:46 +0530 Subject: [PATCH 175/956] nft-list: update for tron --- package.json | 2 +- src/factory/cons.ts | 4 ++-- src/factory/index.ts | 3 ++- yarn.lock | 8 ++++---- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index d97480b7a..fd46ab830 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "tronstation": "^1.0.1", "tronweb": "^4.0.0", "validator": "git+https://github.com/xp-network/Migration-validator#web3-new", - "xpnet-nft-list": "0.2.3", + "xpnet-nft-list": "0.2.5", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/src/factory/cons.ts b/src/factory/cons.ts index c37b070d4..39dc39bac 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -19,9 +19,9 @@ export function moralisNftList(server: string, appId: string): MoralisNftListRep ); } -export function tronListNft(tronWeb: TronWeb, tronScan: string): NftListRepo { +export function tronListNft(tronWeb: TronWeb, tronScan: string, xpnftAddr: string): NftListRepo { return nftListRepo( - trxNftListService(tronWeb, tronScan), + trxNftListService(tronWeb, tronScan, xpnftAddr), ethNftJMapper(), mockChainIdentMapper() ) diff --git a/src/factory/index.ts b/src/factory/index.ts index b86a18408..fe704b8c7 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -189,7 +189,8 @@ export function ChainFactory( const moralisNftRepo = moralisNftList(appConfig.moralisServer, appConfig.moralisAppId); const tronNftRepo = chainParams.tronParams && tronListNft( chainParams.tronParams.provider, - appConfig.tronScanUri + appConfig.tronScanUri, + chainParams.tronParams.erc721_addr ); const nftlistRest = axios.create({ diff --git a/yarn.lock b/yarn.lock index 277895dc8..6acc018f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7447,10 +7447,10 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xpnet-nft-list@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.3.tgz#01b252ab4a00e65b3b6c35ca4a8f747fa9d0529d" - integrity sha512-7rXdq9mx6ht4d9XXfcWfy0b48tC4y0blhVqFN1dxVXzcWncp5fvZwcaCvD4o1CspaRFFCO/7rkZYrQT1UbAWxg== +xpnet-nft-list@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.5.tgz#edb59705d468702ff9c2835cf31af39f886090fa" + integrity sha512-w8d+Q8u9yHMKgZbuXu1FkMtveDAIs15rGFGY6QW6S/xucKfyXYf+k5O4g3RvextGGr1lDYwJVr+cblCY709Rwg== dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" "@supercharge/promise-pool" "^1.9.0" From 0b817e8381ad446aa928a107a16f1239d09c2cd5 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 16 Nov 2021 16:15:22 +0530 Subject: [PATCH 176/956] elrond: signAndSend: use workaround for maiar --- src/helpers/elrond.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 45e37cb7f..a3c4a4e5f 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -262,9 +262,9 @@ export const elrondHelperFactory: ( tx.setNonce(acc.nonce); let stx: Transaction; if (signer instanceof WalletConnectProvider) { - stx = await signer.signTransaction(tx) - } - if (signer instanceof ExtensionProvider) { + const txs = await signer.signTransactions([tx]); + stx = txs[0]; + } else if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); } else { await (signer as ISigner).sign(tx); From afd7c1d52a879d8fcaabb3238b740ab2105a820c Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 16 Nov 2021 23:27:45 +0530 Subject: [PATCH 177/956] web3, tron: fix wrapped nft check typing --- src/helpers/tron.ts | 2 +- src/helpers/web3.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 596886ec5..9a2058578 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -84,7 +84,7 @@ export type TronHelper = BaseTronHelper & // TODO: Use TX Fees UnfreezeForeign & UnfreezeForeignNft & - WrappedNftCheck & + WrappedNftCheck & EstimateTxFees & ChainNonceGet & Approve & diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 6015ca2c5..5eca187e3 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -124,7 +124,7 @@ export type Web3Helper = BaseWeb3Helper & BigNumber, EthNftInfo > & - WrappedNftCheck & + WrappedNftCheck & EstimateTxFees & ChainNonceGet & IsApproved & From aca6014597b84afb50fbcee34521379bedf4f79c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 17 Nov 2021 18:07:14 +0530 Subject: [PATCH 178/956] chore(chains): rename ropsten to ethereum --- src/consts.ts | 2 +- src/factory/factories.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 7ee45a997..0320dae43 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -43,7 +43,7 @@ export namespace Chain { export const ELROND: ElrondNonce = 2; export const HECO: Web3Nonce = 3; export const BSC: Web3Nonce = 4; - export const ROPSTEN: Web3Nonce = 5; + export const ETHEREUM: Web3Nonce = 5; export const AVALANCHE: Web3Nonce = 6; export const POLYGON: Web3Nonce = 7; export const FANTOM: Web3Nonce = 8; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index e2f3b66cf..fc4cd7279 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -109,7 +109,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", erc721_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.ROPSTEN, + nonce: Chain.ETHEREUM, }, xDaiParams: { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), @@ -205,7 +205,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", erc721_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", validators: EVM_VALIDATORS, - nonce: Chain.ROPSTEN, + nonce: Chain.ETHEREUM, }, xDaiParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), From be701d27d32a26baeb06e3fd46b8bd9034457edb Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Wed, 17 Nov 2021 15:43:23 +0200 Subject: [PATCH 179/956] Update README.md --- README.md | 218 +++++++++++++++++++++++------------------------------- 1 file changed, 92 insertions(+), 126 deletions(-) diff --git a/README.md b/README.md index ac3c50959..1e36a4bd8 100644 --- a/README.md +++ b/README.md @@ -4,81 +4,131 @@ Features Available :- -- [x] Minting NFTs -- [x] Transferring NFTs between chains - [x] Listing NFTs +- [x] Transferring NFTs between chains +- [x] Minting NFTs - [x] Estimating the TX fee -- [ ] ... and More - - ### Create a moralis account +- [ ] ... and More to come - Before getting started, we recommend making a moralis account if you dont have one already. We use moralis to query WEB3 Blockchain nodes to query the NFTs owned by an address. +


- - [Register for a free Moralis account here](https://admin.moralis.io/register) +## To list and transfer NFTs, follow the steps below: - When your account created, click the "View Details" button and take the "Server URL" & "Application ID". We will need this in the later part of this section. +- Make sure [nodejs](https://nodejs.org/en/download/) is installed in your machine. -## To Mint an NFT, Follow the steps as specified - - -- First make sure nodejs is installed in your machine. - -- Import xp.network package with the command +### 1. Import xp.network package into your project with the following command: ``` - yarn add xp.network + yarn add xp.network @elrondnetwork ethers ``` OR ``` - npm install xp.network + npm install xp.network @elrondnetwork ethers ``` +
+### 2. Import the dependencies ```javascript - import { - ChainFactoryConfigs, - ChainFactory, - ElrondHelper, - ElrondParams, - TronHelper, - TronParams, - Web3Helper, - Web3Params, + import { ChainFactoryConfigs, ChainFactory, + ElrondHelper, ElrondParams, + TronHelper, TronParams, + Web3Helper, Web3Params, } from "xp.network/dist"; + // EVM chains compatible wallet: + import { Wallet } from "ethers"; + // Chanin name to chain nonce mapper: + import {Chain} from 'xp.network/dist/consts'; + // Elrond provider: + import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; // Fetch the config for required networks i.e. Mainnet/Testnet // Networks from the ChainFactoryConfigs namespace. You can also mix // and match the configs to your heart's desire. - const mainnetConfig = ChainFactoryConfigs.TestNet; // You can also call the ChainFactoryConfigs.MainNet + const mainnetConfig = ChainFactoryConfigs.MainNet; // You can also call the ChainFactoryConfigs.MainNet // Create an object with the following details - const moralisConfig = { - exchangeRateUri: "https://github.com/xp-network/exchange-rate#master-dist", // Check our exchange-rate repository for this. - moralisServer: "https:///server", // The one you retrieved while creating a moralis account. - moralisAppId: "Application ID", // The one you retrieved while creating a moralis account. + const Config = { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + moralisServer: "https://azz9akudh6cf.usemoralis.com:2053/server", + moralisAppId: "vt2JeuihhzyV9vgYbeAYO5BVSaCOdkAKr608XJOv", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com" }; - // Instantiate the factory by passing the above objects to the function call. - const factory = ChainFactory(moralisConfig, mainnetConfig); + // Instantiate the factory by populating the function call with the above objects. + const factory = ChainFactory(Config, mainnetConfig()); + ``` +
+ + ### 3. Getting the signer object + ```javascript + // Dont forget to import Wallet from ethersjs. + import { Wallet } from "ethers"; + const signer = new Wallet( + "PRIVATE KEY HERE", + mainnetConfig().polygonParams?.provider + ); ``` -- Get the inner object from this factory. This is used for transferring, minting, estimation of gas fees. The param can be anything from the Chain Namespace. i.e Chain.BSC, Chain.HECO. Depends on which chain do you want to mint the NFTs. +
+ +### 4. Getting the inner objects from this factory that can be used for transferring, minting, estimation of gas fees. ```javascript - const avax = await factory.inner(Chain.AVALANCHE); - const elrond = await factory.inner(Chain.ELROND); - const tron = await factory.inner(Chain.TRON); + const ethereum = await factory.inner (Chain.ETHEREUM); + const bsc = await factory.inner (Chain.BSC); + const polygon = await factory.inner (Chain.POLYGON); + const avax = await factory.inner (Chain.AVALANCHE); + const harmony = await factory.inner (Chain.HARMONY); + const celo = await factory.inner (Chain.CELO); + const fantom = await factory.inner (Chain.FANTOM); + const xdai = await factory.inner (Chain.XDAI); + const elrond = await factory.inner(Chain.ELROND); + const tron = await factory.inner (Chain.TRON); ``` +
+ +### 5. Listing NFTs Owned by the sender. + +This operation does not depend on a wallet, since reading operations are free and, therefore, do not require signing. + + ```javascript + (async () => { + // + const nfts = await factory.nftList( + polygon, // The chain of interest + "0x...." // The public key of the NFT owner + ); + // Choosing an NFT to transfer: + const theChosenOne = nfts[0]; + // Checking the selected NFT object + console.log("My NFT #1", theChosenOne); + })(); + ``` +
+ +### 6. Transferring an NFT + + ```javascript + factory.transferNft( + polygon, // The Source Chain. + bsc, // The Destination Chain. + theChosenOne, // Or the NFT you have chosen. + signer, // Or tronlink or maiar. + "ADDRESS OF THE RECEIVER" // The address who you are transferring the NFT to. + ); + ``` + +
+ +## Minting NFTs on EVM chains, Elrond & Tron - Just call the mint function on the factory with suitable arguments. 1. For Web3 Chains: ```javascript - import detectEthereumProvider from "@metamask/detect-provider"; - - const metamask = await detectEthereumProvider(); - const metamaskProvider = ethers.providers.Web3Provider(metamask); - const signer = metamaskProvider.getSigner(); // Web3Provider generally refers to a walletProvider like Metamask. const receipt = await factory.mint(avax, signer, { // Could be an IPFS URL or Any URL that points to a Metadata @@ -95,8 +145,6 @@ Features Available :- 2. For Elrond: ```javascript - // Dont forget to import ExtensionProvider from @elrondnetwork/erdjs library. - import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; const receipt = await factory.mint(elrond, ExtensionProvider.getInstance(), { // Could be an IPFS URL or Any URL that points to a Metadata uris: [metadata.url], @@ -127,88 +175,6 @@ Features Available :- contract: "Can be fetched from the mainnetConfig or testnetConfig", }); ``` +
-- That's it. - -## To Transfer an NFT, Follow the steps as specified - - -- Instantiate a ChainFactory from the package depending on the the network you want to use (ie Testnet or Mainnet). It has our smart contract address. - - ```javascript - import { - ChainFactoryConfigs, - ChainFactory, - Web3Helper, - Web3Params, - } from "xp.network/dist"; - import { Wallet } from "ethers"; - import detectEthereumProvider from "@metamask/detect-provider"; - - // Fetch the config for required networks i.e. Mainnet/Testnet - // Networks from the ChainFactoryConfigs namespace. You can also mix - // and match the configs to your heart's desire. - const mainnetConfig = ChainFactoryConfigs.TestNet; // You can also call the ChainFactoryConfigs.MainNet - - // Create an object with the following details - const moralisConfig = { - exchangeRateUri: "https://github.com/xp-network/exchange-rate#master-dist", // Check our exchange-rate repository for this. - moralisServer: "https:///server", // The one you retrieved while creating a moralis account. - moralisAppId: "Application ID", // The one you retrieved while creating a moralis account. - }; - // Instantiate the factory by passing the above objects to the function call. - const factory = ChainFactory(moralisConfig, mainnetConfig); - ``` - -- Get chain handlers for the source chain and the target chain. This is used for transferring, minting, estimation of gas fees. The param can be anything from the Chain Namespace. i.e Chain.BSC, Chain.HECO. Depends on which chain do you want to transfer from/to. - - ```javascript - const avax = await factory.inner(Chain.AVALANCHE); - const bsc = await factory.inner(Chain.BSC); - ``` - -- Get NFTs Owned by the sender. - - ```javascript - const nfts = await factory.nftList(avax, "NFT OWNER ADDRESS"); - // Choose an NFT to transfer, we are choosing the first one here. - const theChosenOne = nfts[0]; - ``` - -- Getting a Wallet/Signer to sign the transaction. This could be done in many ways. i.e. - - For Example: - - 1. Via Ethers : We need the provider from the config of the source chain and the Private Key of the Signer/Sender/Owner. - - ```javascript - // Dont forget to import Wallet from ethersjs. - import { Wallet } from "ethers"; - const signer = new Wallet( - "PRIVATE KEY HERE", - mainnetConfig.avalancheParams.provider - ); - ``` - - 2. Via Metamask: Connecting to metamask is beyond the library's scope. but, to get the signer from metamask. - - ```javascript - const metamask = await detectEthereumProvider(); - const metamaskProvider = ethers.providers.Web3Provider(metamask); - const signer = metamaskProvider.getSigner(); - ``` - - 3. For other methods, check this repo [Mainnet-UI](https://github.com/xp-network/mainnet-bridge-ui). - -- Call the transferNft function on the factory with suitable arguments - - ```javascript - factory.transferNft( - avax, // Source Chain. - bsc, // Destination Chain. - theChosenOne, // Or the nft of your choosing. - signer, // or tronlink or maiar. - "ADDRESS OF THE RECEIVER" // The address to whom you are transferring the NFT to. - ); - ``` - -- The NFT will be transferred and added to the receiver's address. + P.S. The library is a work in progress. More features will be added soon. From 875dd6e51e7ac92c569634dae68e6cc424a5239e Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Wed, 17 Nov 2021 15:44:21 +0200 Subject: [PATCH 180/956] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e36a4bd8..b2675d8ef 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Features Available :- ## To list and transfer NFTs, follow the steps below: -- Make sure [nodejs](https://nodejs.org/en/download/) is installed in your machine. +- Make sure [nodejs](https://nodejs.org/en/download/) is installed on your machine. ### 1. Import xp.network package into your project with the following command: From 80dd44e46becd5aaf3c06b8f41fb6f0342fd9ce7 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Wed, 17 Nov 2021 15:57:30 +0200 Subject: [PATCH 181/956] Update README.md --- README.md | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index b2675d8ef..81dd57ef7 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ Features Available :- npm install xp.network @elrondnetwork ethers ```
+ ### 2. Import the dependencies ```javascript @@ -94,8 +95,9 @@ Features Available :- This operation does not depend on a wallet, since reading operations are free and, therefore, do not require signing. ```javascript + // Since nftList returns a Promise it's a good idea to await it which requires an async function (async () => { - // + // Await the list of NFTs before trying to use it const nfts = await factory.nftList( polygon, // The chain of interest "0x...." // The public key of the NFT owner @@ -108,16 +110,33 @@ This operation does not depend on a wallet, since reading operations are free an ```
-### 6. Transferring an NFT +### 6. Approve accessing your NFT by the bridge smart contract +```javascript +// Since approveForMinter returns a Promise it's a good idea to await it which requires an async function +(async () => { + // Await the result of the transaction before moving on to the next steps + const isApproved = await polygon.approveForMinter(theChosenOne, signer); + console.log("Is Approved:", isApproved) + +})(); +``` +
+ +### 7. Transferring an NFT ```javascript - factory.transferNft( - polygon, // The Source Chain. - bsc, // The Destination Chain. - theChosenOne, // Or the NFT you have chosen. - signer, // Or tronlink or maiar. - "ADDRESS OF THE RECEIVER" // The address who you are transferring the NFT to. - ); + // Since transferNft returns a Promise it's a good idea to await it which requires an async function + (async () => { + // Await the result of the transaction before trying to use it + const result = await factory.transferNft( + polygon, // The Source Chain. + bsc, // The Destination Chain. + theChosenOne, // Or the NFT you have chosen. + signer, // Or tronlink or maiar. + "ADDRESS OF THE RECEIVER" // The address who you are transferring the NFT to. + ); + console.log(result) + })(); ```
From 76b9dd32f658aaacd3f510b62a323e9653ad22ac Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 18 Nov 2021 15:04:01 +0530 Subject: [PATCH 182/956] chore(visibility): export ChainFactory --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index fe704b8c7..f56c4e4ed 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -42,7 +42,7 @@ type FullChain = TransferNftForeign< * A type representing a chain factory. * */ -type ChainFactory = { +export type ChainFactory = { /** * Creates an helper factory for a given chain * @type T: Either {@link ElrondHelper} | {@link Web3Helper} | {@link TronHelper} as required. From 573f3da87ad0fa26866a648d0805c35d4fd25bcf Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 18 Nov 2021 15:57:34 +0530 Subject: [PATCH 183/956] chore(packages): remove unnecessary dependency on validator --- package.json | 1 - src/consts.ts | 7 +- src/helpers/tron.ts | 1 - src/helpers/web3.ts | 1 - yarn.lock | 612 ++++---------------------------------------- 5 files changed, 52 insertions(+), 570 deletions(-) diff --git a/package.json b/package.json index fd46ab830..421ab37f4 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.0.0", - "validator": "git+https://github.com/xp-network/Migration-validator#web3-new", "xpnet-nft-list": "0.2.5", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } diff --git a/src/consts.ts b/src/consts.ts index 0320dae43..f01eb02d9 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -1,9 +1,8 @@ import { CrossChainHelper } from "."; -import { elrondHelperFactory, ElrondParams } from "./helpers/elrond"; -import { tronHelperFactory, TronParams } from "./helpers/tron"; -import { web3HelperFactory, Web3Params } from "./helpers/web3"; +import { elrondHelperFactory, ElrondParams, ElrondHelper } from "./helpers/elrond"; +import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; +import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; -import { ElrondHelper, Web3Helper, TronHelper } from "validator"; // All the supported testnet uri's are here. export enum TestNetRpcUri { diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 9a2058578..bab6a2960 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -28,7 +28,6 @@ import { XPNft__factory, } from "xpnet-web3-contracts"; import { Approve, IsApproved, NftMintArgs, ValidateAddress } from ".."; -import { NftEthNative, NftPacked } from "validator"; import { ChainNonceGet, NftInfo diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 5eca187e3..cedc36505 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -27,7 +27,6 @@ import { TransactionResponse, Provider, } from "@ethersproject/providers"; -import { NftEthNative, NftPacked } from "validator"; import { Minter__factory, UserNftMinter, diff --git a/yarn.lock b/yarn.lock index 6acc018f6..567c7b1a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -73,18 +73,13 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.15.3", "@babel/runtime@^7.15.4": +"@babel/runtime@^7.0.0": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== dependencies: regenerator-runtime "^0.13.4" -"@celo-tools/celo-ethers-wrapper@^0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@celo-tools/celo-ethers-wrapper/-/celo-ethers-wrapper-0.0.5.tgz#a0bd4553e59c0fc4e97dcec97f719fd27dc4498b" - integrity sha512-an5TaLv/esjQLEYtF79f8isBUtHEN+ZiHci2H4gVTEAgRgS+nSp5QCq8/LV/biAh9kJJEpojEzlxJALSKu8Klg== - "@elrondnetwork/bls-wasm@0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@elrondnetwork/bls-wasm/-/bls-wasm-0.3.3.tgz#5164a95f39727c53dba877bf43c0374bca9f01eb" @@ -93,34 +88,6 @@ assert "^2.0.0" perf_hooks "0.0.1" -"@elrondnetwork/erdjs@^8.0.1-alpha.5": - version "8.0.1-alpha.5" - resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-8.0.1-alpha.5.tgz#5405960e273ce3fe6ff70923aaf93bb2d938bb94" - integrity sha512-Lfj4kt13jULWLrs4LZihnSCXGKxOcl1AY9UXN9PL2zkuqD+jOkt+DMPCdMyZqrTJATSIBtbR8oNpT8EJn9FGSQ== - dependencies: - "@babel/runtime" "7.11.2" - "@elrondnetwork/bls-wasm" "0.3.3" - "@elrondnetwork/hw-app-elrond" "0.3.2" - "@ledgerhq/hw-transport-u2f" "5.28.0" - "@ledgerhq/hw-transport-webusb" "5.28.0" - "@walletconnect/client" "1.6.5" - abort-controller "3.0.0" - axios "0.21.1" - bech32 "1.1.4" - bignumber.js "9.0.1" - bip39 "3.0.2" - blake2b "2.1.3" - ed25519-hd-key "1.1.2" - json-bigint "1.0.0" - json-duplicate-key-handle "1.0.0" - keccak "^3.0.1" - platform "1.3.6" - protobufjs "6.10.2" - qs "6.10.1" - scryptsy "2.1.0" - tweetnacl "1.0.3" - uuid "8.3.2" - "@elrondnetwork/erdjs@^8.0.1-alpha.8": version "8.0.1-alpha.10" resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-8.0.1-alpha.10.tgz#3e4f1f5f7ab8f9ca6998ff004954b026ef3a2856" @@ -1239,218 +1206,6 @@ dependencies: "@octokit/openapi-types" "^8.3.0" -"@polkadot/api-contract@^5.2.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-5.9.1.tgz#c683f0d5acc4dd6e5a395665ad7dc288b6d2aac5" - integrity sha512-c6JZWaYezS99D1ZylQNAnnS/H38gDKXZl3FkVOe7nFSXHsS6/b8MVIYTNAckPg10aQgwzvbkQuiJPze0EAZGmg== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/api" "5.9.1" - "@polkadot/types" "5.9.1" - "@polkadot/util" "^7.3.1" - rxjs "^7.3.0" - -"@polkadot/api-derive@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-5.9.1.tgz#5937069920ded1439e6672b9d6be1072421b256b" - integrity sha512-iMrVKnYIS3UQciDlFqww6AFyXgG+iN8UqWu8QbTuZecri3qrSmM3Nn8Jkvju3meZIacwWIMSmBcnj8+zef3rkQ== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/api" "5.9.1" - "@polkadot/rpc-core" "5.9.1" - "@polkadot/types" "5.9.1" - "@polkadot/util" "^7.3.1" - "@polkadot/util-crypto" "^7.3.1" - rxjs "^7.3.0" - -"@polkadot/api@5.9.1", "@polkadot/api@^5.2.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-5.9.1.tgz#ce314cc34f0a47098d039db7b9036bb491c2898c" - integrity sha512-POpIXn/Ao+NLB0uMldXdXU44dVbRr6+6Ax77Z0R285M8Z2EiF5jl2K3SPvlowLo4SntxiCSaHQxCekYhUcJKlw== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/api-derive" "5.9.1" - "@polkadot/keyring" "^7.3.1" - "@polkadot/rpc-core" "5.9.1" - "@polkadot/rpc-provider" "5.9.1" - "@polkadot/types" "5.9.1" - "@polkadot/types-known" "5.9.1" - "@polkadot/util" "^7.3.1" - "@polkadot/util-crypto" "^7.3.1" - eventemitter3 "^4.0.7" - rxjs "^7.3.0" - -"@polkadot/keyring@^7.0.3", "@polkadot/keyring@^7.3.1": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-7.6.1.tgz#a138e417cbbf85b3f0f66af66f5cd40735ba24a1" - integrity sha512-lpbTHAQqae++cvaNfuCjdz2xbNrk0ZSGCM8w08Br6NIz8NyrwR/qm1PfV75leoLq/Qx58+aj8v2qANEBOVz4vQ== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/util" "7.6.1" - "@polkadot/util-crypto" "7.6.1" - -"@polkadot/networks@7.6.1", "@polkadot/networks@^7.3.1": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-7.6.1.tgz#d7ca346a3c15b29c9286ccbc67b1438bf9c8130e" - integrity sha512-76RdEVy+G14P13oxSe3+VDwFdVYRNVAy7xi9ESJBRZFnQC/TIL2rOeg7Gq5+HP/mkgzG4gL5X30VdE+aKzokpA== - dependencies: - "@babel/runtime" "^7.15.4" - -"@polkadot/rpc-core@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-5.9.1.tgz#68e2a2ea18c15aa15743e7487a407fdd65d1d900" - integrity sha512-5fXiICAcjp7ow81DnIl2Dq/xuCtJUqyjJkxe9jNHJWBluBxOouqYDb8bYPPGSdckiaVyYe0l8lA9fBUFMdEt6w== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/rpc-provider" "5.9.1" - "@polkadot/types" "5.9.1" - "@polkadot/util" "^7.3.1" - rxjs "^7.3.0" - -"@polkadot/rpc-provider@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-5.9.1.tgz#8e67769c05ba71ecf4f5bc0c5a60eb9afc699167" - integrity sha512-9zamxfnsY7iCswXIK22W0Ji1XHLprm97js3WLw3lP2hr/uSim4Cv4y07zY/z4dDQyF0gJtjKwR27Wo9CZqdr6A== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/types" "5.9.1" - "@polkadot/util" "^7.3.1" - "@polkadot/util-crypto" "^7.3.1" - "@polkadot/x-fetch" "^7.3.1" - "@polkadot/x-global" "^7.3.1" - "@polkadot/x-ws" "^7.3.1" - eventemitter3 "^4.0.7" - -"@polkadot/types-known@5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-5.9.1.tgz#e52fc7b803bc7cb3f41028f88963deb4ccee40af" - integrity sha512-7lpLuIVGaKziQRzPMnTxyjlYy3spL6WqUg3CcEzmJUKQeUonHglOliQh8JSSz1bcP+YuNHGXK1cKsTjHb+GYxA== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/networks" "^7.3.1" - "@polkadot/types" "5.9.1" - "@polkadot/util" "^7.3.1" - -"@polkadot/types@5.9.1", "@polkadot/types@^5.2.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-5.9.1.tgz#74cf4695795f2aa365ff85d3873e22c430100bc9" - integrity sha512-30vcSlNBxPyWYZaxKDr/BoMhfLCRKB265XxpnnNJmbdZZsL+N4Zp2mJR9/UbA6ypmJBkUjD7b1s9AYsLwUs+8w== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/util" "^7.3.1" - "@polkadot/util-crypto" "^7.3.1" - rxjs "^7.3.0" - -"@polkadot/util-crypto@7.6.1", "@polkadot/util-crypto@^7.1.1", "@polkadot/util-crypto@^7.3.1": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-7.6.1.tgz#3e40270e9dce7885d92d0992aef9761feb57f2e2" - integrity sha512-5lLEfexkYOc73jitwC4K/Ll3JNA8Hdo2aU3GSOkDah8bBpm02djD7ypwfmuWRJw0UDyTgY67g0SXn4frPcQiag== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/networks" "7.6.1" - "@polkadot/util" "7.6.1" - "@polkadot/wasm-crypto" "^4.2.1" - "@polkadot/x-randomvalues" "7.6.1" - base-x "^3.0.9" - base64-js "^1.5.1" - blakejs "^1.1.1" - bn.js "^4.12.0" - create-hash "^1.2.0" - ed2curve "^0.3.0" - elliptic "^6.5.4" - hash.js "^1.1.7" - js-sha3 "^0.8.0" - scryptsy "^2.1.0" - tweetnacl "^1.0.3" - xxhashjs "^0.2.2" - -"@polkadot/util@7.6.1", "@polkadot/util@^7.1.1", "@polkadot/util@^7.3.1": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-7.6.1.tgz#e6988124728fdf053929022827216241dd50a6fa" - integrity sha512-96UgzMOxwwsndGHN4aoyPYVRXpHcVpYb4zngFH2O9ma0YxrG2HhhqqoJ5pS0OUlhvcQkVz6T6t+heGFnTkvQxw== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/x-textdecoder" "7.6.1" - "@polkadot/x-textencoder" "7.6.1" - "@types/bn.js" "^4.11.6" - bn.js "^4.12.0" - camelcase "^6.2.0" - ip-regex "^4.3.0" - -"@polkadot/wasm-crypto-asmjs@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-4.2.1.tgz#6b7eae1c011709f8042dfd30872a5fc5e9e021c0" - integrity sha512-ON9EBpTNDCI3QRUmuQJIegYoAcwvxDaNNA7uwKTaEEStu8LjCIbQxbt4WbOBYWI0PoUpl4iIluXdT3XZ3V3jXA== - dependencies: - "@babel/runtime" "^7.15.3" - -"@polkadot/wasm-crypto-wasm@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-4.2.1.tgz#2a86f9b405e7195c3f523798c6ce4afffd19737e" - integrity sha512-Rs2CKiR4D+2hKzmKBfPNYxcd2E8NfLWia0av4fgicjT9YsWIWOGQUi9AtSOfazPOR9FrjxKJy+chQxAkcfKMnQ== - dependencies: - "@babel/runtime" "^7.15.3" - -"@polkadot/wasm-crypto@^4.1.2", "@polkadot/wasm-crypto@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-4.2.1.tgz#4d09402f5ac71a90962fb58cbe4b1707772a4fb6" - integrity sha512-C/A/QnemOilRTLnM0LfhPY2N/x3ZFd1ihm9sXYyuh98CxtekSVYI9h4IJ5Jrgz5imSUHgvt9oJLqJ5GbWQV/Zg== - dependencies: - "@babel/runtime" "^7.15.3" - "@polkadot/wasm-crypto-asmjs" "^4.2.1" - "@polkadot/wasm-crypto-wasm" "^4.2.1" - -"@polkadot/x-fetch@^7.3.1": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-7.6.1.tgz#fda1a89bbb584217f96c2d3c3a3ce0f10a454436" - integrity sha512-CdjCg7BGhKfKNntUiK9vFOoum44o86TInPpqNumLGWAZmqI+kU0DCUDtqcw7uFOdZL1j/3GHdXigJ6LL1TnNcg== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/x-global" "7.6.1" - "@types/node-fetch" "^2.5.12" - node-fetch "^2.6.5" - -"@polkadot/x-global@7.6.1", "@polkadot/x-global@^7.3.1": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-7.6.1.tgz#f43a61d40bfaf2f43f9a4ef39e01a24546768394" - integrity sha512-jKPNFHiC0yIc6TfqZtopaqsW3pDun1uh9lp0kcDkfOYozwwN1NVXWLClDBa2C5UiKU/jxA3biYiNZUyZpbV13g== - dependencies: - "@babel/runtime" "^7.15.4" - -"@polkadot/x-randomvalues@7.6.1", "@polkadot/x-randomvalues@^7.1.1": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-7.6.1.tgz#0cd143cf976e36f5c9fcf53ba41fd5fffca95c44" - integrity sha512-hfSMBeMZTrnuejv/oXp3tMZARTOGyQZ3G0GW44dV2fR2L1+tlLj9VuXgVGgupNBq7AC6eSfE3XhJwCGyH5FhmQ== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/x-global" "7.6.1" - -"@polkadot/x-textdecoder@7.6.1": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-7.6.1.tgz#7e80b512f1ddfd01f243dbbe8afc9dab7d0c6c85" - integrity sha512-sJtQMMw+jO3CwpOf0t1hrVl3xMw1BOLs/Xjd0v/yhiTAJ1rr6dqvhcnOHkU3a7udqo7G9dXDrnGi1q3efifXPw== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/x-global" "7.6.1" - -"@polkadot/x-textencoder@7.6.1": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-7.6.1.tgz#2a2fb4baa13889fbc53b86ce9003de748f0df2aa" - integrity sha512-iqOGwXJIzc8rWYLPTYcO09LwA2q4fqwJhLsLCd+p13Z0yDSUvwgq785/2WEQfhSFbMd8HM6udedqrQTpnpIujg== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/x-global" "7.6.1" - -"@polkadot/x-ws@^7.3.1": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-7.6.1.tgz#60c86cfb43935b38a6512f3e7bab362ffe6bec1f" - integrity sha512-nP8vHlL17SIuVinphuVbj2o3mfRWUTJqlhAYlA5RjO/sZ9TwYMvGTvL/1bOAfWdp/l451WLEWJtzSipzrVGBsg== - dependencies: - "@babel/runtime" "^7.15.4" - "@polkadot/x-global" "7.6.1" - "@types/websocket" "^1.0.4" - websocket "^1.0.34" - "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -1514,11 +1269,6 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== -"@socket.io/component-emitter@~3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz#8863915676f837d9dad7b76f50cb500c1e9422e9" - integrity sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q== - "@supercharge/promise-pool@^1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-1.9.0.tgz#7630c760535919db93711ca35716ada59d86feb7" @@ -1538,7 +1288,7 @@ dependencies: defer-to-connect "^2.0.0" -"@types/bn.js@^4.11.5", "@types/bn.js@^4.11.6": +"@types/bn.js@^4.11.5": version "4.11.6" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== @@ -1567,21 +1317,6 @@ resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== -"@types/cookie@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" - integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== - -"@types/cors@^2.8.12": - version "2.8.12" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== - -"@types/google-protobuf@^3.15.4": - version "3.15.5" - resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.15.5.tgz#644b2be0f5613b1f822c70c73c6b0e0b5b5fa2ad" - integrity sha512-6bgv24B+A2bo9AfzReeg5StdiijKzwwnRflA8RLd1V4Yv995LeTmo0z69/MPbBDFSiZWdZHQygLo/ccXhMEDgw== - "@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" @@ -1604,14 +1339,6 @@ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== -"@types/node-fetch@^2.5.12": - version "2.5.12" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66" - integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - "@types/node@*", "@types/node@>= 8": version "16.3.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.2.tgz#655432817f83b51ac869c2d51dd8305fb8342e16" @@ -1622,11 +1349,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== -"@types/node@>=10.0.0": - version "16.11.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.4.tgz#90771124822d6663814f7c1c9b45a6654d8fd964" - integrity sha512-TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ== - "@types/node@^12.12.6": version "12.20.36" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.36.tgz#5bd54d2383e714fc4d2c258107ee70c5bad86d0c" @@ -1663,20 +1385,6 @@ dependencies: "@types/node" "*" -"@types/websocket@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8" - integrity sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA== - dependencies: - "@types/node" "*" - -"@types/ws@^7.4.7": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - "@typescript-eslint/eslint-plugin@^4.31.0": version "4.31.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" @@ -1930,7 +1638,7 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" -accepts@~1.3.4, accepts@~1.3.7: +accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== @@ -2189,7 +1897,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.2, base-x@^3.0.8, base-x@^3.0.9: +base-x@^3.0.2, base-x@^3.0.8: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== @@ -2201,21 +1909,11 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-arraybuffer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz#87bd13525626db4a9838e00a508c2b73efcf348c" - integrity sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA== - -base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64id@2.0.0, base64id@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -2302,7 +2000,7 @@ blake2b@2.1.3: blake2b-wasm "^1.1.0" nanoassert "^1.0.0" -blakejs@^1.1.0, blakejs@^1.1.1: +blakejs@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== @@ -2327,7 +2025,7 @@ bn.js@4.11.8: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9, bn.js@^4.12.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -2540,11 +2238,6 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -2703,7 +2396,7 @@ colors@^1.4.0: resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -2766,11 +2459,6 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== -cookie@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - cookiejar@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" @@ -2791,7 +2479,7 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@^2.8.1, cors@^2.8.5, cors@~2.8.5: +cors@^2.8.1, cors@^2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -2902,11 +2590,6 @@ crypto-js@4.0.0: resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc" integrity sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg== -cuint@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= - d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -2929,7 +2612,7 @@ debug@2.6.9, debug@^2.2.0: dependencies: ms "2.0.0" -debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@~4.3.1, debug@~4.3.2: +debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@~4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -3104,13 +2787,6 @@ ed25519-hd-key@1.1.2: create-hmac "1.1.7" tweetnacl "1.0.3" -ed2curve@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ed2curve/-/ed2curve-0.3.0.tgz#322b575152a45305429d546b071823a93129a05d" - integrity sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ== - dependencies: - tweetnacl "1.x.x" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -3166,21 +2842,6 @@ engine.io-client@~5.1.2: ws "~7.4.2" yeast "0.1.2" -engine.io-client@~6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.0.2.tgz#ccfc059051e65ca63845e65929184757754cc34e" - integrity sha512-cAep9lhZV6Q8jMXx3TNSU5cydMzMed8/O7Tz5uzyqZvpNPtQ3WQXrLYGADxlsuaFmOLN7wZLmT7ImiFhUOku8g== - dependencies: - "@socket.io/component-emitter" "~3.0.0" - debug "~4.3.1" - engine.io-parser "~5.0.0" - has-cors "1.1.0" - parseqs "0.0.6" - parseuri "0.0.6" - ws "~8.2.3" - xmlhttprequest-ssl "~2.0.0" - yeast "0.1.2" - engine.io-parser@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" @@ -3188,29 +2849,6 @@ engine.io-parser@~4.0.1: dependencies: base64-arraybuffer "0.1.4" -engine.io-parser@~5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.1.tgz#6695fc0f1e6d76ad4a48300ff80db5f6b3654939" - integrity sha512-j4p3WwJrG2k92VISM0op7wiq60vO92MlF3CRGxhKHy9ywG1/Dkc72g0dXeDQ+//hrcDn8gqQzoEkdO9FN0d9AA== - dependencies: - base64-arraybuffer "~1.0.1" - -engine.io@~6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.0.0.tgz#2b993fcd73e6b3a6abb52b40b803651cd5747cf0" - integrity sha512-Ui7yl3JajEIaACg8MOUwWvuuwU7jepZqX3BKs1ho7NQRuP4LhN4XIykXhp8bEy+x/DhA0LBZZXYSCkZDqrwMMg== - dependencies: - "@types/cookie" "^0.4.1" - "@types/cors" "^2.8.12" - "@types/node" ">=10.0.0" - accepts "~1.3.4" - base64id "2.0.0" - cookie "~0.4.1" - cors "~2.8.5" - debug "~4.3.1" - engine.io-parser "~5.0.0" - ws "~8.2.3" - enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -3592,42 +3230,6 @@ ethers@^5.4.1: "@ethersproject/web" "5.4.0" "@ethersproject/wordlists" "5.4.0" -ethers@^5.4.2, ethers@^5.5.1: - version "5.5.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.1.tgz#d3259a95a42557844aa543906c537106c0406fbf" - integrity sha512-RodEvUFZI+EmFcE6bwkuJqpCYHazdzeR1nMzg+YWQSmQEsNtfl1KHGfp/FWZYl48bI/g7cgBeP2IlPthjiVngw== - dependencies: - "@ethersproject/abi" "5.5.0" - "@ethersproject/abstract-provider" "5.5.1" - "@ethersproject/abstract-signer" "5.5.0" - "@ethersproject/address" "5.5.0" - "@ethersproject/base64" "5.5.0" - "@ethersproject/basex" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/constants" "5.5.0" - "@ethersproject/contracts" "5.5.0" - "@ethersproject/hash" "5.5.0" - "@ethersproject/hdnode" "5.5.0" - "@ethersproject/json-wallets" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/logger" "5.5.0" - "@ethersproject/networks" "5.5.0" - "@ethersproject/pbkdf2" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/providers" "5.5.0" - "@ethersproject/random" "5.5.0" - "@ethersproject/rlp" "5.5.0" - "@ethersproject/sha2" "5.5.0" - "@ethersproject/signing-key" "5.5.0" - "@ethersproject/solidity" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@ethersproject/transactions" "5.5.0" - "@ethersproject/units" "5.5.0" - "@ethersproject/wallet" "5.5.0" - "@ethersproject/web" "5.5.0" - "@ethersproject/wordlists" "5.5.0" - ethers@^5.4.4: version "5.4.6" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.6.tgz#fe0a023956b5502c947f58e82fbcf9a73e5e75b6" @@ -3664,6 +3266,42 @@ ethers@^5.4.4: "@ethersproject/web" "5.4.0" "@ethersproject/wordlists" "5.4.0" +ethers@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.1.tgz#d3259a95a42557844aa543906c537106c0406fbf" + integrity sha512-RodEvUFZI+EmFcE6bwkuJqpCYHazdzeR1nMzg+YWQSmQEsNtfl1KHGfp/FWZYl48bI/g7cgBeP2IlPthjiVngw== + dependencies: + "@ethersproject/abi" "5.5.0" + "@ethersproject/abstract-provider" "5.5.1" + "@ethersproject/abstract-signer" "5.5.0" + "@ethersproject/address" "5.5.0" + "@ethersproject/base64" "5.5.0" + "@ethersproject/basex" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/constants" "5.5.0" + "@ethersproject/contracts" "5.5.0" + "@ethersproject/hash" "5.5.0" + "@ethersproject/hdnode" "5.5.0" + "@ethersproject/json-wallets" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/logger" "5.5.0" + "@ethersproject/networks" "5.5.0" + "@ethersproject/pbkdf2" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/providers" "5.5.0" + "@ethersproject/random" "5.5.0" + "@ethersproject/rlp" "5.5.0" + "@ethersproject/sha2" "5.5.0" + "@ethersproject/signing-key" "5.5.0" + "@ethersproject/solidity" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@ethersproject/transactions" "5.5.0" + "@ethersproject/units" "5.5.0" + "@ethersproject/wallet" "5.5.0" + "@ethersproject/web" "5.5.0" + "@ethersproject/wordlists" "5.5.0" + ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" @@ -3687,11 +3325,6 @@ eventemitter3@^3.1.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -3954,15 +3587,6 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -4169,11 +3793,6 @@ globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" -google-protobuf@^3.17.3: - version "3.19.0" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.19.0.tgz#97f474323c92f19fd6737af1bb792e396991e0b8" - integrity sha512-qXGAiv3OOlaJXJNeKOBKxbBAwjsxzhx+12ZdKOkZTsqsRkyiQRmr/nBkAkqnuQ8cmA9X5NVXvObQTpHVnXE2DQ== - got@9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -4451,11 +4070,6 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -ip-regex@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" - integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -5241,12 +4855,6 @@ next-tick@~1.0.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= -"nft-db-client@git+https://github.com/xp-network/nft-db-client-#master": - version "1.1.0" - resolved "git+https://github.com/xp-network/nft-db-client-#35d431d5cfb45c4f745fda529e59060ed2600638" - dependencies: - axios "^0.21.1" - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -5279,13 +4887,6 @@ node-fetch@^2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@^2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" - integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== - dependencies: - whatwg-url "^5.0.0" - node-gyp-build@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" @@ -6065,13 +5666,6 @@ rxjs@6, rxjs@^6.6.7: dependencies: tslib "^1.9.0" -rxjs@^7.3.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" - integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== - dependencies: - tslib "~2.1.0" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -6092,7 +5686,7 @@ scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== -scryptsy@2.1.0, scryptsy@^2.1.0: +scryptsy@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== @@ -6307,11 +5901,6 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -socket.io-adapter@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.3.2.tgz#039cd7c71a52abad984a6d57da2c0b7ecdd3c289" - integrity sha512-PBZpxUPYjmoogY0aoaTmo1643JelsaS1CiAwNjRVdrI0X9Seuc19Y2Wife8k88avW6haG8cznvwbubAZwH4Mtg== - socket.io-client@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.1.3.tgz#236daa642a9f229932e00b7221e843bf74232a62" @@ -6325,18 +5914,6 @@ socket.io-client@^4.1.3: parseuri "0.0.6" socket.io-parser "~4.0.4" -socket.io-client@^4.2.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.3.2.tgz#9cfdb8fecac8a24d5723daf8c8749e70c8fdeb25" - integrity sha512-2B9LqSunN60yV8F7S84CCEEcgbYNfrn7ejIInZtLZ7ppWtiX8rGZAjvdCvbnC8bqo/9RlCNOUsORLyskxSFP1g== - dependencies: - "@socket.io/component-emitter" "~3.0.0" - backo2 "~1.0.2" - debug "~4.3.2" - engine.io-client "~6.0.1" - parseuri "0.0.6" - socket.io-parser "~4.1.1" - socket.io-parser@~4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" @@ -6346,26 +5923,6 @@ socket.io-parser@~4.0.4: component-emitter "~1.3.0" debug "~4.3.1" -socket.io-parser@~4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.1.1.tgz#0ad53d980781cab1eabe320417d8480c0133e62d" - integrity sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA== - dependencies: - "@socket.io/component-emitter" "~3.0.0" - debug "~4.3.1" - -socket.io@^4.1.3: - version "4.3.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.3.1.tgz#c0aa14f3f916a8ab713e83a5bd20c16600245763" - integrity sha512-HC5w5Olv2XZ0XJ4gOLGzzHEuOCfj3G0SmoW3jLHYYh34EVsIr3EkW9h6kgfW+K3TFEcmYy8JcPWe//KUkBp5jA== - dependencies: - accepts "~1.3.4" - base64id "~2.0.0" - debug "~4.3.2" - engine.io "~6.0.0" - socket.io-adapter "~2.3.2" - socket.io-parser "~4.0.4" - split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" @@ -6679,11 +6236,6 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - "traverse@>=0.3.0 <0.4": version "0.3.9" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" @@ -6718,11 +6270,6 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -6737,7 +6284,7 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl@1.0.3, tweetnacl@1.x.x, tweetnacl@^1.0.3: +tweetnacl@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== @@ -6972,37 +6519,6 @@ validator@^13.6.0: resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== -"validator@git+https://github.com/xp-network/Migration-validator#web3-new": - version "1.0.0" - resolved "git+https://github.com/xp-network/Migration-validator#b414eeb32819934e2219393f66293456cda679fd" - dependencies: - "@celo-tools/celo-ethers-wrapper" "^0.0.5" - "@elrondnetwork/erdjs" "^8.0.1-alpha.5" - "@polkadot/api" "^5.2.1" - "@polkadot/api-contract" "^5.2.1" - "@polkadot/keyring" "^7.0.3" - "@polkadot/types" "^5.2.1" - "@polkadot/util" "^7.1.1" - "@polkadot/util-crypto" "^7.1.1" - "@polkadot/wasm-crypto" "^4.1.2" - "@polkadot/x-randomvalues" "^7.1.1" - "@types/google-protobuf" "^3.15.4" - "@types/ws" "^7.4.7" - axios "^0.21.1" - bignumber.js "^9.0.1" - crypto-exchange-rate "git+https://github.com/xp-network/exchange-rate#master-dist" - dotenv "^10.0.0" - ethers "^5.4.2" - google-protobuf "^3.17.3" - js-base64 "^3.6.1" - nft-db-client "git+https://github.com/xp-network/nft-db-client-#master" - socket.io "^4.1.3" - socket.io-client "^4.2.0" - tronstation "^1.0.1" - tronweb "^4.0.0" - ws "^8.2.0" - xpnet-web3-contracts "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" - varint@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" @@ -7256,12 +6772,7 @@ web3@^1.6.0: web3-shh "1.6.0" web3-utils "1.6.0" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -websocket@^1.0.32, websocket@^1.0.34: +websocket@^1.0.32: version "1.0.34" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== @@ -7273,14 +6784,6 @@ websocket@^1.0.32, websocket@^1.0.34: utf-8-validate "^5.0.2" yaeti "^0.0.6" -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -7395,11 +6898,6 @@ ws@^7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== -ws@^8.2.0, ws@~8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" - integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== - xhr-request-promise@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" @@ -7437,11 +6935,6 @@ xhr@^2.0.4, xhr@^2.3.3: parse-headers "^2.0.0" xtend "^4.0.0" -xmlhttprequest-ssl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" - integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== - xmlhttprequest@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" @@ -7474,13 +6967,6 @@ xtend@^4.0.0: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -xxhashjs@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" - integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== - dependencies: - cuint "^0.2.2" - y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" From 214b4bc4ccaf725b497ea754cdb03d757de15cad Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Thu, 18 Nov 2021 13:36:56 +0200 Subject: [PATCH 184/956] Add Config to consts.ts --- src/consts.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index f01eb02d9..6e14eb950 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -191,3 +191,11 @@ export const CHAIN_INFO: ChainInfo = { validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], } }; + +export const Config = { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + moralisServer: "https://azz9akudh6cf.usemoralis.com:2053/server", + moralisAppId: "vt2JeuihhzyV9vgYbeAYO5BVSaCOdkAKr608XJOv", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com" +}; From f58c5bb8d997652628c2a1c6c7a7f6ccbbb98c80 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 18 Nov 2021 17:28:47 +0530 Subject: [PATCH 185/956] feat(config): add moralis secret --- src/factory/cons.ts | 12 ++++++------ src/factory/index.ts | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 39dc39bac..7db9c1cdb 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -11,9 +11,9 @@ export function elrondNftList(proxy: string): ElrdNftListRepo { ); } -export function moralisNftList(server: string, appId: string): MoralisNftListRepo { +export function moralisNftList(server: string, appId: string, moralisSecret?: string): MoralisNftListRepo { return nftListRepo( - moralisNftListService({ serverUrl: server, appId }), + moralisNftListService({ serverUrl: server, appId, moralisSecret }), moralisNftMapper(), moralisChainIdMapper() ); @@ -33,9 +33,9 @@ export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { ); return cachedExchangeRateRepo( - networkBatchExchangeRateRepo( - baseService, - NetworkModel.exchangeRateDtoMapper() - ) + networkBatchExchangeRateRepo( + baseService, + NetworkModel.exchangeRateDtoMapper() + ) ); } \ No newline at end of file diff --git a/src/factory/index.ts b/src/factory/index.ts index f56c4e4ed..1b1e0f6c5 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -143,6 +143,7 @@ export interface AppConfig { moralisServer: string, moralisAppId: string, tronScanUri: string, + moralisSecret?: string, } function mapNonceToParams( @@ -186,7 +187,7 @@ export function ChainFactory( const remoteExchangeRate = exchangeRateRepo(appConfig.exchangeRateUri); const elrondNftRepo = elrondNftList(chainParams.elrondParams?.node_uri || ''); - const moralisNftRepo = moralisNftList(appConfig.moralisServer, appConfig.moralisAppId); + const moralisNftRepo = moralisNftList(appConfig.moralisServer, appConfig.moralisAppId, appConfig.moralisSecret); const tronNftRepo = chainParams.tronParams && tronListNft( chainParams.tronParams.provider, appConfig.tronScanUri, From 5cce5049b6913f1f56185c188445e547cffa7a83 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Thu, 18 Nov 2021 15:28:18 +0200 Subject: [PATCH 186/956] Update README.md --- README.md | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 81dd57ef7..355f8def9 100644 --- a/README.md +++ b/README.md @@ -19,13 +19,13 @@ Features Available :- ### 1. Import xp.network package into your project with the following command: ``` - yarn add xp.network @elrondnetwork ethers + yarn add xp.network @elrondnetwork/erdjs ethers ``` OR ``` - npm install xp.network @elrondnetwork ethers + npm install xp.network @elrondnetwork/erdjs ethers ```
@@ -40,7 +40,7 @@ Features Available :- // EVM chains compatible wallet: import { Wallet } from "ethers"; // Chanin name to chain nonce mapper: - import {Chain} from 'xp.network/dist/consts'; + import {Chain, Config} from 'xp.network/dist/consts'; // Elrond provider: import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; @@ -49,14 +49,6 @@ Features Available :- // and match the configs to your heart's desire. const mainnetConfig = ChainFactoryConfigs.MainNet; // You can also call the ChainFactoryConfigs.MainNet - // Create an object with the following details - const Config = { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - moralisServer: "https://azz9akudh6cf.usemoralis.com:2053/server", - moralisAppId: "vt2JeuihhzyV9vgYbeAYO5BVSaCOdkAKr608XJOv", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com" - }; // Instantiate the factory by populating the function call with the above objects. const factory = ChainFactory(Config, mainnetConfig()); ``` @@ -194,6 +186,25 @@ This operation does not depend on a wallet, since reading operations are free an contract: "Can be fetched from the mainnetConfig or testnetConfig", }); ``` +
P.S. The library is a work in progress. More features will be added soon. + +
+ + ## Troubleshooting + +- In case you're using the library in a console application and getting errors, go to: + +- node_modules/xpnet-nft-list/dist/nft-list/model/moralis/MoralisNftListService.js + +Now your line #7 looks like this (to be used in the FE): +```javascript +7 const moralis_1 = __importDefault(require("moralis")); +``` + +Change it like so (for BE usage): +```javascript +7 const moralis_1 = __importDefault(require("moralis/node")); +``` From 60998f002cdc1a3b5d340a2cdd6b4477d2e0e52e Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Thu, 18 Nov 2021 16:18:09 +0200 Subject: [PATCH 187/956] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 355f8def9..eefa4099c 100644 --- a/README.md +++ b/README.md @@ -73,8 +73,6 @@ Features Available :- const bsc = await factory.inner (Chain.BSC); const polygon = await factory.inner (Chain.POLYGON); const avax = await factory.inner (Chain.AVALANCHE); - const harmony = await factory.inner (Chain.HARMONY); - const celo = await factory.inner (Chain.CELO); const fantom = await factory.inner (Chain.FANTOM); const xdai = await factory.inner (Chain.XDAI); const elrond = await factory.inner(Chain.ELROND); From ac8e0a4113aa927b0be8a2913b0d2909bcc883af Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 19 Nov 2021 14:48:11 +0530 Subject: [PATCH 188/956] chore(lint): yarn format --- README.md | 174 ++++++++++++++++++++++------------------- package.json | 3 +- src/consts.ts | 22 +++--- src/erc721_metadata.ts | 34 ++++---- src/factory/cons.ts | 84 +++++++++++++------- src/factory/index.ts | 77 +++++++++++------- src/heartbeat/index.ts | 28 +++---- src/heartbeat/resp.ts | 22 +++--- src/helpers/chain.ts | 19 ++--- src/helpers/elrond.ts | 60 ++++++-------- src/helpers/tron.ts | 31 ++++---- src/helpers/web3.ts | 45 ++++------- 12 files changed, 316 insertions(+), 283 deletions(-) diff --git a/README.md b/README.md index eefa4099c..03548e124 100644 --- a/README.md +++ b/README.md @@ -18,116 +18,127 @@ Features Available :- ### 1. Import xp.network package into your project with the following command: - ``` - yarn add xp.network @elrondnetwork/erdjs ethers - ``` +``` +yarn add xp.network @elrondnetwork/erdjs ethers +``` - OR +OR + +``` +npm install xp.network @elrondnetwork/erdjs ethers +``` - ``` - npm install xp.network @elrondnetwork/erdjs ethers - ```
### 2. Import the dependencies - ```javascript - import { ChainFactoryConfigs, ChainFactory, - ElrondHelper, ElrondParams, - TronHelper, TronParams, - Web3Helper, Web3Params, - } from "xp.network/dist"; - // EVM chains compatible wallet: - import { Wallet } from "ethers"; - // Chanin name to chain nonce mapper: - import {Chain, Config} from 'xp.network/dist/consts'; - // Elrond provider: - import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; - - // Fetch the config for required networks i.e. Mainnet/Testnet - // Networks from the ChainFactoryConfigs namespace. You can also mix - // and match the configs to your heart's desire. - const mainnetConfig = ChainFactoryConfigs.MainNet; // You can also call the ChainFactoryConfigs.MainNet - - // Instantiate the factory by populating the function call with the above objects. - const factory = ChainFactory(Config, mainnetConfig()); - ``` +```javascript +import { + ChainFactoryConfigs, + ChainFactory, + ElrondHelper, + ElrondParams, + TronHelper, + TronParams, + Web3Helper, + Web3Params, +} from "xp.network/dist"; +// EVM chains compatible wallet: +import { Wallet } from "ethers"; +// Chanin name to chain nonce mapper: +import { Chain, Config } from "xp.network/dist/consts"; +// Elrond provider: +import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; + +// Fetch the config for required networks i.e. Mainnet/Testnet +// Networks from the ChainFactoryConfigs namespace. You can also mix +// and match the configs to your heart's desire. +const mainnetConfig = ChainFactoryConfigs.MainNet; // You can also call the ChainFactoryConfigs.MainNet + +// Instantiate the factory by populating the function call with the above objects. +const factory = ChainFactory(Config, mainnetConfig()); +``` +
- ### 3. Getting the signer object - ```javascript - // Dont forget to import Wallet from ethersjs. - import { Wallet } from "ethers"; - const signer = new Wallet( - "PRIVATE KEY HERE", - mainnetConfig().polygonParams?.provider - ); - ``` +### 3. Getting the signer object + +```javascript +// Dont forget to import Wallet from ethersjs. +import { Wallet } from "ethers"; +const signer = new Wallet( + "PRIVATE KEY HERE", + mainnetConfig().polygonParams?.provider +); +```
### 4. Getting the inner objects from this factory that can be used for transferring, minting, estimation of gas fees. - ```javascript - const ethereum = await factory.inner (Chain.ETHEREUM); - const bsc = await factory.inner (Chain.BSC); - const polygon = await factory.inner (Chain.POLYGON); - const avax = await factory.inner (Chain.AVALANCHE); - const fantom = await factory.inner (Chain.FANTOM); - const xdai = await factory.inner (Chain.XDAI); - const elrond = await factory.inner(Chain.ELROND); - const tron = await factory.inner (Chain.TRON); - ``` +```javascript +const ethereum = await factory.inner (Chain.ETHEREUM); +const bsc = await factory.inner (Chain.BSC); +const polygon = await factory.inner (Chain.POLYGON); +const avax = await factory.inner (Chain.AVALANCHE); +const fantom = await factory.inner (Chain.FANTOM); +const xdai = await factory.inner (Chain.XDAI); +const elrond = await factory.inner(Chain.ELROND); +const tron = await factory.inner (Chain.TRON); +``` +
### 5. Listing NFTs Owned by the sender. This operation does not depend on a wallet, since reading operations are free and, therefore, do not require signing. - ```javascript - // Since nftList returns a Promise it's a good idea to await it which requires an async function - (async () => { - // Await the list of NFTs before trying to use it - const nfts = await factory.nftList( - polygon, // The chain of interest - "0x...." // The public key of the NFT owner - ); - // Choosing an NFT to transfer: - const theChosenOne = nfts[0]; - // Checking the selected NFT object - console.log("My NFT #1", theChosenOne); - })(); - ``` +```javascript +// Since nftList returns a Promise it's a good idea to await it which requires an async function +(async () => { + // Await the list of NFTs before trying to use it + const nfts = await factory.nftList( + polygon, // The chain of interest + "0x...." // The public key of the NFT owner + ); + // Choosing an NFT to transfer: + const theChosenOne = nfts[0]; + // Checking the selected NFT object + console.log("My NFT #1", theChosenOne); +})(); +``` +
### 6. Approve accessing your NFT by the bridge smart contract + ```javascript // Since approveForMinter returns a Promise it's a good idea to await it which requires an async function (async () => { - // Await the result of the transaction before moving on to the next steps - const isApproved = await polygon.approveForMinter(theChosenOne, signer); - console.log("Is Approved:", isApproved) - + // Await the result of the transaction before moving on to the next steps + const isApproved = await polygon.approveForMinter(theChosenOne, signer); + console.log("Is Approved:", isApproved); })(); ``` +
### 7. Transferring an NFT - ```javascript - // Since transferNft returns a Promise it's a good idea to await it which requires an async function - (async () => { - // Await the result of the transaction before trying to use it - const result = await factory.transferNft( - polygon, // The Source Chain. - bsc, // The Destination Chain. - theChosenOne, // Or the NFT you have chosen. - signer, // Or tronlink or maiar. - "ADDRESS OF THE RECEIVER" // The address who you are transferring the NFT to. - ); - console.log(result) - })(); - ``` +```javascript +// Since transferNft returns a Promise it's a good idea to await it which requires an async function +(async () => { + // Await the result of the transaction before trying to use it + const result = await factory.transferNft( + polygon, // The Source Chain. + bsc, // The Destination Chain. + theChosenOne, // Or the NFT you have chosen. + signer, // Or tronlink or maiar. + "ADDRESS OF THE RECEIVER" // The address who you are transferring the NFT to. + ); + console.log(result); +})(); +```
@@ -191,18 +202,19 @@ This operation does not depend on a wallet, since reading operations are free an
- ## Troubleshooting +## Troubleshooting - In case you're using the library in a console application and getting errors, go to: - - node_modules/xpnet-nft-list/dist/nft-list/model/moralis/MoralisNftListService.js Now your line #7 looks like this (to be used in the FE): + ```javascript 7 const moralis_1 = __importDefault(require("moralis")); ``` Change it like so (for BE usage): + ```javascript 7 const moralis_1 = __importDefault(require("moralis/node")); ``` diff --git a/package.json b/package.json index 421ab37f4..827272391 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "url": "https://github.com/xp-network/bridge-ui-logics.git" }, "scripts": { - "build": "tsc -p tsconfig.json" + "build": "tsc -p tsconfig.json", + "format": "prettier . --write" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^4.31.0", diff --git a/src/consts.ts b/src/consts.ts index 6e14eb950..075f4857f 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -1,5 +1,9 @@ import { CrossChainHelper } from "."; -import { elrondHelperFactory, ElrondParams, ElrondHelper } from "./helpers/elrond"; +import { + elrondHelperFactory, + ElrondParams, + ElrondHelper, +} from "./helpers/elrond"; import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; @@ -16,7 +20,7 @@ export enum TestNetRpcUri { TRON = "https://api.shasta.trongrid.io/", CELO = "https://alfajores-forno.celo-testnet.org", HARMONY = "https://api.s0.b.hmny.io", - XDAI = "https://sokol.poa.network" + XDAI = "https://sokol.poa.network", } export enum MainNetRpcUri { @@ -30,7 +34,7 @@ export enum MainNetRpcUri { TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", HARMONY = "https://api.harmony.one", - XDAI = "https://rpc.xdaichain.com/" + XDAI = "https://rpc.xdaichain.com/", } export type ChainNonce = number & ThisType & ThisType

; @@ -189,13 +193,13 @@ export const CHAIN_INFO: ChainInfo = { constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.STAKE, validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], - } + }, }; export const Config = { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - moralisServer: "https://azz9akudh6cf.usemoralis.com:2053/server", - moralisAppId: "vt2JeuihhzyV9vgYbeAYO5BVSaCOdkAKr608XJOv", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com" + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + moralisServer: "https://azz9akudh6cf.usemoralis.com:2053/server", + moralisAppId: "vt2JeuihhzyV9vgYbeAYO5BVSaCOdkAKr608XJOv", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com", }; diff --git a/src/erc721_metadata.ts b/src/erc721_metadata.ts index 8d4fb4342..4389971c4 100644 --- a/src/erc721_metadata.ts +++ b/src/erc721_metadata.ts @@ -1,28 +1,28 @@ export type Erc721Attrs = { - trait_type: string, - value: string + trait_type: string; + value: string; }; export type Erc721Metadata = { - name: string, - description: string, - image: string, - attributes: Erc721Attrs[] + name: string; + description: string; + image: string; + attributes: Erc721Attrs[]; }; export type Erc721WrappedData = { - contract: string, - tokenId: string -} + contract: string; + tokenId: string; +}; export type ElrdWrappedData = { - tokenId: string, - nonce: string -} + tokenId: string; + nonce: string; +}; export type Erc721MetadataEx = Erc721Metadata & { - wrapped: T & { - origin: string, - original_uri: string - } -}; \ No newline at end of file + wrapped: T & { + origin: string; + original_uri: string; + }; +}; diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 7db9c1cdb..787ee4cad 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -1,41 +1,67 @@ -import { cachedExchangeRateRepo, ExchangeRateRepo, networkBatchExchangeRateRepo, NetworkModel } from "crypto-exchange-rate"; -import { ElrdNftListRepo, elrdNftListService, elrdRawTokenMapper, ethNftJMapper, EthNftJson, mockChainIdentMapper, moralisChainIdMapper, MoralisNftListRepo, moralisNftListService, moralisNftMapper, NftListRepo, nftListRepo, trxNftListService, TrxNftListService } from "xpnet-nft-list"; +import { + cachedExchangeRateRepo, + ExchangeRateRepo, + networkBatchExchangeRateRepo, + NetworkModel, +} from "crypto-exchange-rate"; +import { + ElrdNftListRepo, + elrdNftListService, + elrdRawTokenMapper, + ethNftJMapper, + EthNftJson, + mockChainIdentMapper, + moralisChainIdMapper, + MoralisNftListRepo, + moralisNftListService, + moralisNftMapper, + NftListRepo, + nftListRepo, + trxNftListService, + TrxNftListService, +} from "xpnet-nft-list"; //@ts-expect-error no types cope import TronWeb from "tronweb"; export function elrondNftList(proxy: string): ElrdNftListRepo { - return nftListRepo( - elrdNftListService(proxy), - elrdRawTokenMapper(), - mockChainIdentMapper() - ); + return nftListRepo( + elrdNftListService(proxy), + elrdRawTokenMapper(), + mockChainIdentMapper() + ); } -export function moralisNftList(server: string, appId: string, moralisSecret?: string): MoralisNftListRepo { - return nftListRepo( - moralisNftListService({ serverUrl: server, appId, moralisSecret }), - moralisNftMapper(), - moralisChainIdMapper() - ); +export function moralisNftList( + server: string, + appId: string, + moralisSecret?: string +): MoralisNftListRepo { + return nftListRepo( + moralisNftListService({ serverUrl: server, appId, moralisSecret }), + moralisNftMapper(), + moralisChainIdMapper() + ); } -export function tronListNft(tronWeb: TronWeb, tronScan: string, xpnftAddr: string): NftListRepo { - return nftListRepo( - trxNftListService(tronWeb, tronScan, xpnftAddr), - ethNftJMapper(), - mockChainIdentMapper() - ) +export function tronListNft( + tronWeb: TronWeb, + tronScan: string, + xpnftAddr: string +): NftListRepo { + return nftListRepo( + trxNftListService(tronWeb, tronScan, xpnftAddr), + ethNftJMapper(), + mockChainIdentMapper() + ); } export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { - const baseService = NetworkModel.batchExchangeRateService( - baseUrl - ); + const baseService = NetworkModel.batchExchangeRateService(baseUrl); - return cachedExchangeRateRepo( - networkBatchExchangeRateRepo( - baseService, - NetworkModel.exchangeRateDtoMapper() - ) - ); -} \ No newline at end of file + return cachedExchangeRateRepo( + networkBatchExchangeRateRepo( + baseService, + NetworkModel.exchangeRateDtoMapper() + ) + ); +} diff --git a/src/factory/index.ts b/src/factory/index.ts index 1b1e0f6c5..9e00f4126 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -2,7 +2,7 @@ import { ElrondHelper, ElrondParams } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, ChainNonce, CHAIN_INFO } from "../consts"; -export * from "./factories" +export * from "./factories"; import { ChainNonceGet, @@ -17,15 +17,19 @@ import { import BigNumber from "bignumber.js"; import axios from "axios"; -import { elrondNftList, exchangeRateRepo, moralisNftList, tronListNft } from "./cons"; +import { + elrondNftList, + exchangeRateRepo, + moralisNftList, + tronListNft, +} from "./cons"; import { Address } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; -type NftUriChain = ChainNonceGet & - WrappedNftCheck; +type NftUriChain = ChainNonceGet & WrappedNftCheck; type FullChain = TransferNftForeign< Signer, @@ -105,7 +109,7 @@ export type ChainFactory = { receiver: string ): Promise; /** - * + * * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. * @param params : New Params to be set. */ @@ -138,12 +142,12 @@ export interface ChainParams { * @field tronScanUri: The URI of the tron scan service. */ export interface AppConfig { - exchangeRateUri: string, - heartbeatUri: string, - moralisServer: string, - moralisAppId: string, - tronScanUri: string, - moralisSecret?: string, + exchangeRateUri: string; + heartbeatUri: string; + moralisServer: string; + moralisAppId: string; + tronScanUri: string; + moralisSecret?: string; } function mapNonceToParams( @@ -177,7 +181,7 @@ function mapNonceToParams( */ export function ChainFactory( appConfig: AppConfig, - chainParams: Partial, + chainParams: Partial ): ChainFactory { let map = new Map(); let cToP = mapNonceToParams(chainParams); @@ -186,13 +190,19 @@ export function ChainFactory( const remoteExchangeRate = exchangeRateRepo(appConfig.exchangeRateUri); - const elrondNftRepo = elrondNftList(chainParams.elrondParams?.node_uri || ''); - const moralisNftRepo = moralisNftList(appConfig.moralisServer, appConfig.moralisAppId, appConfig.moralisSecret); - const tronNftRepo = chainParams.tronParams && tronListNft( - chainParams.tronParams.provider, - appConfig.tronScanUri, - chainParams.tronParams.erc721_addr + const elrondNftRepo = elrondNftList(chainParams.elrondParams?.node_uri || ""); + const moralisNftRepo = moralisNftList( + appConfig.moralisServer, + appConfig.moralisAppId, + appConfig.moralisSecret ); + const tronNftRepo = + chainParams.tronParams && + tronListNft( + chainParams.tronParams.provider, + appConfig.tronScanUri, + chainParams.tronParams.erc721_addr + ); const nftlistRest = axios.create({ baseURL: "https://nft-list.herokuapp.com/", @@ -256,15 +266,17 @@ export function ChainFactory( async function bridgeStatus(): Promise<{ [x: number]: "alive" | "dead" }> { const res = await heartbeatRepo.status(); return Object.fromEntries( - Object.entries(res) - .map(([c, s]) => [c, s.bridge_alive ? "alive" : "dead"]) + Object.entries(res).map(([c, s]) => [ + c, + s.bridge_alive ? "alive" : "dead", + ]) ); } async function requireBridge(chains: number[]): Promise { const status = await heartbeatRepo.status(); let deadChain: number | undefined; - const alive = chains.every(c => { + const alive = chains.every((c) => { const stat = status[c].bridge_alive; if (!stat) { deadChain = c; @@ -288,17 +300,28 @@ export function ChainFactory( let res: NftInfo[]; switch (chain.getNonce()) { case Chain.ELROND: - res = await elrondNftRepo.nfts(BigInt(chain.getNonce()), new Address(owner)) as any as NftInfo[]; + res = (await elrondNftRepo.nfts( + BigInt(chain.getNonce()), + new Address(owner) + )) as any as NftInfo[]; break; case Chain.TRON: - res = await tronNftRepo!.nfts(BigInt(0x9), owner) as any as NftInfo[]; + res = (await tronNftRepo!.nfts( + BigInt(0x9), + owner + )) as any as NftInfo[]; break; case Chain.FANTOM: case Chain.XDAI: - res = await nftlistRest.get(`/web3/${chain.getNonce()}/${owner}`).then(v => v.data); + res = await nftlistRest + .get(`/web3/${chain.getNonce()}/${owner}`) + .then((v) => v.data); break; default: - res = await moralisNftRepo.nfts(BigInt(chain.getNonce()), owner) as any as NftInfo[]; + res = (await moralisNftRepo.nfts( + BigInt(chain.getNonce()), + owner + )) as any as NftInfo[]; break; } @@ -310,8 +333,8 @@ export function ChainFactory( if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); } - if (!await toChain.validateAddress(receiver)) { - throw Error('invalid address'); + if (!(await toChain.validateAddress(receiver))) { + throw Error("invalid address"); } if (fromChain.isWrappedNft(nft)) { const meta = await axios.get>(nft.uri); diff --git a/src/heartbeat/index.ts b/src/heartbeat/index.ts index 683b6a829..ec022a78f 100644 --- a/src/heartbeat/index.ts +++ b/src/heartbeat/index.ts @@ -2,20 +2,18 @@ import axios from "axios"; import { StatusResp } from "./resp"; export type BridgeHeartbeat = { - status(): Promise -} + status(): Promise; +}; -export function bridgeHeartbeat( - baseURL: string -): BridgeHeartbeat { - const api = axios.create({ - baseURL - }); +export function bridgeHeartbeat(baseURL: string): BridgeHeartbeat { + const api = axios.create({ + baseURL, + }); - return { - async status() { - const res = await api.get("/status"); - return res.data; - } - } -} \ No newline at end of file + return { + async status() { + const res = await api.get("/status"); + return res.data; + }, + }; +} diff --git a/src/heartbeat/resp.ts b/src/heartbeat/resp.ts index 96e37a58a..68263169d 100644 --- a/src/heartbeat/resp.ts +++ b/src/heartbeat/resp.ts @@ -1,18 +1,18 @@ type DeathReason = { - component: "node" | "validator" | "balance" - error: string; -} + component: "node" | "validator" | "balance"; + error: string; +}; type ValidatorStatus = { - status: "alive" | "dead"; - death_reason?: DeathReason; -} + status: "alive" | "dead"; + death_reason?: DeathReason; +}; type ChainStatus = { - bridge_alive: boolean; - validators: ValidatorStatus[] -} + bridge_alive: boolean; + validators: ValidatorStatus[]; +}; export type StatusResp = { - [chainNonce: string]: ChainStatus -} \ No newline at end of file + [chainNonce: string]: ChainStatus; +}; diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 6fa106fcd..cba3b5235 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -59,12 +59,7 @@ export interface UnfreezeForeign { * * @returns Transaction and the Identifier of this action to track the status */ -export interface TransferNftForeign< - Signer, - ForeignAddr, - Balance, - RawNft -> { +export interface TransferNftForeign { transferNftToForeign( sender: Signer, chain_nonce: number, @@ -84,12 +79,7 @@ export interface TransferNftForeign< * * @returns Transaction and the Identifier of this action to track the status */ -export interface UnfreezeForeignNft< - Signer, - ForeignAddr, - Balance, - RawNft -> { +export interface UnfreezeForeignNft { unfreezeWrappedNft( sender: Signer, to: ForeignAddr, @@ -151,7 +141,10 @@ export interface ValidateAddress { } export interface EstimateTxFees { - estimateValidateTransferNft(to: string, metadataUri: string): Promise; + estimateValidateTransferNft( + to: string, + metadataUri: string + ): Promise; estimateValidateUnfreezeNft( to: string, metadataUri: string diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index a3c4a4e5f..45e6e6f35 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -23,7 +23,7 @@ import { TransactionHash, TransactionPayload, U64Value, - WalletConnectProvider + WalletConnectProvider, } from "@elrondnetwork/erdjs"; import axios from "axios"; import BigNumber from "bignumber.js"; @@ -39,12 +39,7 @@ import { WrappedNftCheck, } from "./chain"; import { Base64 } from "js-base64"; -import { - ChainNonceGet, - EstimateTxFees, - NftInfo, - ValidateAddress, -} from ".."; +import { ChainNonceGet, EstimateTxFees, NftInfo, ValidateAddress } from ".."; import { NftMintArgs } from ".."; type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; @@ -174,7 +169,11 @@ export interface SetESDTRoles { * @param token ESDT Identifier * @param roles Roles to set */ - setESDTRole(sender: ElrondSigner, token: string, roles: [ESDTRole]): Promise; + setESDTRole( + sender: ElrondSigner, + token: string, + roles: [ESDTRole] + ): Promise; } /** @@ -189,18 +188,8 @@ export type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & TransferForeign & UnfreezeForeign & - TransferNftForeign< - ElrondSigner, - string, - BigNumber, - EsdtNftInfo - > & - UnfreezeForeignNft< - ElrondSigner, - string, - BigNumber, - EsdtNftInfo - > & + TransferNftForeign & + UnfreezeForeignNft & IssueESDTNFT & MintNft & { mintableEsdts(address: Address): Promise; @@ -254,10 +243,7 @@ export const elrondHelperFactory: ( return account; }; - const signAndSend = async ( - signer: ElrondSigner, - tx: Transaction - ) => { + const signAndSend = async (signer: ElrondSigner, tx: Transaction) => { const acc = await syncAccount(signer); tx.setNonce(acc.nonce); let stx: Transaction; @@ -587,7 +573,7 @@ export const elrondHelperFactory: ( } async function getAddress(sender: ElrondSigner): Promise

{ - return new Address(await sender.getAddress()) + return new Address(await sender.getAddress()); } return { @@ -705,8 +691,14 @@ export const elrondHelperFactory: ( const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; return Buffer.from(tickerh, "hex").toString("utf-8"); }, - async mintNft(owner: ElrondSigner, args: NftMintArgs): Promise { - const txu = unsignedMintNftTxn(await getAddress(owner), args as NftIssueArgs); + async mintNft( + owner: ElrondSigner, + args: NftMintArgs + ): Promise { + const txu = unsignedMintNftTxn( + await getAddress(owner), + args as NftIssueArgs + ); return await signAndSend(owner, txu); }, @@ -736,10 +728,7 @@ export const elrondHelperFactory: ( getNonce() { return elrondParams.nonce; }, - async estimateValidateTransferNft( - _toAddress: string, - _nftUri: string - ) { + async estimateValidateTransferNft(_toAddress: string, _nftUri: string) { return estimateGas(NFT_TRANSFER_COST, elrondParams.validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, async estimateValidateUnfreezeNft(_to: string, _nftUri: string) { @@ -753,13 +742,14 @@ export const elrondHelperFactory: ( async validateAddress(adr: string) { try { new Address(adr); - return await providerRest.get(`/address/${adr}/esdt`) - .then(_ => true) - .catch(_ => false); + return await providerRest + .get(`/address/${adr}/esdt`) + .then((_) => true) + .catch((_) => false); } catch (_) { return false; } - } + }, }; }; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index bab6a2960..3b43614a3 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -28,10 +28,7 @@ import { XPNft__factory, } from "xpnet-web3-contracts"; import { Approve, IsApproved, NftMintArgs, ValidateAddress } from ".."; -import { - ChainNonceGet, - NftInfo -} from ".."; +import { ChainNonceGet, NftInfo } from ".."; import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; // Uses default private key in provider if sender is undefinedd @@ -87,7 +84,8 @@ export type TronHelper = BaseTronHelper & EstimateTxFees & ChainNonceGet & Approve & - ValidateAddress & IsApproved; + ValidateAddress & + IsApproved; export async function baseTronHelperFactory( provider: TronWeb @@ -286,7 +284,7 @@ export async function tronHelperFactory( id.native.contract ); const approvedAddress = await erc.getApproved(id.native.tokenId).call({ - from: tronParams.provider.defaultAddress.base58 + from: tronParams.provider.defaultAddress.base58, }); if (approvedAddress === minter_addr) { return true; @@ -308,10 +306,7 @@ export async function tronHelperFactory( return true; } - await erc.approve( - minter_addr, - id.native.tokenId - ).send(); + await erc.approve(minter_addr, id.native.tokenId).send(); return true; }; @@ -320,7 +315,10 @@ export async function tronHelperFactory( ...base, approveForMinter, isWrappedNft(nft) { - return nft.native.contract.toLowerCase() === tronParams.erc721_addr.toLowerCase(); + return ( + nft.native.contract.toLowerCase() === + tronParams.erc721_addr.toLowerCase() + ); }, isApprovedForMinter, async transferNativeToForeign( @@ -431,20 +429,25 @@ export async function tronHelperFactory( to: string, nftUri: string ): Promise { - const wrappedData = await axios.get>(nftUri); + const wrappedData = await axios.get>( + nftUri + ); return await estimateGas( tronParams.validators, "validateUnfreezeNft(uint128,address,uint256,address)", [ { type: "uint128", value: randomAction() }, { type: "address", value: to }, - { type: "uint256", value: EthBN.from(wrappedData.data.wrapped.tokenId) }, + { + type: "uint256", + value: EthBN.from(wrappedData.data.wrapped.tokenId), + }, { type: "address", value: wrappedData.data.wrapped.contract }, ] ); }, async validateAddress(adr: string): Promise { return provider.isAddress(adr); - } + }, }; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index cedc36505..b263ff182 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -34,12 +34,7 @@ import { XPNet__factory, } from "xpnet-web3-contracts"; import { Base64 } from "js-base64"; -import { - ChainNonceGet, - EstimateTxFees, - NftInfo, - ValidateAddress, -} from ".."; +import { ChainNonceGet, EstimateTxFees, NftInfo, ValidateAddress } from ".."; import { NftMintArgs } from ".."; import axios from "axios"; import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; @@ -110,19 +105,9 @@ export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & - TransferNftForeign< - Signer, - string, - BigNumber, - EthNftInfo - > & + TransferNftForeign & UnfreezeForeign & - UnfreezeForeignNft< - Signer, - string, - BigNumber, - EthNftInfo - > & + UnfreezeForeignNft & WrappedNftCheck & EstimateTxFees & ChainNonceGet & @@ -230,7 +215,7 @@ export async function web3HelperFactory( id: NftInfo, signer: Signer ) => { - const erc = UserNftMinter__factory.connect(id.native.contract, signer) + const erc = UserNftMinter__factory.connect(id.native.contract, signer); const approvedAddress = await erc.getApproved(id.native.tokenId); if (approvedAddress === minter_addr) { return true; @@ -238,20 +223,14 @@ export async function web3HelperFactory( return false; }; - const approveForMinter = async ( - id: NftInfo, - sender: Signer - ) => { + const approveForMinter = async (id: NftInfo, sender: Signer) => { const isApproved = await isApprovedForMinter(id, sender); - const erc = UserNftMinter__factory.connect(id.native.contract, sender) + const erc = UserNftMinter__factory.connect(id.native.contract, sender); if (isApproved) { return true; } - const receipt = await erc.approve( - minter_addr, - id.native.tokenId - ); + const receipt = await erc.approve(minter_addr, id.native.tokenId); await receipt.wait(); return true; }; @@ -272,7 +251,9 @@ export async function web3HelperFactory( return new BigNumber(bal.toString()); }, isWrappedNft(nft) { - return nft.native.contract.toLowerCase() === params.erc721_addr.toLowerCase(); + return ( + nft.native.contract.toLowerCase() === params.erc721_addr.toLowerCase() + ); }, async balanceWrappedBatch( address: string, @@ -363,7 +344,9 @@ export async function web3HelperFactory( to: string, nftUri: string ): Promise { - const wrappedData = await axios.get>(nftUri); + const wrappedData = await axios.get>( + nftUri + ); const utx = await minter.populateTransaction.validateUnfreezeNft( randomAction(), to, @@ -375,6 +358,6 @@ export async function web3HelperFactory( }, validateAddress(adr) { return Promise.resolve(ethers.utils.isAddress(adr)); - } + }, }; } From fe2b65d9c0a67bc47b2b01267ec3b8ec17e8e2f6 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 19 Nov 2021 16:03:17 +0530 Subject: [PATCH 189/956] chore(factory): make mint return the txn receipt --- src/factory/index.ts | 84 ++++++++++++++++++++++++++++++++++++++----- src/helpers/elrond.ts | 11 +++--- src/helpers/tron.ts | 7 ++-- src/helpers/web3.ts | 7 ++-- 4 files changed, 88 insertions(+), 21 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 9e00f4126..c2298d273 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -1,7 +1,14 @@ import { ElrondHelper, ElrondParams } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; -import { Chain, ChainNonce, CHAIN_INFO } from "../consts"; +import { + Chain, + ChainNonce, + CHAIN_INFO, + ElrondNonce, + TronNonce, + Web3Nonce, +} from "../consts"; export * from "./factories"; import { @@ -23,9 +30,10 @@ import { moralisNftList, tronListNft, } from "./cons"; -import { Address } from "@elrondnetwork/erdjs/out"; +import { Address, UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; +import { Wallet } from "ethers"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -81,11 +89,11 @@ export type ChainFactory = { * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar defi wallet. * @param args: {@link NftMintArgs} Arguments to mint the nft. Contract is must for web3 and tron. Identifier is must for elrond. */ - mint( - chain: MintNft, + mint( + chain: MintNft, owner: Signer, args: NftMintArgs - ): Promise; + ): Promise; /** * Lists all the NFTs on the chain owner by {@param owner}. * @param chain: {@link NftUriChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. @@ -114,6 +122,8 @@ export type ChainFactory = { * @param params : New Params to be set. */ updateParams(nonce: ChainNonce, params: TP): void; + nonceToChainNonce(nonce: number): ElrondNonce | TronNonce | Web3Nonce; + pkeyToSigner(nonce: number, key: string): Wallet | UserSigner | string; }; /** @@ -288,7 +298,65 @@ export function ChainFactory( } } + function nonceToChainNonce( + nonce: number + ): ElrondNonce | Web3Nonce | TronNonce { + switch (nonce) { + case 2: { + return Chain.ELROND; + } + case 3: { + return Chain.HECO; + } + case 4: { + return Chain.BSC; + } + case 5: { + return Chain.ETHEREUM; + } + case 6: { + return Chain.AVALANCHE; + } + case 7: { + return Chain.POLYGON; + } + case 8: { + return Chain.FANTOM; + } + case 9: { + return Chain.TRON; + } + case 11: { + return Chain.CELO; + } + case 12: { + return Chain.HARMONY; + } + case 14: { + return Chain.XDAI; + } + default: { + throw Error(`unknown chain ${nonce}`); + } + } + } + return { + nonceToChainNonce, + pkeyToSigner(nonce, key) { + let chain = nonceToChainNonce(nonce); + switch (chain) { + case Chain.ELROND: { + return UserSigner.fromPem(key); + } + case Chain.TRON: { + return key; + } + default: { + return new Wallet(key); + } + } + }, estimateFees, inner, bridgeStatus, @@ -360,11 +428,11 @@ export function ChainFactory( } }, mint: async ( - chain: MintNft, + chain: MintNft, owner: Signer, args: NftMintArgs - ): Promise => { - return chain.mintNft(owner, args); + ): Promise => { + return await chain.mintNft(owner, args); }, }; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 45e6e6f35..1415d3fa0 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -191,7 +191,7 @@ export type ElrondHelper = BalanceCheck & TransferNftForeign & UnfreezeForeignNft & IssueESDTNFT & - MintNft & { + MintNft & { mintableEsdts(address: Address): Promise; } & WrappedNftCheck & ChainNonceGet & @@ -691,16 +691,13 @@ export const elrondHelperFactory: ( const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; return Buffer.from(tickerh, "hex").toString("utf-8"); }, - async mintNft( - owner: ElrondSigner, - args: NftMintArgs - ): Promise { + async mintNft(owner: ElrondSigner, args: NftMintArgs): Promise { const txu = unsignedMintNftTxn( await getAddress(owner), args as NftIssueArgs ); - - return await signAndSend(owner, txu); + const tx = await signAndSend(owner, txu); + return tx.getHash().toString(); }, async mintableEsdts(address: Address): Promise { const res = await providerRest.get( diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 3b43614a3..357d697fa 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -46,7 +46,7 @@ export type MinterRes = { }; export type BaseTronHelper = BalanceCheck & - MintNft & { + MintNft & { /** * * Deploy an ERC721 user minter smart contract @@ -131,13 +131,14 @@ export async function baseTronHelperFactory( }; return { - async mintNft(owner: TronSender, options: NftMintArgs): Promise { + async mintNft(owner: TronSender, options: NftMintArgs): Promise { setSigner(owner); const erc = await provider.contract( UserNftMinter__factory.abi, options.contract ); - await erc.mint(options.uris[0]).send(); + const res = await erc.mint(options.uris[0]).send(); + return res; }, async balance(address: string): Promise { const balance = await provider.trx.getBalance(address); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index b263ff182..ef5b698a0 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -87,7 +87,7 @@ export type BaseWeb3Helper = BalanceCheck & * @argument signer owner of the smart contract * @argument args See [[MintArgs]] */ - MintNft & { + MintNft & { /** * * Deploy an ERC721 smart contract @@ -141,11 +141,12 @@ export async function baseWeb3HelperFactory( async mintNft( owner: Signer, { contract, uris }: NftMintArgs - ): Promise { + ): Promise { const erc721 = UserNftMinter__factory.connect(contract!, owner); const txm = await erc721.mint(uris[0]); - return await txm.wait(); + const receipt = await txm.wait(); + return receipt.transactionHash; }, }; } From 647e38c8e08814b97676a5e060c3586a8b9f2177 Mon Sep 17 00:00:00 2001 From: VKint <82875319+VKint@users.noreply.github.com> Date: Fri, 19 Nov 2021 15:23:26 +0200 Subject: [PATCH 190/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index fc4cd7279..0268d5d3d 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -209,9 +209,9 @@ export namespace ChainFactoryConfigs { }, xDaiParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), - minter_addr: "0xcE0066b1008237625dDDBE4a751827de037E53D2", - erc1155_addr: "0x7B4f352Cd40114f12e82fC675b5BA8C7582FC513", - erc721_addr: "0xAdE429ba898c34722e722415D722A70a297cE3a2", + minter_addr: "0x14fb9d669d4ddf712f1c56Ba7C54FF82D9be6377", + erc1155_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", + erc721_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", validators: EVM_VALIDATORS, nonce: Chain.XDAI, }, From 29a09fe18340413f55fce60ca4762c5d1381dc6b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 20 Nov 2021 15:20:39 +0530 Subject: [PATCH 191/956] feat(factory): add method to extract txn and action id --- src/factory/index.ts | 8 ++++++++ src/helpers/chain.ts | 7 ++++--- src/helpers/elrond.ts | 20 +++++++++++++------- src/helpers/tron.ts | 12 ++++++++++-- src/helpers/web3.ts | 19 +++++++++++++------ 5 files changed, 48 insertions(+), 18 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index c2298d273..d7e29a7a0 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -14,6 +14,7 @@ export * from "./factories"; import { ChainNonceGet, EstimateTxFees, + ExtractTxn, MintNft, NftInfo, TransferNftForeign, @@ -124,6 +125,10 @@ export type ChainFactory = { updateParams(nonce: ChainNonce, params: TP): void; nonceToChainNonce(nonce: number): ElrondNonce | TronNonce | Web3Nonce; pkeyToSigner(nonce: number, key: string): Wallet | UserSigner | string; + getDestinationTransaction( + hash: Txn, + nonce: ExtractTxn + ): Promise<[string, string]>; }; /** @@ -342,6 +347,9 @@ export function ChainFactory( } return { + getDestinationTransaction(hash: T, chain: ExtractTxn) { + return chain.extractTxn(hash); + }, nonceToChainNonce, pkeyToSigner(nonce, key) { let chain = nonceToChainNonce(nonce); diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index cba3b5235..edd976063 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,6 +1,3 @@ -import { Signer } from "ethers"; -import { UserNftMinter } from "xpnet-web3-contracts"; - /** * NFT Info */ @@ -158,3 +155,7 @@ export function ConcurrentSendError(): Error { export interface ChainNonceGet { getNonce(): number; } + +export interface ExtractTxn { + extractTxn(txn: Txn): Promise<[string, string]>; +} diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 1415d3fa0..fda25815a 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -39,7 +39,13 @@ import { WrappedNftCheck, } from "./chain"; import { Base64 } from "js-base64"; -import { ChainNonceGet, EstimateTxFees, NftInfo, ValidateAddress } from ".."; +import { + ChainNonceGet, + EstimateTxFees, + ExtractTxn, + NftInfo, + ValidateAddress, +} from ".."; import { NftMintArgs } from ".."; type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; @@ -195,7 +201,8 @@ export type ElrondHelper = BalanceCheck & mintableEsdts(address: Address): Promise; } & WrappedNftCheck & ChainNonceGet & - ValidateAddress; + ValidateAddress & + ExtractTxn; /** * Create an object implementing cross chain utilities for elrond @@ -551,21 +558,19 @@ export const elrondHelperFactory: ( }); }; - async function extractId( - tx: Transaction - ): Promise<[Transaction, EventIdent]> { + async function extractTxn(tx: Transaction): Promise<[string, string]> { let err; await tx.awaitExecuted(provider).catch((e) => (err = e)); if (err) { await new Promise((r) => setTimeout(r, 3000)); - return extractId(tx); + return extractTxn(tx); } const txr = await transactionResult(tx.getHash()); const id = filterEventId(txr["smartContractResults"]); - return [tx, id.toString()]; + return [tx.getHash().toString(), id.toString()]; } function estimateGas(base_fees: BigNumber, cnt: number) { @@ -635,6 +640,7 @@ export const elrondHelperFactory: ( return tx.getHash().toString(); }, doEgldSwap, + extractTxn, async transferNftToForeign( sender: ElrondSigner, chain_nonce: number, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 357d697fa..6951fb2b7 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -27,7 +27,13 @@ import { XPNet__factory, XPNft__factory, } from "xpnet-web3-contracts"; -import { Approve, IsApproved, NftMintArgs, ValidateAddress } from ".."; +import { + Approve, + ExtractTxn, + IsApproved, + NftMintArgs, + ValidateAddress, +} from ".."; import { ChainNonceGet, NftInfo } from ".."; import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; @@ -85,7 +91,8 @@ export type TronHelper = BaseTronHelper & ChainNonceGet & Approve & ValidateAddress & - IsApproved; + IsApproved & + ExtractTxn; export async function baseTronHelperFactory( provider: TronWeb @@ -314,6 +321,7 @@ export async function tronHelperFactory( return { ...base, + extractTxn, approveForMinter, isWrappedNft(nft) { return ( diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index ef5b698a0..a2f60b3e0 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -34,7 +34,13 @@ import { XPNet__factory, } from "xpnet-web3-contracts"; import { Base64 } from "js-base64"; -import { ChainNonceGet, EstimateTxFees, NftInfo, ValidateAddress } from ".."; +import { + ChainNonceGet, + EstimateTxFees, + ExtractTxn, + NftInfo, + ValidateAddress, +} from ".."; import { NftMintArgs } from ".."; import axios from "axios"; import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; @@ -113,7 +119,8 @@ export type Web3Helper = BaseWeb3Helper & ChainNonceGet & IsApproved & Approve & - ValidateAddress; + ValidateAddress & + ExtractTxn; /** * Create an object implementing minimal utilities for a web3 chain @@ -176,9 +183,8 @@ export async function web3HelperFactory( const erc1155 = XPNet__factory.connect(erc1155_addr, provider); async function extractTxn( - txr: TransactionResponse, - _evName: string - ): Promise<[TransactionReceipt, string]> { + txr: TransactionResponse + ): Promise<[string, string]> { const receipt = await txr.wait(); const log = receipt.logs.find((log) => log.address === minter.address); if (log === undefined) { @@ -187,7 +193,7 @@ export async function web3HelperFactory( const evdat = minter.interface.parseLog(log); const action_id: string = evdat.args[0].toString(); - return [receipt, action_id]; + return [receipt.transactionHash, action_id]; } const randomAction = () => @@ -242,6 +248,7 @@ export async function web3HelperFactory( ...base, approveForMinter, isApprovedForMinter, + extractTxn, getNonce: () => params.nonce, async balanceWrapped( address: string, From 3b2b2e4b79fb0ae642ab2a12656504b62acbd19f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 20 Nov 2021 15:42:05 +0530 Subject: [PATCH 192/956] chore(transfer): return txns instead of just hash --- src/factory/index.ts | 27 ++++++++++++++------------- src/helpers/chain.ts | 24 ++++++++++++++++++------ src/helpers/elrond.ts | 30 +++++++++++++++++++++--------- src/helpers/tron.ts | 9 +++++---- src/helpers/web3.ts | 19 ++++++++++--------- 5 files changed, 68 insertions(+), 41 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 0d351dad6..ad9eec663 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -40,13 +40,14 @@ export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; type NftUriChain = ChainNonceGet & WrappedNftCheck; -type FullChain = TransferNftForeign< +type FullChain = TransferNftForeign< Signer, string, BigNumber, - RawNft + RawNft, + Resp > & - UnfreezeForeignNft & + UnfreezeForeignNft & EstimateTxFees & NftUriChain & ValidateAddress; @@ -76,14 +77,14 @@ export type ChainFactory = { * @param sender {@link Sender} The owner of the NFT. * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. */ - transferNft( - fromChain: FullChain, - toChain: FullChain, + transferNft( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, sender: SignerF, receiver: string, fee?: BigNumber - ): Promise; + ): Promise; /** * Mints an NFT on the chain. * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. @@ -111,9 +112,9 @@ export type ChainFactory = { * @param nft: {@link NftInfo} The NFT that has to be transferred. Generally comes from the `nftList` method of the factory. * @param receiver: Address of the receiver of the NFT in raw string.. */ - estimateFees( - fromChain: FullChain, - toChain: FullChain, + estimateFees( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, receiver: string ): Promise; @@ -247,9 +248,9 @@ export function ChainFactory( .times(CHAIN_INFO[fromChain].decimals) .integerValue(BigNumber.ROUND_CEIL); } - const estimateFees = async ( - fromChain: FullChain, - toChain: FullChain, + const estimateFees = async ( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, receiver: string ) => { diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index edd976063..a58c3ad70 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -16,14 +16,14 @@ export type NftInfo = { * * @returns Transaction and the Identifier of this action to track the status */ -export interface TransferForeign { +export interface TransferForeign { transferNativeToForeign( sender: Signer, chain_nonce: number, to: ForeignAddr, value: Balance, txFees: Balance - ): Promise; + ): Promise; } /** @@ -56,14 +56,20 @@ export interface UnfreezeForeign { * * @returns Transaction and the Identifier of this action to track the status */ -export interface TransferNftForeign { +export interface TransferNftForeign< + Signer, + ForeignAddr, + Balance, + RawNft, + Resp +> { transferNftToForeign( sender: Signer, chain_nonce: number, to: ForeignAddr, id: NftInfo, txFees: Balance - ): Promise; + ): Promise; } /** @@ -76,13 +82,19 @@ export interface TransferNftForeign { * * @returns Transaction and the Identifier of this action to track the status */ -export interface UnfreezeForeignNft { +export interface UnfreezeForeignNft< + Signer, + ForeignAddr, + Balance, + RawNft, + Resp +> { unfreezeWrappedNft( sender: Signer, to: ForeignAddr, id: NftInfo, txFees: Balance - ): Promise; + ): Promise; } /** diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index fda25815a..cfd5d657b 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -192,10 +192,22 @@ type EventIdent = string; */ export type ElrondHelper = BalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & + TransferForeign & UnfreezeForeign & - TransferNftForeign & - UnfreezeForeignNft & + TransferNftForeign< + ElrondSigner, + string, + BigNumber, + EsdtNftInfo, + Transaction + > & + UnfreezeForeignNft< + ElrondSigner, + string, + BigNumber, + EsdtNftInfo, + Transaction + > & IssueESDTNFT & MintNft & { mintableEsdts(address: Address): Promise; @@ -611,7 +623,7 @@ export const elrondHelperFactory: ( to: string, value: EasyBalance, txFees: EasyBalance - ): Promise { + ): Promise { const txu = unsignedTransferTxn( chain_nonce, to, @@ -619,7 +631,7 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return tx.getHash().toString(); + return tx; }, async unfreezeWrapped( sender: ElrondSigner, @@ -647,7 +659,7 @@ export const elrondHelperFactory: ( to: string, info: NftInfo, txFees: EasyBalance - ): Promise { + ): Promise { const txu = unsignedTransferNftTxn( chain_nonce, await getAddress(sender), @@ -657,14 +669,14 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return tx.getHash().toString(); + return tx; }, async unfreezeWrappedNft( sender: ElrondSigner, to: string, nft: NftInfo, txFees: EasyBalance - ): Promise { + ): Promise { const txu = unsignedUnfreezeNftTxn( await getAddress(sender), to, @@ -673,7 +685,7 @@ export const elrondHelperFactory: ( ); const tx = await signAndSend(sender, txu); - return tx.getHash().toString(); + return tx; }, unsignedIssueESDTNft, async issueESDTNft( diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 6951fb2b7..3f0f28ffd 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -36,6 +36,7 @@ import { } from ".."; import { ChainNonceGet, NftInfo } from ".."; import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; +import { Transaction } from "ethers"; // Uses default private key in provider if sender is undefinedd type TronSender = string | undefined; @@ -80,12 +81,12 @@ export type BaseTronHelper = BalanceCheck & export type TronHelper = BaseTronHelper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & + TransferForeign & // TODO: Use TX Fees - TransferNftForeign & + TransferNftForeign & // TODO: Use TX Fees UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & WrappedNftCheck & EstimateTxFees & ChainNonceGet & @@ -368,7 +369,7 @@ export async function tronHelperFactory( to: string, id: NftInfo, txFees: BigNumber - ): Promise { + ): Promise { setSigner(sender); const res = await minter .withdrawNft(to, id.native.tokenId) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index a2f60b3e0..a3162df6b 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -21,6 +21,7 @@ import { Wallet, ContractTransaction, ethers, + Transaction, } from "ethers"; import { TransactionReceipt, @@ -110,10 +111,10 @@ export type BaseWeb3Helper = BalanceCheck & export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & - TransferNftForeign & + TransferForeign & + TransferNftForeign & UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & WrappedNftCheck & EstimateTxFees & ChainNonceGet & @@ -282,13 +283,13 @@ export async function web3HelperFactory( to: string, value: BigNumber, txFees: BigNumber - ): Promise { + ): Promise { const val = EthBN.from(value.toString()); const totalVal = val.add(EthBN.from(txFees.toString())); const res = await minter.connect(sender).freeze(chain_nonce, to, val, { value: totalVal, }); - return res.hash; + return res; }, async transferNftToForeign( sender: Signer, @@ -296,7 +297,7 @@ export async function web3HelperFactory( to: string, id: NftInfo, txFees: BigNumber - ): Promise { + ): Promise { await approveForMinter(id, sender); const txr = await minter @@ -305,7 +306,7 @@ export async function web3HelperFactory( value: EthBN.from(txFees.toString()), }); - return txr.hash; + return txr; }, async unfreezeWrapped( sender: Signer, @@ -327,14 +328,14 @@ export async function web3HelperFactory( to: string, id: NftInfo, txFees: BigNumber - ): Promise { + ): Promise { const res = await minter .connect(sender) .withdrawNft(to, id.native.tokenId, { value: EthBN.from(txFees.toString()), }); - return res.hash; + return res; }, async estimateValidateTransferNft( to: string, From 603a10558870b9116eab33dd75e78cf018ca516a Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 21 Nov 2021 22:37:37 +0530 Subject: [PATCH 193/956] initial algorand support --- package.json | 3 +- src/consts.ts | 8 +- src/factory/cons.ts | 12 ++- src/factory/index.ts | 7 ++ src/helpers/algorand.ts | 211 ++++++++++++++++++++++++++++++++++++++++ yarn.lock | 123 +++++++++++++++++++++-- 6 files changed, 351 insertions(+), 13 deletions(-) create mode 100644 src/helpers/algorand.ts diff --git a/package.json b/package.json index 827272391..24758e2f2 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ }, "dependencies": { "@elrondnetwork/erdjs": "^8.0.1-alpha.8", + "algosdk": "^1.12.0", "axios": "^0.21.1", "bignumber.js": "^9.0.1", "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", @@ -34,7 +35,7 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.0.0", - "xpnet-nft-list": "0.2.5", + "xpnet-nft-list": "0.2.10", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/src/consts.ts b/src/consts.ts index 075f4857f..be0fcc27b 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -7,6 +7,7 @@ import { import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; +import { AlgorandArgs, AlgorandHelper } from "./helpers/algorand"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -21,6 +22,7 @@ export enum TestNetRpcUri { CELO = "https://alfajores-forno.celo-testnet.org", HARMONY = "https://api.s0.b.hmny.io", XDAI = "https://sokol.poa.network", + // TODO: Algorand } export enum MainNetRpcUri { @@ -35,12 +37,14 @@ export enum MainNetRpcUri { CELO = "https://forno.celo.org", HARMONY = "https://api.harmony.one", XDAI = "https://rpc.xdaichain.com/", + // TODO: Algorand } export type ChainNonce = number & ThisType & ThisType

; export type ElrondNonce = ChainNonce; export type Web3Nonce = ChainNonce; export type TronNonce = ChainNonce; +export type AlgoNonce = ChainNonce; export namespace Chain { export const ELROND: ElrondNonce = 2; @@ -54,6 +58,7 @@ export namespace Chain { export const CELO: Web3Nonce = 0xb; export const HARMONY: Web3Nonce = 0xc; export const XDAI: Web3Nonce = 0xe; + export const ALGORAND: AlgoNonce = 0xf; } interface ChainData { @@ -194,6 +199,7 @@ export const CHAIN_INFO: ChainInfo = { currency: SupportedCurrency.STAKE, validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, + // TODO: Algorand }; export const Config = { @@ -202,4 +208,4 @@ export const Config = { moralisAppId: "vt2JeuihhzyV9vgYbeAYO5BVSaCOdkAKr608XJOv", tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", -}; +} diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 787ee4cad..5d649ceee 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -5,6 +5,9 @@ import { NetworkModel, } from "crypto-exchange-rate"; import { + algoAssetMapper, + algoNftListService, + AlgorandNftListRepo, ElrdNftListRepo, elrdNftListService, elrdRawTokenMapper, @@ -18,7 +21,6 @@ import { NftListRepo, nftListRepo, trxNftListService, - TrxNftListService, } from "xpnet-nft-list"; //@ts-expect-error no types cope import TronWeb from "tronweb"; @@ -55,6 +57,14 @@ export function tronListNft( ); } +export function algoListNft(baseURL: string): AlgorandNftListRepo { + return nftListRepo( + algoNftListService(baseURL), + algoAssetMapper(), + mockChainIdentMapper() + ) +} + export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { const baseService = NetworkModel.batchExchangeRateService(baseUrl); diff --git a/src/factory/index.ts b/src/factory/index.ts index ad9eec663..b6e61c314 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -26,6 +26,7 @@ import BigNumber from "bignumber.js"; import axios from "axios"; import { + algoListNft, elrondNftList, exchangeRateRepo, moralisNftList, @@ -35,6 +36,7 @@ import { Address, UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; import { Wallet } from "ethers"; +import { AlgorandArgs } from "../helpers/algorand"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -148,6 +150,7 @@ export interface ChainParams { harmonyParams: Web3Params; ontologyParams: Web3Params; xDaiParams: Web3Params; + algorandParams: AlgorandArgs; } /** @@ -219,6 +222,7 @@ export function ChainFactory( appConfig.tronScanUri, chainParams.tronParams.erc721_addr ); + const algoNftRepo = chainParams.algorandParams && algoListNft(chainParams.algorandParams.algodUri) const nftlistRest = axios.create({ baseURL: "https://nft-list.herokuapp.com/", @@ -388,6 +392,9 @@ export function ChainFactory( owner )) as any as NftInfo[]; break; + case Chain.ALGORAND: + res = await algoNftRepo!.nfts(BigInt(0xf), owner) as any as NftInfo[]; + break; case Chain.FANTOM: case Chain.XDAI: res = await nftlistRest diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts new file mode 100644 index 000000000..e930f84c3 --- /dev/null +++ b/src/helpers/algorand.ts @@ -0,0 +1,211 @@ +import algosdk from "algosdk"; +import axios from "axios"; +import { BigNumber } from "bignumber.js"; +import { Base64 } from "js-base64"; +import { AlgoNft } from "xpnet-nft-list"; +import { ChainNonceGet, EstimateTxFees, NftInfo, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, WrappedNftCheck } from ".."; + +type TxResp = { + txId: string; +} + +type SignedTxn = { + txID: string; + blob: string; +} + +type Ledger = "MainNet" | "TestNet"; + +type BrowserSigner = { + accounts(args: { ledger: Ledger }): Promise<{ address: string[] }>; + signTxn(transactions: { txn: string }[]): Promise; + send(info: { ledger: Ledger, tx: string }): Promise; +} + +/** + * Selected address & ledger must be given explicitly + */ +export type AlgoSignerH = { + readonly algoSigner: BrowserSigner; + readonly address: string; + readonly ledger: Ledger; +} + +/** + * This library is written in typescript. + * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. + * + * @return Strongly typed AlgoSigner from extension + */ +export function typedAlgoSigner(): BrowserSigner { + //@ts-expect-error why do you inject libraries like this :| + if (typeof AlgoSigner === "undefined") { + throw Error("algosigner not available!"); + } + + //@ts-expect-error why do you inject libraries like this :| + return AlgoSigner; +} + +export type AlgorandHelper = ChainNonceGet & + WrappedNftCheck & + TransferNftForeign< + AlgoSignerH, + string, + BigNumber, + AlgoNft, + string + > & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress; + + +export type AlgorandArgs = { + algodApiKey: string; + algodUri: string; + sendNftAppId: number; + nonce: number; +} + +type MinWrappedNft = { + wrapped: { + origin: string + } +}; + +const encoder = new TextEncoder(); +const MINT_NFT_COST = new BigNumber(1000); + +export function algorandHelper(args: AlgorandArgs): AlgorandHelper { + const appAddr = algosdk.getApplicationAddress(args.sendNftAppId); + const algod = new algosdk.Algodv2(args.algodApiKey, args.algodUri) + + async function waitTxnConfirm(txId: string, timeout: number) { + const status = await algod.status().do(); + if (typeof status === 'undefined') + throw new Error('Unable to get node status'); + + const startround = status['last-round'] + 1; + let currentround = startround; + while (currentround < startround + timeout) { + const pendingInfo = await algod + .pendingTransactionInformation(txId) + .do(); + if (pendingInfo !== undefined) { + if ( + pendingInfo['confirmed-round'] !== null && + pendingInfo['confirmed-round'] > 0 + ) { + // Got the completed Transaction + return pendingInfo; + } + + if ( + pendingInfo['pool-error'] != null && + pendingInfo['pool-error'].length > 0 + ) { + // If there was a pool error, then the transaction has been rejected! + throw new Error( + `Transaction Rejected pool error${pendingInfo['pool-error']}` + ); + } + } + await algod.statusAfterBlock(currentround).do(); + currentround += 1; + } + + throw new Error(`Transaction not confirmed after ${timeout} rounds!`); + } + + const transferNft = async ( + signer: AlgoSignerH, + chain_nonce: number, + to: string, + nft: NftInfo, + txFees: BigNumber + ) => { + const suggested = await algod.getTransactionParams().do(); + const callTx = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs: [ + encoder.encode("opt_in_nft") + ], + foreignAssets: [nft.native.nftId], + suggestedParams: suggested + }); + const encodedTx = Base64.fromUint8Array(callTx.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob + }); + await waitTxnConfirm(res.txId, 10000); + + const feesTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: BigInt(txFees.toString()), + suggestedParams: suggested + }) + const transferTx = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: 1, + assetIndex: nft.native.nftId, + suggestedParams: suggested + }); + const tCallTx = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs: [ + encoder.encode("receive_nft"), + encoder.encode(to), + encoder.encode(chain_nonce.toString()) + ], + foreignAssets: [nft.native.nftId], + suggestedParams: suggested + }); + algosdk.assignGroupID([feesTx, transferTx, tCallTx]); + const encodedTxns = [ + { txn: Base64.fromUint8Array(feesTx.toByte()) }, + { txn: Base64.fromUint8Array(transferTx.toByte()) }, + { txn: Base64.fromUint8Array(tCallTx.toByte()) } + ]; + const signedTxns = await signer.algoSigner.signTxn(encodedTxns); + const sendRes = await algod.sendRawTransaction([ + Base64.toUint8Array(signedTxns[0].blob), + Base64.toUint8Array(signedTxns[1].blob), + Base64.toUint8Array(signedTx[2].blob) + ]).do(); + await waitTxnConfirm(sendRes.txId, 10000); + + return sendRes.txId as string; + } + return { + getNonce: () => args.nonce, + isWrappedNft(nft) { + return nft.native.creator === appAddr + }, + transferNftToForeign: transferNft, + unfreezeWrappedNft: async ( + signer, + to, + nft, + txFees + ) => { + const nftMeta = await axios.get(nft.uri); + return await transferNft( + signer, + parseInt(nftMeta.data.wrapped.origin), + to, + nft, + txFees + ) + }, + estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), + estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), + validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)) + } +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 567c7b1a3..6f593b1ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1694,6 +1694,27 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" +algo-msgpack-with-bigint@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz#38bb717220525b3ff42232eefdcd9efb9ad405d6" + integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== + +algosdk@^1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.12.0.tgz#77e2a22568495210d26ecd1f830e98cc069815b5" + integrity sha512-Iqek0AwcCeXLywVg4E8gWWjmuPZ10P7PUmpZrlR71FSNyEtX4Ie+UgrNHWhkYnhyykRU5mjtvD4Hrb2eOepsGA== + dependencies: + algo-msgpack-with-bigint "^2.1.1" + buffer "^6.0.2" + hi-base32 "^0.5.1" + js-sha256 "^0.9.0" + js-sha3 "^0.8.0" + js-sha512 "^0.8.0" + json-bigint "^1.0.0" + superagent "^6.1.0" + tweetnacl "^1.0.3" + url-parse "^1.5.1" + ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" @@ -2169,6 +2190,14 @@ buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + buffers@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" @@ -2413,7 +2442,7 @@ commander@^8.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -component-emitter@~1.3.0: +component-emitter@^1.3.0, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== @@ -2459,7 +2488,16 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +<<<<<<< HEAD cookiejar@^2.1.1: +======= +cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + +cookiejar@^2.1.1, cookiejar@^2.1.2: +>>>>>>> b1c25bf (initial algorand support) version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== @@ -3460,6 +3498,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + fastq@^1.6.0: version "1.11.1" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" @@ -3596,6 +3639,11 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +formidable@^1.2.2: + version "1.2.6" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" + integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -3935,6 +3983,11 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hi-base32@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" + integrity sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA== + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -4004,7 +4057,7 @@ idna-uts46-hx@^2.3.1: dependencies: punycode "2.1.0" -ieee754@^1.1.13: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -4304,6 +4357,11 @@ js-base64@^3.7.2: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== +js-sha256@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" + integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== + js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" @@ -4314,6 +4372,11 @@ js-sha3@0.8.0, js-sha3@^0.8.0: resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== +js-sha512@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha512/-/js-sha512-0.8.0.tgz#dd22db8d02756faccf19f218e3ed61ec8249f7d4" + integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -4332,7 +4395,7 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -json-bigint@1.0.0: +json-bigint@1.0.0, json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== @@ -4626,7 +4689,7 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@~1.1.2: +methods@^1.1.2, methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= @@ -4664,6 +4727,11 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.4.6: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -5406,7 +5474,7 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@6.10.1: +qs@6.10.1, qs@^6.9.4: version "6.10.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== @@ -5441,6 +5509,11 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -5583,6 +5656,11 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -5715,7 +5793,7 @@ semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^7.2.1, semver@^7.3.5: +semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -6097,6 +6175,23 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +superagent@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" + integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== + dependencies: + component-emitter "^1.3.0" + cookiejar "^2.1.2" + debug "^4.1.1" + fast-safe-stringify "^2.0.7" + form-data "^3.0.0" + formidable "^1.2.2" + methods "^1.1.2" + mime "^2.4.6" + qs "^6.9.4" + readable-stream "^3.6.0" + semver "^7.3.2" + supports-color@8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" @@ -6441,6 +6536,14 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" +url-parse@^1.5.1: + version "1.5.3" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" + integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + url-set-query@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" @@ -6940,10 +7043,10 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xpnet-nft-list@0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.5.tgz#edb59705d468702ff9c2835cf31af39f886090fa" - integrity sha512-w8d+Q8u9yHMKgZbuXu1FkMtveDAIs15rGFGY6QW6S/xucKfyXYf+k5O4g3RvextGGr1lDYwJVr+cblCY709Rwg== +xpnet-nft-list@0.2.10: + version "0.2.10" + resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.10.tgz#397e3aac1f44ef32e3b22b73e268ab70a4c6a12d" + integrity sha512-5FjG25F66/dvcBcMLygYnkeK/G9mIwCoudJNd48Pks++qUVAyg6li6XUo1oybL35vx8AYyP8x9hH3j2rgzDqaQ== dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" "@supercharge/promise-pool" "^1.9.0" From dc371fe4bee35ff800c98e03724837a7f239e7c5 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 22 Nov 2021 15:41:03 +0530 Subject: [PATCH 194/956] feat(web3): setup createWallet --- src/factory/index.ts | 10 +++++++--- src/helpers/web3.ts | 7 ++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index ad9eec663..7fe41f1b1 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -125,7 +125,10 @@ export type ChainFactory = { */ updateParams(nonce: ChainNonce, params: TP): void; nonceToChainNonce(nonce: number): ElrondNonce | TronNonce | Web3Nonce; - pkeyToSigner(nonce: number, key: string): Wallet | UserSigner | string; + pkeyToSigner( + nonce: number, + key: string + ): Promise; getDestinationTransaction( hash: Txn, chain: ExtractTxn @@ -352,7 +355,7 @@ export function ChainFactory( return chain.extractTxn(hash); }, nonceToChainNonce, - pkeyToSigner(nonce, key) { + async pkeyToSigner(nonce, key) { let chain = nonceToChainNonce(nonce); switch (chain) { case Chain.ELROND: { @@ -362,7 +365,8 @@ export function ChainFactory( return key; } default: { - return new Wallet(key); + const inner = await this.inner(chain); + return inner.createWallet(key); } } }, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index a3162df6b..a5144999c 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -121,7 +121,9 @@ export type Web3Helper = BaseWeb3Helper & IsApproved & Approve & ValidateAddress & - ExtractTxn; + ExtractTxn & { + createWallet(privateKey: string): Wallet; + }; /** * Create an object implementing minimal utilities for a web3 chain @@ -264,6 +266,9 @@ export async function web3HelperFactory( nft.native.contract.toLowerCase() === params.erc721_addr.toLowerCase() ); }, + createWallet(privateKey: string): Wallet { + return new Wallet(privateKey, provider); + }, async balanceWrappedBatch( address: string, chain_nonces: number[] From c8107bcbe244ef458c492c7b6c9932269e39c84e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 22 Nov 2021 17:23:41 +0530 Subject: [PATCH 195/956] feat(list-nfts): add testnet support --- package.json | 2 +- src/factory/cons.ts | 27 ++++++++++++++++++++------- src/factory/index.ts | 34 +++++++++++++++++++++++++++------- yarn.lock | 40 ++++++++++++++++++++-------------------- 4 files changed, 68 insertions(+), 35 deletions(-) diff --git a/package.json b/package.json index 24758e2f2..a12163bd4 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.0.0", - "xpnet-nft-list": "0.2.10", + "xpnet-nft-list": "^0.2.12", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 5d649ceee..bdb24d03b 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -7,7 +7,7 @@ import { import { algoAssetMapper, algoNftListService, - AlgorandNftListRepo, + AlgorandNftListRepo, ElrdNftListRepo, elrdNftListService, elrdRawTokenMapper, @@ -18,6 +18,7 @@ import { MoralisNftListRepo, moralisNftListService, moralisNftMapper, + moralisTestNetChainIdMapper, NftListRepo, nftListRepo, trxNftListService, @@ -41,7 +42,19 @@ export function moralisNftList( return nftListRepo( moralisNftListService({ serverUrl: server, appId, moralisSecret }), moralisNftMapper(), - moralisChainIdMapper() + moralisTestNetChainIdMapper() + ); +} + +export function moralisTestnetNftList( + server: string, + appId: string, + moralisSecret?: string +): MoralisNftListRepo { + return nftListRepo( + moralisNftListService({ serverUrl: server, appId, moralisSecret }), + moralisNftMapper(), + moralisTestNetChainIdMapper() ); } @@ -58,11 +71,11 @@ export function tronListNft( } export function algoListNft(baseURL: string): AlgorandNftListRepo { - return nftListRepo( - algoNftListService(baseURL), - algoAssetMapper(), - mockChainIdentMapper() - ) + return nftListRepo( + algoNftListService(baseURL), + algoAssetMapper(), + mockChainIdentMapper() + ); } export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { diff --git a/src/factory/index.ts b/src/factory/index.ts index 36cbaf46e..3b5797643 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -30,6 +30,7 @@ import { elrondNftList, exchangeRateRepo, moralisNftList, + moralisTestnetNftList, tronListNft, } from "./cons"; import { Address, UserSigner } from "@elrondnetwork/erdjs/out"; @@ -37,6 +38,10 @@ import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; import { Wallet } from "ethers"; import { AlgorandArgs } from "../helpers/algorand"; +import { + MoralisNftListRepo, + moralisTestNetChainIdMapper, +} from "xpnet-nft-list"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -156,6 +161,8 @@ export interface ChainParams { algorandParams: AlgorandArgs; } +export type MoralisNetwork = "mainnet" | "testnet"; + /** * A struct for the configuration of the library. * @field exchangeRateUri: The URI of the exchange rate service. @@ -170,6 +177,7 @@ export interface AppConfig { moralisAppId: string; tronScanUri: string; moralisSecret?: string; + moralisNetwork: MoralisNetwork; } function mapNonceToParams( @@ -213,11 +221,18 @@ export function ChainFactory( const remoteExchangeRate = exchangeRateRepo(appConfig.exchangeRateUri); const elrondNftRepo = elrondNftList(chainParams.elrondParams?.node_uri || ""); - const moralisNftRepo = moralisNftList( - appConfig.moralisServer, - appConfig.moralisAppId, - appConfig.moralisSecret - ); + const moralisNftRepo = + appConfig.moralisNetwork === "mainnet" + ? moralisNftList( + appConfig.moralisServer, + appConfig.moralisAppId, + appConfig.moralisSecret + ) + : moralisTestnetNftList( + appConfig.moralisServer, + appConfig.moralisAppId, + appConfig.moralisSecret + ); const tronNftRepo = chainParams.tronParams && tronListNft( @@ -225,7 +240,9 @@ export function ChainFactory( appConfig.tronScanUri, chainParams.tronParams.erc721_addr ); - const algoNftRepo = chainParams.algorandParams && algoListNft(chainParams.algorandParams.algodUri) + const algoNftRepo = + chainParams.algorandParams && + algoListNft(chainParams.algorandParams.algodUri); const nftlistRest = axios.create({ baseURL: "https://nft-list.herokuapp.com/", @@ -397,7 +414,10 @@ export function ChainFactory( )) as any as NftInfo[]; break; case Chain.ALGORAND: - res = await algoNftRepo!.nfts(BigInt(0xf), owner) as any as NftInfo[]; + res = (await algoNftRepo!.nfts( + BigInt(0xf), + owner + )) as any as NftInfo[]; break; case Chain.FANTOM: case Chain.XDAI: diff --git a/yarn.lock b/yarn.lock index 6f593b1ac..36303b4a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2425,7 +2425,7 @@ colors@^1.4.0: resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -2488,16 +2488,7 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== -<<<<<<< HEAD -cookiejar@^2.1.1: -======= -cookie@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - cookiejar@^2.1.1, cookiejar@^2.1.2: ->>>>>>> b1c25bf (initial algorand support) version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== @@ -3630,6 +3621,15 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -4820,10 +4820,10 @@ mock-fs@^4.1.0: resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== -moralis@^0.0.132: - version "0.0.132" - resolved "https://registry.yarnpkg.com/moralis/-/moralis-0.0.132.tgz#3b651274b6e0172f5aa390f0cab4639a8c10d1aa" - integrity sha512-ftkBDkFmoNmFEjxWITY1q9hVrd94w8dviwsWsajIH2OW4xOm33nV6Ay3aSsaWC6tTJHRV5/NYv8Hz4XARVw3mQ== +moralis@^0.0.134: + version "0.0.134" + resolved "https://registry.yarnpkg.com/moralis/-/moralis-0.0.134.tgz#fa763b5a480e0e572828d681ade7e0e958e51259" + integrity sha512-2+JkbHDOhTzgbAnx6foJ7BwngCvYhNbpjwStvSOjrdX6eWKNT5njyLQtTJlJUaXS7uJSkvtV2frSwEZ78ZnwGQ== dependencies: "@babel/runtime" "7.12.5" "@babel/runtime-corejs3" "7.12.5" @@ -6379,7 +6379,7 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl@1.0.3: +tweetnacl@1.0.3, tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== @@ -7043,10 +7043,10 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xpnet-nft-list@0.2.10: - version "0.2.10" - resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.10.tgz#397e3aac1f44ef32e3b22b73e268ab70a4c6a12d" - integrity sha512-5FjG25F66/dvcBcMLygYnkeK/G9mIwCoudJNd48Pks++qUVAyg6li6XUo1oybL35vx8AYyP8x9hH3j2rgzDqaQ== +xpnet-nft-list@^0.2.12: + version "0.2.12" + resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.12.tgz#a4ee952ebbee4fdad727299e171730ad4493263c" + integrity sha512-W9nSFygef6bFIX8gFoGbPeAnkLBLjRl/nsVDjMKIFj9R8kghkaW7irHT0P7tUeg1mkX3/vy5ihOnVm1/2wIh6g== dependencies: "@elrondnetwork/erdjs" "^8.0.1-alpha.8" "@supercharge/promise-pool" "^1.9.0" @@ -7056,7 +7056,7 @@ xpnet-nft-list@0.2.10: ethers "^5.5.1" express "^4.17.1" js-base64 "^3.7.2" - moralis "^0.0.132" + moralis "^0.0.134" tronweb "^4.0.0" "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": From 1cc790fa22589cb19b08413f0df97c2643d9b844 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 22 Nov 2021 18:50:47 +0530 Subject: [PATCH 196/956] fix(listing): change the mapper for mainnet --- src/factory/cons.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index bdb24d03b..b4485acff 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -42,7 +42,7 @@ export function moralisNftList( return nftListRepo( moralisNftListService({ serverUrl: server, appId, moralisSecret }), moralisNftMapper(), - moralisTestNetChainIdMapper() + moralisChainIdMapper() ); } From 998d04f6cbbf9df578e2a90e8c659abf604e20ab Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 22 Nov 2021 20:44:06 +0530 Subject: [PATCH 197/956] helpers: algorand: add claimNft add support to socket for tx-socket updates, minor improvements --- src/helpers/algorand.ts | 96 +++++++++++++++++++++++++++--- src/socket.ts | 126 ++++++++++++++++++++++++++-------------- 2 files changed, 171 insertions(+), 51 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index e930f84c3..8dc075470 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -17,11 +17,16 @@ type SignedTxn = { type Ledger = "MainNet" | "TestNet"; type BrowserSigner = { - accounts(args: { ledger: Ledger }): Promise<{ address: string[] }>; + accounts(args: { ledger: Ledger }): Promise<{ address: string }[]>; signTxn(transactions: { txn: string }[]): Promise; send(info: { ledger: Ledger, tx: string }): Promise; } +export type ClaimNftInfo = { + appId: number; + nftId: number; +}; + /** * Selected address & ledger must be given explicitly */ @@ -47,6 +52,31 @@ export function typedAlgoSigner(): BrowserSigner { return AlgoSigner; } +export function algoSignerWrapper(algod: algosdk.Algodv2, acc: algosdk.Account): BrowserSigner { + return { + accounts(_) { + return Promise.resolve([{ + address: acc.addr + }]) + }, + signTxn(txns) { + return Promise.resolve(txns.map(t => { + const signed = algosdk.signTransaction( + algosdk.decodeUnsignedTransaction(Base64.toUint8Array(t.txn)), + acc.sk + ); + return { + txID: signed.txID, + blob: Base64.fromUint8Array(signed.blob) + } + })) + }, + send({ tx }) { + return algod.sendRawTransaction(Base64.toUint8Array(tx)).do(); + } + } +} + export type AlgorandHelper = ChainNonceGet & WrappedNftCheck & TransferNftForeign< @@ -58,12 +88,17 @@ export type AlgorandHelper = ChainNonceGet & > & UnfreezeForeignNft & EstimateTxFees & - ValidateAddress; + ValidateAddress & { + claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; + } & { + algod: algosdk.Algodv2; + }; export type AlgorandArgs = { algodApiKey: string; algodUri: string; + algodPort: number | undefined; sendNftAppId: number; nonce: number; } @@ -79,7 +114,7 @@ const MINT_NFT_COST = new BigNumber(1000); export function algorandHelper(args: AlgorandArgs): AlgorandHelper { const appAddr = algosdk.getApplicationAddress(args.sendNftAppId); - const algod = new algosdk.Algodv2(args.algodApiKey, args.algodUri) + const algod = new algosdk.Algodv2(args.algodApiKey, args.algodUri, args.algodPort) async function waitTxnConfirm(txId: string, timeout: number) { const status = await algod.status().do(); @@ -136,10 +171,10 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { suggestedParams: suggested }); const encodedTx = Base64.fromUint8Array(callTx.toByte()); - const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const signedTxCall = await signer.algoSigner.signTxn([{ txn: encodedTx }]); const res = await signer.algoSigner.send({ ledger: signer.ledger, - tx: signedTx[0].blob + tx: signedTxCall[0].blob }); await waitTxnConfirm(res.txId, 10000); @@ -162,7 +197,10 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { appArgs: [ encoder.encode("receive_nft"), encoder.encode(to), - encoder.encode(chain_nonce.toString()) + new Uint8Array(Buffer.concat([ + Buffer.from(new Uint32Array([0]).buffer), + Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse() + ])) ], foreignAssets: [nft.native.nftId], suggestedParams: suggested @@ -177,13 +215,14 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { const sendRes = await algod.sendRawTransaction([ Base64.toUint8Array(signedTxns[0].blob), Base64.toUint8Array(signedTxns[1].blob), - Base64.toUint8Array(signedTx[2].blob) + Base64.toUint8Array(signedTxns[2].blob) ]).do(); await waitTxnConfirm(sendRes.txId, 10000); return sendRes.txId as string; } return { + algod, getNonce: () => args.nonce, isWrappedNft(nft) { return nft.native.creator === appAddr @@ -206,6 +245,47 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { }, estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), - validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)) + validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), + async claimNft( + signer, + info + ) { + const suggested = await algod.getTransactionParams().do(); + const optIn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: signer.address, + amount: 0, + assetIndex: info.nftId, + suggestedParams: suggested + }); + const encodedTx = Base64.fromUint8Array(optIn.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob + }); + await waitTxnConfirm(res.txId, 10000); + + const callTxn = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: info.appId, + appArgs: [ + encoder.encode("transfer_nft") + ], + foreignAssets: [info.nftId], + suggestedParams: suggested, + }); + const encodedCall = Base64.fromUint8Array(callTxn.toByte()); + const signedCall = await signer.algoSigner.signTxn([{ + txn: encodedCall, + }]) + const callRes = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedCall[0].blob + }); + + await waitTxnConfirm(callRes.txId, 10000); + return callRes.txId; + } } } \ No newline at end of file diff --git a/src/socket.ts b/src/socket.ts index 4574edd08..0944cf256 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -1,30 +1,29 @@ import { io, ManagerOptions, SocketOptions } from "socket.io-client"; +import { ClaimNftInfo } from "./helpers/algorand"; -type ChainAwaiter = { - [action_id: string]: - | { - resolve?: (hash: string) => void; - event_res?: string; - } - | undefined; +type ChainAwaiter = { + [action_id: string]: { + resolve?: (data: T) => void; + event_res?: T; + } | undefined; }; -type TxResInnerBuf = { - [chain: number]: ChainAwaiter; +type SocketResInnerBuf = { + [chain: number]: ChainAwaiter; }; -type TxResBuf = { +type SocketResBuf = { getResolver( chain_id: number, action_id: string - ): ((hash: string) => void) | undefined; + ): ((data: T) => void) | undefined; setResolver( chain_id: number, action_id: string, - resolver: (hash: string) => void + resolver: (data: T) => void ): void; - getEventRes(chain_id: number, action_id: string): string | undefined; - setEventRes(chain_id: number, action_id: string, res: string): void; + getEventRes(chain_id: number, action_id: string): T | undefined; + setEventRes(chain_id: number, action_id: string, res: T): void; unsetAction(chain_id: number, action_id: string): void; }; @@ -41,8 +40,17 @@ export type TxnSocketHelper = { waitTxHash(chain: number, action_id: string): Promise; }; -function txResBuf(): TxResBuf { - const inner: TxResInnerBuf = {}; +export type AlgorandSocketHelper = { + waitAlgorandNft(action_id: string): Promise; +} + +function pairActionAlgo(action_id: string): number { + const numId = parseInt(action_id); + return numId >= 15 ? numId * 15 + 15 + numId : numId + 15*15; +} + +function socketResBuf(): SocketResBuf { + const inner: SocketResInnerBuf = {}; const requireChain = (chain_id: number) => { if (inner[chain_id] === undefined) { @@ -54,7 +62,7 @@ function txResBuf(): TxResBuf { getResolver( chain_id: number, action_id: string - ): ((hash: string) => void) | undefined { + ): ((data: T) => void) | undefined { requireChain(chain_id); return inner[chain_id][action_id]?.resolve; @@ -62,18 +70,18 @@ function txResBuf(): TxResBuf { setResolver( chain_id: number, action_id: string, - resolver: (hash: string) => void + resolver: (data: T) => void ): void { requireChain(chain_id); inner[chain_id][action_id] = { resolve: resolver }; }, - getEventRes(chain_id: number, action_id: string): string | undefined { + getEventRes(chain_id: number, action_id: string): T | undefined { requireChain(chain_id); return inner[chain_id][action_id]?.event_res; }, - setEventRes(chain_id: number, action_id: string, res: string): void { + setEventRes(chain_id: number, action_id: string, res: T): void { requireChain(chain_id); inner[chain_id][action_id] = { event_res: res }; @@ -86,6 +94,29 @@ function txResBuf(): TxResBuf { }; } +function add_event(buf: SocketResBuf, chain: number, id: string, data: T) { + const resolve = buf.getResolver(chain, id); + if (resolve === undefined) { + buf.setEventRes(chain, id, data); + return; + } + resolve(data); +} + +async function waitSocketData(buf: SocketResBuf, chain: number, action_id: string): Promise { + const data = buf.getEventRes(chain, action_id); + if (data !== undefined) { + buf.unsetAction(chain, action_id); + return data; + } + + const dataP: Promise = new Promise(r => { + buf.setResolver(chain, action_id, r); + }); + + return await dataP; +} + /** * Create a [[TxnSocketHelper]] * @@ -95,39 +126,48 @@ function txResBuf(): TxResBuf { export function txnSocketHelper( uri: string, options?: Partial -): TxnSocketHelper { +): TxnSocketHelper & AlgorandSocketHelper { const socket = io(uri, options); - const buf: TxResBuf = txResBuf(); - - function add_event(chain: number, id: string, hash: string) { - const resolve = buf.getResolver(chain, id); - if (resolve === undefined) { - buf.setEventRes(chain, id, hash); - return; - } - resolve(hash); - } + const txbuf: SocketResBuf = socketResBuf(); + const algoBuf: SocketResBuf = socketResBuf(); socket.on( "tx_executed_event", (chain: number, action_id: string, hash: string) => { - add_event(chain, action_id, hash); + add_event(txbuf, chain, action_id, hash); } ); + socket.on( + "algorand_minted_event", + (_: number, action_id: string, app_id: number, nft_id: number) => add_event( + algoBuf, + 15, + action_id, + { + appId: app_id, + nftId: nft_id + } + ) + ); + return { async waitTxHash(chain: number, action_id: string): Promise { - const hash = buf.getEventRes(chain, action_id); - if (hash !== undefined) { - buf.unsetAction(chain, action_id); - return hash; - } - - const hashP: Promise = new Promise((r) => { - buf.setResolver(chain, action_id, r); - }); - - return await hashP; + return await waitSocketData( + txbuf, + chain, + action_id + ); }, + async waitAlgorandNft(action_id: string): Promise { + // Validator sends a an action paired with chain id + // this is implementation dependent on validator + const paired = pairActionAlgo(action_id).toString(); + return await waitSocketData( + algoBuf, + 15, + paired + ); + } }; } From b36edd9e4ab8b998450066273b8f925f67072f4d Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 23 Nov 2021 17:09:44 +0530 Subject: [PATCH 198/956] [DIRTY] changes for algorand and other chains too, though not breaking --- src/consts.ts | 3 +- src/factory/index.ts | 64 ++++++++++++++++++++----- src/helpers/algorand.ts | 100 +++++++++++++++++++++++----------------- src/helpers/chain.ts | 12 ++++- src/helpers/elrond.ts | 20 ++++---- src/helpers/tron.ts | 20 ++++---- src/helpers/web3.ts | 23 +++++---- src/socket.ts | 4 +- 8 files changed, 159 insertions(+), 87 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index be0fcc27b..5414414ed 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -40,7 +40,8 @@ export enum MainNetRpcUri { // TODO: Algorand } -export type ChainNonce = number & ThisType & ThisType

; +// Marker type +export type ChainNonce<_, __> = number; export type ElrondNonce = ChainNonce; export type Web3Nonce = ChainNonce; export type TronNonce = ChainNonce; diff --git a/src/factory/index.ts b/src/factory/index.ts index 3b5797643..46c707915 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -14,9 +14,10 @@ export * from "./factories"; import { ChainNonceGet, EstimateTxFees, - ExtractTxn, + ExtractAction, MintNft, NftInfo, + socketHelper, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -37,11 +38,8 @@ import { Address, UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; import { Wallet } from "ethers"; -import { AlgorandArgs } from "../helpers/algorand"; -import { - MoralisNftListRepo, - moralisTestNetChainIdMapper, -} from "xpnet-nft-list"; +import { AlgorandArgs, AlgorandHelper, AlgoSignerH, ClaimNftInfo } from "../helpers/algorand"; + export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -80,9 +78,11 @@ export type ChainFactory = { * Transfers the NFT from one chain to other. * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. * @param toChain {@link FullChain} the chain to transfer to. Use inner method of the factory to get this. + * WARN: Algorand NFTs must be manually claimed by the receiver * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the `nftList` method of the factory. * @param sender {@link Sender} The owner of the NFT. * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. + * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) */ transferNft( fromChain: FullChain, @@ -136,10 +136,36 @@ export type ChainFactory = { nonce: number, key: string ): Promise; + /** + * + * Get transaction in the destination chain + * WARN: use claimAlgorandNft instead for algorand. + * + * @param chain source chain + * @param destination destination chain + * @param hash transaction hash from source chain + * + * @returns transaction hash in original chain, unique action id + */ getDestinationTransaction( + chain: ExtractAction, + destination: number, hash: Txn, - chain: ExtractTxn - ): Promise<[string, string]>; + ): Promise; + /** + * + * Claim an algorand nft + * + * + * @param originChain chain from which the nft was transferred + * @param txn Transaction Hash of the original + * @param claimer the account which can claim the nft + */ + claimAlgorandNft( + originChain: ExtractAction, + txn: Txn, + claimer: AlgoSignerH + ): Promise }; /** @@ -173,6 +199,7 @@ export type MoralisNetwork = "mainnet" | "testnet"; export interface AppConfig { exchangeRateUri: string; heartbeatUri: string; + txSocketUri: string; moralisServer: string; moralisAppId: string; tronScanUri: string; @@ -220,6 +247,8 @@ export function ChainFactory( const remoteExchangeRate = exchangeRateRepo(appConfig.exchangeRateUri); + const txSocket = socketHelper(appConfig.txSocketUri); + const elrondNftRepo = elrondNftList(chainParams.elrondParams?.node_uri || ""); const moralisNftRepo = appConfig.moralisNetwork === "mainnet" @@ -372,8 +401,9 @@ export function ChainFactory( } return { - getDestinationTransaction(hash: T, chain: ExtractTxn) { - return chain.extractTxn(hash); + async getDestinationTransaction(chain: ExtractAction, targetNonce: number, hash: T) { + const action = await chain.extractAction(hash); + return await txSocket.waitTxHash(targetNonce, action); }, nonceToChainNonce, async pkeyToSigner(nonce, key) { @@ -386,8 +416,8 @@ export function ChainFactory( return key; } default: { - const inner = await this.inner(chain); - return inner.createWallet(key); + const chainH = await inner(chain); + return chainH.createWallet(key); } } }, @@ -474,6 +504,16 @@ export function ChainFactory( ): Promise => { return await chain.mintNft(owner, args); }, + claimAlgorandNft: async ( + origin, + hash, + claimer + ) => { + const action = await origin.extractAction(hash); + const algo: AlgorandHelper = await inner(Chain.ALGORAND); + + return await algo.claimAlgorandNft(claimer, action, txSocket); + } }; } /** diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 8dc075470..92921db75 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -3,7 +3,7 @@ import axios from "axios"; import { BigNumber } from "bignumber.js"; import { Base64 } from "js-base64"; import { AlgoNft } from "xpnet-nft-list"; -import { ChainNonceGet, EstimateTxFees, NftInfo, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, WrappedNftCheck } from ".."; +import { AlgorandSocketHelper, ChainNonceGet, EstimateTxFees, NftInfo, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, WrappedNftCheck } from ".."; type TxResp = { txId: string; @@ -77,6 +77,10 @@ export function algoSignerWrapper(algod: algosdk.Algodv2, acc: algosdk.Account): } } +export interface ClaimAlgorandNft { + claimAlgorandNft(signer: AlgoSignerH, actionId: string, socket: AlgorandSocketHelper): Promise; +} + export type AlgorandHelper = ChainNonceGet & WrappedNftCheck & TransferNftForeign< @@ -92,7 +96,8 @@ export type AlgorandHelper = ChainNonceGet & claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; } & { algod: algosdk.Algodv2; - }; + } & + ClaimAlgorandNft; export type AlgorandArgs = { @@ -221,9 +226,58 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { return sendRes.txId as string; } + + async function claimNft( + signer: AlgoSignerH, + info: ClaimNftInfo + ) { + const suggested = await algod.getTransactionParams().do(); + const optIn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: signer.address, + amount: 0, + assetIndex: info.nftId, + suggestedParams: suggested + }); + const encodedTx = Base64.fromUint8Array(optIn.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob + }); + await waitTxnConfirm(res.txId, 10000); + + const callTxn = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: info.appId, + appArgs: [ + encoder.encode("transfer_nft") + ], + foreignAssets: [info.nftId], + suggestedParams: suggested, + }); + const encodedCall = Base64.fromUint8Array(callTxn.toByte()); + const signedCall = await signer.algoSigner.signTxn([{ + txn: encodedCall, + }]) + const callRes = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedCall[0].blob + }); + + await waitTxnConfirm(callRes.txId, 10000); + return callRes.txId; + } + return { algod, getNonce: () => args.nonce, + claimNft, + async claimAlgorandNft(signer, action, socket) { + const info = await socket.waitAlgorandNft(action); + + return await claimNft(signer, info); + }, isWrappedNft(nft) { return nft.native.creator === appAddr }, @@ -242,50 +296,10 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { nft, txFees ) - }, + z1, estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), - async claimNft( - signer, - info - ) { - const suggested = await algod.getTransactionParams().do(); - const optIn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: signer.address, - amount: 0, - assetIndex: info.nftId, - suggestedParams: suggested - }); - const encodedTx = Base64.fromUint8Array(optIn.toByte()); - const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); - const res = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedTx[0].blob - }); - await waitTxnConfirm(res.txId, 10000); - const callTxn = algosdk.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: info.appId, - appArgs: [ - encoder.encode("transfer_nft") - ], - foreignAssets: [info.nftId], - suggestedParams: suggested, - }); - const encodedCall = Base64.fromUint8Array(callTxn.toByte()); - const signedCall = await signer.algoSigner.signTxn([{ - txn: encodedCall, - }]) - const callRes = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedCall[0].blob - }); - - await waitTxnConfirm(callRes.txId, 10000); - return callRes.txId; - } } } \ No newline at end of file diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index a58c3ad70..30d60761f 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -46,6 +46,14 @@ export interface UnfreezeForeign { ): Promise; } +/** + * Action to perform before transfer/unfreeze (if any) + */ +export interface PreTransfer { + preTransfer(sender: Signer, args: Args): Promise; + preUnfreeze(sender: Signer, args: Args): Promise; +} + /** * Transfer NFT to a foreign chain, freezing the original one * @@ -168,6 +176,6 @@ export interface ChainNonceGet { getNonce(): number; } -export interface ExtractTxn { - extractTxn(txn: Txn): Promise<[string, string]>; +export interface ExtractAction { + extractAction(txn: Txn): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index cfd5d657b..ccc37c817 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -38,12 +38,12 @@ import { UnfreezeForeignNft, WrappedNftCheck, } from "./chain"; -import { Base64 } from "js-base64"; import { ChainNonceGet, EstimateTxFees, - ExtractTxn, + ExtractAction, NftInfo, + PreTransfer, ValidateAddress, } from ".."; import { NftMintArgs } from ".."; @@ -214,7 +214,9 @@ export type ElrondHelper = BalanceCheck & } & WrappedNftCheck & ChainNonceGet & ValidateAddress & - ExtractTxn; + ExtractAction & + PreTransfer & + EstimateTxFees; /** * Create an object implementing cross chain utilities for elrond @@ -337,7 +339,7 @@ export const elrondHelperFactory: ( const tx = await signAndSend(sender, utx); await transactionResult(tx.getHash()); - return tx; + return tx.getHash().toString(); }; const unsignedTransferTxn = ( @@ -570,19 +572,19 @@ export const elrondHelperFactory: ( }); }; - async function extractTxn(tx: Transaction): Promise<[string, string]> { + async function extractAction(tx: Transaction): Promise { let err; await tx.awaitExecuted(provider).catch((e) => (err = e)); if (err) { await new Promise((r) => setTimeout(r, 3000)); - return extractTxn(tx); + return await extractAction(tx); } const txr = await transactionResult(tx.getHash()); const id = filterEventId(txr["smartContractResults"]); - return [tx.getHash().toString(), id.toString()]; + return id.toString(); } function estimateGas(base_fees: BigNumber, cnt: number) { @@ -652,7 +654,9 @@ export const elrondHelperFactory: ( return tx.getHash().toString(); }, doEgldSwap, - extractTxn, + preTransfer: doEgldSwap, + preUnfreeze: doEgldSwap, + extractAction, async transferNftToForeign( sender: ElrondSigner, chain_nonce: number, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 3f0f28ffd..29c099269 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -29,9 +29,10 @@ import { } from "xpnet-web3-contracts"; import { Approve, - ExtractTxn, + ExtractAction, IsApproved, NftMintArgs, + PreTransfer, ValidateAddress, } from ".."; import { ChainNonceGet, NftInfo } from ".."; @@ -93,7 +94,8 @@ export type TronHelper = BaseTronHelper & Approve & ValidateAddress & IsApproved & - ExtractTxn; + ExtractAction & + Pick>, "preTransfer">;; export async function baseTronHelperFactory( provider: TronWeb @@ -226,7 +228,7 @@ export async function tronHelperFactory( await event_middleware.post("/tx/tron", { tx_hash: hash }); } - async function extractTxn(hash: string): Promise<[string, string]> { + async function extractAction(hash: string): Promise { await new Promise((r) => setTimeout(r, 6000)); // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -245,7 +247,7 @@ export async function tronHelperFactory( const evs = await getEv(); const ev = evs.find((e: any) => e?.contract == minter_addr); const action_id: string = ev.result["actionId"].toString(); - return [hash, action_id]; + return action_id; } const randomAction = () => @@ -312,18 +314,18 @@ export async function tronHelperFactory( ); const isApproved = await isApprovedForMinter(id, sender); if (isApproved) { - return true; + return undefined; } - await erc.approve(minter_addr, id.native.tokenId).send(); - - return true; + const txHash: string = await erc.approve(minter_addr, id.native.tokenId).send(); + return txHash }; return { ...base, - extractTxn, + extractAction, approveForMinter, + preTransfer: (s, id) => approveForMinter(id, s), isWrappedNft(nft) { return ( nft.native.contract.toLowerCase() === diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index a5144999c..2b66a6769 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -38,8 +38,9 @@ import { Base64 } from "js-base64"; import { ChainNonceGet, EstimateTxFees, - ExtractTxn, + ExtractAction, NftInfo, + PreTransfer, ValidateAddress, } from ".."; import { NftMintArgs } from ".."; @@ -81,7 +82,7 @@ export interface Approve { approveForMinter( address: NftInfo, sender: Sender - ): Promise; + ): Promise; } /** @@ -121,9 +122,10 @@ export type Web3Helper = BaseWeb3Helper & IsApproved & Approve & ValidateAddress & - ExtractTxn & { + ExtractAction & { createWallet(privateKey: string): Wallet; - }; + } & + Pick>, "preTransfer">; /** * Create an object implementing minimal utilities for a web3 chain @@ -185,9 +187,9 @@ export async function web3HelperFactory( const minter = Minter__factory.connect(minter_addr, provider); const erc1155 = XPNet__factory.connect(erc1155_addr, provider); - async function extractTxn( + async function extractAction( txr: TransactionResponse - ): Promise<[string, string]> { + ): Promise { const receipt = await txr.wait(); const log = receipt.logs.find((log) => log.address === minter.address); if (log === undefined) { @@ -196,7 +198,7 @@ export async function web3HelperFactory( const evdat = minter.interface.parseLog(log); const action_id: string = evdat.args[0].toString(); - return [receipt.transactionHash, action_id]; + return action_id; } const randomAction = () => @@ -237,12 +239,12 @@ export async function web3HelperFactory( const isApproved = await isApprovedForMinter(id, sender); const erc = UserNftMinter__factory.connect(id.native.contract, sender); if (isApproved) { - return true; + return undefined; } const receipt = await erc.approve(minter_addr, id.native.tokenId); await receipt.wait(); - return true; + return receipt.hash; }; const base = await baseWeb3HelperFactory(params.provider); @@ -251,7 +253,8 @@ export async function web3HelperFactory( ...base, approveForMinter, isApprovedForMinter, - extractTxn, + preTransfer: (s, id) => approveForMinter(id, s), + extractAction, getNonce: () => params.nonce, async balanceWrapped( address: string, diff --git a/src/socket.ts b/src/socket.ts index 0944cf256..f52bc5655 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -118,12 +118,12 @@ async function waitSocketData(buf: SocketResBuf, chain: number, action_id: } /** - * Create a [[TxnSocketHelper]] + * Create a [[SocketHelper]] * * @param uri URI of the Migration-Validator socket api * @param options socket.io options */ -export function txnSocketHelper( +export function socketHelper( uri: string, options?: Partial ): TxnSocketHelper & AlgorandSocketHelper { From dca90677283bdaebc6499911614f775778cce176 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 23 Nov 2021 17:17:44 +0530 Subject: [PATCH 199/956] factory: pkeyToSigner: add algorand --- src/factory/index.ts | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 46c707915..c61cecb86 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -39,6 +39,8 @@ import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; import { Wallet } from "ethers"; import { AlgorandArgs, AlgorandHelper, AlgoSignerH, ClaimNftInfo } from "../helpers/algorand"; +import algosdk from "algosdk"; +import { Base64 } from "js-base64"; export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; @@ -132,10 +134,10 @@ export type ChainFactory = { */ updateParams(nonce: ChainNonce, params: TP): void; nonceToChainNonce(nonce: number): ElrondNonce | TronNonce | Web3Nonce; - pkeyToSigner( - nonce: number, + pkeyToSigner( + nonce: ChainNonce, unknown>, key: string - ): Promise; + ): Promise; /** * * Get transaction in the destination chain @@ -406,18 +408,22 @@ export function ChainFactory( return await txSocket.waitTxHash(targetNonce, action); }, nonceToChainNonce, - async pkeyToSigner(nonce, key) { + async pkeyToSigner(nonce: ChainNonce, key: string) { let chain = nonceToChainNonce(nonce); switch (chain) { case Chain.ELROND: { - return UserSigner.fromPem(key); + return UserSigner.fromPem(key) as unknown as S; } case Chain.TRON: { - return key; + return key as unknown as S; + } + case Chain.ALGORAND: { + const mnem = algosdk.secretKeyToMnemonic(Base64.toUint8Array(key)); + return algosdk.mnemonicToSecretKey(mnem) as unknown as S; } default: { const chainH = await inner(chain); - return chainH.createWallet(key); + return chainH.createWallet(key) as unknown as S; } } }, From e358fa9347f966ab359ad5dcec358201e4dbb2ba Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 23 Nov 2021 17:21:54 +0530 Subject: [PATCH 200/956] pkeyToSigner: fix for algorand --- src/factory/index.ts | 5 +++-- src/helpers/algorand.ts | 14 ++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index c61cecb86..422361313 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -38,7 +38,7 @@ import { Address, UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; import { Wallet } from "ethers"; -import { AlgorandArgs, AlgorandHelper, AlgoSignerH, ClaimNftInfo } from "../helpers/algorand"; +import { AlgorandArgs, AlgorandHelper, AlgoSignerH, algoSignerWrapper, ClaimNftInfo } from "../helpers/algorand"; import algosdk from "algosdk"; import { Base64 } from "js-base64"; @@ -418,8 +418,9 @@ export function ChainFactory( return key as unknown as S; } case Chain.ALGORAND: { + const algo: AlgorandHelper = await inner(Chain.ALGORAND); const mnem = algosdk.secretKeyToMnemonic(Base64.toUint8Array(key)); - return algosdk.mnemonicToSecretKey(mnem) as unknown as S; + return algoSignerWrapper(algo.algod, algosdk.mnemonicToSecretKey(mnem)) as unknown as S; } default: { const chainH = await inner(chain); diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 92921db75..9522f1e86 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -14,7 +14,7 @@ type SignedTxn = { blob: string; } -type Ledger = "MainNet" | "TestNet"; +type Ledger = "MainNet" | "TestNet" | "any"; type BrowserSigner = { accounts(args: { ledger: Ledger }): Promise<{ address: string }[]>; @@ -52,8 +52,8 @@ export function typedAlgoSigner(): BrowserSigner { return AlgoSigner; } -export function algoSignerWrapper(algod: algosdk.Algodv2, acc: algosdk.Account): BrowserSigner { - return { +export function algoSignerWrapper(algod: algosdk.Algodv2, acc: algosdk.Account): AlgoSignerH { + const signer: BrowserSigner = { accounts(_) { return Promise.resolve([{ address: acc.addr @@ -75,6 +75,12 @@ export function algoSignerWrapper(algod: algosdk.Algodv2, acc: algosdk.Account): return algod.sendRawTransaction(Base64.toUint8Array(tx)).do(); } } + + return { + algoSigner: signer, + address: acc.addr, + ledger: "any" + } } export interface ClaimAlgorandNft { @@ -296,7 +302,7 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { nft, txFees ) - z1, + }, estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), From b9c8b4c24dd5458079abdbc83b475fb8f9b2765a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 26 Nov 2021 11:52:31 +0530 Subject: [PATCH 201/956] feat(elrond): expose doEgldSwap on ElrondHelper --- src/helpers/elrond.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index ccc37c817..9b457ba63 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -216,7 +216,9 @@ export type ElrondHelper = BalanceCheck & ValidateAddress & ExtractAction & PreTransfer & - EstimateTxFees; + EstimateTxFees & { + doEgldSwap(sender: ElrondSigner, value: EasyBalance): Promise; + }; /** * Create an object implementing cross chain utilities for elrond From 9ea158168ae2b96e6cab96b3dacd6078a3a74c69 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 26 Nov 2021 15:14:42 +0530 Subject: [PATCH 202/956] feat(chains): generalise pre transfer --- src/helpers/chain.ts | 16 ++++++-- src/helpers/elrond.ts | 87 +++++++++++++++++++++++-------------------- src/helpers/tron.ts | 10 +++-- src/helpers/web3.ts | 9 ++--- 4 files changed, 69 insertions(+), 53 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 30d60761f..9ae9ceae3 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,3 +1,5 @@ +import BigNumber from "bignumber.js"; + /** * NFT Info */ @@ -49,9 +51,17 @@ export interface UnfreezeForeign { /** * Action to perform before transfer/unfreeze (if any) */ -export interface PreTransfer { - preTransfer(sender: Signer, args: Args): Promise; - preUnfreeze(sender: Signer, args: Args): Promise; +export interface PreTransfer { + preTransfer( + sender: Signer, + nft: NftInfo, + fee: BigNumber + ): Promise; + preUnfreeze( + sender: Signer, + nft: NftInfo, + fee: BigNumber + ): Promise; } /** diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 9b457ba63..15d7e9be6 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -215,10 +215,8 @@ export type ElrondHelper = BalanceCheck & ChainNonceGet & ValidateAddress & ExtractAction & - PreTransfer & - EstimateTxFees & { - doEgldSwap(sender: ElrondSigner, value: EasyBalance): Promise; - }; + PreTransfer & + EstimateTxFees; /** * Create an object implementing cross chain utilities for elrond @@ -324,24 +322,33 @@ export const elrondHelperFactory: ( throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); }; - const doEgldSwap = async (sender: ElrondSigner, value: EasyBalance) => { - const utx = new Transaction({ - receiver: swapContract, - gasLimit: new GasLimit(50000000), - value: new Balance( - Egld.getToken(), - Egld.getNonce(), - new BigNumber(value.toString()) - ), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("wrapEgld")) - .build(), - }); - - const tx = await signAndSend(sender, utx); - await transactionResult(tx.getHash()); + const doEgldSwap = async ( + sender: ElrondSigner, + nft: NftInfo, + value: BigNumber + ) => { + const esdts = await listEsdt((await sender.getAddress()).toString()); + const res = esdts[nft.native.nonce]; + if (res === undefined || new BigNumber(res.balance).lt(value)) { + const utx = new Transaction({ + receiver: swapContract, + gasLimit: new GasLimit(50000000), + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(value.toString()) + ), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("wrapEgld")) + .build(), + }); + + const tx = await signAndSend(sender, utx); + await transactionResult(tx.getHash()); - return tx.getHash().toString(); + return tx.getHash().toString(); + } + return undefined; }; const unsignedTransferTxn = ( @@ -597,6 +604,23 @@ export const elrondHelperFactory: ( return new Address(await sender.getAddress()); } + async function balanceWrappedBatch( + address: string | Address, + chain_nonces: number[] + ): Promise> { + const esdts = Object.values(await listEsdt(address.toString())); + + const res = new Map(chain_nonces.map((v) => [v, new BigNumber(0)])); + + for (const esdt of esdts) { + esdt.nonce && + esdt.tokenIdentifier.startsWith(esdt.tokenIdentifier) && + res.set(esdt.nonce, new BigNumber(esdt.balance)); + } + + return res; + } + return { async balance(address: string | Address): Promise { const wallet = new Account(new Address(address)); @@ -605,22 +629,7 @@ export const elrondHelperFactory: ( return wallet.balance.valueOf(); }, - async balanceWrappedBatch( - address: string | Address, - chain_nonces: number[] - ): Promise> { - const esdts = Object.values(await listEsdt(address.toString())); - - const res = new Map(chain_nonces.map((v) => [v, new BigNumber(0)])); - - for (const esdt of esdts) { - esdt.nonce && - esdt.tokenIdentifier.startsWith(esdt.tokenIdentifier) && - res.set(esdt.nonce, new BigNumber(esdt.balance)); - } - - return res; - }, + balanceWrappedBatch, async transferNativeToForeign( sender: ElrondSigner, chain_nonce: number, @@ -642,9 +651,8 @@ export const elrondHelperFactory: ( chain_nonce: number, to: string, value: EasyBalance, - txFees: EasyBalance + _txFees: EasyBalance ): Promise { - await doEgldSwap(sender, txFees); const txu = unsignedUnfreezeTxn( chain_nonce, await getAddress(sender), @@ -655,7 +663,6 @@ export const elrondHelperFactory: ( return tx.getHash().toString(); }, - doEgldSwap, preTransfer: doEgldSwap, preUnfreeze: doEgldSwap, extractAction, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 29c099269..b0d500dce 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -95,7 +95,7 @@ export type TronHelper = BaseTronHelper & ValidateAddress & IsApproved & ExtractAction & - Pick>, "preTransfer">;; + Pick, "preTransfer">; export async function baseTronHelperFactory( provider: TronWeb @@ -317,15 +317,17 @@ export async function tronHelperFactory( return undefined; } - const txHash: string = await erc.approve(minter_addr, id.native.tokenId).send(); - return txHash + const txHash: string = await erc + .approve(minter_addr, id.native.tokenId) + .send(); + return txHash; }; return { ...base, extractAction, approveForMinter, - preTransfer: (s, id) => approveForMinter(id, s), + preTransfer: (s, nft, _fee) => approveForMinter(nft, s), isWrappedNft(nft) { return ( nft.native.contract.toLowerCase() === diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 2b66a6769..ec68069bb 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -124,8 +124,7 @@ export type Web3Helper = BaseWeb3Helper & ValidateAddress & ExtractAction & { createWallet(privateKey: string): Wallet; - } & - Pick>, "preTransfer">; + } & Pick, "preTransfer">; /** * Create an object implementing minimal utilities for a web3 chain @@ -187,9 +186,7 @@ export async function web3HelperFactory( const minter = Minter__factory.connect(minter_addr, provider); const erc1155 = XPNet__factory.connect(erc1155_addr, provider); - async function extractAction( - txr: TransactionResponse - ): Promise { + async function extractAction(txr: TransactionResponse): Promise { const receipt = await txr.wait(); const log = receipt.logs.find((log) => log.address === minter.address); if (log === undefined) { @@ -253,7 +250,7 @@ export async function web3HelperFactory( ...base, approveForMinter, isApprovedForMinter, - preTransfer: (s, id) => approveForMinter(id, s), + preTransfer: (s, id, _fee) => approveForMinter(id, s), extractAction, getNonce: () => params.nonce, async balanceWrapped( From 17cadbfc298c61e4e3e77e20c6fece5c6e256bb1 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 29 Nov 2021 18:52:21 +0530 Subject: [PATCH 203/956] web3: use workaround socket --- .gitignore | 1 + src/factory/factories.ts | 20 +++++++++++++++++++- src/helpers/web3.ts | 20 +++++++++++++++++++- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 5cdd2edad..bb2e93eee 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ coverage *.log tsconfig.tsbuildinfo dist +src/test.ts diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 0268d5d3d..4acf6b7d1 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -24,6 +24,8 @@ const EVM_TESTNET_VALIDATORS = [ "0x4Cfc8800606EDBd970298bB040Fc8D859c806702", ]; +const middleware_uri = "TODO" + export namespace ChainFactoryConfigs { export const TestNet: () => Partial = () => ({ elrondParams: { @@ -48,7 +50,7 @@ export namespace ChainFactoryConfigs { }, tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), - middleware_uri: "string", + middleware_uri, erc1155_addr: "string", minter_addr: "string", erc721_addr: "string", @@ -56,6 +58,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.TRON, }, avalancheParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), minter_addr: "0x273c507D8E21cDE039491B14647Fe9278D88e91D", erc1155_addr: "0x04F75a27cE2FDC591C71a88f1EcaC7e5Ce44f5Fc", @@ -64,6 +67,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.AVALANCHE, }, polygonParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), minter_addr: "0xc6148C73f4beCbd7aE39ba23a9CeBa9518fF96BE", erc1155_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", @@ -72,6 +76,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.POLYGON, }, fantomParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), minter_addr: "0x4Bd915C3e39cfF4eac842255965E79061c38cACD", erc1155_addr: "0xAAd4F7BB5FB661181D500829e60010043833a85B", @@ -80,6 +85,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.FANTOM, }, bscParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), minter_addr: "0x346cb8F9081CA561946E5F0f258e64dB7C075465", erc1155_addr: "0x434541d6aA0e8395d30e6E6Dd0A83680bc8Cd4B7", @@ -88,6 +94,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.BSC, }, celoParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), minter_addr: "0x00CAC06Dd0BB4103f8b62D280fE9BCEE8f26fD59", erc1155_addr: "0xAD2935E147b61175D5dc3A9e7bDa93B0975A43BA", @@ -96,6 +103,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.CELO, }, harmonyParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), minter_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", erc1155_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", @@ -104,6 +112,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.HARMONY, }, ropstenParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), minter_addr: "0x8C03d5A667A03Ef2A56E78609E510B6cB33147AD", erc1155_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", @@ -112,6 +121,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.ETHEREUM, }, xDaiParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), minter_addr: "string", erc1155_addr: "string", @@ -152,6 +162,7 @@ export namespace ChainFactoryConfigs { validators: [""], }, avalancheParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", @@ -160,6 +171,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.AVALANCHE, }, polygonParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), minter_addr: "0x2f072879411503580B8974A221bf76638C50a82a", erc1155_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", @@ -168,6 +180,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.POLYGON, }, fantomParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", @@ -176,6 +189,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.FANTOM, }, bscParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), minter_addr: "0xF8679A16858cB7d21b3aF6b2AA1d6818876D3741", erc1155_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", @@ -184,6 +198,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.BSC, }, celoParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), minter_addr: "string", erc1155_addr: "string", @@ -192,6 +207,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.CELO, }, harmonyParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), minter_addr: "string", erc1155_addr: "string", @@ -200,6 +216,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.HARMONY, }, ropstenParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), minter_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", erc1155_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", @@ -208,6 +225,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.ETHEREUM, }, xDaiParams: { + middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), minter_addr: "0x14fb9d669d4ddf712f1c56Ba7C54FF82D9be6377", erc1155_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index ec68069bb..b5c7864da 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -171,6 +171,7 @@ export async function baseWeb3HelperFactory( */ export interface Web3Params { provider: Provider; + middleware_uri: string; minter_addr: string; erc1155_addr: string; erc721_addr: string; @@ -186,7 +187,20 @@ export async function web3HelperFactory( const minter = Minter__factory.connect(minter_addr, provider); const erc1155 = XPNet__factory.connect(erc1155_addr, provider); - async function extractAction(txr: TransactionResponse): Promise { + const event_middleware = axios.create({ + baseURL: params.middleware_uri, + headers: { + "Content-Type": "application/json", + }, + }); + + async function notifyValidator(hash: string): Promise { + await event_middleware.post("/tx/web3", { chain_nonce: params.nonce, tx_hash: hash }); + } + + async function extractAction( + txr: TransactionResponse + ): Promise { const receipt = await txr.wait(); const log = receipt.logs.find((log) => log.address === minter.address); if (log === undefined) { @@ -311,6 +325,7 @@ export async function web3HelperFactory( value: EthBN.from(txFees.toString()), }); + await notifyValidator(txr.hash); return txr; }, async unfreezeWrapped( @@ -340,6 +355,9 @@ export async function web3HelperFactory( value: EthBN.from(txFees.toString()), }); + + await notifyValidator(res.hash); + return res; }, async estimateValidateTransferNft( From 189f160bc3b7116d07e6f5f7270a740f8f51fbf1 Mon Sep 17 00:00:00 2001 From: VKint <82875319+VKint@users.noreply.github.com> Date: Mon, 29 Nov 2021 16:48:54 +0200 Subject: [PATCH 204/956] Update factories.ts --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 4acf6b7d1..a07c70443 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -154,12 +154,12 @@ export namespace ChainFactoryConfigs { }, tronParams: { provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), - middleware_uri: "string", - erc1155_addr: "string", - minter_addr: "string", - erc721_addr: "string", + middleware_uri: "https://identifiytx.herokuapp.com", + erc1155_addr: "TSg3nSjuSuVf5vEk6f2WwM9Ph8bEaNNz9B", + minter_addr: "TMx1nCzbK7tbBinLh29CewahpbR1k64c8E", + erc721_addr: "TRON", nonce: Chain.TRON, - validators: [""], + validators: EVM_VALIDATORS, }, avalancheParams: { middleware_uri, From 27596d98c19d96fe80439feb24c761604a4bfa31 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Mon, 29 Nov 2021 21:12:02 +0200 Subject: [PATCH 205/956] hardcode moralis to mainnet --- src/factory/index.ts | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 422361313..47610011c 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -252,18 +252,22 @@ export function ChainFactory( const txSocket = socketHelper(appConfig.txSocketUri); const elrondNftRepo = elrondNftList(chainParams.elrondParams?.node_uri || ""); - const moralisNftRepo = - appConfig.moralisNetwork === "mainnet" - ? moralisNftList( - appConfig.moralisServer, - appConfig.moralisAppId, - appConfig.moralisSecret - ) - : moralisTestnetNftList( - appConfig.moralisServer, - appConfig.moralisAppId, - appConfig.moralisSecret - ); + const moralisNftRepo = moralisNftList( + appConfig.moralisServer, + appConfig.moralisAppId, + appConfig.moralisSecret + ) + // appConfig.moralisNetwork === "mainnet" + // ? moralisNftList( + // appConfig.moralisServer, + // appConfig.moralisAppId, + // appConfig.moralisSecret + // ) + // : moralisTestnetNftList( + // appConfig.moralisServer, + // appConfig.moralisAppId, + // appConfig.moralisSecret + // ); const tronNftRepo = chainParams.tronParams && tronListNft( From 6b7020f008785d6ccbffb6cc1e4c47168c5c2126 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 30 Nov 2021 12:56:35 +0530 Subject: [PATCH 206/956] feat(web3): setup unsigned txn creation --- src/helpers/chain.ts | 27 +++++++++++++++++++++++++++ src/helpers/web3.ts | 43 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 9ae9ceae3..ff880772b 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -90,6 +90,20 @@ export interface TransferNftForeign< ): Promise; } +export interface TransferNftForeignUnsigned< + ForeignAddr, + Balance, + RawNft, + Resp +> { + transferNftToForeignTxn( + chain_nonce: number, + to: ForeignAddr, + id: NftInfo, + txFees: Balance + ): Promise; +} + /** * Unfreeze native NFT existing on a foreign chain(Send back NFT) * chain_nonce is automatically derived @@ -115,6 +129,19 @@ export interface UnfreezeForeignNft< ): Promise; } +export interface UnfreezeForeignNftUnsigned< + ForeignAddr, + Balance, + RawNft, + Resp +> { + unfreezeWrappedNftTxn( + to: ForeignAddr, + id: NftInfo, + txFees: Balance + ): Promise; +} + /** * Get the balance of an address on the chain */ diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index ec68069bb..ae974b870 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -41,6 +41,8 @@ import { ExtractAction, NftInfo, PreTransfer, + TransferNftForeignUnsigned, + UnfreezeForeignNftUnsigned, ValidateAddress, } from ".."; import { NftMintArgs } from ".."; @@ -124,7 +126,19 @@ export type Web3Helper = BaseWeb3Helper & ValidateAddress & ExtractAction & { createWallet(privateKey: string): Wallet; - } & Pick, "preTransfer">; + } & Pick, "preTransfer"> & + UnfreezeForeignNftUnsigned< + string, + BigNumber, + EthNftInfo, + PopulatedTransaction + > & + TransferNftForeignUnsigned< + string, + BigNumber, + EthNftInfo, + PopulatedTransaction + >; /** * Create an object implementing minimal utilities for a web3 chain @@ -266,6 +280,16 @@ export async function web3HelperFactory( nft.native.contract.toLowerCase() === params.erc721_addr.toLowerCase() ); }, + async unfreezeWrappedNftTxn(to, id, txFees) { + const res = await minter.populateTransaction.withdrawNft( + to, + id.native.tokenId, + { + value: EthBN.from(txFees.toString()), + } + ); + return res; + }, createWallet(privateKey: string): Wallet { return new Wallet(privateKey, provider); }, @@ -296,6 +320,23 @@ export async function web3HelperFactory( }); return res; }, + async transferNftToForeignTxn( + chain_nonce: number, + to: string, + id: NftInfo, + txFees: BigNumber + ) { + const txr = await minter.populateTransaction.freezeErc721( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + { + value: EthBN.from(txFees.toString()), + } + ); + return txr; + }, async transferNftToForeign( sender: Signer, chain_nonce: number, From adc67594e977403bd348d8ff6dae1295a11fc0f0 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 30 Nov 2021 14:43:44 +0530 Subject: [PATCH 207/956] update default configs --- src/consts.ts | 5 ++++- src/factory/factories.ts | 4 ++-- src/factory/index.ts | 22 +++++++++++----------- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 5414414ed..5b402f6cd 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -8,6 +8,7 @@ import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; import { AlgorandArgs, AlgorandHelper } from "./helpers/algorand"; +import {AppConfig} from "./factory"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -203,10 +204,12 @@ export const CHAIN_INFO: ChainInfo = { // TODO: Algorand }; -export const Config = { +export const Config: AppConfig = { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + txSocketUri: 'https://sockettx.herokuapp.com', moralisServer: "https://azz9akudh6cf.usemoralis.com:2053/server", moralisAppId: "vt2JeuihhzyV9vgYbeAYO5BVSaCOdkAKr608XJOv", tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", + moralisNetwork: "mainnet" } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index a07c70443..b71adfac9 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -24,7 +24,7 @@ const EVM_TESTNET_VALIDATORS = [ "0x4Cfc8800606EDBd970298bB040Fc8D859c806702", ]; -const middleware_uri = "TODO" +const middleware_uri = "https://notifierrest.herokuapp.com" export namespace ChainFactoryConfigs { export const TestNet: () => Partial = () => ({ @@ -154,7 +154,7 @@ export namespace ChainFactoryConfigs { }, tronParams: { provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), - middleware_uri: "https://identifiytx.herokuapp.com", + middleware_uri, erc1155_addr: "TSg3nSjuSuVf5vEk6f2WwM9Ph8bEaNNz9B", minter_addr: "TMx1nCzbK7tbBinLh29CewahpbR1k64c8E", erc721_addr: "TRON", diff --git a/src/factory/index.ts b/src/factory/index.ts index 47610011c..8de7e52d1 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -257,17 +257,17 @@ export function ChainFactory( appConfig.moralisAppId, appConfig.moralisSecret ) - // appConfig.moralisNetwork === "mainnet" - // ? moralisNftList( - // appConfig.moralisServer, - // appConfig.moralisAppId, - // appConfig.moralisSecret - // ) - // : moralisTestnetNftList( - // appConfig.moralisServer, - // appConfig.moralisAppId, - // appConfig.moralisSecret - // ); + appConfig.moralisNetwork === "mainnet" + ? moralisNftList( + appConfig.moralisServer, + appConfig.moralisAppId, + appConfig.moralisSecret + ) + : moralisTestnetNftList( + appConfig.moralisServer, + appConfig.moralisAppId, + appConfig.moralisSecret + ); const tronNftRepo = chainParams.tronParams && tronListNft( From 0037b8243f6e189c45597b5f6e41454529e8bcd8 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 30 Nov 2021 17:06:12 +0530 Subject: [PATCH 208/956] feat(elrond): add raw txns to elrond --- src/factory/index.ts | 104 +++++++++++++++++++++++++++++------------- src/helpers/chain.ts | 6 ++- src/helpers/elrond.ts | 49 +++++++++++++++++++- src/helpers/web3.ts | 15 +++--- 4 files changed, 132 insertions(+), 42 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 8de7e52d1..79a68e8e8 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -1,6 +1,6 @@ -import { ElrondHelper, ElrondParams } from "../helpers/elrond"; +import { ElrondHelper, ElrondParams, ElrondRawUnsignedTxn, EsdtNftInfo } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; -import { Web3Helper, Web3Params } from "../helpers/web3"; +import { EthNftInfo, Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, ChainNonce, @@ -19,7 +19,9 @@ import { NftInfo, socketHelper, TransferNftForeign, + TransferNftForeignUnsigned, UnfreezeForeignNft, + UnfreezeForeignNftUnsigned, ValidateAddress, WrappedNftCheck, } from ".."; @@ -37,12 +39,17 @@ import { import { Address, UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; -import { Wallet } from "ethers"; -import { AlgorandArgs, AlgorandHelper, AlgoSignerH, algoSignerWrapper, ClaimNftInfo } from "../helpers/algorand"; +import { PopulatedTransaction, Wallet } from "ethers"; +import { + AlgorandArgs, + AlgorandHelper, + AlgoSignerH, + algoSignerWrapper, + ClaimNftInfo, +} from "../helpers/algorand"; import algosdk from "algosdk"; import { Base64 } from "js-base64"; - export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; type NftUriChain = ChainNonceGet & WrappedNftCheck; @@ -59,6 +66,14 @@ type FullChain = TransferNftForeign< NftUriChain & ValidateAddress; +type RawTxnBuiladableChain = TransferNftForeignUnsigned< + string, + BigNumber, + RawNft, + Resp +> & + UnfreezeForeignNftUnsigned & + WrappedNftCheck; /** * A type representing a chain factory. * @@ -139,26 +154,26 @@ export type ChainFactory = { key: string ): Promise; /** - * + * * Get transaction in the destination chain * WARN: use claimAlgorandNft instead for algorand. - * + * * @param chain source chain * @param destination destination chain * @param hash transaction hash from source chain - * + * * @returns transaction hash in original chain, unique action id */ getDestinationTransaction( chain: ExtractAction, destination: number, - hash: Txn, + hash: Txn ): Promise; /** - * + * * Claim an algorand nft - * - * + * + * * @param originChain chain from which the nft was transferred * @param txn Transaction Hash of the original * @param claimer the account which can claim the nft @@ -167,7 +182,16 @@ export type ChainFactory = { originChain: ExtractAction, txn: Txn, claimer: AlgoSignerH - ): Promise + ): Promise; + + generateNftTxn( + from: RawTxnBuiladableChain, + toNonce: number, + sender: string, + to: string, + nft: NftInfo, + fee: BigNumber + ): Promise; }; /** @@ -256,18 +280,18 @@ export function ChainFactory( appConfig.moralisServer, appConfig.moralisAppId, appConfig.moralisSecret - ) + ); appConfig.moralisNetwork === "mainnet" - ? moralisNftList( - appConfig.moralisServer, - appConfig.moralisAppId, - appConfig.moralisSecret - ) - : moralisTestnetNftList( - appConfig.moralisServer, - appConfig.moralisAppId, - appConfig.moralisSecret - ); + ? moralisNftList( + appConfig.moralisServer, + appConfig.moralisAppId, + appConfig.moralisSecret + ) + : moralisTestnetNftList( + appConfig.moralisServer, + appConfig.moralisAppId, + appConfig.moralisSecret + ); const tronNftRepo = chainParams.tronParams && tronListNft( @@ -407,7 +431,24 @@ export function ChainFactory( } return { - async getDestinationTransaction(chain: ExtractAction, targetNonce: number, hash: T) { + async generateNftTxn(chain, toNonce, sender, receiver, nft, fee) { + if (chain.isWrappedNft(nft)) { + return chain.unfreezeWrappedNftTxn(receiver, nft, fee, sender); + } else { + return chain.transferNftToForeignTxn( + toNonce, + receiver, + nft, + fee, + sender + ); + } + }, + async getDestinationTransaction( + chain: ExtractAction, + targetNonce: number, + hash: T + ) { const action = await chain.extractAction(hash); return await txSocket.waitTxHash(targetNonce, action); }, @@ -424,7 +465,10 @@ export function ChainFactory( case Chain.ALGORAND: { const algo: AlgorandHelper = await inner(Chain.ALGORAND); const mnem = algosdk.secretKeyToMnemonic(Base64.toUint8Array(key)); - return algoSignerWrapper(algo.algod, algosdk.mnemonicToSecretKey(mnem)) as unknown as S; + return algoSignerWrapper( + algo.algod, + algosdk.mnemonicToSecretKey(mnem) + ) as unknown as S; } default: { const chainH = await inner(chain); @@ -515,16 +559,12 @@ export function ChainFactory( ): Promise => { return await chain.mintNft(owner, args); }, - claimAlgorandNft: async ( - origin, - hash, - claimer - ) => { + claimAlgorandNft: async (origin, hash, claimer) => { const action = await origin.extractAction(hash); const algo: AlgorandHelper = await inner(Chain.ALGORAND); return await algo.claimAlgorandNft(claimer, action, txSocket); - } + }, }; } /** diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index ff880772b..7a76d2968 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -100,7 +100,8 @@ export interface TransferNftForeignUnsigned< chain_nonce: number, to: ForeignAddr, id: NftInfo, - txFees: Balance + txFees: Balance, + senderAddress: string ): Promise; } @@ -138,7 +139,8 @@ export interface UnfreezeForeignNftUnsigned< unfreezeWrappedNftTxn( to: ForeignAddr, id: NftInfo, - txFees: Balance + txFees: Balance, + sender: string ): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 15d7e9be6..8a55d1f85 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -44,6 +44,8 @@ import { ExtractAction, NftInfo, PreTransfer, + TransferNftForeignUnsigned, + UnfreezeForeignNftUnsigned, ValidateAddress, } from ".."; import { NftMintArgs } from ".."; @@ -187,6 +189,20 @@ export interface SetESDTRoles { */ type EventIdent = string; +export interface ElrondRawUnsignedTxn { + readonly nonce: number; + readonly value: string; + readonly receiver: string; + readonly sender: string; + readonly gasPrice: number; + readonly gasLimit: number; + readonly data?: string; + readonly chainID: string; + readonly version: number; + readonly options?: number; + readonly signature?: string; +} + /** * Traits implemented by this module */ @@ -216,7 +232,19 @@ export type ElrondHelper = BalanceCheck & ValidateAddress & ExtractAction & PreTransfer & - EstimateTxFees; + EstimateTxFees & + TransferNftForeignUnsigned< + string, + BigNumber, + EsdtNftInfo, + ElrondRawUnsignedTxn + > & + UnfreezeForeignNftUnsigned< + string, + BigNumber, + EsdtNftInfo, + ElrondRawUnsignedTxn + >; /** * Create an object implementing cross chain utilities for elrond @@ -630,6 +658,25 @@ export const elrondHelperFactory: ( return wallet.balance.valueOf(); }, balanceWrappedBatch, + async transferNftToForeignTxn(chain_nonce, to, nft, txFees, sender) { + return unsignedTransferNftTxn( + chain_nonce, + new Address(sender), + to, + nft.native, + new BigNumber(txFees.toString()) + ).toPlainObject(); + }, + async unfreezeWrappedNftTxn(to, nft, fee, sender) { + const txu = unsignedUnfreezeNftTxn( + new Address(sender), + to, + nft.native.nonce, + new BigNumber(fee.toString()) + ); + txu.getSignature().hex(); + return txu.toPlainObject(); + }, async transferNativeToForeign( sender: ElrondSigner, chain_nonce: number, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 89bd66137..6fd1186bb 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -209,12 +209,13 @@ export async function web3HelperFactory( }); async function notifyValidator(hash: string): Promise { - await event_middleware.post("/tx/web3", { chain_nonce: params.nonce, tx_hash: hash }); + await event_middleware.post("/tx/web3", { + chain_nonce: params.nonce, + tx_hash: hash, + }); } - async function extractAction( - txr: TransactionResponse - ): Promise { + async function extractAction(txr: TransactionResponse): Promise { const receipt = await txr.wait(); const log = receipt.logs.find((log) => log.address === minter.address); if (log === undefined) { @@ -294,7 +295,7 @@ export async function web3HelperFactory( nft.native.contract.toLowerCase() === params.erc721_addr.toLowerCase() ); }, - async unfreezeWrappedNftTxn(to, id, txFees) { + async unfreezeWrappedNftTxn(to, id, txFees, _sender) { const res = await minter.populateTransaction.withdrawNft( to, id.native.tokenId, @@ -338,7 +339,8 @@ export async function web3HelperFactory( chain_nonce: number, to: string, id: NftInfo, - txFees: BigNumber + txFees: BigNumber, + _sender ) { const txr = await minter.populateTransaction.freezeErc721( id.native.contract, @@ -396,7 +398,6 @@ export async function web3HelperFactory( value: EthBN.from(txFees.toString()), }); - await notifyValidator(res.hash); return res; From 1bda75137a36afd3e2da76b92f8bb2f4aab366f8 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 30 Nov 2021 17:12:24 +0530 Subject: [PATCH 209/956] docs(factory): document the generateNftTxn function --- src/factory/index.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 79a68e8e8..e6580a12c 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -1,4 +1,9 @@ -import { ElrondHelper, ElrondParams, ElrondRawUnsignedTxn, EsdtNftInfo } from "../helpers/elrond"; +import { + ElrondHelper, + ElrondParams, + ElrondRawUnsignedTxn, + EsdtNftInfo, +} from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; import { EthNftInfo, Web3Helper, Web3Params } from "../helpers/web3"; import { @@ -183,7 +188,15 @@ export type ChainFactory = { txn: Txn, claimer: AlgoSignerH ): Promise; - + /** + * Returns a raw txn (hopefully Typed JS Objects in all chains) which can be sent over the wire for signing and broadcasting. + * @param from The chain from which the NFT is being sent. + * @param toNonce The nonce of the chain to which the NFT is being sent. + * @param sender the address of the sender of the NFT. + * @param to the address of the receiver of the NFT. + * @param nft the NFT to be transferred. + * @param fee the fee to be paid for the transaction. + */ generateNftTxn( from: RawTxnBuiladableChain, toNonce: number, From 527faa52fc876eb1d0714019ec1352f5bdfc25ad Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 1 Dec 2021 11:49:25 +0530 Subject: [PATCH 210/956] feat(pre-transfer): create factory methods to generate pre transfer txns --- src/factory/index.ts | 20 +++++++++++++++----- src/helpers/chain.ts | 9 +++++++++ src/helpers/elrond.ts | 27 ++++++++++++++++++++++++++- src/helpers/web3.ts | 27 ++++++++++++++++++++++++++- 4 files changed, 76 insertions(+), 7 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index e6580a12c..7a8596921 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -2,10 +2,9 @@ import { ElrondHelper, ElrondParams, ElrondRawUnsignedTxn, - EsdtNftInfo, } from "../helpers/elrond"; import { TronHelper, TronParams } from "../helpers/tron"; -import { EthNftInfo, Web3Helper, Web3Params } from "../helpers/web3"; +import { Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, ChainNonce, @@ -22,6 +21,7 @@ import { ExtractAction, MintNft, NftInfo, + PreTransferRawTxn, socketHelper, TransferNftForeign, TransferNftForeignUnsigned, @@ -44,13 +44,12 @@ import { import { Address, UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; -import { PopulatedTransaction, Wallet } from "ethers"; +import { PopulatedTransaction } from "ethers"; import { AlgorandArgs, AlgorandHelper, AlgoSignerH, algoSignerWrapper, - ClaimNftInfo, } from "../helpers/algorand"; import algosdk from "algosdk"; import { Base64 } from "js-base64"; @@ -78,7 +77,8 @@ type RawTxnBuiladableChain = TransferNftForeignUnsigned< Resp > & UnfreezeForeignNftUnsigned & - WrappedNftCheck; + WrappedNftCheck & + PreTransferRawTxn; /** * A type representing a chain factory. * @@ -205,6 +205,13 @@ export type ChainFactory = { nft: NftInfo, fee: BigNumber ): Promise; + + generatePreTransferTxn( + from: RawTxnBuiladableChain, + sender: string, + nft: NftInfo, + fee: BigNumber + ): Promise; }; /** @@ -444,6 +451,9 @@ export function ChainFactory( } return { + async generatePreTransferTxn(from, sender, nft, fee) { + return await from.preTransferRawTxn(nft, sender, fee); + }, async generateNftTxn(chain, toNonce, sender, receiver, nft, fee) { if (chain.isWrappedNft(nft)) { return chain.unfreezeWrappedNftTxn(receiver, nft, fee, sender); diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 7a76d2968..926d676ad 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,3 +1,4 @@ +import { Address } from "@elrondnetwork/erdjs/out"; import BigNumber from "bignumber.js"; /** @@ -211,6 +212,14 @@ export function ConcurrentSendError(): Error { return new Error("concurrent_send"); } +export interface PreTransferRawTxn { + preTransferRawTxn( + id: NftInfo, + address: string, + value?: BigNumber + ): Promise; +} + export interface ChainNonceGet { getNonce(): number; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 8a55d1f85..100eb728b 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -44,6 +44,7 @@ import { ExtractAction, NftInfo, PreTransfer, + PreTransferRawTxn, TransferNftForeignUnsigned, UnfreezeForeignNftUnsigned, ValidateAddress, @@ -244,7 +245,8 @@ export type ElrondHelper = BalanceCheck & BigNumber, EsdtNftInfo, ElrondRawUnsignedTxn - >; + > & + PreTransferRawTxn; /** * Create an object implementing cross chain utilities for elrond @@ -789,6 +791,29 @@ export const elrondHelperFactory: ( tokenIdentReal(nft.native.tokenIdentifier) === elrondParams.esdt_nft ); }, + async preTransferRawTxn(id, address, value) { + if (!address || !value) { + throw new Error("address and value is required for elrond egld swap"); + } + const esdts = await listEsdt(address); + const res = esdts[id.native.nonce]; + if (res === undefined || new BigNumber(res.balance).lt(value)) { + const utx = new Transaction({ + receiver: swapContract, + gasLimit: new GasLimit(50000000), + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(value.toString()) + ), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("wrapEgld")) + .build(), + }); + return utx.toPlainObject(); + } + return undefined; + }, listNft, async setESDTRole( manager: ElrondSigner, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 6fd1186bb..86f952d2a 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -22,6 +22,7 @@ import { ContractTransaction, ethers, Transaction, + VoidSigner, } from "ethers"; import { TransactionReceipt, @@ -41,6 +42,7 @@ import { ExtractAction, NftInfo, PreTransfer, + PreTransferRawTxn, TransferNftForeignUnsigned, UnfreezeForeignNftUnsigned, ValidateAddress, @@ -138,7 +140,8 @@ export type Web3Helper = BaseWeb3Helper & BigNumber, EthNftInfo, PopulatedTransaction - >; + > & + PreTransferRawTxn; /** * Create an object implementing minimal utilities for a web3 chain @@ -290,6 +293,28 @@ export async function web3HelperFactory( return new BigNumber(bal.toString()); }, + async preTransferRawTxn(id, address, _value) { + const isApproved = await isApprovedForMinter( + id, + new VoidSigner(address, provider) + ); + + if (isApproved) { + return undefined; + } + + const erc = UserNftMinter__factory.connect( + id.native.contract, + new VoidSigner(address, provider) + ); + + const approvetxn = await erc.populateTransaction.approve( + minter_addr, + id.native.tokenId + ); + + return approvetxn; + }, isWrappedNft(nft) { return ( nft.native.contract.toLowerCase() === params.erc721_addr.toLowerCase() From 08726db957730e766ccea83f490e84716801dc29 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 1 Dec 2021 11:58:28 +0530 Subject: [PATCH 211/956] chore(prettier): format --- src/consts.ts | 8 +- src/factory/factories.ts | 2 +- src/helpers/algorand.ts | 504 ++++++++++++++++++++------------------- src/socket.ts | 53 ++-- 4 files changed, 287 insertions(+), 280 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 5b402f6cd..7e111bbc0 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -8,7 +8,7 @@ import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; import { AlgorandArgs, AlgorandHelper } from "./helpers/algorand"; -import {AppConfig} from "./factory"; +import { AppConfig } from "./factory"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -206,10 +206,10 @@ export const CHAIN_INFO: ChainInfo = { export const Config: AppConfig = { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - txSocketUri: 'https://sockettx.herokuapp.com', + txSocketUri: "https://sockettx.herokuapp.com", moralisServer: "https://azz9akudh6cf.usemoralis.com:2053/server", moralisAppId: "vt2JeuihhzyV9vgYbeAYO5BVSaCOdkAKr608XJOv", tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", - moralisNetwork: "mainnet" -} + moralisNetwork: "mainnet", +}; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index b71adfac9..26e2cc878 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -24,7 +24,7 @@ const EVM_TESTNET_VALIDATORS = [ "0x4Cfc8800606EDBd970298bB040Fc8D859c806702", ]; -const middleware_uri = "https://notifierrest.herokuapp.com" +const middleware_uri = "https://notifierrest.herokuapp.com"; export namespace ChainFactoryConfigs { export const TestNet: () => Partial = () => ({ diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 9522f1e86..857b9e9b6 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -3,309 +3,317 @@ import axios from "axios"; import { BigNumber } from "bignumber.js"; import { Base64 } from "js-base64"; import { AlgoNft } from "xpnet-nft-list"; -import { AlgorandSocketHelper, ChainNonceGet, EstimateTxFees, NftInfo, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, WrappedNftCheck } from ".."; +import { + AlgorandSocketHelper, + ChainNonceGet, + EstimateTxFees, + NftInfo, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + WrappedNftCheck, +} from ".."; type TxResp = { - txId: string; -} + txId: string; +}; type SignedTxn = { - txID: string; - blob: string; -} + txID: string; + blob: string; +}; type Ledger = "MainNet" | "TestNet" | "any"; type BrowserSigner = { - accounts(args: { ledger: Ledger }): Promise<{ address: string }[]>; - signTxn(transactions: { txn: string }[]): Promise; - send(info: { ledger: Ledger, tx: string }): Promise; -} + accounts(args: { ledger: Ledger }): Promise<{ address: string }[]>; + signTxn(transactions: { txn: string }[]): Promise; + send(info: { ledger: Ledger; tx: string }): Promise; +}; export type ClaimNftInfo = { - appId: number; - nftId: number; + appId: number; + nftId: number; }; /** * Selected address & ledger must be given explicitly */ export type AlgoSignerH = { - readonly algoSigner: BrowserSigner; - readonly address: string; - readonly ledger: Ledger; -} + readonly algoSigner: BrowserSigner; + readonly address: string; + readonly ledger: Ledger; +}; /** * This library is written in typescript. * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. - * + * * @return Strongly typed AlgoSigner from extension */ export function typedAlgoSigner(): BrowserSigner { - //@ts-expect-error why do you inject libraries like this :| - if (typeof AlgoSigner === "undefined") { - throw Error("algosigner not available!"); - } + //@ts-expect-error why do you inject libraries like this :| + if (typeof AlgoSigner === "undefined") { + throw Error("algosigner not available!"); + } - //@ts-expect-error why do you inject libraries like this :| - return AlgoSigner; + //@ts-expect-error why do you inject libraries like this :| + return AlgoSigner; } -export function algoSignerWrapper(algod: algosdk.Algodv2, acc: algosdk.Account): AlgoSignerH { - const signer: BrowserSigner = { - accounts(_) { - return Promise.resolve([{ - address: acc.addr - }]) +export function algoSignerWrapper( + algod: algosdk.Algodv2, + acc: algosdk.Account +): AlgoSignerH { + const signer: BrowserSigner = { + accounts(_) { + return Promise.resolve([ + { + address: acc.addr, }, - signTxn(txns) { - return Promise.resolve(txns.map(t => { - const signed = algosdk.signTransaction( - algosdk.decodeUnsignedTransaction(Base64.toUint8Array(t.txn)), - acc.sk - ); - return { - txID: signed.txID, - blob: Base64.fromUint8Array(signed.blob) - } - })) - }, - send({ tx }) { - return algod.sendRawTransaction(Base64.toUint8Array(tx)).do(); - } - } + ]); + }, + signTxn(txns) { + return Promise.resolve( + txns.map((t) => { + const signed = algosdk.signTransaction( + algosdk.decodeUnsignedTransaction(Base64.toUint8Array(t.txn)), + acc.sk + ); + return { + txID: signed.txID, + blob: Base64.fromUint8Array(signed.blob), + }; + }) + ); + }, + send({ tx }) { + return algod.sendRawTransaction(Base64.toUint8Array(tx)).do(); + }, + }; - return { - algoSigner: signer, - address: acc.addr, - ledger: "any" - } + return { + algoSigner: signer, + address: acc.addr, + ledger: "any", + }; } export interface ClaimAlgorandNft { - claimAlgorandNft(signer: AlgoSignerH, actionId: string, socket: AlgorandSocketHelper): Promise; + claimAlgorandNft( + signer: AlgoSignerH, + actionId: string, + socket: AlgorandSocketHelper + ): Promise; } export type AlgorandHelper = ChainNonceGet & - WrappedNftCheck & - TransferNftForeign< - AlgoSignerH, - string, - BigNumber, - AlgoNft, - string - > & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; - } & { - algod: algosdk.Algodv2; - } & - ClaimAlgorandNft; - + WrappedNftCheck & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; + } & { + algod: algosdk.Algodv2; + } & ClaimAlgorandNft; export type AlgorandArgs = { - algodApiKey: string; - algodUri: string; - algodPort: number | undefined; - sendNftAppId: number; - nonce: number; -} + algodApiKey: string; + algodUri: string; + algodPort: number | undefined; + sendNftAppId: number; + nonce: number; +}; type MinWrappedNft = { - wrapped: { - origin: string - } + wrapped: { + origin: string; + }; }; const encoder = new TextEncoder(); const MINT_NFT_COST = new BigNumber(1000); export function algorandHelper(args: AlgorandArgs): AlgorandHelper { - const appAddr = algosdk.getApplicationAddress(args.sendNftAppId); - const algod = new algosdk.Algodv2(args.algodApiKey, args.algodUri, args.algodPort) + const appAddr = algosdk.getApplicationAddress(args.sendNftAppId); + const algod = new algosdk.Algodv2( + args.algodApiKey, + args.algodUri, + args.algodPort + ); - async function waitTxnConfirm(txId: string, timeout: number) { - const status = await algod.status().do(); - if (typeof status === 'undefined') - throw new Error('Unable to get node status'); + async function waitTxnConfirm(txId: string, timeout: number) { + const status = await algod.status().do(); + if (typeof status === "undefined") + throw new Error("Unable to get node status"); - const startround = status['last-round'] + 1; - let currentround = startround; - while (currentround < startround + timeout) { - const pendingInfo = await algod - .pendingTransactionInformation(txId) - .do(); - if (pendingInfo !== undefined) { - if ( - pendingInfo['confirmed-round'] !== null && - pendingInfo['confirmed-round'] > 0 - ) { - // Got the completed Transaction - return pendingInfo; - } - - if ( - pendingInfo['pool-error'] != null && - pendingInfo['pool-error'].length > 0 - ) { - // If there was a pool error, then the transaction has been rejected! - throw new Error( - `Transaction Rejected pool error${pendingInfo['pool-error']}` - ); - } - } - await algod.statusAfterBlock(currentround).do(); - currentround += 1; + const startround = status["last-round"] + 1; + let currentround = startround; + while (currentround < startround + timeout) { + const pendingInfo = await algod.pendingTransactionInformation(txId).do(); + if (pendingInfo !== undefined) { + if ( + pendingInfo["confirmed-round"] !== null && + pendingInfo["confirmed-round"] > 0 + ) { + // Got the completed Transaction + return pendingInfo; } - throw new Error(`Transaction not confirmed after ${timeout} rounds!`); + if ( + pendingInfo["pool-error"] != null && + pendingInfo["pool-error"].length > 0 + ) { + // If there was a pool error, then the transaction has been rejected! + throw new Error( + `Transaction Rejected pool error${pendingInfo["pool-error"]}` + ); + } + } + await algod.statusAfterBlock(currentround).do(); + currentround += 1; } - const transferNft = async ( - signer: AlgoSignerH, - chain_nonce: number, - to: string, - nft: NftInfo, - txFees: BigNumber - ) => { - const suggested = await algod.getTransactionParams().do(); - const callTx = algosdk.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: args.sendNftAppId, - appArgs: [ - encoder.encode("opt_in_nft") - ], - foreignAssets: [nft.native.nftId], - suggestedParams: suggested - }); - const encodedTx = Base64.fromUint8Array(callTx.toByte()); - const signedTxCall = await signer.algoSigner.signTxn([{ txn: encodedTx }]); - const res = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedTxCall[0].blob - }); - await waitTxnConfirm(res.txId, 10000); + throw new Error(`Transaction not confirmed after ${timeout} rounds!`); + } - const feesTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: appAddr, - amount: BigInt(txFees.toString()), - suggestedParams: suggested - }) - const transferTx = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: appAddr, - amount: 1, - assetIndex: nft.native.nftId, - suggestedParams: suggested - }); - const tCallTx = algosdk.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: args.sendNftAppId, - appArgs: [ - encoder.encode("receive_nft"), - encoder.encode(to), - new Uint8Array(Buffer.concat([ - Buffer.from(new Uint32Array([0]).buffer), - Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse() - ])) - ], - foreignAssets: [nft.native.nftId], - suggestedParams: suggested - }); - algosdk.assignGroupID([feesTx, transferTx, tCallTx]); - const encodedTxns = [ - { txn: Base64.fromUint8Array(feesTx.toByte()) }, - { txn: Base64.fromUint8Array(transferTx.toByte()) }, - { txn: Base64.fromUint8Array(tCallTx.toByte()) } - ]; - const signedTxns = await signer.algoSigner.signTxn(encodedTxns); - const sendRes = await algod.sendRawTransaction([ - Base64.toUint8Array(signedTxns[0].blob), - Base64.toUint8Array(signedTxns[1].blob), - Base64.toUint8Array(signedTxns[2].blob) - ]).do(); - await waitTxnConfirm(sendRes.txId, 10000); + const transferNft = async ( + signer: AlgoSignerH, + chain_nonce: number, + to: string, + nft: NftInfo, + txFees: BigNumber + ) => { + const suggested = await algod.getTransactionParams().do(); + const callTx = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs: [encoder.encode("opt_in_nft")], + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + const encodedTx = Base64.fromUint8Array(callTx.toByte()); + const signedTxCall = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTxCall[0].blob, + }); + await waitTxnConfirm(res.txId, 10000); - return sendRes.txId as string; - } + const feesTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: BigInt(txFees.toString()), + suggestedParams: suggested, + }); + const transferTx = + algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: 1, + assetIndex: nft.native.nftId, + suggestedParams: suggested, + }); + const tCallTx = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs: [ + encoder.encode("receive_nft"), + encoder.encode(to), + new Uint8Array( + Buffer.concat([ + Buffer.from(new Uint32Array([0]).buffer), + Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse(), + ]) + ), + ], + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + algosdk.assignGroupID([feesTx, transferTx, tCallTx]); + const encodedTxns = [ + { txn: Base64.fromUint8Array(feesTx.toByte()) }, + { txn: Base64.fromUint8Array(transferTx.toByte()) }, + { txn: Base64.fromUint8Array(tCallTx.toByte()) }, + ]; + const signedTxns = await signer.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + Base64.toUint8Array(signedTxns[0].blob), + Base64.toUint8Array(signedTxns[1].blob), + Base64.toUint8Array(signedTxns[2].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId, 10000); - async function claimNft( - signer: AlgoSignerH, - info: ClaimNftInfo - ) { - const suggested = await algod.getTransactionParams().do(); - const optIn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: signer.address, - amount: 0, - assetIndex: info.nftId, - suggestedParams: suggested - }); - const encodedTx = Base64.fromUint8Array(optIn.toByte()); - const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); - const res = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedTx[0].blob - }); - await waitTxnConfirm(res.txId, 10000); + return sendRes.txId as string; + }; - const callTxn = algosdk.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: info.appId, - appArgs: [ - encoder.encode("transfer_nft") - ], - foreignAssets: [info.nftId], - suggestedParams: suggested, - }); - const encodedCall = Base64.fromUint8Array(callTxn.toByte()); - const signedCall = await signer.algoSigner.signTxn([{ - txn: encodedCall, - }]) - const callRes = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedCall[0].blob - }); + async function claimNft(signer: AlgoSignerH, info: ClaimNftInfo) { + const suggested = await algod.getTransactionParams().do(); + const optIn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: signer.address, + amount: 0, + assetIndex: info.nftId, + suggestedParams: suggested, + }); + const encodedTx = Base64.fromUint8Array(optIn.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob, + }); + await waitTxnConfirm(res.txId, 10000); - await waitTxnConfirm(callRes.txId, 10000); - return callRes.txId; - } + const callTxn = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: info.appId, + appArgs: [encoder.encode("transfer_nft")], + foreignAssets: [info.nftId], + suggestedParams: suggested, + }); + const encodedCall = Base64.fromUint8Array(callTxn.toByte()); + const signedCall = await signer.algoSigner.signTxn([ + { + txn: encodedCall, + }, + ]); + const callRes = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedCall[0].blob, + }); - return { - algod, - getNonce: () => args.nonce, - claimNft, - async claimAlgorandNft(signer, action, socket) { - const info = await socket.waitAlgorandNft(action); + await waitTxnConfirm(callRes.txId, 10000); + return callRes.txId; + } - return await claimNft(signer, info); - }, - isWrappedNft(nft) { - return nft.native.creator === appAddr - }, - transferNftToForeign: transferNft, - unfreezeWrappedNft: async ( - signer, - to, - nft, - txFees - ) => { - const nftMeta = await axios.get(nft.uri); - return await transferNft( - signer, - parseInt(nftMeta.data.wrapped.origin), - to, - nft, - txFees - ) - }, - estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), - estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), - validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), + return { + algod, + getNonce: () => args.nonce, + claimNft, + async claimAlgorandNft(signer, action, socket) { + const info = await socket.waitAlgorandNft(action); - } -} \ No newline at end of file + return await claimNft(signer, info); + }, + isWrappedNft(nft) { + return nft.native.creator === appAddr; + }, + transferNftToForeign: transferNft, + unfreezeWrappedNft: async (signer, to, nft, txFees) => { + const nftMeta = await axios.get(nft.uri); + return await transferNft( + signer, + parseInt(nftMeta.data.wrapped.origin), + to, + nft, + txFees + ); + }, + estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), + estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), + validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), + }; +} diff --git a/src/socket.ts b/src/socket.ts index f52bc5655..5031bf0c9 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -2,10 +2,12 @@ import { io, ManagerOptions, SocketOptions } from "socket.io-client"; import { ClaimNftInfo } from "./helpers/algorand"; type ChainAwaiter = { - [action_id: string]: { + [action_id: string]: + | { resolve?: (data: T) => void; event_res?: T; - } | undefined; + } + | undefined; }; type SocketResInnerBuf = { @@ -42,11 +44,11 @@ export type TxnSocketHelper = { export type AlgorandSocketHelper = { waitAlgorandNft(action_id: string): Promise; -} +}; function pairActionAlgo(action_id: string): number { const numId = parseInt(action_id); - return numId >= 15 ? numId * 15 + 15 + numId : numId + 15*15; + return numId >= 15 ? numId * 15 + 15 + numId : numId + 15 * 15; } function socketResBuf(): SocketResBuf { @@ -94,7 +96,12 @@ function socketResBuf(): SocketResBuf { }; } -function add_event(buf: SocketResBuf, chain: number, id: string, data: T) { +function add_event( + buf: SocketResBuf, + chain: number, + id: string, + data: T +) { const resolve = buf.getResolver(chain, id); if (resolve === undefined) { buf.setEventRes(chain, id, data); @@ -103,14 +110,18 @@ function add_event(buf: SocketResBuf, chain: number, id: string, data: T) resolve(data); } -async function waitSocketData(buf: SocketResBuf, chain: number, action_id: string): Promise { +async function waitSocketData( + buf: SocketResBuf, + chain: number, + action_id: string +): Promise { const data = buf.getEventRes(chain, action_id); if (data !== undefined) { buf.unsetAction(chain, action_id); return data; } - const dataP: Promise = new Promise(r => { + const dataP: Promise = new Promise((r) => { buf.setResolver(chain, action_id, r); }); @@ -140,34 +151,22 @@ export function socketHelper( socket.on( "algorand_minted_event", - (_: number, action_id: string, app_id: number, nft_id: number) => add_event( - algoBuf, - 15, - action_id, - { - appId: app_id, - nftId: nft_id - } - ) + (_: number, action_id: string, app_id: number, nft_id: number) => + add_event(algoBuf, 15, action_id, { + appId: app_id, + nftId: nft_id, + }) ); return { async waitTxHash(chain: number, action_id: string): Promise { - return await waitSocketData( - txbuf, - chain, - action_id - ); + return await waitSocketData(txbuf, chain, action_id); }, async waitAlgorandNft(action_id: string): Promise { // Validator sends a an action paired with chain id // this is implementation dependent on validator const paired = pairActionAlgo(action_id).toString(); - return await waitSocketData( - algoBuf, - 15, - paired - ); - } + return await waitSocketData(algoBuf, 15, paired); + }, }; } From 23563bd1065224253cfc6d40f4991e233d0d82a1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 1 Dec 2021 13:10:41 +0530 Subject: [PATCH 212/956] feat(tron): add raw txn generation --- src/helpers/tron.ts | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index b0d500dce..34d2ef5f1 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -33,11 +33,15 @@ import { IsApproved, NftMintArgs, PreTransfer, + PreTransferRawTxn, + TransferNftForeignUnsigned, + UnfreezeForeignNftUnsigned, ValidateAddress, } from ".."; import { ChainNonceGet, NftInfo } from ".."; import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; import { Transaction } from "ethers"; +import { UnfreezeNftEvent } from "xpnet-web3-contracts/dist/Minter"; // Uses default private key in provider if sender is undefinedd type TronSender = string | undefined; @@ -95,7 +99,10 @@ export type TronHelper = BaseTronHelper & ValidateAddress & IsApproved & ExtractAction & - Pick, "preTransfer">; + Pick, "preTransfer"> & + PreTransferRawTxn & + UnfreezeForeignNftUnsigned & + TransferNftForeignUnsigned; export async function baseTronHelperFactory( provider: TronWeb @@ -328,6 +335,34 @@ export async function tronHelperFactory( extractAction, approveForMinter, preTransfer: (s, nft, _fee) => approveForMinter(nft, s), + async preTransferRawTxn(nft, address, _value) { + await setSigner(address); + const erc = await provider.contract( + UserNftMinter__factory.abi, + nft.native.contract + ); + const isApproved = await isApprovedForMinter(nft, address); + if (isApproved) { + return undefined; + } + + const txHash: string = await erc.approve(minter_addr, nft.native.tokenId); + return JSON.stringify(txHash); + }, + async transferNftToForeignTxn(nonce, to, id, _fee) { + const txr = await minter.freezeErc721( + id.native.contract, + id.native.tokenId, + nonce, + to + ); + return JSON.stringify(txr, null, 2); + }, + async unfreezeWrappedNftTxn(to, id, _fee, sender) { + setSigner(sender); + const res = await minter.withdrawNft(to, id.native.tokenId); + return JSON.stringify(res); + }, isWrappedNft(nft) { return ( nft.native.contract.toLowerCase() === From 08c95c75cf0de5f026878b29984c0fcef3a4efc3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 1 Dec 2021 14:15:25 +0530 Subject: [PATCH 213/956] typing(tron): strongly type the generated txn to string --- src/factory/index.ts | 4 ++-- src/helpers/tron.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 7a8596921..e1b20da08 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -204,14 +204,14 @@ export type ChainFactory = { to: string, nft: NftInfo, fee: BigNumber - ): Promise; + ): Promise; generatePreTransferTxn( from: RawTxnBuiladableChain, sender: string, nft: NftInfo, fee: BigNumber - ): Promise; + ): Promise; }; /** diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 34d2ef5f1..acff52ab4 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -101,8 +101,8 @@ export type TronHelper = BaseTronHelper & ExtractAction & Pick, "preTransfer"> & PreTransferRawTxn & - UnfreezeForeignNftUnsigned & - TransferNftForeignUnsigned; + UnfreezeForeignNftUnsigned & + TransferNftForeignUnsigned; export async function baseTronHelperFactory( provider: TronWeb From 594353566280173060f952a122c9832746ea6012 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 2 Dec 2021 13:40:44 +0530 Subject: [PATCH 214/956] feat(chains): add method to extract transaction status --- src/helpers/chain.ts | 10 ++++++++++ src/helpers/elrond.ts | 18 +++++++++++++++++- src/helpers/tron.ts | 15 ++++++++++++++- src/helpers/web3.ts | 18 +++++++++++++++++- 4 files changed, 58 insertions(+), 3 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 926d676ad..9841d7294 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -227,3 +227,13 @@ export interface ChainNonceGet { export interface ExtractAction { extractAction(txn: Txn): Promise; } + +export enum TransactionStatus { + PENDING = "pending", + SUCCESS = "success", + FAILURE = "failure", + UNKNOWN = "unknown", +} +export interface ExtractTxnStatus { + extractTxnStatus(txn: Txn): Promise; +} diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 100eb728b..f96d36f01 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -37,11 +37,13 @@ import { UnfreezeForeign, UnfreezeForeignNft, WrappedNftCheck, + TransactionStatus, } from "./chain"; import { ChainNonceGet, EstimateTxFees, ExtractAction, + ExtractTxnStatus, NftInfo, PreTransfer, PreTransferRawTxn, @@ -246,7 +248,8 @@ export type ElrondHelper = BalanceCheck & EsdtNftInfo, ElrondRawUnsignedTxn > & - PreTransferRawTxn; + PreTransferRawTxn & + ExtractTxnStatus; /** * Create an object implementing cross chain utilities for elrond @@ -679,6 +682,19 @@ export const elrondHelperFactory: ( txu.getSignature().hex(); return txu.toPlainObject(); }, + async extractTxnStatus(txn) { + const status = await provider.getTransactionStatus(txn.getHash()); + if (status.isPending()) { + return TransactionStatus.PENDING; + } + if (status.isSuccessful()) { + return TransactionStatus.SUCCESS; + } + if (status.isFailed()) { + return TransactionStatus.FAILURE; + } + return TransactionStatus.UNKNOWN; + }, async transferNativeToForeign( sender: ElrondSigner, chain_nonce: number, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index acff52ab4..48e62e2fa 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -30,10 +30,12 @@ import { import { Approve, ExtractAction, + ExtractTxnStatus, IsApproved, NftMintArgs, PreTransfer, PreTransferRawTxn, + TransactionStatus, TransferNftForeignUnsigned, UnfreezeForeignNftUnsigned, ValidateAddress, @@ -102,7 +104,8 @@ export type TronHelper = BaseTronHelper & Pick, "preTransfer"> & PreTransferRawTxn & UnfreezeForeignNftUnsigned & - TransferNftForeignUnsigned; + TransferNftForeignUnsigned & + ExtractTxnStatus; export async function baseTronHelperFactory( provider: TronWeb @@ -388,6 +391,16 @@ export async function tronHelperFactory( await notifyValidator(res); return res; }, + async extractTxnStatus(txnHash) { + const txn = await provider.trx.getConfirmedTransaction(txnHash); + const status = txn["ret"][0]["contractRet"]; + if (status === "SUCCESS") { + return TransactionStatus.SUCCESS; + } else if (status === "FAIL") { + return TransactionStatus.FAILURE; + } + return TransactionStatus.PENDING; + }, async unfreezeWrapped( sender: TronSender, chain_nonce: number, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 86f952d2a..bd90f5692 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -40,9 +40,11 @@ import { ChainNonceGet, EstimateTxFees, ExtractAction, + ExtractTxnStatus, NftInfo, PreTransfer, PreTransferRawTxn, + TransactionStatus, TransferNftForeignUnsigned, UnfreezeForeignNftUnsigned, ValidateAddress, @@ -141,7 +143,8 @@ export type Web3Helper = BaseWeb3Helper & EthNftInfo, PopulatedTransaction > & - PreTransferRawTxn; + PreTransferRawTxn & + ExtractTxnStatus; /** * Create an object implementing minimal utilities for a web3 chain @@ -320,6 +323,19 @@ export async function web3HelperFactory( nft.native.contract.toLowerCase() === params.erc721_addr.toLowerCase() ); }, + async extractTxnStatus(txn) { + const status = (await (await provider.getTransaction(txn.hash)).wait()) + .status; + if (status === undefined) { + return TransactionStatus.PENDING; + } + if (status === 1) { + return TransactionStatus.SUCCESS; + } else if (status === 0) { + return TransactionStatus.FAILURE; + } + return TransactionStatus.UNKNOWN; + }, async unfreezeWrappedNftTxn(to, id, txFees, _sender) { const res = await minter.populateTransaction.withdrawNft( to, From ca1bfa15d65185bd113d5b809c319f1f2194b3cd Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 2 Dec 2021 15:04:58 +0530 Subject: [PATCH 215/956] feat(factory): return status as well from getDestinationTxn --- src/factory/index.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index e1b20da08..117802986 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -19,10 +19,12 @@ import { ChainNonceGet, EstimateTxFees, ExtractAction, + ExtractTxnStatus, MintNft, NftInfo, PreTransferRawTxn, socketHelper, + TransactionStatus, TransferNftForeign, TransferNftForeignUnsigned, UnfreezeForeignNft, @@ -173,7 +175,7 @@ export type ChainFactory = { chain: ExtractAction, destination: number, hash: Txn - ): Promise; + ): Promise<[string, TransactionStatus]>; /** * * Claim an algorand nft @@ -468,12 +470,13 @@ export function ChainFactory( } }, async getDestinationTransaction( - chain: ExtractAction, + chain: ExtractAction & ExtractTxnStatus, targetNonce: number, - hash: T + txn: T ) { - const action = await chain.extractAction(hash); - return await txSocket.waitTxHash(targetNonce, action); + const action = await chain.extractAction(txn); + const status = await chain.extractTxnStatus(txn); + return [await txSocket.waitTxHash(targetNonce, action), status]; }, nonceToChainNonce, async pkeyToSigner(nonce: ChainNonce, key: string) { From 6203606e1faf35df8015306f4067ea35bc6cc44f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 2 Dec 2021 15:36:25 +0530 Subject: [PATCH 216/956] fix(factory): getDestinationTxn should only take hash of the txn --- src/factory/index.ts | 9 +++++---- src/helpers/chain.ts | 4 ++-- src/helpers/elrond.ts | 6 ++++-- src/helpers/tron.ts | 2 +- src/helpers/web3.ts | 5 ++--- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 117802986..d6840f376 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -172,7 +172,7 @@ export type ChainFactory = { * @returns transaction hash in original chain, unique action id */ getDestinationTransaction( - chain: ExtractAction, + chain: ExtractAction & ExtractTxnStatus, destination: number, hash: Txn ): Promise<[string, TransactionStatus]>; @@ -470,13 +470,14 @@ export function ChainFactory( } }, async getDestinationTransaction( - chain: ExtractAction & ExtractTxnStatus, + chain: ExtractAction & ExtractTxnStatus, targetNonce: number, txn: T ) { const action = await chain.extractAction(txn); - const status = await chain.extractTxnStatus(txn); - return [await txSocket.waitTxHash(targetNonce, action), status]; + const hash = await txSocket.waitTxHash(targetNonce, action); + const status = await chain.extractTxnStatus(hash); + return [hash, status]; }, nonceToChainNonce, async pkeyToSigner(nonce: ChainNonce, key: string) { diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 9841d7294..f74092211 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -234,6 +234,6 @@ export enum TransactionStatus { FAILURE = "failure", UNKNOWN = "unknown", } -export interface ExtractTxnStatus { - extractTxnStatus(txn: Txn): Promise; +export interface ExtractTxnStatus { + extractTxnStatus(txn: string): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index f96d36f01..cc3bd8629 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -249,7 +249,7 @@ export type ElrondHelper = BalanceCheck & ElrondRawUnsignedTxn > & PreTransferRawTxn & - ExtractTxnStatus; + ExtractTxnStatus; /** * Create an object implementing cross chain utilities for elrond @@ -683,7 +683,9 @@ export const elrondHelperFactory: ( return txu.toPlainObject(); }, async extractTxnStatus(txn) { - const status = await provider.getTransactionStatus(txn.getHash()); + const status = await provider.getTransactionStatus( + new TransactionHash(txn) + ); if (status.isPending()) { return TransactionStatus.PENDING; } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 48e62e2fa..c2ba061c4 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -105,7 +105,7 @@ export type TronHelper = BaseTronHelper & PreTransferRawTxn & UnfreezeForeignNftUnsigned & TransferNftForeignUnsigned & - ExtractTxnStatus; + ExtractTxnStatus; export async function baseTronHelperFactory( provider: TronWeb diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index bd90f5692..ccaee10e7 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -144,7 +144,7 @@ export type Web3Helper = BaseWeb3Helper & PopulatedTransaction > & PreTransferRawTxn & - ExtractTxnStatus; + ExtractTxnStatus; /** * Create an object implementing minimal utilities for a web3 chain @@ -324,8 +324,7 @@ export async function web3HelperFactory( ); }, async extractTxnStatus(txn) { - const status = (await (await provider.getTransaction(txn.hash)).wait()) - .status; + const status = (await (await provider.getTransaction(txn)).wait()).status; if (status === undefined) { return TransactionStatus.PENDING; } From b6ad29d4bf9182ae81d5c1a6d426adbf99fbd9c4 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Thu, 2 Dec 2021 20:22:18 +0200 Subject: [PATCH 217/956] Update README.md --- README.md | 255 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 188 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index 03548e124..1f2b2c476 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,13 @@ +

+ # XP Network JS API -### Work In Progress / Alpha Stage Library +
-Features Available :- +### Work In Progress / Alpha Stage Library +
+Available Features: +
- [x] Listing NFTs - [x] Transferring NFTs between chains @@ -10,141 +15,259 @@ Features Available :- - [x] Estimating the TX fee - [ ] ... and More to come -
+

## To list and transfer NFTs, follow the steps below: +
+
-- Make sure [nodejs](https://nodejs.org/en/download/) is installed on your machine. +Make sure [nodejs](https://nodejs.org/en/download/) is installed on your machine.
+
-### 1. Import xp.network package into your project with the following command: +### 1. Install the libraries required for the project: +
-``` +```bash yarn add xp.network @elrondnetwork/erdjs ethers ``` OR +```bash +npm i --save xp.network @elrondnetwork/erdjs ethers ``` -npm install xp.network @elrondnetwork/erdjs ethers + +To import the latest version of xp.network library: + +```bash +yarn add "git+https://https://github.com/xp-network/xpjs#master-dist" ``` -
+
-### 2. Import the dependencies +### 2. Import the dependencies

```javascript import { - ChainFactoryConfigs, - ChainFactory, - ElrondHelper, - ElrondParams, - TronHelper, - TronParams, - Web3Helper, - Web3Params, + ChainFactoryConfigs, ChainFactory, + ElrondHelper, ElrondParams, + TronHelper, TronParams, + Web3Helper, Web3Params, } from "xp.network/dist"; -// EVM chains compatible wallet: -import { Wallet } from "ethers"; + // Chanin name to chain nonce mapper: import { Chain, Config } from "xp.network/dist/consts"; -// Elrond provider: -import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; - -// Fetch the config for required networks i.e. Mainnet/Testnet -// Networks from the ChainFactoryConfigs namespace. You can also mix -// and match the configs to your heart's desire. -const mainnetConfig = ChainFactoryConfigs.MainNet; // You can also call the ChainFactoryConfigs.MainNet -// Instantiate the factory by populating the function call with the above objects. -const factory = ChainFactory(Config, mainnetConfig()); +// Instantiate the chain factory for the +// MAINNET +const mainnetConfig = ChainFactoryConfigs.MainNet(); +const factory = ChainFactory(Config, mainnetConfig); +// or +// TESTNET +const testnetConfig = ChainFactoryConfigs.TestNet(); +const factory = ChainFactory(Config, testnetConfig); ``` -
+

+
+ +## 3. Get the signer objects + +
+ +| Chain | Parameters | +|:-----:|:-----:| +| Elrond | elrondParams | +| BSC | bscParams | +| Ethereum | ropstenParams | +| Avalanche | avalancheParams | +| Polygon | polygonParams | +| Fantom | fantomParams | +| Tron | tronParams | +| xDai | xDaiParams | -### 3. Getting the signer object +

+ +### 3.1 Example of getting the signer object (for manual testing in the BE) + +
```javascript -// Dont forget to import Wallet from ethersjs. +// EVM chains compatible wallet: import { Wallet } from "ethers"; +// EVM signer for testing in the BE const signer = new Wallet( "PRIVATE KEY HERE", - mainnetConfig().polygonParams?.provider + mainnetConfig.polygonParams?.provider ); ``` +
+ +### 3.2 Example of getting the signer object (in the FE for web3):

+ +```typescript +// EVM chains compatible signer: +import ethers from 'ethers'; +const signer = (new ethers.providers.Web3Provider(window.ethereum)).getSigner(); +``` +
+ +### 3.3 Example of getting the signer object (in the FE for Elrond):

+```typescript +// ELROND provider: +import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; +const elrondSigner = ExtensionProvider.getInstance(); +``` + +### 3.4 Example of getting the signer object (in the FE for Tron):

+```typescript +// Address is fetched from tronweb +const addresses = await window.tronLink.tronWeb.request({ + method: "tron_requestAccounts", +}); +const tronSigner = addresses[0]; +```
-### 4. Getting the inner objects from this factory that can be used for transferring, minting, estimation of gas fees. +For the ways of connecting the wallets in the FE check-out our [bridge repository](https://github.com/xp-network/bridge-interface/blob/components-reorder/src/components/ConnectWallet.jsx) + +

+ +### 4. Getting the inner objects from this factory that can be used for transferring, minting, estimation of gas fees.

```javascript +// EVM-compatible chains: const ethereum = await factory.inner (Chain.ETHEREUM); const bsc = await factory.inner (Chain.BSC); const polygon = await factory.inner (Chain.POLYGON); const avax = await factory.inner (Chain.AVALANCHE); const fantom = await factory.inner (Chain.FANTOM); const xdai = await factory.inner (Chain.XDAI); + +// Non-EVM chains: const elrond = await factory.inner(Chain.ELROND); const tron = await factory.inner (Chain.TRON); ``` -
+

-### 5. Listing NFTs Owned by the sender. +### 5. Listing NFTs Owned by the sender.

This operation does not depend on a wallet, since reading operations are free and, therefore, do not require signing. +
```javascript -// Since nftList returns a Promise it's a good idea to await it which requires an async function (async () => { - // Await the list of NFTs before trying to use it - const nfts = await factory.nftList( - polygon, // The chain of interest - "0x...." // The public key of the NFT owner + + // EVM: + const web3Nfts = await factory.nftList( + polygon, // The chain of interest + "0x...." // The public key of the NFT owner in a web3 chain ); - // Choosing an NFT to transfer: - const theChosenOne = nfts[0]; - // Checking the selected NFT object - console.log("My NFT #1", theChosenOne); + + // Elrond: + const elrondNfts = await factory.nftList( + elrond, // The chain of interest + "erd1...." // The public key of the NFT owner in Elrond + ); + + // Tron: + const tronNfts = await factory.nftList( + tron, // The chain of interest + "TJuG..." // The public key of the NFT owner in Tron + ); + })(); ``` -
+```javascript +// Choosing an NFT to transfer: +const web3ChosenOne = web3Nfts[0]; +const elrondChosenOne = elrondNfts[0]; +const tronChosenOne = tronNfts[0]; + +// Checking the selected NFT object +console.log("EVM Selected NFT: ", web3ChosenOne); +console.log("Elrond Selected NFT:", elrondChosenOne); +console.log("tron Selected NFT: ", tronChosenOne); +``` -### 6. Approve accessing your NFT by the bridge smart contract +

+ +### 6. Approve accessing your NFT by the bridge smart contract

```javascript -// Since approveForMinter returns a Promise it's a good idea to await it which requires an async function +// EVM example (async () => { - // Await the result of the transaction before moving on to the next steps const isApproved = await polygon.approveForMinter(theChosenOne, signer); console.log("Is Approved:", isApproved); })(); + +// Elrond example +(async () => { + const isApproved = await elrond.approveForMinter(theChosenOne, elrondSigner); + console.log("Is Approved:", isApproved); +})(); + +// Tron example +(async () => { + const isApproved = await elrond.approveForMinter(theChosenOne, tronSigner); + console.log("Is Approved:", isApproved); +})(); ``` -
+

-### 7. Transferring an NFT +### 7. Transferring an NFT

```javascript -// Since transferNft returns a Promise it's a good idea to await it which requires an async function +// EVM compatible chains example: +(async () => { + const result = await factory.transferNft( + polygon, // The Source Chain. + bsc, // The Destination Chain. + theChosenOne, // Or the NFT object you have chosen from the list. + signer, // The web3 signer object (see p. 3.2 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. + ); + console.log(result); +})(); + +// Elrond example: (async () => { - // Await the result of the transaction before trying to use it const result = await factory.transferNft( - polygon, // The Source Chain. - bsc, // The Destination Chain. - theChosenOne, // Or the NFT you have chosen. - signer, // Or tronlink or maiar. - "ADDRESS OF THE RECEIVER" // The address who you are transferring the NFT to. + elrond, // The Source Chain. + tron, // The Destination Chain. + theChosenOne, // Or the NFT object you have chosen from the list. + elrondSigner, // The Elrond signer object (see p. 3.3 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. + ); + console.log(result); +})(); + +// Tron example: +(async () => { + const result = await factory.transferNft( + tron, // The Source Chain. + elrond, // The Destination Chain. + theChosenOne, // Or the NFT object you have chosen from the list. + tronSigner, // The Tron signer object (see p. 3.4 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); console.log(result); })(); ``` -
+


## Minting NFTs on EVM chains, Elrond & Tron +
+
- Just call the mint function on the factory with suitable arguments. + +
1. For Web3 Chains: @@ -161,11 +284,12 @@ This operation does not depend on a wallet, since reading operations are free an contract: "Can be fetched from the mainnetConfig or testnetConfig", }); ``` +
- 2. For Elrond: + 2. For Elrond:
```javascript - const receipt = await factory.mint(elrond, ExtensionProvider.getInstance(), { + const receipt = await factory.mint(elrond, elrondSigner, { // Could be an IPFS URL or Any URL that points to a Metadata uris: [metadata.url], // Description of your NFT. Can be an object. @@ -176,15 +300,12 @@ This operation does not depend on a wallet, since reading operations are free an identifier: "PANDA-eda5d0-c5", }); ``` +
3. For Tron: ```javascript - // Address is fetched from tronweb - const addresses = await window.tronLink.tronWeb.request({ - method: "tron_requestAccounts", - }); - const receipt = await factory.mint(avax, addresses[0], { + const receipt = await factory.mint(avax, tronSigner, { // Could be an IPFS URL or Any URL that points to a Metadata uris: [metadata.url], // Description of your NFT. Can be an object. @@ -200,9 +321,9 @@ This operation does not depend on a wallet, since reading operations are free an P.S. The library is a work in progress. More features will be added soon. -
+

-## Troubleshooting +##
Troubleshooting

- In case you're using the library in a console application and getting errors, go to: - node_modules/xpnet-nft-list/dist/nft-list/model/moralis/MoralisNftListService.js From 437034705a17fc22f65f3dd71f84023c350e2ab3 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Thu, 2 Dec 2021 20:37:59 +0200 Subject: [PATCH 218/956] Update README.md --- README.md | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 1f2b2c476..0c479f04a 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,7 @@ const signer = (new ethers.providers.Web3Provider(window.ethereum)).getSigner(); import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; const elrondSigner = ExtensionProvider.getInstance(); ``` +
### 3.4 Example of getting the signer object (in the FE for Tron):

```typescript @@ -132,7 +133,7 @@ const tronSigner = addresses[0]; For the ways of connecting the wallets in the FE check-out our [bridge repository](https://github.com/xp-network/bridge-interface/blob/components-reorder/src/components/ConnectWallet.jsx) -

+
### 4. Getting the inner objects from this factory that can be used for transferring, minting, estimation of gas fees.

@@ -183,9 +184,9 @@ This operation does not depend on a wallet, since reading operations are free an ```javascript // Choosing an NFT to transfer: -const web3ChosenOne = web3Nfts[0]; -const elrondChosenOne = elrondNfts[0]; -const tronChosenOne = tronNfts[0]; +const web3ChosenOne = web3Nfts[0]; +const elrondChosenOne = elrondNfts[0]; +const tronChosenOne = tronNfts[0]; // Checking the selected NFT object console.log("EVM Selected NFT: ", web3ChosenOne); @@ -200,19 +201,15 @@ console.log("tron Selected NFT: ", tronChosenOne); ```javascript // EVM example (async () => { - const isApproved = await polygon.approveForMinter(theChosenOne, signer); + const isApproved = await polygon.approveForMinter(web3ChosenOne, signer); console.log("Is Approved:", isApproved); -})(); // Elrond example -(async () => { - const isApproved = await elrond.approveForMinter(theChosenOne, elrondSigner); + const isApproved = await elrond.approveForMinter(elrondChosenOne, elrondSigner); console.log("Is Approved:", isApproved); -})(); // Tron example -(async () => { - const isApproved = await elrond.approveForMinter(theChosenOne, tronSigner); + const isApproved = await elrond.approveForMinter(tronChosenOne, tronSigner); console.log("Is Approved:", isApproved); })(); ``` @@ -224,38 +221,34 @@ console.log("tron Selected NFT: ", tronChosenOne); ```javascript // EVM compatible chains example: (async () => { - const result = await factory.transferNft( + const web3Result = await factory.transferNft( polygon, // The Source Chain. bsc, // The Destination Chain. theChosenOne, // Or the NFT object you have chosen from the list. signer, // The web3 signer object (see p. 3.2 above). "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); - console.log(result); -})(); + console.log(web3Result); // Elrond example: -(async () => { - const result = await factory.transferNft( + const elrondResult = await factory.transferNft( elrond, // The Source Chain. tron, // The Destination Chain. - theChosenOne, // Or the NFT object you have chosen from the list. + elrondChosenOne, // Or the NFT object you have chosen from the list. elrondSigner, // The Elrond signer object (see p. 3.3 above). "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); - console.log(result); -})(); + console.log(elrondResult); // Tron example: -(async () => { - const result = await factory.transferNft( + const tronRresult = await factory.transferNft( tron, // The Source Chain. elrond, // The Destination Chain. - theChosenOne, // Or the NFT object you have chosen from the list. + tronChosenOne, // Or the NFT object you have chosen from the list. tronSigner, // The Tron signer object (see p. 3.4 above). "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); - console.log(result); + console.log(tronRresult); })(); ``` From 3f6c3ceea4b99d6101d4fc77b008246692247b96 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 3 Dec 2021 11:47:59 +0530 Subject: [PATCH 219/956] feat(chains): add methods to create raw mint transacation --- src/helpers/chain.ts | 5 +++++ src/helpers/elrond.ts | 12 +++++++++++- src/helpers/tron.ts | 12 +++++++++++- src/helpers/web3.ts | 13 ++++++++++++- 4 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index f74092211..554d4ed1f 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,5 +1,6 @@ import { Address } from "@elrondnetwork/erdjs/out"; import BigNumber from "bignumber.js"; +import { NftMintArgs } from ".."; /** * NFT Info @@ -220,6 +221,10 @@ export interface PreTransferRawTxn { ): Promise; } +export interface MintRawTxn { + mintRawTxn(id: NftMintArgs, address: string, value?: BigNumber): Promise; +} + export interface ChainNonceGet { getNonce(): number; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index cc3bd8629..78cce3ccf 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -44,6 +44,7 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, + MintRawTxn, NftInfo, PreTransfer, PreTransferRawTxn, @@ -249,7 +250,8 @@ export type ElrondHelper = BalanceCheck & ElrondRawUnsignedTxn > & PreTransferRawTxn & - ExtractTxnStatus; + ExtractTxnStatus & + MintRawTxn; /** * Create an object implementing cross chain utilities for elrond @@ -849,6 +851,14 @@ export const elrondHelperFactory: ( async estimateValidateTransferNft(_toAddress: string, _nftUri: string) { return estimateGas(NFT_TRANSFER_COST, elrondParams.validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, + async mintRawTxn(args, address) { + const txu = unsignedMintNftTxn( + new Address(address), + args as NftIssueArgs + ); + return txu.toPlainObject(); + }, + async estimateValidateUnfreezeNft(_to: string, _nftUri: string) { return estimateGas(NFT_UNFREEZE_COST, elrondParams.validators.length); // TODO: properly estimate NFT_UNFREEZE_COST }, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index c2ba061c4..a9fe57ae3 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -32,6 +32,7 @@ import { ExtractAction, ExtractTxnStatus, IsApproved, + MintRawTxn, NftMintArgs, PreTransfer, PreTransferRawTxn, @@ -105,7 +106,8 @@ export type TronHelper = BaseTronHelper & PreTransferRawTxn & UnfreezeForeignNftUnsigned & TransferNftForeignUnsigned & - ExtractTxnStatus; + ExtractTxnStatus & + MintRawTxn; export async function baseTronHelperFactory( provider: TronWeb @@ -352,6 +354,14 @@ export async function tronHelperFactory( const txHash: string = await erc.approve(minter_addr, nft.native.tokenId); return JSON.stringify(txHash); }, + async mintRawTxn(args, _sender) { + const erc = await provider.contract( + UserNftMinter__factory.abi, + args.contract + ); + const res = await erc.mint(args.uris[0]); + return JSON.stringify(res); + }, async transferNftToForeignTxn(nonce, to, id, _fee) { const txr = await minter.freezeErc721( id.native.contract, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index ccaee10e7..1de62c825 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -41,6 +41,7 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, + MintRawTxn, NftInfo, PreTransfer, PreTransferRawTxn, @@ -144,7 +145,8 @@ export type Web3Helper = BaseWeb3Helper & PopulatedTransaction > & PreTransferRawTxn & - ExtractTxnStatus; + ExtractTxnStatus & + MintRawTxn; /** * Create an object implementing minimal utilities for a web3 chain @@ -361,6 +363,15 @@ export async function web3HelperFactory( bals.map((v, i) => [chain_nonces[i], new BigNumber(v.toString())]) ); }, + async mintRawTxn(nft, sender) { + const erc721 = UserNftMinter__factory.connect( + nft.contract!, + new VoidSigner(sender) + ); + + const txm = await erc721.populateTransaction.mint(nft.uris[0]); + return txm; + }, async transferNativeToForeign( sender: Signer, chain_nonce: number, From 973f27dffae0033a317c95127283c98f58cb689b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 3 Dec 2021 11:57:02 +0530 Subject: [PATCH 220/956] feat(factory): add mint txn generator --- src/factory/index.ts | 13 ++++++- src/helpers/tron.ts | 89 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 84 insertions(+), 18 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d6840f376..0cc3d2022 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -21,6 +21,7 @@ import { ExtractAction, ExtractTxnStatus, MintNft, + MintRawTxn, NftInfo, PreTransferRawTxn, socketHelper, @@ -80,7 +81,8 @@ type RawTxnBuiladableChain = TransferNftForeignUnsigned< > & UnfreezeForeignNftUnsigned & WrappedNftCheck & - PreTransferRawTxn; + PreTransferRawTxn & + MintRawTxn; /** * A type representing a chain factory. * @@ -214,6 +216,12 @@ export type ChainFactory = { nft: NftInfo, fee: BigNumber ): Promise; + + generateMintTxn( + from: RawTxnBuiladableChain, + sender: string, + nft: NftMintArgs + ): Promise; }; /** @@ -469,6 +477,9 @@ export function ChainFactory( ); } }, + async generateMintTxn(chain, sender, nft) { + return await chain.mintRawTxn(nft, sender); + }, async getDestinationTransaction( chain: ExtractAction & ExtractTxnStatus, targetNonce: number, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index a9fe57ae3..c68c908d7 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -355,26 +355,81 @@ export async function tronHelperFactory( return JSON.stringify(txHash); }, async mintRawTxn(args, _sender) { - const erc = await provider.contract( - UserNftMinter__factory.abi, - args.contract - ); - const res = await erc.mint(args.uris[0]); - return JSON.stringify(res); + const { tx, result } = + provider.transactionBuilder.triggerConstantContract( + args.contract, + "mint(string)", + { + feeLimit: 1_000_000, + callValue: 0.1, + }, + [ + { + type: "string", + value: args.uris[0], + }, + ] + ); + if (!result.result) { + throw new Error(result.toString()); + } + return JSON.stringify(tx, null, 2); }, async transferNftToForeignTxn(nonce, to, id, _fee) { - const txr = await minter.freezeErc721( - id.native.contract, - id.native.tokenId, - nonce, - to - ); - return JSON.stringify(txr, null, 2); + const { tx, result } = + provider.transactionBuilder.triggerConstantContract( + "freezeErc721(address,uint256,uint64,string)", + { + feeLimit: 1_000_000, + callValue: 0.1, + }, + [ + { + type: "address", + value: id.native.contract, + }, + { + type: "uint256", + value: id.native.tokenId, + }, + { + type: "uint64", + value: nonce, + }, + { + type: "string", + value: to, + }, + ] + ); + if (!result.result) { + throw new Error(result.toString()); + } + return JSON.stringify(tx, null, 2); }, - async unfreezeWrappedNftTxn(to, id, _fee, sender) { - setSigner(sender); - const res = await minter.withdrawNft(to, id.native.tokenId); - return JSON.stringify(res); + async unfreezeWrappedNftTxn(to, id, _fee, _sender) { + const { tx, result } = + provider.transactionBuilder.triggerConstantContract( + "withdrawNft(string,uint256)", + { + feeLimit: 1_000_000, + callValue: 0.1, + }, + [ + { + type: "string", + value: to, + }, + { + type: "uint256", + value: id, + }, + ] + ); + if (!result.result) { + throw new Error(result.toString()); + } + return JSON.stringify(tx, null, 2); }, isWrappedNft(nft) { return ( From 4d85ac981b97780e589621f399f02fa046c6b14b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 3 Dec 2021 16:53:43 +0530 Subject: [PATCH 221/956] chore(tron): fix txn generation --- src/helpers/tron.ts | 112 ++++++++++++++++++++++---------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index c68c908d7..b69e81bef 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -354,78 +354,78 @@ export async function tronHelperFactory( const txHash: string = await erc.approve(minter_addr, nft.native.tokenId); return JSON.stringify(txHash); }, - async mintRawTxn(args, _sender) { - const { tx, result } = - provider.transactionBuilder.triggerConstantContract( - args.contract, - "mint(string)", + async mintRawTxn(args, sender) { + const { tx, result } = provider.transactionBuilder.triggerSmartContract( + args.contract, + "mint(string)", + { + feeLimit: 1_000_000, + callValue: 0.1, + }, + [ { - feeLimit: 1_000_000, - callValue: 0.1, + type: "string", + value: args.uris[0], }, - [ - { - type: "string", - value: args.uris[0], - }, - ] - ); + ], + sender + ); if (!result.result) { throw new Error(result.toString()); } return JSON.stringify(tx, null, 2); }, - async transferNftToForeignTxn(nonce, to, id, _fee) { - const { tx, result } = - provider.transactionBuilder.triggerConstantContract( - "freezeErc721(address,uint256,uint64,string)", + async transferNftToForeignTxn(nonce, to, id, _fee, sender) { + const { tx, result } = provider.transactionBuilder.triggerSmartContract( + "freezeErc721(address,uint256,uint64,string)", + { + feeLimit: 1_000_000, + callValue: 0.1, + }, + [ + { + type: "address", + value: id.native.contract, + }, + { + type: "uint256", + value: id.native.tokenId, + }, + { + type: "uint64", + value: nonce, + }, { - feeLimit: 1_000_000, - callValue: 0.1, + type: "string", + value: to, }, - [ - { - type: "address", - value: id.native.contract, - }, - { - type: "uint256", - value: id.native.tokenId, - }, - { - type: "uint64", - value: nonce, - }, - { - type: "string", - value: to, - }, - ] - ); + ], + sender + ); if (!result.result) { throw new Error(result.toString()); } return JSON.stringify(tx, null, 2); }, - async unfreezeWrappedNftTxn(to, id, _fee, _sender) { - const { tx, result } = - provider.transactionBuilder.triggerConstantContract( - "withdrawNft(string,uint256)", + async unfreezeWrappedNftTxn(to, id, _fee, sender) { + const { tx, result } = provider.transactionBuilder.triggerSmartContract( + "withdrawNft(string,uint256)", + { + feeLimit: 1_000_000, + callValue: 0.1, + }, + [ { - feeLimit: 1_000_000, - callValue: 0.1, + type: "string", + value: to, }, - [ - { - type: "string", - value: to, - }, - { - type: "uint256", - value: id, - }, - ] - ); + { + type: "uint256", + value: id, + }, + ], + sender + ); if (!result.result) { throw new Error(result.toString()); } From 57c1f1ca6dc7a14daa304d4188968152c4300fa9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 3 Dec 2021 16:56:42 +0530 Subject: [PATCH 222/956] chore(tron): fix call value I dont know what should the value be here, so i am just sticking to whatever it is mentioned in the docs which is zero. --- src/helpers/tron.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index b69e81bef..14a5ecdfa 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -380,7 +380,7 @@ export async function tronHelperFactory( "freezeErc721(address,uint256,uint64,string)", { feeLimit: 1_000_000, - callValue: 0.1, + callValue: 0, }, [ { @@ -412,7 +412,7 @@ export async function tronHelperFactory( "withdrawNft(string,uint256)", { feeLimit: 1_000_000, - callValue: 0.1, + callValue: 0, }, [ { From 756feb264016347d9d8f567948c3a395ea2e2fad Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 3 Dec 2021 17:32:18 +0530 Subject: [PATCH 223/956] chore(tron): fix destructured name JAVASCRIPT PLS --- src/helpers/tron.ts | 115 +++++++++++++++++++++++--------------------- 1 file changed, 59 insertions(+), 56 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 14a5ecdfa..31d26ee09 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -355,81 +355,84 @@ export async function tronHelperFactory( return JSON.stringify(txHash); }, async mintRawTxn(args, sender) { - const { tx, result } = provider.transactionBuilder.triggerSmartContract( - args.contract, - "mint(string)", - { - feeLimit: 1_000_000, - callValue: 0.1, - }, - [ + const { transaction, result } = + await provider.transactionBuilder.triggerSmartContract( + args.contract, + "mint(string)", { - type: "string", - value: args.uris[0], + feeLimit: 1_000_000, + callValue: 0, }, - ], - sender - ); + [ + { + type: "string", + value: args.uris[0], + }, + ], + sender + ); if (!result.result) { throw new Error(result.toString()); } - return JSON.stringify(tx, null, 2); + return transaction; }, async transferNftToForeignTxn(nonce, to, id, _fee, sender) { - const { tx, result } = provider.transactionBuilder.triggerSmartContract( - "freezeErc721(address,uint256,uint64,string)", - { - feeLimit: 1_000_000, - callValue: 0, - }, - [ - { - type: "address", - value: id.native.contract, - }, - { - type: "uint256", - value: id.native.tokenId, - }, - { - type: "uint64", - value: nonce, - }, + const { transaction, result } = + await provider.transactionBuilder.triggerSmartContract( + "freezeErc721(address,uint256,uint64,string)", { - type: "string", - value: to, + feeLimit: 1_000_000, + callValue: 0, }, - ], - sender - ); + [ + { + type: "address", + value: id.native.contract, + }, + { + type: "uint256", + value: id.native.tokenId, + }, + { + type: "uint64", + value: nonce, + }, + { + type: "string", + value: to, + }, + ], + sender + ); if (!result.result) { throw new Error(result.toString()); } - return JSON.stringify(tx, null, 2); + return transaction; }, async unfreezeWrappedNftTxn(to, id, _fee, sender) { - const { tx, result } = provider.transactionBuilder.triggerSmartContract( - "withdrawNft(string,uint256)", - { - feeLimit: 1_000_000, - callValue: 0, - }, - [ + const { transaction, result } = + await provider.transactionBuilder.triggerSmartContract( + "withdrawNft(string,uint256)", { - type: "string", - value: to, + feeLimit: 1_000_000, + callValue: 0, }, - { - type: "uint256", - value: id, - }, - ], - sender - ); + [ + { + type: "string", + value: to, + }, + { + type: "uint256", + value: id, + }, + ], + sender + ); if (!result.result) { throw new Error(result.toString()); } - return JSON.stringify(tx, null, 2); + return transaction; }, isWrappedNft(nft) { return ( From 6cf81bb2fbb39a9c5abc4991c0420c4e19b10602 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 3 Dec 2021 18:46:58 +0530 Subject: [PATCH 224/956] chore(tron): manually type the generated txn --- src/factory/index.ts | 10 ++++++---- src/helpers/tron.ts | 30 +++++++++++++++++++++++++++--- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 0cc3d2022..028ed0f36 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -3,7 +3,7 @@ import { ElrondParams, ElrondRawUnsignedTxn, } from "../helpers/elrond"; -import { TronHelper, TronParams } from "../helpers/tron"; +import { TronHelper, TronParams, TronRawTxn } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, @@ -208,20 +208,22 @@ export type ChainFactory = { to: string, nft: NftInfo, fee: BigNumber - ): Promise; + ): Promise; generatePreTransferTxn( from: RawTxnBuiladableChain, sender: string, nft: NftInfo, fee: BigNumber - ): Promise; + ): Promise< + PopulatedTransaction | ElrondRawUnsignedTxn | TronRawTxn | undefined + >; generateMintTxn( from: RawTxnBuiladableChain, sender: string, nft: NftMintArgs - ): Promise; + ): Promise; }; /** diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 31d26ee09..1a197ed78 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -104,10 +104,10 @@ export type TronHelper = BaseTronHelper & ExtractAction & Pick, "preTransfer"> & PreTransferRawTxn & - UnfreezeForeignNftUnsigned & - TransferNftForeignUnsigned & + UnfreezeForeignNftUnsigned & + TransferNftForeignUnsigned & ExtractTxnStatus & - MintRawTxn; + MintRawTxn; export async function baseTronHelperFactory( provider: TronWeb @@ -217,6 +217,30 @@ export interface TronParams { nonce: number; } +export interface TronRawTxn { + readonly visible: boolean; + readonly txID: string; + readonly raw_data: { + readonly ref_block_bytes: string; + readonly ref_block_hash: string; + readonly expiration: number; + readonly fee_limit: number; + readonly timestamp: number; + readonly contract: { + readonly parameter: { + readonly value: { + readonly data: string; + readonly owner_address: string; + readonly contract_address: string; + }; + readonly type_url: string; + }; + readonly type: string; + }[]; + }; + readonly raw_data_hex: string; +} + export async function tronHelperFactory( tronParams: TronParams ): Promise { From 78e85b8757baeeb898b8eeeeecaec2d96b241cbb Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 3 Dec 2021 19:07:23 +0530 Subject: [PATCH 225/956] use nft-index for nftList --- package.json | 1 - src/consts.ts | 7 ++--- src/factory/index.ts | 75 +++++--------------------------------------- 3 files changed, 11 insertions(+), 72 deletions(-) diff --git a/package.json b/package.json index a12163bd4..b3ae38154 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,6 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.0.0", - "xpnet-nft-list": "^0.2.12", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/src/consts.ts b/src/consts.ts index 7e111bbc0..10fb81992 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -206,10 +206,9 @@ export const CHAIN_INFO: ChainInfo = { export const Config: AppConfig = { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://nftindexing.herokuapp.com", + nftListAuthToken: "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjI2ODQzNTQ1NSwiaWF0IjoxNjM4MTg3MTk5LCJleHAiOjE2Mzg3OTE5OTl9.aKs8K2V8K_rWqQPshae1EzuAEpPMVWBZakfmyBeeq-nJuiEKb1KBSle1F8LNemXLW_3_4KFwDjZrNOx0zA_GNw", txSocketUri: "https://sockettx.herokuapp.com", - moralisServer: "https://azz9akudh6cf.usemoralis.com:2053/server", - moralisAppId: "vt2JeuihhzyV9vgYbeAYO5BVSaCOdkAKr608XJOv", tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com", - moralisNetwork: "mainnet", + heartbeatUri: "https://xpheartbeat.herokuapp.com" }; diff --git a/src/factory/index.ts b/src/factory/index.ts index 028ed0f36..f706a7244 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -258,11 +258,9 @@ export interface AppConfig { exchangeRateUri: string; heartbeatUri: string; txSocketUri: string; - moralisServer: string; - moralisAppId: string; + nftListUri: string; + nftListAuthToken: string; tronScanUri: string; - moralisSecret?: string; - moralisNetwork: MoralisNetwork; } function mapNonceToParams( @@ -307,36 +305,11 @@ export function ChainFactory( const txSocket = socketHelper(appConfig.txSocketUri); - const elrondNftRepo = elrondNftList(chainParams.elrondParams?.node_uri || ""); - const moralisNftRepo = moralisNftList( - appConfig.moralisServer, - appConfig.moralisAppId, - appConfig.moralisSecret - ); - appConfig.moralisNetwork === "mainnet" - ? moralisNftList( - appConfig.moralisServer, - appConfig.moralisAppId, - appConfig.moralisSecret - ) - : moralisTestnetNftList( - appConfig.moralisServer, - appConfig.moralisAppId, - appConfig.moralisSecret - ); - const tronNftRepo = - chainParams.tronParams && - tronListNft( - chainParams.tronParams.provider, - appConfig.tronScanUri, - chainParams.tronParams.erc721_addr - ); - const algoNftRepo = - chainParams.algorandParams && - algoListNft(chainParams.algorandParams.algodUri); - const nftlistRest = axios.create({ - baseURL: "https://nft-list.herokuapp.com/", + baseURL: appConfig.nftListUri, + headers: { + Authorization: `Bearer ${appConfig.nftListAuthToken}` + } }); const inner = async (chain: ChainNonce): Promise => { @@ -524,41 +497,9 @@ export function ChainFactory( cToP.set(chainNonce, params as any); }, async nftList(chain: NftUriChain, owner: string) { - let res: NftInfo[]; - switch (chain.getNonce()) { - case Chain.ELROND: - res = (await elrondNftRepo.nfts( - BigInt(chain.getNonce()), - new Address(owner) - )) as any as NftInfo[]; - break; - case Chain.TRON: - res = (await tronNftRepo!.nfts( - BigInt(0x9), - owner - )) as any as NftInfo[]; - break; - case Chain.ALGORAND: - res = (await algoNftRepo!.nfts( - BigInt(0xf), - owner - )) as any as NftInfo[]; - break; - case Chain.FANTOM: - case Chain.XDAI: - res = await nftlistRest - .get(`/web3/${chain.getNonce()}/${owner}`) + return await nftlistRest + .get[]>(`/${chain.getNonce()}/${owner}`) .then((v) => v.data); - break; - default: - res = (await moralisNftRepo.nfts( - BigInt(chain.getNonce()), - owner - )) as any as NftInfo[]; - break; - } - - return res; }, transferNft: async (fromChain, toChain, nft, sender, receiver, fee) => { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); From c824262569d649f900da79387808200389cf1f66 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 3 Dec 2021 19:20:04 +0530 Subject: [PATCH 226/956] cleanup nft-list dep --- src/factory/cons.ts | 73 ----------------------------------------- src/factory/index.ts | 7 +--- src/helpers/algorand.ts | 10 +++++- 3 files changed, 10 insertions(+), 80 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index b4485acff..cc83eed99 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -4,79 +4,6 @@ import { networkBatchExchangeRateRepo, NetworkModel, } from "crypto-exchange-rate"; -import { - algoAssetMapper, - algoNftListService, - AlgorandNftListRepo, - ElrdNftListRepo, - elrdNftListService, - elrdRawTokenMapper, - ethNftJMapper, - EthNftJson, - mockChainIdentMapper, - moralisChainIdMapper, - MoralisNftListRepo, - moralisNftListService, - moralisNftMapper, - moralisTestNetChainIdMapper, - NftListRepo, - nftListRepo, - trxNftListService, -} from "xpnet-nft-list"; -//@ts-expect-error no types cope -import TronWeb from "tronweb"; - -export function elrondNftList(proxy: string): ElrdNftListRepo { - return nftListRepo( - elrdNftListService(proxy), - elrdRawTokenMapper(), - mockChainIdentMapper() - ); -} - -export function moralisNftList( - server: string, - appId: string, - moralisSecret?: string -): MoralisNftListRepo { - return nftListRepo( - moralisNftListService({ serverUrl: server, appId, moralisSecret }), - moralisNftMapper(), - moralisChainIdMapper() - ); -} - -export function moralisTestnetNftList( - server: string, - appId: string, - moralisSecret?: string -): MoralisNftListRepo { - return nftListRepo( - moralisNftListService({ serverUrl: server, appId, moralisSecret }), - moralisNftMapper(), - moralisTestNetChainIdMapper() - ); -} - -export function tronListNft( - tronWeb: TronWeb, - tronScan: string, - xpnftAddr: string -): NftListRepo { - return nftListRepo( - trxNftListService(tronWeb, tronScan, xpnftAddr), - ethNftJMapper(), - mockChainIdentMapper() - ); -} - -export function algoListNft(baseURL: string): AlgorandNftListRepo { - return nftListRepo( - algoNftListService(baseURL), - algoAssetMapper(), - mockChainIdentMapper() - ); -} export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { const baseService = NetworkModel.batchExchangeRateService(baseUrl); diff --git a/src/factory/index.ts b/src/factory/index.ts index f706a7244..5d3ad54d8 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -37,14 +37,9 @@ import BigNumber from "bignumber.js"; import axios from "axios"; import { - algoListNft, - elrondNftList, exchangeRateRepo, - moralisNftList, - moralisTestnetNftList, - tronListNft, } from "./cons"; -import { Address, UserSigner } from "@elrondnetwork/erdjs/out"; +import { UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; import { PopulatedTransaction } from "ethers"; diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 857b9e9b6..509591df0 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -2,7 +2,6 @@ import algosdk from "algosdk"; import axios from "axios"; import { BigNumber } from "bignumber.js"; import { Base64 } from "js-base64"; -import { AlgoNft } from "xpnet-nft-list"; import { AlgorandSocketHelper, ChainNonceGet, @@ -18,6 +17,15 @@ type TxResp = { txId: string; }; +type AlgoNft = { + "metadata-hash"?: string; + name?: string; + "unit-name"?: string; + url: string; + creator: string; + nftId: number; +}; + type SignedTxn = { txID: string; blob: string; From e7b279b19e8c05c4f786e1e9edec5ee672f0cc10 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 5 Dec 2021 12:04:34 +0530 Subject: [PATCH 227/956] feat(tron): generate pre transfer txns --- src/helpers/tron.ts | 48 +++++++++++++++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 1a197ed78..f5621940c 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -103,7 +103,7 @@ export type TronHelper = BaseTronHelper & IsApproved & ExtractAction & Pick, "preTransfer"> & - PreTransferRawTxn & + PreTransferRawTxn & UnfreezeForeignNftUnsigned & TransferNftForeignUnsigned & ExtractTxnStatus & @@ -223,7 +223,7 @@ export interface TronRawTxn { readonly raw_data: { readonly ref_block_bytes: string; readonly ref_block_hash: string; - readonly expiration: number; + expiration: number; readonly fee_limit: number; readonly timestamp: number; readonly contract: { @@ -359,6 +359,13 @@ export async function tronHelperFactory( return txHash; }; + const addMinToExpirationTime = (txn: TronRawTxn, minutes: number) => { + const expiration = txn.raw_data.expiration; + const newExpiration = new Date(expiration).getTime() + minutes * 60000; + txn.raw_data.expiration = newExpiration; + return txn; + }; + return { ...base, extractAction, @@ -366,17 +373,34 @@ export async function tronHelperFactory( preTransfer: (s, nft, _fee) => approveForMinter(nft, s), async preTransferRawTxn(nft, address, _value) { await setSigner(address); - const erc = await provider.contract( - UserNftMinter__factory.abi, - nft.native.contract - ); const isApproved = await isApprovedForMinter(nft, address); if (isApproved) { return undefined; } - - const txHash: string = await erc.approve(minter_addr, nft.native.tokenId); - return JSON.stringify(txHash); + const { transaction, result } = + await provider.transactionBuilder.triggerSmartContract( + nft.native.contract, + "approve(address,uint256)", + { + feeLimit: 1_000_000, + callValue: 0, + }, + [ + { + type: "address", + value: minter_addr, + }, + { + type: "uint256", + value: nft.native.tokenId, + }, + ], + address + ); + if (!result.result) { + throw new Error(result.toString()); + } + return addMinToExpirationTime(transaction, 15); }, async mintRawTxn(args, sender) { const { transaction, result } = @@ -398,7 +422,7 @@ export async function tronHelperFactory( if (!result.result) { throw new Error(result.toString()); } - return transaction; + return addMinToExpirationTime(transaction, 15); }, async transferNftToForeignTxn(nonce, to, id, _fee, sender) { const { transaction, result } = @@ -431,7 +455,7 @@ export async function tronHelperFactory( if (!result.result) { throw new Error(result.toString()); } - return transaction; + return addMinToExpirationTime(transaction, 15); }, async unfreezeWrappedNftTxn(to, id, _fee, sender) { const { transaction, result } = @@ -456,7 +480,7 @@ export async function tronHelperFactory( if (!result.result) { throw new Error(result.toString()); } - return transaction; + return addMinToExpirationTime(transaction, 15); }, isWrappedNft(nft) { return ( From da1a0bf577bb5fbd42f2b277ce59aab8afdb261a Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 6 Dec 2021 22:28:47 +0530 Subject: [PATCH 228/956] minor algorand fixes --- src/factory/index.ts | 4 +- src/helpers/algorand.ts | 5 +- src/socket.ts | 11 +- yarn.lock | 2498 ++------------------------------------- 4 files changed, 80 insertions(+), 2438 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 5d3ad54d8..0dd85d6b1 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -183,7 +183,7 @@ export type ChainFactory = { * @param claimer the account which can claim the nft */ claimAlgorandNft( - originChain: ExtractAction, + originChain: ExtractAction & ChainNonceGet, txn: Txn, claimer: AlgoSignerH ): Promise; @@ -539,7 +539,7 @@ export function ChainFactory( const action = await origin.extractAction(hash); const algo: AlgorandHelper = await inner(Chain.ALGORAND); - return await algo.claimAlgorandNft(claimer, action, txSocket); + return await algo.claimAlgorandNft(claimer, origin.getNonce(), action, txSocket); }, }; } diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 509591df0..fde1d0bb5 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -110,6 +110,7 @@ export function algoSignerWrapper( export interface ClaimAlgorandNft { claimAlgorandNft( signer: AlgoSignerH, + sourceChain: number, actionId: string, socket: AlgorandSocketHelper ): Promise; @@ -301,8 +302,8 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { algod, getNonce: () => args.nonce, claimNft, - async claimAlgorandNft(signer, action, socket) { - const info = await socket.waitAlgorandNft(action); + async claimAlgorandNft(signer, sourceChain, action, socket) { + const info = await socket.waitAlgorandNft(sourceChain, action); return await claimNft(signer, info); }, diff --git a/src/socket.ts b/src/socket.ts index 5031bf0c9..72e521471 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -43,12 +43,12 @@ export type TxnSocketHelper = { }; export type AlgorandSocketHelper = { - waitAlgorandNft(action_id: string): Promise; + waitAlgorandNft(sourceChain: number, action_id: string): Promise; }; -function pairActionAlgo(action_id: string): number { +function pairAction(sourceChain: number, action_id: string): number { const numId = parseInt(action_id); - return numId >= 15 ? numId * 15 + 15 + numId : numId + 15 * 15; + return numId >= sourceChain ? numId * numId + sourceChain + numId : numId + sourceChain * sourceChain; } function socketResBuf(): SocketResBuf { @@ -162,10 +162,11 @@ export function socketHelper( async waitTxHash(chain: number, action_id: string): Promise { return await waitSocketData(txbuf, chain, action_id); }, - async waitAlgorandNft(action_id: string): Promise { + async waitAlgorandNft(sourceChain: number, action_id: string): Promise { // Validator sends a an action paired with chain id // this is implementation dependent on validator - const paired = pairActionAlgo(action_id).toString(); + const paired = pairAction(sourceChain, action_id).toString(); + console.log(paired); return await waitSocketData(algoBuf, 15, paired); }, }; diff --git a/yarn.lock b/yarn.lock index 36303b4a1..80764b982 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,13 +9,6 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== - dependencies: - "@babel/highlight" "^7.16.0" - "@babel/code-frame@^7.10.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" @@ -28,11 +21,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" @@ -42,23 +30,6 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/runtime-corejs3@7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz#ffee91da0eb4c6dae080774e94ba606368e414f4" - integrity sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ== - dependencies: - core-js-pure "^3.0.0" - regenerator-runtime "^0.13.4" - "@babel/runtime@7.11.2": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" @@ -66,13 +37,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" - integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/runtime@^7.0.0": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" @@ -142,37 +106,6 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@ethereumjs/common@^2.3.0", "@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" - integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.1" - -"@ethereumjs/tx@^3.2.1": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" - integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== - dependencies: - "@ethereumjs/common" "^2.5.0" - ethereumjs-util "^7.1.2" - -"@ethersproject/abi@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" - integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== - dependencies: - "@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/abi@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.0.tgz#a6d63bdb3672f738398846d4279fa6b6c9818242" @@ -203,7 +136,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.5.0": +"@ethersproject/abi@^5.4.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== @@ -244,7 +177,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/web" "^5.4.0" -"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": +"@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": version "5.5.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== @@ -279,7 +212,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": +"@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== @@ -301,7 +234,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/rlp" "^5.4.0" -"@ethersproject/address@5.5.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": +"@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== @@ -319,7 +252,7 @@ dependencies: "@ethersproject/bytes" "^5.4.0" -"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": +"@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== @@ -334,7 +267,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": +"@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== @@ -360,7 +293,7 @@ "@ethersproject/logger" "^5.4.0" bn.js "^4.11.9" -"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": +"@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== @@ -376,7 +309,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": +"@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== @@ -390,7 +323,7 @@ dependencies: "@ethersproject/bignumber" "^5.4.0" -"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": +"@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== @@ -429,22 +362,6 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/transactions" "^5.4.0" -"@ethersproject/contracts@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" - integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== - dependencies: - "@ethersproject/abi" "^5.5.0" - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/hash@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" @@ -459,7 +376,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": +"@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== @@ -491,7 +408,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" -"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": +"@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== @@ -528,7 +445,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.4.0", "@ethersproject/json-wallets@^5.5.0": +"@ethersproject/json-wallets@^5.4.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== @@ -555,7 +472,7 @@ "@ethersproject/bytes" "^5.4.0" js-sha3 "0.5.7" -"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": +"@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== @@ -573,7 +490,7 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== -"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": +"@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== @@ -592,7 +509,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/networks@5.5.0", "@ethersproject/networks@^5.4.0", "@ethersproject/networks@^5.5.0": +"@ethersproject/networks@^5.4.0", "@ethersproject/networks@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" integrity sha512-KWfP3xOnJeF89Uf/FCJdV1a2aDJe5XTN2N52p4fcQ34QhDqQFkgQKZ39VGtiqUgHcLI8DfT0l9azC3KFTunqtA== @@ -607,7 +524,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/sha2" "^5.4.0" -"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": +"@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== @@ -629,7 +546,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": +"@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== @@ -711,31 +628,6 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/providers@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.0.tgz#bc2876a8fe5e0053ed9828b1f3767ae46e43758b" - integrity sha512-xqMbDnS/FPy+J/9mBLKddzyLLAQFjrVff5g00efqxPzcAwXiR+SiCGVy6eJ5iAIirBOATjx7QLhDNPGV+AEQsw== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" - bech32 "1.1.4" - ws "7.4.6" - "@ethersproject/random@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" @@ -744,7 +636,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/random@5.5.0", "@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": +"@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== @@ -760,7 +652,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": +"@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== @@ -777,7 +669,7 @@ "@ethersproject/logger" "^5.4.0" hash.js "1.1.7" -"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": +"@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== @@ -798,7 +690,7 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": +"@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== @@ -821,18 +713,6 @@ "@ethersproject/sha2" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/solidity@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" - integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/strings@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" @@ -842,7 +722,7 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": +"@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== @@ -866,7 +746,7 @@ "@ethersproject/rlp" "^5.4.0" "@ethersproject/signing-key" "^5.4.0" -"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": +"@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== @@ -890,15 +770,6 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/units@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" - integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/wallet@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" @@ -920,27 +791,6 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" -"@ethersproject/wallet@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" - integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/json-wallets" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - "@ethersproject/web@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" @@ -952,7 +802,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/web@5.5.0", "@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": +"@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== @@ -974,7 +824,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": +"@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== @@ -1073,11 +923,6 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@metamask/detect-provider@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@metamask/detect-provider/-/detect-provider-1.2.0.tgz#3667a7531f2a682e3c3a43eaf3a1958bdb42a696" - integrity sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1259,28 +1104,11 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - "@sindresorhus/is@^2.0.0": version "2.1.1" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== -"@supercharge/promise-pool@^1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-1.9.0.tgz#7630c760535919db93711ca35716ada59d86feb7" - integrity sha512-UqQrree8uGTCEDKAnGJci1B7NGIZ1xepXHjUEqbH16Wgvr/j5+54hxebkpTpDcz5t2SrzY6J6USSlmgQeo66/g== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - "@szmarczak/http-timer@^4.0.0": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1288,20 +1116,6 @@ dependencies: defer-to-connect "^2.0.0" -"@types/bn.js@^4.11.5": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - -"@types/bn.js@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" - integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== - dependencies: - "@types/node" "*" - "@types/cacheable-request@^6.0.1": version "6.0.2" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" @@ -1349,28 +1163,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== -"@types/node@^12.12.6": - version "12.20.36" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.36.tgz#5bd54d2383e714fc4d2c258107ee70c5bad86d0c" - integrity sha512-+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA== - "@types/node@^13.7.0": version "13.13.52" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== - dependencies: - "@types/node" "*" - "@types/responselike@*": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -1378,13 +1175,6 @@ dependencies: "@types/node" "*" -"@types/secp256k1@^4.0.1": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" - integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== - dependencies: - "@types/node" "*" - "@typescript-eslint/eslint-plugin@^4.31.0": version "4.31.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" @@ -1638,14 +1428,6 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" -accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1666,15 +1448,7 @@ aes-js@^3.1.2: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1720,13 +1494,6 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -1789,11 +1556,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -1809,28 +1571,6 @@ array.prototype.flatmap@^1.2.4: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - assert@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" @@ -1851,11 +1591,6 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1871,16 +1606,6 @@ available-typed-arrays@^1.0.2: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - axios@0.21.1, axios@^0.21.1: version "0.21.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" @@ -1888,13 +1613,6 @@ axios@0.21.1, axios@^0.21.1: dependencies: follow-redirects "^1.10.0" -axios@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.23.0.tgz#b0fa5d0948a8d1d75e3d5635238b6c4625b05149" - integrity sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg== - dependencies: - follow-redirects "^1.14.4" - babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1918,13 +1636,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.2, base-x@^3.0.8: - version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - base64-arraybuffer@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" @@ -1935,13 +1646,6 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -2021,57 +1725,21 @@ blake2b@2.1.3: blake2b-wasm "^1.1.0" nanoassert "^1.0.0" -blakejs@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" - integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== - -bluebird@^3.5.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - bluebird@~3.4.1: version "3.4.7" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= - bn.js@4.11.8: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9: +bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -body-parser@1.19.0, body-parser@^1.16.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2087,81 +1755,11 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - 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" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= - dependencies: - base-x "^3.0.2" - -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - btoa-lite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" @@ -2172,17 +1770,7 @@ buffer-indexof-polyfill@~1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2203,18 +1791,6 @@ buffers@~0.1.1: resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= -bufferutil@^4.0.1: - version "4.0.5" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028" - integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== - dependencies: - node-gyp-build "^4.3.0" - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - cacheable-lookup@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" @@ -2223,19 +1799,6 @@ cacheable-lookup@^2.0.0: "@types/keyv" "^3.1.1" keyv "^4.0.0" -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - 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" - cacheable-request@^7.0.1: version "7.0.2" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" @@ -2267,11 +1830,6 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - chainsaw@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" @@ -2316,23 +1874,12 @@ chokidar@^3.0.0: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1, chownr@^1.1.4: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -cids@^0.7.1: - version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" - integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - multibase "~0.6.0" - multicodec "^1.0.0" - multihashes "~0.4.15" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: +cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== @@ -2340,31 +1887,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-truncate@2.1.0, cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2410,22 +1932,12 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" - integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== - -colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== - colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -2437,11 +1949,6 @@ commander@^6.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^8.2.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - component-emitter@^1.3.0, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -2457,93 +1964,22 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-hash@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" - integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== - dependencies: - cids "^0.7.1" - multicodec "^0.5.5" - multihashes "^0.4.15" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookiejar@^2.1.1, cookiejar@^2.1.2: +cookiejar@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== -core-js-pure@^3.0.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.19.0.tgz#db6fdadfdd4dc280ec93b64c3c2e8460e6f10094" - integrity sha512-UEQk8AxyCYvNAs6baNoPqDADv7BX0AmBLGxVsrAifPPx/C8EAzV4Q+2ZUJqVzfI2TQQEZITnwUkWcHpgc/IubQ== - core-js@^2.4.0: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@^2.8.1, cors@^2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -crc-32@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" - integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== - dependencies: - exit-on-epipe "~1.0.1" - printj "~1.1.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: +create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -2554,7 +1990,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@1.1.7, create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@1.1.7, create-hmac@^1.1.4: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -2577,7 +2013,7 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2591,57 +2027,13 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= -crypto-browserify@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#aa69f8dcc324a3a66e070542e966f61efd6e5c39" dependencies: axios "^0.21.1" -crypto-js@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc" - integrity sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg== - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -debug@2.6.9, debug@^2.2.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@~4.3.1: +debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -2658,13 +2050,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -decompress-response@^3.2.0, decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - decompress-response@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" @@ -2694,11 +2079,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - defer-to-connect@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" @@ -2721,29 +2101,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - detect-browser@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" @@ -2754,15 +2116,6 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2777,16 +2130,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -dotenv@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" @@ -2799,14 +2142,6 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - ed25519-hd-key@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.1.2.tgz#168dcf08419694be7bba3319e7d64e4a5cfe5d44" @@ -2816,12 +2151,7 @@ ed25519-hd-key@1.1.2: create-hmac "1.1.7" tweetnacl "1.0.3" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: +elliptic@6.5.4, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -2844,11 +2174,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2878,20 +2203,13 @@ engine.io-parser@~4.0.1: dependencies: base64-arraybuffer "0.1.4" -enquirer@^2.3.5, enquirer@^2.3.6: +enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: version "1.18.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" @@ -2923,42 +2241,11 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - es6-object-assign@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -3114,79 +2401,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eth-ens-namehash@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" - integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= - dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" - -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@^0.1.26: - version "0.1.29" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" - integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - nano-json-stream-parser "^0.1.2" - servify "^0.1.12" - ws "^3.0.0" - xhr-request-promise "^0.1.2" - -ethereum-bloom-filters@^1.0.6: - version "1.0.10" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" - integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== - dependencies: - js-sha3 "^0.8.0" - -ethereum-cryptography@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" - integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== - dependencies: - "@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" - -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2: - version "7.1.3" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz#b55d7b64dde3e3e45749e4c41288238edec32d23" - integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== - dependencies: - "@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" - ethers@5.4.4: version "5.4.4" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.4.tgz#35cce530505b84c699da944162195cfb3f894947" @@ -3295,60 +2509,11 @@ ethers@^5.4.4: "@ethersproject/web" "5.4.0" "@ethersproject/wordlists" "5.4.0" -ethers@^5.5.1: - version "5.5.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.1.tgz#d3259a95a42557844aa543906c537106c0406fbf" - integrity sha512-RodEvUFZI+EmFcE6bwkuJqpCYHazdzeR1nMzg+YWQSmQEsNtfl1KHGfp/FWZYl48bI/g7cgBeP2IlPthjiVngw== - dependencies: - "@ethersproject/abi" "5.5.0" - "@ethersproject/abstract-provider" "5.5.1" - "@ethersproject/abstract-signer" "5.5.0" - "@ethersproject/address" "5.5.0" - "@ethersproject/base64" "5.5.0" - "@ethersproject/basex" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/constants" "5.5.0" - "@ethersproject/contracts" "5.5.0" - "@ethersproject/hash" "5.5.0" - "@ethersproject/hdnode" "5.5.0" - "@ethersproject/json-wallets" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/logger" "5.5.0" - "@ethersproject/networks" "5.5.0" - "@ethersproject/pbkdf2" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/providers" "5.5.0" - "@ethersproject/random" "5.5.0" - "@ethersproject/rlp" "5.5.0" - "@ethersproject/sha2" "5.5.0" - "@ethersproject/signing-key" "5.5.0" - "@ethersproject/solidity" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@ethersproject/transactions" "5.5.0" - "@ethersproject/units" "5.5.0" - "@ethersproject/wallet" "5.5.0" - "@ethersproject/web" "5.5.0" - "@ethersproject/wordlists" "5.5.0" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" @@ -3359,14 +2524,6 @@ events@^3.3.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -3380,89 +2537,11 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit-on-epipe@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" - integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== - expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -express@^4.14.0, express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== - dependencies: - type "^2.5.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -3520,19 +2599,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3606,21 +2672,11 @@ follow-redirects@^1.10.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== -follow-redirects@^1.14.4: - version "1.14.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381" - integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA== - foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -3630,44 +2686,16 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - formidable@^1.2.2: version "1.2.6" resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -3677,13 +2705,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -3742,17 +2763,7 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0, get-stream@^4.1.0: +get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -3766,18 +2777,6 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" @@ -3814,14 +2813,6 @@ glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -global@~4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - globals@^13.6.0, globals@^13.9.0: version "13.10.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" @@ -3841,23 +2832,6 @@ globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" -got@9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - 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" - got@^10.5.7: version "10.7.0" resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" @@ -3879,44 +2853,11 @@ got@^10.5.7: to-readable-stream "^2.0.0" type-fest "^0.10.0" -got@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -3937,23 +2878,11 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -4002,61 +2931,6 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-https@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" - integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -idna-uts46-hx@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" - integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== - dependencies: - punycode "2.1.0" - ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -4085,11 +2959,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -4098,16 +2967,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -4123,11 +2987,6 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - is-arguments@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" @@ -4135,11 +2994,6 @@ is-arguments@^1.0.4: dependencies: call-bind "^1.0.0" -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - is-bigint@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" @@ -4203,11 +3057,6 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - is-generator-function@^1.0.7: version "1.0.9" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c" @@ -4220,11 +3069,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= - is-nan@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -4248,21 +3092,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" - integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -4276,26 +3105,11 @@ is-regex@^1.1.3: call-bind "^1.0.2" has-symbols "^1.0.2" -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -is-retry-allowed@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-string@^1.0.5, is-string@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" @@ -4319,7 +3133,7 @@ is-typed-array@^1.1.3: foreach "^2.0.5" has-symbols "^1.0.1" -is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@1.0.0, is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -4334,35 +3148,17 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - js-base64@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.1.tgz#555aae398b74694b4037af1f8a5a6209d170efbe" integrity sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ== -js-base64@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" - integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== - js-sha256@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== -js-sha3@0.5.7, js-sha3@^0.5.7: +js-sha3@0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= @@ -4390,11 +3186,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - json-bigint@1.0.0, json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -4402,11 +3193,6 @@ json-bigint@1.0.0, json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -4419,11 +3205,6 @@ json-duplicate-key-handle@1.0.0: dependencies: backslash "^0.2.0" -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -4434,21 +3215,11 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" @@ -4461,17 +3232,7 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keccak@^3.0.0, keccak@^3.0.1: +keccak@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== @@ -4485,13 +3246,6 @@ kefir@^3.7.3: resolved "https://registry.yarnpkg.com/kefir/-/kefir-3.8.8.tgz#235932ddfbed422acebf5d7cba503035e9ea05c5" integrity sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA== -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - keyv@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" @@ -4512,49 +3266,11 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -lint-staged@^11.1.2: - version "11.2.6" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.6.tgz#f477b1af0294db054e5937f171679df63baa4c43" - integrity sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg== - dependencies: - cli-truncate "2.1.0" - colorette "^1.4.0" - commander "^8.2.0" - cosmiconfig "^7.0.1" - debug "^4.3.2" - enquirer "^2.3.6" - execa "^5.1.1" - listr2 "^3.12.2" - micromatch "^4.0.4" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "3.3.0" - supports-color "8.1.1" - listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= -listr2@^3.12.2: - version "3.13.1" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.1.tgz#816e8c1728d50f223795f530d72d248c7fa14602" - integrity sha512-pk4YBDA2cxtpM8iLHbz6oEsfZieJKHf6Pt19NlKaHZZVpqHyVs/Wqr7RfBBCeAFCJchGO7WQHVkUPZTvJMHk8w== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rxjs "^6.6.7" - through "^2.3.8" - wrap-ansi "^7.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -4597,26 +3313,11 @@ lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -4669,27 +3370,12 @@ md5@^2.2.1: crypt "0.0.2" is-buffer "~1.1.6" -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@^1.1.2, methods@~1.1.2: +methods@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= @@ -4702,42 +3388,24 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.50.0: version "1.50.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== -mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.12: version "2.1.33" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== dependencies: mime-db "1.50.0" -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - mime@^2.4.6: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0, mimic-response@^1.0.1: +mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== @@ -4747,13 +3415,6 @@ mimic-response@^2.0.0, mimic-response@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -4776,128 +3437,28 @@ minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp-promise@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" - integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= - dependencies: - mkdirp "*" - -mkdirp@*, mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -"mkdirp@>=0.5 0", mkdirp@^0.5.5: +"mkdirp@>=0.5 0": version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mock-fs@^4.1.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" - integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== - -moralis@^0.0.134: - version "0.0.134" - resolved "https://registry.yarnpkg.com/moralis/-/moralis-0.0.134.tgz#fa763b5a480e0e572828d681ade7e0e958e51259" - integrity sha512-2+JkbHDOhTzgbAnx6foJ7BwngCvYhNbpjwStvSOjrdX6eWKNT5njyLQtTJlJUaXS7uJSkvtV2frSwEZ78ZnwGQ== - dependencies: - "@babel/runtime" "7.12.5" - "@babel/runtime-corejs3" "7.12.5" - "@metamask/detect-provider" "^1.2.0" - axios "^0.23.0" - lint-staged "^11.1.2" - react-native-crypto-js "1.0.0" - uuid "3.4.0" - web3 "^1.6.0" - ws "^7.4.6" - xmlhttprequest "1.8.0" - optionalDependencies: - crypto-js "4.0.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^0.5.5: - version "0.5.7" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" - integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== - dependencies: - varint "^5.0.0" - -multicodec@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multihashes@^0.4.15, multihashes@~0.4.15: - version "0.4.21" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - -nano-json-stream-parser@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" - integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= - nanoassert@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" @@ -4913,16 +3474,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -4960,11 +3511,6 @@ node-gyp-build@^4.2.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== -node-gyp-build@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" - integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== - node-hid@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.1.tgz#f83c8aa0bb4e6758b5f7383542477da93f67359d" @@ -4984,11 +3530,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -5001,13 +3542,6 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - npmlog@^4.0.1: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -5023,20 +3557,7 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -5079,25 +3600,11 @@ object.fromentries@^2.0.3: es-abstract "^1.18.0-next.2" has "^1.0.3" -oboe@2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" - integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= - dependencies: - http-https "^1.0.0" - octokit-pagination-methods@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -5105,13 +3612,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - onigasm@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.5.tgz#cc4d2a79a0fa0b64caec1f4c7ea367585a676892" @@ -5139,16 +3639,6 @@ os-name@^3.1.0: macos-release "^2.2.0" windows-release "^3.1.0" -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" @@ -5180,20 +3670,6 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= - dependencies: - p-finally "^1.0.0" - p-timeout@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -5213,32 +3689,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-headers@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" - integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - parseqs@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" @@ -5249,11 +3699,6 @@ parseuri@0.0.6: resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -5269,7 +3714,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -5279,17 +3724,12 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: +pbkdf2@^3.0.9: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -5305,11 +3745,6 @@ perf_hooks@0.0.1: resolved "https://registry.yarnpkg.com/perf_hooks/-/perf_hooks-0.0.1.tgz#253e7e18b71fcc0390fd3afb2cd7cf1685df040c" integrity sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw== -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" @@ -5320,13 +3755,6 @@ platform@1.3.6: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - prebuild-install@^5.3.3: version "5.3.6" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz#7c225568d864c71d89d07f8796042733a3f54291" @@ -5372,16 +3800,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - prettier@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" @@ -5392,21 +3810,11 @@ prettier@^2.1.1, prettier@^2.3.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== -printj@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" - integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -5431,31 +3839,6 @@ protobufjs@6.10.2: "@types/node" "^13.7.0" long "^4.0.0" -proxy-addr@~2.0.5: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -5464,12 +3847,7 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= - -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -5481,16 +3859,6 @@ qs@6.10.1, qs@^6.9.4: dependencies: side-channel "^1.0.4" -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - query-string@6.13.5: version "6.13.5" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" @@ -5500,15 +3868,6 @@ query-string@6.13.5: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -5519,36 +3878,13 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.0.1, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -5559,11 +3895,6 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-native-crypto-js@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/react-native-crypto-js/-/react-native-crypto-js-1.0.0.tgz#e677e022e147f41b35614416c92d655f87e2450a" - integrity sha512-FNbLuG/HAdapQoybeZSoes1PWdOj0w242gb+e1R0hicf3Gyj/Mf8M9NaED2AnXVOX01b2FXomwUiw1xP1K+8sA== - readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -5615,32 +3946,6 @@ regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -request@^2.79.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5674,13 +3979,6 @@ resolve@^1.1.6: is-core-module "^2.2.0" path-parse "^1.0.6" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - responselike@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" @@ -5688,14 +3986,6 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -5723,13 +4013,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.2.4: - version "2.2.7" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" - integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== - dependencies: - bn.js "^5.2.0" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -5737,29 +4020,24 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@6, rxjs@^6.6.7: +rxjs@6: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: +scrypt-js@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -5769,20 +4047,6 @@ scryptsy@2.1.0: resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== -secp256k1@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" - integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== - dependencies: - elliptic "^6.5.2" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - semver@7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" @@ -5800,61 +4064,16 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -servify@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" - integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== - dependencies: - body-parser "^1.16.0" - cors "^2.8.1" - express "^4.14.0" - request "^2.79.0" - xhr "^2.3.3" - set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -setimmediate@^1.0.5, setimmediate@~1.0.4: +setimmediate@~1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -5919,25 +4138,11 @@ signal-exit@^3.0.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.5" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" - integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== - simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== -simple-get@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - simple-get@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" @@ -5961,15 +4166,6 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -6011,41 +4207,11 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= -string-argv@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -6111,15 +4277,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-object@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -6153,18 +4310,6 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= - dependencies: - is-hex-prefixed "1.0.0" - strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -6192,13 +4337,6 @@ superagent@^6.1.0: readable-stream "^3.6.0" semver "^7.3.2" -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -6213,23 +4351,6 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -swarm-js@^0.1.40: - version "0.1.40" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" - integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - eth-lib "^0.1.26" - fs-extra "^4.0.2" - got "^7.1.0" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar "^4.0.2" - xhr-request "^1.0.1" - table@^5.4.6: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -6273,19 +4394,6 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^4.0.2: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -6296,16 +4404,6 @@ through@^2.3.8: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - to-readable-stream@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" @@ -6318,19 +4416,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - "traverse@>=0.3.0 <0.4": version "0.3.9" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" @@ -6384,11 +4469,6 @@ tweetnacl@1.0.3, tweetnacl@^1.0.3: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -6406,30 +4486,7 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" - integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== - -typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: +typedarray-to-buffer@3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== @@ -6462,11 +4519,6 @@ u2f-api@0.2.7: resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -6494,11 +4546,6 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - unzipper@^0.10.8: version "0.10.11" resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" @@ -6522,20 +4569,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - url-parse@^1.5.1: version "1.5.3" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" @@ -6544,16 +4577,6 @@ url-parse@^1.5.1: querystringify "^2.1.1" requires-port "^1.0.0" -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - usb@^1.7.0: version "1.7.1" resolved "https://registry.yarnpkg.com/usb/-/usb-1.7.1.tgz#d723223ec517b802c4d2082e31a4649c65c491c5" @@ -6563,18 +4586,6 @@ usb@^1.7.0: node-addon-api "3.0.2" prebuild-install "^5.3.3" -utf-8-validate@^5.0.2: - version "5.0.7" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" - integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== - dependencies: - node-gyp-build "^4.3.0" - -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -6592,21 +4603,6 @@ util@^0.12.0: safe-buffer "^5.1.2" which-typed-array "^1.1.2" -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -uuid@3.4.0, uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - uuid@8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -6622,271 +4618,11 @@ validator@^13.6.0: resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - vscode-textmate@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== -web3-bzz@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.6.0.tgz#584b51339f21eedff159abc9239b4b7ef6ded840" - integrity sha512-ugYV6BsinwhIi0CsLWINBz4mqN9wR9vNG0WmyEbdECjxcPyr6vkaWt4qi0zqlUxEnYAwGj4EJXNrbjPILntQTQ== - dependencies: - "@types/node" "^12.12.6" - got "9.6.0" - swarm-js "^0.1.40" - -web3-core-helpers@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.6.0.tgz#77e161b6ba930a4008a0df804ab379e0aa7e1e7f" - integrity sha512-H/IAH/0mrgvad/oxVKiAMC7qDzMrPPe/nRKmJOoIsupRg9/frvL62kZZiHhqVD1HMyyswbQFC69QRl7JqWzvxg== - dependencies: - web3-eth-iban "1.6.0" - web3-utils "1.6.0" - -web3-core-method@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.6.0.tgz#ebe4ea51f5a4fa809bb68185576186359d3982e9" - integrity sha512-cHekyEil4mtcCOk6Q1Zh4y+2o5pTwsLIxP6Bpt4BRtZgdsyPiadYJpkLAVT/quch5xN7Qs5ZwG5AvRCS3VwD2g== - dependencies: - "@ethereumjs/common" "^2.4.0" - "@ethersproject/transactions" "^5.0.0-beta.135" - web3-core-helpers "1.6.0" - web3-core-promievent "1.6.0" - web3-core-subscriptions "1.6.0" - web3-utils "1.6.0" - -web3-core-promievent@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.6.0.tgz#8b6053ae83cb47164540167fc361469fc604d2dd" - integrity sha512-ZzsevjMXWkhqW9dnVfTfb1OUcK7jKcKPvPIbQ4boJccNgvNZPZKlo8xB4pkAX38n4c59O5mC7Lt/z2QL/M5CeQ== - dependencies: - eventemitter3 "4.0.4" - -web3-core-requestmanager@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.6.0.tgz#8ef3a3b89cd08983bd94574f9c5893f70a8a6aea" - integrity sha512-CY5paPdiDXKTXPWaEUZekDfUXSuoE2vPxolwqzsvKwFWH5+H1NaXgrc+D5HpufgSvTXawTw0fy7IAicg8+PWqA== - dependencies: - util "^0.12.0" - web3-core-helpers "1.6.0" - web3-providers-http "1.6.0" - web3-providers-ipc "1.6.0" - web3-providers-ws "1.6.0" - -web3-core-subscriptions@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.6.0.tgz#8c23b15b434a7c9f937652ecca45d7108e2c54df" - integrity sha512-kY9WZUY/m1URSOv3uTLshoZD9ZDiFKReIzHuPUkxFpD5oYNmr1/aPQNPCrrMxKODR7UVX/D90FxWwCYqHhLaxQ== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.6.0" - -web3-core@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.6.0.tgz#144eb00f651c9812faf7176abd7ee99d5f45e212" - integrity sha512-o0WsLrJ2yD+HAAc29lGMWJef/MutTyuzpJC0UzLJtIAQJqtpDalzWINEu4j8XYXGk34N/V6vudtzRPo23QEE6g== - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.6.0" - web3-core-method "1.6.0" - web3-core-requestmanager "1.6.0" - web3-utils "1.6.0" - -web3-eth-abi@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.6.0.tgz#4225608f61ebb0607d80849bb2b20f910780253d" - integrity sha512-fImomGE9McuTMJLwK8Tp0lTUzXqCkWeMm00qPVIwpJ/h7lCw9UFYV9+4m29wSqW6FF+FIZKwc6UBEf9dlx3orA== - dependencies: - "@ethersproject/abi" "5.0.7" - web3-utils "1.6.0" - -web3-eth-accounts@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.6.0.tgz#530927f4c5b78df93b3ea1203abbb467de29cd04" - integrity sha512-2f6HS4KIH4laAsNCOfbNX3dRiQosqSY2TRK86C8jtAA/QKGdx+5qlPfYzbI2RjG81iayb2+mVbHIaEaBGZ8sGw== - dependencies: - "@ethereumjs/common" "^2.3.0" - "@ethereumjs/tx" "^3.2.1" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "3.3.2" - web3-core "1.6.0" - web3-core-helpers "1.6.0" - web3-core-method "1.6.0" - web3-utils "1.6.0" - -web3-eth-contract@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.6.0.tgz#deb946867ad86d32bcbba899d733b681b25ea674" - integrity sha512-ZUtO77zFnxuFtrc+D+iJ3AzNgFXAVcKnhEYN7f1PNz/mFjbtE6dJ+ujO0mvMbxIZF02t9IZv0CIXRpK0rDvZAw== - dependencies: - "@types/bn.js" "^4.11.5" - web3-core "1.6.0" - web3-core-helpers "1.6.0" - web3-core-method "1.6.0" - web3-core-promievent "1.6.0" - web3-core-subscriptions "1.6.0" - web3-eth-abi "1.6.0" - web3-utils "1.6.0" - -web3-eth-ens@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.6.0.tgz#af13852168d56fa71b9198eb097e96fb93831c2a" - integrity sha512-AG24PNv9qbYHSpjHcU2pViOII0jvIR7TeojJ2bxXSDqfcgHuRp3NZGKv6xFvT4uNI4LEQHUhSC7bzHoNF5t8CA== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.6.0" - web3-core-helpers "1.6.0" - web3-core-promievent "1.6.0" - web3-eth-abi "1.6.0" - web3-eth-contract "1.6.0" - web3-utils "1.6.0" - -web3-eth-iban@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.6.0.tgz#edbe46cedc5b148d53fa455edea6b4eef53b2be7" - integrity sha512-HM/bKBS/e8qg0+Eh7B8C/JVG+GkR4AJty17DKRuwMtrh78YsonPj7GKt99zS4n5sDLFww1Imu/ZIk3+K5uJCjw== - dependencies: - bn.js "^4.11.9" - web3-utils "1.6.0" - -web3-eth-personal@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.6.0.tgz#b75a61c0737b8b8bcc11d05db2ed7bfce7e4b262" - integrity sha512-8ohf4qAwbShf4RwES2tLHVqa+pHZnS5Q6tV80sU//bivmlZeyO1W4UWyNn59vu9KPpEYvLseOOC6Muxuvr8mFQ== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.6.0" - web3-core-helpers "1.6.0" - web3-core-method "1.6.0" - web3-net "1.6.0" - web3-utils "1.6.0" - -web3-eth@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.6.0.tgz#4c9d5fb4eccf9f8744828281757e6ea76af58cbd" - integrity sha512-qJMvai//r0be6I9ghU24/152f0zgJfYC23TMszN3Y6jse1JtjCBP2TlTibFcvkUN1RRdIUY5giqO7ZqAYAmp7w== - dependencies: - web3-core "1.6.0" - web3-core-helpers "1.6.0" - web3-core-method "1.6.0" - web3-core-subscriptions "1.6.0" - web3-eth-abi "1.6.0" - web3-eth-accounts "1.6.0" - web3-eth-contract "1.6.0" - web3-eth-ens "1.6.0" - web3-eth-iban "1.6.0" - web3-eth-personal "1.6.0" - web3-net "1.6.0" - web3-utils "1.6.0" - -web3-net@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.6.0.tgz#2c28f8787073110a7c2310336889d2dad647e500" - integrity sha512-LFfG95ovTT2sNHkO1TEfsaKpYcxOSUtbuwHQ0K3G0e5nevKDJkPEFIqIcob40yiwcWoqEjENJP9Bjk8CRrZ99Q== - dependencies: - web3-core "1.6.0" - web3-core-method "1.6.0" - web3-utils "1.6.0" - -web3-providers-http@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.6.0.tgz#8db4e589abf7197f5d65b12af1bf9726c45f4160" - integrity sha512-sNxHFNv3lnxpmULt34AS6M36IYB/Hzm2Et4yPNzdP1XE644D8sQBZQZaJQdTaza5HfrlwoqU6AOK935armqGuA== - dependencies: - web3-core-helpers "1.6.0" - xhr2-cookies "1.1.0" - -web3-providers-ipc@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.6.0.tgz#6a3410fd47a67c4a36719fb97f99534ae12aac98" - integrity sha512-ETYdfhpGiGoWpmmSJnONvnPfd3TPivHEGjXyuX+L5FUsbMOVZj9MFLNIS19Cx/YGL8UWJ/8alLJoTcWSIdz/aA== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.6.0" - -web3-providers-ws@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.6.0.tgz#dc15dc18c30089efda992015fd5254bd2b77af5f" - integrity sha512-eNRmlhOPCpuVYwBrKBBQRLGPFb4U1Uo44r9EWV69Cpo4gP6XeBTl6nkawhLz6DS0fq79apyPfItJVuSfAy77pA== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.6.0" - websocket "^1.0.32" - -web3-shh@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.6.0.tgz#838a3435dce1039f669a48e53e948062de197931" - integrity sha512-ymN0OFL81WtEeSyb+PFpuUv39fR3frGwsZnIg5EVPZvrOIdaDSFcGSLDmafUt0vKSubvLMVYIBOCskRD6YdtEQ== - dependencies: - web3-core "1.6.0" - web3-core-method "1.6.0" - web3-core-subscriptions "1.6.0" - web3-net "1.6.0" - -web3-utils@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.6.0.tgz#1975c5ee5b7db8a0836eb7004848a7cd962d1ddc" - integrity sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg== - dependencies: - 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" - -web3@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.6.0.tgz#d8fa0cd9e7bf252f9fe43bb77dc42bc6671affde" - integrity sha512-rWpXnO88MiVX5yTRqMBCVKASxc7QDkXZZUl1D48sKlbX4dt3BAV+nVMVUKCBKiluZ5Bp8pDrVCUdPx/jIYai5Q== - dependencies: - web3-bzz "1.6.0" - web3-core "1.6.0" - web3-eth "1.6.0" - web3-eth-personal "1.6.0" - web3-net "1.6.0" - web3-shh "1.6.0" - web3-utils "1.6.0" - -websocket@^1.0.32: - version "1.0.34" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" - integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== - dependencies: - bufferutil "^4.0.1" - debug "^2.2.0" - es5-ext "^0.10.50" - typedarray-to-buffer "^3.1.5" - utf-8-validate "^5.0.2" - yaeti "^0.0.6" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -6963,15 +4699,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -6987,100 +4714,18 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== -ws@^3.0.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -ws@^7.4.6: - version "7.5.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" - integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.0.1, xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr2-cookies@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= - dependencies: - cookiejar "^2.1.1" - -xhr@^2.0.4, xhr@^2.3.3: - version "2.6.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= - -xpnet-nft-list@^0.2.12: - version "0.2.12" - resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.12.tgz#a4ee952ebbee4fdad727299e171730ad4493263c" - integrity sha512-W9nSFygef6bFIX8gFoGbPeAnkLBLjRl/nsVDjMKIFj9R8kghkaW7irHT0P7tUeg1mkX3/vy5ihOnVm1/2wIh6g== - dependencies: - "@elrondnetwork/erdjs" "^8.0.1-alpha.8" - "@supercharge/promise-pool" "^1.9.0" - axios "^0.23.0" - cors "^2.8.5" - dotenv "^10.0.0" - ethers "^5.5.1" - express "^4.17.1" - js-base64 "^3.7.2" - moralis "^0.0.134" - tronweb "^4.0.0" - "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": version "0.1.0" resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#091246c404973dc9024895d28f999b71a702f82e" dependencies: ethers "^5.4.1" -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= - -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -7090,11 +4735,6 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" From 1835fcf54af8079a57f1d505cc1dbf5f2a99d154 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 6 Dec 2021 22:43:55 +0530 Subject: [PATCH 229/956] helpers: web3: improve return type for txns --- src/helpers/web3.ts | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 1de62c825..4e1b06e8c 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -19,23 +19,18 @@ import { BigNumber as EthBN, PopulatedTransaction, Wallet, - ContractTransaction, ethers, - Transaction, VoidSigner, } from "ethers"; import { - TransactionReceipt, TransactionResponse, Provider, } from "@ethersproject/providers"; import { Minter__factory, - UserNftMinter, UserNftMinter__factory, XPNet__factory, } from "xpnet-web3-contracts"; -import { Base64 } from "js-base64"; import { ChainNonceGet, EstimateTxFees, @@ -119,10 +114,10 @@ export type BaseWeb3Helper = BalanceCheck & export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & - TransferNftForeign & + TransferForeign & + TransferNftForeign & UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & WrappedNftCheck & EstimateTxFees & ChainNonceGet & @@ -378,7 +373,7 @@ export async function web3HelperFactory( to: string, value: BigNumber, txFees: BigNumber - ): Promise { + ): Promise { const val = EthBN.from(value.toString()); const totalVal = val.add(EthBN.from(txFees.toString())); const res = await minter.connect(sender).freeze(chain_nonce, to, val, { @@ -410,7 +405,7 @@ export async function web3HelperFactory( to: string, id: NftInfo, txFees: BigNumber - ): Promise { + ): Promise { await approveForMinter(id, sender); const txr = await minter @@ -442,7 +437,7 @@ export async function web3HelperFactory( to: string, id: NftInfo, txFees: BigNumber - ): Promise { + ): Promise { const res = await minter .connect(sender) .withdrawNft(to, id.native.tokenId, { From d9fe1319200897e3c69043c1f42386f5ddae4634 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 7 Dec 2021 16:04:35 +0530 Subject: [PATCH 230/956] minor fixes for algorand --- src/helpers/algorand.ts | 46 ++++++++++------------------------------- src/socket.ts | 1 - yarn.lock | 2 +- 3 files changed, 12 insertions(+), 37 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index fde1d0bb5..b7e3b597d 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -152,39 +152,15 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { args.algodPort ); - async function waitTxnConfirm(txId: string, timeout: number) { + async function waitTxnConfirm(txId: string) { const status = await algod.status().do(); - if (typeof status === "undefined") - throw new Error("Unable to get node status"); - - const startround = status["last-round"] + 1; - let currentround = startround; - while (currentround < startround + timeout) { - const pendingInfo = await algod.pendingTransactionInformation(txId).do(); - if (pendingInfo !== undefined) { - if ( - pendingInfo["confirmed-round"] !== null && - pendingInfo["confirmed-round"] > 0 - ) { - // Got the completed Transaction - return pendingInfo; - } - - if ( - pendingInfo["pool-error"] != null && - pendingInfo["pool-error"].length > 0 - ) { - // If there was a pool error, then the transaction has been rejected! - throw new Error( - `Transaction Rejected pool error${pendingInfo["pool-error"]}` - ); - } - } - await algod.statusAfterBlock(currentround).do(); - currentround += 1; + let lastRound = status["last-round"]; + let pendingInfo = await algod.pendingTransactionInformation(txId).do(); + while (!(pendingInfo["confirmed-round"] && pendingInfo["confirmed-round"] > 0)) { + lastRound += 1; + await algod.statusAfterBlock(lastRound).do(); + pendingInfo = await algod.pendingTransactionInformation(txId).do(); } - - throw new Error(`Transaction not confirmed after ${timeout} rounds!`); } const transferNft = async ( @@ -208,7 +184,7 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { ledger: signer.ledger, tx: signedTxCall[0].blob, }); - await waitTxnConfirm(res.txId, 10000); + await waitTxnConfirm(res.txId); const feesTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ from: signer.address, @@ -254,7 +230,7 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { Base64.toUint8Array(signedTxns[2].blob), ]) .do(); - await waitTxnConfirm(sendRes.txId, 10000); + await waitTxnConfirm(sendRes.txId); return sendRes.txId as string; }; @@ -274,7 +250,7 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { ledger: signer.ledger, tx: signedTx[0].blob, }); - await waitTxnConfirm(res.txId, 10000); + await waitTxnConfirm(res.txId); const callTxn = algosdk.makeApplicationNoOpTxnFromObject({ from: signer.address, @@ -294,7 +270,7 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { tx: signedCall[0].blob, }); - await waitTxnConfirm(callRes.txId, 10000); + await waitTxnConfirm(callRes.txId); return callRes.txId; } diff --git a/src/socket.ts b/src/socket.ts index 72e521471..7dbd33d5a 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -166,7 +166,6 @@ export function socketHelper( // Validator sends a an action paired with chain id // this is implementation dependent on validator const paired = pairAction(sourceChain, action_id).toString(); - console.log(paired); return await waitSocketData(algoBuf, 15, paired); }, }; diff --git a/yarn.lock b/yarn.lock index 80764b982..85c7c32e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2029,7 +2029,7 @@ crypt@0.0.2: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#aa69f8dcc324a3a66e070542e966f61efd6e5c39" + resolved "git+https://github.com/xp-network/exchange-rate#6174eb2109d76e16286b12054573b3eacc2f797b" dependencies: axios "^0.21.1" From 509bd5cae1eea98b76c7310996f07b70478cbd5d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 7 Dec 2021 18:45:46 +0530 Subject: [PATCH 231/956] feat(factory): include algorand --- src/consts.ts | 26 ++++++++++++++++++++------ src/factory/index.ts | 37 ++++++++++++++++++++++++------------- src/helpers/algorand.ts | 10 ++++++---- 3 files changed, 50 insertions(+), 23 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 10fb81992..a6f1904d8 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -7,7 +7,11 @@ import { import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; -import { AlgorandArgs, AlgorandHelper } from "./helpers/algorand"; +import { + AlgorandParams, + AlgorandHelper, + algorandHelper, +} from "./helpers/algorand"; import { AppConfig } from "./factory"; // All the supported testnet uri's are here. @@ -46,7 +50,7 @@ export type ChainNonce<_, __> = number; export type ElrondNonce = ChainNonce; export type Web3Nonce = ChainNonce; export type TronNonce = ChainNonce; -export type AlgoNonce = ChainNonce; +export type AlgoNonce = ChainNonce; export namespace Chain { export const ELROND: ElrondNonce = 2; @@ -68,7 +72,7 @@ interface ChainData { nonce: number; decimals: number; constructor: ( - params: Web3Params | TronParams | ElrondParams + params: Web3Params | TronParams | ElrondParams | AlgorandParams ) => Promise; blockExplorerUrl: string; chainId?: number; @@ -201,14 +205,24 @@ export const CHAIN_INFO: ChainInfo = { currency: SupportedCurrency.STAKE, validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, - // TODO: Algorand + 15: { + name: "Algorand", + nonce: 0xf, + decimals: 1e6, + chainId: undefined, + blockExplorerUrl: "https://algoexplorer.io/tx", + currency: SupportedCurrency.ALGO, + validators: ["BO4OK76FDVM4YUXLY4YPWBV4HDA6DBVS5RDDCGRNEXBQ2YQTCZPUBWY5Z4"], + constructor: (p) => Promise.resolve(algorandHelper(p as AlgorandParams)), + }, }; export const Config: AppConfig = { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", nftListUri: "https://nftindexing.herokuapp.com", - nftListAuthToken: "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjI2ODQzNTQ1NSwiaWF0IjoxNjM4MTg3MTk5LCJleHAiOjE2Mzg3OTE5OTl9.aKs8K2V8K_rWqQPshae1EzuAEpPMVWBZakfmyBeeq-nJuiEKb1KBSle1F8LNemXLW_3_4KFwDjZrNOx0zA_GNw", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjI2ODQzNTQ1NSwiaWF0IjoxNjM4MTg3MTk5LCJleHAiOjE2Mzg3OTE5OTl9.aKs8K2V8K_rWqQPshae1EzuAEpPMVWBZakfmyBeeq-nJuiEKb1KBSle1F8LNemXLW_3_4KFwDjZrNOx0zA_GNw", txSocketUri: "https://sockettx.herokuapp.com", tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com" + heartbeatUri: "https://xpheartbeat.herokuapp.com", }; diff --git a/src/factory/index.ts b/src/factory/index.ts index 0dd85d6b1..a4d191d37 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -36,15 +36,13 @@ import { import BigNumber from "bignumber.js"; import axios from "axios"; -import { - exchangeRateRepo, -} from "./cons"; +import { exchangeRateRepo } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; import { PopulatedTransaction } from "ethers"; import { - AlgorandArgs, + AlgorandParams, AlgorandHelper, AlgoSignerH, algoSignerWrapper, @@ -52,7 +50,11 @@ import { import algosdk from "algosdk"; import { Base64 } from "js-base64"; -export type CrossChainHelper = ElrondHelper | Web3Helper | TronHelper; +export type CrossChainHelper = + | ElrondHelper + | Web3Helper + | TronHelper + | AlgorandHelper; type NftUriChain = ChainNonceGet & WrappedNftCheck; @@ -237,7 +239,7 @@ export interface ChainParams { harmonyParams: Web3Params; ontologyParams: Web3Params; xDaiParams: Web3Params; - algorandParams: AlgorandArgs; + algorandParams: AlgorandParams; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -260,10 +262,13 @@ export interface AppConfig { function mapNonceToParams( chainParams: Partial -): Map { +): Map< + number, + Web3Params | ElrondParams | TronParams | AlgorandParams | undefined +> { const cToP = new Map< number, - Web3Params | ElrondParams | TronParams | undefined + Web3Params | ElrondParams | TronParams | AlgorandParams | undefined >(); cToP.set(2, chainParams.elrondParams); @@ -279,6 +284,7 @@ function mapNonceToParams( cToP.set(12, chainParams.harmonyParams); cToP.set(13, chainParams.ontologyParams); cToP.set(14, chainParams.xDaiParams); + cToP.set(15, chainParams.algorandParams); return cToP; } /** @@ -303,8 +309,8 @@ export function ChainFactory( const nftlistRest = axios.create({ baseURL: appConfig.nftListUri, headers: { - Authorization: `Bearer ${appConfig.nftListAuthToken}` - } + Authorization: `Bearer ${appConfig.nftListAuthToken}`, + }, }); const inner = async (chain: ChainNonce): Promise => { @@ -493,8 +499,8 @@ export function ChainFactory( }, async nftList(chain: NftUriChain, owner: string) { return await nftlistRest - .get[]>(`/${chain.getNonce()}/${owner}`) - .then((v) => v.data); + .get[]>(`/${chain.getNonce()}/${owner}`) + .then((v) => v.data); }, transferNft: async (fromChain, toChain, nft, sender, receiver, fee) => { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); @@ -539,7 +545,12 @@ export function ChainFactory( const action = await origin.extractAction(hash); const algo: AlgorandHelper = await inner(Chain.ALGORAND); - return await algo.claimAlgorandNft(claimer, origin.getNonce(), action, txSocket); + return await algo.claimAlgorandNft( + claimer, + origin.getNonce(), + action, + txSocket + ); }, }; } diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index b7e3b597d..5327caa07 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -110,7 +110,7 @@ export function algoSignerWrapper( export interface ClaimAlgorandNft { claimAlgorandNft( signer: AlgoSignerH, - sourceChain: number, + sourceChain: number, actionId: string, socket: AlgorandSocketHelper ): Promise; @@ -127,7 +127,7 @@ export type AlgorandHelper = ChainNonceGet & algod: algosdk.Algodv2; } & ClaimAlgorandNft; -export type AlgorandArgs = { +export type AlgorandParams = { algodApiKey: string; algodUri: string; algodPort: number | undefined; @@ -144,7 +144,7 @@ type MinWrappedNft = { const encoder = new TextEncoder(); const MINT_NFT_COST = new BigNumber(1000); -export function algorandHelper(args: AlgorandArgs): AlgorandHelper { +export function algorandHelper(args: AlgorandParams): AlgorandHelper { const appAddr = algosdk.getApplicationAddress(args.sendNftAppId); const algod = new algosdk.Algodv2( args.algodApiKey, @@ -156,7 +156,9 @@ export function algorandHelper(args: AlgorandArgs): AlgorandHelper { const status = await algod.status().do(); let lastRound = status["last-round"]; let pendingInfo = await algod.pendingTransactionInformation(txId).do(); - while (!(pendingInfo["confirmed-round"] && pendingInfo["confirmed-round"] > 0)) { + while ( + !(pendingInfo["confirmed-round"] && pendingInfo["confirmed-round"] > 0) + ) { lastRound += 1; await algod.statusAfterBlock(lastRound).do(); pendingInfo = await algod.pendingTransactionInformation(txId).do(); From ce0211f86b54a13bf029d9a91f970886a279ea67 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 7 Dec 2021 20:25:11 +0530 Subject: [PATCH 232/956] feat(factories): add algorand --- src/factory/factories.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 26e2cc878..913a777b0 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -129,6 +129,14 @@ export namespace ChainFactoryConfigs { validators: EVM_TESTNET_VALIDATORS, nonce: Chain.XDAI, }, + algorandParams: { + algodApiKey: + "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodUri: "https://algorand-node.xp.network/", + nonce: Chain.ALGORAND, + sendNftAppId: 457256665, + algodPort: 443, + }, }); export const MainNet: () => Partial = () => ({ @@ -233,5 +241,13 @@ export namespace ChainFactoryConfigs { validators: EVM_VALIDATORS, nonce: Chain.XDAI, }, + algorandParams: { + algodApiKey: + "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodUri: "https://algorand-node.xp.network/", + nonce: Chain.ALGORAND, + sendNftAppId: 457256665, + algodPort: 443, + }, }); } From 4f597a7cfbfff062f2f3d95e40723c855212282b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 7 Dec 2021 22:28:39 +0530 Subject: [PATCH 233/956] feat(factory): use nft lister for algorand --- package.json | 1 + src/factory/cons.ts | 14 + src/factory/factories.ts | 2 +- src/factory/index.ts | 9 +- yarn.lock | 2554 ++++++++++++++++++++++++++++++++++++-- 5 files changed, 2508 insertions(+), 72 deletions(-) diff --git a/package.json b/package.json index b3ae38154..a12163bd4 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.0.0", + "xpnet-nft-list": "^0.2.12", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/src/factory/cons.ts b/src/factory/cons.ts index cc83eed99..f205f1bde 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -4,6 +4,12 @@ import { networkBatchExchangeRateRepo, NetworkModel, } from "crypto-exchange-rate"; +import { + algoAssetMapper, + algoNftListService, + mockChainIdentMapper, + nftListRepo, +} from "xpnet-nft-list"; export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { const baseService = NetworkModel.batchExchangeRateService(baseUrl); @@ -15,3 +21,11 @@ export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { ) ); } + +export const algoListNft = (baseUri: string) => { + return nftListRepo( + algoNftListService(baseUri), + algoAssetMapper(), + mockChainIdentMapper() + ); +}; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 913a777b0..2fab9a972 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -1,4 +1,4 @@ -import { AppConfig, ChainFactory, ChainParams } from "."; +import { ChainParams } from "."; //@ts-ignore import TronWeb from "tronweb"; import { Chain, MainNetRpcUri, TestNetRpcUri } from "../consts"; diff --git a/src/factory/index.ts b/src/factory/index.ts index a4d191d37..a95d11a05 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -36,7 +36,7 @@ import { import BigNumber from "bignumber.js"; import axios from "axios"; -import { exchangeRateRepo } from "./cons"; +import { algoListNft, exchangeRateRepo } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; @@ -49,6 +49,7 @@ import { } from "../helpers/algorand"; import algosdk from "algosdk"; import { Base64 } from "js-base64"; +import { nftListRepo } from "xpnet-nft-list"; export type CrossChainHelper = | ElrondHelper @@ -498,6 +499,12 @@ export function ChainFactory( cToP.set(chainNonce, params as any); }, async nftList(chain: NftUriChain, owner: string) { + if (chain.getNonce() === Chain.ALGORAND) { + return (await algoListNft(chainParams.algorandParams!.algodUri).nfts( + BigInt(0xf), + owner + )) as unknown as NftInfo[]; + } return await nftlistRest .get[]>(`/${chain.getNonce()}/${owner}`) .then((v) => v.data); diff --git a/yarn.lock b/yarn.lock index 85c7c32e3..7534291b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,13 @@ dependencies: "@babel/highlight" "^7.10.4" +"@babel/code-frame@^7.0.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" + integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== + dependencies: + "@babel/highlight" "^7.16.0" + "@babel/code-frame@^7.10.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" @@ -21,6 +28,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== +"@babel/helper-validator-identifier@^7.15.7": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== + "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" @@ -30,6 +42,23 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" + integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime-corejs3@7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz#ffee91da0eb4c6dae080774e94ba606368e414f4" + integrity sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + "@babel/runtime@7.11.2": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" @@ -37,6 +66,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" + integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.0.0": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" @@ -106,6 +142,37 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.0.tgz#feb96fb154da41ee2cc2c5df667621a440f36348" + integrity sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.3" + +"@ethereumjs/tx@^3.3.2": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.4.0.tgz#7eb1947eefa55eb9cf05b3ca116fb7a3dbd0bce7" + integrity sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw== + dependencies: + "@ethereumjs/common" "^2.6.0" + ethereumjs-util "^7.1.3" + +"@ethersproject/abi@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@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/abi@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.0.tgz#a6d63bdb3672f738398846d4279fa6b6c9818242" @@ -136,7 +203,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/abi@^5.4.0": +"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== @@ -177,7 +244,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/web" "^5.4.0" -"@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": +"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": version "5.5.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== @@ -212,7 +279,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": +"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== @@ -234,7 +301,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/rlp" "^5.4.0" -"@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": +"@ethersproject/address@5.5.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== @@ -252,7 +319,7 @@ dependencies: "@ethersproject/bytes" "^5.4.0" -"@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": +"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== @@ -267,7 +334,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": +"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== @@ -293,7 +360,7 @@ "@ethersproject/logger" "^5.4.0" bn.js "^4.11.9" -"@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": +"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== @@ -309,7 +376,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": +"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== @@ -323,7 +390,7 @@ dependencies: "@ethersproject/bignumber" "^5.4.0" -"@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": +"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== @@ -362,6 +429,22 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/transactions" "^5.4.0" +"@ethersproject/contracts@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" + integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== + dependencies: + "@ethersproject/abi" "^5.5.0" + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/hash@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" @@ -376,7 +459,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": +"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== @@ -408,7 +491,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" -"@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": +"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== @@ -445,7 +528,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/json-wallets@^5.4.0": +"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.4.0", "@ethersproject/json-wallets@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== @@ -472,7 +555,7 @@ "@ethersproject/bytes" "^5.4.0" js-sha3 "0.5.7" -"@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": +"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== @@ -490,7 +573,7 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== -"@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": +"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== @@ -509,6 +592,13 @@ dependencies: "@ethersproject/logger" "^5.4.0" +"@ethersproject/networks@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.1.tgz#b7f7b9fb88dec1ea48f739b7fb9621311aa8ce6c" + integrity sha512-tYRDM4zZtSUcKnD4UMuAlj7SeXH/k5WC4SP2u1Pn57++JdXHkRu2zwNkgNogZoxHzhm9Q6qqurDBVptHOsW49Q== + dependencies: + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks@^5.4.0", "@ethersproject/networks@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" @@ -524,7 +614,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/sha2" "^5.4.0" -"@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": +"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== @@ -546,7 +636,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": +"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== @@ -628,6 +718,31 @@ bech32 "1.1.4" ws "7.4.6" +"@ethersproject/providers@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.1.tgz#ba87e3c93219bbd2e2edf8b369873aee774abf04" + integrity sha512-2zdD5sltACDWhjUE12Kucg2PcgM6V2q9JMyVvObtVGnzJu+QSmibbP+BHQyLWZUBfLApx2942+7DC5D+n4wBQQ== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/basex" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/web" "^5.5.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/random@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" @@ -636,7 +751,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": +"@ethersproject/random@5.5.0", "@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== @@ -652,7 +767,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": +"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== @@ -669,7 +784,7 @@ "@ethersproject/logger" "^5.4.0" hash.js "1.1.7" -"@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": +"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== @@ -690,7 +805,7 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": +"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== @@ -713,6 +828,18 @@ "@ethersproject/sha2" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/solidity@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" + integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/strings@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" @@ -722,7 +849,7 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": +"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== @@ -746,7 +873,7 @@ "@ethersproject/rlp" "^5.4.0" "@ethersproject/signing-key" "^5.4.0" -"@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": +"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== @@ -770,6 +897,15 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" +"@ethersproject/units@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" + integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/wallet@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" @@ -791,6 +927,27 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" +"@ethersproject/wallet@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" + integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/hdnode" "^5.5.0" + "@ethersproject/json-wallets" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/wordlists" "^5.5.0" + "@ethersproject/web@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" @@ -802,6 +959,17 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/web@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.1.tgz#cfcc4a074a6936c657878ac58917a61341681316" + integrity sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg== + dependencies: + "@ethersproject/base64" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" @@ -824,7 +992,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": +"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== @@ -923,6 +1091,11 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== +"@metamask/detect-provider@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@metamask/detect-provider/-/detect-provider-1.2.0.tgz#3667a7531f2a682e3c3a43eaf3a1958bdb42a696" + integrity sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1104,11 +1277,28 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + "@sindresorhus/is@^2.0.0": version "2.1.1" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== +"@supercharge/promise-pool@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-1.9.0.tgz#7630c760535919db93711ca35716ada59d86feb7" + integrity sha512-UqQrree8uGTCEDKAnGJci1B7NGIZ1xepXHjUEqbH16Wgvr/j5+54hxebkpTpDcz5t2SrzY6J6USSlmgQeo66/g== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + "@szmarczak/http-timer@^4.0.0": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1116,6 +1306,20 @@ dependencies: defer-to-connect "^2.0.0" +"@types/bn.js@^4.11.5": + version "4.11.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + +"@types/bn.js@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" + integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== + dependencies: + "@types/node" "*" + "@types/cacheable-request@^6.0.1": version "6.0.2" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" @@ -1163,11 +1367,28 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== +"@types/node@^12.12.6": + version "12.20.37" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.37.tgz#abb38afa9d6e8a2f627a8cb52290b3c80fbe61ed" + integrity sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA== + "@types/node@^13.7.0": version "13.13.52" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" + "@types/responselike@*": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -1175,6 +1396,13 @@ dependencies: "@types/node" "*" +"@types/secp256k1@^4.0.1": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + dependencies: + "@types/node" "*" + "@typescript-eslint/eslint-plugin@^4.31.0": version "4.31.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" @@ -1428,6 +1656,14 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1448,7 +1684,15 @@ aes-js@^3.1.2: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1494,6 +1738,13 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -1556,6 +1807,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -1571,6 +1827,28 @@ array.prototype.flatmap@^1.2.4: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + assert@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" @@ -1591,6 +1869,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1606,6 +1889,16 @@ available-typed-arrays@^1.0.2: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + axios@0.21.1, axios@^0.21.1: version "0.21.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" @@ -1613,6 +1906,13 @@ axios@0.21.1, axios@^0.21.1: dependencies: follow-redirects "^1.10.0" +axios@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.23.0.tgz#b0fa5d0948a8d1d75e3d5635238b6c4625b05149" + integrity sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg== + dependencies: + follow-redirects "^1.14.4" + babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1636,6 +1936,13 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base-x@^3.0.2, base-x@^3.0.8: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + base64-arraybuffer@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" @@ -1646,6 +1953,13 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -1725,21 +2039,57 @@ blake2b@2.1.3: blake2b-wasm "^1.1.0" nanoassert "^1.0.0" +blakejs@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" + integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== + +bluebird@^3.5.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + bluebird@~3.4.1: version "3.4.7" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= + bn.js@4.11.8: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +body-parser@1.19.0, body-parser@^1.16.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1755,11 +2105,81 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.1.0: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + 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" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +bs58@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + dependencies: + base-x "^3.0.2" + +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + btoa-lite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" @@ -1770,7 +2190,17 @@ buffer-indexof-polyfill@~1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== -buffer@^5.5.0: +buffer-to-arraybuffer@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -1791,6 +2221,18 @@ buffers@~0.1.1: resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= +bufferutil@^4.0.1: + version "4.0.5" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028" + integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== + dependencies: + node-gyp-build "^4.3.0" + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + cacheable-lookup@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" @@ -1799,6 +2241,19 @@ cacheable-lookup@^2.0.0: "@types/keyv" "^3.1.1" keyv "^4.0.0" +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + 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" + cacheable-request@^7.0.1: version "7.0.2" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" @@ -1830,6 +2285,11 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + chainsaw@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" @@ -1874,12 +2334,23 @@ chokidar@^3.0.0: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: +chownr@^1.1.1, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -cipher-base@^1.0.1, cipher-base@^1.0.3: +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== @@ -1887,6 +2358,31 @@ cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-truncate@2.1.0, cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -1932,12 +2428,22 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + +colorette@^2.0.16: + version "2.0.16" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.8: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -1949,6 +2455,11 @@ commander@^6.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + component-emitter@^1.3.0, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -1964,22 +2475,93 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -cookiejar@^2.1.2: +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-hash@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookiejar@^2.1.1, cookiejar@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== +core-js-pure@^3.0.0: + version "3.19.3" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.19.3.tgz#c69b2b36b58927317824994b532ec3f0f7e49607" + integrity sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA== + core-js@^2.4.0: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -create-hash@^1.1.0, create-hash@^1.1.2: +cors@^2.8.1, cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +crc-32@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -1990,7 +2572,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@1.1.7, create-hmac@^1.1.4: +create-hmac@1.1.7, create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -2013,7 +2595,7 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.2: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2027,18 +2609,69 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= +crypto-browserify@3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#6174eb2109d76e16286b12054573b3eacc2f797b" dependencies: axios "^0.21.1" -debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" +crypto-js@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc" + integrity sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debug@2.6.9, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@^4.3.2: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" decamelize@^1.2.0: version "1.2.0" @@ -2050,6 +2683,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + decompress-response@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" @@ -2079,6 +2719,11 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + defer-to-connect@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" @@ -2101,11 +2746,29 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-browser@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" @@ -2116,6 +2779,15 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2130,6 +2802,16 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" @@ -2142,6 +2824,14 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + ed25519-hd-key@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.1.2.tgz#168dcf08419694be7bba3319e7d64e4a5cfe5d44" @@ -2151,7 +2841,12 @@ ed25519-hd-key@1.1.2: create-hmac "1.1.7" tweetnacl "1.0.3" -elliptic@6.5.4, elliptic@^6.5.4: +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -2174,6 +2869,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2203,13 +2903,20 @@ engine.io-parser@~4.0.1: dependencies: base64-arraybuffer "0.1.4" -enquirer@^2.3.5: +enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: version "1.18.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" @@ -2241,11 +2948,42 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + es6-object-assign@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2401,6 +3139,79 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eth-ens-namehash@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" + integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= + dependencies: + idna-uts46-hx "^2.3.1" + js-sha3 "^0.5.7" + +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + +eth-lib@^0.1.26: + version "0.1.29" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" + integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + nano-json-stream-parser "^0.1.2" + servify "^0.1.12" + ws "^3.0.0" + xhr-request-promise "^0.1.2" + +ethereum-bloom-filters@^1.0.6: + version "1.0.10" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== + dependencies: + js-sha3 "^0.8.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@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" + +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz#b55d7b64dde3e3e45749e4c41288238edec32d23" + integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== + dependencies: + "@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" + ethers@5.4.4: version "5.4.4" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.4.tgz#35cce530505b84c699da944162195cfb3f894947" @@ -2509,11 +3320,60 @@ ethers@^5.4.4: "@ethersproject/web" "5.4.0" "@ethersproject/wordlists" "5.4.0" +ethers@^5.5.1: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.2.tgz#cd2e508c7342c44fa70392f722e8de8f2416489f" + integrity sha512-EF5W+6Wwcu6BqVwpgmyR5U2+L4c1FQzlM/02dkZOugN3KF0cG9bzHZP+TDJglmPm2/IzCEJDT7KBxzayk7SAHw== + dependencies: + "@ethersproject/abi" "5.5.0" + "@ethersproject/abstract-provider" "5.5.1" + "@ethersproject/abstract-signer" "5.5.0" + "@ethersproject/address" "5.5.0" + "@ethersproject/base64" "5.5.0" + "@ethersproject/basex" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/constants" "5.5.0" + "@ethersproject/contracts" "5.5.0" + "@ethersproject/hash" "5.5.0" + "@ethersproject/hdnode" "5.5.0" + "@ethersproject/json-wallets" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/logger" "5.5.0" + "@ethersproject/networks" "5.5.1" + "@ethersproject/pbkdf2" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/providers" "5.5.1" + "@ethersproject/random" "5.5.0" + "@ethersproject/rlp" "5.5.0" + "@ethersproject/sha2" "5.5.0" + "@ethersproject/signing-key" "5.5.0" + "@ethersproject/solidity" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@ethersproject/transactions" "5.5.0" + "@ethersproject/units" "5.5.0" + "@ethersproject/wallet" "5.5.0" + "@ethersproject/web" "5.5.1" + "@ethersproject/wordlists" "5.5.0" + +ethjs-unit@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= + dependencies: + bn.js "4.11.6" + number-to-bn "1.7.0" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" @@ -2524,6 +3384,14 @@ events@^3.3.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -2537,11 +3405,89 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== +express@^4.14.0, express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" + integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== + dependencies: + type "^2.5.0" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2599,6 +3545,19 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -2672,11 +3631,21 @@ follow-redirects@^1.10.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== +follow-redirects@^1.14.4: + version "1.14.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381" + integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA== + foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -2686,16 +3655,44 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + formidable@^1.2.2: version "1.2.6" resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -2705,6 +3702,13 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2763,7 +3767,17 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-stream@^4.0.0: +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -2777,6 +3791,18 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" @@ -2813,6 +3839,14 @@ glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" +global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + globals@^13.6.0, globals@^13.9.0: version "13.10.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" @@ -2832,6 +3866,23 @@ globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" +got@9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + 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" + got@^10.5.7: version "10.7.0" resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" @@ -2853,11 +3904,44 @@ got@^10.5.7: to-readable-stream "^2.0.0" type-fest "^0.10.0" +got@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -2878,11 +3962,23 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -2931,6 +4027,61 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +idna-uts46-hx@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== + dependencies: + punycode "2.1.0" + ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -2959,6 +4110,11 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2967,11 +4123,16 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -2987,6 +4148,11 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + is-arguments@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" @@ -2994,6 +4160,11 @@ is-arguments@^1.0.4: dependencies: call-bind "^1.0.0" +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + is-bigint@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" @@ -3057,6 +4228,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + is-generator-function@^1.0.7: version "1.0.9" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c" @@ -3069,6 +4245,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= + is-nan@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -3092,6 +4273,21 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -3105,11 +4301,26 @@ is-regex@^1.1.3: call-bind "^1.0.2" has-symbols "^1.0.2" -is-stream@^1.1.0: +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-retry-allowed@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + is-string@^1.0.5, is-string@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" @@ -3133,7 +4344,7 @@ is-typed-array@^1.1.3: foreach "^2.0.5" has-symbols "^1.0.1" -is-typedarray@1.0.0, is-typedarray@^1.0.0: +is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -3148,17 +4359,35 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + js-base64@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.1.tgz#555aae398b74694b4037af1f8a5a6209d170efbe" integrity sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ== +js-base64@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" + integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== + js-sha256@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== -js-sha3@0.5.7: +js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= @@ -3186,6 +4415,11 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + json-bigint@1.0.0, json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -3193,6 +4427,11 @@ json-bigint@1.0.0, json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -3205,6 +4444,11 @@ json-duplicate-key-handle@1.0.0: dependencies: backslash "^0.2.0" +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -3215,11 +4459,21 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" @@ -3232,7 +4486,17 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -keccak@^3.0.1: +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +keccak@^3.0.0, keccak@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== @@ -3246,6 +4510,13 @@ kefir@^3.7.3: resolved "https://registry.yarnpkg.com/kefir/-/kefir-3.8.8.tgz#235932ddfbed422acebf5d7cba503035e9ea05c5" integrity sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA== +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + keyv@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" @@ -3266,11 +4537,50 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lint-staged@^11.1.2: + version "11.2.6" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.6.tgz#f477b1af0294db054e5937f171679df63baa4c43" + integrity sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg== + dependencies: + cli-truncate "2.1.0" + colorette "^1.4.0" + commander "^8.2.0" + cosmiconfig "^7.0.1" + debug "^4.3.2" + enquirer "^2.3.6" + execa "^5.1.1" + listr2 "^3.12.2" + micromatch "^4.0.4" + normalize-path "^3.0.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" + stringify-object "3.3.0" + supports-color "8.1.1" + listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= +listr2@^3.12.2: + version "3.13.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.5.tgz#105a813f2eb2329c4aae27373a281d610ee4985f" + integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.4.0" + through "^2.3.8" + wrap-ansi "^7.0.0" + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -3313,11 +4623,26 @@ lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -3370,12 +4695,27 @@ md5@^2.2.1: crypt "0.0.2" is-buffer "~1.1.6" +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@^1.1.2: +methods@^1.1.2, methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= @@ -3388,11 +4728,24 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + mime-db@1.50.0: version "1.50.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== +mime-db@1.51.0: + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== + mime-types@^2.1.12: version "2.1.33" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" @@ -3400,12 +4753,29 @@ mime-types@^2.1.12: dependencies: mime-db "1.50.0" +mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + mime@^2.4.6: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -mimic-response@^1.0.0: +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== @@ -3415,6 +4785,13 @@ mimic-response@^2.0.0, mimic-response@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -3437,28 +4814,128 @@ minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -"mkdirp@>=0.5 0": +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +"mkdirp@>=0.5 0", mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mock-fs@^4.1.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== + +moralis@^0.0.134: + version "0.0.134" + resolved "https://registry.yarnpkg.com/moralis/-/moralis-0.0.134.tgz#fa763b5a480e0e572828d681ade7e0e958e51259" + integrity sha512-2+JkbHDOhTzgbAnx6foJ7BwngCvYhNbpjwStvSOjrdX6eWKNT5njyLQtTJlJUaXS7uJSkvtV2frSwEZ78ZnwGQ== + dependencies: + "@babel/runtime" "7.12.5" + "@babel/runtime-corejs3" "7.12.5" + "@metamask/detect-provider" "^1.2.0" + axios "^0.23.0" + lint-staged "^11.1.2" + react-native-crypto-js "1.0.0" + uuid "3.4.0" + web3 "^1.6.0" + ws "^7.4.6" + xmlhttprequest "1.8.0" + optionalDependencies: + crypto-js "4.0.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +nano-json-stream-parser@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= + nanoassert@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" @@ -3474,6 +4951,16 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -3511,6 +4998,11 @@ node-gyp-build@^4.2.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== +node-gyp-build@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" + integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== + node-hid@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.1.tgz#f83c8aa0bb4e6758b5f7383542477da93f67359d" @@ -3530,6 +5022,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -3542,6 +5039,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + npmlog@^4.0.1: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -3557,7 +5061,20 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -object-assign@^4.1.0: +number-to-bn@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -3600,11 +5117,25 @@ object.fromentries@^2.0.3: es-abstract "^1.18.0-next.2" has "^1.0.3" +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= + dependencies: + http-https "^1.0.0" + octokit-pagination-methods@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -3612,6 +5143,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + onigasm@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.5.tgz#cc4d2a79a0fa0b64caec1f4c7ea367585a676892" @@ -3639,6 +5177,16 @@ os-name@^3.1.0: macos-release "^2.2.0" windows-release "^3.1.0" +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" @@ -3670,6 +5218,20 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + dependencies: + p-finally "^1.0.0" + p-timeout@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -3689,6 +5251,32 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-headers@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" + integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + parseqs@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" @@ -3699,6 +5287,11 @@ parseuri@0.0.6: resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -3714,7 +5307,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -3724,12 +5317,17 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.9: +pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -3745,6 +5343,11 @@ perf_hooks@0.0.1: resolved "https://registry.yarnpkg.com/perf_hooks/-/perf_hooks-0.0.1.tgz#253e7e18b71fcc0390fd3afb2cd7cf1685df040c" integrity sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw== +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" @@ -3755,6 +5358,13 @@ platform@1.3.6: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + prebuild-install@^5.3.3: version "5.3.6" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz#7c225568d864c71d89d07f8796042733a3f54291" @@ -3800,6 +5410,16 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + prettier@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" @@ -3810,11 +5430,21 @@ prettier@^2.1.1, prettier@^2.3.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -3839,6 +5469,31 @@ protobufjs@6.10.2: "@types/node" "^13.7.0" long "^4.0.0" +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -3847,7 +5502,12 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0: +punycode@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= + +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -3859,6 +5519,16 @@ qs@6.10.1, qs@^6.9.4: dependencies: side-channel "^1.0.4" +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + query-string@6.13.5: version "6.13.5" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" @@ -3868,6 +5538,15 @@ query-string@6.13.5: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -3878,13 +5557,36 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.0.1, randombytes@^2.1.0: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -3895,6 +5597,11 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-native-crypto-js@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/react-native-crypto-js/-/react-native-crypto-js-1.0.0.tgz#e677e022e147f41b35614416c92d655f87e2450a" + integrity sha512-FNbLuG/HAdapQoybeZSoes1PWdOj0w242gb+e1R0hicf3Gyj/Mf8M9NaED2AnXVOX01b2FXomwUiw1xP1K+8sA== + readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -3946,6 +5653,32 @@ regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +request@^2.79.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -3979,6 +5712,13 @@ resolve@^1.1.6: is-core-module "^2.2.0" path-parse "^1.0.6" +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + responselike@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" @@ -3986,11 +5726,24 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + rimraf@2: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -4013,6 +5766,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -4027,17 +5787,29 @@ rxjs@6: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +rxjs@^7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" + integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== + dependencies: + tslib "~2.1.0" -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -scrypt-js@3.0.1: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -4047,6 +5819,20 @@ scryptsy@2.1.0: resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== +secp256k1@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" + integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== + dependencies: + elliptic "^6.5.2" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + semver@7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" @@ -4064,16 +5850,61 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +servify@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== + dependencies: + body-parser "^1.16.0" + cors "^2.8.1" + express "^4.14.0" + request "^2.79.0" + xhr "^2.3.3" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -setimmediate@~1.0.4: +setimmediate@^1.0.5, setimmediate@~1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -4138,11 +5969,25 @@ signal-exit@^3.0.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.6" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" + integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== + simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== +simple-get@^2.7.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" + integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-get@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" @@ -4166,6 +6011,15 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -4207,11 +6061,41 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= +string-argv@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -4277,6 +6161,15 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-object@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -4310,6 +6203,18 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= + dependencies: + is-hex-prefixed "1.0.0" + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -4337,6 +6242,13 @@ superagent@^6.1.0: readable-stream "^3.6.0" semver "^7.3.2" +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4351,6 +6263,23 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +swarm-js@^0.1.40: + version "0.1.40" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" + integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== + dependencies: + bluebird "^3.5.0" + buffer "^5.0.5" + eth-lib "^0.1.26" + fs-extra "^4.0.2" + got "^7.1.0" + mime-types "^2.1.16" + mkdirp-promise "^5.0.1" + mock-fs "^4.1.0" + setimmediate "^1.0.5" + tar "^4.0.2" + xhr-request "^1.0.1" + table@^5.4.6: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -4394,6 +6323,19 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" +tar@^4.0.2: + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -4404,6 +6346,16 @@ through@^2.3.8: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + to-readable-stream@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" @@ -4416,6 +6368,19 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + "traverse@>=0.3.0 <0.4": version "0.3.9" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" @@ -4450,6 +6415,11 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -4469,6 +6439,11 @@ tweetnacl@1.0.3, tweetnacl@^1.0.3: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -4486,7 +6461,30 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typedarray-to-buffer@3.1.5: +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" + integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== + +typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== @@ -4519,6 +6517,11 @@ u2f-api@0.2.7: resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -4546,6 +6549,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + unzipper@^0.10.8: version "0.10.11" resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" @@ -4569,6 +6577,20 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + url-parse@^1.5.1: version "1.5.3" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" @@ -4577,6 +6599,16 @@ url-parse@^1.5.1: querystringify "^2.1.1" requires-port "^1.0.0" +url-set-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + usb@^1.7.0: version "1.7.1" resolved "https://registry.yarnpkg.com/usb/-/usb-1.7.1.tgz#d723223ec517b802c4d2082e31a4649c65c491c5" @@ -4586,6 +6618,18 @@ usb@^1.7.0: node-addon-api "3.0.2" prebuild-install "^5.3.3" +utf-8-validate@^5.0.2: + version "5.0.7" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" + integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== + dependencies: + node-gyp-build "^4.3.0" + +utf8@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -4603,6 +6647,21 @@ util@^0.12.0: safe-buffer "^5.1.2" which-typed-array "^1.1.2" +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@3.4.0, uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + uuid@8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -4618,11 +6677,270 @@ validator@^13.6.0: resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== +varint@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vscode-textmate@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== +web3-bzz@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.6.1.tgz#8430eb3cbb69baaee4981d190b840748c37a9ec2" + integrity sha512-JbnFNbRlwwHJZPtVuCxo7rC4U4OTg+mPsyhjgPQJJhS0a6Y54OgVWYk9UA/95HqbmTJwTtX329gJoSsseEfrng== + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + +web3-core-helpers@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.6.1.tgz#cb21047306871f4cf0fedfece7d47ea2aa96141b" + integrity sha512-om2PZvK1uoWcgMq6JfcSx3241LEIVF6qi2JuHz2SLKiKEW5UsBUaVx0mNCmcZaiuYQCyOsLS3r33q5AdM+v8ng== + dependencies: + web3-eth-iban "1.6.1" + web3-utils "1.6.1" + +web3-core-method@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.6.1.tgz#4ae91c639bf1da85ebfd8b99595da6a2235d7b98" + integrity sha512-szH5KyIWIaULQDBdDvevQUCHV9lsExJ/oV0ePqK+w015D2SdMPMuhii0WB+HCePaksWO+rr/GAypvV9g2T3N+w== + dependencies: + "@ethersproject/transactions" "^5.0.0-beta.135" + web3-core-helpers "1.6.1" + web3-core-promievent "1.6.1" + web3-core-subscriptions "1.6.1" + web3-utils "1.6.1" + +web3-core-promievent@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.6.1.tgz#f650dea9361e2edf02691015b213fcc8ea499992" + integrity sha512-byJ5s2MQxrWdXd27pWFmujfzsTZK4ik8rDgIV1RFDFc+rHZ2nZhq+VWk7t/Nkrj7EaVXncEgTdPEHc18nx+ocQ== + dependencies: + eventemitter3 "4.0.4" + +web3-core-requestmanager@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.6.1.tgz#d9c08b0716c9cda546a0c02767b7e08deb04448a" + integrity sha512-4y7etYEUtkfflyYVBfN1oJtCbVFNhNX1omlEYzezhTnPj3/dT7n+dhUXcqvIhx9iKA13unGfpFge80XNFfcB8A== + dependencies: + util "^0.12.0" + web3-core-helpers "1.6.1" + web3-providers-http "1.6.1" + web3-providers-ipc "1.6.1" + web3-providers-ws "1.6.1" + +web3-core-subscriptions@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.6.1.tgz#4dfc1f74137354d4ac9eaa628aa916c5e2cc8741" + integrity sha512-WZwxsYttIojyGQ5RqxuQcKg0IJdDCFpUe4EncS3QKZwxPqWzGmgyLwE0rm7tP+Ux1waJn5CUaaoSCBxWGSun1g== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.6.1" + +web3-core@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.6.1.tgz#b41f08fdc9ea1082d15384a3d6fa93a47c3fc1b4" + integrity sha512-m+b7UfYvU5cQUAh6NRfxRzH/5B3to1AdEQi1HIQt570cDWlObOOmoO9tY6iJnI5w4acxIO19LqjDMqEJGBYyRQ== + dependencies: + "@types/bn.js" "^4.11.5" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.6.1" + web3-core-method "1.6.1" + web3-core-requestmanager "1.6.1" + web3-utils "1.6.1" + +web3-eth-abi@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.6.1.tgz#15b937e3188570754d50bbac51a4bb0578600d1d" + integrity sha512-svhYrAlXP9XQtV7poWKydwDJq2CaNLMtmKydNXoOBLcQec6yGMP+v20pgrxF2H6wyTK+Qy0E3/5ciPOqC/VuoQ== + dependencies: + "@ethersproject/abi" "5.0.7" + web3-utils "1.6.1" + +web3-eth-accounts@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.6.1.tgz#aeb0dfb52c4391773550569732975b471212583f" + integrity sha512-rGn3jwnuOKwaQRu4SiShz0YAQ87aVDBKs4HO43+XTCI1q1Y1jn3NOsG3BW9ZHaOckev4+zEyxze/Bsh2oEk24w== + dependencies: + "@ethereumjs/common" "^2.5.0" + "@ethereumjs/tx" "^3.3.2" + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-util "^7.0.10" + scrypt-js "^3.0.1" + uuid "3.3.2" + web3-core "1.6.1" + web3-core-helpers "1.6.1" + web3-core-method "1.6.1" + web3-utils "1.6.1" + +web3-eth-contract@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.6.1.tgz#4b0a2c0b37015d70146e54c7cb3f035a58fbeec0" + integrity sha512-GXqTe3mF6kpbOAakiNc7wtJ120/gpuKMTZjuGFKeeY8aobRLfbfgKzM9IpyqVZV2v5RLuGXDuurVN2KPgtu3hQ== + dependencies: + "@types/bn.js" "^4.11.5" + web3-core "1.6.1" + web3-core-helpers "1.6.1" + web3-core-method "1.6.1" + web3-core-promievent "1.6.1" + web3-core-subscriptions "1.6.1" + web3-eth-abi "1.6.1" + web3-utils "1.6.1" + +web3-eth-ens@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.6.1.tgz#801bd5fb5237377ec2ed8517a9fe4634f2269c7a" + integrity sha512-ngprtbnoRgxg8s1wXt9nXpD3h1P+p7XnKXrp/8GdFI9uDmrbSQPRfzBw86jdZgOmy78hAnWmrHI6pBInmgi2qQ== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + web3-core "1.6.1" + web3-core-helpers "1.6.1" + web3-core-promievent "1.6.1" + web3-eth-abi "1.6.1" + web3-eth-contract "1.6.1" + web3-utils "1.6.1" + +web3-eth-iban@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.6.1.tgz#20bbed75723e3e9ff98e624979629d26329462b6" + integrity sha512-91H0jXZnWlOoXmc13O9NuQzcjThnWyAHyDn5Yf7u6mmKOhpJSGF/OHlkbpXt1Y4v2eJdEPaVFa+6i8aRyagE7Q== + dependencies: + bn.js "^4.11.9" + web3-utils "1.6.1" + +web3-eth-personal@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.6.1.tgz#9b524fb9f92b51163f46920ee2663d34a4897c8d" + integrity sha512-ItsC89Ln02+irzJjK6ALcLrMZfbVUCqVbmb/ieDKJ+eLW3pNkBNwoUzaydh92d5NzxNZgNxuQWVdlFyYX2hkEw== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.6.1" + web3-core-helpers "1.6.1" + web3-core-method "1.6.1" + web3-net "1.6.1" + web3-utils "1.6.1" + +web3-eth@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.6.1.tgz#a25aba1ac213d872ecf3f81c7b4ab8072ecae224" + integrity sha512-kOV1ZgCKypSo5BQyltRArS7ZC3bRpIKAxSgzl7pUFinUb/MxfbM9KGeNxUXoCfTSErcCQJaDjcS6bSre5EMKuQ== + dependencies: + web3-core "1.6.1" + web3-core-helpers "1.6.1" + web3-core-method "1.6.1" + web3-core-subscriptions "1.6.1" + web3-eth-abi "1.6.1" + web3-eth-accounts "1.6.1" + web3-eth-contract "1.6.1" + web3-eth-ens "1.6.1" + web3-eth-iban "1.6.1" + web3-eth-personal "1.6.1" + web3-net "1.6.1" + web3-utils "1.6.1" + +web3-net@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.6.1.tgz#7a630a804ec9f81908ae52ccbb4ebbb9530b3906" + integrity sha512-gpnqKEIwfUHh5ik7wsQFlCje1DfcmGv+Sk7LCh1hCqn++HEDQxJ/mZCrMo11ZZpZHCH7c87imdxTg96GJnRxDw== + dependencies: + web3-core "1.6.1" + web3-core-method "1.6.1" + web3-utils "1.6.1" + +web3-providers-http@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.6.1.tgz#b59b14eefef23b98c327806f5f566303a73bd435" + integrity sha512-xBoKOJxu10+kO3ikamXmBfrWZ/xpQOGy0ocdp7Y81B17En5TXELwlmMXt1UlIgWiyYDhjq4OwlH/VODYqHXy3A== + dependencies: + web3-core-helpers "1.6.1" + xhr2-cookies "1.1.0" + +web3-providers-ipc@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.6.1.tgz#7ba460589d46896bb3d124288deed1b6a72d517e" + integrity sha512-anyoIZlpMzwEQI4lwylTzDrHsVp20v0QUtSTp2B5jInBinmQtyCE7vnbX20jEQ4j5uPwfJabKNtoJsk6a3O4WQ== + dependencies: + oboe "2.1.5" + web3-core-helpers "1.6.1" + +web3-providers-ws@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.6.1.tgz#f7ee71f158971102b865e99ea7911f483e0507e9" + integrity sha512-FWMEFYb4rYFYRgSFBf/O1Ex4p/YKSlN+JydCtdlJwRimd89qm95CTfs4xGjCskwvXMjV2sarH+f1NPwJXicYpg== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.6.1" + websocket "^1.0.32" + +web3-shh@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.6.1.tgz#eebaab2e5e6be80fe2585c6c094fa10a03349ca7" + integrity sha512-oP00HbAtybLCGlLOZUYXOdeB9xq88k2l0TtStvKBtmFqRt+zVk5TxEeuOnVPRxNhcA2Un8RUw6FtvgZlWStu9A== + dependencies: + web3-core "1.6.1" + web3-core-method "1.6.1" + web3-core-subscriptions "1.6.1" + web3-net "1.6.1" + +web3-utils@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.6.1.tgz#befcb23922b00603ab56d8c5b4158468dc494aca" + integrity sha512-RidGKv5kOkcerI6jQqDFDoTllQQqV+rPhTzZHhmbqtFObbYpU93uc+yG1LHivRTQhA6llIx67iudc/vzisgO+w== + dependencies: + 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" + +web3@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.6.1.tgz#c9e68fe7b3073adddf35393441f950ec69b92735" + integrity sha512-c299lLiyb2/WOcxh7TinwvbATaMmrgNIeAzbLbmOKHI0LcwyfsB1eu2ReOIrfrCYDYRW2KAjYr7J7gHawqDNPQ== + dependencies: + web3-bzz "1.6.1" + web3-core "1.6.1" + web3-eth "1.6.1" + web3-eth-personal "1.6.1" + web3-net "1.6.1" + web3-shh "1.6.1" + web3-utils "1.6.1" + +websocket@^1.0.32: + version "1.0.34" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" + integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -4699,6 +7017,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -4714,18 +7041,100 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== +ws@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@^7.4.6: + version "7.5.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" + integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== + +xhr-request-promise@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== + dependencies: + xhr-request "^1.1.0" + +xhr-request@^1.0.1, xhr-request@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== + dependencies: + buffer-to-arraybuffer "^0.0.5" + object-assign "^4.1.1" + query-string "^5.0.1" + simple-get "^2.7.0" + timed-out "^4.0.1" + url-set-query "^1.0.0" + xhr "^2.0.4" + +xhr2-cookies@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" + integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= + dependencies: + cookiejar "^2.1.1" + +xhr@^2.0.4, xhr@^2.3.3: + version "2.6.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= + +xpnet-nft-list@^0.2.12: + version "0.2.12" + resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.12.tgz#a4ee952ebbee4fdad727299e171730ad4493263c" + integrity sha512-W9nSFygef6bFIX8gFoGbPeAnkLBLjRl/nsVDjMKIFj9R8kghkaW7irHT0P7tUeg1mkX3/vy5ihOnVm1/2wIh6g== + dependencies: + "@elrondnetwork/erdjs" "^8.0.1-alpha.8" + "@supercharge/promise-pool" "^1.9.0" + axios "^0.23.0" + cors "^2.8.5" + dotenv "^10.0.0" + ethers "^5.5.1" + express "^4.17.1" + js-base64 "^3.7.2" + moralis "^0.0.134" + tronweb "^4.0.0" + "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": version "0.1.0" resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#091246c404973dc9024895d28f999b71a702f82e" dependencies: ethers "^5.4.1" +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== -yallist@^3.0.2: +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -4735,6 +7144,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" From 77ac23bc4dc0a05411e87b6137ed158e4c599093 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Tue, 7 Dec 2021 21:55:48 +0200 Subject: [PATCH 234/956] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0c479f04a..1bf0bd5c5 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ npm i --save xp.network @elrondnetwork/erdjs ethers To import the latest version of xp.network library: ```bash -yarn add "git+https://https://github.com/xp-network/xpjs#master-dist" +yarn add "git+https://github.com/xp-network/xpjs#master-dist" ```
From 217c3bbbd3b24b0a5a72d927eecbceb0703a0266 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 8 Dec 2021 14:53:07 +0530 Subject: [PATCH 235/956] factory: algorand: update sendNftAppId --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 2fab9a972..de764b9ab 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -134,7 +134,7 @@ export namespace ChainFactoryConfigs { "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", algodUri: "https://algorand-node.xp.network/", nonce: Chain.ALGORAND, - sendNftAppId: 457256665, + sendNftAppId: 458971166, algodPort: 443, }, }); @@ -246,7 +246,7 @@ export namespace ChainFactoryConfigs { "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", algodUri: "https://algorand-node.xp.network/", nonce: Chain.ALGORAND, - sendNftAppId: 457256665, + sendNftAppId: 458971166, algodPort: 443, }, }); From 08175f98b80681a3703661d7ac684d4a751cdbeb Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 8 Dec 2021 15:23:30 +0530 Subject: [PATCH 236/956] factory: nftList: fix for algorand --- src/factory/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index a95d11a05..4b50b420b 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -322,6 +322,8 @@ export function ChainFactory( return helper! as any as T; }; + const algoLister = algoListNft("https://algoexplorerapi.io/"); + async function calcExchangeFees( fromChain: number, toChain: number, @@ -500,7 +502,7 @@ export function ChainFactory( }, async nftList(chain: NftUriChain, owner: string) { if (chain.getNonce() === Chain.ALGORAND) { - return (await algoListNft(chainParams.algorandParams!.algodUri).nfts( + return (await algoLister.nfts( BigInt(0xf), owner )) as unknown as NftInfo[]; From c2be78c957b83b1ef5e05bbec38101577842d19a Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 8 Dec 2021 17:22:36 +0530 Subject: [PATCH 237/956] update uri for nft list --- package.json | 1 - src/consts.ts | 4 +- src/factory/index.ts | 20 +- yarn.lock | 2542 ++---------------------------------------- 4 files changed, 75 insertions(+), 2492 deletions(-) diff --git a/package.json b/package.json index a12163bd4..b3ae38154 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,6 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.0.0", - "xpnet-nft-list": "^0.2.12", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" } } diff --git a/src/consts.ts b/src/consts.ts index a6f1904d8..dd34c0396 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -219,9 +219,9 @@ export const CHAIN_INFO: ChainInfo = { export const Config: AppConfig = { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://nftindexing.herokuapp.com", + nftListUri: "https://indexnft.herokuapp.com", nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjI2ODQzNTQ1NSwiaWF0IjoxNjM4MTg3MTk5LCJleHAiOjE2Mzg3OTE5OTl9.aKs8K2V8K_rWqQPshae1EzuAEpPMVWBZakfmyBeeq-nJuiEKb1KBSle1F8LNemXLW_3_4KFwDjZrNOx0zA_GNw", + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTYzODk2MjMzOCwiZXhwIjoxNjQ2NzM4MzM4fQ.9eQMNMtt-P6myPlji7nBC9PAwTftd0qQvwnIZSt4ycM4E45NpzCF0URsdYj_YN_xqQKQpcHiZu1o4EXjJa_-Zw", txSocketUri: "https://sockettx.herokuapp.com", tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", diff --git a/src/factory/index.ts b/src/factory/index.ts index 4b50b420b..b238dae8c 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -49,7 +49,6 @@ import { } from "../helpers/algorand"; import algosdk from "algosdk"; import { Base64 } from "js-base64"; -import { nftListRepo } from "xpnet-nft-list"; export type CrossChainHelper = | ElrondHelper @@ -322,8 +321,6 @@ export function ChainFactory( return helper! as any as T; }; - const algoLister = algoListNft("https://algoexplorerapi.io/"); - async function calcExchangeFees( fromChain: number, toChain: number, @@ -501,15 +498,16 @@ export function ChainFactory( cToP.set(chainNonce, params as any); }, async nftList(chain: NftUriChain, owner: string) { - if (chain.getNonce() === Chain.ALGORAND) { - return (await algoLister.nfts( - BigInt(0xf), - owner - )) as unknown as NftInfo[]; - } - return await nftlistRest - .get[]>(`/${chain.getNonce()}/${owner}`) + let data = await nftlistRest + .get[]>(`/nfts/${chain.getNonce()}/${owner}`) .then((v) => v.data); + + const nonce = chain.getNonce(); + if (nonce != Chain.ALGORAND || nonce != Chain.ELROND) { + data = data.filter((v: any) => v.native.contractType != "ERC1155") + } + + return data; }, transferNft: async (fromChain, toChain, nft, sender, receiver, fee) => { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); diff --git a/yarn.lock b/yarn.lock index 7534291b1..85c7c32e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,13 +9,6 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== - dependencies: - "@babel/highlight" "^7.16.0" - "@babel/code-frame@^7.10.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" @@ -28,11 +21,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" @@ -42,23 +30,6 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/runtime-corejs3@7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz#ffee91da0eb4c6dae080774e94ba606368e414f4" - integrity sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ== - dependencies: - core-js-pure "^3.0.0" - regenerator-runtime "^0.13.4" - "@babel/runtime@7.11.2": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" @@ -66,13 +37,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" - integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/runtime@^7.0.0": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" @@ -142,37 +106,6 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.0.tgz#feb96fb154da41ee2cc2c5df667621a440f36348" - integrity sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.3" - -"@ethereumjs/tx@^3.3.2": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.4.0.tgz#7eb1947eefa55eb9cf05b3ca116fb7a3dbd0bce7" - integrity sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw== - dependencies: - "@ethereumjs/common" "^2.6.0" - ethereumjs-util "^7.1.3" - -"@ethersproject/abi@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" - integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== - dependencies: - "@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/abi@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.0.tgz#a6d63bdb3672f738398846d4279fa6b6c9818242" @@ -203,7 +136,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.5.0": +"@ethersproject/abi@^5.4.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== @@ -244,7 +177,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/web" "^5.4.0" -"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": +"@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": version "5.5.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== @@ -279,7 +212,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": +"@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== @@ -301,7 +234,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/rlp" "^5.4.0" -"@ethersproject/address@5.5.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": +"@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== @@ -319,7 +252,7 @@ dependencies: "@ethersproject/bytes" "^5.4.0" -"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": +"@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== @@ -334,7 +267,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": +"@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== @@ -360,7 +293,7 @@ "@ethersproject/logger" "^5.4.0" bn.js "^4.11.9" -"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": +"@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== @@ -376,7 +309,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": +"@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== @@ -390,7 +323,7 @@ dependencies: "@ethersproject/bignumber" "^5.4.0" -"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": +"@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== @@ -429,22 +362,6 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/transactions" "^5.4.0" -"@ethersproject/contracts@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" - integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== - dependencies: - "@ethersproject/abi" "^5.5.0" - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/hash@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" @@ -459,7 +376,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": +"@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== @@ -491,7 +408,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" -"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": +"@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== @@ -528,7 +445,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.4.0", "@ethersproject/json-wallets@^5.5.0": +"@ethersproject/json-wallets@^5.4.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== @@ -555,7 +472,7 @@ "@ethersproject/bytes" "^5.4.0" js-sha3 "0.5.7" -"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": +"@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== @@ -573,7 +490,7 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== -"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": +"@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== @@ -592,13 +509,6 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/networks@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.1.tgz#b7f7b9fb88dec1ea48f739b7fb9621311aa8ce6c" - integrity sha512-tYRDM4zZtSUcKnD4UMuAlj7SeXH/k5WC4SP2u1Pn57++JdXHkRu2zwNkgNogZoxHzhm9Q6qqurDBVptHOsW49Q== - dependencies: - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks@^5.4.0", "@ethersproject/networks@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" @@ -614,7 +524,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/sha2" "^5.4.0" -"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": +"@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== @@ -636,7 +546,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": +"@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== @@ -718,31 +628,6 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/providers@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.1.tgz#ba87e3c93219bbd2e2edf8b369873aee774abf04" - integrity sha512-2zdD5sltACDWhjUE12Kucg2PcgM6V2q9JMyVvObtVGnzJu+QSmibbP+BHQyLWZUBfLApx2942+7DC5D+n4wBQQ== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" - bech32 "1.1.4" - ws "7.4.6" - "@ethersproject/random@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" @@ -751,7 +636,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/random@5.5.0", "@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": +"@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== @@ -767,7 +652,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": +"@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== @@ -784,7 +669,7 @@ "@ethersproject/logger" "^5.4.0" hash.js "1.1.7" -"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": +"@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== @@ -805,7 +690,7 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": +"@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== @@ -828,18 +713,6 @@ "@ethersproject/sha2" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/solidity@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" - integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/strings@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" @@ -849,7 +722,7 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": +"@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== @@ -873,7 +746,7 @@ "@ethersproject/rlp" "^5.4.0" "@ethersproject/signing-key" "^5.4.0" -"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": +"@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== @@ -897,15 +770,6 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/units@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" - integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/wallet@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" @@ -927,27 +791,6 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" -"@ethersproject/wallet@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" - integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/json-wallets" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - "@ethersproject/web@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" @@ -959,17 +802,6 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/web@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.1.tgz#cfcc4a074a6936c657878ac58917a61341681316" - integrity sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg== - dependencies: - "@ethersproject/base64" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" @@ -992,7 +824,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": +"@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== @@ -1091,11 +923,6 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@metamask/detect-provider@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@metamask/detect-provider/-/detect-provider-1.2.0.tgz#3667a7531f2a682e3c3a43eaf3a1958bdb42a696" - integrity sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1277,28 +1104,11 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - "@sindresorhus/is@^2.0.0": version "2.1.1" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== -"@supercharge/promise-pool@^1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-1.9.0.tgz#7630c760535919db93711ca35716ada59d86feb7" - integrity sha512-UqQrree8uGTCEDKAnGJci1B7NGIZ1xepXHjUEqbH16Wgvr/j5+54hxebkpTpDcz5t2SrzY6J6USSlmgQeo66/g== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - "@szmarczak/http-timer@^4.0.0": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1306,20 +1116,6 @@ dependencies: defer-to-connect "^2.0.0" -"@types/bn.js@^4.11.5": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - -"@types/bn.js@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" - integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== - dependencies: - "@types/node" "*" - "@types/cacheable-request@^6.0.1": version "6.0.2" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" @@ -1367,28 +1163,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== -"@types/node@^12.12.6": - version "12.20.37" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.37.tgz#abb38afa9d6e8a2f627a8cb52290b3c80fbe61ed" - integrity sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA== - "@types/node@^13.7.0": version "13.13.52" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== - dependencies: - "@types/node" "*" - "@types/responselike@*": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -1396,13 +1175,6 @@ dependencies: "@types/node" "*" -"@types/secp256k1@^4.0.1": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" - integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== - dependencies: - "@types/node" "*" - "@typescript-eslint/eslint-plugin@^4.31.0": version "4.31.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" @@ -1656,14 +1428,6 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" -accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1684,15 +1448,7 @@ aes-js@^3.1.2: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1738,13 +1494,6 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -1807,11 +1556,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -1827,28 +1571,6 @@ array.prototype.flatmap@^1.2.4: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - assert@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" @@ -1869,11 +1591,6 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1889,16 +1606,6 @@ available-typed-arrays@^1.0.2: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - axios@0.21.1, axios@^0.21.1: version "0.21.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" @@ -1906,13 +1613,6 @@ axios@0.21.1, axios@^0.21.1: dependencies: follow-redirects "^1.10.0" -axios@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.23.0.tgz#b0fa5d0948a8d1d75e3d5635238b6c4625b05149" - integrity sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg== - dependencies: - follow-redirects "^1.14.4" - babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -1936,13 +1636,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.2, base-x@^3.0.8: - version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - base64-arraybuffer@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" @@ -1953,13 +1646,6 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -2039,57 +1725,21 @@ blake2b@2.1.3: blake2b-wasm "^1.1.0" nanoassert "^1.0.0" -blakejs@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" - integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== - -bluebird@^3.5.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - bluebird@~3.4.1: version "3.4.7" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= - bn.js@4.11.8: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9: +bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -body-parser@1.19.0, body-parser@^1.16.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2105,81 +1755,11 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - 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" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= - dependencies: - base-x "^3.0.2" - -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - btoa-lite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" @@ -2190,17 +1770,7 @@ buffer-indexof-polyfill@~1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2221,18 +1791,6 @@ buffers@~0.1.1: resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= -bufferutil@^4.0.1: - version "4.0.5" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028" - integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A== - dependencies: - node-gyp-build "^4.3.0" - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - cacheable-lookup@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" @@ -2241,19 +1799,6 @@ cacheable-lookup@^2.0.0: "@types/keyv" "^3.1.1" keyv "^4.0.0" -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - 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" - cacheable-request@^7.0.1: version "7.0.2" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" @@ -2285,11 +1830,6 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - chainsaw@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" @@ -2334,23 +1874,12 @@ chokidar@^3.0.0: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1, chownr@^1.1.4: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -cids@^0.7.1: - version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" - integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - multibase "~0.6.0" - multicodec "^1.0.0" - multihashes "~0.4.15" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: +cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== @@ -2358,31 +1887,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-truncate@2.1.0, cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2428,22 +1932,12 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" - integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== - -colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== - colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -2455,11 +1949,6 @@ commander@^6.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^8.2.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - component-emitter@^1.3.0, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -2475,93 +1964,22 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-hash@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" - integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== - dependencies: - cids "^0.7.1" - multicodec "^0.5.5" - multihashes "^0.4.15" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookiejar@^2.1.1, cookiejar@^2.1.2: +cookiejar@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== -core-js-pure@^3.0.0: - version "3.19.3" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.19.3.tgz#c69b2b36b58927317824994b532ec3f0f7e49607" - integrity sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA== - core-js@^2.4.0: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@^2.8.1, cors@^2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -crc-32@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" - integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== - dependencies: - exit-on-epipe "~1.0.1" - printj "~1.1.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: +create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -2572,7 +1990,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@1.1.7, create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@1.1.7, create-hmac@^1.1.4: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -2595,7 +2013,7 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2609,56 +2027,12 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= -crypto-browserify@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#6174eb2109d76e16286b12054573b3eacc2f797b" dependencies: axios "^0.21.1" -crypto-js@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc" - integrity sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg== - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -debug@2.6.9, debug@^2.2.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" @@ -2666,13 +2040,6 @@ debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: dependencies: ms "2.1.2" -debug@^4.3.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2683,13 +2050,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -decompress-response@^3.2.0, decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - decompress-response@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" @@ -2719,11 +2079,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - defer-to-connect@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" @@ -2746,29 +2101,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - detect-browser@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" @@ -2779,15 +2116,6 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2802,16 +2130,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -dotenv@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" - integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== - duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" @@ -2824,14 +2142,6 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - ed25519-hd-key@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.1.2.tgz#168dcf08419694be7bba3319e7d64e4a5cfe5d44" @@ -2841,12 +2151,7 @@ ed25519-hd-key@1.1.2: create-hmac "1.1.7" tweetnacl "1.0.3" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: +elliptic@6.5.4, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -2869,11 +2174,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2903,20 +2203,13 @@ engine.io-parser@~4.0.1: dependencies: base64-arraybuffer "0.1.4" -enquirer@^2.3.5, enquirer@^2.3.6: +enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: version "1.18.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" @@ -2948,42 +2241,11 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - es6-object-assign@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -3139,79 +2401,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eth-ens-namehash@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" - integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= - dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" - -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@^0.1.26: - version "0.1.29" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" - integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - nano-json-stream-parser "^0.1.2" - servify "^0.1.12" - ws "^3.0.0" - xhr-request-promise "^0.1.2" - -ethereum-bloom-filters@^1.0.6: - version "1.0.10" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" - integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== - dependencies: - js-sha3 "^0.8.0" - -ethereum-cryptography@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" - integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== - dependencies: - "@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" - -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz#b55d7b64dde3e3e45749e4c41288238edec32d23" - integrity sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw== - dependencies: - "@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" - ethers@5.4.4: version "5.4.4" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.4.tgz#35cce530505b84c699da944162195cfb3f894947" @@ -3320,60 +2509,11 @@ ethers@^5.4.4: "@ethersproject/web" "5.4.0" "@ethersproject/wordlists" "5.4.0" -ethers@^5.5.1: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.2.tgz#cd2e508c7342c44fa70392f722e8de8f2416489f" - integrity sha512-EF5W+6Wwcu6BqVwpgmyR5U2+L4c1FQzlM/02dkZOugN3KF0cG9bzHZP+TDJglmPm2/IzCEJDT7KBxzayk7SAHw== - dependencies: - "@ethersproject/abi" "5.5.0" - "@ethersproject/abstract-provider" "5.5.1" - "@ethersproject/abstract-signer" "5.5.0" - "@ethersproject/address" "5.5.0" - "@ethersproject/base64" "5.5.0" - "@ethersproject/basex" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/constants" "5.5.0" - "@ethersproject/contracts" "5.5.0" - "@ethersproject/hash" "5.5.0" - "@ethersproject/hdnode" "5.5.0" - "@ethersproject/json-wallets" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/logger" "5.5.0" - "@ethersproject/networks" "5.5.1" - "@ethersproject/pbkdf2" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/providers" "5.5.1" - "@ethersproject/random" "5.5.0" - "@ethersproject/rlp" "5.5.0" - "@ethersproject/sha2" "5.5.0" - "@ethersproject/signing-key" "5.5.0" - "@ethersproject/solidity" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@ethersproject/transactions" "5.5.0" - "@ethersproject/units" "5.5.0" - "@ethersproject/wallet" "5.5.0" - "@ethersproject/web" "5.5.1" - "@ethersproject/wordlists" "5.5.0" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" @@ -3384,14 +2524,6 @@ events@^3.3.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -3405,89 +2537,11 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit-on-epipe@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" - integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== - expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -express@^4.14.0, express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== - dependencies: - type "^2.5.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -3545,19 +2599,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3631,21 +2672,11 @@ follow-redirects@^1.10.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== -follow-redirects@^1.14.4: - version "1.14.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381" - integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA== - foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -3655,44 +2686,16 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - formidable@^1.2.2: version "1.2.6" resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -3702,13 +2705,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -3767,17 +2763,7 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0, get-stream@^4.1.0: +get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -3791,18 +2777,6 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" @@ -3839,14 +2813,6 @@ glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -global@~4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - globals@^13.6.0, globals@^13.9.0: version "13.10.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" @@ -3866,23 +2832,6 @@ globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" -got@9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - 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" - got@^10.5.7: version "10.7.0" resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" @@ -3904,44 +2853,11 @@ got@^10.5.7: to-readable-stream "^2.0.0" type-fest "^0.10.0" -got@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -3962,23 +2878,11 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -4027,61 +2931,6 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-https@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" - integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -idna-uts46-hx@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" - integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== - dependencies: - punycode "2.1.0" - ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -4110,11 +2959,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -4123,16 +2967,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -4148,11 +2987,6 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - is-arguments@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" @@ -4160,11 +2994,6 @@ is-arguments@^1.0.4: dependencies: call-bind "^1.0.0" -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - is-bigint@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" @@ -4228,11 +3057,6 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - is-generator-function@^1.0.7: version "1.0.9" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c" @@ -4245,11 +3069,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= - is-nan@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -4273,21 +3092,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" - integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -4301,26 +3105,11 @@ is-regex@^1.1.3: call-bind "^1.0.2" has-symbols "^1.0.2" -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -is-retry-allowed@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-string@^1.0.5, is-string@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" @@ -4344,7 +3133,7 @@ is-typed-array@^1.1.3: foreach "^2.0.5" has-symbols "^1.0.1" -is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@1.0.0, is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -4359,35 +3148,17 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - js-base64@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.1.tgz#555aae398b74694b4037af1f8a5a6209d170efbe" integrity sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ== -js-base64@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" - integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== - js-sha256@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== -js-sha3@0.5.7, js-sha3@^0.5.7: +js-sha3@0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= @@ -4415,11 +3186,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - json-bigint@1.0.0, json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -4427,11 +3193,6 @@ json-bigint@1.0.0, json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -4444,11 +3205,6 @@ json-duplicate-key-handle@1.0.0: dependencies: backslash "^0.2.0" -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -4459,21 +3215,11 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" @@ -4486,17 +3232,7 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -keccak@^3.0.0, keccak@^3.0.1: +keccak@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== @@ -4510,13 +3246,6 @@ kefir@^3.7.3: resolved "https://registry.yarnpkg.com/kefir/-/kefir-3.8.8.tgz#235932ddfbed422acebf5d7cba503035e9ea05c5" integrity sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA== -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - keyv@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" @@ -4537,50 +3266,11 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lint-staged@^11.1.2: - version "11.2.6" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.6.tgz#f477b1af0294db054e5937f171679df63baa4c43" - integrity sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg== - dependencies: - cli-truncate "2.1.0" - colorette "^1.4.0" - commander "^8.2.0" - cosmiconfig "^7.0.1" - debug "^4.3.2" - enquirer "^2.3.6" - execa "^5.1.1" - listr2 "^3.12.2" - micromatch "^4.0.4" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "3.3.0" - supports-color "8.1.1" - listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= -listr2@^3.12.2: - version "3.13.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.5.tgz#105a813f2eb2329c4aae27373a281d610ee4985f" - integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.4.0" - through "^2.3.8" - wrap-ansi "^7.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -4623,26 +3313,11 @@ lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -4695,27 +3370,12 @@ md5@^2.2.1: crypt "0.0.2" is-buffer "~1.1.6" -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@^1.1.2, methods@~1.1.2: +methods@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= @@ -4728,24 +3388,11 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.50.0: version "1.50.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - mime-types@^2.1.12: version "2.1.33" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" @@ -4753,29 +3400,12 @@ mime-types@^2.1.12: dependencies: mime-db "1.50.0" -mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== - dependencies: - mime-db "1.51.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - mime@^2.4.6: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0, mimic-response@^1.0.1: +mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== @@ -4785,13 +3415,6 @@ mimic-response@^2.0.0, mimic-response@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -4814,128 +3437,28 @@ minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp-promise@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" - integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= - dependencies: - mkdirp "*" - -mkdirp@*, mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -"mkdirp@>=0.5 0", mkdirp@^0.5.5: +"mkdirp@>=0.5 0": version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mock-fs@^4.1.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" - integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== - -moralis@^0.0.134: - version "0.0.134" - resolved "https://registry.yarnpkg.com/moralis/-/moralis-0.0.134.tgz#fa763b5a480e0e572828d681ade7e0e958e51259" - integrity sha512-2+JkbHDOhTzgbAnx6foJ7BwngCvYhNbpjwStvSOjrdX6eWKNT5njyLQtTJlJUaXS7uJSkvtV2frSwEZ78ZnwGQ== - dependencies: - "@babel/runtime" "7.12.5" - "@babel/runtime-corejs3" "7.12.5" - "@metamask/detect-provider" "^1.2.0" - axios "^0.23.0" - lint-staged "^11.1.2" - react-native-crypto-js "1.0.0" - uuid "3.4.0" - web3 "^1.6.0" - ws "^7.4.6" - xmlhttprequest "1.8.0" - optionalDependencies: - crypto-js "4.0.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^0.5.5: - version "0.5.7" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" - integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== - dependencies: - varint "^5.0.0" - -multicodec@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multihashes@^0.4.15, multihashes@~0.4.15: - version "0.4.21" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - -nano-json-stream-parser@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" - integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= - nanoassert@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" @@ -4951,16 +3474,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -4998,11 +3511,6 @@ node-gyp-build@^4.2.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== -node-gyp-build@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" - integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== - node-hid@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.1.tgz#f83c8aa0bb4e6758b5f7383542477da93f67359d" @@ -5022,11 +3530,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -5039,13 +3542,6 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - npmlog@^4.0.1: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -5061,20 +3557,7 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -5117,25 +3600,11 @@ object.fromentries@^2.0.3: es-abstract "^1.18.0-next.2" has "^1.0.3" -oboe@2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" - integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= - dependencies: - http-https "^1.0.0" - octokit-pagination-methods@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -5143,13 +3612,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - onigasm@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.5.tgz#cc4d2a79a0fa0b64caec1f4c7ea367585a676892" @@ -5177,16 +3639,6 @@ os-name@^3.1.0: macos-release "^2.2.0" windows-release "^3.1.0" -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" @@ -5218,20 +3670,6 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= - dependencies: - p-finally "^1.0.0" - p-timeout@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -5251,32 +3689,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-headers@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" - integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - parseqs@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" @@ -5287,11 +3699,6 @@ parseuri@0.0.6: resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -5307,7 +3714,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -5317,17 +3724,12 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: +pbkdf2@^3.0.9: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -5343,11 +3745,6 @@ perf_hooks@0.0.1: resolved "https://registry.yarnpkg.com/perf_hooks/-/perf_hooks-0.0.1.tgz#253e7e18b71fcc0390fd3afb2cd7cf1685df040c" integrity sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw== -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" @@ -5358,13 +3755,6 @@ platform@1.3.6: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - prebuild-install@^5.3.3: version "5.3.6" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz#7c225568d864c71d89d07f8796042733a3f54291" @@ -5410,16 +3800,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - prettier@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" @@ -5430,21 +3810,11 @@ prettier@^2.1.1, prettier@^2.3.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== -printj@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" - integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -5469,31 +3839,6 @@ protobufjs@6.10.2: "@types/node" "^13.7.0" long "^4.0.0" -proxy-addr@~2.0.5: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -5502,12 +3847,7 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= - -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -5519,16 +3859,6 @@ qs@6.10.1, qs@^6.9.4: dependencies: side-channel "^1.0.4" -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - query-string@6.13.5: version "6.13.5" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" @@ -5538,15 +3868,6 @@ query-string@6.13.5: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -5557,36 +3878,13 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.0.1, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -5597,11 +3895,6 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-native-crypto-js@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/react-native-crypto-js/-/react-native-crypto-js-1.0.0.tgz#e677e022e147f41b35614416c92d655f87e2450a" - integrity sha512-FNbLuG/HAdapQoybeZSoes1PWdOj0w242gb+e1R0hicf3Gyj/Mf8M9NaED2AnXVOX01b2FXomwUiw1xP1K+8sA== - readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -5653,32 +3946,6 @@ regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -request@^2.79.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5712,13 +3979,6 @@ resolve@^1.1.6: is-core-module "^2.2.0" path-parse "^1.0.6" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - responselike@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" @@ -5726,24 +3986,11 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - rimraf@2: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -5766,13 +4013,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.2.4: - version "2.2.7" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" - integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== - dependencies: - bn.js "^5.2.0" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -5787,29 +4027,17 @@ rxjs@6: dependencies: tslib "^1.9.0" -rxjs@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" - integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== - dependencies: - tslib "~2.1.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: +scrypt-js@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -5819,20 +4047,6 @@ scryptsy@2.1.0: resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== -secp256k1@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" - integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== - dependencies: - elliptic "^6.5.2" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - semver@7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" @@ -5850,61 +4064,16 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -servify@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" - integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== - dependencies: - body-parser "^1.16.0" - cors "^2.8.1" - express "^4.14.0" - request "^2.79.0" - xhr "^2.3.3" - set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -setimmediate@^1.0.5, setimmediate@~1.0.4: +setimmediate@~1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -5969,25 +4138,11 @@ signal-exit@^3.0.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== - simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== -simple-get@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - simple-get@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" @@ -6011,15 +4166,6 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -6061,41 +4207,11 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= -string-argv@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -6161,15 +4277,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-object@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -6203,18 +4310,6 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= - dependencies: - is-hex-prefixed "1.0.0" - strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -6242,13 +4337,6 @@ superagent@^6.1.0: readable-stream "^3.6.0" semver "^7.3.2" -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -6263,23 +4351,6 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -swarm-js@^0.1.40: - version "0.1.40" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" - integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - eth-lib "^0.1.26" - fs-extra "^4.0.2" - got "^7.1.0" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar "^4.0.2" - xhr-request "^1.0.1" - table@^5.4.6: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -6323,19 +4394,6 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^4.0.2: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -6346,16 +4404,6 @@ through@^2.3.8: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - to-readable-stream@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" @@ -6368,19 +4416,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - "traverse@>=0.3.0 <0.4": version "0.3.9" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" @@ -6415,11 +4450,6 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -6439,11 +4469,6 @@ tweetnacl@1.0.3, tweetnacl@^1.0.3: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -6461,30 +4486,7 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" - integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== - -typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: +typedarray-to-buffer@3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== @@ -6517,11 +4519,6 @@ u2f-api@0.2.7: resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -6549,11 +4546,6 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - unzipper@^0.10.8: version "0.10.11" resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" @@ -6577,20 +4569,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - url-parse@^1.5.1: version "1.5.3" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" @@ -6599,16 +4577,6 @@ url-parse@^1.5.1: querystringify "^2.1.1" requires-port "^1.0.0" -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - usb@^1.7.0: version "1.7.1" resolved "https://registry.yarnpkg.com/usb/-/usb-1.7.1.tgz#d723223ec517b802c4d2082e31a4649c65c491c5" @@ -6618,18 +4586,6 @@ usb@^1.7.0: node-addon-api "3.0.2" prebuild-install "^5.3.3" -utf-8-validate@^5.0.2: - version "5.0.7" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" - integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q== - dependencies: - node-gyp-build "^4.3.0" - -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -6647,21 +4603,6 @@ util@^0.12.0: safe-buffer "^5.1.2" which-typed-array "^1.1.2" -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -uuid@3.4.0, uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - uuid@8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -6677,270 +4618,11 @@ validator@^13.6.0: resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - vscode-textmate@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== -web3-bzz@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.6.1.tgz#8430eb3cbb69baaee4981d190b840748c37a9ec2" - integrity sha512-JbnFNbRlwwHJZPtVuCxo7rC4U4OTg+mPsyhjgPQJJhS0a6Y54OgVWYk9UA/95HqbmTJwTtX329gJoSsseEfrng== - dependencies: - "@types/node" "^12.12.6" - got "9.6.0" - swarm-js "^0.1.40" - -web3-core-helpers@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.6.1.tgz#cb21047306871f4cf0fedfece7d47ea2aa96141b" - integrity sha512-om2PZvK1uoWcgMq6JfcSx3241LEIVF6qi2JuHz2SLKiKEW5UsBUaVx0mNCmcZaiuYQCyOsLS3r33q5AdM+v8ng== - dependencies: - web3-eth-iban "1.6.1" - web3-utils "1.6.1" - -web3-core-method@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.6.1.tgz#4ae91c639bf1da85ebfd8b99595da6a2235d7b98" - integrity sha512-szH5KyIWIaULQDBdDvevQUCHV9lsExJ/oV0ePqK+w015D2SdMPMuhii0WB+HCePaksWO+rr/GAypvV9g2T3N+w== - dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - web3-core-helpers "1.6.1" - web3-core-promievent "1.6.1" - web3-core-subscriptions "1.6.1" - web3-utils "1.6.1" - -web3-core-promievent@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.6.1.tgz#f650dea9361e2edf02691015b213fcc8ea499992" - integrity sha512-byJ5s2MQxrWdXd27pWFmujfzsTZK4ik8rDgIV1RFDFc+rHZ2nZhq+VWk7t/Nkrj7EaVXncEgTdPEHc18nx+ocQ== - dependencies: - eventemitter3 "4.0.4" - -web3-core-requestmanager@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.6.1.tgz#d9c08b0716c9cda546a0c02767b7e08deb04448a" - integrity sha512-4y7etYEUtkfflyYVBfN1oJtCbVFNhNX1omlEYzezhTnPj3/dT7n+dhUXcqvIhx9iKA13unGfpFge80XNFfcB8A== - dependencies: - util "^0.12.0" - web3-core-helpers "1.6.1" - web3-providers-http "1.6.1" - web3-providers-ipc "1.6.1" - web3-providers-ws "1.6.1" - -web3-core-subscriptions@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.6.1.tgz#4dfc1f74137354d4ac9eaa628aa916c5e2cc8741" - integrity sha512-WZwxsYttIojyGQ5RqxuQcKg0IJdDCFpUe4EncS3QKZwxPqWzGmgyLwE0rm7tP+Ux1waJn5CUaaoSCBxWGSun1g== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.6.1" - -web3-core@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.6.1.tgz#b41f08fdc9ea1082d15384a3d6fa93a47c3fc1b4" - integrity sha512-m+b7UfYvU5cQUAh6NRfxRzH/5B3to1AdEQi1HIQt570cDWlObOOmoO9tY6iJnI5w4acxIO19LqjDMqEJGBYyRQ== - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.6.1" - web3-core-method "1.6.1" - web3-core-requestmanager "1.6.1" - web3-utils "1.6.1" - -web3-eth-abi@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.6.1.tgz#15b937e3188570754d50bbac51a4bb0578600d1d" - integrity sha512-svhYrAlXP9XQtV7poWKydwDJq2CaNLMtmKydNXoOBLcQec6yGMP+v20pgrxF2H6wyTK+Qy0E3/5ciPOqC/VuoQ== - dependencies: - "@ethersproject/abi" "5.0.7" - web3-utils "1.6.1" - -web3-eth-accounts@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.6.1.tgz#aeb0dfb52c4391773550569732975b471212583f" - integrity sha512-rGn3jwnuOKwaQRu4SiShz0YAQ87aVDBKs4HO43+XTCI1q1Y1jn3NOsG3BW9ZHaOckev4+zEyxze/Bsh2oEk24w== - dependencies: - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.2" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "3.3.2" - web3-core "1.6.1" - web3-core-helpers "1.6.1" - web3-core-method "1.6.1" - web3-utils "1.6.1" - -web3-eth-contract@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.6.1.tgz#4b0a2c0b37015d70146e54c7cb3f035a58fbeec0" - integrity sha512-GXqTe3mF6kpbOAakiNc7wtJ120/gpuKMTZjuGFKeeY8aobRLfbfgKzM9IpyqVZV2v5RLuGXDuurVN2KPgtu3hQ== - dependencies: - "@types/bn.js" "^4.11.5" - web3-core "1.6.1" - web3-core-helpers "1.6.1" - web3-core-method "1.6.1" - web3-core-promievent "1.6.1" - web3-core-subscriptions "1.6.1" - web3-eth-abi "1.6.1" - web3-utils "1.6.1" - -web3-eth-ens@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.6.1.tgz#801bd5fb5237377ec2ed8517a9fe4634f2269c7a" - integrity sha512-ngprtbnoRgxg8s1wXt9nXpD3h1P+p7XnKXrp/8GdFI9uDmrbSQPRfzBw86jdZgOmy78hAnWmrHI6pBInmgi2qQ== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.6.1" - web3-core-helpers "1.6.1" - web3-core-promievent "1.6.1" - web3-eth-abi "1.6.1" - web3-eth-contract "1.6.1" - web3-utils "1.6.1" - -web3-eth-iban@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.6.1.tgz#20bbed75723e3e9ff98e624979629d26329462b6" - integrity sha512-91H0jXZnWlOoXmc13O9NuQzcjThnWyAHyDn5Yf7u6mmKOhpJSGF/OHlkbpXt1Y4v2eJdEPaVFa+6i8aRyagE7Q== - dependencies: - bn.js "^4.11.9" - web3-utils "1.6.1" - -web3-eth-personal@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.6.1.tgz#9b524fb9f92b51163f46920ee2663d34a4897c8d" - integrity sha512-ItsC89Ln02+irzJjK6ALcLrMZfbVUCqVbmb/ieDKJ+eLW3pNkBNwoUzaydh92d5NzxNZgNxuQWVdlFyYX2hkEw== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.6.1" - web3-core-helpers "1.6.1" - web3-core-method "1.6.1" - web3-net "1.6.1" - web3-utils "1.6.1" - -web3-eth@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.6.1.tgz#a25aba1ac213d872ecf3f81c7b4ab8072ecae224" - integrity sha512-kOV1ZgCKypSo5BQyltRArS7ZC3bRpIKAxSgzl7pUFinUb/MxfbM9KGeNxUXoCfTSErcCQJaDjcS6bSre5EMKuQ== - dependencies: - web3-core "1.6.1" - web3-core-helpers "1.6.1" - web3-core-method "1.6.1" - web3-core-subscriptions "1.6.1" - web3-eth-abi "1.6.1" - web3-eth-accounts "1.6.1" - web3-eth-contract "1.6.1" - web3-eth-ens "1.6.1" - web3-eth-iban "1.6.1" - web3-eth-personal "1.6.1" - web3-net "1.6.1" - web3-utils "1.6.1" - -web3-net@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.6.1.tgz#7a630a804ec9f81908ae52ccbb4ebbb9530b3906" - integrity sha512-gpnqKEIwfUHh5ik7wsQFlCje1DfcmGv+Sk7LCh1hCqn++HEDQxJ/mZCrMo11ZZpZHCH7c87imdxTg96GJnRxDw== - dependencies: - web3-core "1.6.1" - web3-core-method "1.6.1" - web3-utils "1.6.1" - -web3-providers-http@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.6.1.tgz#b59b14eefef23b98c327806f5f566303a73bd435" - integrity sha512-xBoKOJxu10+kO3ikamXmBfrWZ/xpQOGy0ocdp7Y81B17En5TXELwlmMXt1UlIgWiyYDhjq4OwlH/VODYqHXy3A== - dependencies: - web3-core-helpers "1.6.1" - xhr2-cookies "1.1.0" - -web3-providers-ipc@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.6.1.tgz#7ba460589d46896bb3d124288deed1b6a72d517e" - integrity sha512-anyoIZlpMzwEQI4lwylTzDrHsVp20v0QUtSTp2B5jInBinmQtyCE7vnbX20jEQ4j5uPwfJabKNtoJsk6a3O4WQ== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.6.1" - -web3-providers-ws@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.6.1.tgz#f7ee71f158971102b865e99ea7911f483e0507e9" - integrity sha512-FWMEFYb4rYFYRgSFBf/O1Ex4p/YKSlN+JydCtdlJwRimd89qm95CTfs4xGjCskwvXMjV2sarH+f1NPwJXicYpg== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.6.1" - websocket "^1.0.32" - -web3-shh@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.6.1.tgz#eebaab2e5e6be80fe2585c6c094fa10a03349ca7" - integrity sha512-oP00HbAtybLCGlLOZUYXOdeB9xq88k2l0TtStvKBtmFqRt+zVk5TxEeuOnVPRxNhcA2Un8RUw6FtvgZlWStu9A== - dependencies: - web3-core "1.6.1" - web3-core-method "1.6.1" - web3-core-subscriptions "1.6.1" - web3-net "1.6.1" - -web3-utils@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.6.1.tgz#befcb23922b00603ab56d8c5b4158468dc494aca" - integrity sha512-RidGKv5kOkcerI6jQqDFDoTllQQqV+rPhTzZHhmbqtFObbYpU93uc+yG1LHivRTQhA6llIx67iudc/vzisgO+w== - dependencies: - 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" - -web3@^1.6.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.6.1.tgz#c9e68fe7b3073adddf35393441f950ec69b92735" - integrity sha512-c299lLiyb2/WOcxh7TinwvbATaMmrgNIeAzbLbmOKHI0LcwyfsB1eu2ReOIrfrCYDYRW2KAjYr7J7gHawqDNPQ== - dependencies: - web3-bzz "1.6.1" - web3-core "1.6.1" - web3-eth "1.6.1" - web3-eth-personal "1.6.1" - web3-net "1.6.1" - web3-shh "1.6.1" - web3-utils "1.6.1" - -websocket@^1.0.32: - version "1.0.34" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" - integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== - dependencies: - bufferutil "^4.0.1" - debug "^2.2.0" - es5-ext "^0.10.50" - typedarray-to-buffer "^3.1.5" - utf-8-validate "^5.0.2" - yaeti "^0.0.6" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -7017,15 +4699,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -7041,100 +4714,18 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== -ws@^3.0.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -ws@^7.4.6: - version "7.5.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.0.1, xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr2-cookies@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= - dependencies: - cookiejar "^2.1.1" - -xhr@^2.0.4, xhr@^2.3.3: - version "2.6.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= - -xpnet-nft-list@^0.2.12: - version "0.2.12" - resolved "https://registry.yarnpkg.com/xpnet-nft-list/-/xpnet-nft-list-0.2.12.tgz#a4ee952ebbee4fdad727299e171730ad4493263c" - integrity sha512-W9nSFygef6bFIX8gFoGbPeAnkLBLjRl/nsVDjMKIFj9R8kghkaW7irHT0P7tUeg1mkX3/vy5ihOnVm1/2wIh6g== - dependencies: - "@elrondnetwork/erdjs" "^8.0.1-alpha.8" - "@supercharge/promise-pool" "^1.9.0" - axios "^0.23.0" - cors "^2.8.5" - dotenv "^10.0.0" - ethers "^5.5.1" - express "^4.17.1" - js-base64 "^3.7.2" - moralis "^0.0.134" - tronweb "^4.0.0" - "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": version "0.1.0" resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#091246c404973dc9024895d28f999b71a702f82e" dependencies: ethers "^5.4.1" -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= - -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -7144,11 +4735,6 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" From 0ada2629d4f7445201dcad876f4851d559d39819 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 8 Dec 2021 17:31:39 +0530 Subject: [PATCH 238/956] cleanup nft-list dep --- src/factory/cons.ts | 14 -------------- src/factory/index.ts | 2 +- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index f205f1bde..cc83eed99 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -4,12 +4,6 @@ import { networkBatchExchangeRateRepo, NetworkModel, } from "crypto-exchange-rate"; -import { - algoAssetMapper, - algoNftListService, - mockChainIdentMapper, - nftListRepo, -} from "xpnet-nft-list"; export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { const baseService = NetworkModel.batchExchangeRateService(baseUrl); @@ -21,11 +15,3 @@ export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { ) ); } - -export const algoListNft = (baseUri: string) => { - return nftListRepo( - algoNftListService(baseUri), - algoAssetMapper(), - mockChainIdentMapper() - ); -}; diff --git a/src/factory/index.ts b/src/factory/index.ts index b238dae8c..b8a56e953 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -36,7 +36,7 @@ import { import BigNumber from "bignumber.js"; import axios from "axios"; -import { algoListNft, exchangeRateRepo } from "./cons"; +import { exchangeRateRepo } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; From 31a5639a26f017a143d8496f50a1e262b366f258 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 8 Dec 2021 18:47:01 +0530 Subject: [PATCH 239/956] nftList: fix response type --- src/factory/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index b8a56e953..2fff001f6 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -499,8 +499,8 @@ export function ChainFactory( }, async nftList(chain: NftUriChain, owner: string) { let data = await nftlistRest - .get[]>(`/nfts/${chain.getNonce()}/${owner}`) - .then((v) => v.data); + .get<{ data: NftInfo[] }>(`/nfts/${chain.getNonce()}/${owner}`) + .then((v) => v.data.data); const nonce = chain.getNonce(); if (nonce != Chain.ALGORAND || nonce != Chain.ELROND) { From a08efb793325c0fe01d62c510142d11277dce3a8 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 9 Dec 2021 13:34:26 +0530 Subject: [PATCH 240/956] fix(mongo): seprate out pre transfer logic --- src/factory/index.ts | 38 +++++++++++++++------------ src/helpers/algorand.ts | 58 +++++++++++++++++++++++++---------------- src/helpers/chain.ts | 18 ++++++++----- src/helpers/elrond.ts | 8 +++--- src/helpers/tron.ts | 6 ++--- src/helpers/web3.ts | 6 ++--- 6 files changed, 79 insertions(+), 55 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 2fff001f6..6798e4bc9 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -58,14 +58,15 @@ export type CrossChainHelper = type NftUriChain = ChainNonceGet & WrappedNftCheck; -type FullChain = TransferNftForeign< +type FullChain = TransferNftForeign< Signer, string, BigNumber, RawNft, - Resp + Resp, + ExtraArgs > & - UnfreezeForeignNft & + UnfreezeForeignNft & EstimateTxFees & NftUriChain & ValidateAddress; @@ -107,13 +108,14 @@ export type ChainFactory = { * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) */ - transferNft( - fromChain: FullChain, - toChain: FullChain, + transferNft( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, sender: SignerF, receiver: string, - fee?: BigNumber + args: ExtraArgs, + fee?: BigNumber, ): Promise; /** * Mints an NFT on the chain. @@ -142,9 +144,9 @@ export type ChainFactory = { * @param nft: {@link NftInfo} The NFT that has to be transferred. Generally comes from the `nftList` method of the factory. * @param receiver: Address of the receiver of the NFT in raw string.. */ - estimateFees( - fromChain: FullChain, - toChain: FullChain, + estimateFees( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, receiver: string ): Promise; @@ -337,9 +339,9 @@ export function ChainFactory( .times(CHAIN_INFO[fromChain].decimals) .integerValue(BigNumber.ROUND_CEIL); } - const estimateFees = async ( - fromChain: FullChain, - toChain: FullChain, + const estimateFees = async ( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, receiver: string ) => { @@ -509,7 +511,7 @@ export function ChainFactory( return data; }, - transferNft: async (fromChain, toChain, nft, sender, receiver, fee) => { + transferNft: async (fromChain, toChain, nft, sender, receiver, args, fee ) => { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); if (!fee) { @@ -527,7 +529,9 @@ export function ChainFactory( sender, receiver, nft, - fee + fee, + args, + ); return res; } else { @@ -536,7 +540,9 @@ export function ChainFactory( toChain.getNonce(), receiver, nft, - fee + fee, + args, + ); return res; } diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 5327caa07..ef6cd56d7 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -1,4 +1,4 @@ -import algosdk from "algosdk"; +import algosdk, { SuggestedParams } from "algosdk"; import axios from "axios"; import { BigNumber } from "bignumber.js"; import { Base64 } from "js-base64"; @@ -7,6 +7,7 @@ import { ChainNonceGet, EstimateTxFees, NftInfo, + PreTransfer, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -118,14 +119,14 @@ export interface ClaimAlgorandNft { export type AlgorandHelper = ChainNonceGet & WrappedNftCheck & - TransferNftForeign & - UnfreezeForeignNft & + TransferNftForeign & + UnfreezeForeignNft & EstimateTxFees & ValidateAddress & { claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; } & { algod: algosdk.Algodv2; - } & ClaimAlgorandNft; + } & ClaimAlgorandNft & Pick, "preTransfer">; export type AlgorandParams = { algodApiKey: string; @@ -170,24 +171,9 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { chain_nonce: number, to: string, nft: NftInfo, - txFees: BigNumber + txFees: BigNumber, + suggested: SuggestedParams ) => { - const suggested = await algod.getTransactionParams().do(); - const callTx = algosdk.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: args.sendNftAppId, - appArgs: [encoder.encode("opt_in_nft")], - foreignAssets: [nft.native.nftId], - suggestedParams: suggested, - }); - const encodedTx = Base64.fromUint8Array(callTx.toByte()); - const signedTxCall = await signer.algoSigner.signTxn([{ txn: encodedTx }]); - const res = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedTxCall[0].blob, - }); - await waitTxnConfirm(res.txId); - const feesTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ from: signer.address, to: appAddr, @@ -285,18 +271,44 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { return await claimNft(signer, info); }, + async preTransfer(sender, nft, _fee) { + const user = await algod.accountInformation(appAddr).do() + for (let i = 0; i < user["assets"].length; i++) { + if (user["assets"][i]["asset-id"] === nft.native.nftId) { + return undefined + } + } + const suggested = await algod.getTransactionParams().do(); + const callTx = algosdk.makeApplicationNoOpTxnFromObject({ + from: sender.address, + appIndex: args.sendNftAppId, + appArgs: [encoder.encode("opt_in_nft")], + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + const encodedTx = Base64.fromUint8Array(callTx.toByte()); + const signedTxCall = await sender.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await sender.algoSigner.send({ + ledger: sender.ledger, + tx: signedTxCall[0].blob, + }); + await waitTxnConfirm(res.txId); + return suggested + }, + isWrappedNft(nft) { return nft.native.creator === appAddr; }, transferNftToForeign: transferNft, - unfreezeWrappedNft: async (signer, to, nft, txFees) => { + unfreezeWrappedNft: async (signer, to, nft, txFees, args) => { const nftMeta = await axios.get(nft.uri); return await transferNft( signer, parseInt(nftMeta.data.wrapped.origin), to, nft, - txFees + txFees, + args ); }, estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 554d4ed1f..1b268c070 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -53,17 +53,17 @@ export interface UnfreezeForeign { /** * Action to perform before transfer/unfreeze (if any) */ -export interface PreTransfer { +export interface PreTransfer { preTransfer( sender: Signer, nft: NftInfo, fee: BigNumber - ): Promise; + ): Promise; preUnfreeze( sender: Signer, nft: NftInfo, fee: BigNumber - ): Promise; + ): Promise; } /** @@ -81,14 +81,16 @@ export interface TransferNftForeign< ForeignAddr, Balance, RawNft, - Resp + Resp, + ExtraArgs > { transferNftToForeign( sender: Signer, chain_nonce: number, to: ForeignAddr, id: NftInfo, - txFees: Balance + txFees: Balance, + args: ExtraArgs ): Promise; } @@ -122,13 +124,15 @@ export interface UnfreezeForeignNft< ForeignAddr, Balance, RawNft, - Resp + Resp, + ExtraArgs > { unfreezeWrappedNft( sender: Signer, to: ForeignAddr, id: NftInfo, - txFees: Balance + txFees: Balance, + args: ExtraArgs ): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 78cce3ccf..2553b5a78 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -219,14 +219,16 @@ export type ElrondHelper = BalanceCheck & string, BigNumber, EsdtNftInfo, - Transaction + Transaction, + undefined > & UnfreezeForeignNft< ElrondSigner, string, BigNumber, EsdtNftInfo, - Transaction + Transaction, + undefined > & IssueESDTNFT & MintNft & { @@ -235,7 +237,7 @@ export type ElrondHelper = BalanceCheck & ChainNonceGet & ValidateAddress & ExtractAction & - PreTransfer & + PreTransfer & EstimateTxFees & TransferNftForeignUnsigned< string, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index f5621940c..4912b142a 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -91,10 +91,10 @@ export type TronHelper = BaseTronHelper & BatchWrappedBalanceCheck & TransferForeign & // TODO: Use TX Fees - TransferNftForeign & + TransferNftForeign & // TODO: Use TX Fees UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & WrappedNftCheck & EstimateTxFees & ChainNonceGet & @@ -102,7 +102,7 @@ export type TronHelper = BaseTronHelper & ValidateAddress & IsApproved & ExtractAction & - Pick, "preTransfer"> & + Pick, "preTransfer"> & PreTransferRawTxn & UnfreezeForeignNftUnsigned & TransferNftForeignUnsigned & diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 4e1b06e8c..f48cd651b 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -115,9 +115,9 @@ export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & - TransferNftForeign & + TransferNftForeign & UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & WrappedNftCheck & EstimateTxFees & ChainNonceGet & @@ -126,7 +126,7 @@ export type Web3Helper = BaseWeb3Helper & ValidateAddress & ExtractAction & { createWallet(privateKey: string): Wallet; - } & Pick, "preTransfer"> & + } & Pick, "preTransfer"> & UnfreezeForeignNftUnsigned< string, BigNumber, From fa718706f46475331185334661d698e2e7811ba7 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 9 Dec 2021 15:43:02 +0530 Subject: [PATCH 241/956] waitAlgorandNft: check db before waiting on tx socket --- src/factory/index.ts | 1 + src/helpers/algorand.ts | 2 +- src/socket.ts | 24 ++++++++++++++++++++++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 6798e4bc9..d7d3fe64f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -46,6 +46,7 @@ import { AlgorandHelper, AlgoSignerH, algoSignerWrapper, + ClaimNftInfo, } from "../helpers/algorand"; import algosdk from "algosdk"; import { Base64 } from "js-base64"; diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index ef6cd56d7..5ab1900c6 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -267,7 +267,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { getNonce: () => args.nonce, claimNft, async claimAlgorandNft(signer, sourceChain, action, socket) { - const info = await socket.waitAlgorandNft(sourceChain, action); + const info = await socket.waitAlgorandNft(sourceChain, signer.address, action); return await claimNft(signer, info); }, diff --git a/src/socket.ts b/src/socket.ts index 7dbd33d5a..411d6da45 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -1,3 +1,4 @@ +import axios from "axios"; import { io, ManagerOptions, SocketOptions } from "socket.io-client"; import { ClaimNftInfo } from "./helpers/algorand"; @@ -43,7 +44,7 @@ export type TxnSocketHelper = { }; export type AlgorandSocketHelper = { - waitAlgorandNft(sourceChain: number, action_id: string): Promise; + waitAlgorandNft(sourceChain: number, receiver: string, action_id: string): Promise; }; function pairAction(sourceChain: number, action_id: string): number { @@ -128,6 +129,14 @@ async function waitSocketData( return await dataP; } +type DbClaimInfo = { + receiver: string; + app_id: string; + nft_id: string; + action_id: string; + inserted_at: Date; +} + /** * Create a [[SocketHelper]] * @@ -141,6 +150,9 @@ export function socketHelper( const socket = io(uri, options); const txbuf: SocketResBuf = socketResBuf(); const algoBuf: SocketResBuf = socketResBuf(); + const dbApi = axios.create({ + baseURL: uri + }); socket.on( "tx_executed_event", @@ -162,10 +174,18 @@ export function socketHelper( async waitTxHash(chain: number, action_id: string): Promise { return await waitSocketData(txbuf, chain, action_id); }, - async waitAlgorandNft(sourceChain: number, action_id: string): Promise { + async waitAlgorandNft(sourceChain: number, receiver: string, action_id: string): Promise { // Validator sends a an action paired with chain id // this is implementation dependent on validator const paired = pairAction(sourceChain, action_id).toString(); + const dbData = await dbApi.get>(`/algorand_event/${receiver}/${paired}`); + if (dbData.data.app_id) { + return { + appId: parseInt(dbData.data.app_id!), + nftId: parseInt(dbData.data.nft_id!) + }; + } + return await waitSocketData(algoBuf, 15, paired); }, }; From 8a5322d6f93a6b702ec597419843752792bcb5d8 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 9 Dec 2021 16:58:16 +0530 Subject: [PATCH 242/956] algorand: add claimableNfts also cleanup useless params --- src/factory/index.ts | 33 ++++++++++++++------------------- src/helpers/algorand.ts | 28 +++++++++++++++++++++------- src/helpers/chain.ts | 12 ++++-------- src/helpers/elrond.ts | 6 ++---- src/helpers/tron.ts | 4 ++-- src/helpers/web3.ts | 4 ++-- src/socket.ts | 5 +++++ 7 files changed, 50 insertions(+), 42 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d7d3fe64f..e2634c42a 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -59,15 +59,14 @@ export type CrossChainHelper = type NftUriChain = ChainNonceGet & WrappedNftCheck; -type FullChain = TransferNftForeign< +type FullChain = TransferNftForeign< Signer, string, BigNumber, RawNft, - Resp, - ExtraArgs + Resp > & - UnfreezeForeignNft & + UnfreezeForeignNft & EstimateTxFees & NftUriChain & ValidateAddress; @@ -109,13 +108,12 @@ export type ChainFactory = { * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) */ - transferNft( - fromChain: FullChain, - toChain: FullChain, + transferNft( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, sender: SignerF, receiver: string, - args: ExtraArgs, fee?: BigNumber, ): Promise; /** @@ -145,9 +143,9 @@ export type ChainFactory = { * @param nft: {@link NftInfo} The NFT that has to be transferred. Generally comes from the `nftList` method of the factory. * @param receiver: Address of the receiver of the NFT in raw string.. */ - estimateFees( - fromChain: FullChain, - toChain: FullChain, + estimateFees( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, receiver: string ): Promise; @@ -340,9 +338,9 @@ export function ChainFactory( .times(CHAIN_INFO[fromChain].decimals) .integerValue(BigNumber.ROUND_CEIL); } - const estimateFees = async ( - fromChain: FullChain, - toChain: FullChain, + const estimateFees = async ( + fromChain: FullChain, + toChain: FullChain, nft: NftInfo, receiver: string ) => { @@ -512,7 +510,7 @@ export function ChainFactory( return data; }, - transferNft: async (fromChain, toChain, nft, sender, receiver, args, fee ) => { + transferNft: async (fromChain, toChain, nft, sender, receiver, fee ) => { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); if (!fee) { @@ -531,8 +529,6 @@ export function ChainFactory( receiver, nft, fee, - args, - ); return res; } else { @@ -541,8 +537,7 @@ export function ChainFactory( toChain.getNonce(), receiver, nft, - fee, - args, + fee ); return res; diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 5ab1900c6..07d51dca3 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -119,11 +119,12 @@ export interface ClaimAlgorandNft { export type AlgorandHelper = ChainNonceGet & WrappedNftCheck & - TransferNftForeign & - UnfreezeForeignNft & + TransferNftForeign & + UnfreezeForeignNft & EstimateTxFees & ValidateAddress & { claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; + claimableNfts(txSocket: AlgorandSocketHelper, owner: string): Promise; } & { algod: algosdk.Algodv2; } & ClaimAlgorandNft & Pick, "preTransfer">; @@ -171,9 +172,9 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { chain_nonce: number, to: string, nft: NftInfo, - txFees: BigNumber, - suggested: SuggestedParams + txFees: BigNumber ) => { + const suggested = await algod.getTransactionParams().do(); const feesTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ from: signer.address, to: appAddr, @@ -300,19 +301,32 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { return nft.native.creator === appAddr; }, transferNftToForeign: transferNft, - unfreezeWrappedNft: async (signer, to, nft, txFees, args) => { + unfreezeWrappedNft: async (signer, to, nft, txFees) => { const nftMeta = await axios.get(nft.uri); return await transferNft( signer, parseInt(nftMeta.data.wrapped.origin), to, nft, - txFees, - args + txFees ); }, estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), + claimableNfts: async (txSocket: AlgorandSocketHelper, owner: string) => { + const claims = await txSocket.claimNfts(owner); + const nfts = new Set(); + const user = await algod.accountInformation(appAddr).do() + for (let i = 0; i < user["assets"].length; i++) { + if (user["assets"][i]["amount"].toString() === "1") { + nfts.add(user["assets"][i]["asset-id"]); + } + } + + claims.filter((v) => !nfts.has(v.nftId)); + + return claims; + } }; } diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 1b268c070..3a795e94d 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -81,16 +81,14 @@ export interface TransferNftForeign< ForeignAddr, Balance, RawNft, - Resp, - ExtraArgs + Resp > { transferNftToForeign( sender: Signer, chain_nonce: number, to: ForeignAddr, id: NftInfo, - txFees: Balance, - args: ExtraArgs + txFees: Balance ): Promise; } @@ -124,15 +122,13 @@ export interface UnfreezeForeignNft< ForeignAddr, Balance, RawNft, - Resp, - ExtraArgs + Resp > { unfreezeWrappedNft( sender: Signer, to: ForeignAddr, id: NftInfo, - txFees: Balance, - args: ExtraArgs + txFees: Balance ): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 2553b5a78..03c601aa7 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -219,16 +219,14 @@ export type ElrondHelper = BalanceCheck & string, BigNumber, EsdtNftInfo, - Transaction, - undefined + Transaction > & UnfreezeForeignNft< ElrondSigner, string, BigNumber, EsdtNftInfo, - Transaction, - undefined + Transaction > & IssueESDTNFT & MintNft & { diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 4912b142a..ef404cb5b 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -91,10 +91,10 @@ export type TronHelper = BaseTronHelper & BatchWrappedBalanceCheck & TransferForeign & // TODO: Use TX Fees - TransferNftForeign & + TransferNftForeign & // TODO: Use TX Fees UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & WrappedNftCheck & EstimateTxFees & ChainNonceGet & diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index f48cd651b..3f729221f 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -115,9 +115,9 @@ export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & - TransferNftForeign & + TransferNftForeign & UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & WrappedNftCheck & EstimateTxFees & ChainNonceGet & diff --git a/src/socket.ts b/src/socket.ts index 411d6da45..0161f9a17 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -45,6 +45,7 @@ export type TxnSocketHelper = { export type AlgorandSocketHelper = { waitAlgorandNft(sourceChain: number, receiver: string, action_id: string): Promise; + claimNfts(receiver: string): Promise; }; function pairAction(sourceChain: number, action_id: string): number { @@ -188,5 +189,9 @@ export function socketHelper( return await waitSocketData(algoBuf, 15, paired); }, + async claimNfts(receiver: string): Promise { + const dbData = await dbApi.get(`/algorand_event/${receiver}`); + return dbData.data.map((v) => ({ appId: parseInt(v.app_id), nftId: parseInt(v.nft_id) })); + } }; } From 812da7ad17a1a7d859d5600b226b94ce3b0c6137 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 9 Dec 2021 17:03:49 +0530 Subject: [PATCH 243/956] factory: add claimableAlgorandNfts --- src/factory/index.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index e2634c42a..022fe8a53 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -190,6 +190,13 @@ export type ChainFactory = { txn: Txn, claimer: AlgoSignerH ): Promise; + /** + * + * @param claimer: the account which can claim the nfts + */ + claimableAlgorandNfts( + claimer: string + ): Promise /** * Returns a raw txn (hopefully Typed JS Objects in all chains) which can be sent over the wire for signing and broadcasting. * @param from The chain from which the NFT is being sent. @@ -561,6 +568,13 @@ export function ChainFactory( txSocket ); }, + claimableAlgorandNfts: async (claimer) => { + const algo: AlgorandHelper = await inner(Chain.ALGORAND); + return await algo.claimableNfts( + txSocket, + claimer + ); + } }; } /** From b608da3700757effcef4949b051418f1cf9dfee0 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 9 Dec 2021 17:08:28 +0530 Subject: [PATCH 244/956] socket: fix claimable nfts --- src/socket.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/socket.ts b/src/socket.ts index 0161f9a17..0373da36a 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -190,8 +190,8 @@ export function socketHelper( return await waitSocketData(algoBuf, 15, paired); }, async claimNfts(receiver: string): Promise { - const dbData = await dbApi.get(`/algorand_event/${receiver}`); - return dbData.data.map((v) => ({ appId: parseInt(v.app_id), nftId: parseInt(v.nft_id) })); + const dbData = await dbApi.get<{ result: DbClaimInfo[] }>(`/algorand_event/${receiver}`); + return dbData.data.result.map((v) => ({ appId: parseInt(v.app_id), nftId: parseInt(v.nft_id) })); } }; } From 63e7af0172e113befd9a2ada9abce4b722ae0400 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 9 Dec 2021 17:33:21 +0530 Subject: [PATCH 245/956] algorand: claimNfts: add url as well --- src/helpers/algorand.ts | 24 ++++++++++++++++++++++-- src/socket.ts | 6 +++--- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 07d51dca3..629e8e6fb 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -117,6 +117,11 @@ export interface ClaimAlgorandNft { ): Promise; } +export type FullClaimNft = ClaimNftInfo & { + name: string; + uri: string; +} + export type AlgorandHelper = ChainNonceGet & WrappedNftCheck & TransferNftForeign & @@ -324,9 +329,24 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { } } - claims.filter((v) => !nfts.has(v.nftId)); - return claims; + const res = await Promise.all(claims.map(async v => { + const appId = parseInt(v.app_id); + const nftId = parseInt(v.nft_id); + const assetInfo = await algod.getAssetByID(nftId).do(); + if (nfts.has(nftId)) { + return []; + } + + return [{ + nftId, + appId, + uri: assetInfo.params.url, + name: assetInfo.params.name || '' + }] + })); + + return res.flat(); } }; } diff --git a/src/socket.ts b/src/socket.ts index 0373da36a..17ba65d34 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -45,7 +45,7 @@ export type TxnSocketHelper = { export type AlgorandSocketHelper = { waitAlgorandNft(sourceChain: number, receiver: string, action_id: string): Promise; - claimNfts(receiver: string): Promise; + claimNfts(receiver: string): Promise; }; function pairAction(sourceChain: number, action_id: string): number { @@ -189,9 +189,9 @@ export function socketHelper( return await waitSocketData(algoBuf, 15, paired); }, - async claimNfts(receiver: string): Promise { + async claimNfts(receiver: string): Promise { const dbData = await dbApi.get<{ result: DbClaimInfo[] }>(`/algorand_event/${receiver}`); - return dbData.data.result.map((v) => ({ appId: parseInt(v.app_id), nftId: parseInt(v.nft_id) })); + return dbData.data.result; } }; } From 20165901fc90eaf43650f728b0eb691d6404231b Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 9 Dec 2021 17:38:16 +0530 Subject: [PATCH 246/956] algorand: claimableNts: update type signature --- src/helpers/algorand.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 629e8e6fb..f42086b5c 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -129,7 +129,7 @@ export type AlgorandHelper = ChainNonceGet & EstimateTxFees & ValidateAddress & { claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; - claimableNfts(txSocket: AlgorandSocketHelper, owner: string): Promise; + claimableNfts(txSocket: AlgorandSocketHelper, owner: string): Promise; } & { algod: algosdk.Algodv2; } & ClaimAlgorandNft & Pick, "preTransfer">; From 5135c4511d2170bc8d65e9eeaa53c252b1edc827 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 9 Dec 2021 18:05:30 +0530 Subject: [PATCH 247/956] algorand: split claimNft --- src/factory/index.ts | 14 +++-------- src/helpers/algorand.ts | 54 ++++++++++++++++++++++++----------------- 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 022fe8a53..b208106cd 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -185,11 +185,11 @@ export type ChainFactory = { * @param txn Transaction Hash of the original * @param claimer the account which can claim the nft */ - claimAlgorandNft( + waitAlgorandNft( originChain: ExtractAction & ChainNonceGet, txn: Txn, claimer: AlgoSignerH - ): Promise; + ): Promise; /** * * @param claimer: the account which can claim the nfts @@ -557,16 +557,10 @@ export function ChainFactory( ): Promise => { return await chain.mintNft(owner, args); }, - claimAlgorandNft: async (origin, hash, claimer) => { + waitAlgorandNft: async (origin, hash, claimer) => { const action = await origin.extractAction(hash); - const algo: AlgorandHelper = await inner(Chain.ALGORAND); - return await algo.claimAlgorandNft( - claimer, - origin.getNonce(), - action, - txSocket - ); + return await txSocket.waitAlgorandNft(origin.getNonce(), claimer.address, action); }, claimableAlgorandNfts: async (claimer) => { const algo: AlgorandHelper = await inner(Chain.ALGORAND); diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index f42086b5c..1d5dfec6e 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -108,15 +108,6 @@ export function algoSignerWrapper( }; } -export interface ClaimAlgorandNft { - claimAlgorandNft( - signer: AlgoSignerH, - sourceChain: number, - actionId: string, - socket: AlgorandSocketHelper - ): Promise; -} - export type FullClaimNft = ClaimNftInfo & { name: string; uri: string; @@ -130,9 +121,11 @@ export type AlgorandHelper = ChainNonceGet & ValidateAddress & { claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; claimableNfts(txSocket: AlgorandSocketHelper, owner: string): Promise; + isOptIn(address: string, nftId: number): Promise; + optInNft(signer: AlgoSignerH, info: ClaimNftInfo): Promise; } & { algod: algosdk.Algodv2; - } & ClaimAlgorandNft & Pick, "preTransfer">; + } & Pick, "preTransfer">; export type AlgorandParams = { algodApiKey: string; @@ -229,13 +222,28 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { return sendRes.txId as string; }; - async function claimNft(signer: AlgoSignerH, info: ClaimNftInfo) { + async function isOptIn(addr: string, nftId: number) { + const user = await algod.accountInformation(addr).do() + for (let i = 0; i < user["assets"].length; i++) { + if (user["assets"][i]["asset-id"] === nftId) { + return true + } + } + + return false; + } + + async function optInNft(signer: AlgoSignerH, nft: ClaimNftInfo) { + if (await isOptIn(signer.address, nft.nftId)) { + return undefined; + } + const suggested = await algod.getTransactionParams().do(); const optIn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ from: signer.address, to: signer.address, amount: 0, - assetIndex: info.nftId, + assetIndex: nft.nftId, suggestedParams: suggested, }); const encodedTx = Base64.fromUint8Array(optIn.toByte()); @@ -245,6 +253,13 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { tx: signedTx[0].blob, }); await waitTxnConfirm(res.txId); + return res.txId; + } + + async function claimNft(signer: AlgoSignerH, info: ClaimNftInfo) { + await optInNft(signer, info); + + const suggested = await algod.getTransactionParams().do(); const callTxn = algosdk.makeApplicationNoOpTxnFromObject({ from: signer.address, @@ -272,18 +287,13 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { algod, getNonce: () => args.nonce, claimNft, - async claimAlgorandNft(signer, sourceChain, action, socket) { - const info = await socket.waitAlgorandNft(sourceChain, signer.address, action); - - return await claimNft(signer, info); - }, + optInNft, + isOptIn, async preTransfer(sender, nft, _fee) { - const user = await algod.accountInformation(appAddr).do() - for (let i = 0; i < user["assets"].length; i++) { - if (user["assets"][i]["asset-id"] === nft.native.nftId) { - return undefined - } + if (await isOptIn(appAddr, nft.native.nftId)) { + return undefined; } + const suggested = await algod.getTransactionParams().do(); const callTx = algosdk.makeApplicationNoOpTxnFromObject({ from: sender.address, From 86f864c7cf948d9d447b749cf3043d7624227f88 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 9 Dec 2021 18:53:57 +0530 Subject: [PATCH 248/956] algorand: claimaibleNfts: fix filtering nfts --- src/factory/factories.ts | 2 ++ src/helpers/algorand.ts | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index de764b9ab..c8e1fa48f 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -133,6 +133,7 @@ export namespace ChainFactoryConfigs { algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", algodUri: "https://algorand-node.xp.network/", + algoIndexer: "https://algoexplorerapi.io/idx2", nonce: Chain.ALGORAND, sendNftAppId: 458971166, algodPort: 443, @@ -245,6 +246,7 @@ export namespace ChainFactoryConfigs { algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", algodUri: "https://algorand-node.xp.network/", + algoIndexer: "https://algoexplorerapi.io/idx2", nonce: Chain.ALGORAND, sendNftAppId: 458971166, algodPort: 443, diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 1d5dfec6e..782dc0186 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -1,4 +1,4 @@ -import algosdk, { SuggestedParams } from "algosdk"; +import algosdk, { getApplicationAddress, SuggestedParams } from "algosdk"; import axios from "axios"; import { BigNumber } from "bignumber.js"; import { Base64 } from "js-base64"; @@ -130,6 +130,7 @@ export type AlgorandHelper = ChainNonceGet & export type AlgorandParams = { algodApiKey: string; algodUri: string; + algoIndexer: string; algodPort: number | undefined; sendNftAppId: number; nonce: number; @@ -151,6 +152,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { args.algodUri, args.algodPort ); + const indexer = new algosdk.Indexer({}, args.algoIndexer, 443); async function waitTxnConfirm(txId: string) { const status = await algod.status().do(); @@ -331,20 +333,20 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), claimableNfts: async (txSocket: AlgorandSocketHelper, owner: string) => { const claims = await txSocket.claimNfts(owner); - const nfts = new Set(); - const user = await algod.accountInformation(appAddr).do() - for (let i = 0; i < user["assets"].length; i++) { - if (user["assets"][i]["amount"].toString() === "1") { - nfts.add(user["assets"][i]["asset-id"]); - } - } const res = await Promise.all(claims.map(async v => { const appId = parseInt(v.app_id); const nftId = parseInt(v.nft_id); const assetInfo = await algod.getAssetByID(nftId).do(); - if (nfts.has(nftId)) { + const ownerInfo = await indexer.lookupAssetBalances( + nftId + ) + .currencyGreaterThan(0) + .do(); + const appAddr = getApplicationAddress(appId); + + if (ownerInfo.balances[0].address != appAddr) { return []; } From 038fbd1157f8616b4bad1cc18bfb9e5c7c398a67 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Mon, 13 Dec 2021 11:08:53 +0200 Subject: [PATCH 249/956] fix the minter addr Elrond --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index c8e1fa48f..70b6ad804 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -144,7 +144,7 @@ export namespace ChainFactoryConfigs { elrondParams: { node_uri: MainNetRpcUri.ELROND, minter_address: - "erd1qqqqqqqqqqqqqpgqe4hsht34ut085demqk2g2llcznankw84p7tqx5s9ce", + "erd1qqqqqqqqqqqqqpgq98ufyktqukxqw79f7n22sr3u6n05u7d7p7tqmzhv32", esdt_swap_address: "erd1qqqqqqqqqqqqqpgqkkcsf8aky3vn057086cgnps768ann7nfp7tqxppx53", esdt: "XPNET-0e265d", From d456093eab40b2810ac17f0ca560b47885eaf24b Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Mon, 13 Dec 2021 14:26:18 +0200 Subject: [PATCH 250/956] update elrondParams --- src/factory/factories.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 70b6ad804..76579cfd6 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -145,11 +145,10 @@ export namespace ChainFactoryConfigs { node_uri: MainNetRpcUri.ELROND, minter_address: "erd1qqqqqqqqqqqqqpgq98ufyktqukxqw79f7n22sr3u6n05u7d7p7tqmzhv32", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqkkcsf8aky3vn057086cgnps768ann7nfp7tqxppx53", - esdt: "XPNET-0e265d", - esdt_nft: "XPNFT-9d19d5", - esdt_swap: "WEGLD-6823c1", + esdt_swap_address: "erd1qqqqqqqqqqqqqpgqgc9vfqcdqw0ucu602elf0lt4tysfmxpep7tqhrrr9x", + esdt: "XPNET-738176", + esdt_nft: "XPNFT-676422", + esdt_swap: "WEGLD-071de0", validators: [ "erd1lwyjz0adjd3vqpcjqs5rntw6sxzf9pvqussadygy2u76mz9ap7tquc0z5s", "erd1tzc9qltpntlgnpetrz58llqsg93dnxety54umln0kuq2k6dajf6qk796wh", From ca43ae2f0bc54b677fc5bc680bdd0baae93cde83 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 14 Dec 2021 15:24:07 +0530 Subject: [PATCH 251/956] algorand: clean nfts before listing --- src/helpers/algorand.ts | 1 + src/socket.ts | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 782dc0186..85c855d42 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -332,6 +332,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), claimableNfts: async (txSocket: AlgorandSocketHelper, owner: string) => { + await txSocket.cleanNfts(owner); const claims = await txSocket.claimNfts(owner); diff --git a/src/socket.ts b/src/socket.ts index 17ba65d34..ab534ac02 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -46,6 +46,7 @@ export type TxnSocketHelper = { export type AlgorandSocketHelper = { waitAlgorandNft(sourceChain: number, receiver: string, action_id: string): Promise; claimNfts(receiver: string): Promise; + cleanNfts(owner: string): Promise; }; function pairAction(sourceChain: number, action_id: string): number { @@ -192,6 +193,9 @@ export function socketHelper( async claimNfts(receiver: string): Promise { const dbData = await dbApi.get<{ result: DbClaimInfo[] }>(`/algorand_event/${receiver}`); return dbData.data.result; + }, + async cleanNfts(owner: string): Promise { + await dbApi.delete(`/algorand_event/${owner}`); } }; } From e36ffd3a532838a9b810c761d2e263950651456d Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 14 Dec 2021 20:55:19 +0530 Subject: [PATCH 252/956] algorand: remove legacy nft cleanup logic --- src/factory/factories.ts | 1 - src/helpers/algorand.ts | 23 +++++------------------ 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 76579cfd6..7fe9af78a 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -245,7 +245,6 @@ export namespace ChainFactoryConfigs { algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", algodUri: "https://algorand-node.xp.network/", - algoIndexer: "https://algoexplorerapi.io/idx2", nonce: Chain.ALGORAND, sendNftAppId: 458971166, algodPort: 443, diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 85c855d42..a2a069506 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -130,7 +130,6 @@ export type AlgorandHelper = ChainNonceGet & export type AlgorandParams = { algodApiKey: string; algodUri: string; - algoIndexer: string; algodPort: number | undefined; sendNftAppId: number; nonce: number; @@ -152,7 +151,6 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { args.algodUri, args.algodPort ); - const indexer = new algosdk.Indexer({}, args.algoIndexer, 443); async function waitTxnConfirm(txId: string) { const status = await algod.status().do(); @@ -335,31 +333,20 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { await txSocket.cleanNfts(owner); const claims = await txSocket.claimNfts(owner); - const res = await Promise.all(claims.map(async v => { const appId = parseInt(v.app_id); const nftId = parseInt(v.nft_id); const assetInfo = await algod.getAssetByID(nftId).do(); - const ownerInfo = await indexer.lookupAssetBalances( - nftId - ) - .currencyGreaterThan(0) - .do(); - const appAddr = getApplicationAddress(appId); - - if (ownerInfo.balances[0].address != appAddr) { - return []; - } - return [{ + return { nftId, appId, - uri: assetInfo.params.url, - name: assetInfo.params.name || '' - }] + uri: assetInfo.params.url as string, + name: assetInfo.params.name as string || '' + } })); - return res.flat(); + return res; } }; } From 5f230050043eb88f5ab1efb7b37bdaaf68fcbd4d Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 16 Dec 2021 15:25:34 +0530 Subject: [PATCH 253/956] algorand: add support for wallet connect signer --- package.json | 2 + src/helpers/algorand.ts | 44 ++++++++++++++++++--- yarn.lock | 86 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 127 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b3ae38154..fc571d6b1 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,8 @@ }, "dependencies": { "@elrondnetwork/erdjs": "^8.0.1-alpha.8", + "@json-rpc-tools/utils": "^1.7.6", + "@walletconnect/client": "^1.7.0", "algosdk": "^1.12.0", "axios": "^0.21.1", "bignumber.js": "^9.0.1", diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index a2a069506..d37baef3c 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -1,7 +1,9 @@ -import algosdk, { getApplicationAddress, SuggestedParams } from "algosdk"; +import WalletConnect from "@walletconnect/client"; +import algosdk, { SuggestedParams } from "algosdk"; +import { formatJsonRpcRequest } from "@json-rpc-tools/utils"; import axios from "axios"; import { BigNumber } from "bignumber.js"; -import { Base64 } from "js-base64"; +import { Base64, decode } from "js-base64"; import { AlgorandSocketHelper, ChainNonceGet, @@ -28,7 +30,7 @@ type AlgoNft = { }; type SignedTxn = { - txID: string; + txID?: string; blob: string; }; @@ -119,12 +121,12 @@ export type AlgorandHelper = ChainNonceGet & UnfreezeForeignNft & EstimateTxFees & ValidateAddress & { + algod: algosdk.Algodv2; claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; claimableNfts(txSocket: AlgorandSocketHelper, owner: string): Promise; isOptIn(address: string, nftId: number): Promise; optInNft(signer: AlgoSignerH, info: ClaimNftInfo): Promise; - } & { - algod: algosdk.Algodv2; + walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; } & Pick, "preTransfer">; export type AlgorandParams = { @@ -347,6 +349,38 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { })); return res; + }, + walletConnectSigner( + connector: WalletConnect, + address: string + ): AlgoSignerH { + const signer: BrowserSigner = { + accounts(_) { + return Promise.resolve(connector.accounts.map(s => ({ address: s }))) + }, + async signTxn(txns) { + const req = formatJsonRpcRequest( + "algo_signTxn", + [txns] + ); + const signed: Array = await connector.sendCustomRequest(req); + const decoded = signed.flatMap(e => e ? [{ blob: e }] : []); + if (decoded.length != txns.length) { + throw Error("Couldn't sign all transactions!"); + } + + return decoded; + }, + send(info: { tx: string}): Promise { + return algod.sendRawTransaction(Base64.toUint8Array(info.tx)).do(); + } + } + + return { + algoSigner: signer, + address, + ledger: "any" + } } }; } diff --git a/yarn.lock b/yarn.lock index 85c7c32e3..409fe0bdb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -849,6 +849,21 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== +"@json-rpc-tools/types@^1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@json-rpc-tools/types/-/types-1.7.6.tgz#5abd5fde01364a130c46093b501715bcce5bdc0e" + integrity sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ== + dependencies: + keyvaluestorage-interface "^1.0.0" + +"@json-rpc-tools/utils@^1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@json-rpc-tools/utils/-/utils-1.7.6.tgz#67f04987dbaa2e7adb6adff1575367b75a9a9ba1" + integrity sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw== + dependencies: + "@json-rpc-tools/types" "^1.7.6" + "@pedrouid/environment" "^1.0.1" + "@ledgerhq/devices@^5.28.0", "@ledgerhq/devices@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" @@ -1051,6 +1066,11 @@ dependencies: "@octokit/openapi-types" "^8.3.0" +"@pedrouid/environment@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" + integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -1301,6 +1321,17 @@ "@walletconnect/window-metadata" "1.0.0" detect-browser "5.2.0" +"@walletconnect/browser-utils@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.0.tgz#b420eb110d5ea4d7fe00084537fd720a72b68d56" + integrity sha512-bQsbCIDTT1OB4v8VF5bzg3byp03qTst9kLmjQj68ElecIUcdS6nZvEDhZdQK/r63WMVnA2KrTb5AEN6hPRGgIw== + dependencies: + "@walletconnect/safe-json" "1.0.0" + "@walletconnect/types" "^1.7.0" + "@walletconnect/window-getters" "1.0.0" + "@walletconnect/window-metadata" "1.0.0" + detect-browser "5.2.0" + "@walletconnect/client@1.6.5": version "1.6.5" resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.6.5.tgz#6616ae926abc7c87c48a2d3693f2eb697858e685" @@ -1311,6 +1342,16 @@ "@walletconnect/types" "^1.6.5" "@walletconnect/utils" "^1.6.5" +"@walletconnect/client@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.7.0.tgz#f656952a23367cc4890ca16cc3f10ee7dabb2f03" + integrity sha512-56aXK9Rb30cHhl4DMaUakz/3KG3Mr+/9h2iCvKDqAxmIeD931ahMZlBu86T7hGf4vboisZZEhj8/ZwiAM4Ukvg== + dependencies: + "@walletconnect/core" "^1.7.0" + "@walletconnect/iso-crypto" "^1.7.0" + "@walletconnect/types" "^1.7.0" + "@walletconnect/utils" "^1.7.0" + "@walletconnect/core@^1.6.5": version "1.6.6" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.6.6.tgz#0a35a9b0f91da8958bec27be801a510818f4e142" @@ -1320,6 +1361,15 @@ "@walletconnect/types" "^1.6.6" "@walletconnect/utils" "^1.6.6" +"@walletconnect/core@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.7.0.tgz#eb318bfce80a5454e12f1d7811a583e2d1adcb42" + integrity sha512-0YX9Y/CVYctKPcSgSyp2wLrk4OgSenmyzWj6Z3C93Hb7PG+tJ+dKCeNFeEIYA03QQRxHew5uMLPbVgmdtmB/0w== + dependencies: + "@walletconnect/socket-transport" "^1.7.0" + "@walletconnect/types" "^1.7.0" + "@walletconnect/utils" "^1.7.0" + "@walletconnect/crypto@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.1.tgz#d4c1b1cd5dd1be88fe9a82dfc54cadbbb3f9d325" @@ -1353,6 +1403,15 @@ "@walletconnect/types" "^1.6.6" "@walletconnect/utils" "^1.6.6" +"@walletconnect/iso-crypto@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.7.0.tgz#ccb968504ee5925ae75c64efe610631470072982" + integrity sha512-ZUQ/MAM9TXtneIaRjxW/PuFF+es4I9OrCGFgVTCYAaa7p2zdy7BgHmVOnxxOpUh9VYwLXoiA/FU234NwS0ulYw== + dependencies: + "@walletconnect/crypto" "^1.0.1" + "@walletconnect/types" "^1.7.0" + "@walletconnect/utils" "^1.7.0" + "@walletconnect/jsonrpc-types@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.0.tgz#fa75ad5e8f106a2e33287b1e6833e22ed0225055" @@ -1391,11 +1450,25 @@ "@walletconnect/utils" "^1.6.6" ws "7.5.3" +"@walletconnect/socket-transport@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.7.0.tgz#713a162d577fdda0b44753227b699b6f93927b97" + integrity sha512-HSWGZxdxDtf8K1Kd1eD1QuObpoNxHui+A/+inuC8i8fcifDjZu85AeJIfCKQijlmgjLR/25Ry3eJFbYpRXxUjQ== + dependencies: + "@walletconnect/types" "^1.7.0" + "@walletconnect/utils" "^1.7.0" + ws "7.5.3" + "@walletconnect/types@^1.6.5", "@walletconnect/types@^1.6.6": version "1.6.6" resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.6.6.tgz#8d644e2a390e494e40424c60272e91b4820bf0d4" integrity sha512-op77cxexOmQQN36XB1sYouNTlBRV0Rup/2NYK8A1ffdwXa3a6HLHHdhBM7I/I9BVmRXoZ4+XoOnPKGGrYtlS3g== +"@walletconnect/types@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.7.0.tgz#e6d0f7e41e5d22303b57be0739716a8dd8c968b4" + integrity sha512-eoqnF+U04IuMfGIBsqYhAR6SIM2kzcrZM/RCVcomT/lIcsRoBwNxR+86+3Vn12/iaGnuAKn8xDZhZ47SLFmanQ== + "@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.6.6": version "1.6.6" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.6.6.tgz#e8e49a5f2c35e4a5f9153b09ad076655f38d8c96" @@ -1409,6 +1482,19 @@ js-sha3 "0.8.0" query-string "6.13.5" +"@walletconnect/utils@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.7.0.tgz#1dbb1268c1ee245df378957945bf036a3d9fdbf5" + integrity sha512-DnYyKNMkpPUkbu6YwHfycvzlpx7Ro/qDPIDAuaNYT4FFWFyYxfx2ZY66kU3XklQivAc8dK7TyvYPJ08LWd8w4Q== + dependencies: + "@walletconnect/browser-utils" "^1.7.0" + "@walletconnect/encoding" "^1.0.0" + "@walletconnect/jsonrpc-utils" "^1.0.0" + "@walletconnect/types" "^1.7.0" + bn.js "4.11.8" + js-sha3 "0.8.0" + query-string "6.13.5" + "@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" From fe4d5f26297de98660e8eba6ea15e8d693a1441a Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 16 Dec 2021 18:11:45 +0530 Subject: [PATCH 254/956] algorand: wallet connect: fix sign method --- src/helpers/algorand.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index d37baef3c..696bce4f2 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -363,8 +363,8 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { "algo_signTxn", [txns] ); - const signed: Array = await connector.sendCustomRequest(req); - const decoded = signed.flatMap(e => e ? [{ blob: e }] : []); + const signed: Array | null> = await connector.sendCustomRequest(req); + const decoded = signed.flatMap(e => e ? [{ blob: Base64.fromUint8Array(Uint8Array.from(e)) }] : []); if (decoded.length != txns.length) { throw Error("Couldn't sign all transactions!"); } From 7f1f4205c0afb8e4244a9ba3c04a209ee7e609b7 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 17 Dec 2021 13:32:14 +0530 Subject: [PATCH 255/956] feat(testnet): update smart contracts addresses The SCs on the testnet do not require whitelisting now, hence the change. --- src/factory/factories.ts | 57 ++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 7fe9af78a..4dc1efed0 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -60,72 +60,72 @@ export namespace ChainFactoryConfigs { avalancheParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), - minter_addr: "0x273c507D8E21cDE039491B14647Fe9278D88e91D", - erc1155_addr: "0x04F75a27cE2FDC591C71a88f1EcaC7e5Ce44f5Fc", - erc721_addr: "0xCC5Bc84C3FDbcF262AaDD9F76652D6784293dD9e", + minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", + erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", + erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.AVALANCHE, }, polygonParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), - minter_addr: "0xc6148C73f4beCbd7aE39ba23a9CeBa9518fF96BE", - erc1155_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", - erc721_addr: "0xAE25CF0d6D8d7c420768Ed179Ef01cf80c3708B1", + minter_addr: "0xeed0fF20D9B1bd398b709e0d0405AC2B697e6083", + erc1155_addr: "0xFC58eB64D9257526cbA96C2Dda8Adc3d25Db770F", + erc721_addr: "0xf6d7B49B239FdE7EBfa82793911B812f42C06f6A", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.POLYGON, }, fantomParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), - minter_addr: "0x4Bd915C3e39cfF4eac842255965E79061c38cACD", - erc1155_addr: "0xAAd4F7BB5FB661181D500829e60010043833a85B", - erc721_addr: "0x72aC6A36de2f72BD39e9c782e9db0DCc41FEbfe2", + minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", + erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", + erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.FANTOM, }, bscParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), - minter_addr: "0x346cb8F9081CA561946E5F0f258e64dB7C075465", - erc1155_addr: "0x434541d6aA0e8395d30e6E6Dd0A83680bc8Cd4B7", - erc721_addr: "0x4BC19A536178cf7E8EE49206357f68c891752FA0", + minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", + erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", + erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.BSC, }, celoParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), - minter_addr: "0x00CAC06Dd0BB4103f8b62D280fE9BCEE8f26fD59", - erc1155_addr: "0xAD2935E147b61175D5dc3A9e7bDa93B0975A43BA", - erc721_addr: "0x06b3244b086cecC40F1e5A826f736Ded68068a0F", + minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", + erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", + erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.CELO, }, harmonyParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), - minter_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", - erc1155_addr: "0xb9bEECD1A582768711dE1EE7B0A1d582D9d72a6C", - erc721_addr: "0xB82008565FdC7e44609fA118A4a681E92581e680", + minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", + erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", + erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.HARMONY, }, ropstenParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), - minter_addr: "0x8C03d5A667A03Ef2A56E78609E510B6cB33147AD", - erc1155_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", - erc721_addr: "0xe909b9b7667121d774133bcd4C1b6f3693239bc4", + minter_addr: "0x4378A403B0122197EE6ae579bA37Ba392E8cf828", + erc1155_addr: "0x5F6565049969902bC6709Fdb2a89E81F1dAeA204", + erc721_addr: "0x2BA6Aa59933e54ce14aab8Fd4a061a8E66713423", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.ETHEREUM, }, xDaiParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), - minter_addr: "string", - erc1155_addr: "string", - erc721_addr: "string", + minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", + erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", + erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.XDAI, }, @@ -145,10 +145,11 @@ export namespace ChainFactoryConfigs { node_uri: MainNetRpcUri.ELROND, minter_address: "erd1qqqqqqqqqqqqqpgq98ufyktqukxqw79f7n22sr3u6n05u7d7p7tqmzhv32", - esdt_swap_address: "erd1qqqqqqqqqqqqqpgqgc9vfqcdqw0ucu602elf0lt4tysfmxpep7tqhrrr9x", - esdt: "XPNET-738176", - esdt_nft: "XPNFT-676422", - esdt_swap: "WEGLD-071de0", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqgc9vfqcdqw0ucu602elf0lt4tysfmxpep7tqhrrr9x", + esdt: "XPNET-738176", + esdt_nft: "XPNFT-676422", + esdt_swap: "WEGLD-071de0", validators: [ "erd1lwyjz0adjd3vqpcjqs5rntw6sxzf9pvqussadygy2u76mz9ap7tquc0z5s", "erd1tzc9qltpntlgnpetrz58llqsg93dnxety54umln0kuq2k6dajf6qk796wh", From e7e1a30cfaeefad2d658661a9c2186018cd9072e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 19 Dec 2021 19:39:25 +0530 Subject: [PATCH 256/956] feat(algorand): walletconnect: fix sign method --- src/helpers/algorand.ts | 82 ++++++++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 34 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 696bce4f2..b0d710552 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -1,5 +1,5 @@ import WalletConnect from "@walletconnect/client"; -import algosdk, { SuggestedParams } from "algosdk"; +import algosdk, { SuggestedParams } from "algosdk"; import { formatJsonRpcRequest } from "@json-rpc-tools/utils"; import axios from "axios"; import { BigNumber } from "bignumber.js"; @@ -113,7 +113,7 @@ export function algoSignerWrapper( export type FullClaimNft = ClaimNftInfo & { name: string; uri: string; -} +}; export type AlgorandHelper = ChainNonceGet & WrappedNftCheck & @@ -123,9 +123,15 @@ export type AlgorandHelper = ChainNonceGet & ValidateAddress & { algod: algosdk.Algodv2; claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; - claimableNfts(txSocket: AlgorandSocketHelper, owner: string): Promise; + claimableNfts( + txSocket: AlgorandSocketHelper, + owner: string + ): Promise; isOptIn(address: string, nftId: number): Promise; - optInNft(signer: AlgoSignerH, info: ClaimNftInfo): Promise; + optInNft( + signer: AlgoSignerH, + info: ClaimNftInfo + ): Promise; walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; } & Pick, "preTransfer">; @@ -225,10 +231,10 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { }; async function isOptIn(addr: string, nftId: number) { - const user = await algod.accountInformation(addr).do() + const user = await algod.accountInformation(addr).do(); for (let i = 0; i < user["assets"].length; i++) { if (user["assets"][i]["asset-id"] === nftId) { - return true + return true; } } @@ -305,13 +311,15 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { suggestedParams: suggested, }); const encodedTx = Base64.fromUint8Array(callTx.toByte()); - const signedTxCall = await sender.algoSigner.signTxn([{ txn: encodedTx }]); + const signedTxCall = await sender.algoSigner.signTxn([ + { txn: encodedTx }, + ]); const res = await sender.algoSigner.send({ ledger: sender.ledger, tx: signedTxCall[0].blob, }); await waitTxnConfirm(res.txId); - return suggested + return suggested; }, isWrappedNft(nft) { @@ -335,18 +343,20 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { await txSocket.cleanNfts(owner); const claims = await txSocket.claimNfts(owner); - const res = await Promise.all(claims.map(async v => { - const appId = parseInt(v.app_id); - const nftId = parseInt(v.nft_id); - const assetInfo = await algod.getAssetByID(nftId).do(); + const res = await Promise.all( + claims.map(async (v) => { + const appId = parseInt(v.app_id); + const nftId = parseInt(v.nft_id); + const assetInfo = await algod.getAssetByID(nftId).do(); - return { - nftId, - appId, - uri: assetInfo.params.url as string, - name: assetInfo.params.name as string || '' - } - })); + return { + nftId, + appId, + uri: assetInfo.params.url as string, + name: (assetInfo.params.name as string) || "", + }; + }) + ); return res; }, @@ -356,31 +366,35 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { ): AlgoSignerH { const signer: BrowserSigner = { accounts(_) { - return Promise.resolve(connector.accounts.map(s => ({ address: s }))) + return Promise.resolve( + connector.accounts.map((s) => ({ address: s })) + ); }, async signTxn(txns) { - const req = formatJsonRpcRequest( - "algo_signTxn", - [txns] - ); - const signed: Array | null> = await connector.sendCustomRequest(req); - const decoded = signed.flatMap(e => e ? [{ blob: Base64.fromUint8Array(Uint8Array.from(e)) }] : []); + const req = formatJsonRpcRequest("algo_signTxn", [txns]); + const signed: Array = + await connector.sendCustomRequest(req); + const decoded = signed.map((s) => { + return { + blob: s ?? "", + } as SignedTxn; + }); if (decoded.length != txns.length) { throw Error("Couldn't sign all transactions!"); } - + return decoded; }, - send(info: { tx: string}): Promise { + send(info: { tx: string }): Promise { return algod.sendRawTransaction(Base64.toUint8Array(info.tx)).do(); - } - } - + }, + }; + return { algoSigner: signer, address, - ledger: "any" - } - } + ledger: "any", + }; + }, }; } From 5ef7aabda845b522c47ab483efcf1571b3f90c4c Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 20 Dec 2021 18:46:56 +0530 Subject: [PATCH 257/956] initial fuse support --- src/consts.ts | 27 ++++++++++++--------------- src/factory/factories.ts | 9 +++++++++ src/factory/index.ts | 1 + yarn.lock | 2 +- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index dd34c0396..f1aeaffce 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -28,6 +28,7 @@ export enum TestNetRpcUri { HARMONY = "https://api.s0.b.hmny.io", XDAI = "https://sokol.poa.network", // TODO: Algorand + // TODO: Fuse } export enum MainNetRpcUri { @@ -42,6 +43,7 @@ export enum MainNetRpcUri { CELO = "https://forno.celo.org", HARMONY = "https://api.harmony.one", XDAI = "https://rpc.xdaichain.com/", + FUSE = "https://rpc.fuse.io/" // TODO: Algorand } @@ -65,6 +67,7 @@ export namespace Chain { export const HARMONY: Web3Nonce = 0xc; export const XDAI: Web3Nonce = 0xe; export const ALGORAND: AlgoNonce = 0xf; + export const FUSE: Web3Nonce = 0x10; } interface ChainData { @@ -77,7 +80,6 @@ interface ChainData { blockExplorerUrl: string; chainId?: number; currency: SupportedCurrency; - validators: string[]; } interface ChainInfo { @@ -92,9 +94,6 @@ export const CHAIN_INFO: ChainInfo = { constructor: (p) => elrondHelperFactory(p as ElrondParams), blockExplorerUrl: "https://devnet-explorer.elrond.com/transactions/", currency: SupportedCurrency.EGLD, - validators: [ - "erd1qqqqqqqqqqqqqpgqx8dhqmvpnm4f0ylhazn7elwrx7gvmwnnk4asyp83t6", - ], }, 3: { name: "Heco", @@ -104,7 +103,6 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://testnet.hecoinfo.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.HT, - validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 4: { name: "BSC", @@ -114,7 +112,6 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://testnet.bscscan.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.BNB, - validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 5: { name: "Ropsten", @@ -124,7 +121,6 @@ export const CHAIN_INFO: ChainInfo = { decimals: 1e18, blockExplorerUrl: "https://ropsten.etherscan.io/tx", constructor: (p) => web3HelperFactory(p as Web3Params), - validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 6: { name: "Avalanche", @@ -134,7 +130,6 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://cchain.explorer.avax-test.network/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.AVAX, - validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 7: { name: "Polygon", @@ -144,7 +139,6 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://mumbai.polygonscan.com/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.MATIC, - validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 8: { name: "Fantom", @@ -154,7 +148,6 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://explorer.testnet.fantom.network/transactions", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.FTM, - validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 9: { name: "Tron", @@ -163,7 +156,6 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://shasta.tronscan.org/#/transaction", constructor: (p) => tronHelperFactory(p as TronParams), currency: SupportedCurrency.TRX, - validators: ["TDESCaeTLQwvXv1GDz9Q1AKDMAmDk4AF6x"], }, 11: { name: "Celo", @@ -173,7 +165,6 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.CELO, - validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 12: { name: "Harmony", @@ -183,7 +174,6 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://explorer.pops.one/tx", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.CELO, - validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, // 13: { // name: "Ontology", @@ -203,7 +193,6 @@ export const CHAIN_INFO: ChainInfo = { blockExplorerUrl: "https://blockscout.com/xdai/mainnet/", constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.STAKE, - validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], }, 15: { name: "Algorand", @@ -212,9 +201,17 @@ export const CHAIN_INFO: ChainInfo = { chainId: undefined, blockExplorerUrl: "https://algoexplorer.io/tx", currency: SupportedCurrency.ALGO, - validators: ["BO4OK76FDVM4YUXLY4YPWBV4HDA6DBVS5RDDCGRNEXBQ2YQTCZPUBWY5Z4"], constructor: (p) => Promise.resolve(algorandHelper(p as AlgorandParams)), }, + 16: { + name: "FUSE", + nonce: 0x10, + decimals: 1e18, + chainId: undefined, + blockExplorerUrl: "https://explorer.fuse.io/tx", + currency: SupportedCurrency.FUSE, + constructor: (p) => web3HelperFactory(p as Web3Params) + } }; export const Config: AppConfig = { diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 4dc1efed0..a30dca0ae 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -250,5 +250,14 @@ export namespace ChainFactoryConfigs { sendNftAppId: 458971166, algodPort: 443, }, + fuseParams: { + middleware_uri, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FUSE), + minter_addr: "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", + erc1155_addr: "0xAcE819D882CEEF314191DaD13D2Bf3731Df80988", + erc721_addr: "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", + validators: EVM_VALIDATORS, + nonce: Chain.FUSE + } }); } diff --git a/src/factory/index.ts b/src/factory/index.ts index b208106cd..61127c1af 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -248,6 +248,7 @@ export interface ChainParams { ontologyParams: Web3Params; xDaiParams: Web3Params; algorandParams: AlgorandParams; + fuseParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; diff --git a/yarn.lock b/yarn.lock index 409fe0bdb..9e3dee616 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2115,7 +2115,7 @@ crypt@0.0.2: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#6174eb2109d76e16286b12054573b3eacc2f797b" + resolved "git+https://github.com/xp-network/exchange-rate#f04451e586eb8643cc134d07c43ce07a2587da1f" dependencies: axios "^0.21.1" From a5687061309cd77e34a84273a859b9f066005900 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 20 Dec 2021 19:04:43 +0530 Subject: [PATCH 258/956] algorand: add myAlgoSupport --- package.json | 1 + src/helpers/algorand.ts | 26 ++++++++++++++++++++++++++ yarn.lock | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) diff --git a/package.json b/package.json index fc571d6b1..707f848bd 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "dependencies": { "@elrondnetwork/erdjs": "^8.0.1-alpha.8", "@json-rpc-tools/utils": "^1.7.6", + "@randlabs/myalgo-connect": "^1.1.1", "@walletconnect/client": "^1.7.0", "algosdk": "^1.12.0", "axios": "^0.21.1", diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index b0d710552..8887cf394 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -15,6 +15,7 @@ import { ValidateAddress, WrappedNftCheck, } from ".."; +import MyAlgoConnect from "@randlabs/myalgo-connect"; type TxResp = { txId: string; @@ -133,6 +134,7 @@ export type AlgorandHelper = ChainNonceGet & info: ClaimNftInfo ): Promise; walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; + myAlgoSigner(myAlgo: MyAlgoConnect, address: string): AlgoSignerH; } & Pick, "preTransfer">; export type AlgorandParams = { @@ -396,5 +398,29 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { ledger: "any", }; }, + myAlgoSigner(myAlgo, address): AlgoSignerH { + const signer: BrowserSigner = { + async accounts(_) { + const accs = await myAlgo.connect() + return accs; + }, + async signTxn(txns) { + const stxs = await myAlgo.signTransaction(txns.map(({ txn }) => txn)); + return stxs.map(tx => ({ + txID: tx.txID, + blob: Base64.fromUint8Array(tx.blob) + })); + }, + send(info: { tx: string }): Promise { + return algod.sendRawTransaction(Base64.toUint8Array(info.tx)).do(); + } + } + + return { + algoSigner: signer, + address, + ledger: "any" + }; + } }; } diff --git a/yarn.lock b/yarn.lock index 9e3dee616..4cf376ff8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1124,6 +1124,19 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= +"@randlabs/communication-bridge@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@randlabs/communication-bridge/-/communication-bridge-1.0.0.tgz#9b1c0f440cf88ede8d58eb2ce641982ecb32bea9" + integrity sha512-CuJNwtMTG1LHR1LQNWUPv+8xPUdkRY9p61wGJEp8J/N3q8djmnMySvSQlyVqLBvXsTPKmYc0ZmfXEXCpb5P5Cw== + +"@randlabs/myalgo-connect@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.1.1.tgz#08e76a95b63f106e4cc54381748a330bc6dc9935" + integrity sha512-knW4eGfu/N5tlgRo+LP7ehNQ3zg6eL2fLJocRnAs0s2pWLmPXOAeXYhYgW0eV2VvxgLF/0nzIunY/dwei7k7JQ== + dependencies: + "@randlabs/communication-bridge" "^1.0.0" + belter "^1.0.170" + "@sindresorhus/is@^2.0.0": version "2.1.1" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" @@ -1742,6 +1755,15 @@ before-after-hook@^2.0.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== +belter@^1.0.170: + version "1.0.177" + resolved "https://registry.yarnpkg.com/belter/-/belter-1.0.177.tgz#4d49b6a7797c19a12eed233f408934964b808e49" + integrity sha512-oJCyvKkO6Cz+ocjEVdyYe6itIgcgS+AgONrEVexErIfFx6y4Q8Uv5699mvMkTWLY5wR72BXoCYZFkb17xJ/7dA== + dependencies: + cross-domain-safe-weakmap "^1" + cross-domain-utils "^2" + zalgo-promise "^1" + big-integer@^1.6.17: version "1.6.48" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" @@ -2088,6 +2110,20 @@ create-hmac@1.1.7, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +cross-domain-safe-weakmap@^1: + version "1.0.29" + resolved "https://registry.yarnpkg.com/cross-domain-safe-weakmap/-/cross-domain-safe-weakmap-1.0.29.tgz#0847975c27d9e1cc840f24c1745311958df98022" + integrity sha512-VLoUgf2SXnf3+na8NfeUFV59TRZkIJqCIATaMdbhccgtnTlSnHXkyTRwokngEGYdQXx8JbHT9GDYitgR2sdjuA== + dependencies: + cross-domain-utils "^2.0.0" + +cross-domain-utils@^2, cross-domain-utils@^2.0.0: + version "2.0.38" + resolved "https://registry.yarnpkg.com/cross-domain-utils/-/cross-domain-utils-2.0.38.tgz#2eaf321c4dfdb61596805ca4233fde4400cb6377" + integrity sha512-zZfi3+2EIR9l4chrEiXI2xFleyacsJf8YMLR1eJ0Veb5FTMXeJ3DpxDjZkto2FhL/g717WSELqbptNSo85UJDw== + dependencies: + zalgo-promise "^1.0.11" + cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -4850,3 +4886,8 @@ yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +zalgo-promise@^1, zalgo-promise@^1.0.11: + version "1.0.48" + resolved "https://registry.yarnpkg.com/zalgo-promise/-/zalgo-promise-1.0.48.tgz#9e33eef502d5ed9f5a09fc5728c833c3e87afa2e" + integrity sha512-LLHANmdm53+MucY9aOFIggzYtUdkSBFxUsy4glTTQYNyK6B3uCPWTbfiGvSrEvLojw0mSzyFJ1/RRLv+QMNdzQ== From c6027b6e6a21b794de066549d5d1cc4bc711ad0e Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 20 Dec 2021 20:28:30 +0530 Subject: [PATCH 259/956] factory: fixes for fuse --- src/factory/index.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 61127c1af..35b971581 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -294,6 +294,7 @@ function mapNonceToParams( cToP.set(13, chainParams.ontologyParams); cToP.set(14, chainParams.xDaiParams); cToP.set(15, chainParams.algorandParams); + cToP.set(16, chainParams.fuseParams); return cToP; } /** @@ -439,6 +440,12 @@ export function ChainFactory( case 14: { return Chain.XDAI; } + case 15: { + return Chain.ALGORAND + } + case 16: { + return Chain.FUSE + } default: { throw Error(`unknown chain ${nonce}`); } From d65000bf8aa4832c20077ed76188b44313a1f27f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 21 Dec 2021 19:12:50 +0530 Subject: [PATCH 260/956] feat(chains): testnet: add unique --- src/consts.ts | 8 +++++--- src/factory/factories.ts | 13 +++++++++++-- src/factory/index.ts | 34 +++++++++++++++++----------------- 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index f1aeaffce..8ea8738ca 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -27,6 +27,7 @@ export enum TestNetRpcUri { CELO = "https://alfajores-forno.celo-testnet.org", HARMONY = "https://api.s0.b.hmny.io", XDAI = "https://sokol.poa.network", + UNIQUE = "https://rpc-opal.unique.network/", // TODO: Algorand // TODO: Fuse } @@ -43,7 +44,7 @@ export enum MainNetRpcUri { CELO = "https://forno.celo.org", HARMONY = "https://api.harmony.one", XDAI = "https://rpc.xdaichain.com/", - FUSE = "https://rpc.fuse.io/" + FUSE = "https://rpc.fuse.io/", // TODO: Algorand } @@ -68,6 +69,7 @@ export namespace Chain { export const XDAI: Web3Nonce = 0xe; export const ALGORAND: AlgoNonce = 0xf; export const FUSE: Web3Nonce = 0x10; + export const UNIQUE: Web3Nonce = 0x11; } interface ChainData { @@ -210,8 +212,8 @@ export const CHAIN_INFO: ChainInfo = { chainId: undefined, blockExplorerUrl: "https://explorer.fuse.io/tx", currency: SupportedCurrency.FUSE, - constructor: (p) => web3HelperFactory(p as Web3Params) - } + constructor: (p) => web3HelperFactory(p as Web3Params), + }, }; export const Config: AppConfig = { diff --git a/src/factory/factories.ts b/src/factory/factories.ts index a30dca0ae..24720e42c 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -138,6 +138,15 @@ export namespace ChainFactoryConfigs { sendNftAppId: 458971166, algodPort: 443, }, + uniqueParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.UNIQUE), + nonce: Chain.UNIQUE, + erc1155_addr: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + validators: EVM_TESTNET_VALIDATORS, + middleware_uri, + }, }); export const MainNet: () => Partial = () => ({ @@ -257,7 +266,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0xAcE819D882CEEF314191DaD13D2Bf3731Df80988", erc721_addr: "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", validators: EVM_VALIDATORS, - nonce: Chain.FUSE - } + nonce: Chain.FUSE, + }, }); } diff --git a/src/factory/index.ts b/src/factory/index.ts index 35b971581..cc839aecf 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -114,7 +114,7 @@ export type ChainFactory = { nft: NftInfo, sender: SignerF, receiver: string, - fee?: BigNumber, + fee?: BigNumber ): Promise; /** * Mints an NFT on the chain. @@ -191,12 +191,10 @@ export type ChainFactory = { claimer: AlgoSignerH ): Promise; /** - * + * * @param claimer: the account which can claim the nfts */ - claimableAlgorandNfts( - claimer: string - ): Promise + claimableAlgorandNfts(claimer: string): Promise; /** * Returns a raw txn (hopefully Typed JS Objects in all chains) which can be sent over the wire for signing and broadcasting. * @param from The chain from which the NFT is being sent. @@ -249,6 +247,7 @@ export interface ChainParams { xDaiParams: Web3Params; algorandParams: AlgorandParams; fuseParams: Web3Params; + uniqueParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -295,6 +294,7 @@ function mapNonceToParams( cToP.set(14, chainParams.xDaiParams); cToP.set(15, chainParams.algorandParams); cToP.set(16, chainParams.fuseParams); + cToP.set(17, chainParams.uniqueParams); return cToP; } /** @@ -441,10 +441,10 @@ export function ChainFactory( return Chain.XDAI; } case 15: { - return Chain.ALGORAND + return Chain.ALGORAND; } case 16: { - return Chain.FUSE + return Chain.FUSE; } default: { throw Error(`unknown chain ${nonce}`); @@ -520,12 +520,12 @@ export function ChainFactory( const nonce = chain.getNonce(); if (nonce != Chain.ALGORAND || nonce != Chain.ELROND) { - data = data.filter((v: any) => v.native.contractType != "ERC1155") + data = data.filter((v: any) => v.native.contractType != "ERC1155"); } return data; }, - transferNft: async (fromChain, toChain, nft, sender, receiver, fee ) => { + transferNft: async (fromChain, toChain, nft, sender, receiver, fee) => { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); if (!fee) { @@ -543,7 +543,7 @@ export function ChainFactory( sender, receiver, nft, - fee, + fee ); return res; } else { @@ -553,7 +553,6 @@ export function ChainFactory( receiver, nft, fee - ); return res; } @@ -568,15 +567,16 @@ export function ChainFactory( waitAlgorandNft: async (origin, hash, claimer) => { const action = await origin.extractAction(hash); - return await txSocket.waitAlgorandNft(origin.getNonce(), claimer.address, action); + return await txSocket.waitAlgorandNft( + origin.getNonce(), + claimer.address, + action + ); }, claimableAlgorandNfts: async (claimer) => { const algo: AlgorandHelper = await inner(Chain.ALGORAND); - return await algo.claimableNfts( - txSocket, - claimer - ); - } + return await algo.claimableNfts(txSocket, claimer); + }, }; } /** From cb49ac979cd399f4dbdbf5831fc6100ed12ab9d3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 22 Dec 2021 15:16:53 +0530 Subject: [PATCH 261/956] chore(packages): import taquito for tezos --- package.json | 1 + yarn.lock | 163 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 160 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 707f848bd..724439f04 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@elrondnetwork/erdjs": "^8.0.1-alpha.8", "@json-rpc-tools/utils": "^1.7.6", "@randlabs/myalgo-connect": "^1.1.1", + "@taquito/taquito": "^11.1.0", "@walletconnect/client": "^1.7.0", "algosdk": "^1.12.0", "axios": "^0.21.1", diff --git a/yarn.lock b/yarn.lock index 4cf376ff8..91a728bf1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1142,6 +1142,63 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== +"@stablelib/binary@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== + dependencies: + "@stablelib/int" "^1.0.1" + +"@stablelib/blake2b@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/blake2b/-/blake2b-1.0.1.tgz#0045a77e182c4cf3260bc9b533fc4cd5c287f8ea" + integrity sha512-B3KyKoBAjkIFeH7romcF96i+pVFYk7K2SBQ1pZvaxV+epSBXJ+n0C66esUhyz6FF+5FbdQVm77C5fzGFcEZpKA== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/ed25519@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.2.tgz#937a88a2f73a71d9bdc3ea276efe8954776ae0f4" + integrity sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ== + dependencies: + "@stablelib/random" "^1.0.1" + "@stablelib/sha512" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hash@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" + integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== + +"@stablelib/int@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== + +"@stablelib/random@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.1.tgz#4357a00cb1249d484a9a71e6054bc7b8324a7009" + integrity sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha512@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" + integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/wipe@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== + "@szmarczak/http-timer@^4.0.0": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1149,6 +1206,64 @@ dependencies: defer-to-connect "^2.0.0" +"@taquito/http-utils@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-11.1.0.tgz#43e53b4f57f4f1aec355c84462ee1839ca6277cf" + integrity sha512-5kig7XKDcWlAxPx0qkGxyaqvS/rcz7DldcqcNvxAq+Z9Bb5viWIXQm4EaBKZ0KDh5PYjSS0HpbpvoGagIGwowQ== + dependencies: + xhr2-cookies "^1.1.0" + +"@taquito/michel-codec@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@taquito/michel-codec/-/michel-codec-11.1.0.tgz#a32555ad70d931fd7c2cf3b03d57ba44bf77abe7" + integrity sha512-Gh1ehstk2OOixeQfc3/XQLPrI4Nr/8gJCWm/Zj5FWtn0GTsxGnZR6W4EjqbWF290b4LMO8FrOAc68+I3EvPaFQ== + +"@taquito/michelson-encoder@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@taquito/michelson-encoder/-/michelson-encoder-11.1.0.tgz#b3cd4d88e140f9a6a1b5d3b01f4806aee381d8df" + integrity sha512-XYoegKuQ2wnlQCMkaghI+QAVKH3xnIt7x3ChJvvnbpcKOHihFgWawK0nx1HKoz8GyW6+ZeOC2DgzP5uW0C6WRw== + dependencies: + "@taquito/rpc" "^11.1.0" + "@taquito/utils" "^11.1.0" + bignumber.js "^9.0.1" + fast-json-stable-stringify "^2.1.0" + +"@taquito/rpc@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@taquito/rpc/-/rpc-11.1.0.tgz#ec7bc2de1848330ac69f80f87f22655759d856a7" + integrity sha512-AUP1eUmjwwWzCSY00dIzGA2Xe9riO6kGG364TT3626qjDzEE/PxVy65oCiNC3BiXdtO4memQzdVI3gcKZYS3hA== + dependencies: + "@taquito/http-utils" "^11.1.0" + bignumber.js "^9.0.1" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + +"@taquito/taquito@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-11.1.0.tgz#96c86fb6c8b7425b0faccca8150fd5127fe278d8" + integrity sha512-aGibJBTi+kCCEhz3E+wHyJ6Pf/n30Tv/m/ag2ZMoWMYxWzOHepfkYaPQ6nq4eXUcWzAAxEuAtvgJBUB2pkHlog== + dependencies: + "@taquito/http-utils" "^11.1.0" + "@taquito/michel-codec" "^11.1.0" + "@taquito/michelson-encoder" "^11.1.0" + "@taquito/rpc" "^11.1.0" + "@taquito/utils" "^11.1.0" + bignumber.js "^9.0.1" + rxjs "^6.6.3" + +"@taquito/utils@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-11.1.0.tgz#f179881e0e211dfb2764fbf2ea4fd467ae3426c5" + integrity sha512-65Ms8lRD7Y7E4X9wqDugtoskRhGvonn4MTVfuWCZJEDHR6iKhy5SO/fy31wWvTc8281BsNelvniiItHgLx69wg== + dependencies: + "@stablelib/blake2b" "^1.0.1" + "@stablelib/ed25519" "^1.0.2" + blakejs "^1.1.0" + bs58check "^2.1.2" + buffer "^6.0.3" + elliptic "^6.5.4" + typedarray-to-buffer "^4.0.0" + "@types/cacheable-request@^6.0.1": version "6.0.2" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" @@ -1735,6 +1850,13 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base-x@^3.0.2: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + base64-arraybuffer@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" @@ -1833,6 +1955,11 @@ blake2b@2.1.3: blake2b-wasm "^1.1.0" nanoassert "^1.0.0" +blakejs@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" + integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== + bluebird@~3.4.1: version "3.4.7" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" @@ -1868,6 +1995,22 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +bs58@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + dependencies: + base-x "^3.0.2" + +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + btoa-lite@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" @@ -1886,7 +2029,7 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -buffer@^6.0.2: +buffer@^6.0.2, buffer@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -2072,7 +2215,7 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -cookiejar@^2.1.2: +cookiejar@^2.1.1, cookiejar@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== @@ -2680,7 +2823,7 @@ fast-glob@^3.1.1: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -4142,7 +4285,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@6: +rxjs@6, rxjs@^6.6.3: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -4615,6 +4758,11 @@ typedarray-to-buffer@3.1.5: dependencies: is-typedarray "^1.0.0" +typedarray-to-buffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-4.0.0.tgz#cdd2933c61dd3f5f02eda5d012d441f95bfeb50a" + integrity sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ== + typedoc@^0.22.6: version "0.22.6" resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.6.tgz#1122f83a6eb5cd7dbb26d1924de1f9de9e8c7c7e" @@ -4836,6 +4984,13 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== +xhr2-cookies@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" + integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= + dependencies: + cookiejar "^2.1.1" + "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": version "0.1.0" resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#091246c404973dc9024895d28f999b71a702f82e" From 362f9ca3e18c92f45f48bfb96ed62537f5bac9ae Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 22 Dec 2021 17:06:40 +0530 Subject: [PATCH 262/956] feat(chains): helpers: add support for tezos --- src/helpers/tezos.ts | 106 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 src/helpers/tezos.ts diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts new file mode 100644 index 000000000..4f93345d8 --- /dev/null +++ b/src/helpers/tezos.ts @@ -0,0 +1,106 @@ +import { + BalanceCheck, + EstimateTxFees, + MintNft, + NftMintArgs, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from ".."; +import { Signer, TezosToolkit, TransactionOperation } from "@taquito/taquito"; +import { validatePublicKey } from "@taquito/utils"; +import BigNumber from "bignumber.js"; + +type TezosSigner = Signer; + +type TezosNftInfo = { + contract: string; + id: string; +}; + +const NFT_TRANSFER_COST = new BigNumber(45000000); +const NFT_UNFREEZE_COST = new BigNumber(45000000); + +export type TezosHelper = TransferNftForeign< + TezosSigner, + string, + BigNumber, + TezosNftInfo, + TransactionOperation +> & + MintNft & + BalanceCheck & + UnfreezeForeignNft< + TezosSigner, + string, + BigNumber, + TezosNftInfo, + TransactionOperation + > & + ValidateAddress & + EstimateTxFees; + +export type TezosParams = { + rpc: string; + xpnftAddress: string; + bridgeAddress: string; +}; + +export async function tezosHelperFactory({ + rpc, + xpnftAddress, + bridgeAddress, +}: TezosParams): Promise { + const Tezos = new TezosToolkit(rpc); + + const bridge = await Tezos.contract.at(bridgeAddress); + const xpnft = await Tezos.contract.at(xpnftAddress); + + return { + async transferNftToForeign(sender, chain, to, nft, fee) { + Tezos.setSignerProvider(sender); + const response = await bridge.methods + .freeze_fa2(nft.native.contract, nft.native.id, chain, to) + .send({ + amount: fee.toNumber(), + }); + return response; + }, + async balance(address) { + return Tezos.tz.getBalance(address); + }, + async unfreezeWrappedNft(sender, to, nft, fee) { + Tezos.setSignerProvider(sender); + const response = await bridge.methods + .withdraw_nft(to, nft.native.id) + .send({ + amount: fee.toNumber(), + }); + return response; + }, + async mintNft(signer, { identifier, attrs, contract, uris }) { + Tezos.setSignerProvider(signer); + const response = xpnft.methods + .mint({ + token_id: identifier, + address: contract, + metadata: { + uri: uris[0], + attrs, + }, + amount: 1, + }) + .send(); + return response; + }, + async validateAddress(adr) { + return Promise.resolve(validatePublicKey(adr) === 3); + }, + async estimateValidateTransferNft(_to, _uri) { + return Promise.resolve(NFT_TRANSFER_COST); + }, + async estimateValidateUnfreezeNft(_to, _uri) { + return Promise.resolve(NFT_UNFREEZE_COST); + }, + }; +} From 40d8016d216198118eeaf840e2d58724e90da0f2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 22 Dec 2021 19:34:45 +0530 Subject: [PATCH 263/956] chore(packages): bump exchange-rate Pull the changes to Support Unique (OPl) --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 91a728bf1..7a7e76376 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2294,7 +2294,7 @@ crypt@0.0.2: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#f04451e586eb8643cc134d07c43ce07a2587da1f" + resolved "git+https://github.com/xp-network/exchange-rate#6d7200e877ba2b15396f428795ad80c628b28dbd" dependencies: axios "^0.21.1" From 4ae94508cfeb839f2a7adadb6dab6e5e7e32c7e2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 22 Dec 2021 20:10:49 +0530 Subject: [PATCH 264/956] feat(factory): prepare factory for tezos --- src/consts.ts | 20 +++++++++++++++++++- src/factory/factories.ts | 6 ++++++ src/factory/index.ts | 21 +++++++++++++-------- src/helpers/tezos.ts | 6 ++---- 4 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 8ea8738ca..2454c099a 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -13,6 +13,7 @@ import { algorandHelper, } from "./helpers/algorand"; import { AppConfig } from "./factory"; +import { TezosHelper, TezosParams } from "./helpers/tezos"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -28,6 +29,7 @@ export enum TestNetRpcUri { HARMONY = "https://api.s0.b.hmny.io", XDAI = "https://sokol.poa.network", UNIQUE = "https://rpc-opal.unique.network/", + TEZOS = "https://hangzhounet.smartpy.io", // TODO: Algorand // TODO: Fuse } @@ -54,6 +56,7 @@ export type ElrondNonce = ChainNonce; export type Web3Nonce = ChainNonce; export type TronNonce = ChainNonce; export type AlgoNonce = ChainNonce; +export type TezosNonce = ChainNonce; export namespace Chain { export const ELROND: ElrondNonce = 2; @@ -70,6 +73,7 @@ export namespace Chain { export const ALGORAND: AlgoNonce = 0xf; export const FUSE: Web3Nonce = 0x10; export const UNIQUE: Web3Nonce = 0x11; + export const TEZOS: TezosNonce = 0x12; } interface ChainData { @@ -77,7 +81,12 @@ interface ChainData { nonce: number; decimals: number; constructor: ( - params: Web3Params | TronParams | ElrondParams | AlgorandParams + params: + | Web3Params + | TronParams + | ElrondParams + | AlgorandParams + | TezosParams ) => Promise; blockExplorerUrl: string; chainId?: number; @@ -214,6 +223,15 @@ export const CHAIN_INFO: ChainInfo = { currency: SupportedCurrency.FUSE, constructor: (p) => web3HelperFactory(p as Web3Params), }, + 17: { + name: "Unique", + nonce: 0x11, + decimals: 1e18, + chainId: 8888, + blockExplorerUrl: "CANT FIND", + constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.OPL, + }, }; export const Config: AppConfig = { diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 24720e42c..c17c84914 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -3,6 +3,7 @@ import { ChainParams } from "."; import TronWeb from "tronweb"; import { Chain, MainNetRpcUri, TestNetRpcUri } from "../consts"; import { ethers } from "ethers"; +import { TezosToolkit } from "@taquito/taquito"; const EVM_VALIDATORS = [ "0xadFF46B0064a490c1258506d91e4325A277B22aE", @@ -147,6 +148,11 @@ export namespace ChainFactoryConfigs { validators: EVM_TESTNET_VALIDATORS, middleware_uri, }, + tezosParams: { + bridgeAddress: "KT1MRYxBimYh1PUt3LBhEAmvr7YMK2L7kqCL", + Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), + xpnftAddress: "KT1F7THd96y39MYKkTXmLyWkDZQ3H6QgubLh", + }, }); export const MainNet: () => Partial = () => ({ diff --git a/src/factory/index.ts b/src/factory/index.ts index cc839aecf..420692155 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -50,6 +50,7 @@ import { } from "../helpers/algorand"; import algosdk from "algosdk"; import { Base64 } from "js-base64"; +import { TezosParams } from "../helpers/tezos"; export type CrossChainHelper = | ElrondHelper @@ -248,6 +249,7 @@ export interface ChainParams { algorandParams: AlgorandParams; fuseParams: Web3Params; uniqueParams: Web3Params; + tezosParams: TezosParams; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -268,16 +270,18 @@ export interface AppConfig { tronScanUri: string; } +type AllParams = + | Web3Params + | ElrondParams + | TronParams + | AlgorandParams + | TezosParams + | undefined; + function mapNonceToParams( chainParams: Partial -): Map< - number, - Web3Params | ElrondParams | TronParams | AlgorandParams | undefined -> { - const cToP = new Map< - number, - Web3Params | ElrondParams | TronParams | AlgorandParams | undefined - >(); +): Map { + const cToP = new Map(); cToP.set(2, chainParams.elrondParams); cToP.set(3, chainParams.hecoParams); @@ -295,6 +299,7 @@ function mapNonceToParams( cToP.set(15, chainParams.algorandParams); cToP.set(16, chainParams.fuseParams); cToP.set(17, chainParams.uniqueParams); + cToP.set(18, chainParams.tezosParams); return cToP; } /** diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 4f93345d8..641765305 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -41,18 +41,16 @@ export type TezosHelper = TransferNftForeign< EstimateTxFees; export type TezosParams = { - rpc: string; + Tezos: TezosToolkit; xpnftAddress: string; bridgeAddress: string; }; export async function tezosHelperFactory({ - rpc, + Tezos, xpnftAddress, bridgeAddress, }: TezosParams): Promise { - const Tezos = new TezosToolkit(rpc); - const bridge = await Tezos.contract.at(bridgeAddress); const xpnft = await Tezos.contract.at(xpnftAddress); From 1de5c016d9d28684bbd0a19049a14cef468e027c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 22 Dec 2021 20:31:19 +0530 Subject: [PATCH 265/956] feat(tezos): fix some things --- src/factory/factories.ts | 5 +++++ src/helpers/tezos.ts | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index c17c84914..830fb84ca 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -152,6 +152,11 @@ export namespace ChainFactoryConfigs { bridgeAddress: "KT1MRYxBimYh1PUt3LBhEAmvr7YMK2L7kqCL", Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), xpnftAddress: "KT1F7THd96y39MYKkTXmLyWkDZQ3H6QgubLh", + validators: [ + "tz1e4QByQTYQyj98cBiM42hejkMWB2Pg6iXg", + "tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb", + "tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6", + ], }, }); diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 641765305..220b41e1b 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -1,11 +1,13 @@ import { BalanceCheck, + ChainNonceGet, EstimateTxFees, MintNft, NftMintArgs, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, + WrappedNftCheck, } from ".."; import { Signer, TezosToolkit, TransactionOperation } from "@taquito/taquito"; import { validatePublicKey } from "@taquito/utils"; @@ -38,12 +40,15 @@ export type TezosHelper = TransferNftForeign< TransactionOperation > & ValidateAddress & - EstimateTxFees; + EstimateTxFees & + ChainNonceGet & + WrappedNftCheck; export type TezosParams = { Tezos: TezosToolkit; xpnftAddress: string; bridgeAddress: string; + validators: string[]; }; export async function tezosHelperFactory({ @@ -94,6 +99,12 @@ export async function tezosHelperFactory({ async validateAddress(adr) { return Promise.resolve(validatePublicKey(adr) === 3); }, + isWrappedNft(nft) { + return nft.native.contract.toLowerCase() === xpnftAddress.toLowerCase(); + }, + getNonce() { + return 0x11; + }, async estimateValidateTransferNft(_to, _uri) { return Promise.resolve(NFT_TRANSFER_COST); }, From 880db5e2d65000da1c1d3e8591e8beee293e67cc Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 22 Dec 2021 20:50:45 +0530 Subject: [PATCH 266/956] feat(chain-info): add tezos(utx) --- src/consts.ts | 10 +++++++++- src/factory/index.ts | 5 +++-- yarn.lock | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 2454c099a..75a605b29 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -13,7 +13,7 @@ import { algorandHelper, } from "./helpers/algorand"; import { AppConfig } from "./factory"; -import { TezosHelper, TezosParams } from "./helpers/tezos"; +import { TezosHelper, tezosHelperFactory, TezosParams } from "./helpers/tezos"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -232,6 +232,14 @@ export const CHAIN_INFO: ChainInfo = { constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.OPL, }, + 18: { + name: "Tezos", + nonce: 0x12, + decimals: 1e6, + constructor: (p) => tezosHelperFactory(p as TezosParams), + currency: SupportedCurrency.XTZ, + blockExplorerUrl: "https://tezblock.io/transaction", + }, }; export const Config: AppConfig = { diff --git a/src/factory/index.ts b/src/factory/index.ts index 420692155..06c4ce227 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -50,13 +50,14 @@ import { } from "../helpers/algorand"; import algosdk from "algosdk"; import { Base64 } from "js-base64"; -import { TezosParams } from "../helpers/tezos"; +import { TezosHelper, TezosParams } from "../helpers/tezos"; export type CrossChainHelper = | ElrondHelper | Web3Helper | TronHelper - | AlgorandHelper; + | AlgorandHelper + | TezosHelper; type NftUriChain = ChainNonceGet & WrappedNftCheck; diff --git a/yarn.lock b/yarn.lock index 7a7e76376..9328b156f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2294,7 +2294,7 @@ crypt@0.0.2: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#6d7200e877ba2b15396f428795ad80c628b28dbd" + resolved "git+https://github.com/xp-network/exchange-rate#8ccbee8ae52cbd7d44a82708364384dad7ca58f9" dependencies: axios "^0.21.1" From 6e11323badfee9972bb77ed2c65d4ee3d5109652 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 23 Dec 2021 14:34:56 +0530 Subject: [PATCH 267/956] feat(tezos): add gas estimation --- src/helpers/tezos.ts | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 220b41e1b..eae52b861 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -9,9 +9,15 @@ import { ValidateAddress, WrappedNftCheck, } from ".."; -import { Signer, TezosToolkit, TransactionOperation } from "@taquito/taquito"; +import { + Signer, + TezosToolkit, + TransactionOperation, + TransferParams, +} from "@taquito/taquito"; import { validatePublicKey } from "@taquito/utils"; import BigNumber from "bignumber.js"; +import axios from "axios"; type TezosSigner = Signer; @@ -20,6 +26,11 @@ type TezosNftInfo = { id: string; }; +const randomAction = () => + new BigNumber( + Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000)) + ); + const NFT_TRANSFER_COST = new BigNumber(45000000); const NFT_UNFREEZE_COST = new BigNumber(45000000); @@ -55,10 +66,23 @@ export async function tezosHelperFactory({ Tezos, xpnftAddress, bridgeAddress, + validators, }: TezosParams): Promise { const bridge = await Tezos.contract.at(bridgeAddress); const xpnft = await Tezos.contract.at(xpnftAddress); + const estimateGas = async (validators: string[], op: TransferParams) => { + let fee = 0; + + for (const [i, addr] of validators.entries()) { + op.source = addr; + let tf = (await Tezos.estimate.transfer(op)).totalCost; + if (i == validators.length - 1 && validators.length != 1) tf = tf * 2; + fee = fee + tf; + } + return new BigNumber(fee.toString()); + }; + return { async transferNftToForeign(sender, chain, to, nft, fee) { Tezos.setSignerProvider(sender); @@ -105,11 +129,21 @@ export async function tezosHelperFactory({ getNonce() { return 0x11; }, - async estimateValidateTransferNft(_to, _uri) { - return Promise.resolve(NFT_TRANSFER_COST); + async estimateValidateTransferNft(to, uri) { + const res = (await axios.get(uri)).data; + const { contract } = res; + const utx = bridge.methods + .validate_transfer_nft(randomAction(), to, res, contract) + .toTransferParams(); + return estimateGas(validators, utx); }, - async estimateValidateUnfreezeNft(_to, _uri) { - return Promise.resolve(NFT_UNFREEZE_COST); + async estimateValidateUnfreezeNft(to, uri) { + const res = (await axios.get(uri)).data; + const { contract, tokenId } = res; + const utx = bridge.methods + .validate_unfreeze_nft(randomAction(), to, tokenId, contract) + .toTransferParams(); + return estimateGas(validators, utx); }, }; } From c87532f3a84083f482db5018068f03b277f81da4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 23 Dec 2021 16:34:46 +0530 Subject: [PATCH 268/956] feat(tezos): modify gas estimation --- src/factory/index.ts | 6 +++--- src/helpers/algorand.ts | 16 ++++++++-------- src/helpers/chain.ts | 6 +++--- src/helpers/elrond.ts | 9 ++++++--- src/helpers/tezos.ts | 19 ++++++++++--------- src/helpers/tron.ts | 8 ++++---- src/helpers/web3.ts | 31 ++++++++++++++++++++----------- 7 files changed, 54 insertions(+), 41 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 06c4ce227..454c1ed4f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -69,7 +69,7 @@ type FullChain = TransferNftForeign< Resp > & UnfreezeForeignNft & - EstimateTxFees & + EstimateTxFees & NftUriChain & ValidateAddress; @@ -362,7 +362,7 @@ export function ChainFactory( if (fromChain.isWrappedNft(nft)) { const estimate = await toChain.estimateValidateUnfreezeNft( receiver, - nft.uri + nft as unknown as NftInfo ); const conv = await calcExchangeFees( fromChain.getNonce(), @@ -373,7 +373,7 @@ export function ChainFactory( } else { const estimate = await toChain.estimateValidateTransferNft( receiver, - "a".repeat(55) // approx size of uri + nft as unknown as NftInfo ); const conv = await calcExchangeFees( fromChain.getNonce(), diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 8887cf394..b62e587b6 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -120,7 +120,7 @@ export type AlgorandHelper = ChainNonceGet & WrappedNftCheck & TransferNftForeign & UnfreezeForeignNft & - EstimateTxFees & + EstimateTxFees & ValidateAddress & { algod: algosdk.Algodv2; claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; @@ -401,26 +401,26 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { myAlgoSigner(myAlgo, address): AlgoSignerH { const signer: BrowserSigner = { async accounts(_) { - const accs = await myAlgo.connect() + const accs = await myAlgo.connect(); return accs; }, async signTxn(txns) { const stxs = await myAlgo.signTransaction(txns.map(({ txn }) => txn)); - return stxs.map(tx => ({ + return stxs.map((tx) => ({ txID: tx.txID, - blob: Base64.fromUint8Array(tx.blob) + blob: Base64.fromUint8Array(tx.blob), })); }, send(info: { tx: string }): Promise { return algod.sendRawTransaction(Base64.toUint8Array(info.tx)).do(); - } - } + }, + }; return { algoSigner: signer, address, - ledger: "any" + ledger: "any", }; - } + }, }; } diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 3a795e94d..5b34b0ea0 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -198,14 +198,14 @@ export interface ValidateAddress { validateAddress(adr: string): Promise; } -export interface EstimateTxFees { +export interface EstimateTxFees { estimateValidateTransferNft( to: string, - metadataUri: string + metadata: NftInfo ): Promise; estimateValidateUnfreezeNft( to: string, - metadataUri: string + metadata: NftInfo ): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 03c601aa7..d1a0f5af7 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -236,7 +236,7 @@ export type ElrondHelper = BalanceCheck & ValidateAddress & ExtractAction & PreTransfer & - EstimateTxFees & + EstimateTxFees & TransferNftForeignUnsigned< string, BigNumber, @@ -848,7 +848,10 @@ export const elrondHelperFactory: ( getNonce() { return elrondParams.nonce; }, - async estimateValidateTransferNft(_toAddress: string, _nftUri: string) { + async estimateValidateTransferNft( + _toAddress: string, + _nftUri: NftInfo + ) { return estimateGas(NFT_TRANSFER_COST, elrondParams.validators.length); // TODO: properly estimate NFT_TRANSFER_COST }, async mintRawTxn(args, address) { @@ -859,7 +862,7 @@ export const elrondHelperFactory: ( return txu.toPlainObject(); }, - async estimateValidateUnfreezeNft(_to: string, _nftUri: string) { + async estimateValidateUnfreezeNft(_to: string, _nftUri: NftInfo) { return estimateGas(NFT_UNFREEZE_COST, elrondParams.validators.length); // TODO: properly estimate NFT_UNFREEZE_COST }, wrapNftForTransfer(nft: NftInfo) { diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index eae52b861..b3d07ff91 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -51,7 +51,7 @@ export type TezosHelper = TransferNftForeign< TransactionOperation > & ValidateAddress & - EstimateTxFees & + EstimateTxFees & ChainNonceGet & WrappedNftCheck; @@ -129,19 +129,20 @@ export async function tezosHelperFactory({ getNonce() { return 0x11; }, - async estimateValidateTransferNft(to, uri) { - const res = (await axios.get(uri)).data; - const { contract } = res; + async estimateValidateTransferNft(to, meta) { const utx = bridge.methods - .validate_transfer_nft(randomAction(), to, res, contract) + .validate_transfer_nft(randomAction(), to, {}, meta.native.contract) .toTransferParams(); return estimateGas(validators, utx); }, - async estimateValidateUnfreezeNft(to, uri) { - const res = (await axios.get(uri)).data; - const { contract, tokenId } = res; + async estimateValidateUnfreezeNft(to, meta) { const utx = bridge.methods - .validate_unfreeze_nft(randomAction(), to, tokenId, contract) + .validate_unfreeze_nft( + randomAction(), + to, + meta.native.id, + meta.native.contract + ) .toTransferParams(); return estimateGas(validators, utx); }, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index ef404cb5b..270d68cbc 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -96,7 +96,7 @@ export type TronHelper = BaseTronHelper & UnfreezeForeign & UnfreezeForeignNft & WrappedNftCheck & - EstimateTxFees & + EstimateTxFees & ChainNonceGet & Approve & ValidateAddress & @@ -588,7 +588,7 @@ export async function tronHelperFactory( }, async estimateValidateTransferNft( to: string, - nftUri: string + nftUri: NftInfo ): Promise { return await estimateGas( tronParams.validators, @@ -605,10 +605,10 @@ export async function tronHelperFactory( }, async estimateValidateUnfreezeNft( to: string, - nftUri: string + nftUri: NftInfo ): Promise { const wrappedData = await axios.get>( - nftUri + nftUri.uri ); return await estimateGas( tronParams.validators, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 3f729221f..5cdaa59b1 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -22,10 +22,7 @@ import { ethers, VoidSigner, } from "ethers"; -import { - TransactionResponse, - Provider, -} from "@ethersproject/providers"; +import { TransactionResponse, Provider } from "@ethersproject/providers"; import { Minter__factory, UserNftMinter__factory, @@ -115,11 +112,23 @@ export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & TransferForeign & - TransferNftForeign & + TransferNftForeign< + Signer, + string, + BigNumber, + EthNftInfo, + TransactionResponse + > & UnfreezeForeign & - UnfreezeForeignNft & + UnfreezeForeignNft< + Signer, + string, + BigNumber, + EthNftInfo, + TransactionResponse + > & WrappedNftCheck & - EstimateTxFees & + EstimateTxFees & ChainNonceGet & IsApproved & Approve & @@ -450,22 +459,22 @@ export async function web3HelperFactory( }, async estimateValidateTransferNft( to: string, - nftUri: string + nftUri: NftInfo ): Promise { const utx = await minter.populateTransaction.validateTransferNft( randomAction(), to, - nftUri + nftUri.uri ); return await estimateGas(params.validators, utx); }, async estimateValidateUnfreezeNft( to: string, - nftUri: string + nftUri: NftInfo ): Promise { const wrappedData = await axios.get>( - nftUri + nftUri.uri ); const utx = await minter.populateTransaction.validateUnfreezeNft( randomAction(), From 6596cd10ec10a2914987f3b0d473e38fccc465a1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 24 Dec 2021 17:24:36 +0530 Subject: [PATCH 269/956] feat(chains): add velas to supported chains --- src/consts.ts | 11 +++++++++++ src/factory/factories.ts | 9 +++++++++ src/factory/index.ts | 1 + yarn.lock | 2 +- 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 75a605b29..b405fa225 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -30,6 +30,7 @@ export enum TestNetRpcUri { XDAI = "https://sokol.poa.network", UNIQUE = "https://rpc-opal.unique.network/", TEZOS = "https://hangzhounet.smartpy.io", + VELAS = "https://explorer.testnet.velas.com/rpc", // TODO: Algorand // TODO: Fuse } @@ -74,6 +75,7 @@ export namespace Chain { export const FUSE: Web3Nonce = 0x10; export const UNIQUE: Web3Nonce = 0x11; export const TEZOS: TezosNonce = 0x12; + export const VELAS: Web3Nonce = 0x13; } interface ChainData { @@ -240,6 +242,15 @@ export const CHAIN_INFO: ChainInfo = { currency: SupportedCurrency.XTZ, blockExplorerUrl: "https://tezblock.io/transaction", }, + 19: { + name: "Velas", + blockExplorerUrl: "https://explorer.velas.com/tx", + nonce: 0x13, + decimals: 18, + constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.VLX, + chainId: 111, + }, }; export const Config: AppConfig = { diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 830fb84ca..7a68095e2 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -158,6 +158,15 @@ export namespace ChainFactoryConfigs { "tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6", ], }, + velasParams: { + middleware_uri, + erc1155_addr: "0x959922bE3CAee4b8Cd9a407cc3ac1C251C2007B1", + erc721_addr: "0x0B306BF915C4d645ff596e518fAf3F9669b97016", + minter_addr: "0x9A9f2CCfdE556A7E9Ff0848998Aa4a0CFD8863AE", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.VELAS, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), + }, }); export const MainNet: () => Partial = () => ({ diff --git a/src/factory/index.ts b/src/factory/index.ts index 454c1ed4f..ae33eeff2 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -251,6 +251,7 @@ export interface ChainParams { fuseParams: Web3Params; uniqueParams: Web3Params; tezosParams: TezosParams; + velasParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; diff --git a/yarn.lock b/yarn.lock index 9328b156f..0da468dd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2294,7 +2294,7 @@ crypt@0.0.2: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#8ccbee8ae52cbd7d44a82708364384dad7ca58f9" + resolved "git+https://github.com/xp-network/exchange-rate#4f82d7992d53b6f5861bb9f3e9ebf89f58123354" dependencies: axios "^0.21.1" From a24bf273bbe169d6989950fe14030803365aca32 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 28 Dec 2021 13:03:59 +0530 Subject: [PATCH 270/956] feat(nft-list): add support for retry after --- src/factory/index.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index ae33eeff2..b655623b7 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -521,9 +521,15 @@ export function ChainFactory( cToP.set(chainNonce, params as any); }, async nftList(chain: NftUriChain, owner: string) { - let data = await nftlistRest - .get<{ data: NftInfo[] }>(`/nfts/${chain.getNonce()}/${owner}`) - .then((v) => v.data.data); + let res = await nftlistRest.get<{ data: NftInfo[] }>( + `/nfts/${chain.getNonce()}/${owner}` + ); + + if (res.headers["Retry-After"]) { + await new Promise((r) => setTimeout(r, 30000)); + return await this.nftList(chain, owner); + } + let data = res.data.data; const nonce = chain.getNonce(); if (nonce != Chain.ALGORAND || nonce != Chain.ELROND) { From f83031d0ef94d50911dc2cfabaf86b0b2f0ab256 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 2 Jan 2022 19:26:09 +0530 Subject: [PATCH 271/956] chore(testnets): update smart contract address and testnet validator --- src/factory/factories.ts | 70 ++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 39 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 7a68095e2..10d35bca1 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -15,15 +15,7 @@ const EVM_VALIDATORS = [ // '0xEBAC44f9e63988112Eb4AfE8B8E03e179b6429A6' ]; -const EVM_TESTNET_VALIDATORS = [ - "0x060093d5559dcF01aeD66042Ba33bf243ee422b6", - "0xd067607e5D22BD8Fb806e07090FaE9A048a8Fc0d", - "0xB331E65875EeF5979b83DdF8aFB05bC5E86bB78D", - "0xB6C11DC232ab25BD61b3efc7a95C971ec002127C", - "0x848AF71847407d27fD8DD3A099F43F59B617C26a", - "0x54E68543464e0253C5A9e83471fc00aa9866d7bE", - "0x4Cfc8800606EDBd970298bB040Fc8D859c806702", -]; +const EVM_TESTNET_VALIDATORS = ["0x63A0bC7286e80A3a46D5113e1C059e7a1e14e0fc"]; const middleware_uri = "https://notifierrest.herokuapp.com"; @@ -52,81 +44,81 @@ export namespace ChainFactoryConfigs { tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), middleware_uri, - erc1155_addr: "string", - minter_addr: "string", - erc721_addr: "string", + erc1155_addr: "41b9bd4547c91cb23ba546bcdc958d4807e2179c7c", + minter_addr: "41cecf8ffbed6433c1cae2fe196925109aebc726f2", + erc721_addr: "41226a324faa855cf0e4774c682c9d772b72dd811e", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.TRON, }, avalancheParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), - minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", - erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", - erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.AVALANCHE, }, polygonParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), - minter_addr: "0xeed0fF20D9B1bd398b709e0d0405AC2B697e6083", - erc1155_addr: "0xFC58eB64D9257526cbA96C2Dda8Adc3d25Db770F", - erc721_addr: "0xf6d7B49B239FdE7EBfa82793911B812f42C06f6A", + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.POLYGON, }, fantomParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), - minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", - erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", - erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.FANTOM, }, bscParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), - minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", - erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", - erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.BSC, }, celoParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), - minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", - erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", - erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.CELO, }, harmonyParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), - minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", - erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", - erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.HARMONY, }, ropstenParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), - minter_addr: "0x4378A403B0122197EE6ae579bA37Ba392E8cf828", - erc1155_addr: "0x5F6565049969902bC6709Fdb2a89E81F1dAeA204", - erc721_addr: "0x2BA6Aa59933e54ce14aab8Fd4a061a8E66713423", + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.ETHEREUM, }, xDaiParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), - minter_addr: "0xB6F4Bd61aaD6EaEE8C4e5a5CF99A2fa1dd1E929a", - erc1155_addr: "0xC26f32b14d64306E493476b411d29d8822a2B353", - erc721_addr: "0xeE5519A1Fa69367539CFc16d6BfC2c1477f57d33", + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.XDAI, }, @@ -160,9 +152,9 @@ export namespace ChainFactoryConfigs { }, velasParams: { middleware_uri, - erc1155_addr: "0x959922bE3CAee4b8Cd9a407cc3ac1C251C2007B1", - erc721_addr: "0x0B306BF915C4d645ff596e518fAf3F9669b97016", - minter_addr: "0x9A9f2CCfdE556A7E9Ff0848998Aa4a0CFD8863AE", + erc1155_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc721_addr: "0x80653c90614155633252d32698164DBbBC421782", + minter_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", validators: EVM_TESTNET_VALIDATORS, nonce: Chain.VELAS, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), From 1408399c36506ee73965d9038a03b38baa9683f9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 9 Jan 2022 14:42:18 +0530 Subject: [PATCH 272/956] feat(mainnet): add velas SC addresses --- src/consts.ts | 1 + src/factory/factories.ts | 9 +++++++++ src/factory/index.ts | 1 + 3 files changed, 11 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index b405fa225..445c46c03 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -48,6 +48,7 @@ export enum MainNetRpcUri { HARMONY = "https://api.harmony.one", XDAI = "https://rpc.xdaichain.com/", FUSE = "https://rpc.fuse.io/", + VELAS = "https://mainnet.velas.com/rpc", // TODO: Algorand } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 10d35bca1..84801a3fd 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -280,5 +280,14 @@ export namespace ChainFactoryConfigs { validators: EVM_VALIDATORS, nonce: Chain.FUSE, }, + velasParams: { + middleware_uri, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), + minter_addr: "0x2f156D07376476f799166964bb62598882744ce5", + erc1155_addr: "0xb83448C460197E2F591eAA3FC6Be2c4fF88d9e9C", + erc721_addr: "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", + nonce: Chain.VELAS, + validators: EVM_VALIDATORS, + }, }); } diff --git a/src/factory/index.ts b/src/factory/index.ts index b655623b7..1e500875e 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -302,6 +302,7 @@ function mapNonceToParams( cToP.set(16, chainParams.fuseParams); cToP.set(17, chainParams.uniqueParams); cToP.set(18, chainParams.tezosParams); + cToP.set(19, chainParams.velasParams); return cToP; } /** From f46b983f36b28c0318155b08efbf3803b0531f3b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 9 Jan 2022 14:48:51 +0530 Subject: [PATCH 273/956] fix(constants): fix broken configs --- src/consts.ts | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 445c46c03..099f260f5 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -187,18 +187,17 @@ export const CHAIN_INFO: ChainInfo = { chainId: 1666700000, blockExplorerUrl: "https://explorer.pops.one/tx", constructor: (p) => web3HelperFactory(p as Web3Params), - currency: SupportedCurrency.CELO, + currency: SupportedCurrency.ONE, + }, + 13: { + name: "Ontology", + nonce: 0xd, + decimals: 1e18, + chainId: 1666700000, + blockExplorerUrl: "https://explorer.pops.one/tx", + constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.ONT, }, - // 13: { - // name: "Ontology", - // nonce: 0xd, - // decimals: 1e18, - // chainId: 1666700000, - // blockExplorerUrl: "https://explorer.pops.one/tx", - // constructor: (p) => web3HelperFactory(p as Web3Params), - // currency: SupportedCurrency.CELO, - // validators: ["0x0F7F9b1675174e5F62CE85D640A5c064BcdFf76c"], - // }, 14: { name: "xDai", nonce: 0xe, From 3fe62bc74ccb7c73590495148daa73fd098452fa Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 9 Jan 2022 20:10:11 +0530 Subject: [PATCH 274/956] consts: fix decimals for velas --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 099f260f5..a39d63752 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -246,7 +246,7 @@ export const CHAIN_INFO: ChainInfo = { name: "Velas", blockExplorerUrl: "https://explorer.velas.com/tx", nonce: 0x13, - decimals: 18, + decimals: 1e18, constructor: (p) => web3HelperFactory(p as Web3Params), currency: SupportedCurrency.VLX, chainId: 111, From 21f2a408c1930063862be5c1cbb83b7554f11832 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 17 Jan 2022 21:11:36 +0530 Subject: [PATCH 275/956] tezos fixes and improvements --- package.json | 2 ++ src/helpers/tezos.ts | 52 ++++++++++++++++++++++++---------- yarn.lock | 66 +++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 104 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 724439f04..bdf00af98 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,9 @@ "@elrondnetwork/erdjs": "^8.0.1-alpha.8", "@json-rpc-tools/utils": "^1.7.6", "@randlabs/myalgo-connect": "^1.1.1", + "@taquito/signer": "^11.1.0", "@taquito/taquito": "^11.1.0", + "@taquito/tzip12": "^11.1.0", "@walletconnect/client": "^1.7.0", "algosdk": "^1.12.0", "axios": "^0.21.1", diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index b3d07ff91..5860f2b35 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -3,13 +3,16 @@ import { ChainNonceGet, EstimateTxFees, MintNft, + NftInfo, NftMintArgs, + PreTransfer, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, WrappedNftCheck, } from ".."; import { + BigMapAbstraction, Signer, TezosToolkit, TransactionOperation, @@ -17,7 +20,6 @@ import { } from "@taquito/taquito"; import { validatePublicKey } from "@taquito/utils"; import BigNumber from "bignumber.js"; -import axios from "axios"; type TezosSigner = Signer; @@ -31,9 +33,6 @@ const randomAction = () => Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000)) ); -const NFT_TRANSFER_COST = new BigNumber(45000000); -const NFT_UNFREEZE_COST = new BigNumber(45000000); - export type TezosHelper = TransferNftForeign< TezosSigner, string, @@ -53,7 +52,10 @@ export type TezosHelper = TransferNftForeign< ValidateAddress & EstimateTxFees & ChainNonceGet & - WrappedNftCheck; + WrappedNftCheck & + Pick, "preTransfer"> & { + isApproved(signer: Signer, nft: NftInfo): Promise + }; export type TezosParams = { Tezos: TezosToolkit; @@ -72,24 +74,27 @@ export async function tezosHelperFactory({ const xpnft = await Tezos.contract.at(xpnftAddress); const estimateGas = async (validators: string[], op: TransferParams) => { - let fee = 0; + const tf = (await Tezos.estimate.transfer(op)).totalCost; - for (const [i, addr] of validators.entries()) { - op.source = addr; - let tf = (await Tezos.estimate.transfer(op)).totalCost; - if (i == validators.length - 1 && validators.length != 1) tf = tf * 2; - fee = fee + tf; - } - return new BigNumber(fee.toString()); + return new BigNumber(tf*(validators.length+1)); }; + async function isApproved(sender: TezosSigner, nft: NftInfo) { + const contract = await Tezos.contract.at(nft.native.contract); + const ownerAddr = await sender.publicKeyHash(); + const storage = await contract.storage<{ operators: BigMapAbstraction }>(); + return typeof (await storage.operators.get({owner: ownerAddr, operator: bridge.address, token_id: nft.native.id})) == "symbol"; + } + return { async transferNftToForeign(sender, chain, to, nft, fee) { Tezos.setSignerProvider(sender); const response = await bridge.methods - .freeze_fa2(nft.native.contract, nft.native.id, chain, to) + .freeze_fa2(chain, nft.native.contract, to, parseInt(nft.native.id)) .send({ amount: fee.toNumber(), + gasLimit: 800_000, + storageLimit: 60_000 }); return response; }, @@ -99,7 +104,7 @@ export async function tezosHelperFactory({ async unfreezeWrappedNft(sender, to, nft, fee) { Tezos.setSignerProvider(sender); const response = await bridge.methods - .withdraw_nft(to, nft.native.id) + .withdraw_nft(to, parseInt(nft.native.id)) .send({ amount: fee.toNumber(), }); @@ -146,5 +151,22 @@ export async function tezosHelperFactory({ .toTransferParams(); return estimateGas(validators, utx); }, + isApproved, + async preTransfer(signer, nft) { + Tezos.setSignerProvider(signer); + if (await isApproved(signer, nft)) { + return; + } + const contract = await Tezos.contract.at(nft.native.contract); + const response = await contract.methods + .update_operators([{ + add_operator: { + owner: await signer.publicKeyHash(), + operator: bridge.address, + token_id: nft.native.id + } + }]).send(); + return response.hash; + } }; } diff --git a/yarn.lock b/yarn.lock index 0da468dd5..ea2378d80 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1238,6 +1238,20 @@ lodash.get "^4.4.2" lodash.set "^4.3.2" +"@taquito/signer@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@taquito/signer/-/signer-11.1.0.tgz#ffb2656b332c477ee486356a6387cbe0ba48fe6a" + integrity sha512-WJLm2tJPb69F5jL/C4keIzJ/AbhmMzupiCS8jx0CXev+YKZmJE0kW7UpUzorLt9Va0grE9/VRxQiQVdAyp+w6A== + dependencies: + "@taquito/taquito" "^11.1.0" + "@taquito/utils" "^11.1.0" + bignumber.js "^9.0.1" + bip39 "^3.0.4" + elliptic "^6.5.4" + libsodium-wrappers "0.7.8" + pbkdf2 "^3.1.2" + typedarray-to-buffer "^4.0.0" + "@taquito/taquito@^11.1.0": version "11.1.0" resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-11.1.0.tgz#96c86fb6c8b7425b0faccca8150fd5127fe278d8" @@ -1251,6 +1265,29 @@ bignumber.js "^9.0.1" rxjs "^6.6.3" +"@taquito/tzip12@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@taquito/tzip12/-/tzip12-11.1.0.tgz#886d25939912da8fc13cf9e8a8271d8ff6e62333" + integrity sha512-O5ga32NwYn4zsRjgb1pSHqqiE9lkMqMZ+F/TojWaLuF3KQdYEUHUFOsATSx4I8CB+iG3HbklO/1/hxyNkTYY1g== + dependencies: + "@taquito/michelson-encoder" "^11.1.0" + "@taquito/taquito" "^11.1.0" + "@taquito/tzip16" "^11.1.0" + bignumber.js "^9.0.1" + +"@taquito/tzip16@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@taquito/tzip16/-/tzip16-11.1.0.tgz#a63d3306f0c88d0fd5aaaa912dd3a240b180c045" + integrity sha512-NIf4trDMP7fOMUebdBlTYF23OVEK6o6Os/wPi+VHpASVKbtBcFSOz/Df7ku/yWQN7U4G4goiCOtfvHWunwzitA== + dependencies: + "@taquito/http-utils" "^11.1.0" + "@taquito/michelson-encoder" "^11.1.0" + "@taquito/rpc" "^11.1.0" + "@taquito/taquito" "^11.1.0" + "@taquito/utils" "^11.1.0" + bignumber.js "^9.0.1" + crypto-js "^4.1.1" + "@taquito/utils@^11.1.0": version "11.1.0" resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-11.1.0.tgz#f179881e0e211dfb2764fbf2ea4fd467ae3426c5" @@ -1931,6 +1968,16 @@ bip39@3.0.2: pbkdf2 "^3.0.9" randombytes "^2.0.1" +bip39@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" + integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== + dependencies: + "@types/node" "11.11.6" + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -2298,6 +2345,11 @@ crypt@0.0.2: dependencies: axios "^0.21.1" +crypto-js@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" + integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== + debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" @@ -3531,6 +3583,18 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +libsodium-wrappers@0.7.8: + version "0.7.8" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz#d95cdf3e7236c2aef76844bf8e1929ba9eef3e9e" + integrity sha512-PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg== + dependencies: + libsodium "0.7.8" + +libsodium@0.7.8: + version "0.7.8" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.8.tgz#fbd12247b7b1353f88d8de1cbc66bc1a07b2e008" + integrity sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ== + listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" @@ -3994,7 +4058,7 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.9: +pbkdf2@^3.0.9, pbkdf2@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== From 7e02b11a91e86b130f564061d5a5fc8b0f130abb Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 18 Jan 2022 19:33:25 +0530 Subject: [PATCH 276/956] tezos: fix fees and approve --- src/helpers/tezos.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 5860f2b35..34ff62112 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -92,9 +92,7 @@ export async function tezosHelperFactory({ const response = await bridge.methods .freeze_fa2(chain, nft.native.contract, to, parseInt(nft.native.id)) .send({ - amount: fee.toNumber(), - gasLimit: 800_000, - storageLimit: 60_000 + amount: (fee.toNumber() / 1e6) }); return response; }, @@ -106,7 +104,7 @@ export async function tezosHelperFactory({ const response = await bridge.methods .withdraw_nft(to, parseInt(nft.native.id)) .send({ - amount: fee.toNumber(), + amount: (fee.toNumber() / 1e6), }); return response; }, @@ -166,6 +164,7 @@ export async function tezosHelperFactory({ token_id: nft.native.id } }]).send(); + await response.confirmation(); return response.hash; } }; From 2be2f77fd6503dd1d70d108ec322d62c3175c369 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 19 Jan 2022 16:04:16 +0530 Subject: [PATCH 277/956] tezos: add notifier --- src/helpers/tezos.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 34ff62112..8509a0966 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -20,6 +20,7 @@ import { } from "@taquito/taquito"; import { validatePublicKey } from "@taquito/utils"; import BigNumber from "bignumber.js"; +import axios from "axios"; type TezosSigner = Signer; @@ -59,6 +60,7 @@ export type TezosHelper = TransferNftForeign< export type TezosParams = { Tezos: TezosToolkit; + middlewareUri: string; xpnftAddress: string; bridgeAddress: string; validators: string[]; @@ -66,12 +68,19 @@ export type TezosParams = { export async function tezosHelperFactory({ Tezos, + middlewareUri, xpnftAddress, bridgeAddress, validators, }: TezosParams): Promise { const bridge = await Tezos.contract.at(bridgeAddress); const xpnft = await Tezos.contract.at(xpnftAddress); + const event_middleware = axios.create({ + baseURL: middlewareUri, + headers: { + "Content-Type": "application/json", + }, + }); const estimateGas = async (validators: string[], op: TransferParams) => { const tf = (await Tezos.estimate.transfer(op)).totalCost; @@ -86,6 +95,12 @@ export async function tezosHelperFactory({ return typeof (await storage.operators.get({owner: ownerAddr, operator: bridge.address, token_id: nft.native.id})) == "symbol"; } + async function notifyValidator(hash: string): Promise { + await event_middleware.post("/tx/web3", { + tx_hash: hash, + }); + } + return { async transferNftToForeign(sender, chain, to, nft, fee) { Tezos.setSignerProvider(sender); @@ -94,6 +109,8 @@ export async function tezosHelperFactory({ .send({ amount: (fee.toNumber() / 1e6) }); + await response.confirmation(); + notifyValidator(response.hash); return response; }, async balance(address) { @@ -106,6 +123,8 @@ export async function tezosHelperFactory({ .send({ amount: (fee.toNumber() / 1e6), }); + await response.confirmation(); + notifyValidator(response.hash); return response; }, async mintNft(signer, { identifier, attrs, contract, uris }) { From 043dea6bce0a97603d88f91d90421889db8ddd71 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 19 Jan 2022 16:04:26 +0530 Subject: [PATCH 278/956] factory: update for tezos --- src/factory/factories.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 84801a3fd..8b59bd981 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -142,6 +142,7 @@ export namespace ChainFactoryConfigs { }, tezosParams: { bridgeAddress: "KT1MRYxBimYh1PUt3LBhEAmvr7YMK2L7kqCL", + middlewareUri: middleware_uri, Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), xpnftAddress: "KT1F7THd96y39MYKkTXmLyWkDZQ3H6QgubLh", validators: [ @@ -280,6 +281,17 @@ export namespace ChainFactoryConfigs { validators: EVM_VALIDATORS, nonce: Chain.FUSE, }, + tezosParams: { + bridgeAddress: "KT1Lrn7Zymy29CAAxsf5SGAULo9ecSHZTczY", + middlewareUri: middleware_uri, + Tezos: new TezosToolkit(MainNetRpcUri.TEZOS), + xpnftAddress: "KT1EhmjL3Mau41gn8jCBvnwfMiy3eunfHHBc", + validators: [ + "tz1e4QByQTYQyj98cBiM42hejkMWB2Pg6iXg", + "tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb", + "tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6", + ] + }, velasParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), From 1fa7a59264a754b4cbc286aadefb3a0a2c169fc4 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 19 Jan 2022 16:10:05 +0530 Subject: [PATCH 279/956] consts: set tezos rpc url --- src/consts.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/consts.ts b/src/consts.ts index a39d63752..bf93a0537 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -49,6 +49,7 @@ export enum MainNetRpcUri { XDAI = "https://rpc.xdaichain.com/", FUSE = "https://rpc.fuse.io/", VELAS = "https://mainnet.velas.com/rpc", + TEZOS = "https://mainnet.smartpy.io" // TODO: Algorand } From c96364489180d9c8066ddae1de42044adad5fa54 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 19 Jan 2022 20:44:19 +0530 Subject: [PATCH 280/956] fix(tezos): fix the get nonce to return the correct nonce --- src/helpers/tezos.ts | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 8509a0966..ac150ca52 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -55,7 +55,7 @@ export type TezosHelper = TransferNftForeign< ChainNonceGet & WrappedNftCheck & Pick, "preTransfer"> & { - isApproved(signer: Signer, nft: NftInfo): Promise + isApproved(signer: Signer, nft: NftInfo): Promise; }; export type TezosParams = { @@ -85,14 +85,20 @@ export async function tezosHelperFactory({ const estimateGas = async (validators: string[], op: TransferParams) => { const tf = (await Tezos.estimate.transfer(op)).totalCost; - return new BigNumber(tf*(validators.length+1)); + return new BigNumber(tf * (validators.length + 1)); }; async function isApproved(sender: TezosSigner, nft: NftInfo) { const contract = await Tezos.contract.at(nft.native.contract); const ownerAddr = await sender.publicKeyHash(); const storage = await contract.storage<{ operators: BigMapAbstraction }>(); - return typeof (await storage.operators.get({owner: ownerAddr, operator: bridge.address, token_id: nft.native.id})) == "symbol"; + return ( + typeof (await storage.operators.get({ + owner: ownerAddr, + operator: bridge.address, + token_id: nft.native.id, + })) == "symbol" + ); } async function notifyValidator(hash: string): Promise { @@ -107,7 +113,7 @@ export async function tezosHelperFactory({ const response = await bridge.methods .freeze_fa2(chain, nft.native.contract, to, parseInt(nft.native.id)) .send({ - amount: (fee.toNumber() / 1e6) + amount: fee.toNumber() / 1e6, }); await response.confirmation(); notifyValidator(response.hash); @@ -121,7 +127,7 @@ export async function tezosHelperFactory({ const response = await bridge.methods .withdraw_nft(to, parseInt(nft.native.id)) .send({ - amount: (fee.toNumber() / 1e6), + amount: fee.toNumber() / 1e6, }); await response.confirmation(); notifyValidator(response.hash); @@ -149,7 +155,7 @@ export async function tezosHelperFactory({ return nft.native.contract.toLowerCase() === xpnftAddress.toLowerCase(); }, getNonce() { - return 0x11; + return 0x12; }, async estimateValidateTransferNft(to, meta) { const utx = bridge.methods @@ -176,15 +182,18 @@ export async function tezosHelperFactory({ } const contract = await Tezos.contract.at(nft.native.contract); const response = await contract.methods - .update_operators([{ - add_operator: { - owner: await signer.publicKeyHash(), - operator: bridge.address, - token_id: nft.native.id - } - }]).send(); + .update_operators([ + { + add_operator: { + owner: await signer.publicKeyHash(), + operator: bridge.address, + token_id: nft.native.id, + }, + }, + ]) + .send(); await response.confirmation(); return response.hash; - } + }, }; } From 187d3bc20faf53cd10b6eaae0a11a04c8c1002ee Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 19 Jan 2022 22:22:35 +0530 Subject: [PATCH 281/956] fix(tezos): fix gas estimation --- src/helpers/tezos.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index ac150ca52..2914b66df 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -13,12 +13,14 @@ import { } from ".."; import { BigMapAbstraction, + MichelsonMap, Signer, TezosToolkit, TransactionOperation, TransferParams, } from "@taquito/taquito"; -import { validatePublicKey } from "@taquito/utils"; + +import { validatePublicKey, char2Bytes } from "@taquito/utils"; import BigNumber from "bignumber.js"; import axios from "axios"; @@ -158,18 +160,25 @@ export async function tezosHelperFactory({ return 0x12; }, async estimateValidateTransferNft(to, meta) { + const metadata = new MichelsonMap(); + metadata.set("", char2Bytes(meta.uri)); const utx = bridge.methods - .validate_transfer_nft(randomAction(), to, {}, meta.native.contract) + .validate_transfer_nft( + randomAction().toString(), + metadata, + xpnftAddress, + to + ) .toTransferParams(); return estimateGas(validators, utx); }, async estimateValidateUnfreezeNft(to, meta) { const utx = bridge.methods .validate_unfreeze_nft( - randomAction(), + randomAction().toString(), + meta.native.contract, to, - meta.native.id, - meta.native.contract + parseInt(meta.native.id) ) .toTransferParams(); return estimateGas(validators, utx); From 8e1f1ee54f19486216217f4b975ef709a5303f0b Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 19 Jan 2022 23:54:03 +0530 Subject: [PATCH 282/956] tezos: fix estimateGas --- src/factory/factories.ts | 6 +++--- src/helpers/tezos.ts | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 8b59bd981..d6075f0e8 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -287,9 +287,9 @@ export namespace ChainFactoryConfigs { Tezos: new TezosToolkit(MainNetRpcUri.TEZOS), xpnftAddress: "KT1EhmjL3Mau41gn8jCBvnwfMiy3eunfHHBc", validators: [ - "tz1e4QByQTYQyj98cBiM42hejkMWB2Pg6iXg", - "tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb", - "tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6", + "tz1bxXSUcu1PqceWBw1zwc4zMRQuSLpbQ5VX", + "tz1VBF2LXnnnqKqKmTQqdESGx91kVLKyZMv4", + "tz1hMBJzUouzXYRk3mpdVi2QHY2gP594Kk2G", ] }, velasParams: { diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 2914b66df..f364eab2e 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -85,6 +85,7 @@ export async function tezosHelperFactory({ }); const estimateGas = async (validators: string[], op: TransferParams) => { + op.source = validators[0]; const tf = (await Tezos.estimate.transfer(op)).totalCost; return new BigNumber(tf * (validators.length + 1)); From 0f3c03dcc10eb2bbd216eb09555862bcba947e22 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 20 Jan 2022 00:15:01 +0530 Subject: [PATCH 283/956] tezos: use constants for fees --- src/helpers/tezos.ts | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index f364eab2e..9ece9b574 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -23,6 +23,7 @@ import { import { validatePublicKey, char2Bytes } from "@taquito/utils"; import BigNumber from "bignumber.js"; import axios from "axios"; +import { InMemorySigner } from "@taquito/signer"; type TezosSigner = Signer; @@ -84,11 +85,8 @@ export async function tezosHelperFactory({ }, }); - const estimateGas = async (validators: string[], op: TransferParams) => { - op.source = validators[0]; - const tf = (await Tezos.estimate.transfer(op)).totalCost; - - return new BigNumber(tf * (validators.length + 1)); + const estimateGas = (validators: string[], baseprice: number) => { + return new BigNumber(baseprice * (validators.length + 1)); }; async function isApproved(sender: TezosSigner, nft: NftInfo) { @@ -160,29 +158,11 @@ export async function tezosHelperFactory({ getNonce() { return 0x12; }, - async estimateValidateTransferNft(to, meta) { - const metadata = new MichelsonMap(); - metadata.set("", char2Bytes(meta.uri)); - const utx = bridge.methods - .validate_transfer_nft( - randomAction().toString(), - metadata, - xpnftAddress, - to - ) - .toTransferParams(); - return estimateGas(validators, utx); + async estimateValidateTransferNft() { + return estimateGas(validators, 1.2e5); }, - async estimateValidateUnfreezeNft(to, meta) { - const utx = bridge.methods - .validate_unfreeze_nft( - randomAction().toString(), - meta.native.contract, - to, - parseInt(meta.native.id) - ) - .toTransferParams(); - return estimateGas(validators, utx); + async estimateValidateUnfreezeNft() { + return estimateGas(validators, 1.2e4); }, isApproved, async preTransfer(signer, nft) { From a1e4d734e4aabf819d936a833709a9237fafb47b Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 20 Jan 2022 00:24:35 +0530 Subject: [PATCH 284/956] tezos: fix validateAddress --- src/helpers/tezos.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 9ece9b574..232691a45 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -20,7 +20,7 @@ import { TransferParams, } from "@taquito/taquito"; -import { validatePublicKey, char2Bytes } from "@taquito/utils"; +import * as utils from "@taquito/utils"; import BigNumber from "bignumber.js"; import axios from "axios"; import { InMemorySigner } from "@taquito/signer"; @@ -150,7 +150,7 @@ export async function tezosHelperFactory({ return response; }, async validateAddress(adr) { - return Promise.resolve(validatePublicKey(adr) === 3); + return Promise.resolve(utils.validateAddress(adr) === utils.ValidationResult.VALID); }, isWrappedNft(nft) { return nft.native.contract.toLowerCase() === xpnftAddress.toLowerCase(); From 1279d004a5e2261a15935b3a1bc53d2890e8b83f Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 20 Jan 2022 00:43:27 +0530 Subject: [PATCH 285/956] factory: fix nftList for tezos --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 1e500875e..86fb3fcd9 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -533,7 +533,7 @@ export function ChainFactory( let data = res.data.data; const nonce = chain.getNonce(); - if (nonce != Chain.ALGORAND || nonce != Chain.ELROND) { + if (nonce != Chain.ALGORAND || nonce != Chain.ELROND || nonce != Chain.TEZOS) { data = data.filter((v: any) => v.native.contractType != "ERC1155"); } From 915d930398d9bf0c82fc824c44dd06282355a92d Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 20 Jan 2022 01:22:41 +0530 Subject: [PATCH 286/956] tezos: update TezosNftInfo --- src/helpers/tezos.ts | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 232691a45..f09306609 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -29,14 +29,9 @@ type TezosSigner = Signer; type TezosNftInfo = { contract: string; - id: string; + token_id: string; }; -const randomAction = () => - new BigNumber( - Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000)) - ); - export type TezosHelper = TransferNftForeign< TezosSigner, string, @@ -97,7 +92,7 @@ export async function tezosHelperFactory({ typeof (await storage.operators.get({ owner: ownerAddr, operator: bridge.address, - token_id: nft.native.id, + token_id: nft.native.token_id, })) == "symbol" ); } @@ -112,7 +107,7 @@ export async function tezosHelperFactory({ async transferNftToForeign(sender, chain, to, nft, fee) { Tezos.setSignerProvider(sender); const response = await bridge.methods - .freeze_fa2(chain, nft.native.contract, to, parseInt(nft.native.id)) + .freeze_fa2(chain, nft.native.contract, to, parseInt(nft.native.token_id)) .send({ amount: fee.toNumber() / 1e6, }); @@ -126,7 +121,7 @@ export async function tezosHelperFactory({ async unfreezeWrappedNft(sender, to, nft, fee) { Tezos.setSignerProvider(sender); const response = await bridge.methods - .withdraw_nft(to, parseInt(nft.native.id)) + .withdraw_nft(to, parseInt(nft.native.token_id)) .send({ amount: fee.toNumber() / 1e6, }); @@ -177,7 +172,7 @@ export async function tezosHelperFactory({ add_operator: { owner: await signer.publicKeyHash(), operator: bridge.address, - token_id: nft.native.id, + token_id: nft.native.token_id, }, }, ]) From 0e6cd1c2a4638cbfa7e545dd2fc58ba97fa6c990 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 20 Jan 2022 01:25:22 +0530 Subject: [PATCH 287/956] tezos: rename approve functions to match api --- src/helpers/tezos.ts | 54 +++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index f09306609..424373ebc 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -53,7 +53,12 @@ export type TezosHelper = TransferNftForeign< ChainNonceGet & WrappedNftCheck & Pick, "preTransfer"> & { - isApproved(signer: Signer, nft: NftInfo): Promise; + isApprovedForMinter(signer: Signer, nft: NftInfo): Promise; + } & { + approveForMinter( + address: NftInfo, + sender: TezosSigner + ): Promise; }; export type TezosParams = { @@ -84,7 +89,7 @@ export async function tezosHelperFactory({ return new BigNumber(baseprice * (validators.length + 1)); }; - async function isApproved(sender: TezosSigner, nft: NftInfo) { + async function isApprovedForMinter(sender: TezosSigner, nft: NftInfo) { const contract = await Tezos.contract.at(nft.native.contract); const ownerAddr = await sender.publicKeyHash(); const storage = await contract.storage<{ operators: BigMapAbstraction }>(); @@ -103,6 +108,27 @@ export async function tezosHelperFactory({ }); } + async function preTransfer(signer: TezosSigner, nft: NftInfo) { + Tezos.setSignerProvider(signer); + if (await isApprovedForMinter(signer, nft)) { + return; + } + const contract = await Tezos.contract.at(nft.native.contract); + const response = await contract.methods + .update_operators([ + { + add_operator: { + owner: await signer.publicKeyHash(), + operator: bridge.address, + token_id: nft.native.token_id, + }, + }, + ]) + .send(); + await response.confirmation(); + return response.hash; + } + return { async transferNftToForeign(sender, chain, to, nft, fee) { Tezos.setSignerProvider(sender); @@ -159,26 +185,8 @@ export async function tezosHelperFactory({ async estimateValidateUnfreezeNft() { return estimateGas(validators, 1.2e4); }, - isApproved, - async preTransfer(signer, nft) { - Tezos.setSignerProvider(signer); - if (await isApproved(signer, nft)) { - return; - } - const contract = await Tezos.contract.at(nft.native.contract); - const response = await contract.methods - .update_operators([ - { - add_operator: { - owner: await signer.publicKeyHash(), - operator: bridge.address, - token_id: nft.native.token_id, - }, - }, - ]) - .send(); - await response.confirmation(); - return response.hash; - }, + preTransfer, + isApprovedForMinter, + approveForMinter: (nft, sender) => preTransfer(sender, nft) }; } From 9311de28dd0c685ce6d4e206c16e59dcfdc43f7d Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 20 Jan 2022 13:48:44 +0530 Subject: [PATCH 288/956] tezos: fix signer --- src/helpers/tezos.ts | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 424373ebc..ad39f3117 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -18,14 +18,14 @@ import { TezosToolkit, TransactionOperation, TransferParams, + WalletProvider, } from "@taquito/taquito"; import * as utils from "@taquito/utils"; import BigNumber from "bignumber.js"; import axios from "axios"; -import { InMemorySigner } from "@taquito/signer"; -type TezosSigner = Signer; +type TezosSigner = WalletProvider | Signer; type TezosNftInfo = { contract: string; @@ -89,9 +89,25 @@ export async function tezosHelperFactory({ return new BigNumber(baseprice * (validators.length + 1)); }; + function setSigner(sender: TezosSigner) { + if ("publicKeyHash" in sender) { + Tezos.setSignerProvider(sender); + } else { + Tezos.setWalletProvider(sender); + } + } + + function getAddress(sender: TezosSigner) { + if ("publicKeyHash" in sender) { + return sender.publicKeyHash(); + } else { + return sender.getPKH(); + } + } + async function isApprovedForMinter(sender: TezosSigner, nft: NftInfo) { const contract = await Tezos.contract.at(nft.native.contract); - const ownerAddr = await sender.publicKeyHash(); + const ownerAddr = await getAddress(sender); const storage = await contract.storage<{ operators: BigMapAbstraction }>(); return ( typeof (await storage.operators.get({ @@ -109,7 +125,7 @@ export async function tezosHelperFactory({ } async function preTransfer(signer: TezosSigner, nft: NftInfo) { - Tezos.setSignerProvider(signer); + setSigner(signer); if (await isApprovedForMinter(signer, nft)) { return; } @@ -118,7 +134,7 @@ export async function tezosHelperFactory({ .update_operators([ { add_operator: { - owner: await signer.publicKeyHash(), + owner: getAddress(signer), operator: bridge.address, token_id: nft.native.token_id, }, @@ -131,7 +147,7 @@ export async function tezosHelperFactory({ return { async transferNftToForeign(sender, chain, to, nft, fee) { - Tezos.setSignerProvider(sender); + setSigner(sender); const response = await bridge.methods .freeze_fa2(chain, nft.native.contract, to, parseInt(nft.native.token_id)) .send({ @@ -145,7 +161,7 @@ export async function tezosHelperFactory({ return Tezos.tz.getBalance(address); }, async unfreezeWrappedNft(sender, to, nft, fee) { - Tezos.setSignerProvider(sender); + setSigner(sender); const response = await bridge.methods .withdraw_nft(to, parseInt(nft.native.token_id)) .send({ @@ -156,7 +172,7 @@ export async function tezosHelperFactory({ return response; }, async mintNft(signer, { identifier, attrs, contract, uris }) { - Tezos.setSignerProvider(signer); + setSigner(signer); const response = xpnft.methods .mint({ token_id: identifier, From 47077e07887451fa9de38292a0616193991920eb Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 20 Jan 2022 13:52:42 +0530 Subject: [PATCH 289/956] tezos: preTransfer: fix derp --- src/helpers/tezos.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index ad39f3117..10fb0237e 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -134,7 +134,7 @@ export async function tezosHelperFactory({ .update_operators([ { add_operator: { - owner: getAddress(signer), + owner: await getAddress(signer), operator: bridge.address, token_id: nft.native.token_id, }, From f3c806d7a4a55426e9eec78b689cd2ef9ed308f2 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 20 Jan 2022 14:09:41 +0530 Subject: [PATCH 290/956] tezos: refactor txn sending logic --- src/helpers/tezos.ts | 61 ++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 10fb0237e..f1dc77f39 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -13,10 +13,8 @@ import { } from ".."; import { BigMapAbstraction, - MichelsonMap, Signer, TezosToolkit, - TransactionOperation, TransferParams, WalletProvider, } from "@taquito/taquito"; @@ -37,16 +35,16 @@ export type TezosHelper = TransferNftForeign< string, BigNumber, TezosNftInfo, - TransactionOperation + string > & - MintNft & + MintNft & BalanceCheck & UnfreezeForeignNft< TezosSigner, string, BigNumber, TezosNftInfo, - TransactionOperation + string > & ValidateAddress & EstimateTxFees & @@ -89,11 +87,17 @@ export async function tezosHelperFactory({ return new BigNumber(baseprice * (validators.length + 1)); }; - function setSigner(sender: TezosSigner) { + async function sendTx(sender: TezosSigner, tx: TransferParams) { if ("publicKeyHash" in sender) { Tezos.setSignerProvider(sender); + const res = await Tezos.contract.transfer(tx); + await res.confirmation(); + return res.hash; } else { Tezos.setWalletProvider(sender); + const res = await Tezos.wallet.transfer(tx).send(); + await res.confirmation(); + return res.opHash; } } @@ -125,12 +129,11 @@ export async function tezosHelperFactory({ } async function preTransfer(signer: TezosSigner, nft: NftInfo) { - setSigner(signer); if (await isApprovedForMinter(signer, nft)) { return; } const contract = await Tezos.contract.at(nft.native.contract); - const response = await contract.methods + const tx = contract.methods .update_operators([ { add_operator: { @@ -140,40 +143,36 @@ export async function tezosHelperFactory({ }, }, ]) - .send(); - await response.confirmation(); - return response.hash; + .toTransferParams(); + return await sendTx(signer, tx); } return { async transferNftToForeign(sender, chain, to, nft, fee) { - setSigner(sender); - const response = await bridge.methods + const tx = bridge.methods .freeze_fa2(chain, nft.native.contract, to, parseInt(nft.native.token_id)) - .send({ - amount: fee.toNumber() / 1e6, - }); - await response.confirmation(); - notifyValidator(response.hash); - return response; + .toTransferParams(); + tx.amount = fee.toNumber() / 1e6; + const hash = await sendTx(sender, tx); + + notifyValidator(hash); + return hash; }, async balance(address) { return Tezos.tz.getBalance(address); }, async unfreezeWrappedNft(sender, to, nft, fee) { - setSigner(sender); - const response = await bridge.methods + const tx = bridge.methods .withdraw_nft(to, parseInt(nft.native.token_id)) - .send({ - amount: fee.toNumber() / 1e6, - }); - await response.confirmation(); - notifyValidator(response.hash); - return response; + .toTransferParams(); + + tx.amount = fee.toNumber() / 1e6; + const hash = await sendTx(sender, tx); + notifyValidator(hash); + return hash; }, async mintNft(signer, { identifier, attrs, contract, uris }) { - setSigner(signer); - const response = xpnft.methods + const tx = xpnft.methods .mint({ token_id: identifier, address: contract, @@ -183,8 +182,8 @@ export async function tezosHelperFactory({ }, amount: 1, }) - .send(); - return response; + .toTransferParams(); + return await sendTx(signer, tx); }, async validateAddress(adr) { return Promise.resolve(utils.validateAddress(adr) === utils.ValidationResult.VALID); From 0e80eaeba6659d493c805d479ce28f542a3235fc Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 20 Jan 2022 14:32:26 +0530 Subject: [PATCH 291/956] tezos: refactor contract calling logic --- src/helpers/tezos.ts | 93 +++++++++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 45 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index f1dc77f39..abe7acba7 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -13,9 +13,16 @@ import { } from ".."; import { BigMapAbstraction, + ContractAbstraction, + ContractMethod, + ContractProvider, + SendParams, Signer, TezosToolkit, + TransactionOperation, + TransactionWalletOperation, TransferParams, + Wallet, WalletProvider, } from "@taquito/taquito"; @@ -74,8 +81,6 @@ export async function tezosHelperFactory({ bridgeAddress, validators, }: TezosParams): Promise { - const bridge = await Tezos.contract.at(bridgeAddress); - const xpnft = await Tezos.contract.at(xpnftAddress); const event_middleware = axios.create({ baseURL: middlewareUri, headers: { @@ -87,20 +92,28 @@ export async function tezosHelperFactory({ return new BigNumber(baseprice * (validators.length + 1)); }; - async function sendTx(sender: TezosSigner, tx: TransferParams) { + async function withContract(sender: TezosSigner, contract: string, cb: (contract: ContractAbstraction) => ContractMethod, params?: Partial) { if ("publicKeyHash" in sender) { Tezos.setSignerProvider(sender); - const res = await Tezos.contract.transfer(tx); - await res.confirmation(); - return res.hash; + const contractI = await Tezos.contract.at(contract); + const res = cb(contractI); + const tx = await res.send(params); + await tx.confirmation() + return (tx as TransactionOperation).hash; } else { Tezos.setWalletProvider(sender); - const res = await Tezos.wallet.transfer(tx).send(); - await res.confirmation(); - return res.opHash; + const contractI = await Tezos.wallet.at(contract); + const res = cb(contractI); + const tx = await res.send(params) + await tx.confirmation(); + return (tx as TransactionWalletOperation).opHash; } } + function withBridge(sender: TezosSigner, cb: (bridge: ContractAbstraction) => ContractMethod, params?: Partial) { + return withContract(sender, bridgeAddress, cb, params); + } + function getAddress(sender: TezosSigner) { if ("publicKeyHash" in sender) { return sender.publicKeyHash(); @@ -116,7 +129,7 @@ export async function tezosHelperFactory({ return ( typeof (await storage.operators.get({ owner: ownerAddr, - operator: bridge.address, + operator: bridgeAddress, token_id: nft.native.token_id, })) == "symbol" ); @@ -132,28 +145,23 @@ export async function tezosHelperFactory({ if (await isApprovedForMinter(signer, nft)) { return; } - const contract = await Tezos.contract.at(nft.native.contract); - const tx = contract.methods - .update_operators([ - { - add_operator: { - owner: await getAddress(signer), - operator: bridge.address, - token_id: nft.native.token_id, - }, + const owner = await getAddress(signer) + return await withContract(signer, nft.native.contract, (contract) => contract.methods.update_operators([ + { + add_operator: { + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, }, - ]) - .toTransferParams(); - return await sendTx(signer, tx); + }, + ])); } return { async transferNftToForeign(sender, chain, to, nft, fee) { - const tx = bridge.methods - .freeze_fa2(chain, nft.native.contract, to, parseInt(nft.native.token_id)) - .toTransferParams(); - tx.amount = fee.toNumber() / 1e6; - const hash = await sendTx(sender, tx); + const hash = await withBridge(sender, (bridge) => bridge.methods.freeze_fa2( + chain, nft.native.contract, to, parseInt(nft.native.token_id) + ), { amount: fee.toNumber() / 1e6 }); notifyValidator(hash); return hash; @@ -162,28 +170,23 @@ export async function tezosHelperFactory({ return Tezos.tz.getBalance(address); }, async unfreezeWrappedNft(sender, to, nft, fee) { - const tx = bridge.methods - .withdraw_nft(to, parseInt(nft.native.token_id)) - .toTransferParams(); - - tx.amount = fee.toNumber() / 1e6; - const hash = await sendTx(sender, tx); + const hash = await withBridge(sender, (bridge) => bridge.methods.withdraw_nft( + to, parseInt(nft.native.token_id) + ), { amount: fee.toNumber() / 1e6 }); + notifyValidator(hash); return hash; }, async mintNft(signer, { identifier, attrs, contract, uris }) { - const tx = xpnft.methods - .mint({ - token_id: identifier, - address: contract, - metadata: { - uri: uris[0], - attrs, - }, - amount: 1, - }) - .toTransferParams(); - return await sendTx(signer, tx); + return await withContract(signer, xpnftAddress, (xpnft) => xpnft.methods.mint({ + token_id: identifier, + address: contract, + metadata: { + uri: uris[0], + attrs, + }, + amount: 1, + })); }, async validateAddress(adr) { return Promise.resolve(utils.validateAddress(adr) === utils.ValidationResult.VALID); From 6a5bcbc07429ee1c791b286108dcaaa08bc19afb Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 20 Jan 2022 14:36:19 +0530 Subject: [PATCH 292/956] tezos: explicitly set storage limit for wallets --- src/helpers/tezos.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index abe7acba7..1fdde5c4b 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -104,6 +104,12 @@ export async function tezosHelperFactory({ Tezos.setWalletProvider(sender); const contractI = await Tezos.wallet.at(contract); const res = cb(contractI); + if (params) { + if (!params.storageLimit) + params.storageLimit = 60_000; + } else { + params = { storageLimit: 60_000 }; + } const tx = await res.send(params) await tx.confirmation(); return (tx as TransactionWalletOperation).opHash; From d01a6a273dae1044e5fc2f1f4ac07354960e5b04 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 21 Jan 2022 16:45:51 +0530 Subject: [PATCH 293/956] helpers: evm: estimateUnfreeze: add hacks for tezos --- src/helpers/tron.ts | 17 +++++++++++------ src/helpers/web3.ts | 30 +++++++++++++++--------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 270d68cbc..6f30ef90d 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -605,11 +605,16 @@ export async function tronHelperFactory( }, async estimateValidateUnfreezeNft( to: string, - nftUri: NftInfo + nft: NftInfo ): Promise { - const wrappedData = await axios.get>( - nftUri.uri - ); + let wrappedData: Erc721MetadataEx; + if (nft.native.meta) { + wrappedData = nft.native.meta.token.metadata; + } else { + wrappedData = await axios.get>( + nft.uri + ).then(v => v.data); + } return await estimateGas( tronParams.validators, "validateUnfreezeNft(uint128,address,uint256,address)", @@ -618,9 +623,9 @@ export async function tronHelperFactory( { type: "address", value: to }, { type: "uint256", - value: EthBN.from(wrappedData.data.wrapped.tokenId), + value: EthBN.from(wrappedData.wrapped.tokenId), }, - { type: "address", value: wrappedData.data.wrapped.contract }, + { type: "address", value: wrappedData.wrapped.contract }, ] ); }, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 5cdaa59b1..a1f8079a0 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -248,15 +248,9 @@ export async function web3HelperFactory( addrs: string[], utx: PopulatedTransaction ): Promise { - let fee = EthBN.from(0); - - for (const [i, addr] of addrs.entries()) { - utx.from = addr; - let tf = await w3.estimateGas(utx); - if (i == addrs.length - 1 && addrs.length != 1) tf = tf.mul(2); - fee = fee.add(tf); - } - fee = fee.mul(await w3.getGasPrice()); + utx.from = addrs[0]; + let td = await w3.estimateGas(utx); + const fee = td.mul(addrs.length+1).mul(await w3.getGasPrice()); return new BigNumber(fee.toString()); } @@ -471,16 +465,22 @@ export async function web3HelperFactory( }, async estimateValidateUnfreezeNft( to: string, - nftUri: NftInfo + nft: NftInfo ): Promise { - const wrappedData = await axios.get>( - nftUri.uri - ); + let wrappedData: Erc721MetadataEx; + if (nft.native.meta) { + wrappedData = nft.native.meta.token.metadata; + } else { + wrappedData = await axios.get>( + nft.uri + ).then(v => v.data); + } + const utx = await minter.populateTransaction.validateUnfreezeNft( randomAction(), to, - EthBN.from(wrappedData.data.wrapped.tokenId), - wrappedData.data.wrapped.contract + EthBN.from(wrappedData.wrapped.tokenId), + wrappedData.wrapped.contract ); return await estimateGas(params.validators, utx); From 818e65d0ebe607483f0498d2e95720e1122d0e0e Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 21 Jan 2022 16:56:40 +0530 Subject: [PATCH 294/956] tree-wide: hacks for tezos wrapped nft --- src/factory/index.ts | 5 +++-- src/helpers/chain.ts | 12 ++++++++++++ src/helpers/tron.ts | 11 +++-------- src/helpers/web3.ts | 10 ++-------- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 86fb3fcd9..276b0e6f8 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -20,6 +20,7 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, + extractWrappedMetadata, MintNft, MintRawTxn, NftInfo, @@ -549,8 +550,8 @@ export function ChainFactory( throw Error("invalid address"); } if (fromChain.isWrappedNft(nft)) { - const meta = await axios.get>(nft.uri); - if (meta.data.wrapped.origin != toChain.getNonce().toString()) { + const meta = await extractWrappedMetadata(nft); + if (meta.wrapped.origin != toChain.getNonce().toString()) { throw Error("trying to send wrapped nft to non-origin chain!!!"); } const res = await fromChain.unfreezeWrappedNft( diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 5b34b0ea0..c45e3c407 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,6 +1,8 @@ import { Address } from "@elrondnetwork/erdjs/out"; +import axios from "axios"; import BigNumber from "bignumber.js"; import { NftMintArgs } from ".."; +import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; /** * NFT Info @@ -242,3 +244,13 @@ export enum TransactionStatus { export interface ExtractTxnStatus { extractTxnStatus(txn: string): Promise; } + +export function extractWrappedMetadata(nft: NftInfo): Promise> { + if (nft.native.meta && nft.native.meta.token.metadata.wrapped) { + return Promise.resolve(nft.native.meta.token.metadata); + } else { + return axios.get>( + nft.uri + ).then(v => v.data); + } +} diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 6f30ef90d..dc9fb2ef9 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -31,6 +31,7 @@ import { Approve, ExtractAction, ExtractTxnStatus, + extractWrappedMetadata, IsApproved, MintRawTxn, NftMintArgs, @@ -607,14 +608,8 @@ export async function tronHelperFactory( to: string, nft: NftInfo ): Promise { - let wrappedData: Erc721MetadataEx; - if (nft.native.meta) { - wrappedData = nft.native.meta.token.metadata; - } else { - wrappedData = await axios.get>( - nft.uri - ).then(v => v.data); - } + const wrappedData = await extractWrappedMetadata(nft); + return await estimateGas( tronParams.validators, "validateUnfreezeNft(uint128,address,uint256,address)", diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index a1f8079a0..d8fa07561 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -33,6 +33,7 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, + extractWrappedMetadata, MintRawTxn, NftInfo, PreTransfer, @@ -467,14 +468,7 @@ export async function web3HelperFactory( to: string, nft: NftInfo ): Promise { - let wrappedData: Erc721MetadataEx; - if (nft.native.meta) { - wrappedData = nft.native.meta.token.metadata; - } else { - wrappedData = await axios.get>( - nft.uri - ).then(v => v.data); - } + const wrappedData = await extractWrappedMetadata(nft); const utx = await minter.populateTransaction.validateUnfreezeNft( randomAction(), From 1995ecd9de93319cf0d978a5c1832887dbf37440 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 21 Jan 2022 17:04:47 +0530 Subject: [PATCH 295/956] factory: allow passing Bignumberish in transferNft --- src/factory/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 276b0e6f8..8864c9c9b 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -117,7 +117,7 @@ export type ChainFactory = { nft: NftInfo, sender: SignerF, receiver: string, - fee?: BigNumber + fee?: BigNumber.Value ): Promise; /** * Mints an NFT on the chain. @@ -558,7 +558,7 @@ export function ChainFactory( sender, receiver, nft, - fee + new BigNumber(fee) ); return res; } else { @@ -567,7 +567,7 @@ export function ChainFactory( toChain.getNonce(), receiver, nft, - fee + new BigNumber(fee) ); return res; } From 84ca5a5713ebbef3ca2458e94fcc50c628dca8f0 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 23 Jan 2022 03:22:17 +0530 Subject: [PATCH 296/956] helpers: tezos: notifyValidator: fix derp --- src/helpers/tezos.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 1fdde5c4b..3f8895d37 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -142,7 +142,7 @@ export async function tezosHelperFactory({ } async function notifyValidator(hash: string): Promise { - await event_middleware.post("/tx/web3", { + await event_middleware.post("/tx/tezos", { tx_hash: hash, }); } From 4a2f44addddada743cb91d4b529f5ebaec455827 Mon Sep 17 00:00:00 2001 From: VKint <82875319+VKint@users.noreply.github.com> Date: Sat, 22 Jan 2022 23:54:59 +0200 Subject: [PATCH 297/956] Update factorieswith new bridge and xpnft addr --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d6075f0e8..8c26c43c6 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -282,10 +282,10 @@ export namespace ChainFactoryConfigs { nonce: Chain.FUSE, }, tezosParams: { - bridgeAddress: "KT1Lrn7Zymy29CAAxsf5SGAULo9ecSHZTczY", + bridgeAddress: "KT1QrrAEs8J2vmr2H7bvnjr5pdsU8ue86wH5", middlewareUri: middleware_uri, Tezos: new TezosToolkit(MainNetRpcUri.TEZOS), - xpnftAddress: "KT1EhmjL3Mau41gn8jCBvnwfMiy3eunfHHBc", + xpnftAddress: "KT1AQQMyuoNFYkGjNEcA8XQVSU2QSa1AKRv2", validators: [ "tz1bxXSUcu1PqceWBw1zwc4zMRQuSLpbQ5VX", "tz1VBF2LXnnnqKqKmTQqdESGx91kVLKyZMv4", From 553b5568c30437d56967aa80d46d5726eb34a707 Mon Sep 17 00:00:00 2001 From: VKint <82875319+VKint@users.noreply.github.com> Date: Sun, 23 Jan 2022 10:05:06 +0200 Subject: [PATCH 298/956] Update tezos XPNFT and Bridge --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 8c26c43c6..2bc53cf13 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -282,10 +282,10 @@ export namespace ChainFactoryConfigs { nonce: Chain.FUSE, }, tezosParams: { - bridgeAddress: "KT1QrrAEs8J2vmr2H7bvnjr5pdsU8ue86wH5", + bridgeAddress: "KT1B2zBPLVe51oXeuBJ8c7p2vHhi37jGxGHR", middlewareUri: middleware_uri, Tezos: new TezosToolkit(MainNetRpcUri.TEZOS), - xpnftAddress: "KT1AQQMyuoNFYkGjNEcA8XQVSU2QSa1AKRv2", + xpnftAddress: "KT1FxthB8GQvT7HnuczSp1qJk4w7dR5umKrx", validators: [ "tz1bxXSUcu1PqceWBw1zwc4zMRQuSLpbQ5VX", "tz1VBF2LXnnnqKqKmTQqdESGx91kVLKyZMv4", From e469bf331908dcc46b1860b08d38294f9a4dbef5 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 24 Jan 2022 14:51:48 +0530 Subject: [PATCH 299/956] tezos: isApprovedForMinter: workaround for operator --- src/helpers/tezos.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 3f8895d37..3ba798b52 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -131,9 +131,9 @@ export async function tezosHelperFactory({ async function isApprovedForMinter(sender: TezosSigner, nft: NftInfo) { const contract = await Tezos.contract.at(nft.native.contract); const ownerAddr = await getAddress(sender); - const storage = await contract.storage<{ operators: BigMapAbstraction }>(); + const storage = await contract.storage<{ operator?: BigMapAbstraction, operators?: BigMapAbstraction }>(); return ( - typeof (await storage.operators.get({ + typeof (await (storage.operator ? storage.operator : storage.operators!).get({ owner: ownerAddr, operator: bridgeAddress, token_id: nft.native.token_id, From 10d7ee49e7f24f9e5877247c6e1649c62ebc0cf5 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 24 Jan 2022 15:17:51 +0530 Subject: [PATCH 300/956] tezos: isApprovedForMinter: simulate update_operators instead --- src/helpers/tezos.ts | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 3ba798b52..36f8c7fae 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -13,6 +13,7 @@ import { } from ".."; import { BigMapAbstraction, + ChainIds, ContractAbstraction, ContractMethod, ContractProvider, @@ -92,6 +93,8 @@ export async function tezosHelperFactory({ return new BigNumber(baseprice * (validators.length + 1)); }; + const net = await Tezos.rpc.getChainId() == ChainIds.MAINNET ? "mainnet" : "hangzhou2net"; + async function withContract(sender: TezosSigner, contract: string, cb: (contract: ContractAbstraction) => ContractMethod, params?: Partial) { if ("publicKeyHash" in sender) { Tezos.setSignerProvider(sender); @@ -129,16 +132,31 @@ export async function tezosHelperFactory({ } async function isApprovedForMinter(sender: TezosSigner, nft: NftInfo) { - const contract = await Tezos.contract.at(nft.native.contract); - const ownerAddr = await getAddress(sender); - const storage = await contract.storage<{ operator?: BigMapAbstraction, operators?: BigMapAbstraction }>(); - return ( - typeof (await (storage.operator ? storage.operator : storage.operators!).get({ - owner: ownerAddr, - operator: bridgeAddress, - token_id: nft.native.token_id, - })) == "symbol" - ); + const baseUrl = `https://better-call.dev/v1/contract/${net}/${nft.native.contract}/entrypoints/run_operation`; + const owner = await getAddress(sender); + const res = await axios.post(baseUrl, { + name: "update_operators", + source: owner, + cancelToken: { promise: {} }, + data: { + update_operators: [ { + "@or_29": { + "add_operator": { + "@pair_32": { + "token_id": nft.native.token_id, + "operator": bridgeAddress + }, + owner + }, + "schemaKey": "L" + } + }] + } + }).catch(_ => undefined); + if (res == undefined) { + return false; + } + return res.data[0].status == "applied"; } async function notifyValidator(hash: string): Promise { From b5891a4966300a4661f1c4fec56328dfff01938f Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 24 Jan 2022 16:21:09 +0530 Subject: [PATCH 301/956] tezos: isApprovedForMinter: fix api usage --- src/helpers/tezos.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 36f8c7fae..e74ca1c14 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -132,12 +132,11 @@ export async function tezosHelperFactory({ } async function isApprovedForMinter(sender: TezosSigner, nft: NftInfo) { - const baseUrl = `https://better-call.dev/v1/contract/${net}/${nft.native.contract}/entrypoints/run_operation`; + const baseUrl = `https://api.better-call.dev/v1/contract/${net}/${nft.native.contract}/entrypoints/trace`; const owner = await getAddress(sender); const res = await axios.post(baseUrl, { name: "update_operators", source: owner, - cancelToken: { promise: {} }, data: { update_operators: [ { "@or_29": { @@ -156,7 +155,7 @@ export async function tezosHelperFactory({ if (res == undefined) { return false; } - return res.data[0].status == "applied"; + return res.data[0].status != "applied"; } async function notifyValidator(hash: string): Promise { From 22a8ea05145e2c07c3e4ac6f460ec184f1c637cc Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 24 Jan 2022 16:55:41 +0530 Subject: [PATCH 302/956] tezos: isApprovedForMinter: use proxy to bypass cors --- src/helpers/tezos.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index e74ca1c14..468b5e753 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -132,7 +132,7 @@ export async function tezosHelperFactory({ } async function isApprovedForMinter(sender: TezosSigner, nft: NftInfo) { - const baseUrl = `https://api.better-call.dev/v1/contract/${net}/${nft.native.contract}/entrypoints/trace`; + const baseUrl = `https://sheltered-crag-76748.herokuapp.com/https://api.better-call.dev/v1/contract/${net}/${nft.native.contract}/entrypoints/trace`; const owner = await getAddress(sender); const res = await axios.post(baseUrl, { name: "update_operators", @@ -151,7 +151,7 @@ export async function tezosHelperFactory({ } }] } - }).catch(_ => undefined); + }, ).catch(_ => undefined); if (res == undefined) { return false; } From f0e5e94e40b89622350435ce49c77a2f1b196852 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 24 Jan 2022 18:21:43 +0530 Subject: [PATCH 303/956] feat(web3): add a method to get Provider from inner object --- src/helpers/chain.ts | 14 ++++++++++---- src/helpers/web3.ts | 12 ++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index c45e3c407..bef9d00f1 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -245,12 +245,18 @@ export interface ExtractTxnStatus { extractTxnStatus(txn: string): Promise; } -export function extractWrappedMetadata(nft: NftInfo): Promise> { +export function extractWrappedMetadata( + nft: NftInfo +): Promise> { if (nft.native.meta && nft.native.meta.token.metadata.wrapped) { return Promise.resolve(nft.native.meta.token.metadata); } else { - return axios.get>( - nft.uri - ).then(v => v.data); + return axios + .get>(nft.uri) + .then((v) => v.data); } } + +export interface GetProvider { + getProvider(): Provider; +} diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index d8fa07561..de7fe5046 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -13,6 +13,7 @@ import { BatchWrappedBalanceCheck, MintNft, WrappedNftCheck, + GetProvider, } from "./chain"; import { Signer, @@ -21,6 +22,7 @@ import { Wallet, ethers, VoidSigner, + providers, } from "ethers"; import { TransactionResponse, Provider } from "@ethersproject/providers"; import { @@ -151,7 +153,8 @@ export type Web3Helper = BaseWeb3Helper & > & PreTransferRawTxn & ExtractTxnStatus & - MintRawTxn; + MintRawTxn & + GetProvider; /** * Create an object implementing minimal utilities for a web3 chain @@ -249,9 +252,9 @@ export async function web3HelperFactory( addrs: string[], utx: PopulatedTransaction ): Promise { - utx.from = addrs[0]; - let td = await w3.estimateGas(utx); - const fee = td.mul(addrs.length+1).mul(await w3.getGasPrice()); + utx.from = addrs[0]; + let td = await w3.estimateGas(utx); + const fee = td.mul(addrs.length + 1).mul(await w3.getGasPrice()); return new BigNumber(fee.toString()); } @@ -285,6 +288,7 @@ export async function web3HelperFactory( return { ...base, approveForMinter, + getProvider: () => provider, isApprovedForMinter, preTransfer: (s, id, _fee) => approveForMinter(id, s), extractAction, From 4ede6a3a1cf146b4fa340741ffe247d3b67e1ec1 Mon Sep 17 00:00:00 2001 From: VKint <82875319+VKint@users.noreply.github.com> Date: Tue, 25 Jan 2022 12:55:52 +0200 Subject: [PATCH 304/956] Update consts.ts --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index bf93a0537..0de17a3a2 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -41,7 +41,7 @@ export enum MainNetRpcUri { BSC = "https://bsc-dataseed.binance.org/", ETHEREUM = "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", AVALANCHE = "https://api.avax.network/ext/bc/C/rpc", - POLYGON = "https://rpc-mainnet.matic.network", + POLYGON = "https://polygon-rpc.com", FANTOM = "https://rpc.ftm.tools/", TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", From 63179bcdbd5c37ee85b9532408536fce300d7226 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Tue, 25 Jan 2022 17:01:31 +0200 Subject: [PATCH 305/956] Update README.md --- README.md | 480 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 375 insertions(+), 105 deletions(-) diff --git a/README.md b/README.md index 1bf0bd5c5..12878d397 100644 --- a/README.md +++ b/README.md @@ -5,47 +5,59 @@ ### Work In Progress / Alpha Stage Library -
-Available Features: -
- -- [x] Listing NFTs -- [x] Transferring NFTs between chains -- [x] Minting NFTs -- [x] Estimating the TX fee -- [ ] ... and More to come - -

+
+Bridging steps: +
+ +- [x] [1. Installing the library](#1-install-the-libraries-required-for-the-project) +- [x] [2. Importing the dependencies](#2-import-the-dependencies) +- [x] [3. Getting the signer objects](#3-get-the-signer-objects) + - [x] [3.1 Backend unsafe signer](#31-example-of-getting-the-signer-object-for-manual-testing-in-the-be) + - [x] [3.2 EVM compatible browser extension signer](#32-example-of-getting-the-signer-object-in-the-fe-for-web3) + - [x] [3.3 Elrond signer](#33-example-of-getting-the-signer-object-in-the-fe-for-elrond) + - [x] [3.4 Tron signer](#34-example-of-getting-the-signer-object-in-the-fe-for-tron) + - [x] [3.5 Algorand signer](#35-example-of-getting-the-signer-object-in-the-fe-for-algorand) +- [x] [4. Getting the Chain inner objects](#4-getting-the-inner-objects-from-this-factory-to-be-used-for-transferring-minting-estimation-of-gas-fees) +- [x] [5. Listing NFTs](#51-listing-nfts-owned-by-the-sender) + - [x] [Example of a native NFT object](#52-example-of-console-logged-native-bsc-nft-object) + - [x] [Example of a wrapped NFT object](#53-example-of-the-console-logged-wrapped-nft-from-bsc-on-velas) +- [x] [6. Approving](#6-approve-accessing-your-nft-by-the-bridge-smart-contract) +- [x] [7. Transferring NFTs between chains](#7-transferring-an-nft) +- [x] [Minting NFTs](#minting-nfts-on-evm-chains-elrond--tron)(optional) +- [x] [Estimating the TX fee on the target chain](#estimating-the-transaction-fee-on-the-target-chain) (optional) +- [ ] ... and there's much more to come + +

## To list and transfer NFTs, follow the steps below:
-
+
-Make sure [nodejs](https://nodejs.org/en/download/) is installed on your machine.
-
+Make sure [nodejs](https://nodejs.org/en/download/) is installed on your machine.
+
### 1. Install the libraries required for the project: -
+
```bash -yarn add xp.network @elrondnetwork/erdjs ethers +yarn add xp.network @elrondnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp ``` OR ```bash -npm i --save xp.network @elrondnetwork/erdjs ethers +npm i --save xp.network @elrondnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp ``` To import the latest version of xp.network library: ```bash -yarn add "git+https://github.com/xp-network/xpjs#master-dist" +yarn add "git+https://github.com/xp-network/xpjs#master-dist" @elrondnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp ``` -
+
-### 2. Import the dependencies

+### 2. Import the dependencies

```javascript import { @@ -53,6 +65,7 @@ import { ElrondHelper, ElrondParams, TronHelper, TronParams, Web3Helper, Web3Params, + typedAlgoSigner } from "xp.network/dist"; // Chanin name to chain nonce mapper: @@ -68,12 +81,12 @@ const testnetConfig = ChainFactoryConfigs.TestNet(); const factory = ChainFactory(Config, testnetConfig); ``` -

+

## 3. Get the signer objects -
+
| Chain | Parameters | |:-----:|:-----:| @@ -86,11 +99,11 @@ const factory = ChainFactory(Config, testnetConfig); | Tron | tronParams | | xDai | xDaiParams | -

+

-### 3.1 Example of getting the signer object (for manual testing in the BE) - -
+### 3.1 Example of getting the signer object (for manual EVM testing in the BE) +Avoid using 3.1 setup in production. Use it for initial or backend testing only. +
```javascript // EVM chains compatible wallet: @@ -101,32 +114,53 @@ const signer = new Wallet( mainnetConfig.polygonParams?.provider ); ``` -
+
-### 3.2 Example of getting the signer object (in the FE for web3):

+### 3.2 Example of getting the signer object (in the FE for web3):

```typescript // EVM chains compatible signer: import ethers from 'ethers'; const signer = (new ethers.providers.Web3Provider(window.ethereum)).getSigner(); ``` -
+
-### 3.3 Example of getting the signer object (in the FE for Elrond):

+### 3.3 Example of getting the signer object (in the FE for Elrond):

```typescript // ELROND provider: import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; const elrondSigner = ExtensionProvider.getInstance(); ``` -
+
-### 3.4 Example of getting the signer object (in the FE for Tron):

+### 3.4 Example of getting the signer object (in the FE for Tron):

```typescript // Address is fetched from tronweb -const addresses = await window.tronLink.tronWeb.request({ - method: "tron_requestAccounts", -}); -const tronSigner = addresses[0]; +(async () => { + const addresses = await window.tronLink.tronWeb.request({ + method: "tron_requestAccounts", + }); + const tronSigner = addresses[0]; +})(); +``` + +### 3.5 Example of getting the signer object (in the FE for Algorand):

+```typescript +// Use the typedAlgoSigner function to get access to the Algorand signer +const algorandSigner = typedAlgoSigner(); +``` + +### 3.6 Example of getting the signer object (in the FE for Tezos):

+```typescript +import { TempleWallet } from "@temple-wallet/dapp"; +(async () => { + try { + const available = await TempleWallet.isAvailable(); + if (!available) { + throw new Error("Temple Wallet not installed"); + } + const tezosSigner = new TempleWallet("bridge.xp.network"); +})(); ```
@@ -135,28 +169,35 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor
-### 4. Getting the inner objects from this factory that can be used for transferring, minting, estimation of gas fees.

+### 4. Getting the inner objects from this factory to be used for transferring, minting, estimation of gas fees.

```javascript -// EVM-compatible chains: -const ethereum = await factory.inner (Chain.ETHEREUM); -const bsc = await factory.inner (Chain.BSC); -const polygon = await factory.inner (Chain.POLYGON); -const avax = await factory.inner (Chain.AVALANCHE); -const fantom = await factory.inner (Chain.FANTOM); -const xdai = await factory.inner (Chain.XDAI); - -// Non-EVM chains: -const elrond = await factory.inner(Chain.ELROND); -const tron = await factory.inner (Chain.TRON); +(async () => { + // EVM-compatible chains: + // Inner Object ==================== Chain Helper === Chain Params === Chain Nonce == + const ethereum = await factory.inner (Chain.ETHEREUM); + const bsc = await factory.inner (Chain.BSC); + const polygon = await factory.inner (Chain.POLYGON); + const avax = await factory.inner (Chain.AVALANCHE); + const fantom = await factory.inner (Chain.FANTOM); + const velas = await factory.inner (Chain.VELAS); + const gnosis = await factory.inner (Chain.XDAI); + + // Non-EVM chains: + // Inner Object ==================== Chain Helper === Chain Params === Chain Nonce == + const algorand = await factory.inner(Chain.ALGORAND); + const elrond = await factory.inner (Chain.ELROND); + const tezos = await factory.inner (Chain.TEZOS); + const tron = await factory.inner (Chain.TRON); +})(); ``` -

+

-### 5. Listing NFTs Owned by the sender.

+### 5.1 Listing NFTs Owned by the sender.

-This operation does not depend on a wallet, since reading operations are free and, therefore, do not require signing. -
+This operation does not depend on a wallet since reading operations are free and, therefore, do not require signing. +
```javascript (async () => { @@ -179,6 +220,18 @@ This operation does not depend on a wallet, since reading operations are free an "TJuG..." // The public key of the NFT owner in Tron ); + // Algorand: + const algoNfts = factory.nftList( + algorand, // Algorand chain internal object + "PUPTH..." // The public key of the NFT owner in Algorand + ); + + // Tezos: + const tezosNfts = await factory.nftList( + tezos, // Tezos chain internal object + "tz1..." // The public key of the NFT owner in Tezos + ); + })(); ``` @@ -187,113 +240,314 @@ This operation does not depend on a wallet, since reading operations are free an const web3ChosenOne = web3Nfts[0]; const elrondChosenOne = elrondNfts[0]; const tronChosenOne = tronNfts[0]; +const algoChosenOne = algoNfts[0]; +const tezosChosenOne = tezosNfts[0]; // Checking the selected NFT object -console.log("EVM Selected NFT: ", web3ChosenOne); -console.log("Elrond Selected NFT:", elrondChosenOne); -console.log("tron Selected NFT: ", tronChosenOne); +console.log("EVM Selected NFT: ", web3ChosenOne); +console.log("Elrond Selected NFT: ", elrondChosenOne); +console.log("Tron Selected NFT: ", tronChosenOne); +console.log("Algorand Selected NFT: ", algoChosenOne); +console.log("Tezos Selected NFT: ", tezosChosenOne); ``` -

+### 5.2 Example of console logged native BSC NFT object: +```json +{ + "boosterId": 10000000788939, + "id": "10002366816", + "txHash": "0x37c9b7c54ac05d5e00dd5cff06722fb67bed91ec91732875071f74bce8752e41", + "randomNumber": "0x1459a03e3d7a5510023e7385d438508d725dd19de2237c6c1d79a9883b6dc0b3", + "image": "https://assets.polkamon.com/images/Unimons_T02C03H06B04G00.jpg", + "external_url": "https://polkamon.com/polkamon/T02C03H06B04G00", + "description": "The Unifairy are the most magical and fairest of Polkamon. Their wings stretch into the realms beyond this world, enchanting those around her by her unique disposition.", + "name": "Unifairy", + "initialProbabilities": { + "horn": 0.2, + "color": 0.25, + "background": 1, + "glitter": 0.99, + "type": 0.135 + }, + "attributes": [ + { + "trait_type": "Type", + "value": "Unifairy" + }, + { + "trait_type": "Horn", + "value": "Spiral Horn" + }, + { + "trait_type": "Color", + "value": "Blue" + }, + { + "trait_type": "Background", + "value": "Mountain Range" + }, + { + "trait_type": "Opening Network", + "value": "Binance Smart Chain" + }, + { + "trait_type": "Glitter", + "value": "No" + }, + { + "trait_type": "Special", + "value": "No" + }, + { + "display_type": "date", + "trait_type": "Birthday", + "value": 1633650473 + }, + { + "display_type": "number", + "trait_type": "Booster", + "value": 10000000788939 + } + ], + "opening_network": "Binance Smart Chain", + "background_color": "FFFFFF", + "animation_url": "https://assets.polkamon.com/videos/Unimons_T02C03H06B04G00.mp4", + "code": "T02C03H06B04G00", + "uri": "https://meta.polkamon.com/meta?id=10002366816", + "native": { + "chainId": "4", + "tokenId": "10002366816", + "owner": "0x0d7df42014064a163DfDA404253fa9f6883b9187", + "contract": "0x85f0e02cb992aa1f9f47112f815f519ef1a59e2d", + "symbol": "PMONC", + "name": "PolkamonOfficialCollection", + "uri": "https://meta.polkamon.com/meta?id=10002366816", + "contractType": "ERC721" + } +} +``` + +### 5.3 Example of the console logged wrapped NFT from BSC on Velas + +```json +[ + { + "name": "Unifairy", + "description": "The Unifairy are the most magical and fairest of Polkamon. Their wings stretch into the realms beyond this world, enchanting those around her by her unique disposition.", + "image": "https://assets.polkamon.com/images/Unimons_T02C03H06B04G00.jpg", + "animation_url": "https://assets.polkamon.com/videos/Unimons_T02C03H06B04G00.mp4", + "wrapped": { + "contract": "0x85F0e02cb992aa1F9F47112F815F519EF1A59E2D", + "tokenId": "10002366816", + "origin": "4", + "original_uri": "https://meta.polkamon.com/meta?id=10002366816" + }, + "attributes": [ + { + "trait_type": "Original Chain", + "value": "BSC" + }, + { + "trait_type": "Original Chain Nonce", + "value": "4" + }, + { + "trait_type": "Original URI", + "value": "https://meta.polkamon.com/meta?id=10002366816" + }, + { + "trait_type": "Type", + "value": "Unifairy" + }, + { + "trait_type": "Horn", + "value": "Spiral Horn" + }, + { + "trait_type": "Color", + "value": "Blue" + }, + { + "trait_type": "Background", + "value": "Mountain Range" + }, + { + "trait_type": "Opening Network", + "value": "Binance Smart Chain" + }, + { + "trait_type": "Glitter", + "value": "No" + }, + { + "trait_type": "Special", + "value": "No" + }, + { + "display_type": "date", + "trait_type": "Birthday", + "value": 1633650473 + }, + { + "display_type": "number", + "trait_type": "Booster", + "value": 10000000788939 + } + ], + "uri": "https://wnfts.xp.network/w/61b8adae4298fe05d7a48962", + "native": { + "chainId": "19", + "tokenId": "17", + "owner": "0x0d7df42014064a163DfDA404253fa9f6883b9187", + "contract": "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", + "symbol": "XPNFT", + "name": "XpWrapNft", + "uri": "https://wnfts.xp.network/w/61b8adae4298fe05d7a48962", + "contractType": "ERC721" + } + } +] +``` -### 6. Approve accessing your NFT by the bridge smart contract

+

+ +### 6. Approve accessing your NFT by the bridge smart contract

```javascript -// EVM example (async () => { - const isApproved = await polygon.approveForMinter(web3ChosenOne, signer); - console.log("Is Approved:", isApproved); + // EVM example + const isApprovedEVM = await polygon.approveForMinter(web3ChosenOne, signer); + console.log("Is Approved in an EVM:", isApprovedEVM); + + // Elrond example + const isApprovedElrond = await elrond.approveForMinter(elrondChosenOne, elrondSigner); + console.log("Is Approved in Elrond:", isApprovedElrond); + + // Tron example + const isApprovedTron = await elrond.approveForMinter(tronChosenOne, tronSigner); + console.log("Is Approved in Tron:", isApprovedTron); -// Elrond example - const isApproved = await elrond.approveForMinter(elrondChosenOne, elrondSigner); - console.log("Is Approved:", isApproved); + // Algorand example + const isApprovedAlgorand = await algorand.approveForMinter(algoChosenOne, algorandSigner); + console.log("Is Approved in Algorand:", isApprovedAlgorand); -// Tron example - const isApproved = await elrond.approveForMinter(tronChosenOne, tronSigner); - console.log("Is Approved:", isApproved); + // Tezos example + const isApprovedTezos = await algorand.approveForMinter(tezosChosenOne, tezosSigner); + console.log("Is Approved in Tezos:", isApprovedTezos); })(); ``` -

+

-### 7. Transferring an NFT

+### 7. Transferring an NFT

```javascript -// EVM compatible chains example: (async () => { + // EVM compatible chains example: const web3Result = await factory.transferNft( polygon, // The Source Chain. bsc, // The Destination Chain. - theChosenOne, // Or the NFT object you have chosen from the list. + theChosenOne, // The NFT object you have chosen from the list. signer, // The web3 signer object (see p. 3.2 above). "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); console.log(web3Result); -// Elrond example: + // Elrond example: const elrondResult = await factory.transferNft( elrond, // The Source Chain. tron, // The Destination Chain. - elrondChosenOne, // Or the NFT object you have chosen from the list. + elrondChosenOne, // The NFT object you have chosen from the list. elrondSigner, // The Elrond signer object (see p. 3.3 above). "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); console.log(elrondResult); -// Tron example: - const tronRresult = await factory.transferNft( + // Tron example: + const tronResult = await factory.transferNft( tron, // The Source Chain. elrond, // The Destination Chain. - tronChosenOne, // Or the NFT object you have chosen from the list. + tronChosenOne, // The NFT object you have chosen from the list. tronSigner, // The Tron signer object (see p. 3.4 above). "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); - console.log(tronRresult); + console.log(tronResult); + + // Algorand example: + const algorandResult = await factory.transferNft( + algorand, // The Source Chain. + elrond, // The Destination Chain. + algoChosenOne, // The NFT object you have chosen from the list. + algorandSigner, // The Tron signer object (see p. 3.5 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. + ); + console.log(algorandResult); + + // Tezos example: + const tezosResult = await factory.transferNft( + tezos, // The Source Chain. + velas, // The Destination Chain. + algoChosenOne, // Or the NFT object you have chosen from the list. + algorandSigner, // The Tron signer object (see p. 3.5 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. + ); + console.log(tezosResult); })(); ``` -


+


## Minting NFTs on EVM chains, Elrond & Tron -
+
- Just call the mint function on the factory with suitable arguments. -
+
1. For Web3 Chains: ```javascript - // Web3Provider generally refers to a walletProvider like Metamask. - const receipt = await factory.mint(avax, signer, { - // Could be an IPFS URL or Any URL that points to a Metadata - uris: [metadata.url], - // Description of your NFT. Can be an object. - attrs: description, - // A name that defines your NFT. - name: name, - // The contract with which you want to mint the NFT. - contract: "Can be fetched from the mainnetConfig or testnetConfig", - }); + (async () => { + // Web3Provider generally refers to a walletProvider like Metamask. + const receipt = await factory.mint( + avax, // The chain where to mint + signer, // The browser injected signer + { + // Could be an IPFS URL or Any URL that points to a Metadata + uris: [metadata.url], + // Description of your NFT. Can be an object. + attrs: description, + // A name that defines your NFT. + name: name, + // The contract with which you want to mint the NFT. + contract: "Can be fetched from the mainnetConfig or testnetConfig", + } + ); + })(); ``` -
+
- 2. For Elrond:
+ 2. For Elrond:
```javascript - const receipt = await factory.mint(elrond, elrondSigner, { - // Could be an IPFS URL or Any URL that points to a Metadata - uris: [metadata.url], - // Description of your NFT. Can be an object. - attrs: description, - // A name that defines your NFT. - name: name, - // The identifier with which you want to mint the NFT. You have to own this identifier. i.e. - identifier: "PANDA-eda5d0-c5", - }); + (async () => { + const receipt = await factory.mint( + elrond, // The chain where to mint + elrondSigner, // The browser injected signer + { + // Could be an IPFS URL or Any URL that points to a Metadata + uris: [metadata.url], + // Description of your NFT. Can be an object. + attrs: description, + // A name that defines your NFT. + name: name, + // The identifier with which you want to mint the NFT. You have to own this identifier. i.e. + identifier: "XPNFT-eda5d0-c5", + }); + })(); ``` -
+
3. For Tron: @@ -314,9 +568,25 @@ console.log("tron Selected NFT: ", tronChosenOne); P.S. The library is a work in progress. More features will be added soon. -

+

+ + ## Estimating the transaction fee on the target chain + + ```typescript + (async () => { + const feeEstimation = await factory.estimateFees( + algorand, // The Source Chain. + tezos, // The Destination Chain. + algoChosenOne, // The NFT object you have chosen from the list. + "tz1..." // The public key of the NFT owner in Tezos + ); + console.log(`The estimated fee on Tezos is: ${feeEstimation} Algos`); + })(); + ``` + +
-##
Troubleshooting

+##
Troubleshooting

- In case you're using the library in a console application and getting errors, go to: - node_modules/xpnet-nft-list/dist/nft-list/model/moralis/MoralisNftListService.js From a3f3fd2fd1d8416e0b74f42c6406f3774709bfc8 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 30 Jan 2022 19:20:10 +0530 Subject: [PATCH 306/956] helpers: web3: use toString(10) for BigNumber --- src/helpers/tron.ts | 8 ++++---- src/helpers/web3.ts | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index dc9fb2ef9..c306e3ccb 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -499,8 +499,8 @@ export async function tronHelperFactory( ): Promise { setSigner(sender); - const val = EthBN.from(value.toString()); - const totalVal = val.add(EthBN.from(txFees.toString())); + const val = EthBN.from(value.toString(10)); + const totalVal = val.add(EthBN.from(txFees.toString(10))); let res = await minter .freeze(chain_nonce, to, val) .send({ callValue: totalVal }); @@ -542,7 +542,7 @@ export async function tronHelperFactory( setSigner(sender); const res = await minter .withdrawNft(to, id.native.tokenId) - .send({ callValue: EthBN.from(txFees.toString()) }); + .send({ callValue: EthBN.from(txFees.toString(10)) }); await notifyValidator(res); return res; @@ -562,7 +562,7 @@ export async function tronHelperFactory( const txr = await minter .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to) - .send({ callValue: EthBN.from(txFees.toString()) }); + .send({ callValue: EthBN.from(txFees.toString(10)) }); await notifyValidator(txr); return txr; diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index de7fe5046..fbaefa7b5 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -345,7 +345,7 @@ export async function web3HelperFactory( to, id.native.tokenId, { - value: EthBN.from(txFees.toString()), + value: EthBN.from(txFees.toString(10)), } ); return res; @@ -382,8 +382,8 @@ export async function web3HelperFactory( value: BigNumber, txFees: BigNumber ): Promise { - const val = EthBN.from(value.toString()); - const totalVal = val.add(EthBN.from(txFees.toString())); + const val = EthBN.from(value.toString(10)); + const totalVal = val.add(EthBN.from(txFees.toString(10))); const res = await minter.connect(sender).freeze(chain_nonce, to, val, { value: totalVal, }); @@ -402,7 +402,7 @@ export async function web3HelperFactory( chain_nonce, to, { - value: EthBN.from(txFees.toString()), + value: EthBN.from(txFees.toString(10)), } ); return txr; @@ -419,7 +419,7 @@ export async function web3HelperFactory( const txr = await minter .connect(sender) .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to, { - value: EthBN.from(txFees.toString()), + value: EthBN.from(txFees.toString(10)), }); await notifyValidator(txr.hash); @@ -435,7 +435,7 @@ export async function web3HelperFactory( const res = await minter .connect(sender) .withdraw(chain_nonce, to, value, { - value: EthBN.from(txFees.toString()), + value: EthBN.from(txFees.toString(10)), }); return res.hash; @@ -449,7 +449,7 @@ export async function web3HelperFactory( const res = await minter .connect(sender) .withdrawNft(to, id.native.tokenId, { - value: EthBN.from(txFees.toString()), + value: EthBN.from(txFees.toString(10)), }); await notifyValidator(res.hash); From ae93b2e4f08119435e40261e6b0407422ed615de Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 31 Jan 2022 15:32:15 +0530 Subject: [PATCH 307/956] feat: chains: web3: add iotex chain --- src/consts.ts | 14 +++++++++++++- src/factory/factories.ts | 20 +++++++++++++++++++- src/factory/index.ts | 8 +++++++- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 0de17a3a2..2065ea556 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -31,6 +31,7 @@ export enum TestNetRpcUri { UNIQUE = "https://rpc-opal.unique.network/", TEZOS = "https://hangzhounet.smartpy.io", VELAS = "https://explorer.testnet.velas.com/rpc", + IOTEX = "https://babel-api.testnet.iotex.io", // TODO: Algorand // TODO: Fuse } @@ -49,7 +50,8 @@ export enum MainNetRpcUri { XDAI = "https://rpc.xdaichain.com/", FUSE = "https://rpc.fuse.io/", VELAS = "https://mainnet.velas.com/rpc", - TEZOS = "https://mainnet.smartpy.io" + TEZOS = "https://mainnet.smartpy.io", + IOTEX = "https://babel-api.mainnet.iotex.io", // TODO: Algorand } @@ -78,6 +80,7 @@ export namespace Chain { export const UNIQUE: Web3Nonce = 0x11; export const TEZOS: TezosNonce = 0x12; export const VELAS: Web3Nonce = 0x13; + export const IOTEX: Web3Nonce = 0x14; } interface ChainData { @@ -252,6 +255,15 @@ export const CHAIN_INFO: ChainInfo = { currency: SupportedCurrency.VLX, chainId: 111, }, + 20: { + name: "IoTeX", + blockExplorerUrl: "https://iotexscan.io/tx", + nonce: 0x14, + decimals: 1e18, + constructor: (p) => web3HelperFactory(p as Web3Params), + currency: SupportedCurrency.IOTX, + chainId: 4689, + }, }; export const Config: AppConfig = { diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 2bc53cf13..30cc18619 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -160,6 +160,15 @@ export namespace ChainFactoryConfigs { nonce: Chain.VELAS, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), }, + iotexParams: { + middleware_uri, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.IOTEX), + minter_addr: "0x0000000000000000000000000000000000000000", + erc1155_addr: "0x0000000000000000000000000000000000000000", + erc721_addr: "0x0000000000000000000000000000000000000000", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.IOTEX, + }, }); export const MainNet: () => Partial = () => ({ @@ -290,7 +299,7 @@ export namespace ChainFactoryConfigs { "tz1bxXSUcu1PqceWBw1zwc4zMRQuSLpbQ5VX", "tz1VBF2LXnnnqKqKmTQqdESGx91kVLKyZMv4", "tz1hMBJzUouzXYRk3mpdVi2QHY2gP594Kk2G", - ] + ], }, velasParams: { middleware_uri, @@ -301,5 +310,14 @@ export namespace ChainFactoryConfigs { nonce: Chain.VELAS, validators: EVM_VALIDATORS, }, + iotexParams: { + middleware_uri, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), + minter_addr: "0x721729b81609D6a4BDE1b662cD683e133d3CF33d", + erc1155_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", + erc721_addr: "0xAb61d15351d43A5e98c16D978d6F11dF9Ee5711e", + validators: EVM_VALIDATORS, + nonce: Chain.IOTEX, + }, }); } diff --git a/src/factory/index.ts b/src/factory/index.ts index 8864c9c9b..71ea2de7d 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -253,6 +253,7 @@ export interface ChainParams { uniqueParams: Web3Params; tezosParams: TezosParams; velasParams: Web3Params; + iotexParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -304,6 +305,7 @@ function mapNonceToParams( cToP.set(17, chainParams.uniqueParams); cToP.set(18, chainParams.tezosParams); cToP.set(19, chainParams.velasParams); + cToP.set(20, chainParams.iotexParams); return cToP; } /** @@ -534,7 +536,11 @@ export function ChainFactory( let data = res.data.data; const nonce = chain.getNonce(); - if (nonce != Chain.ALGORAND || nonce != Chain.ELROND || nonce != Chain.TEZOS) { + if ( + nonce != Chain.ALGORAND || + nonce != Chain.ELROND || + nonce != Chain.TEZOS + ) { data = data.filter((v: any) => v.native.contractType != "ERC1155"); } From ad43128de6d77eec62df190a7aedcbe255a45fc6 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 31 Jan 2022 15:35:15 +0530 Subject: [PATCH 308/956] chore: packages: bump exchange-rate --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index ea2378d80..892d76262 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2341,7 +2341,7 @@ crypt@0.0.2: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#4f82d7992d53b6f5861bb9f3e9ebf89f58123354" + resolved "git+https://github.com/xp-network/exchange-rate#ccc292d237d584ec4744ac691b83a04f66357b5f" dependencies: axios "^0.21.1" From ce7bafd0d3004ca4bdbb45820a815cef5ee3c72b Mon Sep 17 00:00:00 2001 From: VKint <82875319+VKint@users.noreply.github.com> Date: Mon, 31 Jan 2022 23:01:17 +0200 Subject: [PATCH 309/956] updated iotexParams --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 30cc18619..8208423a6 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -313,9 +313,9 @@ export namespace ChainFactoryConfigs { iotexParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), - minter_addr: "0x721729b81609D6a4BDE1b662cD683e133d3CF33d", - erc1155_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", - erc721_addr: "0xAb61d15351d43A5e98c16D978d6F11dF9Ee5711e", + minter_addr: "0xd9dDB5d6c9D7d764B06E7C5aFF26AD316a4c227F", + erc1155_addr: "0xCEcc1544e90321b4AF0A33773d84e35c1b291cCa", + erc721_addr: "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", validators: EVM_VALIDATORS, nonce: Chain.IOTEX, }, From 10ac4c863398c4d0f7f8e98fa4b0902e93ee1766 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 9 Feb 2022 19:15:40 +0530 Subject: [PATCH 310/956] web3: adapt to new contracts --- package.json | 2 +- src/helpers/chain.ts | 20 +++-- src/helpers/web3.ts | 90 +++++++------------- yarn.lock | 195 ++++++++++++++++++++++++++++++++++++++----- 4 files changed, 215 insertions(+), 92 deletions(-) diff --git a/package.json b/package.json index bdf00af98..41a8f5f70 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,6 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.0.0", - "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist" + "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist-erc1155" } } diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index bef9d00f1..d458c12ad 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,6 +1,7 @@ import { Address } from "@elrondnetwork/erdjs/out"; import axios from "axios"; import BigNumber from "bignumber.js"; +import { BigNumberish } from "ethers"; import { NftMintArgs } from ".."; import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; @@ -90,7 +91,8 @@ export interface TransferNftForeign< chain_nonce: number, to: ForeignAddr, id: NftInfo, - txFees: Balance + txFees: Balance, + mintWith: string ): Promise; } @@ -105,7 +107,8 @@ export interface TransferNftForeignUnsigned< to: ForeignAddr, id: NftInfo, txFees: Balance, - senderAddress: string + senderAddress: string, + mintWith: string ): Promise; } @@ -130,7 +133,8 @@ export interface UnfreezeForeignNft< sender: Signer, to: ForeignAddr, id: NftInfo, - txFees: Balance + txFees: Balance, + nonce: BigNumberish ): Promise; } @@ -144,7 +148,8 @@ export interface UnfreezeForeignNftUnsigned< to: ForeignAddr, id: NftInfo, txFees: Balance, - sender: string + sender: string, + nonce: BigNumberish ): Promise; } @@ -203,11 +208,8 @@ export interface ValidateAddress { export interface EstimateTxFees { estimateValidateTransferNft( to: string, - metadata: NftInfo - ): Promise; - estimateValidateUnfreezeNft( - to: string, - metadata: NftInfo + metadata: NftInfo, + mintWith: string ): Promise; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index fbaefa7b5..66e741a07 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -4,8 +4,6 @@ */ import BigNumber from "bignumber.js"; import { - TransferForeign, - UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, TransferNftForeign, @@ -28,7 +26,7 @@ import { TransactionResponse, Provider } from "@ethersproject/providers"; import { Minter__factory, UserNftMinter__factory, - XPNet__factory, + Erc1155Minter__factory, } from "xpnet-web3-contracts"; import { ChainNonceGet, @@ -114,7 +112,6 @@ export type BaseWeb3Helper = BalanceCheck & export type Web3Helper = BaseWeb3Helper & WrappedBalanceCheck & BatchWrappedBalanceCheck & - TransferForeign & TransferNftForeign< Signer, string, @@ -122,7 +119,6 @@ export type Web3Helper = BaseWeb3Helper & EthNftInfo, TransactionResponse > & - UnfreezeForeign & UnfreezeForeignNft< Signer, string, @@ -215,7 +211,7 @@ export async function web3HelperFactory( const w3 = params.provider; const { minter_addr, provider, erc1155_addr } = params; const minter = Minter__factory.connect(minter_addr, provider); - const erc1155 = XPNet__factory.connect(erc1155_addr, provider); + const erc1155 = Erc1155Minter__factory.connect(erc1155_addr, provider); const event_middleware = axios.create({ baseURL: params.middleware_uri, @@ -340,10 +336,12 @@ export async function web3HelperFactory( } return TransactionStatus.UNKNOWN; }, - async unfreezeWrappedNftTxn(to, id, txFees, _sender) { + async unfreezeWrappedNftTxn(to, id, txFees, _sender, nonce) { const res = await minter.populateTransaction.withdrawNft( to, + nonce, id.native.tokenId, + id.native.contract, { value: EthBN.from(txFees.toString(10)), } @@ -375,32 +373,20 @@ export async function web3HelperFactory( const txm = await erc721.populateTransaction.mint(nft.uris[0]); return txm; }, - async transferNativeToForeign( - sender: Signer, - chain_nonce: number, - to: string, - value: BigNumber, - txFees: BigNumber - ): Promise { - const val = EthBN.from(value.toString(10)); - const totalVal = val.add(EthBN.from(txFees.toString(10))); - const res = await minter.connect(sender).freeze(chain_nonce, to, val, { - value: totalVal, - }); - return res; - }, async transferNftToForeignTxn( chain_nonce: number, to: string, id: NftInfo, txFees: BigNumber, - _sender + _sender, + mintWith ) { const txr = await minter.populateTransaction.freezeErc721( id.native.contract, id.native.tokenId, chain_nonce, to, + mintWith, { value: EthBN.from(txFees.toString(10)), } @@ -412,43 +398,37 @@ export async function web3HelperFactory( chain_nonce: number, to: string, id: NftInfo, - txFees: BigNumber + txFees: BigNumber, + mintWith ): Promise { await approveForMinter(id, sender); const txr = await minter .connect(sender) - .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to, { - value: EthBN.from(txFees.toString(10)), - }); + .freezeErc721( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString(10)), + } + ); await notifyValidator(txr.hash); return txr; }, - async unfreezeWrapped( - sender: Signer, - chain_nonce: number, - to: string, - value: EasyBalance, - txFees: EasyBalance - ): Promise { - const res = await minter - .connect(sender) - .withdraw(chain_nonce, to, value, { - value: EthBN.from(txFees.toString(10)), - }); - - return res.hash; - }, async unfreezeWrappedNft( sender: Signer, to: string, id: NftInfo, - txFees: BigNumber + txFees: BigNumber, + nonce ): Promise { const res = await minter .connect(sender) - .withdrawNft(to, id.native.tokenId, { + .withdrawNft(to, nonce, id.native.tokenId, id.native.contract, { value: EthBN.from(txFees.toString(10)), }); @@ -458,27 +438,17 @@ export async function web3HelperFactory( }, async estimateValidateTransferNft( to: string, - nftUri: NftInfo + nftUri: NftInfo, + mintWith ): Promise { const utx = await minter.populateTransaction.validateTransferNft( randomAction(), to, - nftUri.uri - ); - - return await estimateGas(params.validators, utx); - }, - async estimateValidateUnfreezeNft( - to: string, - nft: NftInfo - ): Promise { - const wrappedData = await extractWrappedMetadata(nft); - - const utx = await minter.populateTransaction.validateUnfreezeNft( - randomAction(), - to, - EthBN.from(wrappedData.wrapped.tokenId), - wrappedData.wrapped.contract + nftUri.uri, + mintWith, + "", + 0, + "" ); return await estimateGas(params.validators, utx); diff --git a/yarn.lock b/yarn.lock index 892d76262..fba8df883 100644 --- a/yarn.lock +++ b/yarn.lock @@ -136,7 +136,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/abi@^5.4.0": +"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== @@ -177,7 +177,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/web" "^5.4.0" -"@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": +"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": version "5.5.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== @@ -212,7 +212,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": +"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== @@ -234,7 +234,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/rlp" "^5.4.0" -"@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": +"@ethersproject/address@5.5.0", "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== @@ -252,7 +252,7 @@ dependencies: "@ethersproject/bytes" "^5.4.0" -"@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": +"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== @@ -267,7 +267,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": +"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== @@ -293,7 +293,7 @@ "@ethersproject/logger" "^5.4.0" bn.js "^4.11.9" -"@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": +"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== @@ -309,7 +309,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": +"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== @@ -323,7 +323,7 @@ dependencies: "@ethersproject/bignumber" "^5.4.0" -"@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": +"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== @@ -362,6 +362,22 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/transactions" "^5.4.0" +"@ethersproject/contracts@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" + integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== + dependencies: + "@ethersproject/abi" "^5.5.0" + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/hash@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" @@ -376,7 +392,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": +"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== @@ -408,7 +424,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" -"@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": +"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== @@ -445,7 +461,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/json-wallets@^5.4.0": +"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.4.0", "@ethersproject/json-wallets@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== @@ -472,7 +488,7 @@ "@ethersproject/bytes" "^5.4.0" js-sha3 "0.5.7" -"@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": +"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== @@ -490,7 +506,7 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== -"@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": +"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== @@ -509,6 +525,13 @@ dependencies: "@ethersproject/logger" "^5.4.0" +"@ethersproject/networks@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.2.tgz#784c8b1283cd2a931114ab428dae1bd00c07630b" + integrity sha512-NEqPxbGBfy6O3x4ZTISb90SjEDkWYDUbEeIFhJly0F7sZjoQMnj5KYzMSkMkLKZ+1fGpx00EDpHQCy6PrDupkQ== + dependencies: + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks@^5.4.0", "@ethersproject/networks@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" @@ -524,7 +547,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/sha2" "^5.4.0" -"@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": +"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== @@ -546,7 +569,7 @@ dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": +"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== @@ -628,6 +651,31 @@ bech32 "1.1.4" ws "7.4.6" +"@ethersproject/providers@5.5.3": + version "5.5.3" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.3.tgz#56c2b070542ac44eb5de2ed3cf6784acd60a3130" + integrity sha512-ZHXxXXXWHuwCQKrgdpIkbzMNJMvs+9YWemanwp1fA7XZEv7QlilseysPvQe0D7Q7DlkJX/w/bGA1MdgK2TbGvA== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/basex" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/networks" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/rlp" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/web" "^5.5.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/random@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" @@ -636,6 +684,14 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" +"@ethersproject/random@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.1.tgz#7cdf38ea93dc0b1ed1d8e480ccdaf3535c555415" + integrity sha512-YaU2dQ7DuhL5Au7KbcQLHxcRHfgyNgvFV4sQOo0HrtW3Zkrc9ctWNz8wXQ4uCSfSDsqX2vcjhroxU5RQRV0nqA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" @@ -652,7 +708,7 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": +"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== @@ -669,7 +725,7 @@ "@ethersproject/logger" "^5.4.0" hash.js "1.1.7" -"@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": +"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== @@ -690,7 +746,7 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": +"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== @@ -713,6 +769,18 @@ "@ethersproject/sha2" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/solidity@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" + integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/strings@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" @@ -722,7 +790,7 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": +"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== @@ -746,7 +814,7 @@ "@ethersproject/rlp" "^5.4.0" "@ethersproject/signing-key" "^5.4.0" -"@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": +"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== @@ -770,6 +838,15 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" +"@ethersproject/units@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" + integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/wallet@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" @@ -791,6 +868,27 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/wordlists" "^5.4.0" +"@ethersproject/wallet@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" + integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== + dependencies: + "@ethersproject/abstract-provider" "^5.5.0" + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/hdnode" "^5.5.0" + "@ethersproject/json-wallets" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/random" "^5.5.0" + "@ethersproject/signing-key" "^5.5.0" + "@ethersproject/transactions" "^5.5.0" + "@ethersproject/wordlists" "^5.5.0" + "@ethersproject/web@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" @@ -802,6 +900,17 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/web@5.5.1": + version "5.5.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.1.tgz#cfcc4a074a6936c657878ac58917a61341681316" + integrity sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg== + dependencies: + "@ethersproject/base64" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" @@ -824,7 +933,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": +"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== @@ -2826,6 +2935,42 @@ ethers@^5.4.4: "@ethersproject/web" "5.4.0" "@ethersproject/wordlists" "5.4.0" +ethers@^5.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.4.tgz#e1155b73376a2f5da448e4a33351b57a885f4352" + integrity sha512-N9IAXsF8iKhgHIC6pquzRgPBJEzc9auw3JoRkaKe+y4Wl/LFBtDDunNe7YmdomontECAcC5APaAgWZBiu1kirw== + dependencies: + "@ethersproject/abi" "5.5.0" + "@ethersproject/abstract-provider" "5.5.1" + "@ethersproject/abstract-signer" "5.5.0" + "@ethersproject/address" "5.5.0" + "@ethersproject/base64" "5.5.0" + "@ethersproject/basex" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/constants" "5.5.0" + "@ethersproject/contracts" "5.5.0" + "@ethersproject/hash" "5.5.0" + "@ethersproject/hdnode" "5.5.0" + "@ethersproject/json-wallets" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/logger" "5.5.0" + "@ethersproject/networks" "5.5.2" + "@ethersproject/pbkdf2" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/providers" "5.5.3" + "@ethersproject/random" "5.5.1" + "@ethersproject/rlp" "5.5.0" + "@ethersproject/sha2" "5.5.0" + "@ethersproject/signing-key" "5.5.0" + "@ethersproject/solidity" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@ethersproject/transactions" "5.5.0" + "@ethersproject/units" "5.5.0" + "@ethersproject/wallet" "5.5.0" + "@ethersproject/web" "5.5.1" + "@ethersproject/wordlists" "5.5.0" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -5061,6 +5206,12 @@ xhr2-cookies@^1.1.0: dependencies: ethers "^5.4.1" +"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist-erc1155": + version "0.1.0" + resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#c96891f1f007f0b6dfa87f262073bab37838fce2" + dependencies: + ethers "^5.5.4" + y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" From f781ac6b15ffecb6cdd1f865c72bd4ea0cd32884 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 9 Feb 2022 20:10:52 +0530 Subject: [PATCH 311/956] web3: fee: set constant transfer fee --- src/helpers/web3.ts | 19 ++----- yarn.lock | 123 -------------------------------------------- 2 files changed, 5 insertions(+), 137 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 66e741a07..c256ee54c 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -437,21 +437,12 @@ export async function web3HelperFactory( return res; }, async estimateValidateTransferNft( - to: string, - nftUri: NftInfo, - mintWith + _to: string, + _nftUri: NftInfo, + _mintWith ): Promise { - const utx = await minter.populateTransaction.validateTransferNft( - randomAction(), - to, - nftUri.uri, - mintWith, - "", - 0, - "" - ); - - return await estimateGas(params.validators, utx); + const gas = await provider.getGasPrice(); + return new BigNumber(gas.mul(150_000).toString()); }, validateAddress(adr) { return Promise.resolve(ethers.utils.isAddress(adr)); diff --git a/yarn.lock b/yarn.lock index fba8df883..548322431 100644 --- a/yarn.lock +++ b/yarn.lock @@ -151,19 +151,6 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/abstract-provider@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.0.tgz#415331031b0f678388971e1987305244edc04e1d" - integrity sha512-vPBR7HKUBY0lpdllIn7tLIzNN7DrVnhCLKSzY0l8WAwxz686m/aL7ASDzrVxV93GJtIub6N2t4dfZ29CkPOxgA== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - "@ethersproject/abstract-provider@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e" @@ -190,17 +177,6 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/web" "^5.5.0" -"@ethersproject/abstract-signer@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.0.tgz#cd5f50b93141ee9f9f49feb4075a0b3eafb57d65" - integrity sha512-AieQAzt05HJZS2bMofpuxMEp81AHufA5D6M4ScKwtolj041nrfIbIi8ciNW7+F59VYxXq+V4c3d568Q6l2m8ew== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/abstract-signer@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81" @@ -275,15 +251,6 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/properties" "^5.5.0" -"@ethersproject/bignumber@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.0.tgz#be8dea298c0ec71208ee60f0b245be0761217ad9" - integrity sha512-OXUu9f9hO3vGRIPxU40cignXZVaYyfx6j9NNMjebKdnaCL3anCLSSy8/b8d03vY6dh7duCC0kW72GEC4tZer2w== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - bn.js "^4.11.9" - "@ethersproject/bignumber@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.1.tgz#64399d3b9ae80aa83d483e550ba57ea062c1042d" @@ -330,22 +297,6 @@ dependencies: "@ethersproject/bignumber" "^5.5.0" -"@ethersproject/contracts@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.0.tgz#e05fe6bd33acc98741e27d553889ec5920078abb" - integrity sha512-hkO3L3IhS1Z3ZtHtaAG/T87nQ7KiPV+/qnvutag35I0IkiQ8G3ZpCQ9NNOpSCzn4pWSW4CfzmtE02FcqnLI+hw== - dependencies: - "@ethersproject/abi" "^5.4.0" - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/contracts@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.1.tgz#3eb4f35b7fe60a962a75804ada2746494df3e470" @@ -511,13 +462,6 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== -"@ethersproject/networks@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.1.tgz#2ce83b8e42aa85216e5d277a7952d97b6ce8d852" - integrity sha512-8SvowCKz9Uf4xC5DTKI8+il8lWqOr78kmiqAVLYT9lzB8aSmJHQMD1GSuJI0CW4hMAnzocpGpZLgiMdzsNSPig== - dependencies: - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks@5.4.2": version "5.4.2" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35" @@ -576,31 +520,6 @@ dependencies: "@ethersproject/logger" "^5.5.0" -"@ethersproject/providers@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.1.tgz#654267b563b833046b9c9647647cfc8267cb93b4" - integrity sha512-p06eiFKz8nu/5Ju0kIX024gzEQIgE5pvvGrBCngpyVjpuLtUIWT3097Agw4mTn9/dEA0FMcfByzFqacBMSgCVg== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - bech32 "1.1.4" - ws "7.4.6" - "@ethersproject/providers@5.4.3": version "5.4.3" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.3.tgz#4cd7ccd9e12bc3875b33df8b24abf735663958a5" @@ -2863,42 +2782,6 @@ ethers@5.4.4: "@ethersproject/web" "5.4.0" "@ethersproject/wordlists" "5.4.0" -ethers@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.1.tgz#bcff1e9f45bf1a061bf313ec04e8d9881d2d53f9" - integrity sha512-SrcddMdCgP1hukDvCPd87Aipbf4NWjQvdfAbZ65XSZGbfyuYPtIrUJPDH5B1SBRsdlfiEgX3eoz28DdBDzMNFg== - dependencies: - "@ethersproject/abi" "5.4.0" - "@ethersproject/abstract-provider" "5.4.0" - "@ethersproject/abstract-signer" "5.4.0" - "@ethersproject/address" "5.4.0" - "@ethersproject/base64" "5.4.0" - "@ethersproject/basex" "5.4.0" - "@ethersproject/bignumber" "5.4.0" - "@ethersproject/bytes" "5.4.0" - "@ethersproject/constants" "5.4.0" - "@ethersproject/contracts" "5.4.0" - "@ethersproject/hash" "5.4.0" - "@ethersproject/hdnode" "5.4.0" - "@ethersproject/json-wallets" "5.4.0" - "@ethersproject/keccak256" "5.4.0" - "@ethersproject/logger" "5.4.0" - "@ethersproject/networks" "5.4.1" - "@ethersproject/pbkdf2" "5.4.0" - "@ethersproject/properties" "5.4.0" - "@ethersproject/providers" "5.4.1" - "@ethersproject/random" "5.4.0" - "@ethersproject/rlp" "5.4.0" - "@ethersproject/sha2" "5.4.0" - "@ethersproject/signing-key" "5.4.0" - "@ethersproject/solidity" "5.4.0" - "@ethersproject/strings" "5.4.0" - "@ethersproject/transactions" "5.4.0" - "@ethersproject/units" "5.4.0" - "@ethersproject/wallet" "5.4.0" - "@ethersproject/web" "5.4.0" - "@ethersproject/wordlists" "5.4.0" - ethers@^5.4.4: version "5.4.6" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.6.tgz#fe0a023956b5502c947f58e82fbcf9a73e5e75b6" @@ -5200,12 +5083,6 @@ xhr2-cookies@^1.1.0: dependencies: cookiejar "^2.1.1" -"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist": - version "0.1.0" - resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#091246c404973dc9024895d28f999b71a702f82e" - dependencies: - ethers "^5.4.1" - "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist-erc1155": version "0.1.0" resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#c96891f1f007f0b6dfa87f262073bab37838fce2" From df162e2ef4d8efc9c0892349ac7b42330d74c4a9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 10 Feb 2022 17:33:08 +0530 Subject: [PATCH 312/956] more erc1155 changes --- src/factory/index.ts | 71 +++++++++++++++++++++++++------------------- src/helpers/chain.ts | 5 ++++ src/helpers/tron.ts | 11 ++++--- src/helpers/web3.ts | 4 +++ 4 files changed, 56 insertions(+), 35 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 71ea2de7d..2e7ae80c6 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -41,7 +41,7 @@ import { exchangeRateRepo } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; -import { PopulatedTransaction } from "ethers"; +import { BigNumberish, PopulatedTransaction } from "ethers"; import { AlgorandParams, AlgorandHelper, @@ -117,6 +117,8 @@ export type ChainFactory = { nft: NftInfo, sender: SignerF, receiver: string, + nonce: BigNumberish, + mintWith: string, fee?: BigNumber.Value ): Promise; /** @@ -213,7 +215,8 @@ export type ChainFactory = { sender: string, to: string, nft: NftInfo, - fee: BigNumber + fee: BigNumber, + mintWith: string ): Promise; generatePreTransferTxn( @@ -364,29 +367,17 @@ export function ChainFactory( nft: NftInfo, receiver: string ) => { - if (fromChain.isWrappedNft(nft)) { - const estimate = await toChain.estimateValidateUnfreezeNft( - receiver, - nft as unknown as NftInfo - ); - const conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate - ); - return conv; - } else { - const estimate = await toChain.estimateValidateTransferNft( - receiver, - nft as unknown as NftInfo - ); - const conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate - ); - return conv; - } + const estimate = await fromChain.estimateValidateTransferNft( + receiver, + nft, + "" + ); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate + ); + return conv; }; async function bridgeStatus(): Promise<{ [x: number]: "alive" | "dead" }> { @@ -467,16 +458,23 @@ export function ChainFactory( async generatePreTransferTxn(from, sender, nft, fee) { return await from.preTransferRawTxn(nft, sender, fee); }, - async generateNftTxn(chain, toNonce, sender, receiver, nft, fee) { + async generateNftTxn(chain, toNonce, sender, receiver, nft, fee, mintWith) { if (chain.isWrappedNft(nft)) { - return chain.unfreezeWrappedNftTxn(receiver, nft, fee, sender); + return chain.unfreezeWrappedNftTxn( + receiver, + nft, + fee, + sender, + mintWith + ); } else { return chain.transferNftToForeignTxn( toNonce, receiver, nft, fee, - sender + sender, + mintWith ); } }, @@ -546,7 +544,16 @@ export function ChainFactory( return data; }, - transferNft: async (fromChain, toChain, nft, sender, receiver, fee) => { + transferNft: async ( + fromChain, + toChain, + nft, + sender, + receiver, + nonce, + mintWith, + fee + ) => { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); if (!fee) { @@ -564,7 +571,8 @@ export function ChainFactory( sender, receiver, nft, - new BigNumber(fee) + new BigNumber(fee), + nonce ); return res; } else { @@ -573,7 +581,8 @@ export function ChainFactory( toChain.getNonce(), receiver, nft, - new BigNumber(fee) + new BigNumber(fee), + mintWith ); return res; } diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index d458c12ad..6640e4780 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -211,6 +211,11 @@ export interface EstimateTxFees { metadata: NftInfo, mintWith: string ): Promise; + estimateValidateUnfreezeNft( + to: string, + metadata: NftInfo, + mintWith: string + ): Promise; } export function ConcurrentSendError(): Error { diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index c306e3ccb..89c77e34d 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -24,7 +24,7 @@ import { Base64 } from "js-base64"; import { Minter__factory, UserNftMinter__factory, - XPNet__factory, + Erc1155Minter__factory, XPNft__factory, } from "xpnet-web3-contracts"; import { @@ -133,8 +133,8 @@ export async function baseTronHelperFactory( setSigner(owner); const contract = await provider.contract().new({ - abi: XPNet__factory.abi, - bytecode: XPNet__factory.bytecode, + abi: Erc1155Minter__factory.abi, + bytecode: Erc1155Minter__factory.bytecode, feeLimit: 3000000000, }); @@ -248,7 +248,10 @@ export async function tronHelperFactory( const { provider, erc1155_addr, minter_addr } = tronParams; const station = new TronStation(provider); const base = await baseTronHelperFactory(provider); - const erc1155 = await provider.contract(XPNet__factory.abi, erc1155_addr); + const erc1155 = await provider.contract( + Erc1155Minter__factory.abi, + erc1155_addr + ); const minter = await provider.contract(Minter__factory.abi, minter_addr); const event_middleware = axios.create({ baseURL: tronParams.middleware_uri, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index c256ee54c..ecea5cbb2 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -285,6 +285,10 @@ export async function web3HelperFactory( ...base, approveForMinter, getProvider: () => provider, + async estimateValidateUnfreezeNft(_to, _id, _mW) { + const gas = await provider.getGasPrice(); + return new BigNumber(gas.mul(150_000).toString()); + }, isApprovedForMinter, preTransfer: (s, id, _fee) => approveForMinter(id, s), extractAction, From fc8df1c69f1d547a3616b1a7ad02dd4a7e92749a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 10 Feb 2022 21:00:09 +0530 Subject: [PATCH 313/956] chains: elrond: basic erc1155 changes --- src/factory/index.ts | 4 +++- src/helpers/chain.ts | 5 +++-- src/helpers/elrond.ts | 38 ++++++++++++++++++++++++++++---------- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 2e7ae80c6..c573c040e 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -465,6 +465,7 @@ export function ChainFactory( nft, fee, sender, + mintWith ); } else { @@ -572,7 +573,8 @@ export function ChainFactory( receiver, nft, new BigNumber(fee), - nonce + nonce, + mintWith ); return res; } else { diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 6640e4780..feef7afc1 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -134,7 +134,8 @@ export interface UnfreezeForeignNft< to: ForeignAddr, id: NftInfo, txFees: Balance, - nonce: BigNumberish + nonce: BigNumberish, + mintWith: string ): Promise; } @@ -149,7 +150,7 @@ export interface UnfreezeForeignNftUnsigned< id: NftInfo, txFees: Balance, sender: string, - nonce: BigNumberish + mintWith: string ): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index d1a0f5af7..dec4b5eef 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -446,7 +446,8 @@ export const elrondHelperFactory: ( address: Address, to: string, { tokenIdentifier, nonce }: EsdtNftInfo, - tx_fees: BigNumber + tx_fees: BigNumber, + mintWith: string ) => { return new Transaction({ receiver: address, @@ -468,6 +469,7 @@ export const elrondHelperFactory: ( .addArg(new BytesValue(Buffer.from("freezeSendNft", "ascii"))) .addArg(new U64Value(new BigNumber(chain_nonce))) .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .addArg(new BytesValue(Buffer.from(mintWith, "ascii"))) .build(), }); }; @@ -476,7 +478,8 @@ export const elrondHelperFactory: ( address: Address, to: string, id: number, - tx_fees: BigNumber + tx_fees: BigNumber, + mintWith: string ) => { return new Transaction({ receiver: address, @@ -493,6 +496,7 @@ export const elrondHelperFactory: ( .addArg(new BigUIntValue(tx_fees)) .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .addArg(new BytesValue(Buffer.from(mintWith, "ascii"))) .build(), }); }; @@ -665,21 +669,30 @@ export const elrondHelperFactory: ( return wallet.balance.valueOf(); }, balanceWrappedBatch, - async transferNftToForeignTxn(chain_nonce, to, nft, txFees, sender) { + async transferNftToForeignTxn( + chain_nonce, + to, + nft, + txFees, + sender, + mintWith + ) { return unsignedTransferNftTxn( chain_nonce, new Address(sender), to, nft.native, - new BigNumber(txFees.toString()) + new BigNumber(txFees.toString()), + mintWith ).toPlainObject(); }, - async unfreezeWrappedNftTxn(to, nft, fee, sender) { + async unfreezeWrappedNftTxn(to, nft, fee, sender, mintWith) { const txu = unsignedUnfreezeNftTxn( new Address(sender), to, nft.native.nonce, - new BigNumber(fee.toString()) + new BigNumber(fee.toString()), + mintWith ); txu.getSignature().hex(); return txu.toPlainObject(); @@ -740,14 +753,16 @@ export const elrondHelperFactory: ( chain_nonce: number, to: string, info: NftInfo, - txFees: EasyBalance + txFees: EasyBalance, + mintWith ): Promise { const txu = unsignedTransferNftTxn( chain_nonce, await getAddress(sender), to, info.native, - new BigNumber(txFees.toString()) + new BigNumber(txFees.toString()), + mintWith ); const tx = await signAndSend(sender, txu); @@ -757,13 +772,16 @@ export const elrondHelperFactory: ( sender: ElrondSigner, to: string, nft: NftInfo, - txFees: EasyBalance + txFees: EasyBalance, + _nonce, + mintWith ): Promise { const txu = unsignedUnfreezeNftTxn( await getAddress(sender), to, nft.native.nonce, - new BigNumber(txFees.toString()) + new BigNumber(txFees.toString()), + mintWith ); const tx = await signAndSend(sender, txu); From 263a716a0bc3a2b8a1d45a2799d4a56e57ac534b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 11 Feb 2022 01:23:31 +0530 Subject: [PATCH 314/956] chains: elrond: fix unfreeze --- src/factory/index.ts | 21 +++++++++++++++------ src/helpers/chain.ts | 5 ++--- src/helpers/elrond.ts | 13 ++++++------- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index c573c040e..20792dc0b 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -216,7 +216,8 @@ export type ChainFactory = { to: string, nft: NftInfo, fee: BigNumber, - mintWith: string + mintWith: string, + nonce: string ): Promise; generatePreTransferTxn( @@ -458,7 +459,16 @@ export function ChainFactory( async generatePreTransferTxn(from, sender, nft, fee) { return await from.preTransferRawTxn(nft, sender, fee); }, - async generateNftTxn(chain, toNonce, sender, receiver, nft, fee, mintWith) { + async generateNftTxn( + chain, + toNonce, + sender, + receiver, + nft, + fee, + mw, + nonce + ) { if (chain.isWrappedNft(nft)) { return chain.unfreezeWrappedNftTxn( receiver, @@ -466,7 +476,7 @@ export function ChainFactory( fee, sender, - mintWith + nonce ); } else { return chain.transferNftToForeignTxn( @@ -475,7 +485,7 @@ export function ChainFactory( nft, fee, sender, - mintWith + mw ); } }, @@ -573,8 +583,7 @@ export function ChainFactory( receiver, nft, new BigNumber(fee), - nonce, - mintWith + nonce.toString() ); return res; } else { diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index feef7afc1..ad6da3a27 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -134,8 +134,7 @@ export interface UnfreezeForeignNft< to: ForeignAddr, id: NftInfo, txFees: Balance, - nonce: BigNumberish, - mintWith: string + nonce: string ): Promise; } @@ -150,7 +149,7 @@ export interface UnfreezeForeignNftUnsigned< id: NftInfo, txFees: Balance, sender: string, - mintWith: string + nonce: string ): Promise; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index dec4b5eef..179b69548 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -479,7 +479,7 @@ export const elrondHelperFactory: ( to: string, id: number, tx_fees: BigNumber, - mintWith: string + chain_nonce: string ) => { return new Transaction({ receiver: address, @@ -495,8 +495,8 @@ export const elrondHelperFactory: ( .addArg(new U64Value(new BigNumber(0x0))) .addArg(new BigUIntValue(tx_fees)) .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) + .addArg(new U64Value(new BigNumber(chain_nonce))) .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .addArg(new BytesValue(Buffer.from(mintWith, "ascii"))) .build(), }); }; @@ -686,13 +686,13 @@ export const elrondHelperFactory: ( mintWith ).toPlainObject(); }, - async unfreezeWrappedNftTxn(to, nft, fee, sender, mintWith) { + async unfreezeWrappedNftTxn(to, nft, fee, sender, nonce) { const txu = unsignedUnfreezeNftTxn( new Address(sender), to, nft.native.nonce, new BigNumber(fee.toString()), - mintWith + nonce ); txu.getSignature().hex(); return txu.toPlainObject(); @@ -773,15 +773,14 @@ export const elrondHelperFactory: ( to: string, nft: NftInfo, txFees: EasyBalance, - _nonce, - mintWith + nonce ): Promise { const txu = unsignedUnfreezeNftTxn( await getAddress(sender), to, nft.native.nonce, new BigNumber(txFees.toString()), - mintWith + nonce ); const tx = await signAndSend(sender, txu); From 69133449f5868210fe2918d9db4c4fdc75bc56c9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 13 Feb 2022 15:12:18 +0530 Subject: [PATCH 315/956] factory: adapt transfer nft --- src/factory/index.ts | 19 +++++++------------ src/helpers/web3.ts | 3 ++- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 20792dc0b..4c08c3bc4 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -72,7 +72,7 @@ type FullChain = TransferNftForeign< UnfreezeForeignNft & EstimateTxFees & NftUriChain & - ValidateAddress; + ValidateAddress & { XpNft?: string }; type RawTxnBuiladableChain = TransferNftForeignUnsigned< string, @@ -117,9 +117,8 @@ export type ChainFactory = { nft: NftInfo, sender: SignerF, receiver: string, - nonce: BigNumberish, - mintWith: string, - fee?: BigNumber.Value + fee?: BigNumber.Value, + mintWith?: string ): Promise; /** * Mints an NFT on the chain. @@ -561,9 +560,8 @@ export function ChainFactory( nft, sender, receiver, - nonce, - mintWith, - fee + fee, + mintWith ) => { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); @@ -575,15 +573,12 @@ export function ChainFactory( } if (fromChain.isWrappedNft(nft)) { const meta = await extractWrappedMetadata(nft); - if (meta.wrapped.origin != toChain.getNonce().toString()) { - throw Error("trying to send wrapped nft to non-origin chain!!!"); - } const res = await fromChain.unfreezeWrappedNft( sender, receiver, nft, new BigNumber(fee), - nonce.toString() + toChain.getNonce().toString() ); return res; } else { @@ -593,7 +588,7 @@ export function ChainFactory( receiver, nft, new BigNumber(fee), - mintWith + mintWith || toChain.XpNft || "" ); return res; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index ecea5cbb2..5cbb0ee09 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -150,7 +150,7 @@ export type Web3Helper = BaseWeb3Helper & PreTransferRawTxn & ExtractTxnStatus & MintRawTxn & - GetProvider; + GetProvider & { XpNft: string }; /** * Create an object implementing minimal utilities for a web3 chain @@ -283,6 +283,7 @@ export async function web3HelperFactory( return { ...base, + XpNft: params.erc721_addr, approveForMinter, getProvider: () => provider, async estimateValidateUnfreezeNft(_to, _id, _mW) { From a0dc0b2889c4659e09253422f6885bfdbdbe5d8d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 13 Feb 2022 15:44:22 +0530 Subject: [PATCH 316/956] chains: web3: add batch methods --- src/helpers/chain.ts | 45 +++++++++++++++++++++++++++++ src/helpers/web3.ts | 68 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index ad6da3a27..f46709a6a 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -252,6 +252,51 @@ export interface ExtractTxnStatus { extractTxnStatus(txn: string): Promise; } +export interface TransferNftForeignBatch< + Signer, + ForeignAddr, + Balance, + RawNft, + Resp +> { + transferNftBatchToForeign( + sender: Signer, + chain_nonce: number, + to: ForeignAddr, + id: NftInfo[], + mintWith: string, + txFees: Balance + ): Promise; +} + +export interface UnfreezeForeignNftBatch< + Signer, + ForeignAddr, + Balance, + RawNft, + Resp +> { + unfreezeWrappedNftBatch( + sender: Signer, + chainNonce: number, + to: ForeignAddr, + nfts: NftInfo[], + txFees: Balance + ): Promise; +} + +export interface EstimateTxFeesBatch { + estimateValidateTransferNftBatch( + to: string, + metadatas: NftInfo[], + mintWith: string[] + ): Promise; + estimateValidateUnfreezeNftBatch( + to: string, + metadatas: NftInfo[] + ): Promise; +} + export function extractWrappedMetadata( nft: NftInfo ): Promise> { diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 5cbb0ee09..a1e99e465 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -12,6 +12,9 @@ import { MintNft, WrappedNftCheck, GetProvider, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + EstimateTxFeesBatch, } from "./chain"; import { Signer, @@ -126,8 +129,23 @@ export type Web3Helper = BaseWeb3Helper & EthNftInfo, TransactionResponse > & + TransferNftForeignBatch< + Signer, + string, + BigNumber, + EthNftInfo, + TransactionResponse + > & + UnfreezeForeignNftBatch< + Signer, + string, + BigNumber, + EthNftInfo, + TransactionResponse + > & WrappedNftCheck & EstimateTxFees & + EstimateTxFeesBatch & ChainNonceGet & IsApproved & Approve & @@ -353,6 +371,56 @@ export async function web3HelperFactory( ); return res; }, + async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { + const res = await minter.connect(signer).withdrawNftBatch( + to, + chainNonce, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + nfts[0].native.contract, + { + value: EthBN.from(txFees.toString()), + } + ); + + await notifyValidator(res.hash); + + return res; + }, + async transferNftBatchToForeign( + signer, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const res = await minter.connect(signer).freezeErc1155Batch( + nfts[0].native.contract, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + chainNonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString()), + } + ); + + await notifyValidator(res.hash); + + return res; + }, + async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { + const gasPrice = await w3.getGasPrice(); + const gas = 40_000 + 60_000 * nfts.length; + return new BigNumber(gasPrice.mul(gas).toString()); + }, + async estimateValidateUnfreezeNftBatch(_to, nfts) { + const gasPrice = await w3.getGasPrice(); + const gas = 40_000 + 60_000 * nfts.length; + return new BigNumber(gasPrice.mul(gas).toString()); + }, createWallet(privateKey: string): Wallet { return new Wallet(privateKey, provider); }, From 8c0015670f288ddadd4d04c6860d03b586d4b366 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 13 Feb 2022 15:52:12 +0530 Subject: [PATCH 317/956] chains: elrond: add batch methods --- src/helpers/elrond.ts | 92 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 179b69548..e8eaf5782 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -38,6 +38,9 @@ import { UnfreezeForeignNft, WrappedNftCheck, TransactionStatus, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + EstimateTxFeesBatch, } from "./chain"; import { ChainNonceGet, @@ -228,6 +231,20 @@ export type ElrondHelper = BalanceCheck & EsdtNftInfo, Transaction > & + TransferNftForeignBatch< + ElrondSigner, + string, + BigNumber, + EsdtNftInfo, + Transaction + > & + UnfreezeForeignNftBatch< + ElrondSigner, + string, + BigNumber, + EsdtNftInfo, + Transaction + > & IssueESDTNFT & MintNft & { mintableEsdts(address: Address): Promise; @@ -237,6 +254,7 @@ export type ElrondHelper = BalanceCheck & ExtractAction & PreTransfer & EstimateTxFees & + EstimateTxFeesBatch & TransferNftForeignUnsigned< string, BigNumber, @@ -882,6 +900,80 @@ export const elrondHelperFactory: ( async estimateValidateUnfreezeNft(_to: string, _nftUri: NftInfo) { return estimateGas(NFT_UNFREEZE_COST, elrondParams.validators.length); // TODO: properly estimate NFT_UNFREEZE_COST }, + async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { + const txu = new Transaction({ + receiver: await getAddress(sender), + gasLimit: new GasLimit(40000000 + 5000000 * nfts.length), // TODO: better estimate + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .setArgs([ + new AddressValue(mintContract), + new BigUIntValue(new BigNumber(nfts.length + 1)), + ...nfts.flatMap((nft) => [ + new TokenIdentifierValue(esdtNftHex), + new U64Value(new BigNumber(nft.native.nonce)), + new BigUIntValue(new BigNumber(1)), + ]), + new TokenIdentifierValue(esdtSwaphex), + new U64Value(new BigNumber(0x0)), + new BigUIntValue(txFees), + new BytesValue(Buffer.from("withdrawBatchNft", "ascii")), + new U64Value(new BigNumber(chainNonce)), + new BytesValue(Buffer.from(to, "ascii")), + ]) + .build(), + }); + const tx = await signAndSend(sender, txu); + return tx; + }, + async transferNftBatchToForeign( + sender, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const txu = new Transaction({ + receiver: await getAddress(sender), + gasLimit: new GasLimit(50000000 + 5000000 * nfts.length), // TODO: better estimate + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .setArgs([ + new AddressValue(mintContract), + new BigUIntValue(new BigNumber(nfts.length + 1)), + ...nfts.flatMap((nft) => [ + new TokenIdentifierValue( + Buffer.from(tokenIdentReal(nft.native.tokenIdentifier), "utf-8") + ), + new U64Value(new BigNumber(nft.native.nonce)), + new BigUIntValue(new BigNumber(1)), + ]), + new TokenIdentifierValue(esdtSwaphex), + new U64Value(new BigNumber(0x0)), + new BigUIntValue(txFees), + new BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), + new U64Value(new BigNumber(chainNonce)), + new BytesValue(Buffer.from(to, "ascii")), + new BytesValue(Buffer.from(mintWith, "ascii")), + ]) + .build(), + }); + const tx = await signAndSend(sender, txu); + return tx; + }, + async estimateValidateTransferNftBatch(_, nfts) { + return estimateGas( + new BigNumber(60000000 + 5000000 * nfts.length), + elrondParams.validators.length + ); + }, + async estimateValidateUnfreezeNftBatch(_, nfts) { + return estimateGas( + new BigNumber(70000000 + 5000000 * nfts.length), + elrondParams.validators.length + ); + }, wrapNftForTransfer(nft: NftInfo) { // Approximation for wrapping this nft const dataLen = 4 + tokenIdentReal(nft.native.tokenIdentifier).length + 4; From ffe147577d45885d97ac5f9a034a9f4d6ca24841 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 13 Feb 2022 16:28:15 +0530 Subject: [PATCH 318/956] web3: implement functionality for erc1155 --- src/helpers/web3.ts | 87 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 77 insertions(+), 10 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index a1e99e465..bcaa01061 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -24,12 +24,15 @@ import { ethers, VoidSigner, providers, + ContractTransaction, } from "ethers"; import { TransactionResponse, Provider } from "@ethersproject/providers"; import { Minter__factory, UserNftMinter__factory, Erc1155Minter__factory, + Erc1155Minter, + UserNftMinter, } from "xpnet-web3-contracts"; import { ChainNonceGet, @@ -59,6 +62,7 @@ export type EthNftInfo = { owner: string; uri: string; contract: string; + contractType: "ERC721" | "ERC1155"; }; /** @@ -223,6 +227,56 @@ export interface Web3Params { nonce: number; } +type NftMethodVal = { + freeze: "freezeErc1155" | "freezeErc721"; + validateUnfreeze: "validateUnfreezeErc1155" | "validateUnfreezeErc721"; + umt: typeof Erc1155Minter__factory | typeof UserNftMinter__factory; + approved: ( + umt: T, + sender: string, + minterAddr: string, + tok: string + ) => Promise; + approve: (umt: T, forAddr: string, tok: string) => Promise; +}; + +type EthNftMethodVal = NftMethodVal; + +type NftMethodMap = Record< + "ERC1155" | "ERC721", + EthNftMethodVal | EthNftMethodVal +>; + +export const NFT_METHOD_MAP: NftMethodMap = { + ERC1155: { + freeze: "freezeErc1155", + validateUnfreeze: "validateUnfreezeErc1155", + umt: Erc1155Minter__factory, + approved: (umt: Erc1155Minter, sender: string, minterAddr: string) => { + return umt.isApprovedForAll(sender, minterAddr); + }, + approve: (umt: Erc1155Minter, forAddr: string) => { + return umt.setApprovalForAll(forAddr, true); + }, + }, + ERC721: { + freeze: "freezeErc721", + validateUnfreeze: "validateUnfreezeErc721", + umt: UserNftMinter__factory, + approved: async ( + umt: UserNftMinter, + _: string, + minterAddr: string, + tok: string + ) => { + return (await umt.getApproved(tok)) == minterAddr; + }, + approve: (umt: UserNftMinter, forAddr: string, tok: string) => { + return umt.approve(forAddr, tok); + }, + }, +}; + export async function web3HelperFactory( params: Web3Params ): Promise { @@ -277,22 +331,33 @@ export async function web3HelperFactory( id: NftInfo, signer: Signer ) => { - const erc = UserNftMinter__factory.connect(id.native.contract, signer); - const approvedAddress = await erc.getApproved(id.native.tokenId); - if (approvedAddress === minter_addr) { - return true; - } - return false; + const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + signer + ); + return await NFT_METHOD_MAP[id.native.contractType].approved( + erc as any, + await signer.getAddress(), + minter_addr, + id.native.tokenId + ); }; const approveForMinter = async (id: NftInfo, sender: Signer) => { const isApproved = await isApprovedForMinter(id, sender); - const erc = UserNftMinter__factory.connect(id.native.contract, sender); if (isApproved) { return undefined; } + const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + sender + ); - const receipt = await erc.approve(minter_addr, id.native.tokenId); + const receipt = await NFT_METHOD_MAP[id.native.contractType].approve( + erc as any, + minter_addr, + id.native.tokenId + ); await receipt.wait(); return receipt.hash; }; @@ -454,7 +519,8 @@ export async function web3HelperFactory( _sender, mintWith ) { - const txr = await minter.populateTransaction.freezeErc721( + const method = NFT_METHOD_MAP[id.native.contractType].freeze; + const txr = await minter.populateTransaction[method]( id.native.contract, id.native.tokenId, chain_nonce, @@ -475,10 +541,11 @@ export async function web3HelperFactory( mintWith ): Promise { await approveForMinter(id, sender); + const method = NFT_METHOD_MAP[id.native.contractType].freeze; const txr = await minter .connect(sender) - .freezeErc721( + [method]( id.native.contract, id.native.tokenId, chain_nonce, From bab82db2f1bab58c344425b2bf8680cde15289f7 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 13 Feb 2022 16:30:03 +0530 Subject: [PATCH 319/956] factory: do not filter erc1155 nfts --- src/factory/index.ts | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 4c08c3bc4..420f92b5d 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -541,18 +541,7 @@ export function ChainFactory( await new Promise((r) => setTimeout(r, 30000)); return await this.nftList(chain, owner); } - let data = res.data.data; - - const nonce = chain.getNonce(); - if ( - nonce != Chain.ALGORAND || - nonce != Chain.ELROND || - nonce != Chain.TEZOS - ) { - data = data.filter((v: any) => v.native.contractType != "ERC1155"); - } - - return data; + return res.data.data; }, transferNft: async ( fromChain, From 184f5a42082242b9fcd354bf5eece10ac84e2cd4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 13 Feb 2022 19:16:47 +0530 Subject: [PATCH 320/956] factory: improve implementation of transfer --- package.json | 2 +- src/factory/index.ts | 96 +++++++++++++++++++++++++++++++++++++++++++- yarn.lock | 88 ---------------------------------------- 3 files changed, 96 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index 41a8f5f70..ee732ad0b 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "axios": "^0.21.1", "bignumber.js": "^9.0.1", "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", - "ethers": "5.4.4", + "ethers": "^5.5.4", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", diff --git a/src/factory/index.ts b/src/factory/index.ts index 420f92b5d..e551d35b6 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -52,6 +52,11 @@ import { import algosdk from "algosdk"; import { Base64 } from "js-base64"; import { TezosHelper, TezosParams } from "../helpers/tezos"; +import { + EstimateTxFeesBatch, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, +} from "../helpers/chain"; export type CrossChainHelper = | ElrondHelper @@ -72,7 +77,12 @@ type FullChain = TransferNftForeign< UnfreezeForeignNft & EstimateTxFees & NftUriChain & - ValidateAddress & { XpNft?: string }; + ValidateAddress & { XpNft?: string } & EstimateTxFeesBatch< + BigNumber, + RawNft + > & + TransferNftForeignBatch & + UnfreezeForeignNftBatch; type RawTxnBuiladableChain = TransferNftForeignUnsigned< string, @@ -120,6 +130,16 @@ export type ChainFactory = { fee?: BigNumber.Value, mintWith?: string ): Promise; + + transferBatchNft( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo[], + sender: SignerF, + receiver: string, + fee?: BigNumber.Value, + mintWith?: string + ): Promise; /** * Mints an NFT on the chain. * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. @@ -153,6 +173,13 @@ export type ChainFactory = { nft: NftInfo, receiver: string ): Promise; + + estimateBatchFees( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo[], + receiver: string + ): Promise; /** * * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. @@ -390,6 +417,25 @@ export function ChainFactory( ); } + async function estimateBatchFees( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo[], + receiver: string + ): Promise { + const estimate = await fromChain.estimateValidateTransferNftBatch( + receiver, + nft, + new Array(nft.length).fill(toChain.XpNft) + ); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate.times(nft.length) + ); + return conv; + } + async function requireBridge(chains: number[]): Promise { const status = await heartbeatRepo.status(); let deadChain: number | undefined; @@ -488,6 +534,54 @@ export function ChainFactory( ); } }, + async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { + type Result = ReturnType; + let result: Result[] = []; + await requireBridge([from.getNonce(), to.getNonce()]); + + if (!fee) { + fee = await estimateBatchFees(from, to, nfts, receiver); + } + if (!(await to.validateAddress(receiver))) { + throw Error("invalid address"); + } + const wrapped: NftInfo[] = []; + const unwrapped: NftInfo[] = []; + nfts.forEach((e) => { + // @ts-ignore + if (e.native.contractType && e.native.contractType === "ERC721") { + throw new Error(`ERC721 is not supported`); + } + if (from.isWrappedNft(e)) { + wrapped.push(e); + } else { + unwrapped.push(e); + } + }); + wrapped.length && + result.push( + from.transferNftBatchToForeign( + signer, + to.getNonce(), + receiver, + unwrapped, + mw || to.XpNft || "", + new BigNumber(fee) + ) + ); + unwrapped.length && + result.push( + from.unfreezeWrappedNftBatch( + signer, + to.getNonce(), + receiver, + wrapped, + new BigNumber(fee) + ) + ); + return await Promise.all(result); + }, + estimateBatchFees, async generateMintTxn(chain, sender, nft) { return await chain.mintRawTxn(nft, sender); }, diff --git a/yarn.lock b/yarn.lock index 548322431..08542e7d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -106,21 +106,6 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@ethersproject/abi@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.0.tgz#a6d63bdb3672f738398846d4279fa6b6c9818242" - integrity sha512-9gU2H+/yK1j2eVMdzm6xvHSnMxk8waIHQGYCZg5uvAyH0rsAzxkModzBSpbAkAuhKFEovC2S9hM4nPuLym8IZw== - dependencies: - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/abi@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.1.tgz#6ac28fafc9ef6f5a7a37e30356a2eb31fa05d39b" @@ -447,11 +432,6 @@ "@ethersproject/bytes" "^5.5.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.0.tgz#f39adadf62ad610c420bcd156fd41270e91b3ca9" - integrity sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ== - "@ethersproject/logger@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" @@ -499,13 +479,6 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/sha2" "^5.5.0" -"@ethersproject/properties@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.0.tgz#38ba20539b44dcc5d5f80c45ad902017dcdbefe7" - integrity sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A== - dependencies: - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.1.tgz#9f051f976ce790142c6261ccb7b826eaae1f2f36" @@ -520,31 +493,6 @@ dependencies: "@ethersproject/logger" "^5.5.0" -"@ethersproject/providers@5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.3.tgz#4cd7ccd9e12bc3875b33df8b24abf735663958a5" - integrity sha512-VURwkaWPoUj7jq9NheNDT5Iyy64Qcyf6BOFDwVdHsmLmX/5prNjFrgSX3GHPE4z1BRrVerDxe2yayvXKFm/NNg== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - bech32 "1.1.4" - ws "7.4.6" - "@ethersproject/providers@5.4.5": version "5.4.5" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" @@ -2746,42 +2694,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -ethers@5.4.4: - version "5.4.4" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.4.tgz#35cce530505b84c699da944162195cfb3f894947" - integrity sha512-zaTs8yaDjfb0Zyj8tT6a+/hEkC+kWAA350MWRp6yP5W7NdGcURRPMOpOU+6GtkfxV9wyJEShWesqhE/TjdqpMA== - dependencies: - "@ethersproject/abi" "5.4.0" - "@ethersproject/abstract-provider" "5.4.1" - "@ethersproject/abstract-signer" "5.4.1" - "@ethersproject/address" "5.4.0" - "@ethersproject/base64" "5.4.0" - "@ethersproject/basex" "5.4.0" - "@ethersproject/bignumber" "5.4.1" - "@ethersproject/bytes" "5.4.0" - "@ethersproject/constants" "5.4.0" - "@ethersproject/contracts" "5.4.1" - "@ethersproject/hash" "5.4.0" - "@ethersproject/hdnode" "5.4.0" - "@ethersproject/json-wallets" "5.4.0" - "@ethersproject/keccak256" "5.4.0" - "@ethersproject/logger" "5.4.0" - "@ethersproject/networks" "5.4.2" - "@ethersproject/pbkdf2" "5.4.0" - "@ethersproject/properties" "5.4.0" - "@ethersproject/providers" "5.4.3" - "@ethersproject/random" "5.4.0" - "@ethersproject/rlp" "5.4.0" - "@ethersproject/sha2" "5.4.0" - "@ethersproject/signing-key" "5.4.0" - "@ethersproject/solidity" "5.4.0" - "@ethersproject/strings" "5.4.0" - "@ethersproject/transactions" "5.4.0" - "@ethersproject/units" "5.4.0" - "@ethersproject/wallet" "5.4.0" - "@ethersproject/web" "5.4.0" - "@ethersproject/wordlists" "5.4.0" - ethers@^5.4.4: version "5.4.6" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.6.tgz#fe0a023956b5502c947f58e82fbcf9a73e5e75b6" From 23a9aac22295ff60b0918a476264f04ce85d688f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Feb 2022 15:54:54 +0530 Subject: [PATCH 321/956] factory: insert new contract addresses --- src/consts.ts | 2 +- src/factory/factories.ts | 130 +++++++++++++++++++++++---------------- src/helpers/web3.ts | 3 +- 3 files changed, 79 insertions(+), 56 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 2065ea556..54f2250d1 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -271,7 +271,7 @@ export const Config: AppConfig = { nftListUri: "https://indexnft.herokuapp.com", nftListAuthToken: "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTYzODk2MjMzOCwiZXhwIjoxNjQ2NzM4MzM4fQ.9eQMNMtt-P6myPlji7nBC9PAwTftd0qQvwnIZSt4ycM4E45NpzCF0URsdYj_YN_xqQKQpcHiZu1o4EXjJa_-Zw", - txSocketUri: "https://sockettx.herokuapp.com", + txSocketUri: "transaction-socket.xp.network", tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", }; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 8208423a6..5a64902d6 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -6,18 +6,18 @@ import { ethers } from "ethers"; import { TezosToolkit } from "@taquito/taquito"; const EVM_VALIDATORS = [ - "0xadFF46B0064a490c1258506d91e4325A277B22aE", - "0xa50d8208B15F5e79A1ceABdB4a3ED1866CEB764c", - "0xa3F99eF33eDA9E54DbA4c04a6133c0c507bA4352", - // '0xAC415a404b5275EF9B3E1808870d8393eCa843Ec', - // '0xca2e73418bEbe203c9E88407f68C216CdCd60b38', - // '0x2523d5F7E74A885c720085713a71389845A8F0D2', - // '0xEBAC44f9e63988112Eb4AfE8B8E03e179b6429A6' + "0xffa74a26bf87a32992bb4be080467bb4a8019e00", + "0x837b2eb764860b442c971f98f505e7c5f419edd7", + "0x9671ce5a02eb53cf0f2cbd220b34e50c39c0bf23", + "0x90e79cc7a06dbd227569920a8c4a625f630d77f4", + "0xdc80905cafeda39cb19a566baeef52472848e82f", + "0x77745cd585798e55938940e3d4dd0fd7cde7bdd6", + "0xc2a29b4e9fa71e9033a52611544403241c56ac5e", ]; const EVM_TESTNET_VALIDATORS = ["0x63A0bC7286e80A3a46D5113e1C059e7a1e14e0fc"]; -const middleware_uri = "https://notifierrest.herokuapp.com"; +const middleware_uri = "https://notifier.xp.network"; export namespace ChainFactoryConfigs { export const TestNet: () => Partial = () => ({ @@ -56,7 +56,8 @@ export namespace ChainFactoryConfigs { minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.AVALANCHE, }, polygonParams: { @@ -65,7 +66,8 @@ export namespace ChainFactoryConfigs { minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.POLYGON, }, fantomParams: { @@ -74,7 +76,8 @@ export namespace ChainFactoryConfigs { minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.FANTOM, }, bscParams: { @@ -83,7 +86,8 @@ export namespace ChainFactoryConfigs { minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.BSC, }, celoParams: { @@ -92,7 +96,8 @@ export namespace ChainFactoryConfigs { minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.CELO, }, harmonyParams: { @@ -101,7 +106,8 @@ export namespace ChainFactoryConfigs { minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.HARMONY, }, ropstenParams: { @@ -110,7 +116,8 @@ export namespace ChainFactoryConfigs { minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.ETHEREUM, }, xDaiParams: { @@ -119,7 +126,8 @@ export namespace ChainFactoryConfigs { minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.XDAI, }, algorandParams: { @@ -137,7 +145,8 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", middleware_uri, }, tezosParams: { @@ -156,7 +165,8 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc721_addr: "0x80653c90614155633252d32698164DBbBC421782", minter_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.VELAS, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), }, @@ -166,7 +176,8 @@ export namespace ChainFactoryConfigs { minter_addr: "0x0000000000000000000000000000000000000000", erc1155_addr: "0x0000000000000000000000000000000000000000", erc721_addr: "0x0000000000000000000000000000000000000000", - validators: EVM_TESTNET_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.IOTEX, }, }); @@ -204,37 +215,41 @@ export namespace ChainFactoryConfigs { avalancheParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), - minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", - erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - validators: EVM_VALIDATORS, + minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", + erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", nonce: Chain.AVALANCHE, }, polygonParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), - minter_addr: "0x2f072879411503580B8974A221bf76638C50a82a", - erc1155_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", - erc721_addr: "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", - validators: EVM_VALIDATORS, + minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc1155_addr: "0x47e9Fbef8C83A1714F1951F142132E6e90F5fa5D", + erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721Minter: "0xBd770416a3345F91E4B34576cb804a576fa48EB1", + erc1155Minter: "0x5a443704dd4B594B382c22a083e2BD3090A6feF3", nonce: Chain.POLYGON, }, fantomParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), - minter_addr: "0x5B916EFb0e7bc0d8DdBf2d6A9A7850FdAb1984C4", - erc1155_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - erc721_addr: "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - validators: EVM_VALIDATORS, + minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", + erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", nonce: Chain.FANTOM, }, bscParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), - minter_addr: "0xF8679A16858cB7d21b3aF6b2AA1d6818876D3741", - erc1155_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", - erc721_addr: "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", - validators: EVM_VALIDATORS, + minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", + erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", nonce: Chain.BSC, }, celoParams: { @@ -243,7 +258,8 @@ export namespace ChainFactoryConfigs { minter_addr: "string", erc1155_addr: "string", erc721_addr: "string", - validators: EVM_VALIDATORS, + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.CELO, }, harmonyParams: { @@ -252,7 +268,8 @@ export namespace ChainFactoryConfigs { minter_addr: "string", erc1155_addr: "string", erc721_addr: "string", - validators: [], + erc1155Minter: "string", + erc721Minter: "string", nonce: Chain.HARMONY, }, ropstenParams: { @@ -261,16 +278,18 @@ export namespace ChainFactoryConfigs { minter_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", erc1155_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", erc721_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", - validators: EVM_VALIDATORS, + erc1155Minter: "0x0", + erc721Minter: "0x0", nonce: Chain.ETHEREUM, }, xDaiParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), - minter_addr: "0x14fb9d669d4ddf712f1c56Ba7C54FF82D9be6377", - erc1155_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", - erc721_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", - validators: EVM_VALIDATORS, + minter_addr: "0x8A79560ABD753117A9fc38f5C27220B8a6aA1bf9", + erc1155_addr: "0xcA43B560a54B7E47ad4bE81bD08048c83CAE92fE", + erc721_addr: "0x6c90Bc9699aac1635c838Dfc965Aa20702089E68", + erc721Minter: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc1155Minter: "0x1cC24128C04093d832D4b50609e182ed183E1688", nonce: Chain.XDAI, }, algorandParams: { @@ -284,10 +303,11 @@ export namespace ChainFactoryConfigs { fuseParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FUSE), - minter_addr: "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", - erc1155_addr: "0xAcE819D882CEEF314191DaD13D2Bf3731Df80988", - erc721_addr: "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", - validators: EVM_VALIDATORS, + minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", + erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", nonce: Chain.FUSE, }, tezosParams: { @@ -304,19 +324,21 @@ export namespace ChainFactoryConfigs { velasParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), - minter_addr: "0x2f156D07376476f799166964bb62598882744ce5", - erc1155_addr: "0xb83448C460197E2F591eAA3FC6Be2c4fF88d9e9C", - erc721_addr: "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", + minter_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", + erc1155_addr: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc721_addr: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", + erc721Minter: "0x8A79560ABD753117A9fc38f5C27220B8a6aA1bf9", + erc1155Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", nonce: Chain.VELAS, - validators: EVM_VALIDATORS, }, iotexParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), - minter_addr: "0xd9dDB5d6c9D7d764B06E7C5aFF26AD316a4c227F", - erc1155_addr: "0xCEcc1544e90321b4AF0A33773d84e35c1b291cCa", - erc721_addr: "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", - validators: EVM_VALIDATORS, + minter_addr: "0xcA43B560a54B7E47ad4bE81bD08048c83CAE92fE", + erc1155_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc721Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc1155Minter: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", nonce: Chain.IOTEX, }, }); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index bcaa01061..60f5de690 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -223,7 +223,8 @@ export interface Web3Params { minter_addr: string; erc1155_addr: string; erc721_addr: string; - validators: string[]; + erc721Minter: string; + erc1155Minter: string; nonce: number; } From fd0938c21bd0c56af9222ec45bc0515ffc4cabb2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Feb 2022 16:16:53 +0530 Subject: [PATCH 322/956] chains: update isWrapped logic --- src/consts.ts | 1 + src/factory/index.ts | 29 ++++---- src/helpers/algorand.ts | 4 +- src/helpers/chain.ts | 2 +- src/helpers/elrond.ts | 4 +- src/helpers/tezos.ts | 158 +++++++++++++++++++++++++--------------- src/helpers/tron.ts | 6 +- src/helpers/web3.ts | 12 ++- 8 files changed, 131 insertions(+), 85 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 54f2250d1..fa35b28fd 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -274,4 +274,5 @@ export const Config: AppConfig = { txSocketUri: "transaction-socket.xp.network", tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", + wrappedNftPrefix: "https://nft.xp.network/w/", }; diff --git a/src/factory/index.ts b/src/factory/index.ts index e551d35b6..d15f25b69 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -302,6 +302,7 @@ export interface AppConfig { nftListUri: string; nftListAuthToken: string; tronScanUri: string; + wrappedNftPrefix: string; } type AllParams = @@ -514,7 +515,7 @@ export function ChainFactory( mw, nonce ) { - if (chain.isWrappedNft(nft)) { + if (await chain.isWrappedNft(nft, appConfig.wrappedNftPrefix)) { return chain.unfreezeWrappedNftTxn( receiver, nft, @@ -547,17 +548,19 @@ export function ChainFactory( } const wrapped: NftInfo[] = []; const unwrapped: NftInfo[] = []; - nfts.forEach((e) => { - // @ts-ignore - if (e.native.contractType && e.native.contractType === "ERC721") { - throw new Error(`ERC721 is not supported`); - } - if (from.isWrappedNft(e)) { - wrapped.push(e); - } else { - unwrapped.push(e); - } - }); + await Promise.all( + nfts.map(async (e) => { + // @ts-ignore + if (e.native.contractType && e.native.contractType === "ERC721") { + throw new Error(`ERC721 is not supported`); + } + if (await from.isWrappedNft(e, appConfig.wrappedNftPrefix)) { + wrapped.push(e); + } else { + unwrapped.push(e); + } + }) + ); wrapped.length && result.push( from.transferNftBatchToForeign( @@ -654,7 +657,7 @@ export function ChainFactory( if (!(await toChain.validateAddress(receiver))) { throw Error("invalid address"); } - if (fromChain.isWrappedNft(nft)) { + if (await fromChain.isWrappedNft(nft, appConfig.wrappedNftPrefix)) { const meta = await extractWrappedMetadata(nft); const res = await fromChain.unfreezeWrappedNft( sender, diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index b62e587b6..1f0c25f3d 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -324,8 +324,8 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { return suggested; }, - isWrappedNft(nft) { - return nft.native.creator === appAddr; + async isWrappedNft(nft, _prefix) { + return Promise.resolve(nft.native.creator === appAddr); }, transferNftToForeign: transferNft, unfreezeWrappedNft: async (signer, to, nft, txFees) => { diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index f46709a6a..8ead39291 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -198,7 +198,7 @@ export interface MintNft { * @returns bool */ export interface WrappedNftCheck { - isWrappedNft(nft: NftInfo): boolean; + isWrappedNft(nft: NftInfo, prefix: string): Promise; } export interface ValidateAddress { diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index e8eaf5782..fbfb0a009 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -841,8 +841,8 @@ export const elrondHelperFactory: ( return res.data["data"]["tokens"]; }, - isWrappedNft(nft) { - return ( + async isWrappedNft(nft, _prefix) { + return Promise.resolve( tokenIdentReal(nft.native.tokenIdentifier) === elrondParams.esdt_nft ); }, diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 468b5e753..843112a6a 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -47,19 +47,16 @@ export type TezosHelper = TransferNftForeign< > & MintNft & BalanceCheck & - UnfreezeForeignNft< - TezosSigner, - string, - BigNumber, - TezosNftInfo, - string - > & + UnfreezeForeignNft & ValidateAddress & EstimateTxFees & ChainNonceGet & WrappedNftCheck & Pick, "preTransfer"> & { - isApprovedForMinter(signer: Signer, nft: NftInfo): Promise; + isApprovedForMinter( + signer: Signer, + nft: NftInfo + ): Promise; } & { approveForMinter( address: NftInfo, @@ -93,33 +90,48 @@ export async function tezosHelperFactory({ return new BigNumber(baseprice * (validators.length + 1)); }; - const net = await Tezos.rpc.getChainId() == ChainIds.MAINNET ? "mainnet" : "hangzhou2net"; + const net = + (await Tezos.rpc.getChainId()) == ChainIds.MAINNET + ? "mainnet" + : "hangzhou2net"; - async function withContract(sender: TezosSigner, contract: string, cb: (contract: ContractAbstraction) => ContractMethod, params?: Partial) { + async function withContract( + sender: TezosSigner, + contract: string, + cb: ( + contract: ContractAbstraction + ) => ContractMethod, + params?: Partial + ) { if ("publicKeyHash" in sender) { Tezos.setSignerProvider(sender); const contractI = await Tezos.contract.at(contract); const res = cb(contractI); const tx = await res.send(params); - await tx.confirmation() + await tx.confirmation(); return (tx as TransactionOperation).hash; } else { Tezos.setWalletProvider(sender); const contractI = await Tezos.wallet.at(contract); const res = cb(contractI); if (params) { - if (!params.storageLimit) - params.storageLimit = 60_000; + if (!params.storageLimit) params.storageLimit = 60_000; } else { params = { storageLimit: 60_000 }; } - const tx = await res.send(params) + const tx = await res.send(params); await tx.confirmation(); return (tx as TransactionWalletOperation).opHash; } } - function withBridge(sender: TezosSigner, cb: (bridge: ContractAbstraction) => ContractMethod, params?: Partial) { + function withBridge( + sender: TezosSigner, + cb: ( + bridge: ContractAbstraction + ) => ContractMethod, + params?: Partial + ) { return withContract(sender, bridgeAddress, cb, params); } @@ -131,27 +143,34 @@ export async function tezosHelperFactory({ } } - async function isApprovedForMinter(sender: TezosSigner, nft: NftInfo) { + async function isApprovedForMinter( + sender: TezosSigner, + nft: NftInfo + ) { const baseUrl = `https://sheltered-crag-76748.herokuapp.com/https://api.better-call.dev/v1/contract/${net}/${nft.native.contract}/entrypoints/trace`; const owner = await getAddress(sender); - const res = await axios.post(baseUrl, { - name: "update_operators", - source: owner, - data: { - update_operators: [ { - "@or_29": { - "add_operator": { - "@pair_32": { - "token_id": nft.native.token_id, - "operator": bridgeAddress + const res = await axios + .post(baseUrl, { + name: "update_operators", + source: owner, + data: { + update_operators: [ + { + "@or_29": { + add_operator: { + "@pair_32": { + token_id: nft.native.token_id, + operator: bridgeAddress, + }, + owner, + }, + schemaKey: "L", }, - owner }, - "schemaKey": "L" - } - }] - } - }, ).catch(_ => undefined); + ], + }, + }) + .catch((_) => undefined); if (res == undefined) { return false; } @@ -168,23 +187,33 @@ export async function tezosHelperFactory({ if (await isApprovedForMinter(signer, nft)) { return; } - const owner = await getAddress(signer) - return await withContract(signer, nft.native.contract, (contract) => contract.methods.update_operators([ - { - add_operator: { - owner, - operator: bridgeAddress, - token_id: nft.native.token_id, + const owner = await getAddress(signer); + return await withContract(signer, nft.native.contract, (contract) => + contract.methods.update_operators([ + { + add_operator: { + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }, }, - }, - ])); + ]) + ); } return { async transferNftToForeign(sender, chain, to, nft, fee) { - const hash = await withBridge(sender, (bridge) => bridge.methods.freeze_fa2( - chain, nft.native.contract, to, parseInt(nft.native.token_id) - ), { amount: fee.toNumber() / 1e6 }); + const hash = await withBridge( + sender, + (bridge) => + bridge.methods.freeze_fa2( + chain, + nft.native.contract, + to, + parseInt(nft.native.token_id) + ), + { amount: fee.toNumber() / 1e6 } + ); notifyValidator(hash); return hash; @@ -193,29 +222,38 @@ export async function tezosHelperFactory({ return Tezos.tz.getBalance(address); }, async unfreezeWrappedNft(sender, to, nft, fee) { - const hash = await withBridge(sender, (bridge) => bridge.methods.withdraw_nft( - to, parseInt(nft.native.token_id) - ), { amount: fee.toNumber() / 1e6 }); + const hash = await withBridge( + sender, + (bridge) => + bridge.methods.withdraw_nft(to, parseInt(nft.native.token_id)), + { amount: fee.toNumber() / 1e6 } + ); notifyValidator(hash); return hash; }, async mintNft(signer, { identifier, attrs, contract, uris }) { - return await withContract(signer, xpnftAddress, (xpnft) => xpnft.methods.mint({ - token_id: identifier, - address: contract, - metadata: { - uri: uris[0], - attrs, - }, - amount: 1, - })); + return await withContract(signer, xpnftAddress, (xpnft) => + xpnft.methods.mint({ + token_id: identifier, + address: contract, + metadata: { + uri: uris[0], + attrs, + }, + amount: 1, + }) + ); }, async validateAddress(adr) { - return Promise.resolve(utils.validateAddress(adr) === utils.ValidationResult.VALID); + return Promise.resolve( + utils.validateAddress(adr) === utils.ValidationResult.VALID + ); }, - isWrappedNft(nft) { - return nft.native.contract.toLowerCase() === xpnftAddress.toLowerCase(); + async isWrappedNft(nft, _prefix) { + return Promise.resolve( + nft.native.contract.toLowerCase() === xpnftAddress.toLowerCase() + ); }, getNonce() { return 0x12; @@ -228,6 +266,6 @@ export async function tezosHelperFactory({ }, preTransfer, isApprovedForMinter, - approveForMinter: (nft, sender) => preTransfer(sender, nft) + approveForMinter: (nft, sender) => preTransfer(sender, nft), }; } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 89c77e34d..025b4387a 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -486,10 +486,10 @@ export async function tronHelperFactory( } return addMinToExpirationTime(transaction, 15); }, - isWrappedNft(nft) { - return ( + async isWrappedNft(nft, _prefix) { + return Promise.resolve( nft.native.contract.toLowerCase() === - tronParams.erc721_addr.toLowerCase() + tronParams.erc721_addr.toLowerCase() ); }, isApprovedForMinter, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 60f5de690..685329edf 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -408,10 +408,14 @@ export async function web3HelperFactory( return approvetxn; }, - isWrappedNft(nft) { - return ( - nft.native.contract.toLowerCase() === params.erc721_addr.toLowerCase() - ); + async isWrappedNft(nft, prefix) { + if (nft.uri.startsWith(prefix)) { + const res = await axios.get<{ wrapped?: {} }>(nft.uri); + if (res.data.wrapped) { + return true; + } + } + return false; }, async extractTxnStatus(txn) { const status = (await (await provider.getTransaction(txn)).wait()).status; From c73ffa0e45d393ab63415d015fe5dd751a4ac4c7 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Feb 2022 16:41:30 +0530 Subject: [PATCH 323/956] chains: update sc addresses AGAIN! --- src/factory/factories.ts | 80 ++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 5a64902d6..ef79f994e 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -215,41 +215,41 @@ export namespace ChainFactoryConfigs { avalancheParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), - minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", - erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc721Minter: "0x8a79560abd753117a9fc38f5c27220b8a6aa1bf9", + erc1155Minter: "0xc81d46c6f2d59182c5a64fd5c372266c98985adf", + erc1155_addr: "0x146a99ff19ece88ec87f5be03085ca6cd3163e15", + erc721_addr: "0xd87755cceaab0edb28b3f0cd7d6405e1bb827b65", + minter_addr: "0xf5e792c1e8e626a4496d580b8c2b4d51bf80efb7", nonce: Chain.AVALANCHE, }, polygonParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), - minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc1155_addr: "0x47e9Fbef8C83A1714F1951F142132E6e90F5fa5D", - erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721Minter: "0xBd770416a3345F91E4B34576cb804a576fa48EB1", - erc1155Minter: "0x5a443704dd4B594B382c22a083e2BD3090A6feF3", + erc721Minter: "0xCE12589cB48E579F3cA419b70096fb34235ff7CF", + erc1155Minter: "0xCc64e1fFC33D7B99013AAb5D71E34886310040a0", + erc1155_addr: "0x3a1AF9034449A8C0375aF7027F1BEA5ecfb604AF", + erc721_addr: "0x4aC987d7f0f247173b76d8181a6dF5e809b404D6", + minter_addr: "0x05DfF05a33aca5D190F8F78A47aeBaa002f55d31", nonce: Chain.POLYGON, }, fantomParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), - minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", - erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc1155_addr: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", + erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", + minter_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", nonce: Chain.FANTOM, }, bscParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), - minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", - erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc721Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", + erc1155Minter: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + erc1155_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc721_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + minter_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", nonce: Chain.BSC, }, celoParams: { @@ -285,11 +285,11 @@ export namespace ChainFactoryConfigs { xDaiParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), - minter_addr: "0x8A79560ABD753117A9fc38f5C27220B8a6aA1bf9", - erc1155_addr: "0xcA43B560a54B7E47ad4bE81bD08048c83CAE92fE", - erc721_addr: "0x6c90Bc9699aac1635c838Dfc965Aa20702089E68", - erc721Minter: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc1155Minter: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", + erc1155Minter: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", + erc1155_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", + erc721_addr: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", + minter_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", nonce: Chain.XDAI, }, algorandParams: { @@ -303,11 +303,11 @@ export namespace ChainFactoryConfigs { fuseParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FUSE), - minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", - erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc1155_addr: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", + erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", + minter_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", nonce: Chain.FUSE, }, tezosParams: { @@ -324,21 +324,21 @@ export namespace ChainFactoryConfigs { velasParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), - minter_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", - erc1155_addr: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc721_addr: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", - erc721Minter: "0x8A79560ABD753117A9fc38f5C27220B8a6aA1bf9", - erc1155Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc721Minter: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + erc1155Minter: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc1155_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + erc721_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", + minter_addr: "0x0E99a77fedf8D1Eb783078D1Aa84160a5CBE96D7", nonce: Chain.VELAS, }, iotexParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), - minter_addr: "0xcA43B560a54B7E47ad4bE81bD08048c83CAE92fE", - erc1155_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc721Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", - erc1155Minter: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + minter_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", + erc1155_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", + erc721_addr: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", + erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", + erc1155Minter: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", nonce: Chain.IOTEX, }, }); From d53143cf3d704efcfd55e274969615851fb8035d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Feb 2022 19:05:17 +0530 Subject: [PATCH 324/956] factory: block old xpwraps from transfer --- src/factory/index.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index d15f25b69..4e9539bd1 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -452,6 +452,24 @@ export function ChainFactory( } } + const oldXpWraps: string[] = [ + "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", + "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", + "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", + "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", + "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", + "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", + "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", + ]; + + async function checkNotOldWrappedNft(contract: string) { + if (oldXpWraps.findIndex((x) => x === contract) !== -1) { + throw new Error(`${contract} is an old wrapped NFT`); + } + } + function nonceToChainNonce( nonce: number ): ElrondNonce | Web3Nonce | TronNonce { @@ -649,6 +667,11 @@ export function ChainFactory( fee, mintWith ) => { + //@ts-ignore + if (nft.native.contract) { + //@ts-ignore + checkNotOldWrappedNft(nft.native.contract); + } await requireBridge([fromChain.getNonce(), toChain.getNonce()]); if (!fee) { From 3c96b0da0b1ab7515c4f3b1703de43a1a357f278 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Feb 2022 19:10:37 +0530 Subject: [PATCH 325/956] factory: polygon: update SC --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index ef79f994e..a77112db8 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -225,11 +225,11 @@ export namespace ChainFactoryConfigs { polygonParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), - erc721Minter: "0xCE12589cB48E579F3cA419b70096fb34235ff7CF", - erc1155Minter: "0xCc64e1fFC33D7B99013AAb5D71E34886310040a0", - erc1155_addr: "0x3a1AF9034449A8C0375aF7027F1BEA5ecfb604AF", - erc721_addr: "0x4aC987d7f0f247173b76d8181a6dF5e809b404D6", - minter_addr: "0x05DfF05a33aca5D190F8F78A47aeBaa002f55d31", + erc721Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", + erc1155Minter: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + erc1155_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc721_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + minter_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", nonce: Chain.POLYGON, }, fantomParams: { From 75a3546674567a1ecf6908fc21786534c8cc87cd Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Feb 2022 19:21:55 +0530 Subject: [PATCH 326/956] factory: convert SC to checksum before matching --- src/factory/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 4e9539bd1..2116b6548 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -41,7 +41,7 @@ import { exchangeRateRepo } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; -import { BigNumberish, PopulatedTransaction } from "ethers"; +import { BigNumberish, PopulatedTransaction, utils } from "ethers"; import { AlgorandParams, AlgorandHelper, @@ -670,7 +670,7 @@ export function ChainFactory( //@ts-ignore if (nft.native.contract) { //@ts-ignore - checkNotOldWrappedNft(nft.native.contract); + checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); } await requireBridge([fromChain.getNonce(), toChain.getNonce()]); From 4d8f0b1cea7e0b1683215aa014dec894f63debbe Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Feb 2022 19:26:34 +0530 Subject: [PATCH 327/956] chains: elrond: remove validator addresses --- src/factory/factories.ts | 18 ------------------ src/helpers/elrond.ts | 19 ++++++------------- 2 files changed, 6 insertions(+), 31 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index a77112db8..b8d679847 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -30,15 +30,6 @@ export namespace ChainFactoryConfigs { esdt: "XPNET-acb2d0", esdt_nft: "XPNFT-1a124f", esdt_swap: "WEGLD-fdf787", - validators: [ - "erd1akrlykhmjl8ykhfukhykzdvcnyay5d0kvdazc82wwt7cvn83arzsgg7w9c", - "erd1dt2mttgf2xpdy9jlxlrd0fcr3nf4sly2tpmam0djq7jj65axvkyqv6hu20", - "erd1hd3afqqhunypqdz292qledsxwtjlnf9t60mftf4xq5tuyutnqntqg5dng4", - "erd14qgeqvr2lfnv7m3nzrmpzdzr5tecns50s82qndk2s84qhw3fg6vsfcaffa", - "erd16gztcqtjzr20ytrwm2wefylydfxhgv7a96kwppa5z3840x4rvavqeazy0v", - "erd19tydrsuwcpcnwku5p90xk3n82gxhmvz54s8fsvz6yhc4ugq67f4qaayrex", - "erd1575jxqnmt9q495xtmre0gmxpc9gjzrcx9ypw7gls5xg59k0m73ksgp0xfu", - ], nonce: 2, }, tronParams: { @@ -192,15 +183,6 @@ export namespace ChainFactoryConfigs { esdt: "XPNET-738176", esdt_nft: "XPNFT-676422", esdt_swap: "WEGLD-071de0", - validators: [ - "erd1lwyjz0adjd3vqpcjqs5rntw6sxzf9pvqussadygy2u76mz9ap7tquc0z5s", - "erd1tzc9qltpntlgnpetrz58llqsg93dnxety54umln0kuq2k6dajf6qk796wh", - "erd14aw3kvmepsffajkywp6autxxf7zy77uvnhy9e93wwz4qjkd88muquys007", - "erd1nj85l5qx2gn2euj4hnjzq464euwzh8fe6txkf046nttne7y3cl4qmndgya", - "erd1fl3mpjnrev7x5dz4un0hpzhvny4dlv4d2zt38yhqe37u9ulzx2aqeqr8sr", - "erd16kufez3g0tmxhyra2ysgpkqckurqe80ulxet8dfffm0t28tnavpstr0s93", - "erd1wua3q7zja2g08gyta4pkd4eax2r03c3edsz72dp90m3z69rk8yuqqnrg63", - ], nonce: Chain.ELROND, }, tronParams: { diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index fbfb0a009..45b620e9c 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -287,7 +287,6 @@ export interface ElrondParams { esdt: string; esdt_nft: string; esdt_swap: string; - validators: string[]; nonce: number; } @@ -653,8 +652,8 @@ export const elrondHelperFactory: ( return id.toString(); } - function estimateGas(base_fees: BigNumber, cnt: number) { - return base_fees.times((cnt + 1) * gasPriceModif); // assume execution takes about twice as much gas fees + function estimateGas(base_fees: BigNumber) { + return base_fees.multipliedBy(gasPriceModif); // assume execution takes about twice as much gas fees } async function getAddress(sender: ElrondSigner): Promise
{ @@ -887,7 +886,7 @@ export const elrondHelperFactory: ( _toAddress: string, _nftUri: NftInfo ) { - return estimateGas(NFT_TRANSFER_COST, elrondParams.validators.length); // TODO: properly estimate NFT_TRANSFER_COST + return estimateGas(NFT_TRANSFER_COST); // TODO: properly estimate NFT_TRANSFER_COST }, async mintRawTxn(args, address) { const txu = unsignedMintNftTxn( @@ -898,7 +897,7 @@ export const elrondHelperFactory: ( }, async estimateValidateUnfreezeNft(_to: string, _nftUri: NftInfo) { - return estimateGas(NFT_UNFREEZE_COST, elrondParams.validators.length); // TODO: properly estimate NFT_UNFREEZE_COST + return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST }, async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { const txu = new Transaction({ @@ -963,16 +962,10 @@ export const elrondHelperFactory: ( return tx; }, async estimateValidateTransferNftBatch(_, nfts) { - return estimateGas( - new BigNumber(60000000 + 5000000 * nfts.length), - elrondParams.validators.length - ); + return estimateGas(new BigNumber(60000000 + 5000000 * nfts.length)); }, async estimateValidateUnfreezeNftBatch(_, nfts) { - return estimateGas( - new BigNumber(70000000 + 5000000 * nfts.length), - elrondParams.validators.length - ); + return estimateGas(new BigNumber(70000000 + 5000000 * nfts.length)); }, wrapNftForTransfer(nft: NftInfo) { // Approximation for wrapping this nft From ce686223a9d8be66deb064afc08f4f627473f998 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Feb 2022 21:40:47 +0530 Subject: [PATCH 328/956] feat: factory: add check for verified mw --- src/factory/index.ts | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 2116b6548..046ea0591 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -260,6 +260,8 @@ export type ChainFactory = { sender: string, nft: NftMintArgs ): Promise; + + getVerifiedContracts(from: string, targetChain: number): Promise; }; /** @@ -470,6 +472,13 @@ export function ChainFactory( } } + function checkMintWith(mw: string, contracts: string[]) { + if (contracts.findIndex((x) => x === mw) !== -1) { + return true; + } + return false; + } + function nonceToChainNonce( nonce: number ): ElrondNonce | Web3Nonce | TronNonce { @@ -519,10 +528,21 @@ export function ChainFactory( } } + async function getVerifiedContracts( + from: string, + tc: number + ): Promise { + const res = await axios.get<{ data: { to: string }[] }>( + `https://https://sc-verify.xp.network/verify/list?from=${from}&targetChain=${tc}` + ); + return res.data.data.map((r) => r.to); + } + return { async generatePreTransferTxn(from, sender, nft, fee) { return await from.preTransferRawTxn(nft, sender, fee); }, + getVerifiedContracts, async generateNftTxn( chain, toNonce, @@ -553,6 +573,7 @@ export function ChainFactory( ); } }, + async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { type Result = ReturnType; let result: Result[] = []; @@ -672,6 +693,19 @@ export function ChainFactory( //@ts-ignore checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); } + + const mw = + //@ts-ignore + nft.native.contract && + mintWith && + checkMintWith( + mintWith, + //@ts-ignore + await getVerifiedContracts(nft.native.contract, toChain.getNonce()) + ) + ? mintWith + : fromChain.XpNft; + await requireBridge([fromChain.getNonce(), toChain.getNonce()]); if (!fee) { @@ -697,7 +731,7 @@ export function ChainFactory( receiver, nft, new BigNumber(fee), - mintWith || toChain.XpNft || "" + mw || "" ); return res; } From 2df59f45df8db521c915337498861bac63f0778e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Feb 2022 23:12:39 +0530 Subject: [PATCH 329/956] fix: sc-verify: remove double https suffix --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 046ea0591..1f08ff4d6 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -533,7 +533,7 @@ export function ChainFactory( tc: number ): Promise { const res = await axios.get<{ data: { to: string }[] }>( - `https://https://sc-verify.xp.network/verify/list?from=${from}&targetChain=${tc}` + `https://sc-verify.xp.network/verify/list?from=${from}&targetChain=${tc}` ); return res.data.data.map((r) => r.to); } From af41f37bee62c81225620faaa22b3853dd2ab371 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 15 Feb 2022 02:24:44 +0530 Subject: [PATCH 330/956] factory: make checkMintWith more lenient also fallback to target chain's XpNft on error --- src/factory/index.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 1f08ff4d6..d0136083e 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -41,7 +41,7 @@ import { exchangeRateRepo } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; -import { BigNumberish, PopulatedTransaction, utils } from "ethers"; +import { BigNumberish, ethers, PopulatedTransaction, utils } from "ethers"; import { AlgorandParams, AlgorandHelper, @@ -473,10 +473,7 @@ export function ChainFactory( } function checkMintWith(mw: string, contracts: string[]) { - if (contracts.findIndex((x) => x === mw) !== -1) { - return true; - } - return false; + return contracts.findIndex((x) => x.toLowerCase() === mw.toLowerCase().trim()) !== -1; } function nonceToChainNonce( @@ -704,7 +701,7 @@ export function ChainFactory( await getVerifiedContracts(nft.native.contract, toChain.getNonce()) ) ? mintWith - : fromChain.XpNft; + : toChain.XpNft; await requireBridge([fromChain.getNonce(), toChain.getNonce()]); From 6864fdc6a492b1b83de66c63367a687b5e846d26 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 15 Feb 2022 02:37:04 +0530 Subject: [PATCH 331/956] pin web3-contracts to specific commit --- package.json | 2 +- yarn.lock | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ee732ad0b..41fa3f094 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,6 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.0.0", - "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#dist-erc1155" + "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#c351870fb44fede7c98f6fae00e408b86a39f5a3" } } diff --git a/yarn.lock b/yarn.lock index 08542e7d3..2b12e58f2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4995,6 +4995,12 @@ xhr2-cookies@^1.1.0: dependencies: cookiejar "^2.1.1" +"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#c351870fb44fede7c98f6fae00e408b86a39f5a3": + version "0.1.0" + resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#c351870fb44fede7c98f6fae00e408b86a39f5a3" + dependencies: + ethers "^5.5.4" + "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist-erc1155": version "0.1.0" resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#c96891f1f007f0b6dfa87f262073bab37838fce2" From 1cb12844b8b6e8743ab2c5ed919ee438b3406a97 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 15 Feb 2022 02:49:24 +0530 Subject: [PATCH 332/956] factory: transferNft: make contract lowercase before sending --- src/factory/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d0136083e..7eb0ad511 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -473,7 +473,7 @@ export function ChainFactory( } function checkMintWith(mw: string, contracts: string[]) { - return contracts.findIndex((x) => x.toLowerCase() === mw.toLowerCase().trim()) !== -1; + return contracts.find((x) => x.toLowerCase() === mw.toLowerCase().trim()) != undefined; } function nonceToChainNonce( @@ -698,7 +698,7 @@ export function ChainFactory( checkMintWith( mintWith, //@ts-ignore - await getVerifiedContracts(nft.native.contract, toChain.getNonce()) + await getVerifiedContracts(nft.native.contract.toLowerCase(), toChain.getNonce()) ) ? mintWith : toChain.XpNft; From 5b237ccf4a416e2b61bd0ad8858f9325ebcb14db Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Tue, 15 Feb 2022 13:16:43 +0200 Subject: [PATCH 333/956] Update factories.ts --- src/factory/factories.ts | 70 ++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index b8d679847..02b390b02 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -24,12 +24,12 @@ export namespace ChainFactoryConfigs { elrondParams: { node_uri: TestNetRpcUri.ELROND, minter_address: - "erd1qqqqqqqqqqqqqpgq3cpmdjk5mwnvqqe7tswcwhdufsddjd4vk4as8qtp05", + "erd1qqqqqqqqqqqqqpgq98ufyktqukxqw79f7n22sr3u6n05u7d7p7tqmzhv32", esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqsu5cn3h380l7cem86zfs6k904wnsa9hak4as942duy", - esdt: "XPNET-acb2d0", - esdt_nft: "XPNFT-1a124f", - esdt_swap: "WEGLD-fdf787", + "erd1qqqqqqqqqqqqqpgqgc9vfqcdqw0ucu602elf0lt4tysfmxpep7tqhrrr9x", + esdt: "XPNET-738176", + esdt_nft: "XPNFT-676422", + esdt_swap: "WEGLD-071de0", nonce: 2, }, tronParams: { @@ -197,21 +197,21 @@ export namespace ChainFactoryConfigs { avalancheParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), - erc721Minter: "0x8a79560abd753117a9fc38f5c27220b8a6aa1bf9", - erc1155Minter: "0xc81d46c6f2d59182c5a64fd5c372266c98985adf", - erc1155_addr: "0x146a99ff19ece88ec87f5be03085ca6cd3163e15", - erc721_addr: "0xd87755cceaab0edb28b3f0cd7d6405e1bb827b65", - minter_addr: "0xf5e792c1e8e626a4496d580b8c2b4d51bf80efb7", + erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", + erc1155Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", + erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", nonce: Chain.AVALANCHE, }, polygonParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), - erc721Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", - erc1155Minter: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", - erc1155_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", - erc721_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - minter_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", + erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", + erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", nonce: Chain.POLYGON, }, fantomParams: { @@ -227,11 +227,11 @@ export namespace ChainFactoryConfigs { bscParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), - erc721Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", - erc1155Minter: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", - erc1155_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", - erc721_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - minter_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", + erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", + erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", + erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", nonce: Chain.BSC, }, celoParams: { @@ -257,21 +257,21 @@ export namespace ChainFactoryConfigs { ropstenParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), - minter_addr: "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", - erc1155_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", - erc721_addr: "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", - erc1155Minter: "0x0", - erc721Minter: "0x0", + minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", nonce: Chain.ETHEREUM, }, xDaiParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), - erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", - erc1155Minter: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", - erc1155_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", - erc721_addr: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", - minter_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", + erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", + erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", + erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.XDAI, }, algorandParams: { @@ -306,11 +306,11 @@ export namespace ChainFactoryConfigs { velasParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), - erc721Minter: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", - erc1155Minter: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", - erc1155_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - erc721_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", - minter_addr: "0x0E99a77fedf8D1Eb783078D1Aa84160a5CBE96D7", + erc721Minter: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + erc1155Minter: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + erc1155_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", + erc721_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", + minter_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", nonce: Chain.VELAS, }, iotexParams: { From 74a09f8dd6a77b8c7ffa0aecfb06bd409903f893 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Tue, 15 Feb 2022 14:32:58 +0200 Subject: [PATCH 334/956] Update factories.ts --- src/factory/factories.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 02b390b02..1e51ca747 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -24,12 +24,12 @@ export namespace ChainFactoryConfigs { elrondParams: { node_uri: TestNetRpcUri.ELROND, minter_address: - "erd1qqqqqqqqqqqqqpgq98ufyktqukxqw79f7n22sr3u6n05u7d7p7tqmzhv32", + "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqgc9vfqcdqw0ucu602elf0lt4tysfmxpep7tqhrrr9x", + "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", esdt: "XPNET-738176", - esdt_nft: "XPNFT-676422", - esdt_swap: "WEGLD-071de0", + esdt_nft: "XPNFT-cb7482", + esdt_swap: "WEGLD-5f1f8d", nonce: 2, }, tronParams: { From f33cd0a12f9a6c00679ae4469400251043da52bb Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 15 Feb 2022 18:07:55 +0530 Subject: [PATCH 335/956] wrapping: fix the isWrappedNft implementation for elrond --- src/helpers/elrond.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 45b620e9c..08e331ab6 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -840,9 +840,10 @@ export const elrondHelperFactory: ( return res.data["data"]["tokens"]; }, - async isWrappedNft(nft, _prefix) { - return Promise.resolve( - tokenIdentReal(nft.native.tokenIdentifier) === elrondParams.esdt_nft + async isWrappedNft(nft, prefix) { + return ( + nft.uri.startsWith(prefix) && + (await axios.get<{ wrapped?: {} }>(nft.uri)).data.wrapped !== undefined ); }, async preTransferRawTxn(id, address, value) { From a3159e319a2d67a55fc798e94ed8397b05d25e1a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 15 Feb 2022 18:10:52 +0530 Subject: [PATCH 336/956] nft-info: add collectionIdent --- src/helpers/chain.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 8ead39291..59b8c8b2c 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -11,6 +11,7 @@ import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; export type NftInfo = { readonly uri: string; readonly native: Raw; + readonly collectionIdent: string; }; /** From 8893f530ccb58f78f2dca59dbd690a7008dcc797 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 15 Feb 2022 19:10:00 +0530 Subject: [PATCH 337/956] chains: fix isWrapped --- src/helpers/elrond.ts | 7 ++----- src/helpers/web3.ts | 10 ++-------- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 08e331ab6..0a4a9519d 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -840,11 +840,8 @@ export const elrondHelperFactory: ( return res.data["data"]["tokens"]; }, - async isWrappedNft(nft, prefix) { - return ( - nft.uri.startsWith(prefix) && - (await axios.get<{ wrapped?: {} }>(nft.uri)).data.wrapped !== undefined - ); + async isWrappedNft(nft) { + return typeof (await axios.get(nft.uri)).data.wrapped === "undefined"; }, async preTransferRawTxn(id, address, value) { if (!address || !value) { diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 685329edf..fd050a243 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -408,14 +408,8 @@ export async function web3HelperFactory( return approvetxn; }, - async isWrappedNft(nft, prefix) { - if (nft.uri.startsWith(prefix)) { - const res = await axios.get<{ wrapped?: {} }>(nft.uri); - if (res.data.wrapped) { - return true; - } - } - return false; + async isWrappedNft(nft) { + return typeof (await axios.get(nft.uri)).data.wrapped === "undefined"; }, async extractTxnStatus(txn) { const status = (await (await provider.getTransaction(txn)).wait()).status; From 5b4410cdaedeccb59db1c23edcbb9590ee33b40d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 15 Feb 2022 19:16:03 +0530 Subject: [PATCH 338/956] verified-contracts: add fromChain --- src/factory/index.ts | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 7eb0ad511..8d3a62deb 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -261,7 +261,11 @@ export type ChainFactory = { nft: NftMintArgs ): Promise; - getVerifiedContracts(from: string, targetChain: number): Promise; + getVerifiedContracts( + from: string, + targetChain: number, + fc: number + ): Promise; }; /** @@ -473,7 +477,10 @@ export function ChainFactory( } function checkMintWith(mw: string, contracts: string[]) { - return contracts.find((x) => x.toLowerCase() === mw.toLowerCase().trim()) != undefined; + return ( + contracts.find((x) => x.toLowerCase() === mw.toLowerCase().trim()) != + undefined + ); } function nonceToChainNonce( @@ -527,10 +534,11 @@ export function ChainFactory( async function getVerifiedContracts( from: string, - tc: number + tc: number, + fc: number ): Promise { const res = await axios.get<{ data: { to: string }[] }>( - `https://sc-verify.xp.network/verify/list?from=${from}&targetChain=${tc}` + `https://sc-verify.xp.network/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}` ); return res.data.data.map((r) => r.to); } @@ -698,7 +706,12 @@ export function ChainFactory( checkMintWith( mintWith, //@ts-ignore - await getVerifiedContracts(nft.native.contract.toLowerCase(), toChain.getNonce()) + await getVerifiedContracts( + //@ts-ignore + nft.native.contract.toLowerCase(), + toChain.getNonce(), + fromChain.getNonce() + ) ) ? mintWith : toChain.XpNft; From 38789d775b2c85778e1a18c30d4e5dd4d9fb7bd0 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 15 Feb 2022 20:10:58 +0530 Subject: [PATCH 339/956] elrond bugfixes --- src/factory/factories.ts | 8 ++++---- src/helpers/elrond.ts | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 1e51ca747..ed1dd16f2 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -177,12 +177,12 @@ export namespace ChainFactoryConfigs { elrondParams: { node_uri: MainNetRpcUri.ELROND, minter_address: - "erd1qqqqqqqqqqqqqpgq98ufyktqukxqw79f7n22sr3u6n05u7d7p7tqmzhv32", + "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqgc9vfqcdqw0ucu602elf0lt4tysfmxpep7tqhrrr9x", + "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", esdt: "XPNET-738176", - esdt_nft: "XPNFT-676422", - esdt_swap: "WEGLD-071de0", + esdt_nft: "XPNFT-cb7482", + esdt_swap: "WEGLD-5f1f8d", nonce: Chain.ELROND, }, tronParams: { diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 0a4a9519d..1c78993ef 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -678,6 +678,7 @@ export const elrondHelperFactory: ( } return { + XpNft: elrondParams.esdt_nft, async balance(address: string | Address): Promise { const wallet = new Account(new Address(address)); From e3a327b43a2dd86fd6ab32f6824c39b97dbeae31 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 15 Feb 2022 20:22:52 +0530 Subject: [PATCH 340/956] isWrappedNft: fix typo --- src/helpers/elrond.ts | 4 ++-- src/helpers/web3.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 1c78993ef..0fed4a724 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -678,7 +678,7 @@ export const elrondHelperFactory: ( } return { - XpNft: elrondParams.esdt_nft, + XpNft: elrondParams.esdt_nft, async balance(address: string | Address): Promise { const wallet = new Account(new Address(address)); @@ -842,7 +842,7 @@ export const elrondHelperFactory: ( return res.data["data"]["tokens"]; }, async isWrappedNft(nft) { - return typeof (await axios.get(nft.uri)).data.wrapped === "undefined"; + return typeof (await axios.get(nft.uri)).data.wrapped !== "undefined"; }, async preTransferRawTxn(id, address, value) { if (!address || !value) { diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index fd050a243..2e6f54770 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -409,7 +409,7 @@ export async function web3HelperFactory( return approvetxn; }, async isWrappedNft(nft) { - return typeof (await axios.get(nft.uri)).data.wrapped === "undefined"; + return typeof (await axios.get(nft.uri)).data.wrapped !== "undefined"; }, async extractTxnStatus(txn) { const status = (await (await provider.getTransaction(txn)).wait()).status; From bb63b275eb85a4387c53fecf156676c6f23af4d6 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 15 Feb 2022 21:31:10 +0530 Subject: [PATCH 341/956] pin bignumber.js to 9.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 41fa3f094..1ff677411 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@walletconnect/client": "^1.7.0", "algosdk": "^1.12.0", "axios": "^0.21.1", - "bignumber.js": "^9.0.1", + "bignumber.js": "9.0.1", "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", "ethers": "^5.5.4", "js-base64": "^3.6.1", From 04eb6a9347a7e100639cdc0d0c052e0cac728af1 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 16 Feb 2022 10:57:42 +0200 Subject: [PATCH 342/956] Update factories.ts --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index ed1dd16f2..f04412d5c 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -306,11 +306,11 @@ export namespace ChainFactoryConfigs { velasParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), - erc721Minter: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", - erc1155Minter: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", - erc1155_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", - erc721_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", - minter_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", + erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", + minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", nonce: Chain.VELAS, }, iotexParams: { From acaa17efa7c38c85809746b0edfdc38d1b5d3b3a Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 16 Feb 2022 18:40:50 +0530 Subject: [PATCH 343/956] update fee margin logic --- src/consts.ts | 2 ++ src/factory/cons.ts | 3 ++- src/factory/index.ts | 18 ++++++++++++------ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index fa35b28fd..7ad711549 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -276,3 +276,5 @@ export const Config: AppConfig = { heartbeatUri: "https://xpheartbeat.herokuapp.com", wrappedNftPrefix: "https://nft.xp.network/w/", }; + +export const FEE_MARGIN = { min: 0.5, max: 5 } \ No newline at end of file diff --git a/src/factory/cons.ts b/src/factory/cons.ts index cc83eed99..8b65a595c 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -1,11 +1,12 @@ import { + BatchExchangeRateRepo, cachedExchangeRateRepo, ExchangeRateRepo, networkBatchExchangeRateRepo, NetworkModel, } from "crypto-exchange-rate"; -export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo { +export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo & BatchExchangeRateRepo { const baseService = NetworkModel.batchExchangeRateService(baseUrl); return cachedExchangeRateRepo( diff --git a/src/factory/index.ts b/src/factory/index.ts index 8d3a62deb..a3af3ee66 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -10,6 +10,7 @@ import { ChainNonce, CHAIN_INFO, ElrondNonce, + FEE_MARGIN, TronNonce, Web3Nonce, } from "../consts"; @@ -384,15 +385,20 @@ export function ChainFactory( toChain: number, val: BigNumber ): Promise { - const exrate = await remoteExchangeRate.getExchangeRate( + const rate = await remoteExchangeRate.getBatchedRate([ CHAIN_INFO[toChain].currency, CHAIN_INFO[fromChain].currency - ); - - return val - .dividedBy(CHAIN_INFO[toChain].decimals) - .times(exrate * 1.05) + ]); + const feeR = val.dividedBy(CHAIN_INFO[toChain].decimals); + const fromExRate = rate.get(CHAIN_INFO[fromChain].currency)!; + const toExRate = rate.get(CHAIN_INFO[toChain].currency)!; + const usdFee = Math.min(Math.max(FEE_MARGIN.min, feeR.times(toExRate*1.1).toNumber()), FEE_MARGIN.max) + const feeProfit = usdFee / fromExRate; + + return feeR + .times(toExRate / fromExRate) .times(CHAIN_INFO[fromChain].decimals) + .plus(feeProfit) .integerValue(BigNumber.ROUND_CEIL); } const estimateFees = async ( From e921347fb818a909b2c04cb3c0ab7e45d18ac8ba Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 16 Feb 2022 18:44:12 +0530 Subject: [PATCH 344/956] factory: fix margin calculation --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index a3af3ee66..0f3f82484 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -392,7 +392,7 @@ export function ChainFactory( const feeR = val.dividedBy(CHAIN_INFO[toChain].decimals); const fromExRate = rate.get(CHAIN_INFO[fromChain].currency)!; const toExRate = rate.get(CHAIN_INFO[toChain].currency)!; - const usdFee = Math.min(Math.max(FEE_MARGIN.min, feeR.times(toExRate*1.1).toNumber()), FEE_MARGIN.max) + const usdFee = Math.min(Math.max(FEE_MARGIN.min, feeR.times(toExRate*0.1).toNumber()), FEE_MARGIN.max) const feeProfit = usdFee / fromExRate; return feeR From 73af28a44e726d342d4ca241c11d89206a1b986d Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 16 Feb 2022 19:42:10 +0530 Subject: [PATCH 345/956] factory: fee: add margin before multiplying by decimals --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 0f3f82484..046700cb2 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -397,8 +397,8 @@ export function ChainFactory( return feeR .times(toExRate / fromExRate) + .plus(feeProfit) .times(CHAIN_INFO[fromChain].decimals) - .plus(feeProfit) .integerValue(BigNumber.ROUND_CEIL); } const estimateFees = async ( From cf5b540a8f1959a9ee008bd71dc384e882a28294 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 16 Feb 2022 20:02:05 +0530 Subject: [PATCH 346/956] handlers: chains: add support for thor --- package.json | 1 + src/factory/index.ts | 1 + src/helpers/thor.ts | 498 +++++++++++++++++++++++++++++++++++++++++++ yarn.lock | 57 ++++- 4 files changed, 550 insertions(+), 7 deletions(-) create mode 100644 src/helpers/thor.ts diff --git a/package.json b/package.json index 1ff677411..d85859d1c 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "@taquito/signer": "^11.1.0", "@taquito/taquito": "^11.1.0", "@taquito/tzip12": "^11.1.0", + "@vechain/ethers": "^4.0.27-5", "@walletconnect/client": "^1.7.0", "algosdk": "^1.12.0", "axios": "^0.21.1", diff --git a/src/factory/index.ts b/src/factory/index.ts index 046700cb2..f3541bebd 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -291,6 +291,7 @@ export interface ChainParams { tezosParams: TezosParams; velasParams: Web3Params; iotexParams: Web3Params; + vechainParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; diff --git a/src/helpers/thor.ts b/src/helpers/thor.ts new file mode 100644 index 000000000..bc774bc53 --- /dev/null +++ b/src/helpers/thor.ts @@ -0,0 +1,498 @@ +/** + * Web3 Implementation for cross chain traits + * @module + */ +import BigNumber from "bignumber.js"; +import { + TransferForeign, + UnfreezeForeign, + UnfreezeForeignNft, + BalanceCheck, + TransferNftForeign, + WrappedBalanceCheck, + BatchWrappedBalanceCheck, + MintNft, + WrappedNftCheck, + GetProvider, +} from "./chain"; +import { + Signer, + Wallet, + ethers, + VoidSigner, + providers, + Contract, + ContractFactory, +} from "@vechain/ethers"; +import { Transaction } from "@vechain/ethers/utils"; +import { TransactionResponse, Provider } from "@vechain/ethers/providers"; +import { + Erc1155Minter__factory, + Minter__factory, + UserNftMinter__factory, +} from "xpnet-web3-contracts"; +import { + ChainNonceGet, + EstimateTxFees, + ExtractAction, + ExtractTxnStatus, + extractWrappedMetadata, + MintRawTxn, + NftInfo, + PreTransfer, + PreTransferRawTxn, + TransactionStatus, + TransferNftForeignUnsigned, + UnfreezeForeignNftUnsigned, + ValidateAddress, +} from ".."; +import { NftMintArgs } from ".."; +import { BigNumber as EthBN } from "ethers"; +import axios from "axios"; + +type EasyBalance = string | number | EthBN; +/** + * Information required to perform NFT transfers in this chain + */ +export type EthNftInfo = { + chainId: string; + tokenId: string; + owner: string; + uri: string; + contract: string; +}; + +/** + * Arguments required for minting a new nft + * + * contract: address of the sc + * token: token ID of the newly minted nft + * owner: Owner of the newly minted nft + * uri: uri of the nft + */ +export type MintArgs = { + contract: string; + uri: string; +}; + +export interface IsApproved { + isApprovedForMinter( + address: NftInfo, + sender: Sender + ): Promise; +} + +export interface Approve { + approveForMinter( + address: NftInfo, + sender: Sender + ): Promise; +} + +/** + * Base util traits + */ +export type BaseWeb3Helper = BalanceCheck & + /** + * Mint an nft in the given ERC1155 smart contract + * + * @argument signer owner of the smart contract + * @argument args See [[MintArgs]] + */ + MintNft & { + /** + * + * Deploy an ERC721 smart contract + * + * @argument owner Owner of this smart contract + * @returns Address of the deployed smart contract + */ + deployErc721(owner: Signer): Promise; + }; + +/** + * Traits implemented by this module + */ +export type Web3Helper = BaseWeb3Helper & + WrappedBalanceCheck & + BatchWrappedBalanceCheck & + TransferForeign & + TransferNftForeign< + Signer, + string, + BigNumber, + EthNftInfo, + TransactionResponse + > & + UnfreezeForeign & + UnfreezeForeignNft< + Signer, + string, + BigNumber, + EthNftInfo, + TransactionResponse + > & + WrappedNftCheck & + EstimateTxFees & + ChainNonceGet & + IsApproved & + Approve & + ValidateAddress & + ExtractAction & { + createWallet(privateKey: string): Wallet; + } & Pick, "preTransfer"> & + UnfreezeForeignNftUnsigned & + TransferNftForeignUnsigned & + PreTransferRawTxn & + ExtractTxnStatus & + MintRawTxn & + GetProvider; + +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +export async function baseWeb3HelperFactory( + provider: Provider +): Promise { + const w3 = provider; + + return { + async balance(address: string): Promise { + const bal = await w3.getBalance(address); + + // ethers BigNumber is not compatible with our bignumber + return new BigNumber(bal.toString()); + }, + async deployErc721(owner: Signer): Promise { + const factory = new ContractFactory( + UserNftMinter__factory.abi, + UserNftMinter__factory.bytecode, + owner + ); + const contract = await factory.deploy(); + + return contract.address; + }, + async mintNft( + owner: Signer, + { contract, uris }: NftMintArgs + ): Promise { + const erc721 = new Contract(contract!, UserNftMinter__factory.abi, owner); + + const txm = await erc721.mint(uris[0]); + const receipt = await txm.wait(); + return receipt.transactionHash; + }, + }; +} + +/** + * Create an object implementing cross chain utilities for a web3 chain + * + * @param provider An ethers.js provider object + * @param minter_addr Address of the minter smart contract + * @param minter_abi ABI of the minter smart contract + */ +export interface Web3Params { + provider: Provider; + middleware_uri: string; + minter_addr: string; + erc1155_addr: string; + erc721_addr: string; + validators: string[]; + nonce: number; +} + +export async function web3HelperFactory( + params: Web3Params +): Promise { + const w3 = params.provider; + const { minter_addr, provider, erc1155_addr } = params; + const minter = new Contract(minter_addr, Minter__factory.abi, provider); + const erc1155 = new Contract( + erc1155_addr, + Erc1155Minter__factory.abi, + provider + ); + + const event_middleware = axios.create({ + baseURL: params.middleware_uri, + headers: { + "Content-Type": "application/json", + }, + }); + + async function notifyValidator(hash: string): Promise { + await event_middleware.post("/tx/web3", { + chain_nonce: params.nonce, + tx_hash: hash, + }); + } + + async function extractAction(txr: TransactionResponse): Promise { + const receipt = await txr.wait(); + const log = receipt.logs!.find((log) => log.address === minter.address); + if (log === undefined) { + throw Error("Couldn't extract action_id"); + } + + const evdat = minter.interface.parseLog(log); + const action_id: string = evdat.topic[0].toString(); + return action_id; + } + + const randomAction = () => + new BigNumber( + Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000)) + ); + + async function estimateGas( + addrs: string[], + utx: Transaction + ): Promise { + utx.from = addrs[0]; + let td = await w3.estimateGas(utx); + const fee = td.mul(addrs.length + 1).mul(await w3.getGasPrice()); + + return new BigNumber(fee.toString()); + } + + const isApprovedForMinter = async ( + id: NftInfo, + signer: Signer + ) => { + const erc = new Contract( + id.native.contract, + UserNftMinter__factory.abi, + signer + ); + const approvedAddress = await erc.getApproved(id.native.tokenId); + if (approvedAddress === minter_addr) { + return true; + } + return false; + }; + + const approveForMinter = async (id: NftInfo, sender: Signer) => { + const isApproved = await isApprovedForMinter(id, sender); + const erc = new Contract( + id.native.contract, + UserNftMinter__factory.abi, + sender + ); + if (isApproved) { + return undefined; + } + + const receipt = await erc.approve(minter_addr, id.native.tokenId); + await receipt.wait(); + return receipt.hash; + }; + + const base = await baseWeb3HelperFactory(params.provider); + + return { + ...base, + approveForMinter, + getProvider: () => provider, + isApprovedForMinter, + preTransfer: (s, id, _fee) => approveForMinter(id, s), + extractAction, + getNonce: () => params.nonce, + async balanceWrapped( + address: string, + chain_nonce: number + ): Promise { + const bal = await erc1155.balanceOf(address, chain_nonce); + + return new BigNumber(bal.toString()); + }, + async preTransferRawTxn(id, address, _value) { + const isApproved = await isApprovedForMinter( + id, + new VoidSigner(address, provider) + ); + + if (isApproved) { + return undefined; + } + + const erc = new Contract( + id.native.contract, + UserNftMinter__factory.abi, + new VoidSigner(address, provider) + ); + + const approvetxn = await erc.populateTransaction.approve( + minter_addr, + id.native.tokenId + ); + + return approvetxn; + }, + async isWrappedNft(nft) { + return typeof (await axios.get(nft.uri)).data.wrapped !== "undefined"; + }, + async extractTxnStatus(txn) { + const status = (await (await provider.getTransaction(txn)).wait()).status; + if (status === undefined) { + return TransactionStatus.PENDING; + } + if (status === 1) { + return TransactionStatus.SUCCESS; + } else if (status === 0) { + return TransactionStatus.FAILURE; + } + return TransactionStatus.UNKNOWN; + }, + async unfreezeWrappedNftTxn(to, id, txFees, _sender) { + const res = await minter.populateTransaction.withdrawNft( + to, + id.native.tokenId, + { + value: new BigNumber(txFees.toString(10)), + } + ); + return res; + }, + createWallet(privateKey: string): Wallet { + return new Wallet(privateKey, provider); + }, + async balanceWrappedBatch( + address: string, + chain_nonces: number[] + ): Promise> { + const bals: BigNumber[] = await erc1155.balanceOfBatch( + Array(chain_nonces.length).fill(address), + chain_nonces + ); + + return new Map( + bals.map((v, i) => [chain_nonces[i], new BigNumber(v.toString())]) + ); + }, + async mintRawTxn(nft, sender) { + const erc721 = new Contract( + nft.contract!, + UserNftMinter__factory.abi, + new VoidSigner(sender, provider) + ); + + const txm = await erc721.populateTransaction.mint(nft.uris[0]); + return txm; + }, + async transferNativeToForeign( + sender: Signer, + chain_nonce: number, + to: string, + value: BigNumber, + txFees: BigNumber + ): Promise { + const val = EthBN.from(value.toString(10)); + const totalVal = val.add(EthBN.from(txFees.toString(10))); + const res = await minter.connect(sender).freeze(chain_nonce, to, val, { + value: totalVal, + }); + return res; + }, + async transferNftToForeignTxn( + chain_nonce: number, + to: string, + id: NftInfo, + txFees: BigNumber, + _sender + ) { + const txr = await minter.populateTransaction.freezeErc721( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + { + value: EthBN.from(txFees.toString(10)), + } + ); + return txr; + }, + async transferNftToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: NftInfo, + txFees: BigNumber + ): Promise { + await approveForMinter(id, sender); + + const txr = await minter + .connect(sender) + .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to, { + value: EthBN.from(txFees.toString(10)), + }); + + await notifyValidator(txr.hash); + return txr; + }, + async unfreezeWrapped( + sender: Signer, + chain_nonce: number, + to: string, + value: EasyBalance, + txFees: EasyBalance + ): Promise { + const res = await minter + .connect(sender) + .withdraw(chain_nonce, to, value, { + value: EthBN.from(txFees.toString(10)), + }); + + return res.hash; + }, + async unfreezeWrappedNft( + sender: Signer, + to: string, + id: NftInfo, + txFees: BigNumber + ): Promise { + const res = await minter + .connect(sender) + .withdrawNft(to, id.native.tokenId, { + value: EthBN.from(txFees.toString(10)), + }); + + await notifyValidator(res.hash); + + return res; + }, + async estimateValidateTransferNft( + to: string, + nftUri: NftInfo + ): Promise { + const utx = await minter.populateTransaction.validateTransferNft( + randomAction(), + to, + nftUri.uri + ); + + return await estimateGas(params.validators, utx); + }, + async estimateValidateUnfreezeNft( + to: string, + nft: NftInfo + ): Promise { + const wrappedData = await extractWrappedMetadata(nft); + + const utx = await minter.populateTransaction.validateUnfreezeNft( + randomAction(), + to, + EthBN.from(wrappedData.wrapped.tokenId), + wrappedData.wrapped.contract + ); + + return await estimateGas(params.validators, utx); + }, + validateAddress(adr) { + return Promise.resolve(ethers.utils.getAddress(adr) !== undefined); + }, + }; +} diff --git a/yarn.lock b/yarn.lock index 2b12e58f2..1cfff8e14 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1324,6 +1324,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== +"@types/node@^10.3.2": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + "@types/node@^13.7.0": version "13.13.52" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" @@ -1451,6 +1456,22 @@ "@typescript-eslint/types" "4.31.0" eslint-visitor-keys "^2.0.0" +"@vechain/ethers@^4.0.27-5": + version "4.0.27-5" + resolved "https://registry.yarnpkg.com/@vechain/ethers/-/ethers-4.0.27-5.tgz#2e7d40294b2e14ddf4cf6f6094bbdc871e26e299" + integrity sha512-dR+rTUauPJpqHNBdEgV6Xh+o009uCRPCvN2HWYIAzZP2SvgsPHLxNUzeRbRKhNzz/HC8HjWNvECRxODF88B03Q== + dependencies: + "@types/node" "^10.3.2" + aes-js "3.0.0" + bn.js "^4.4.0" + elliptic "6.5.4" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + "@walletconnect/browser-utils@^1.6.6": version "1.6.6" resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.6.6.tgz#a985b48c99c65a986a051d66a4910010a10a0c56" @@ -1993,7 +2014,7 @@ bn.js@4.11.8: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -bn.js@^4.11.9: +bn.js@^4.11.9, bn.js@^4.4.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -3161,6 +3182,14 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" +hash.js@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -4306,6 +4335,11 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +scrypt-js@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" + integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== + scrypt-js@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" @@ -4338,6 +4372,11 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= +setimmediate@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" + integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= + setimmediate@~1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -4877,6 +4916,11 @@ util@^0.12.0: safe-buffer "^5.1.2" which-typed-array "^1.1.2" +uuid@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" + integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= + uuid@8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -4995,18 +5039,17 @@ xhr2-cookies@^1.1.0: dependencies: cookiejar "^2.1.1" +xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= + "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#c351870fb44fede7c98f6fae00e408b86a39f5a3": version "0.1.0" resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#c351870fb44fede7c98f6fae00e408b86a39f5a3" dependencies: ethers "^5.5.4" -"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#dist-erc1155": - version "0.1.0" - resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#c96891f1f007f0b6dfa87f262073bab37838fce2" - dependencies: - ethers "^5.5.4" - y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" From e4a8a21e30214ffecef818a97332bdefb65a380c Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 16 Feb 2022 20:19:38 +0530 Subject: [PATCH 347/956] elrond: update esdt utils --- src/helpers/elrond.ts | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 0fed4a724..11c4a94c1 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -167,15 +167,6 @@ export type ESDTRole = * Utility for setting ESDT roles */ export interface SetESDTRoles { - /** - * Unsigned Transaction for [[setESDTRole]] - */ - unsignedSetESDTRoles( - token: string, - target: Address, - roles: [ESDTRole] - ): Transaction; - /** * * Set the roles for a given account for an esdt @@ -187,8 +178,14 @@ export interface SetESDTRoles { setESDTRole( sender: ElrondSigner, token: string, - roles: [ESDTRole] - ): Promise; + target: Address, + roles: ESDTRole[] + ): Promise; + transferESDTOwnership( + sender: ElrondSigner, + token: string, + target: Address + ): Promise; } /** @@ -269,7 +266,7 @@ export type ElrondHelper = BalanceCheck & > & PreTransferRawTxn & ExtractTxnStatus & - MintRawTxn; + MintRawTxn & SetESDTRoles; /** * Create an object implementing cross chain utilities for elrond @@ -619,7 +616,7 @@ export const elrondHelperFactory: ( const unsignedSetESDTRoles = ( token: string, target: Address, - roles: [ESDTRole] + roles: ESDTRole[] ) => { let baseArgs = TransactionPayload.contractCall() .setFunction(new ContractFunction("setSpecialRole")) @@ -872,11 +869,24 @@ export const elrondHelperFactory: ( manager: ElrondSigner, token: string, target: Address, - roles: [ESDTRole] - ): Promise { + roles: ESDTRole[] + ): Promise { const txu = unsignedSetESDTRoles(token, target, roles); - await signAndSend(manager, txu); + return await signAndSend(manager, txu); + }, + async transferESDTOwnership(sender, token, target): Promise { + const txu = new Transaction({ + receiver: new Address("erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u"), + gasLimit: new GasLimit(60000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("transferOwnership")) + .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) + .addArg(new AddressValue(target)) + .build(), + }); + + return await signAndSend(sender, txu); }, getNonce() { return elrondParams.nonce; From 676b06c35ceec38b4b0e7224d28ee664aea7d34d Mon Sep 17 00:00:00 2001 From: VKint <82875319+VKint@users.noreply.github.com> Date: Wed, 16 Feb 2022 20:51:45 +0200 Subject: [PATCH 348/956] Update factories.ts --- src/factory/factories.ts | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index f04412d5c..53961af65 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -54,11 +54,11 @@ export namespace ChainFactoryConfigs { polygonParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc721Minter: "string", + minter_addr: "0x1A9C0d370b6e93dFdbEA1145011Bc551bB1a2B60", + erc1155_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc721_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", + erc1155Minter: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", + erc721Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", nonce: Chain.POLYGON, }, fantomParams: { @@ -74,11 +74,11 @@ export namespace ChainFactoryConfigs { bscParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc721Minter: "string", + minter_addr: "0xbde1262d472aDd62C495a601806c22d228c2d70d", + erc1155_addr: "0x59A049655F4EA03be44C0925fBB9107836b16085", + erc721_addr: "0xD90e3e365C204CE22755fEfcbA0E221a2B8a17f6", + erc1155Minter: "0xDF7a8f8452E367fA0562d67FEb90aD746b3DD99A", + erc721Minter: "0x20929C60f0158A21521dFe695A3876871874C472", nonce: Chain.BSC, }, celoParams: { @@ -94,11 +94,11 @@ export namespace ChainFactoryConfigs { harmonyParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc721Minter: "string", + minter_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", + erc1155_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc1155Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", nonce: Chain.HARMONY, }, ropstenParams: { From 7db9af0a53bba758c5735333e285386bfea4f1a4 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 17 Feb 2022 18:10:25 +0530 Subject: [PATCH 349/956] helpers: elrond: issueNonFungible: fix changeOwner --- src/helpers/elrond.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 11c4a94c1..bc745c9ee 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -592,7 +592,7 @@ export const elrondHelperFactory: ( if (canTransferNFTCreateRole !== undefined) { baseArgs = baseArgs .addArg( - new BytesValue(Buffer.from("canTransferNFTCreateRole", "ascii")) + new BytesValue(Buffer.from("canChangeOwner", "ascii")) ) .addArg( new BytesValue( From a32f153ccd5b2a625f5812cef9d27349630b58e7 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 17 Feb 2022 18:51:52 +0530 Subject: [PATCH 350/956] appconfigs: seprate out configs for testnet and mainnet --- src/config.ts | 28 ++++++++++++++++++++++++++++ src/factory/index.ts | 12 +++++++++--- src/index.ts | 1 + 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 src/config.ts diff --git a/src/config.ts b/src/config.ts new file mode 100644 index 000000000..5d547d214 --- /dev/null +++ b/src/config.ts @@ -0,0 +1,28 @@ +import { AppConfig } from "."; + +export namespace AppConfigs { + export const MainNet: () => AppConfig = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://indexnft.herokuapp.com", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTYzODk2MjMzOCwiZXhwIjoxNjQ2NzM4MzM4fQ.9eQMNMtt-P6myPlji7nBC9PAwTftd0qQvwnIZSt4ycM4E45NpzCF0URsdYj_YN_xqQKQpcHiZu1o4EXjJa_-Zw", + txSocketUri: "transaction-socket.xp.network", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com", + wrappedNftPrefix: "https://nft.xp.network/w/", + }; + }; + export const TestNet: () => AppConfig = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://testing-nft-index.herokuapp.com", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY0NDIzMDE0NiwiZXhwIjoxNjUyMDA2MTQ2fQ.gX6Auj4hFLdpem5Pk2kAnH71I19iGXfBYjmQrXylMFX_R1yzDEbylVAOLW6kABH9VjnLbAnCRdQvLaQIFmMUpw", + txSocketUri: "https://testnet-tx-socket.herokuapp.com", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", + wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", + }; + }; +} diff --git a/src/factory/index.ts b/src/factory/index.ts index f3541bebd..e2536cac2 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -388,17 +388,20 @@ export function ChainFactory( ): Promise { const rate = await remoteExchangeRate.getBatchedRate([ CHAIN_INFO[toChain].currency, - CHAIN_INFO[fromChain].currency + CHAIN_INFO[fromChain].currency, ]); const feeR = val.dividedBy(CHAIN_INFO[toChain].decimals); const fromExRate = rate.get(CHAIN_INFO[fromChain].currency)!; const toExRate = rate.get(CHAIN_INFO[toChain].currency)!; - const usdFee = Math.min(Math.max(FEE_MARGIN.min, feeR.times(toExRate*0.1).toNumber()), FEE_MARGIN.max) + const usdFee = Math.min( + Math.max(FEE_MARGIN.min, feeR.times(toExRate * 0.1).toNumber()), + FEE_MARGIN.max + ); const feeProfit = usdFee / fromExRate; return feeR .times(toExRate / fromExRate) - .plus(feeProfit) + .plus(feeProfit) .times(CHAIN_INFO[fromChain].decimals) .integerValue(BigNumber.ROUND_CEIL); } @@ -790,3 +793,6 @@ export interface NftMintArgs { readonly hash?: string | undefined; readonly attrs: string | undefined; } + +export * from "./factories"; +export * from "./cons"; diff --git a/src/index.ts b/src/index.ts index 89a193c50..d01d0a763 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,3 +4,4 @@ export * from "./helpers/web3"; export * from "./helpers/tron"; export * from "./socket"; export * from "./factory"; +export * from "./config"; From 5c2e04720a89ee7b13849bb5de4288aadf90d7e0 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 17 Feb 2022 17:58:07 +0200 Subject: [PATCH 351/956] Harmony Test contracts in Mainnet --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 53961af65..fc31fe5b1 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -247,11 +247,11 @@ export namespace ChainFactoryConfigs { harmonyParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), - minter_addr: "string", - erc1155_addr: "string", - erc721_addr: "string", - erc1155Minter: "string", - erc721Minter: "string", + minter_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", + erc1155_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc1155Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", nonce: Chain.HARMONY, }, ropstenParams: { From 3fc476cf2a249660b4f3e8b6a31f24fe3264036a Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 17 Feb 2022 21:35:43 +0530 Subject: [PATCH 352/956] elrond: setESDTRoles: wait for txn to finish --- src/helpers/elrond.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index bc745c9ee..85df711fe 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -873,7 +873,9 @@ export const elrondHelperFactory: ( ): Promise { const txu = unsignedSetESDTRoles(token, target, roles); - return await signAndSend(manager, txu); + const tx = await signAndSend(manager, txu); + await transactionResult(tx.getHash()); + return tx; }, async transferESDTOwnership(sender, token, target): Promise { const txu = new Transaction({ From 8b25ba5b3f543f35d5082974f3c1bc420b013a7e Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 20 Feb 2022 14:36:07 +0530 Subject: [PATCH 353/956] pin crypto-exchange-rate --- package.json | 2 +- yarn.lock | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index d85859d1c..43ad00e94 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "algosdk": "^1.12.0", "axios": "^0.21.1", "bignumber.js": "9.0.1", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", + "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#d0c721e0674feed19d53ec5195f008dd004e8da7", "ethers": "^5.5.4", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", diff --git a/yarn.lock b/yarn.lock index 1cfff8e14..3948b28c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2336,6 +2336,12 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= +"crypto-exchange-rate@git+https://github.com/XP-NETWORK/exchange-rate#d0c721e0674feed19d53ec5195f008dd004e8da7": + version "1.0.0" + resolved "git+https://github.com/XP-NETWORK/exchange-rate#d0c721e0674feed19d53ec5195f008dd004e8da7" + dependencies: + axios "^0.21.1" + "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#ccc292d237d584ec4744ac691b83a04f66357b5f" From 322b399de7f12db0bf5f40231763da77d9bd4ae6 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 20 Feb 2022 16:14:04 +0530 Subject: [PATCH 354/956] elrond: unfreezeNft: use token identifier instead of xpnft --- src/helpers/elrond.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 85df711fe..4d700d82d 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -491,7 +491,7 @@ export const elrondHelperFactory: ( const unsignedUnfreezeNftTxn = ( address: Address, to: string, - id: number, + { tokenIdentifier, nonce }: EsdtNftInfo, tx_fees: BigNumber, chain_nonce: string ) => { @@ -502,8 +502,10 @@ export const elrondHelperFactory: ( .setFunction(new ContractFunction("MultiESDTNFTTransfer")) .addArg(new AddressValue(mintContract)) .addArg(new BigUIntValue(new BigNumber(2))) - .addArg(new TokenIdentifierValue(esdtNftHex)) - .addArg(new U64Value(new BigNumber(id))) + .addArg(new TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + )) + .addArg(new U64Value(new BigNumber(nonce))) .addArg(new BigUIntValue(new BigNumber(1))) .addArg(new TokenIdentifierValue(esdtSwaphex)) .addArg(new U64Value(new BigNumber(0x0))) @@ -705,7 +707,7 @@ export const elrondHelperFactory: ( const txu = unsignedUnfreezeNftTxn( new Address(sender), to, - nft.native.nonce, + nft.native, new BigNumber(fee.toString()), nonce ); @@ -793,7 +795,7 @@ export const elrondHelperFactory: ( const txu = unsignedUnfreezeNftTxn( await getAddress(sender), to, - nft.native.nonce, + nft.native, new BigNumber(txFees.toString()), nonce ); From a26a1e6224fa52e1ddac4f7e269319a552258fe2 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 20 Feb 2022 17:09:56 +0530 Subject: [PATCH 355/956] helpers: isWrappedNft: assume normal on error --- src/helpers/chain.ts | 4 ++++ src/helpers/elrond.ts | 7 +++---- src/helpers/tron.ts | 8 ++------ src/helpers/web3.ts | 5 ++--- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 59b8c8b2c..4edb5fe6a 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -313,3 +313,7 @@ export function extractWrappedMetadata( export interface GetProvider { getProvider(): Provider; } + +export async function isWrappedNft(nft: NftInfo) { + return typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== "undefined"; +} diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 4d700d82d..b54dfac71 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -41,6 +41,7 @@ import { TransferNftForeignBatch, UnfreezeForeignNftBatch, EstimateTxFeesBatch, + isWrappedNft, } from "./chain"; import { ChainNonceGet, @@ -840,10 +841,8 @@ export const elrondHelperFactory: ( return res.data["data"]["tokens"]; }, - async isWrappedNft(nft) { - return typeof (await axios.get(nft.uri)).data.wrapped !== "undefined"; - }, - async preTransferRawTxn(id, address, value) { + isWrappedNft: isWrappedNft, + async preTransferRawTxn(id, address, value) { if (!address || !value) { throw new Error("address and value is required for elrond egld swap"); } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 025b4387a..088edbb98 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -3,6 +3,7 @@ import { BalanceCheck, BatchWrappedBalanceCheck, EstimateTxFees, + isWrappedNft, MintNft, TransferForeign, TransferNftForeign, @@ -486,12 +487,7 @@ export async function tronHelperFactory( } return addMinToExpirationTime(transaction, 15); }, - async isWrappedNft(nft, _prefix) { - return Promise.resolve( - nft.native.contract.toLowerCase() === - tronParams.erc721_addr.toLowerCase() - ); - }, + isWrappedNft: isWrappedNft, isApprovedForMinter, async transferNativeToForeign( sender: TronSender, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 2e6f54770..c4976522b 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -15,6 +15,7 @@ import { TransferNftForeignBatch, UnfreezeForeignNftBatch, EstimateTxFeesBatch, + isWrappedNft, } from "./chain"; import { Signer, @@ -408,9 +409,7 @@ export async function web3HelperFactory( return approvetxn; }, - async isWrappedNft(nft) { - return typeof (await axios.get(nft.uri)).data.wrapped !== "undefined"; - }, + isWrappedNft: isWrappedNft, async extractTxnStatus(txn) { const status = (await (await provider.getTransaction(txn)).wait()).status; if (status === undefined) { From c4531de77e93362524347474efc19c1d9becf368 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 20 Feb 2022 18:14:40 +0530 Subject: [PATCH 356/956] factory: estimateFee: fix derp --- src/factory/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index e2536cac2..b33e42866 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -411,9 +411,9 @@ export function ChainFactory( nft: NftInfo, receiver: string ) => { - const estimate = await fromChain.estimateValidateTransferNft( + const estimate = await toChain.estimateValidateTransferNft( receiver, - nft, + nft as any, "" ); const conv = await calcExchangeFees( @@ -440,9 +440,9 @@ export function ChainFactory( nft: NftInfo[], receiver: string ): Promise { - const estimate = await fromChain.estimateValidateTransferNftBatch( + const estimate = await toChain.estimateValidateTransferNftBatch( receiver, - nft, + nft as any, new Array(nft.length).fill(toChain.XpNft) ); const conv = await calcExchangeFees( From 256c80cc17d4a717d6910ba98c2d2d04e7643039 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 20 Feb 2022 21:06:02 +0530 Subject: [PATCH 357/956] factory: properly cache factory objs --- src/factory/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index b33e42866..125fc9ddb 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -377,6 +377,7 @@ export function ChainFactory( let helper = map.get(chain); if (helper === undefined) { helper = await CHAIN_INFO[chain].constructor(cToP.get(chain)!); + map.set(chain, helper) } return helper! as any as T; }; From efd709c21f1dc641f05f95be10e406b8d08b6724 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Sun, 20 Feb 2022 20:57:17 +0200 Subject: [PATCH 358/956] update testnet SCs --- src/factory/factories.ts | 44 ++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index fc31fe5b1..24951b5bd 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -15,7 +15,11 @@ const EVM_VALIDATORS = [ "0xc2a29b4e9fa71e9033a52611544403241c56ac5e", ]; -const EVM_TESTNET_VALIDATORS = ["0x63A0bC7286e80A3a46D5113e1C059e7a1e14e0fc"]; +const EVM_TESTNET_VALIDATORS = [ + "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", + "0xae87208a5204B6606d3AB177Be5fdf62267Cd499", + "0x5002258315873AdCbdEF25a8E71C715A4f701dF5" +]; const middleware_uri = "https://notifier.xp.network"; @@ -24,12 +28,12 @@ export namespace ChainFactoryConfigs { elrondParams: { node_uri: TestNetRpcUri.ELROND, minter_address: - "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", + "erd1qqqqqqqqqqqqqpgqzses02wme3gsx320dpja2p2kk3rckgcfksmsj8grdk", esdt_swap_address: - "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", + "erd1qqqqqqqqqqqqqpgqwu3ulmuxppa2e537ajst468wplkxxsqyksms9az8at", esdt: "XPNET-738176", - esdt_nft: "XPNFT-cb7482", - esdt_swap: "WEGLD-5f1f8d", + esdt_nft: "XPNFT-aca910", + esdt_swap: "WEGLD-f8dc4c", nonce: 2, }, tronParams: { @@ -44,11 +48,11 @@ export namespace ChainFactoryConfigs { avalancheParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc721Minter: "string", + minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + erc1155_addr: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", + erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", nonce: Chain.AVALANCHE, }, polygonParams: { @@ -104,11 +108,11 @@ export namespace ChainFactoryConfigs { ropstenParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc721Minter: "string", + minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + erc1155_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", nonce: Chain.ETHEREUM, }, xDaiParams: { @@ -164,11 +168,11 @@ export namespace ChainFactoryConfigs { iotexParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.IOTEX), - minter_addr: "0x0000000000000000000000000000000000000000", - erc1155_addr: "0x0000000000000000000000000000000000000000", - erc721_addr: "0x0000000000000000000000000000000000000000", - erc1155Minter: "string", - erc721Minter: "string", + minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + erc1155_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", nonce: Chain.IOTEX, }, }); From 6d6ec881bd5058c91923f4fd6f0afd70c97b2d5c Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 21 Feb 2022 18:37:39 +0530 Subject: [PATCH 359/956] add proper type inference --- src/consts.ts | 263 ++++++++++++++++++++-------------------- src/factory/index.ts | 145 ++++++++++------------ src/helpers/algorand.ts | 7 +- src/helpers/chain.ts | 5 +- src/helpers/elrond.ts | 7 +- src/helpers/tezos.ts | 6 +- src/helpers/thor.ts | 6 +- src/helpers/tron.ts | 7 +- src/helpers/web3.ts | 6 +- src/index.ts | 1 + src/type-utils.ts | 15 +++ 11 files changed, 239 insertions(+), 229 deletions(-) create mode 100644 src/type-utils.ts diff --git a/src/consts.ts b/src/consts.ts index 7ad711549..d9755f73d 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -14,6 +14,7 @@ import { } from "./helpers/algorand"; import { AppConfig } from "./factory"; import { TezosHelper, tezosHelperFactory, TezosParams } from "./helpers/tezos"; +import { ChainV, InferChainH, InferChainParam } from "./type-utils"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -55,8 +56,8 @@ export enum MainNetRpcUri { // TODO: Algorand } -// Marker type -export type ChainNonce<_, __> = number; +// WARN: __helper and __params are markers +export type ChainNonce = number & { __helper: H, __params: P }; export type ElrondNonce = ChainNonce; export type Web3Nonce = ChainNonce; export type TronNonce = ChainNonce; @@ -64,207 +65,201 @@ export type AlgoNonce = ChainNonce; export type TezosNonce = ChainNonce; export namespace Chain { - export const ELROND: ElrondNonce = 2; - export const HECO: Web3Nonce = 3; - export const BSC: Web3Nonce = 4; - export const ETHEREUM: Web3Nonce = 5; - export const AVALANCHE: Web3Nonce = 6; - export const POLYGON: Web3Nonce = 7; - export const FANTOM: Web3Nonce = 8; - export const TRON: TronNonce = 9; - export const CELO: Web3Nonce = 0xb; - export const HARMONY: Web3Nonce = 0xc; - export const XDAI: Web3Nonce = 0xe; - export const ALGORAND: AlgoNonce = 0xf; - export const FUSE: Web3Nonce = 0x10; - export const UNIQUE: Web3Nonce = 0x11; - export const TEZOS: TezosNonce = 0x12; - export const VELAS: Web3Nonce = 0x13; - export const IOTEX: Web3Nonce = 0x14; + export const ELROND = 2 as ElrondNonce; + export const HECO = 3 as Web3Nonce; + export const BSC = 4 as Web3Nonce; + export const ETHEREUM = 5 as Web3Nonce; + export const AVALANCHE = 6 as Web3Nonce; + export const POLYGON = 7 as Web3Nonce; + export const FANTOM = 8 as Web3Nonce; + export const TRON = 9 as TronNonce; + export const CELO = 0xb as Web3Nonce; + export const HARMONY = 0xc as Web3Nonce; + export const ONT = 0xd as Web3Nonce; + export const XDAI = 0xe as Web3Nonce; + export const ALGORAND = 0xf as AlgoNonce; + export const FUSE = 0x10 as Web3Nonce; + export const UNIQUE = 0x11 as Web3Nonce; + export const TEZOS = 0x12 as TezosNonce; + export const VELAS = 0x13 as Web3Nonce; + export const IOTEX = 0x14 as Web3Nonce; } -interface ChainData { +interface ChainData { name: string; nonce: number; decimals: number; - constructor: ( - params: - | Web3Params - | TronParams - | ElrondParams - | AlgorandParams - | TezosParams - ) => Promise; + constructor: (p: InferChainParam) => Promise>; blockExplorerUrl: string; chainId?: number; currency: SupportedCurrency; } -interface ChainInfo { - [nonce: number]: ChainData; +type ChainInfo = { + set(k: T, v: ChainData | undefined): void; + get(k: T): ChainData | undefined; } -export const CHAIN_INFO: ChainInfo = { - 2: { - name: "Elrond", - nonce: 2, - decimals: 1e18, - constructor: (p) => elrondHelperFactory(p as ElrondParams), - blockExplorerUrl: "https://devnet-explorer.elrond.com/transactions/", - currency: SupportedCurrency.EGLD, - }, - 3: { - name: "Heco", - nonce: 3, - chainId: 256, - decimals: 1e18, - blockExplorerUrl: "https://testnet.hecoinfo.com/tx", - constructor: (p) => web3HelperFactory(p as Web3Params), - currency: SupportedCurrency.HT, - }, - 4: { - name: "BSC", - nonce: 4, - chainId: 97, - decimals: 1e18, - blockExplorerUrl: "https://testnet.bscscan.com/tx", - constructor: (p) => web3HelperFactory(p as Web3Params), - currency: SupportedCurrency.BNB, - }, - 5: { - name: "Ropsten", - nonce: 5, - currency: SupportedCurrency.ETH, - chainId: 3, - decimals: 1e18, - blockExplorerUrl: "https://ropsten.etherscan.io/tx", - constructor: (p) => web3HelperFactory(p as Web3Params), - }, - 6: { - name: "Avalanche", - nonce: 6, - chainId: 43113, - decimals: 1e18, - blockExplorerUrl: "https://cchain.explorer.avax-test.network/tx", - constructor: (p) => web3HelperFactory(p as Web3Params), - currency: SupportedCurrency.AVAX, - }, - 7: { - name: "Polygon", - nonce: 0x7, - chainId: 80001, - decimals: 1e18, - blockExplorerUrl: "https://mumbai.polygonscan.com/tx", - constructor: (p) => web3HelperFactory(p as Web3Params), - currency: SupportedCurrency.MATIC, - }, - 8: { - name: "Fantom", - nonce: 0x8, - decimals: 1e18, - chainId: 4002, - blockExplorerUrl: "https://explorer.testnet.fantom.network/transactions", - constructor: (p) => web3HelperFactory(p as Web3Params), - currency: SupportedCurrency.FTM, - }, - 9: { - name: "Tron", - nonce: 0x9, - decimals: 1e6, - blockExplorerUrl: "https://shasta.tronscan.org/#/transaction", - constructor: (p) => tronHelperFactory(p as TronParams), - currency: SupportedCurrency.TRX, - }, - 11: { +export const CHAIN_INFO: ChainInfo = new Map(); +CHAIN_INFO.set(Chain.ELROND, { + name: "Elrond", + nonce: 2, + decimals: 1e18, + constructor: elrondHelperFactory as any, + blockExplorerUrl: "https://devnet-explorer.elrond.com/transactions/", + currency: SupportedCurrency.EGLD +}); +CHAIN_INFO.set(Chain.HECO, { + name: "Heco", + nonce: 3, + chainId: 256, + decimals: 1e18, + blockExplorerUrl: "https://testnet.hecoinfo.com/tx", + constructor: web3HelperFactory, + currency: SupportedCurrency.HT, +}); +CHAIN_INFO.set(Chain.BSC, { + name: "BSC", + nonce: 4, + chainId: 97, + decimals: 1e18, + blockExplorerUrl: "https://testnet.bscscan.com/tx", + constructor: web3HelperFactory, + currency: SupportedCurrency.BNB, +}); +CHAIN_INFO.set(Chain.ETHEREUM, { + name: "Ropsten", + nonce: 5, + currency: SupportedCurrency.ETH, + chainId: 3, + decimals: 1e18, + blockExplorerUrl: "https://ropsten.etherscan.io/tx", + constructor: web3HelperFactory, +}); +CHAIN_INFO.set(Chain.AVALANCHE, { + name: "Avalanche", + nonce: 6, + chainId: 43113, + decimals: 1e18, + blockExplorerUrl: "https://cchain.explorer.avax-test.network/tx", + constructor: web3HelperFactory, + currency: SupportedCurrency.AVAX, +}); +CHAIN_INFO.set(Chain.POLYGON, { + name: "Polygon", + nonce: 0x7, + chainId: 80001, + decimals: 1e18, + blockExplorerUrl: "https://mumbai.polygonscan.com/tx", + constructor: web3HelperFactory, + currency: SupportedCurrency.MATIC, +}); +CHAIN_INFO.set(Chain.FANTOM, { + name: "Fantom", + nonce: 0x8, + decimals: 1e18, + chainId: 4002, + blockExplorerUrl: "https://explorer.testnet.fantom.network/transactions", + constructor: web3HelperFactory, + currency: SupportedCurrency.FTM, +}) +CHAIN_INFO.set(Chain.TRON, { + name: "Tron", + nonce: 0x9, + decimals: 1e6, + blockExplorerUrl: "https://shasta.tronscan.org/#/transaction", + constructor: tronHelperFactory, + currency: SupportedCurrency.TRX, +}); +CHAIN_INFO.set(Chain.CELO, { name: "Celo", nonce: 0xb, decimals: 1e18, chainId: 44787, blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", - constructor: (p) => web3HelperFactory(p as Web3Params), + constructor: web3HelperFactory, currency: SupportedCurrency.CELO, - }, - 12: { +}) +CHAIN_INFO.set(Chain.HARMONY, { name: "Harmony", nonce: 0xc, decimals: 1e18, chainId: 1666700000, blockExplorerUrl: "https://explorer.pops.one/tx", - constructor: (p) => web3HelperFactory(p as Web3Params), - currency: SupportedCurrency.ONE, - }, - 13: { + constructor: web3HelperFactory, + currency: SupportedCurrency.ONE +}) +CHAIN_INFO.set(Chain.ONT, { name: "Ontology", nonce: 0xd, decimals: 1e18, chainId: 1666700000, blockExplorerUrl: "https://explorer.pops.one/tx", - constructor: (p) => web3HelperFactory(p as Web3Params), + constructor: web3HelperFactory, currency: SupportedCurrency.ONT, - }, - 14: { +}) +CHAIN_INFO.set(Chain.XDAI, { name: "xDai", nonce: 0xe, decimals: 1e18, chainId: 0x64, blockExplorerUrl: "https://blockscout.com/xdai/mainnet/", - constructor: (p) => web3HelperFactory(p as Web3Params), - currency: SupportedCurrency.STAKE, - }, - 15: { + constructor: web3HelperFactory, + currency: SupportedCurrency.STAKE +}) +CHAIN_INFO.set(Chain.ALGORAND, { name: "Algorand", nonce: 0xf, decimals: 1e6, chainId: undefined, blockExplorerUrl: "https://algoexplorer.io/tx", currency: SupportedCurrency.ALGO, - constructor: (p) => Promise.resolve(algorandHelper(p as AlgorandParams)), - }, - 16: { + constructor: (p) => Promise.resolve(algorandHelper(p)), +}); +CHAIN_INFO.set(Chain.FUSE, { name: "FUSE", nonce: 0x10, decimals: 1e18, chainId: undefined, blockExplorerUrl: "https://explorer.fuse.io/tx", currency: SupportedCurrency.FUSE, - constructor: (p) => web3HelperFactory(p as Web3Params), - }, - 17: { + constructor: web3HelperFactory, +}) +CHAIN_INFO.set(Chain.UNIQUE, { name: "Unique", nonce: 0x11, decimals: 1e18, chainId: 8888, blockExplorerUrl: "CANT FIND", - constructor: (p) => web3HelperFactory(p as Web3Params), + constructor: web3HelperFactory, currency: SupportedCurrency.OPL, - }, - 18: { +}) +CHAIN_INFO.set(Chain.TEZOS, { name: "Tezos", nonce: 0x12, decimals: 1e6, - constructor: (p) => tezosHelperFactory(p as TezosParams), + constructor: tezosHelperFactory, currency: SupportedCurrency.XTZ, blockExplorerUrl: "https://tezblock.io/transaction", - }, - 19: { +}) +CHAIN_INFO.set(Chain.VELAS, { name: "Velas", blockExplorerUrl: "https://explorer.velas.com/tx", nonce: 0x13, decimals: 1e18, - constructor: (p) => web3HelperFactory(p as Web3Params), + constructor: web3HelperFactory, currency: SupportedCurrency.VLX, chainId: 111, - }, - 20: { +}) +CHAIN_INFO.set(Chain.IOTEX, { name: "IoTeX", blockExplorerUrl: "https://iotexscan.io/tx", nonce: 0x14, decimals: 1e18, - constructor: (p) => web3HelperFactory(p as Web3Params), + constructor: web3HelperFactory, currency: SupportedCurrency.IOTX, chainId: 4689, - }, -}; +}); export const Config: AppConfig = { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", diff --git a/src/factory/index.ts b/src/factory/index.ts index 125fc9ddb..5036c4b0c 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -9,10 +9,7 @@ import { Chain, ChainNonce, CHAIN_INFO, - ElrondNonce, FEE_MARGIN, - TronNonce, - Web3Nonce, } from "../consts"; export * from "./factories"; @@ -58,6 +55,7 @@ import { TransferNftForeignBatch, UnfreezeForeignNftBatch, } from "../helpers/chain"; +import { ChainV, HelperMap, InferChainH, InferChainParam, InferSigner, ParamMap } from "../type-utils"; export type CrossChainHelper = | ElrondHelper @@ -66,7 +64,7 @@ export type CrossChainHelper = | AlgorandHelper | TezosHelper; -type NftUriChain = ChainNonceGet & WrappedNftCheck; +type NftUriChain = ChainNonceGet & WrappedNftCheck; type FullChain = TransferNftForeign< Signer, @@ -78,12 +76,12 @@ type FullChain = TransferNftForeign< UnfreezeForeignNft & EstimateTxFees & NftUriChain & - ValidateAddress & { XpNft?: string } & EstimateTxFeesBatch< - BigNumber, - RawNft - > & + ValidateAddress & { XpNft?: string }; + +type FullChainBatch = FullChain & TransferNftForeignBatch & - UnfreezeForeignNftBatch; + UnfreezeForeignNftBatch & + EstimateTxFeesBatch; type RawTxnBuiladableChain = TransferNftForeignUnsigned< string, @@ -106,7 +104,7 @@ export type ChainFactory = { * @type P: Either {@link ElrondParams} | {@link Web3Params} | {@link TronParams} as required. * @param chain: {@link Chain} to create the helper for. */ - inner(chain: ChainNonce): Promise; + inner(chain: T): Promise>; /** * Whether or not the bridge is alive for a given chain * this is checked regardless before using any bridge related function(e.g transferNft) is called @@ -122,9 +120,9 @@ export type ChainFactory = { * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) */ - transferNft( + transferNft( fromChain: FullChain, - toChain: FullChain, + toChain: FullChain, nft: NftInfo, sender: SignerF, receiver: string, @@ -132,9 +130,9 @@ export type ChainFactory = { mintWith?: string ): Promise; - transferBatchNft( - fromChain: FullChain, - toChain: FullChain, + transferBatchNft( + fromChain: FullChainBatch, + toChain: FullChainBatch, nft: NftInfo[], sender: SignerF, receiver: string, @@ -186,12 +184,12 @@ export type ChainFactory = { * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. * @param params : New Params to be set. */ - updateParams(nonce: ChainNonce, params: TP): void; - nonceToChainNonce(nonce: number): ElrondNonce | TronNonce | Web3Nonce; - pkeyToSigner( - nonce: ChainNonce, unknown>, + updateParams(nonce: T, params: InferChainParam): void; + nonceToChainNonce(nonce: number): ChainV; + pkeyToSigner( + nonce: S, key: string - ): Promise; + ): Promise>>; /** * * Get transaction in the destination chain @@ -218,7 +216,7 @@ export type ChainFactory = { * @param claimer the account which can claim the nft */ waitAlgorandNft( - originChain: ExtractAction & ChainNonceGet, + originChain: ExtractAction & ChainNonceGet, txn: Txn, claimer: AlgoSignerH ): Promise; @@ -313,38 +311,30 @@ export interface AppConfig { wrappedNftPrefix: string; } -type AllParams = - | Web3Params - | ElrondParams - | TronParams - | AlgorandParams - | TezosParams - | undefined; function mapNonceToParams( chainParams: Partial -): Map { - const cToP = new Map(); - - cToP.set(2, chainParams.elrondParams); - cToP.set(3, chainParams.hecoParams); - cToP.set(4, chainParams.bscParams); - cToP.set(5, chainParams.ropstenParams); - cToP.set(6, chainParams.avalancheParams); - cToP.set(7, chainParams.polygonParams); - cToP.set(8, chainParams.fantomParams); - cToP.set(9, chainParams.tronParams); - - cToP.set(11, chainParams.celoParams); - cToP.set(12, chainParams.harmonyParams); - cToP.set(13, chainParams.ontologyParams); - cToP.set(14, chainParams.xDaiParams); - cToP.set(15, chainParams.algorandParams); - cToP.set(16, chainParams.fuseParams); - cToP.set(17, chainParams.uniqueParams); - cToP.set(18, chainParams.tezosParams); - cToP.set(19, chainParams.velasParams); - cToP.set(20, chainParams.iotexParams); +): ParamMap { + const cToP: ParamMap = new Map(); + cToP.set(Chain.ELROND, chainParams.elrondParams); + cToP.set(Chain.HECO, chainParams.hecoParams); + cToP.set(Chain.BSC, chainParams.bscParams); + cToP.set(Chain.ETHEREUM, chainParams.ropstenParams); + cToP.set(Chain.AVALANCHE, chainParams.avalancheParams); + cToP.set(Chain.POLYGON, chainParams.polygonParams); + cToP.set(Chain.FANTOM, chainParams.fantomParams); + cToP.set(Chain.TRON, chainParams.tronParams); + cToP.set(Chain.CELO, chainParams.celoParams!); + cToP.set(Chain.HARMONY, chainParams.harmonyParams); + cToP.set(Chain.ONT, chainParams.ontologyParams); + cToP.set(Chain.XDAI, chainParams.xDaiParams); + cToP.set(Chain.ALGORAND, chainParams.algorandParams); + cToP.set(Chain.FUSE, chainParams.fuseParams); + cToP.set(Chain.UNIQUE, chainParams.uniqueParams); + cToP.set(Chain.TEZOS, chainParams.tezosParams); + cToP.set(Chain.VELAS, chainParams.velasParams); + cToP.set(Chain.IOTEX, chainParams.iotexParams); + return cToP; } /** @@ -357,7 +347,7 @@ export function ChainFactory( appConfig: AppConfig, chainParams: Partial ): ChainFactory { - let map = new Map(); + let helpers: HelperMap = new Map(); let cToP = mapNonceToParams(chainParams); const heartbeatRepo = bridgeHeartbeat(appConfig.heartbeatUri); @@ -373,27 +363,27 @@ export function ChainFactory( }, }); - const inner = async (chain: ChainNonce): Promise => { - let helper = map.get(chain); + const inner = async (chain: T): Promise> => { + let helper = helpers.get(chain); if (helper === undefined) { - helper = await CHAIN_INFO[chain].constructor(cToP.get(chain)!); - map.set(chain, helper) + helper = await CHAIN_INFO.get(chain)!.constructor(cToP.get(chain)!); + helpers.set(chain, helper) } - return helper! as any as T; + return helper! as any; }; - async function calcExchangeFees( - fromChain: number, - toChain: number, + async function calcExchangeFees( + fromChain: T, + toChain: T, val: BigNumber ): Promise { const rate = await remoteExchangeRate.getBatchedRate([ - CHAIN_INFO[toChain].currency, - CHAIN_INFO[fromChain].currency, + CHAIN_INFO.get(toChain)!.currency, + CHAIN_INFO.get(fromChain)!.currency, ]); - const feeR = val.dividedBy(CHAIN_INFO[toChain].decimals); - const fromExRate = rate.get(CHAIN_INFO[fromChain].currency)!; - const toExRate = rate.get(CHAIN_INFO[toChain].currency)!; + const feeR = val.dividedBy(CHAIN_INFO.get(toChain)!.decimals); + const fromExRate = rate.get(CHAIN_INFO.get(fromChain)!.currency)!; + const toExRate = rate.get(CHAIN_INFO.get(toChain)!.currency)!; const usdFee = Math.min( Math.max(FEE_MARGIN.min, feeR.times(toExRate * 0.1).toNumber()), FEE_MARGIN.max @@ -403,7 +393,7 @@ export function ChainFactory( return feeR .times(toExRate / fromExRate) .plus(feeProfit) - .times(CHAIN_INFO[fromChain].decimals) + .times(CHAIN_INFO.get(fromChain)!.decimals) .integerValue(BigNumber.ROUND_CEIL); } const estimateFees = async ( @@ -436,8 +426,8 @@ export function ChainFactory( } async function estimateBatchFees( - fromChain: FullChain, - toChain: FullChain, + fromChain: FullChainBatch, + toChain: FullChainBatch, nft: NftInfo[], receiver: string ): Promise { @@ -496,7 +486,7 @@ export function ChainFactory( function nonceToChainNonce( nonce: number - ): ElrondNonce | Web3Nonce | TronNonce { + ): ChainV { switch (nonce) { case 2: { return Chain.ELROND; @@ -654,34 +644,34 @@ export function ChainFactory( return [hash, status]; }, nonceToChainNonce, - async pkeyToSigner(nonce: ChainNonce, key: string) { + async pkeyToSigner(nonce: T, key: string) { let chain = nonceToChainNonce(nonce); switch (chain) { case Chain.ELROND: { - return UserSigner.fromPem(key) as unknown as S; + return UserSigner.fromPem(key); } case Chain.TRON: { - return key as unknown as S; + return key; } case Chain.ALGORAND: { - const algo: AlgorandHelper = await inner(Chain.ALGORAND); + const algo = await inner(Chain.ALGORAND); const mnem = algosdk.secretKeyToMnemonic(Base64.toUint8Array(key)); return algoSignerWrapper( algo.algod, algosdk.mnemonicToSecretKey(mnem) - ) as unknown as S; + ); } default: { - const chainH = await inner(chain); - return chainH.createWallet(key) as unknown as S; + const chainH = await inner(chain) as any; + return chainH.createWallet(key); } } }, estimateFees, inner, bridgeStatus, - updateParams(chainNonce: ChainNonce, params: TP) { - map.delete(chainNonce); + updateParams(chainNonce: T, params: InferChainParam) { + helpers.delete(chainNonce); cToP.set(chainNonce, params as any); }, async nftList(chain: NftUriChain, owner: string) { @@ -736,7 +726,6 @@ export function ChainFactory( throw Error("invalid address"); } if (await fromChain.isWrappedNft(nft, appConfig.wrappedNftPrefix)) { - const meta = await extractWrappedMetadata(nft); const res = await fromChain.unfreezeWrappedNft( sender, receiver, diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 1f0c25f3d..7db705149 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -5,7 +5,9 @@ import axios from "axios"; import { BigNumber } from "bignumber.js"; import { Base64, decode } from "js-base64"; import { + AlgoNonce, AlgorandSocketHelper, + Chain, ChainNonceGet, EstimateTxFees, NftInfo, @@ -116,7 +118,7 @@ export type FullClaimNft = ClaimNftInfo & { uri: string; }; -export type AlgorandHelper = ChainNonceGet & +export type AlgorandHelper = ChainNonceGet & WrappedNftCheck & TransferNftForeign & UnfreezeForeignNft & @@ -142,7 +144,6 @@ export type AlgorandParams = { algodUri: string; algodPort: number | undefined; sendNftAppId: number; - nonce: number; }; type MinWrappedNft = { @@ -295,7 +296,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { return { algod, - getNonce: () => args.nonce, + getNonce: () => Chain.ALGORAND, claimNft, optInNft, isOptIn, diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 4edb5fe6a..6f77f7f12 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -4,6 +4,7 @@ import BigNumber from "bignumber.js"; import { BigNumberish } from "ethers"; import { NftMintArgs } from ".."; import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; +import { ChainV } from "../type-utils"; /** * NFT Info @@ -235,8 +236,8 @@ export interface MintRawTxn { mintRawTxn(id: NftMintArgs, address: string, value?: BigNumber): Promise; } -export interface ChainNonceGet { - getNonce(): number; +export interface ChainNonceGet { + getNonce(): T; } export interface ExtractAction { diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index b54dfac71..5b26964be 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -44,7 +44,9 @@ import { isWrappedNft, } from "./chain"; import { + Chain, ChainNonceGet, + ElrondNonce, EstimateTxFees, ExtractAction, ExtractTxnStatus, @@ -247,7 +249,7 @@ export type ElrondHelper = BalanceCheck & MintNft & { mintableEsdts(address: Address): Promise; } & WrappedNftCheck & - ChainNonceGet & + ChainNonceGet & ValidateAddress & ExtractAction & PreTransfer & @@ -285,7 +287,6 @@ export interface ElrondParams { esdt: string; esdt_nft: string; esdt_swap: string; - nonce: number; } export const elrondHelperFactory: ( @@ -892,7 +893,7 @@ export const elrondHelperFactory: ( return await signAndSend(sender, txu); }, getNonce() { - return elrondParams.nonce; + return Chain.ELROND; }, async estimateValidateTransferNft( _toAddress: string, diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 843112a6a..1d388a488 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -1,11 +1,13 @@ import { BalanceCheck, + Chain, ChainNonceGet, EstimateTxFees, MintNft, NftInfo, NftMintArgs, PreTransfer, + TezosNonce, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -50,7 +52,7 @@ export type TezosHelper = TransferNftForeign< UnfreezeForeignNft & ValidateAddress & EstimateTxFees & - ChainNonceGet & + ChainNonceGet & WrappedNftCheck & Pick, "preTransfer"> & { isApprovedForMinter( @@ -256,7 +258,7 @@ export async function tezosHelperFactory({ ); }, getNonce() { - return 0x12; + return Chain.TEZOS; }, async estimateValidateTransferNft() { return estimateGas(validators, 1.2e5); diff --git a/src/helpers/thor.ts b/src/helpers/thor.ts index bc774bc53..408b5e06c 100644 --- a/src/helpers/thor.ts +++ b/src/helpers/thor.ts @@ -45,6 +45,7 @@ import { TransferNftForeignUnsigned, UnfreezeForeignNftUnsigned, ValidateAddress, + Web3Nonce, } from ".."; import { NftMintArgs } from ".."; import { BigNumber as EthBN } from "ethers"; @@ -134,7 +135,7 @@ export type Web3Helper = BaseWeb3Helper & > & WrappedNftCheck & EstimateTxFees & - ChainNonceGet & + ChainNonceGet & IsApproved & Approve & ValidateAddress & @@ -300,7 +301,8 @@ export async function web3HelperFactory( isApprovedForMinter, preTransfer: (s, id, _fee) => approveForMinter(id, s), extractAction, - getNonce: () => params.nonce, + // TODO + getNonce: () => params.nonce as any, async balanceWrapped( address: string, chain_nonce: number diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 088edbb98..af8c75907 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -30,6 +30,7 @@ import { } from "xpnet-web3-contracts"; import { Approve, + Chain, ExtractAction, ExtractTxnStatus, extractWrappedMetadata, @@ -40,6 +41,7 @@ import { PreTransferRawTxn, TransactionStatus, TransferNftForeignUnsigned, + TronNonce, UnfreezeForeignNftUnsigned, ValidateAddress, } from ".."; @@ -99,7 +101,7 @@ export type TronHelper = BaseTronHelper & UnfreezeForeignNft & WrappedNftCheck & EstimateTxFees & - ChainNonceGet & + ChainNonceGet & Approve & ValidateAddress & IsApproved & @@ -216,7 +218,6 @@ export interface TronParams { minter_addr: string; erc721_addr: string; validators: string[]; - nonce: number; } export interface TronRawTxn { @@ -547,7 +548,7 @@ export async function tronHelperFactory( return res; }, getNonce() { - return tronParams.nonce; + return Chain.TRON; }, async transferNftToForeign( sender: TronSender, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index c4976522b..0ced22e7e 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -36,6 +36,7 @@ import { UserNftMinter, } from "xpnet-web3-contracts"; import { + ChainNonce, ChainNonceGet, EstimateTxFees, ExtractAction, @@ -49,6 +50,7 @@ import { TransferNftForeignUnsigned, UnfreezeForeignNftUnsigned, ValidateAddress, + Web3Nonce, } from ".."; import { NftMintArgs } from ".."; import axios from "axios"; @@ -151,7 +153,7 @@ export type Web3Helper = BaseWeb3Helper & WrappedNftCheck & EstimateTxFees & EstimateTxFeesBatch & - ChainNonceGet & + ChainNonceGet> & IsApproved & Approve & ValidateAddress & @@ -226,7 +228,7 @@ export interface Web3Params { erc721_addr: string; erc721Minter: string; erc1155Minter: string; - nonce: number; + nonce: Web3Nonce; } type NftMethodVal = { diff --git a/src/index.ts b/src/index.ts index d01d0a763..9e14780e5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,4 +4,5 @@ export * from "./helpers/web3"; export * from "./helpers/tron"; export * from "./socket"; export * from "./factory"; +export * from "./consts"; export * from "./config"; diff --git a/src/type-utils.ts b/src/type-utils.ts new file mode 100644 index 000000000..cdcf452ed --- /dev/null +++ b/src/type-utils.ts @@ -0,0 +1,15 @@ +import { Chain, ChainNonce, TransferNftForeign } from "."; + +type TransferNftChain = TransferNftForeign; + +export type ChainV = typeof Chain[keyof typeof Chain]; +export type InferChainParam = K extends ChainNonce ? Param : never; +export type InferChainH = K extends ChainNonce ? Helper : never; +export type InferSigner> = K extends TransferNftChain ? S : never; + +export type ParamMap = { + set(k: T, v: InferChainParam | undefined): void; + get(k: T): InferChainParam | undefined; +}; + +export type HelperMap = Map | undefined>; \ No newline at end of file From 97a56dfdac3eb22edf279dec608e612cda1cf2ad Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 21 Feb 2022 20:01:46 +0530 Subject: [PATCH 360/956] tree-wide: use type mappings removes the requirement to use marker type --- src/consts.ts | 80 +++++++++++++++++++++++++--------------- src/factory/index.ts | 81 +++++++---------------------------------- src/helpers/algorand.ts | 3 +- src/helpers/chain.ts | 6 +-- src/helpers/elrond.ts | 3 +- src/helpers/tezos.ts | 3 +- src/helpers/thor.ts | 3 +- src/helpers/tron.ts | 3 +- src/helpers/web3.ts | 7 ++-- src/type-utils.ts | 15 ++++---- 10 files changed, 84 insertions(+), 120 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index d9755f73d..2bba5f5ad 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -14,7 +14,7 @@ import { } from "./helpers/algorand"; import { AppConfig } from "./factory"; import { TezosHelper, tezosHelperFactory, TezosParams } from "./helpers/tezos"; -import { ChainV, InferChainH, InferChainParam } from "./type-utils"; +import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -56,36 +56,58 @@ export enum MainNetRpcUri { // TODO: Algorand } -// WARN: __helper and __params are markers -export type ChainNonce = number & { __helper: H, __params: P }; -export type ElrondNonce = ChainNonce; -export type Web3Nonce = ChainNonce; -export type TronNonce = ChainNonce; -export type AlgoNonce = ChainNonce; -export type TezosNonce = ChainNonce; +type ElrondMeta = [ElrondHelper, ElrondParams]; +type Web3Meta = [Web3Helper, Web3Params]; +type TronMeta = [TronHelper, TronParams]; +type AlgoMeta = [AlgorandHelper, AlgorandParams]; +type TezosMeta = [TezosHelper, TezosParams]; + +// Static Assert to Ensure all values of Chain are in MetaMap +type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown } + +export type MetaMap = { + 2: ElrondMeta, + 3: Web3Meta, + 4: Web3Meta, + 5: Web3Meta, + 6: Web3Meta, + 7: Web3Meta, + 8: Web3Meta, + 9: TronMeta, + 0xb: Web3Meta, + 0xc: Web3Meta, + 0xd: Web3Meta, + 0xe: Web3Meta, + 0xf: AlgoMeta, + 0x10: Web3Meta, + 0x11: Web3Meta, + 0x12: TezosMeta, + 0x13: Web3Meta, + 0x14: Web3Meta +} & MetaMapAssert; export namespace Chain { - export const ELROND = 2 as ElrondNonce; - export const HECO = 3 as Web3Nonce; - export const BSC = 4 as Web3Nonce; - export const ETHEREUM = 5 as Web3Nonce; - export const AVALANCHE = 6 as Web3Nonce; - export const POLYGON = 7 as Web3Nonce; - export const FANTOM = 8 as Web3Nonce; - export const TRON = 9 as TronNonce; - export const CELO = 0xb as Web3Nonce; - export const HARMONY = 0xc as Web3Nonce; - export const ONT = 0xd as Web3Nonce; - export const XDAI = 0xe as Web3Nonce; - export const ALGORAND = 0xf as AlgoNonce; - export const FUSE = 0x10 as Web3Nonce; - export const UNIQUE = 0x11 as Web3Nonce; - export const TEZOS = 0x12 as TezosNonce; - export const VELAS = 0x13 as Web3Nonce; - export const IOTEX = 0x14 as Web3Nonce; + export const ELROND = 2; + export const HECO = 3; + export const BSC = 4; + export const ETHEREUM = 5; + export const AVALANCHE = 0x6; + export const POLYGON = 7; + export const FANTOM = 8; + export const TRON = 9; + export const CELO = 0xb; + export const HARMONY = 0xc; + export const ONT = 0xd; + export const XDAI = 0xe; + export const ALGORAND = 0xf; + export const FUSE = 0x10; + export const UNIQUE = 0x11; + export const TEZOS = 0x12; + export const VELAS = 0x13; + export const IOTEX = 0x14; } -interface ChainData { +interface ChainData { name: string; nonce: number; decimals: number; @@ -96,8 +118,8 @@ interface ChainData { } type ChainInfo = { - set(k: T, v: ChainData | undefined): void; - get(k: T): ChainData | undefined; + set(k: T, v: ChainData | undefined): void; + get(k: T): ChainData | undefined; } export const CHAIN_INFO: ChainInfo = new Map(); diff --git a/src/factory/index.ts b/src/factory/index.ts index 5036c4b0c..a8d326eb8 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -7,7 +7,6 @@ import { TronHelper, TronParams, TronRawTxn } from "../helpers/tron"; import { Web3Helper, Web3Params } from "../helpers/web3"; import { Chain, - ChainNonce, CHAIN_INFO, FEE_MARGIN, } from "../consts"; @@ -55,7 +54,7 @@ import { TransferNftForeignBatch, UnfreezeForeignNftBatch, } from "../helpers/chain"; -import { ChainV, HelperMap, InferChainH, InferChainParam, InferSigner, ParamMap } from "../type-utils"; +import { ChainNonce, HelperMap, InferChainH, InferChainParam, InferSigner, ParamMap } from "../type-utils"; export type CrossChainHelper = | ElrondHelper @@ -64,7 +63,7 @@ export type CrossChainHelper = | AlgorandHelper | TezosHelper; -type NftUriChain = ChainNonceGet & WrappedNftCheck; +type NftUriChain = ChainNonceGet & WrappedNftCheck; type FullChain = TransferNftForeign< Signer, @@ -104,7 +103,7 @@ export type ChainFactory = { * @type P: Either {@link ElrondParams} | {@link Web3Params} | {@link TronParams} as required. * @param chain: {@link Chain} to create the helper for. */ - inner(chain: T): Promise>; + inner(chain: T): Promise>; /** * Whether or not the bridge is alive for a given chain * this is checked regardless before using any bridge related function(e.g transferNft) is called @@ -184,9 +183,8 @@ export type ChainFactory = { * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. * @param params : New Params to be set. */ - updateParams(nonce: T, params: InferChainParam): void; - nonceToChainNonce(nonce: number): ChainV; - pkeyToSigner( + updateParams(nonce: T, params: InferChainParam): void; + pkeyToSigner( nonce: S, key: string ): Promise>>; @@ -216,7 +214,7 @@ export type ChainFactory = { * @param claimer the account which can claim the nft */ waitAlgorandNft( - originChain: ExtractAction & ChainNonceGet, + originChain: ExtractAction & ChainNonceGet, txn: Txn, claimer: AlgoSignerH ): Promise; @@ -347,7 +345,7 @@ export function ChainFactory( appConfig: AppConfig, chainParams: Partial ): ChainFactory { - let helpers: HelperMap = new Map(); + let helpers: HelperMap = new Map(); let cToP = mapNonceToParams(chainParams); const heartbeatRepo = bridgeHeartbeat(appConfig.heartbeatUri); @@ -363,16 +361,16 @@ export function ChainFactory( }, }); - const inner = async (chain: T): Promise> => { + const inner = async (chain: T): Promise> => { let helper = helpers.get(chain); if (helper === undefined) { helper = await CHAIN_INFO.get(chain)!.constructor(cToP.get(chain)!); helpers.set(chain, helper) } - return helper! as any; + return helper!; }; - async function calcExchangeFees( + async function calcExchangeFees( fromChain: T, toChain: T, val: BigNumber @@ -484,55 +482,6 @@ export function ChainFactory( ); } - function nonceToChainNonce( - nonce: number - ): ChainV { - switch (nonce) { - case 2: { - return Chain.ELROND; - } - case 3: { - return Chain.HECO; - } - case 4: { - return Chain.BSC; - } - case 5: { - return Chain.ETHEREUM; - } - case 6: { - return Chain.AVALANCHE; - } - case 7: { - return Chain.POLYGON; - } - case 8: { - return Chain.FANTOM; - } - case 9: { - return Chain.TRON; - } - case 11: { - return Chain.CELO; - } - case 12: { - return Chain.HARMONY; - } - case 14: { - return Chain.XDAI; - } - case 15: { - return Chain.ALGORAND; - } - case 16: { - return Chain.FUSE; - } - default: { - throw Error(`unknown chain ${nonce}`); - } - } - } - async function getVerifiedContracts( from: string, tc: number, @@ -643,10 +592,8 @@ export function ChainFactory( const status = await chain.extractTxnStatus(hash); return [hash, status]; }, - nonceToChainNonce, - async pkeyToSigner(nonce: T, key: string) { - let chain = nonceToChainNonce(nonce); - switch (chain) { + async pkeyToSigner(nonce: T, key: string) { + switch (nonce) { case Chain.ELROND: { return UserSigner.fromPem(key); } @@ -662,7 +609,7 @@ export function ChainFactory( ); } default: { - const chainH = await inner(chain) as any; + const chainH = await inner(nonce) as any; return chainH.createWallet(key); } } @@ -670,7 +617,7 @@ export function ChainFactory( estimateFees, inner, bridgeStatus, - updateParams(chainNonce: T, params: InferChainParam) { + updateParams(chainNonce: T, params: InferChainParam) { helpers.delete(chainNonce); cToP.set(chainNonce, params as any); }, diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 7db705149..3359a7bf9 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -5,7 +5,6 @@ import axios from "axios"; import { BigNumber } from "bignumber.js"; import { Base64, decode } from "js-base64"; import { - AlgoNonce, AlgorandSocketHelper, Chain, ChainNonceGet, @@ -118,7 +117,7 @@ export type FullClaimNft = ClaimNftInfo & { uri: string; }; -export type AlgorandHelper = ChainNonceGet & +export type AlgorandHelper = ChainNonceGet & WrappedNftCheck & TransferNftForeign & UnfreezeForeignNft & diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 6f77f7f12..76ad7db65 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -4,7 +4,7 @@ import BigNumber from "bignumber.js"; import { BigNumberish } from "ethers"; import { NftMintArgs } from ".."; import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; -import { ChainV } from "../type-utils"; +import { ChainNonce } from "../type-utils"; /** * NFT Info @@ -236,8 +236,8 @@ export interface MintRawTxn { mintRawTxn(id: NftMintArgs, address: string, value?: BigNumber): Promise; } -export interface ChainNonceGet { - getNonce(): T; +export interface ChainNonceGet { + getNonce(): ChainNonce; } export interface ExtractAction { diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 5b26964be..ddb051df5 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -46,7 +46,6 @@ import { import { Chain, ChainNonceGet, - ElrondNonce, EstimateTxFees, ExtractAction, ExtractTxnStatus, @@ -249,7 +248,7 @@ export type ElrondHelper = BalanceCheck & MintNft & { mintableEsdts(address: Address): Promise; } & WrappedNftCheck & - ChainNonceGet & + ChainNonceGet & ValidateAddress & ExtractAction & PreTransfer & diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 1d388a488..3ad3fb417 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -7,7 +7,6 @@ import { NftInfo, NftMintArgs, PreTransfer, - TezosNonce, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -52,7 +51,7 @@ export type TezosHelper = TransferNftForeign< UnfreezeForeignNft & ValidateAddress & EstimateTxFees & - ChainNonceGet & + ChainNonceGet & WrappedNftCheck & Pick, "preTransfer"> & { isApprovedForMinter( diff --git a/src/helpers/thor.ts b/src/helpers/thor.ts index 408b5e06c..9210014a7 100644 --- a/src/helpers/thor.ts +++ b/src/helpers/thor.ts @@ -45,7 +45,6 @@ import { TransferNftForeignUnsigned, UnfreezeForeignNftUnsigned, ValidateAddress, - Web3Nonce, } from ".."; import { NftMintArgs } from ".."; import { BigNumber as EthBN } from "ethers"; @@ -135,7 +134,7 @@ export type Web3Helper = BaseWeb3Helper & > & WrappedNftCheck & EstimateTxFees & - ChainNonceGet & + ChainNonceGet & IsApproved & Approve & ValidateAddress & diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index af8c75907..ff5311321 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -41,7 +41,6 @@ import { PreTransferRawTxn, TransactionStatus, TransferNftForeignUnsigned, - TronNonce, UnfreezeForeignNftUnsigned, ValidateAddress, } from ".."; @@ -101,7 +100,7 @@ export type TronHelper = BaseTronHelper & UnfreezeForeignNft & WrappedNftCheck & EstimateTxFees & - ChainNonceGet & + ChainNonceGet & Approve & ValidateAddress & IsApproved & diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 0ced22e7e..44d7a1ed8 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -36,7 +36,6 @@ import { UserNftMinter, } from "xpnet-web3-contracts"; import { - ChainNonce, ChainNonceGet, EstimateTxFees, ExtractAction, @@ -50,11 +49,11 @@ import { TransferNftForeignUnsigned, UnfreezeForeignNftUnsigned, ValidateAddress, - Web3Nonce, } from ".."; import { NftMintArgs } from ".."; import axios from "axios"; import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; +import { ChainNonce } from "../type-utils"; type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain @@ -153,7 +152,7 @@ export type Web3Helper = BaseWeb3Helper & WrappedNftCheck & EstimateTxFees & EstimateTxFeesBatch & - ChainNonceGet> & + ChainNonceGet & IsApproved & Approve & ValidateAddress & @@ -228,7 +227,7 @@ export interface Web3Params { erc721_addr: string; erc721Minter: string; erc1155Minter: string; - nonce: Web3Nonce; + nonce: ChainNonce; } type NftMethodVal = { diff --git a/src/type-utils.ts b/src/type-utils.ts index cdcf452ed..4b2859397 100644 --- a/src/type-utils.ts +++ b/src/type-utils.ts @@ -1,15 +1,16 @@ -import { Chain, ChainNonce, TransferNftForeign } from "."; +import { Chain, MetaMap, TransferNftForeign } from "."; type TransferNftChain = TransferNftForeign; -export type ChainV = typeof Chain[keyof typeof Chain]; -export type InferChainParam = K extends ChainNonce ? Param : never; -export type InferChainH = K extends ChainNonce ? Helper : never; +export type ChainNonce = keyof MetaMap; + +export type InferChainParam = MetaMap[K][1]; +export type InferChainH = MetaMap[K][0]; export type InferSigner> = K extends TransferNftChain ? S : never; export type ParamMap = { - set(k: T, v: InferChainParam | undefined): void; - get(k: T): InferChainParam | undefined; + set(k: T, v: InferChainParam | undefined): void; + get(k: T): InferChainParam | undefined; }; -export type HelperMap = Map | undefined>; \ No newline at end of file +export type HelperMap = Map | undefined>; \ No newline at end of file From cb5f1a169440c17ab4aef192e5888b616c804c0c Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 21 Feb 2022 20:36:50 +0530 Subject: [PATCH 361/956] cleanup generics removes unnecssary generics --- src/factory/index.ts | 37 ++++++------ src/helpers/algorand.ts | 12 +--- src/helpers/chain.ts | 124 +++++++--------------------------------- src/helpers/elrond.ts | 79 +++---------------------- src/helpers/tezos.ts | 15 +---- src/helpers/thor.ts | 77 ++----------------------- src/helpers/tron.ts | 80 +++----------------------- src/helpers/web3.ts | 46 +-------------- src/type-utils.ts | 2 +- 9 files changed, 68 insertions(+), 404 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index a8d326eb8..f6f561d53 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -17,7 +17,6 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, - extractWrappedMetadata, MintNft, MintRawTxn, NftInfo, @@ -29,7 +28,6 @@ import { UnfreezeForeignNft, UnfreezeForeignNftUnsigned, ValidateAddress, - WrappedNftCheck, } from ".."; import BigNumber from "bignumber.js"; @@ -63,33 +61,28 @@ export type CrossChainHelper = | AlgorandHelper | TezosHelper; -type NftUriChain = ChainNonceGet & WrappedNftCheck; +type NftUriChain = ChainNonceGet; type FullChain = TransferNftForeign< Signer, - string, - BigNumber, RawNft, Resp > & - UnfreezeForeignNft & - EstimateTxFees & - NftUriChain & + UnfreezeForeignNft & + EstimateTxFees & + ChainNonceGet & ValidateAddress & { XpNft?: string }; type FullChainBatch = FullChain & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - EstimateTxFeesBatch; + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFeesBatch; type RawTxnBuiladableChain = TransferNftForeignUnsigned< - string, - BigNumber, RawNft, Resp > & - UnfreezeForeignNftUnsigned & - WrappedNftCheck & + UnfreezeForeignNftUnsigned & PreTransferRawTxn & MintRawTxn; /** @@ -155,7 +148,7 @@ export type ChainFactory = { * @param owner: Address of the owner of the NFT as a raw string. */ nftList( - chain: NftUriChain, + chain: ChainNonceGet, owner: string ): Promise[]>; /** @@ -482,6 +475,10 @@ export function ChainFactory( ); } + async function isWrappedNft(nft: NftInfo) { + return (typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== "undefined"); + } + async function getVerifiedContracts( from: string, tc: number, @@ -508,7 +505,7 @@ export function ChainFactory( mw, nonce ) { - if (await chain.isWrappedNft(nft, appConfig.wrappedNftPrefix)) { + if (await isWrappedNft(nft)) { return chain.unfreezeWrappedNftTxn( receiver, nft, @@ -548,7 +545,7 @@ export function ChainFactory( if (e.native.contractType && e.native.contractType === "ERC721") { throw new Error(`ERC721 is not supported`); } - if (await from.isWrappedNft(e, appConfig.wrappedNftPrefix)) { + if (await isWrappedNft(e)) { wrapped.push(e); } else { unwrapped.push(e); @@ -621,7 +618,7 @@ export function ChainFactory( helpers.delete(chainNonce); cToP.set(chainNonce, params as any); }, - async nftList(chain: NftUriChain, owner: string) { + async nftList(chain: ChainNonceGet, owner: string) { let res = await nftlistRest.get<{ data: NftInfo[] }>( `/nfts/${chain.getNonce()}/${owner}` ); @@ -672,7 +669,7 @@ export function ChainFactory( if (!(await toChain.validateAddress(receiver))) { throw Error("invalid address"); } - if (await fromChain.isWrappedNft(nft, appConfig.wrappedNftPrefix)) { + if (await isWrappedNft(nft)) { const res = await fromChain.unfreezeWrappedNft( sender, receiver, diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 3359a7bf9..cf13140c4 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -14,7 +14,6 @@ import { TransferNftForeign, UnfreezeForeignNft, ValidateAddress, - WrappedNftCheck, } from ".."; import MyAlgoConnect from "@randlabs/myalgo-connect"; @@ -118,10 +117,9 @@ export type FullClaimNft = ClaimNftInfo & { }; export type AlgorandHelper = ChainNonceGet & - WrappedNftCheck & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & ValidateAddress & { algod: algosdk.Algodv2; claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; @@ -323,10 +321,6 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { await waitTxnConfirm(res.txId); return suggested; }, - - async isWrappedNft(nft, _prefix) { - return Promise.resolve(nft.native.creator === appAddr); - }, transferNftToForeign: transferNft, unfreezeWrappedNft: async (signer, to, nft, txFees) => { const nftMeta = await axios.get(nft.uri); diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 76ad7db65..b265b0435 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -15,46 +15,6 @@ export type NftInfo = { readonly collectionIdent: string; }; -/** - * Transfer Liquidity to a foregin chain, freezing the original liquidity - * - * @param sender Account which owns the liquidity on the native chain, able to sign transactions - * @param chain_nonce Nonce of the target chain - * @param to Address of the receiver on the foreign chain - * @param value Amount of liquidity to send - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface TransferForeign { - transferNativeToForeign( - sender: Signer, - chain_nonce: number, - to: ForeignAddr, - value: Balance, - txFees: Balance - ): Promise; -} - -/** - * Unfreeze native liquidity existing on a foreign chain(Send back Liquidity) - * - * @param sender Account which owns the wrapped liquidity on this chain, able to sign transactions - * @param chain_nonce Nonce of the original chain - * @param to Address of the receiver on the original chain - * @param value Amount of liquidity to unfreeze - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface UnfreezeForeign { - unfreezeWrapped( - sender: Signer, - chain_nonce: number, - to: ForeignAddr, - value: Balance, - txFees: Balance - ): Promise; -} - /** * Action to perform before transfer/unfreeze (if any) */ @@ -83,32 +43,28 @@ export interface PreTransfer { */ export interface TransferNftForeign< Signer, - ForeignAddr, - Balance, RawNft, Resp > { transferNftToForeign( sender: Signer, chain_nonce: number, - to: ForeignAddr, + to: string, id: NftInfo, - txFees: Balance, + txFees: BigNumber, mintWith: string ): Promise; } export interface TransferNftForeignUnsigned< - ForeignAddr, - Balance, RawNft, Resp > { transferNftToForeignTxn( chain_nonce: number, - to: ForeignAddr, + to: string, id: NftInfo, - txFees: Balance, + txFees: BigNumber, senderAddress: string, mintWith: string ): Promise; @@ -126,30 +82,26 @@ export interface TransferNftForeignUnsigned< */ export interface UnfreezeForeignNft< Signer, - ForeignAddr, - Balance, RawNft, Resp > { unfreezeWrappedNft( sender: Signer, - to: ForeignAddr, + to: string, id: NftInfo, - txFees: Balance, + txFees: BigNumber, nonce: string ): Promise; } export interface UnfreezeForeignNftUnsigned< - ForeignAddr, - Balance, RawNft, Resp > { unfreezeWrappedNftTxn( - to: ForeignAddr, + to: string, id: NftInfo, - txFees: Balance, + txFees: BigNumber, sender: string, nonce: string ): Promise; @@ -158,31 +110,8 @@ export interface UnfreezeForeignNftUnsigned< /** * Get the balance of an address on the chain */ -export interface BalanceCheck { - balance(address: Addr): Promise; -} - -/** - * Get the balance of a foreign token for an account in this chain - * - * @param address Address of the user - * @param chain_nonce nonce of the foreign chain - */ -export interface WrappedBalanceCheck { - balanceWrapped(address: Addr, chain_nonce: number): Promise; -} - -/** - * Get the balance of multiple foreign tokens for an account in this chain - * - * @param chain_nonces list of foreign tokens to fetch - * @returns Mapping of chain_nonce to balance - */ -export interface BatchWrappedBalanceCheck { - balanceWrappedBatch( - address: Addr, - chain_nonces: number[] - ): Promise>; +export interface BalanceCheck { + balance(address: string): Promise; } /** @@ -194,30 +123,21 @@ export interface MintNft { mintNft(owner: Signer, options: Args): Promise; } -/** - * Whether the given NFT is from a foreign chain - * @param {NftIdent} nft NFT Identity - * @returns bool - */ -export interface WrappedNftCheck { - isWrappedNft(nft: NftInfo, prefix: string): Promise; -} - export interface ValidateAddress { validateAddress(adr: string): Promise; } -export interface EstimateTxFees { +export interface EstimateTxFees { estimateValidateTransferNft( to: string, metadata: NftInfo, mintWith: string - ): Promise; + ): Promise; estimateValidateUnfreezeNft( to: string, metadata: NftInfo, mintWith: string - ): Promise; + ): Promise; } export function ConcurrentSendError(): Error { @@ -256,47 +176,43 @@ export interface ExtractTxnStatus { export interface TransferNftForeignBatch< Signer, - ForeignAddr, - Balance, RawNft, Resp > { transferNftBatchToForeign( sender: Signer, chain_nonce: number, - to: ForeignAddr, + to: string, id: NftInfo[], mintWith: string, - txFees: Balance + txFees: BigNumber ): Promise; } export interface UnfreezeForeignNftBatch< Signer, - ForeignAddr, - Balance, RawNft, Resp > { unfreezeWrappedNftBatch( sender: Signer, chainNonce: number, - to: ForeignAddr, + to: string, nfts: NftInfo[], - txFees: Balance + txFees: BigNumber ): Promise; } -export interface EstimateTxFeesBatch { +export interface EstimateTxFeesBatch { estimateValidateTransferNftBatch( to: string, metadatas: NftInfo[], mintWith: string[] - ): Promise; + ): Promise; estimateValidateUnfreezeNftBatch( to: string, metadatas: NftInfo[] - ): Promise; + ): Promise; } export function extractWrappedMetadata( diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index ddb051df5..b0812cf0b 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -29,19 +29,14 @@ import axios from "axios"; import BigNumber from "bignumber.js"; import { BalanceCheck, - BatchWrappedBalanceCheck, ConcurrentSendError, MintNft, - TransferForeign, TransferNftForeign, - UnfreezeForeign, UnfreezeForeignNft, - WrappedNftCheck, TransactionStatus, TransferNftForeignBatch, UnfreezeForeignNftBatch, EstimateTxFeesBatch, - isWrappedNft, } from "./chain"; import { Chain, @@ -212,63 +207,48 @@ export interface ElrondRawUnsignedTxn { /** * Traits implemented by this module */ -export type ElrondHelper = BalanceCheck & - BatchWrappedBalanceCheck & - TransferForeign & - UnfreezeForeign & +export type ElrondHelper = BalanceCheck & TransferNftForeign< ElrondSigner, - string, - BigNumber, EsdtNftInfo, Transaction > & UnfreezeForeignNft< ElrondSigner, - string, - BigNumber, EsdtNftInfo, Transaction > & TransferNftForeignBatch< ElrondSigner, - string, - BigNumber, EsdtNftInfo, Transaction > & UnfreezeForeignNftBatch< ElrondSigner, - string, - BigNumber, EsdtNftInfo, Transaction > & IssueESDTNFT & MintNft & { mintableEsdts(address: Address): Promise; - } & WrappedNftCheck & + } & ChainNonceGet & ValidateAddress & ExtractAction & PreTransfer & - EstimateTxFees & - EstimateTxFeesBatch & + EstimateTxFees & + EstimateTxFeesBatch & TransferNftForeignUnsigned< - string, - BigNumber, EsdtNftInfo, ElrondRawUnsignedTxn > & UnfreezeForeignNftUnsigned< - string, - BigNumber, EsdtNftInfo, ElrondRawUnsignedTxn > & PreTransferRawTxn & ExtractTxnStatus & - MintRawTxn & SetESDTRoles; + MintRawTxn & SetESDTRoles & { XpNft: string }; /** * Create an object implementing cross chain utilities for elrond @@ -288,9 +268,9 @@ export interface ElrondParams { esdt_swap: string; } -export const elrondHelperFactory: ( +export async function elrondHelperFactory( elrondParams: ElrondParams -) => Promise = async (elrondParams: ElrondParams) => { +): Promise { const provider = new ProxyProvider(elrondParams.node_uri); await NetworkConfig.getDefault().sync(provider); const mintContract = new Address(elrondParams.minter_address); @@ -686,7 +666,6 @@ export const elrondHelperFactory: ( return wallet.balance.valueOf(); }, - balanceWrappedBatch, async transferNftToForeignTxn( chain_nonce, to, @@ -730,39 +709,6 @@ export const elrondHelperFactory: ( } return TransactionStatus.UNKNOWN; }, - async transferNativeToForeign( - sender: ElrondSigner, - chain_nonce: number, - to: string, - value: EasyBalance, - txFees: EasyBalance - ): Promise { - const txu = unsignedTransferTxn( - chain_nonce, - to, - new BigNumber(value.toString()).plus(txFees.toString()) - ); - const tx = await signAndSend(sender, txu); - - return tx; - }, - async unfreezeWrapped( - sender: ElrondSigner, - chain_nonce: number, - to: string, - value: EasyBalance, - _txFees: EasyBalance - ): Promise { - const txu = unsignedUnfreezeTxn( - chain_nonce, - await getAddress(sender), - to, - value - ); - const tx = await signAndSend(sender, txu); - - return tx.getHash().toString(); - }, preTransfer: doEgldSwap, preUnfreeze: doEgldSwap, extractAction, @@ -841,7 +787,6 @@ export const elrondHelperFactory: ( return res.data["data"]["tokens"]; }, - isWrappedNft: isWrappedNft, async preTransferRawTxn(id, address, value) { if (!address || !value) { throw new Error("address and value is required for elrond egld swap"); @@ -865,7 +810,6 @@ export const elrondHelperFactory: ( } return undefined; }, - listNft, async setESDTRole( manager: ElrondSigner, token: string, @@ -896,7 +840,7 @@ export const elrondHelperFactory: ( }, async estimateValidateTransferNft( _toAddress: string, - _nftUri: NftInfo + _nftUri: NftInfo ) { return estimateGas(NFT_TRANSFER_COST); // TODO: properly estimate NFT_TRANSFER_COST }, @@ -908,7 +852,7 @@ export const elrondHelperFactory: ( return txu.toPlainObject(); }, - async estimateValidateUnfreezeNft(_to: string, _nftUri: NftInfo) { + async estimateValidateUnfreezeNft(_to: string, _nftUri: NftInfo) { return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST }, async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { @@ -979,11 +923,6 @@ export const elrondHelperFactory: ( async estimateValidateUnfreezeNftBatch(_, nfts) { return estimateGas(new BigNumber(70000000 + 5000000 * nfts.length)); }, - wrapNftForTransfer(nft: NftInfo) { - // Approximation for wrapping this nft - const dataLen = 4 + tokenIdentReal(nft.native.tokenIdentifier).length + 4; - return new Uint8Array(dataLen); - }, async validateAddress(adr: string) { try { new Address(adr); diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 3ad3fb417..3eeb89baf 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -10,7 +10,6 @@ import { TransferNftForeign, UnfreezeForeignNft, ValidateAddress, - WrappedNftCheck, } from ".."; import { BigMapAbstraction, @@ -41,18 +40,15 @@ type TezosNftInfo = { export type TezosHelper = TransferNftForeign< TezosSigner, - string, - BigNumber, TezosNftInfo, string > & MintNft & - BalanceCheck & - UnfreezeForeignNft & + BalanceCheck & + UnfreezeForeignNft & ValidateAddress & - EstimateTxFees & + EstimateTxFees & ChainNonceGet & - WrappedNftCheck & Pick, "preTransfer"> & { isApprovedForMinter( signer: Signer, @@ -251,11 +247,6 @@ export async function tezosHelperFactory({ utils.validateAddress(adr) === utils.ValidationResult.VALID ); }, - async isWrappedNft(nft, _prefix) { - return Promise.resolve( - nft.native.contract.toLowerCase() === xpnftAddress.toLowerCase() - ); - }, getNonce() { return Chain.TEZOS; }, diff --git a/src/helpers/thor.ts b/src/helpers/thor.ts index 9210014a7..4465af202 100644 --- a/src/helpers/thor.ts +++ b/src/helpers/thor.ts @@ -4,15 +4,10 @@ */ import BigNumber from "bignumber.js"; import { - TransferForeign, - UnfreezeForeign, UnfreezeForeignNft, BalanceCheck, TransferNftForeign, - WrappedBalanceCheck, - BatchWrappedBalanceCheck, MintNft, - WrappedNftCheck, GetProvider, } from "./chain"; import { @@ -92,7 +87,7 @@ export interface Approve { /** * Base util traits */ -export type BaseWeb3Helper = BalanceCheck & +export type BaseWeb3Helper = BalanceCheck & /** * Mint an nft in the given ERC1155 smart contract * @@ -114,26 +109,17 @@ export type BaseWeb3Helper = BalanceCheck & * Traits implemented by this module */ export type Web3Helper = BaseWeb3Helper & - WrappedBalanceCheck & - BatchWrappedBalanceCheck & - TransferForeign & TransferNftForeign< Signer, - string, - BigNumber, EthNftInfo, TransactionResponse > & - UnfreezeForeign & UnfreezeForeignNft< Signer, - string, - BigNumber, EthNftInfo, TransactionResponse > & - WrappedNftCheck & - EstimateTxFees & + EstimateTxFees & ChainNonceGet & IsApproved & Approve & @@ -141,8 +127,8 @@ export type Web3Helper = BaseWeb3Helper & ExtractAction & { createWallet(privateKey: string): Wallet; } & Pick, "preTransfer"> & - UnfreezeForeignNftUnsigned & - TransferNftForeignUnsigned & + UnfreezeForeignNftUnsigned & + TransferNftForeignUnsigned & PreTransferRawTxn & ExtractTxnStatus & MintRawTxn & @@ -302,14 +288,6 @@ export async function web3HelperFactory( extractAction, // TODO getNonce: () => params.nonce as any, - async balanceWrapped( - address: string, - chain_nonce: number - ): Promise { - const bal = await erc1155.balanceOf(address, chain_nonce); - - return new BigNumber(bal.toString()); - }, async preTransferRawTxn(id, address, _value) { const isApproved = await isApprovedForMinter( id, @@ -333,9 +311,6 @@ export async function web3HelperFactory( return approvetxn; }, - async isWrappedNft(nft) { - return typeof (await axios.get(nft.uri)).data.wrapped !== "undefined"; - }, async extractTxnStatus(txn) { const status = (await (await provider.getTransaction(txn)).wait()).status; if (status === undefined) { @@ -361,19 +336,6 @@ export async function web3HelperFactory( createWallet(privateKey: string): Wallet { return new Wallet(privateKey, provider); }, - async balanceWrappedBatch( - address: string, - chain_nonces: number[] - ): Promise> { - const bals: BigNumber[] = await erc1155.balanceOfBatch( - Array(chain_nonces.length).fill(address), - chain_nonces - ); - - return new Map( - bals.map((v, i) => [chain_nonces[i], new BigNumber(v.toString())]) - ); - }, async mintRawTxn(nft, sender) { const erc721 = new Contract( nft.contract!, @@ -384,20 +346,6 @@ export async function web3HelperFactory( const txm = await erc721.populateTransaction.mint(nft.uris[0]); return txm; }, - async transferNativeToForeign( - sender: Signer, - chain_nonce: number, - to: string, - value: BigNumber, - txFees: BigNumber - ): Promise { - const val = EthBN.from(value.toString(10)); - const totalVal = val.add(EthBN.from(txFees.toString(10))); - const res = await minter.connect(sender).freeze(chain_nonce, to, val, { - value: totalVal, - }); - return res; - }, async transferNftToForeignTxn( chain_nonce: number, to: string, @@ -434,21 +382,6 @@ export async function web3HelperFactory( await notifyValidator(txr.hash); return txr; }, - async unfreezeWrapped( - sender: Signer, - chain_nonce: number, - to: string, - value: EasyBalance, - txFees: EasyBalance - ): Promise { - const res = await minter - .connect(sender) - .withdraw(chain_nonce, to, value, { - value: EthBN.from(txFees.toString(10)), - }); - - return res.hash; - }, async unfreezeWrappedNft( sender: Signer, to: string, @@ -467,7 +400,7 @@ export async function web3HelperFactory( }, async estimateValidateTransferNft( to: string, - nftUri: NftInfo + nftUri: NftInfo ): Promise { const utx = await minter.populateTransaction.validateTransferNft( randomAction(), diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index ff5311321..0b4d59794 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -1,16 +1,11 @@ import { BigNumber } from "bignumber.js"; import { BalanceCheck, - BatchWrappedBalanceCheck, EstimateTxFees, isWrappedNft, MintNft, - TransferForeign, TransferNftForeign, - UnfreezeForeign, UnfreezeForeignNft, - WrappedBalanceCheck, - WrappedNftCheck, } from "./chain"; import axios from "axios"; @@ -63,7 +58,7 @@ export type MinterRes = { whitelist: string[]; }; -export type BaseTronHelper = BalanceCheck & +export type BaseTronHelper = BalanceCheck & MintNft & { /** * @@ -90,16 +85,9 @@ export type BaseTronHelper = BalanceCheck & }; export type TronHelper = BaseTronHelper & - WrappedBalanceCheck & - BatchWrappedBalanceCheck & - TransferForeign & - // TODO: Use TX Fees - TransferNftForeign & - // TODO: Use TX Fees - UnfreezeForeign & - UnfreezeForeignNft & - WrappedNftCheck & - EstimateTxFees & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & ChainNonceGet & Approve & ValidateAddress & @@ -107,8 +95,8 @@ export type TronHelper = BaseTronHelper & ExtractAction & Pick, "preTransfer"> & PreTransferRawTxn & - UnfreezeForeignNftUnsigned & - TransferNftForeignUnsigned & + UnfreezeForeignNftUnsigned & + TransferNftForeignUnsigned & ExtractTxnStatus & MintRawTxn; @@ -487,26 +475,7 @@ export async function tronHelperFactory( } return addMinToExpirationTime(transaction, 15); }, - isWrappedNft: isWrappedNft, isApprovedForMinter, - async transferNativeToForeign( - sender: TronSender, - chain_nonce: number, - to: string, - value: BigNumber, - txFees: BigNumber - ): Promise { - setSigner(sender); - - const val = EthBN.from(value.toString(10)); - const totalVal = val.add(EthBN.from(txFees.toString(10))); - let res = await minter - .freeze(chain_nonce, to, val) - .send({ callValue: totalVal }); - - await notifyValidator(res); - return res; - }, async extractTxnStatus(txnHash) { const txn = await provider.trx.getConfirmedTransaction(txnHash); const status = txn["ret"][0]["contractRet"]; @@ -517,21 +486,6 @@ export async function tronHelperFactory( } return TransactionStatus.PENDING; }, - async unfreezeWrapped( - sender: TronSender, - chain_nonce: number, - to: string, - value: string, - txFees: string - ): Promise { - setSigner(sender); - const res = await minter - .withdraw(chain_nonce, to, value) - .send({ callValue: EthBN.from(txFees.toString()) }); - - await notifyValidator(res); - return res; - }, async unfreezeWrappedNft( sender: TronSender, to: string, @@ -566,29 +520,9 @@ export async function tronHelperFactory( await notifyValidator(txr); return txr; }, - async balanceWrappedBatch( - address: string, - chain_nonces: number[] - ): Promise> { - const res = new Map(); - const balance = await erc1155 - .balanceOfBatch(Array(chain_nonces.length).fill(address), chain_nonces) - .call(); - balance.map((e: any, i: any) => { - res.set(chain_nonces[i], new BigNumber(e.toString())); - }); - return res; - }, - async balanceWrapped( - address: string, - chain_nonce: number - ): Promise { - const bal = await erc1155.balanceOf(address, chain_nonce).call(); - return new BigNumber(bal.toString()); - }, async estimateValidateTransferNft( to: string, - nftUri: NftInfo + nftUri: NftInfo ): Promise { return await estimateGas( tronParams.validators, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 44d7a1ed8..293649b4d 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -7,10 +7,7 @@ import { UnfreezeForeignNft, BalanceCheck, TransferNftForeign, - WrappedBalanceCheck, - BatchWrappedBalanceCheck, MintNft, - WrappedNftCheck, GetProvider, TransferNftForeignBatch, UnfreezeForeignNftBatch, @@ -97,7 +94,7 @@ export interface Approve { /** * Base util traits */ -export type BaseWeb3Helper = BalanceCheck & +export type BaseWeb3Helper = BalanceCheck & /** * Mint an nft in the given ERC1155 smart contract * @@ -119,39 +116,28 @@ export type BaseWeb3Helper = BalanceCheck & * Traits implemented by this module */ export type Web3Helper = BaseWeb3Helper & - WrappedBalanceCheck & - BatchWrappedBalanceCheck & TransferNftForeign< Signer, - string, - BigNumber, EthNftInfo, TransactionResponse > & UnfreezeForeignNft< Signer, - string, - BigNumber, EthNftInfo, TransactionResponse > & TransferNftForeignBatch< Signer, - string, - BigNumber, EthNftInfo, TransactionResponse > & UnfreezeForeignNftBatch< Signer, - string, - BigNumber, EthNftInfo, TransactionResponse > & - WrappedNftCheck & - EstimateTxFees & - EstimateTxFeesBatch & + EstimateTxFees & + EstimateTxFeesBatch & ChainNonceGet & IsApproved & Approve & @@ -160,14 +146,10 @@ export type Web3Helper = BaseWeb3Helper & createWallet(privateKey: string): Wallet; } & Pick, "preTransfer"> & UnfreezeForeignNftUnsigned< - string, - BigNumber, EthNftInfo, PopulatedTransaction > & TransferNftForeignUnsigned< - string, - BigNumber, EthNftInfo, PopulatedTransaction > & @@ -380,14 +362,6 @@ export async function web3HelperFactory( preTransfer: (s, id, _fee) => approveForMinter(id, s), extractAction, getNonce: () => params.nonce, - async balanceWrapped( - address: string, - chain_nonce: number - ): Promise { - const bal = await erc1155.balanceOf(address, chain_nonce); - - return new BigNumber(bal.toString()); - }, async preTransferRawTxn(id, address, _value) { const isApproved = await isApprovedForMinter( id, @@ -410,7 +384,6 @@ export async function web3HelperFactory( return approvetxn; }, - isWrappedNft: isWrappedNft, async extractTxnStatus(txn) { const status = (await (await provider.getTransaction(txn)).wait()).status; if (status === undefined) { @@ -488,19 +461,6 @@ export async function web3HelperFactory( createWallet(privateKey: string): Wallet { return new Wallet(privateKey, provider); }, - async balanceWrappedBatch( - address: string, - chain_nonces: number[] - ): Promise> { - const bals: EthBN[] = await erc1155.balanceOfBatch( - Array(chain_nonces.length).fill(address), - chain_nonces - ); - - return new Map( - bals.map((v, i) => [chain_nonces[i], new BigNumber(v.toString())]) - ); - }, async mintRawTxn(nft, sender) { const erc721 = UserNftMinter__factory.connect( nft.contract!, diff --git a/src/type-utils.ts b/src/type-utils.ts index 4b2859397..9a526c49e 100644 --- a/src/type-utils.ts +++ b/src/type-utils.ts @@ -1,6 +1,6 @@ import { Chain, MetaMap, TransferNftForeign } from "."; -type TransferNftChain = TransferNftForeign; +type TransferNftChain = TransferNftForeign; export type ChainNonce = keyof MetaMap; From 9cb027b5b8b97129b897b148f791d37e5f0f737e Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 21 Feb 2022 20:45:12 +0530 Subject: [PATCH 362/956] cleanup unused locals --- src/consts.ts | 1 - src/factory/index.ts | 5 +-- src/helpers/algorand.ts | 2 +- src/helpers/chain.ts | 15 ------- src/helpers/elrond.ts | 92 ----------------------------------------- src/helpers/tezos.ts | 2 - src/helpers/thor.ts | 27 +++--------- src/helpers/tron.ts | 34 +++------------ src/helpers/web3.ts | 24 +---------- src/type-utils.ts | 2 +- tsconfig.json | 6 +-- 11 files changed, 17 insertions(+), 193 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 2bba5f5ad..49eaae04d 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -1,4 +1,3 @@ -import { CrossChainHelper } from "."; import { elrondHelperFactory, ElrondParams, diff --git a/src/factory/index.ts b/src/factory/index.ts index f6f561d53..075bbaeed 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -34,9 +34,8 @@ import BigNumber from "bignumber.js"; import axios from "axios"; import { exchangeRateRepo } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; -import { Erc721MetadataEx } from "../erc721_metadata"; import { bridgeHeartbeat } from "../heartbeat"; -import { BigNumberish, ethers, PopulatedTransaction, utils } from "ethers"; +import { PopulatedTransaction, utils } from "ethers"; import { AlgorandParams, AlgorandHelper, @@ -61,8 +60,6 @@ export type CrossChainHelper = | AlgorandHelper | TezosHelper; -type NftUriChain = ChainNonceGet; - type FullChain = TransferNftForeign< Signer, RawNft, diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index cf13140c4..c49e3d50f 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -3,7 +3,7 @@ import algosdk, { SuggestedParams } from "algosdk"; import { formatJsonRpcRequest } from "@json-rpc-tools/utils"; import axios from "axios"; import { BigNumber } from "bignumber.js"; -import { Base64, decode } from "js-base64"; +import { Base64 } from "js-base64"; import { AlgorandSocketHelper, Chain, diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index b265b0435..594671f7c 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,9 +1,6 @@ -import { Address } from "@elrondnetwork/erdjs/out"; import axios from "axios"; import BigNumber from "bignumber.js"; -import { BigNumberish } from "ethers"; import { NftMintArgs } from ".."; -import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; import { ChainNonce } from "../type-utils"; /** @@ -215,18 +212,6 @@ export interface EstimateTxFeesBatch { ): Promise; } -export function extractWrappedMetadata( - nft: NftInfo -): Promise> { - if (nft.native.meta && nft.native.meta.token.metadata.wrapped) { - return Promise.resolve(nft.native.meta.token.metadata); - } else { - return axios - .get>(nft.uri) - .then((v) => v.data); - } -} - export interface GetProvider { getProvider(): Provider; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index b0812cf0b..d21e760fe 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -94,10 +94,6 @@ type MaybeEsdtNftInfo = EsdtTokenInfo & (BEsdtNftInfo | undefined); */ export type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; -function isEsdtNftInfo(maybe: MaybeEsdtNftInfo): maybe is EsdtNftInfo { - return maybe.creator != undefined && maybe.balance == "1"; -} - /** * arguments required to issue an NFT */ @@ -185,11 +181,6 @@ export interface SetESDTRoles { ): Promise; } -/** - * Identifier for tracking a given action - */ -type EventIdent = string; - export interface ElrondRawUnsignedTxn { readonly nonce: number; readonly value: string; @@ -256,14 +247,12 @@ export type ElrondHelper = BalanceCheck & * @param node_uri URI of the elrond node * @param minter_address Address of the minter smart contract * @param middleware_uri REST API of elrond-event-middleware - * @param esdt Identifier of the ESDT Wrapper * @param esdt_nft Identifier of the ESDT NFT Wrapper */ export interface ElrondParams { node_uri: string; minter_address: string; esdt_swap_address: string; - esdt: string; esdt_nft: string; esdt_swap: string; } @@ -278,10 +267,8 @@ export async function elrondHelperFactory( const providerRest = axios.create({ baseURL: elrondParams.node_uri, }); - const esdtHex = Buffer.from(elrondParams.esdt, "utf-8"); const esdtNftHex = Buffer.from(elrondParams.esdt_nft, "utf-8"); const esdtSwaphex = Buffer.from(elrondParams.esdt_swap, "utf-8"); - const decoder = new TextDecoder(); const networkConfig = await provider.getNetworkConfig(); const gasPriceModif = networkConfig.MinGasPrice.valueOf() * @@ -381,27 +368,6 @@ export async function elrondHelperFactory( return undefined; }; - const unsignedTransferTxn = ( - chain_nonce: number, - to: string, - value: EasyBalance - ) => { - return new Transaction({ - receiver: mintContract, - gasLimit: new GasLimit(50000000), - value: new Balance( - Egld.getToken(), - Egld.getNonce(), - new BigNumber(value.toString()) - ), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("freezeSend")) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; - const unsignedMintNftTxn = ( owner: Address, { identifier, quantity, name, royalties, hash, attrs, uris }: NftIssueArgs @@ -498,27 +464,6 @@ export async function elrondHelperFactory( }); }; - const unsignedUnfreezeTxn = ( - chain_nonce: number, - address: Address, - to: string, - value: EasyBalance - ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(50000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTTransfer")) - .addArg(new TokenIdentifierValue(esdtHex)) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BigUIntValue(new BigNumber(value))) - .addArg(new AddressValue(mintContract)) - .addArg(new BytesValue(Buffer.from("withdraw", "ascii"))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; - const listEsdt = async (owner: string) => { const raw = await providerRest(`/address/${owner}/esdt`); const dat = raw.data.data.esdts as { [index: string]: MaybeEsdtNftInfo }; @@ -526,26 +471,6 @@ export async function elrondHelperFactory( return dat; }; - async function listNft(owner: string): Promise> { - const ents: [string, MaybeEsdtNftInfo][] = Object.entries( - await listEsdt(owner) - ); - - const fmapCb: ( - tok: [string, MaybeEsdtNftInfo] - ) => [] | [[string, EsdtNftInfo]] = ([tok, info]) => { - if (!isEsdtNftInfo(info)) { - return []; - } - - let sp = tok.split("-"); - let nonce = sp.pop() ?? ""; - return [[`${sp.join("-")}-${parseInt(nonce, 16).toString()}`, info]]; - }; - - return new Map(ents.flatMap(fmapCb)); - } - const unsignedIssueESDTNft = ( name: string, ticker: string, @@ -640,23 +565,6 @@ export async function elrondHelperFactory( return new Address(await sender.getAddress()); } - async function balanceWrappedBatch( - address: string | Address, - chain_nonces: number[] - ): Promise> { - const esdts = Object.values(await listEsdt(address.toString())); - - const res = new Map(chain_nonces.map((v) => [v, new BigNumber(0)])); - - for (const esdt of esdts) { - esdt.nonce && - esdt.tokenIdentifier.startsWith(esdt.tokenIdentifier) && - res.set(esdt.nonce, new BigNumber(esdt.balance)); - } - - return res; - } - return { XpNft: elrondParams.esdt_nft, async balance(address: string | Address): Promise { diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 3eeb89baf..40920ce76 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -12,7 +12,6 @@ import { ValidateAddress, } from ".."; import { - BigMapAbstraction, ChainIds, ContractAbstraction, ContractMethod, @@ -22,7 +21,6 @@ import { TezosToolkit, TransactionOperation, TransactionWalletOperation, - TransferParams, Wallet, WalletProvider, } from "@taquito/taquito"; diff --git a/src/helpers/thor.ts b/src/helpers/thor.ts index 4465af202..051c971a2 100644 --- a/src/helpers/thor.ts +++ b/src/helpers/thor.ts @@ -22,7 +22,6 @@ import { import { Transaction } from "@vechain/ethers/utils"; import { TransactionResponse, Provider } from "@vechain/ethers/providers"; import { - Erc1155Minter__factory, Minter__factory, UserNftMinter__factory, } from "xpnet-web3-contracts"; @@ -31,7 +30,6 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, - extractWrappedMetadata, MintRawTxn, NftInfo, PreTransfer, @@ -45,7 +43,6 @@ import { NftMintArgs } from ".."; import { BigNumber as EthBN } from "ethers"; import axios from "axios"; -type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain */ @@ -185,7 +182,6 @@ export interface Web3Params { provider: Provider; middleware_uri: string; minter_addr: string; - erc1155_addr: string; erc721_addr: string; validators: string[]; nonce: number; @@ -195,13 +191,8 @@ export async function web3HelperFactory( params: Web3Params ): Promise { const w3 = params.provider; - const { minter_addr, provider, erc1155_addr } = params; + const { minter_addr, provider } = params; const minter = new Contract(minter_addr, Minter__factory.abi, provider); - const erc1155 = new Contract( - erc1155_addr, - Erc1155Minter__factory.abi, - provider - ); const event_middleware = axios.create({ baseURL: params.middleware_uri, @@ -411,19 +402,11 @@ export async function web3HelperFactory( return await estimateGas(params.validators, utx); }, async estimateValidateUnfreezeNft( - to: string, - nft: NftInfo + _to: string, + _nft: NftInfo ): Promise { - const wrappedData = await extractWrappedMetadata(nft); - - const utx = await minter.populateTransaction.validateUnfreezeNft( - randomAction(), - to, - EthBN.from(wrappedData.wrapped.tokenId), - wrappedData.wrapped.contract - ); - - return await estimateGas(params.validators, utx); + // TODO + return new BigNumber(0); }, validateAddress(adr) { return Promise.resolve(ethers.utils.getAddress(adr) !== undefined); diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 0b4d59794..2b3acf3cc 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -2,7 +2,6 @@ import { BigNumber } from "bignumber.js"; import { BalanceCheck, EstimateTxFees, - isWrappedNft, MintNft, TransferNftForeign, UnfreezeForeignNft, @@ -13,9 +12,8 @@ import axios from "axios"; import { TronWeb } from "tronweb"; // @ts-expect-error no types cope import TronStation from "tronstation"; -import { EthNftInfo, MintArgs } from "./web3"; +import { EthNftInfo } from "./web3"; import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; -import { Base64 } from "js-base64"; import { Minter__factory, @@ -28,7 +26,6 @@ import { Chain, ExtractAction, ExtractTxnStatus, - extractWrappedMetadata, IsApproved, MintRawTxn, NftMintArgs, @@ -40,9 +37,7 @@ import { ValidateAddress, } from ".."; import { ChainNonceGet, NftInfo } from ".."; -import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; import { Transaction } from "ethers"; -import { UnfreezeNftEvent } from "xpnet-web3-contracts/dist/Minter"; // Uses default private key in provider if sender is undefinedd type TronSender = string | undefined; @@ -201,7 +196,6 @@ export async function baseTronHelperFactory( export interface TronParams { provider: TronWeb; middleware_uri: string; - erc1155_addr: string; minter_addr: string; erc721_addr: string; validators: string[]; @@ -234,13 +228,9 @@ export interface TronRawTxn { export async function tronHelperFactory( tronParams: TronParams ): Promise { - const { provider, erc1155_addr, minter_addr } = tronParams; + const { provider, minter_addr } = tronParams; const station = new TronStation(provider); const base = await baseTronHelperFactory(provider); - const erc1155 = await provider.contract( - Erc1155Minter__factory.abi, - erc1155_addr - ); const minter = await provider.contract(Minter__factory.abi, minter_addr); const event_middleware = axios.create({ baseURL: tronParams.middleware_uri, @@ -538,24 +528,10 @@ export async function tronHelperFactory( ); }, async estimateValidateUnfreezeNft( - to: string, - nft: NftInfo + _to: string, + _nft: NftInfo ): Promise { - const wrappedData = await extractWrappedMetadata(nft); - - return await estimateGas( - tronParams.validators, - "validateUnfreezeNft(uint128,address,uint256,address)", - [ - { type: "uint128", value: randomAction() }, - { type: "address", value: to }, - { - type: "uint256", - value: EthBN.from(wrappedData.wrapped.tokenId), - }, - { type: "address", value: wrappedData.wrapped.contract }, - ] - ); + return new BigNumber(0) // TODO }, async validateAddress(adr: string): Promise { return provider.isAddress(adr); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 293649b4d..6e2a89321 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -12,7 +12,6 @@ import { TransferNftForeignBatch, UnfreezeForeignNftBatch, EstimateTxFeesBatch, - isWrappedNft, } from "./chain"; import { Signer, @@ -37,7 +36,6 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, - extractWrappedMetadata, MintRawTxn, NftInfo, PreTransfer, @@ -49,9 +47,7 @@ import { } from ".."; import { NftMintArgs } from ".."; import axios from "axios"; -import { Erc721MetadataEx, Erc721WrappedData } from "../erc721_metadata"; import { ChainNonce } from "../type-utils"; -type EasyBalance = string | number | EthBN; /** * Information required to perform NFT transfers in this chain */ @@ -205,7 +201,6 @@ export interface Web3Params { provider: Provider; middleware_uri: string; minter_addr: string; - erc1155_addr: string; erc721_addr: string; erc721Minter: string; erc1155Minter: string; @@ -266,9 +261,8 @@ export async function web3HelperFactory( params: Web3Params ): Promise { const w3 = params.provider; - const { minter_addr, provider, erc1155_addr } = params; + const { minter_addr, provider } = params; const minter = Minter__factory.connect(minter_addr, provider); - const erc1155 = Erc1155Minter__factory.connect(erc1155_addr, provider); const event_middleware = axios.create({ baseURL: params.middleware_uri, @@ -296,22 +290,6 @@ export async function web3HelperFactory( return action_id; } - const randomAction = () => - EthBN.from( - Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000)) - ); - - async function estimateGas( - addrs: string[], - utx: PopulatedTransaction - ): Promise { - utx.from = addrs[0]; - let td = await w3.estimateGas(utx); - const fee = td.mul(addrs.length + 1).mul(await w3.getGasPrice()); - - return new BigNumber(fee.toString()); - } - const isApprovedForMinter = async ( id: NftInfo, signer: Signer diff --git a/src/type-utils.ts b/src/type-utils.ts index 9a526c49e..e9408c076 100644 --- a/src/type-utils.ts +++ b/src/type-utils.ts @@ -1,4 +1,4 @@ -import { Chain, MetaMap, TransferNftForeign } from "."; +import { MetaMap, TransferNftForeign } from "."; type TransferNftChain = TransferNftForeign; diff --git a/tsconfig.json b/tsconfig.json index 623ceabe1..8a950da27 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,15 +15,15 @@ "strict": true /* Enable all strict type-checking options. */, /* Strict Type-Checking Options */ - // "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, + "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, // "strictNullChecks": true /* Enable strict null checks. */, - // "strictFunctionTypes": true /* Enable strict checking of function types. */, + "strictFunctionTypes": true /* Enable strict checking of function types. */, // "strictPropertyInitialization": true /* Enable strict checking of property initialization in classes. */, // "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */, // "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, /* Additional Checks */ - //"noUnusedLocals": true /* Report errors on unused locals. */, + "noUnusedLocals": true /* Report errors on unused locals. */, "noUnusedParameters": true /* Report errors on unused parameters. */, "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, From 5fb7f309452b56983945bd37a16e7462ac6b25d5 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 21 Feb 2022 20:50:40 +0530 Subject: [PATCH 363/956] cleanup unused exports --- src/erc721_metadata.ts | 28 ---------------------------- src/factory/factories.ts | 26 -------------------------- src/factory/index.ts | 14 +++----------- 3 files changed, 3 insertions(+), 65 deletions(-) delete mode 100644 src/erc721_metadata.ts diff --git a/src/erc721_metadata.ts b/src/erc721_metadata.ts deleted file mode 100644 index 4389971c4..000000000 --- a/src/erc721_metadata.ts +++ /dev/null @@ -1,28 +0,0 @@ -export type Erc721Attrs = { - trait_type: string; - value: string; -}; - -export type Erc721Metadata = { - name: string; - description: string; - image: string; - attributes: Erc721Attrs[]; -}; - -export type Erc721WrappedData = { - contract: string; - tokenId: string; -}; - -export type ElrdWrappedData = { - tokenId: string; - nonce: string; -}; - -export type Erc721MetadataEx = Erc721Metadata & { - wrapped: T & { - origin: string; - original_uri: string; - }; -}; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 24951b5bd..d3f1e7a14 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -31,7 +31,6 @@ export namespace ChainFactoryConfigs { "erd1qqqqqqqqqqqqqpgqzses02wme3gsx320dpja2p2kk3rckgcfksmsj8grdk", esdt_swap_address: "erd1qqqqqqqqqqqqqpgqwu3ulmuxppa2e537ajst468wplkxxsqyksms9az8at", - esdt: "XPNET-738176", esdt_nft: "XPNFT-aca910", esdt_swap: "WEGLD-f8dc4c", nonce: 2, @@ -39,7 +38,6 @@ export namespace ChainFactoryConfigs { tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), middleware_uri, - erc1155_addr: "41b9bd4547c91cb23ba546bcdc958d4807e2179c7c", minter_addr: "41cecf8ffbed6433c1cae2fe196925109aebc726f2", erc721_addr: "41226a324faa855cf0e4774c682c9d772b72dd811e", validators: EVM_TESTNET_VALIDATORS, @@ -49,7 +47,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - erc1155_addr: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", @@ -59,7 +56,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), minter_addr: "0x1A9C0d370b6e93dFdbEA1145011Bc551bB1a2B60", - erc1155_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", erc721_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", erc1155Minter: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", erc721Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", @@ -69,7 +65,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", erc1155Minter: "string", erc721Minter: "string", @@ -79,7 +74,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), minter_addr: "0xbde1262d472aDd62C495a601806c22d228c2d70d", - erc1155_addr: "0x59A049655F4EA03be44C0925fBB9107836b16085", erc721_addr: "0xD90e3e365C204CE22755fEfcbA0E221a2B8a17f6", erc1155Minter: "0xDF7a8f8452E367fA0562d67FEb90aD746b3DD99A", erc721Minter: "0x20929C60f0158A21521dFe695A3876871874C472", @@ -89,7 +83,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", erc1155Minter: "string", erc721Minter: "string", @@ -99,7 +92,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), minter_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", - erc1155_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", erc1155Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", @@ -109,7 +101,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - erc1155_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", @@ -119,7 +110,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc1155_addr: "0x80653c90614155633252d32698164DBbBC421782", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", erc1155Minter: "string", erc721Minter: "string", @@ -137,7 +127,6 @@ export namespace ChainFactoryConfigs { uniqueParams: { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.UNIQUE), nonce: Chain.UNIQUE, - erc1155_addr: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", erc1155Minter: "string", @@ -157,7 +146,6 @@ export namespace ChainFactoryConfigs { }, velasParams: { middleware_uri, - erc1155_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc721_addr: "0x80653c90614155633252d32698164DBbBC421782", minter_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", erc1155Minter: "string", @@ -169,7 +157,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.IOTEX), minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - erc1155_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", @@ -184,7 +171,6 @@ export namespace ChainFactoryConfigs { "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", esdt_swap_address: "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", - esdt: "XPNET-738176", esdt_nft: "XPNFT-cb7482", esdt_swap: "WEGLD-5f1f8d", nonce: Chain.ELROND, @@ -192,7 +178,6 @@ export namespace ChainFactoryConfigs { tronParams: { provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), middleware_uri, - erc1155_addr: "TSg3nSjuSuVf5vEk6f2WwM9Ph8bEaNNz9B", minter_addr: "TMx1nCzbK7tbBinLh29CewahpbR1k64c8E", erc721_addr: "TRON", nonce: Chain.TRON, @@ -203,7 +188,6 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", erc1155Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", nonce: Chain.AVALANCHE, @@ -213,7 +197,6 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", nonce: Chain.POLYGON, @@ -223,7 +206,6 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc1155_addr: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", minter_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", nonce: Chain.FANTOM, @@ -233,7 +215,6 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", - erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", nonce: Chain.BSC, @@ -242,7 +223,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), minter_addr: "string", - erc1155_addr: "string", erc721_addr: "string", erc1155Minter: "string", erc721Minter: "string", @@ -252,7 +232,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), minter_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", - erc1155_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", erc1155Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", @@ -262,7 +241,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", @@ -273,7 +251,6 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", - erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.XDAI, @@ -291,7 +268,6 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FUSE), erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc1155_addr: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", minter_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", nonce: Chain.FUSE, @@ -312,7 +288,6 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", nonce: Chain.VELAS, @@ -321,7 +296,6 @@ export namespace ChainFactoryConfigs { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), minter_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", - erc1155_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", erc721_addr: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", erc1155Minter: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", diff --git a/src/factory/index.ts b/src/factory/index.ts index 075bbaeed..c677b27a5 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -1,10 +1,9 @@ import { - ElrondHelper, ElrondParams, ElrondRawUnsignedTxn, } from "../helpers/elrond"; -import { TronHelper, TronParams, TronRawTxn } from "../helpers/tron"; -import { Web3Helper, Web3Params } from "../helpers/web3"; +import { TronParams, TronRawTxn } from "../helpers/tron"; +import { Web3Params } from "../helpers/web3"; import { Chain, CHAIN_INFO, @@ -45,7 +44,7 @@ import { } from "../helpers/algorand"; import algosdk from "algosdk"; import { Base64 } from "js-base64"; -import { TezosHelper, TezosParams } from "../helpers/tezos"; +import { TezosParams } from "../helpers/tezos"; import { EstimateTxFeesBatch, TransferNftForeignBatch, @@ -53,13 +52,6 @@ import { } from "../helpers/chain"; import { ChainNonce, HelperMap, InferChainH, InferChainParam, InferSigner, ParamMap } from "../type-utils"; -export type CrossChainHelper = - | ElrondHelper - | Web3Helper - | TronHelper - | AlgorandHelper - | TezosHelper; - type FullChain = TransferNftForeign< Signer, RawNft, From f4b57efd42b9ce8679644029daf966728027ab4d Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 21 Feb 2022 20:59:32 +0530 Subject: [PATCH 364/956] cleanup unsigned txn api --- src/factory/index.ts | 87 +----------------------------------------- src/helpers/chain.ts | 32 ---------------- src/helpers/elrond.ts | 61 +----------------------------- src/helpers/thor.ts | 44 ---------------------- src/helpers/tron.ts | 88 +------------------------------------------ src/helpers/web3.ts | 54 -------------------------- 6 files changed, 4 insertions(+), 362 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index c677b27a5..790dd7e8c 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -1,8 +1,7 @@ import { ElrondParams, - ElrondRawUnsignedTxn, } from "../helpers/elrond"; -import { TronParams, TronRawTxn } from "../helpers/tron"; +import { TronParams } from "../helpers/tron"; import { Web3Params } from "../helpers/web3"; import { Chain, @@ -17,15 +16,11 @@ import { ExtractAction, ExtractTxnStatus, MintNft, - MintRawTxn, NftInfo, - PreTransferRawTxn, socketHelper, TransactionStatus, TransferNftForeign, - TransferNftForeignUnsigned, UnfreezeForeignNft, - UnfreezeForeignNftUnsigned, ValidateAddress, } from ".."; import BigNumber from "bignumber.js"; @@ -34,7 +29,7 @@ import axios from "axios"; import { exchangeRateRepo } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { bridgeHeartbeat } from "../heartbeat"; -import { PopulatedTransaction, utils } from "ethers"; +import { utils } from "ethers"; import { AlgorandParams, AlgorandHelper, @@ -67,13 +62,6 @@ type FullChainBatch = FullChain & UnfreezeForeignNftBatch & EstimateTxFeesBatch; -type RawTxnBuiladableChain = TransferNftForeignUnsigned< - RawNft, - Resp -> & - UnfreezeForeignNftUnsigned & - PreTransferRawTxn & - MintRawTxn; /** * A type representing a chain factory. * @@ -205,40 +193,6 @@ export type ChainFactory = { * @param claimer: the account which can claim the nfts */ claimableAlgorandNfts(claimer: string): Promise; - /** - * Returns a raw txn (hopefully Typed JS Objects in all chains) which can be sent over the wire for signing and broadcasting. - * @param from The chain from which the NFT is being sent. - * @param toNonce The nonce of the chain to which the NFT is being sent. - * @param sender the address of the sender of the NFT. - * @param to the address of the receiver of the NFT. - * @param nft the NFT to be transferred. - * @param fee the fee to be paid for the transaction. - */ - generateNftTxn( - from: RawTxnBuiladableChain, - toNonce: number, - sender: string, - to: string, - nft: NftInfo, - fee: BigNumber, - mintWith: string, - nonce: string - ): Promise; - - generatePreTransferTxn( - from: RawTxnBuiladableChain, - sender: string, - nft: NftInfo, - fee: BigNumber - ): Promise< - PopulatedTransaction | ElrondRawUnsignedTxn | TronRawTxn | undefined - >; - - generateMintTxn( - from: RawTxnBuiladableChain, - sender: string, - nft: NftMintArgs - ): Promise; getVerifiedContracts( from: string, @@ -480,41 +434,7 @@ export function ChainFactory( } return { - async generatePreTransferTxn(from, sender, nft, fee) { - return await from.preTransferRawTxn(nft, sender, fee); - }, getVerifiedContracts, - async generateNftTxn( - chain, - toNonce, - sender, - receiver, - nft, - fee, - mw, - nonce - ) { - if (await isWrappedNft(nft)) { - return chain.unfreezeWrappedNftTxn( - receiver, - nft, - fee, - sender, - - nonce - ); - } else { - return chain.transferNftToForeignTxn( - toNonce, - receiver, - nft, - fee, - sender, - mw - ); - } - }, - async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { type Result = ReturnType; let result: Result[] = []; @@ -565,9 +485,6 @@ export function ChainFactory( return await Promise.all(result); }, estimateBatchFees, - async generateMintTxn(chain, sender, nft) { - return await chain.mintRawTxn(nft, sender); - }, async getDestinationTransaction( chain: ExtractAction & ExtractTxnStatus, targetNonce: number, diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 594671f7c..bacd5da31 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,6 +1,5 @@ import axios from "axios"; import BigNumber from "bignumber.js"; -import { NftMintArgs } from ".."; import { ChainNonce } from "../type-utils"; /** @@ -53,20 +52,6 @@ export interface TransferNftForeign< ): Promise; } -export interface TransferNftForeignUnsigned< - RawNft, - Resp -> { - transferNftToForeignTxn( - chain_nonce: number, - to: string, - id: NftInfo, - txFees: BigNumber, - senderAddress: string, - mintWith: string - ): Promise; -} - /** * Unfreeze native NFT existing on a foreign chain(Send back NFT) * chain_nonce is automatically derived @@ -91,19 +76,6 @@ export interface UnfreezeForeignNft< ): Promise; } -export interface UnfreezeForeignNftUnsigned< - RawNft, - Resp -> { - unfreezeWrappedNftTxn( - to: string, - id: NftInfo, - txFees: BigNumber, - sender: string, - nonce: string - ): Promise; -} - /** * Get the balance of an address on the chain */ @@ -149,10 +121,6 @@ export interface PreTransferRawTxn { ): Promise; } -export interface MintRawTxn { - mintRawTxn(id: NftMintArgs, address: string, value?: BigNumber): Promise; -} - export interface ChainNonceGet { getNonce(): ChainNonce; } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index d21e760fe..76fa511b7 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -44,12 +44,9 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, - MintRawTxn, NftInfo, PreTransfer, PreTransferRawTxn, - TransferNftForeignUnsigned, - UnfreezeForeignNftUnsigned, ValidateAddress, } from ".."; import { NftMintArgs } from ".."; @@ -111,17 +108,6 @@ export type NftIssueArgs = { * Utility for issuing ESDT which supports NFT minting */ export interface IssueESDTNFT { - /** - * Unsigned Transaction for [[issueESDTNft]] - */ - unsignedIssueESDTNft( - name: string, - ticker: string, - canFreeze: boolean | undefined, - canWipe: boolean | undefined, - canTransferNFTCreateRole: boolean | undefined - ): Transaction; - /** * Issue a new ESDT supporting NFTs * @@ -229,17 +215,9 @@ export type ElrondHelper = BalanceCheck & PreTransfer & EstimateTxFees & EstimateTxFeesBatch & - TransferNftForeignUnsigned< - EsdtNftInfo, - ElrondRawUnsignedTxn - > & - UnfreezeForeignNftUnsigned< - EsdtNftInfo, - ElrondRawUnsignedTxn - > & PreTransferRawTxn & ExtractTxnStatus & - MintRawTxn & SetESDTRoles & { XpNft: string }; + SetESDTRoles & { XpNft: string }; /** * Create an object implementing cross chain utilities for elrond @@ -574,34 +552,6 @@ export async function elrondHelperFactory( return wallet.balance.valueOf(); }, - async transferNftToForeignTxn( - chain_nonce, - to, - nft, - txFees, - sender, - mintWith - ) { - return unsignedTransferNftTxn( - chain_nonce, - new Address(sender), - to, - nft.native, - new BigNumber(txFees.toString()), - mintWith - ).toPlainObject(); - }, - async unfreezeWrappedNftTxn(to, nft, fee, sender, nonce) { - const txu = unsignedUnfreezeNftTxn( - new Address(sender), - to, - nft.native, - new BigNumber(fee.toString()), - nonce - ); - txu.getSignature().hex(); - return txu.toPlainObject(); - }, async extractTxnStatus(txn) { const status = await provider.getTransactionStatus( new TransactionHash(txn) @@ -658,7 +608,6 @@ export async function elrondHelperFactory( return tx; }, - unsignedIssueESDTNft, async issueESDTNft( sender: ElrondSigner, name: string, @@ -752,14 +701,6 @@ export async function elrondHelperFactory( ) { return estimateGas(NFT_TRANSFER_COST); // TODO: properly estimate NFT_TRANSFER_COST }, - async mintRawTxn(args, address) { - const txu = unsignedMintNftTxn( - new Address(address), - args as NftIssueArgs - ); - return txu.toPlainObject(); - }, - async estimateValidateUnfreezeNft(_to: string, _nftUri: NftInfo) { return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST }, diff --git a/src/helpers/thor.ts b/src/helpers/thor.ts index 051c971a2..20d2cc0f9 100644 --- a/src/helpers/thor.ts +++ b/src/helpers/thor.ts @@ -30,13 +30,10 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, - MintRawTxn, NftInfo, PreTransfer, PreTransferRawTxn, TransactionStatus, - TransferNftForeignUnsigned, - UnfreezeForeignNftUnsigned, ValidateAddress, } from ".."; import { NftMintArgs } from ".."; @@ -124,11 +121,8 @@ export type Web3Helper = BaseWeb3Helper & ExtractAction & { createWallet(privateKey: string): Wallet; } & Pick, "preTransfer"> & - UnfreezeForeignNftUnsigned & - TransferNftForeignUnsigned & PreTransferRawTxn & ExtractTxnStatus & - MintRawTxn & GetProvider; /** @@ -314,47 +308,9 @@ export async function web3HelperFactory( } return TransactionStatus.UNKNOWN; }, - async unfreezeWrappedNftTxn(to, id, txFees, _sender) { - const res = await minter.populateTransaction.withdrawNft( - to, - id.native.tokenId, - { - value: new BigNumber(txFees.toString(10)), - } - ); - return res; - }, createWallet(privateKey: string): Wallet { return new Wallet(privateKey, provider); }, - async mintRawTxn(nft, sender) { - const erc721 = new Contract( - nft.contract!, - UserNftMinter__factory.abi, - new VoidSigner(sender, provider) - ); - - const txm = await erc721.populateTransaction.mint(nft.uris[0]); - return txm; - }, - async transferNftToForeignTxn( - chain_nonce: number, - to: string, - id: NftInfo, - txFees: BigNumber, - _sender - ) { - const txr = await minter.populateTransaction.freezeErc721( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - { - value: EthBN.from(txFees.toString(10)), - } - ); - return txr; - }, async transferNftToForeign( sender: Signer, chain_nonce: number, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 2b3acf3cc..eb2aa5d9e 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -27,13 +27,10 @@ import { ExtractAction, ExtractTxnStatus, IsApproved, - MintRawTxn, NftMintArgs, PreTransfer, PreTransferRawTxn, TransactionStatus, - TransferNftForeignUnsigned, - UnfreezeForeignNftUnsigned, ValidateAddress, } from ".."; import { ChainNonceGet, NftInfo } from ".."; @@ -90,10 +87,7 @@ export type TronHelper = BaseTronHelper & ExtractAction & Pick, "preTransfer"> & PreTransferRawTxn & - UnfreezeForeignNftUnsigned & - TransferNftForeignUnsigned & - ExtractTxnStatus & - MintRawTxn; + ExtractTxnStatus; export async function baseTronHelperFactory( provider: TronWeb @@ -385,86 +379,6 @@ export async function tronHelperFactory( } return addMinToExpirationTime(transaction, 15); }, - async mintRawTxn(args, sender) { - const { transaction, result } = - await provider.transactionBuilder.triggerSmartContract( - args.contract, - "mint(string)", - { - feeLimit: 1_000_000, - callValue: 0, - }, - [ - { - type: "string", - value: args.uris[0], - }, - ], - sender - ); - if (!result.result) { - throw new Error(result.toString()); - } - return addMinToExpirationTime(transaction, 15); - }, - async transferNftToForeignTxn(nonce, to, id, _fee, sender) { - const { transaction, result } = - await provider.transactionBuilder.triggerSmartContract( - "freezeErc721(address,uint256,uint64,string)", - { - feeLimit: 1_000_000, - callValue: 0, - }, - [ - { - type: "address", - value: id.native.contract, - }, - { - type: "uint256", - value: id.native.tokenId, - }, - { - type: "uint64", - value: nonce, - }, - { - type: "string", - value: to, - }, - ], - sender - ); - if (!result.result) { - throw new Error(result.toString()); - } - return addMinToExpirationTime(transaction, 15); - }, - async unfreezeWrappedNftTxn(to, id, _fee, sender) { - const { transaction, result } = - await provider.transactionBuilder.triggerSmartContract( - "withdrawNft(string,uint256)", - { - feeLimit: 1_000_000, - callValue: 0, - }, - [ - { - type: "string", - value: to, - }, - { - type: "uint256", - value: id, - }, - ], - sender - ); - if (!result.result) { - throw new Error(result.toString()); - } - return addMinToExpirationTime(transaction, 15); - }, isApprovedForMinter, async extractTxnStatus(txnHash) { const txn = await provider.trx.getConfirmedTransaction(txnHash); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 6e2a89321..ba6a49000 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -36,13 +36,10 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, - MintRawTxn, NftInfo, PreTransfer, PreTransferRawTxn, TransactionStatus, - TransferNftForeignUnsigned, - UnfreezeForeignNftUnsigned, ValidateAddress, } from ".."; import { NftMintArgs } from ".."; @@ -141,17 +138,8 @@ export type Web3Helper = BaseWeb3Helper & ExtractAction & { createWallet(privateKey: string): Wallet; } & Pick, "preTransfer"> & - UnfreezeForeignNftUnsigned< - EthNftInfo, - PopulatedTransaction - > & - TransferNftForeignUnsigned< - EthNftInfo, - PopulatedTransaction - > & PreTransferRawTxn & ExtractTxnStatus & - MintRawTxn & GetProvider & { XpNft: string }; /** @@ -374,18 +362,6 @@ export async function web3HelperFactory( } return TransactionStatus.UNKNOWN; }, - async unfreezeWrappedNftTxn(to, id, txFees, _sender, nonce) { - const res = await minter.populateTransaction.withdrawNft( - to, - nonce, - id.native.tokenId, - id.native.contract, - { - value: EthBN.from(txFees.toString(10)), - } - ); - return res; - }, async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { const res = await minter.connect(signer).withdrawNftBatch( to, @@ -439,36 +415,6 @@ export async function web3HelperFactory( createWallet(privateKey: string): Wallet { return new Wallet(privateKey, provider); }, - async mintRawTxn(nft, sender) { - const erc721 = UserNftMinter__factory.connect( - nft.contract!, - new VoidSigner(sender) - ); - - const txm = await erc721.populateTransaction.mint(nft.uris[0]); - return txm; - }, - async transferNftToForeignTxn( - chain_nonce: number, - to: string, - id: NftInfo, - txFees: BigNumber, - _sender, - mintWith - ) { - const method = NFT_METHOD_MAP[id.native.contractType].freeze; - const txr = await minter.populateTransaction[method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - { - value: EthBN.from(txFees.toString(10)), - } - ); - return txr; - }, async transferNftToForeign( sender: Signer, chain_nonce: number, From 61c92dfbefbe3dfa7d2f6b847b888f43fda7756a Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 21 Feb 2022 21:27:05 +0530 Subject: [PATCH 365/956] factory: add method for checking nft whitelist --- src/factory/index.ts | 9 +++++++++ src/helpers/chain.ts | 4 ++++ src/helpers/thor.ts | 7 ++++++- src/helpers/tron.ts | 9 ++++++++- src/helpers/web3.ts | 7 ++++++- 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 790dd7e8c..adcb420d3 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -44,6 +44,7 @@ import { EstimateTxFeesBatch, TransferNftForeignBatch, UnfreezeForeignNftBatch, + WhitelistCheck } from "../helpers/chain"; import { ChainNonce, HelperMap, InferChainH, InferChainParam, InferSigner, ParamMap } from "../type-utils"; @@ -199,6 +200,11 @@ export type ChainFactory = { targetChain: number, fc: number ): Promise; + + checkWhitelist( + chain: Partial>, + nft: NftInfo + ): Promise }; /** @@ -616,6 +622,9 @@ export function ChainFactory( const algo: AlgorandHelper = await inner(Chain.ALGORAND); return await algo.claimableNfts(txSocket, claimer); }, + checkWhitelist(chain, nft) { + return chain.isNftWhitelisted ? chain.isNftWhitelisted(nft) : Promise.resolve(true); + } }; } /** diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index bacd5da31..2c8030420 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -180,6 +180,10 @@ export interface EstimateTxFeesBatch { ): Promise; } +export type WhitelistCheck = { + isNftWhitelisted(nft: NftInfo): Promise; +} + export interface GetProvider { getProvider(): Provider; } diff --git a/src/helpers/thor.ts b/src/helpers/thor.ts index 20d2cc0f9..69429cf8c 100644 --- a/src/helpers/thor.ts +++ b/src/helpers/thor.ts @@ -35,6 +35,7 @@ import { PreTransferRawTxn, TransactionStatus, ValidateAddress, + WhitelistCheck, } from ".."; import { NftMintArgs } from ".."; import { BigNumber as EthBN } from "ethers"; @@ -123,7 +124,8 @@ export type Web3Helper = BaseWeb3Helper & } & Pick, "preTransfer"> & PreTransferRawTxn & ExtractTxnStatus & - GetProvider; + GetProvider & + WhitelistCheck; /** * Create an object implementing minimal utilities for a web3 chain @@ -367,5 +369,8 @@ export async function web3HelperFactory( validateAddress(adr) { return Promise.resolve(ethers.utils.getAddress(adr) !== undefined); }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract) + } }; } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index eb2aa5d9e..a9d798225 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -32,6 +32,7 @@ import { PreTransferRawTxn, TransactionStatus, ValidateAddress, + WhitelistCheck, } from ".."; import { ChainNonceGet, NftInfo } from ".."; import { Transaction } from "ethers"; @@ -87,7 +88,8 @@ export type TronHelper = BaseTronHelper & ExtractAction & Pick, "preTransfer"> & PreTransferRawTxn & - ExtractTxnStatus; + ExtractTxnStatus & + WhitelistCheck; export async function baseTronHelperFactory( provider: TronWeb @@ -450,5 +452,10 @@ export async function tronHelperFactory( async validateAddress(adr: string): Promise { return provider.isAddress(adr); }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract).call({ + from: tronParams.provider.defaultAddress.base58 + }); + } }; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index ba6a49000..83cf99de6 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -41,6 +41,7 @@ import { PreTransferRawTxn, TransactionStatus, ValidateAddress, + WhitelistCheck, } from ".."; import { NftMintArgs } from ".."; import axios from "axios"; @@ -140,7 +141,8 @@ export type Web3Helper = BaseWeb3Helper & } & Pick, "preTransfer"> & PreTransferRawTxn & ExtractTxnStatus & - GetProvider & { XpNft: string }; + GetProvider & { XpNft: string } & + WhitelistCheck; /** * Create an object implementing minimal utilities for a web3 chain @@ -470,5 +472,8 @@ export async function web3HelperFactory( validateAddress(adr) { return Promise.resolve(ethers.utils.isAddress(adr)); }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract); + } }; } From 83cc73785c87c6ee328b5f009233b327ffe2ccfb Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Tue, 22 Feb 2022 18:12:42 +0200 Subject: [PATCH 366/956] add Harmony to README --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 12878d397..0dcaa6371 100644 --- a/README.md +++ b/README.md @@ -98,6 +98,7 @@ const factory = ChainFactory(Config, testnetConfig); | Fantom | fantomParams | | Tron | tronParams | | xDai | xDaiParams | +| Harmony | harmonyParams |

@@ -182,6 +183,7 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor const fantom = await factory.inner (Chain.FANTOM); const velas = await factory.inner (Chain.VELAS); const gnosis = await factory.inner (Chain.XDAI); + const harmony = await factory.inner (Chain.HARMONY); // Non-EVM chains: // Inner Object ==================== Chain Helper === Chain Params === Chain Nonce == @@ -204,7 +206,7 @@ This operation does not depend on a wallet since reading operations are free and // EVM: const web3Nfts = await factory.nftList( - polygon, // The chain of interest + harmony, // The chain of interest "0x...." // The public key of the NFT owner in a web3 chain ); @@ -416,7 +418,7 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); ```javascript (async () => { // EVM example - const isApprovedEVM = await polygon.approveForMinter(web3ChosenOne, signer); + const isApprovedEVM = await harmony.approveForMinter(web3ChosenOne, signer); console.log("Is Approved in an EVM:", isApprovedEVM); // Elrond example @@ -445,7 +447,7 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); (async () => { // EVM compatible chains example: const web3Result = await factory.transferNft( - polygon, // The Source Chain. + harmony, // The Source Chain. bsc, // The Destination Chain. theChosenOne, // The NFT object you have chosen from the list. signer, // The web3 signer object (see p. 3.2 above). From b3d3bfcd13bf19b303cebf5a6b7cdf94ec0a54e1 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 23 Feb 2022 13:54:22 +0530 Subject: [PATCH 367/956] rename chains --- src/consts.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 49eaae04d..644af0b78 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -126,12 +126,12 @@ CHAIN_INFO.set(Chain.ELROND, { name: "Elrond", nonce: 2, decimals: 1e18, - constructor: elrondHelperFactory as any, + constructor: elrondHelperFactory, blockExplorerUrl: "https://devnet-explorer.elrond.com/transactions/", currency: SupportedCurrency.EGLD }); CHAIN_INFO.set(Chain.HECO, { - name: "Heco", + name: "HECO", nonce: 3, chainId: 256, decimals: 1e18, @@ -149,7 +149,7 @@ CHAIN_INFO.set(Chain.BSC, { currency: SupportedCurrency.BNB, }); CHAIN_INFO.set(Chain.ETHEREUM, { - name: "Ropsten", + name: "Ethereum", nonce: 5, currency: SupportedCurrency.ETH, chainId: 3, @@ -293,4 +293,4 @@ export const Config: AppConfig = { wrappedNftPrefix: "https://nft.xp.network/w/", }; -export const FEE_MARGIN = { min: 0.5, max: 5 } \ No newline at end of file +export const FEE_MARGIN = { min: 0.5, max: 5 } From e665ee4955a856540387633187d83841304fd2d1 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 23 Feb 2022 13:58:39 +0530 Subject: [PATCH 368/956] README: update factory.inner examples type inference removes the requirement --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 0dcaa6371..b0df745bf 100644 --- a/README.md +++ b/README.md @@ -175,22 +175,22 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor ```javascript (async () => { // EVM-compatible chains: - // Inner Object ==================== Chain Helper === Chain Params === Chain Nonce == - const ethereum = await factory.inner (Chain.ETHEREUM); - const bsc = await factory.inner (Chain.BSC); - const polygon = await factory.inner (Chain.POLYGON); - const avax = await factory.inner (Chain.AVALANCHE); - const fantom = await factory.inner (Chain.FANTOM); - const velas = await factory.inner (Chain.VELAS); - const gnosis = await factory.inner (Chain.XDAI); - const harmony = await factory.inner (Chain.HARMONY); + // Inner Object ====================== Chain Nonce == + const ethereum = await factory.inner(Chain.ETHEREUM); + const bsc = await factory.inner(Chain.BSC); + const polygon = await factory.inner(Chain.POLYGON); + const avax = await factory.inner(Chain.AVALANCHE); + const fantom = await factory.inner(Chain.FANTOM); + const velas = await factory.inner(Chain.VELAS); + const gnosis = await factory.inner(Chain.XDAI); + const harmony = await factory.inner(Chain.HARMONY); // Non-EVM chains: - // Inner Object ==================== Chain Helper === Chain Params === Chain Nonce == - const algorand = await factory.inner(Chain.ALGORAND); - const elrond = await factory.inner (Chain.ELROND); - const tezos = await factory.inner (Chain.TEZOS); - const tron = await factory.inner (Chain.TRON); + // Inner Object ====================== Chain Nonce == + const algorand = await factory.inner(Chain.ALGORAND); + const elrond = await factory.inner(Chain.ELROND); + const tezos = await factory.inner(Chain.TEZOS); + const tron = await factory.inner(Chain.TRON); })(); ``` From 451f782f719ea5091992c0b4ea96a6dd62901a55 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 23 Feb 2022 13:28:44 +0200 Subject: [PATCH 369/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d3f1e7a14..b8302c2a2 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -295,10 +295,10 @@ export namespace ChainFactoryConfigs { iotexParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), - minter_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", - erc721_addr: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", + minter_addr: "0x0E99a77fedf8D1Eb783078D1Aa84160a5CBE96D7", + erc721_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", - erc1155Minter: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", + erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.IOTEX, }, }); From c48ad5625dd0116e15eebf02688daf1d825dab25 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Wed, 23 Feb 2022 17:22:34 +0200 Subject: [PATCH 370/956] add xDai to Testnet --- src/factory/factories.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index b8302c2a2..4c8cb83fa 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -109,10 +109,10 @@ export namespace ChainFactoryConfigs { xDaiParams: { middleware_uri, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc721Minter: "string", + minter_addr: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + erc721_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", nonce: Chain.XDAI, }, algorandParams: { From f99a0acc76b100479b8e52dc2e36914da6fb7bca Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Wed, 23 Feb 2022 19:56:40 +0200 Subject: [PATCH 371/956] add Velas to Testnet --- src/factory/factories.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 4c8cb83fa..74f8b2cf8 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -146,10 +146,10 @@ export namespace ChainFactoryConfigs { }, velasParams: { middleware_uri, - erc721_addr: "0x80653c90614155633252d32698164DBbBC421782", - minter_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc721Minter: "string", + erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + minter_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc1155Minter: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", + erc721Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", nonce: Chain.VELAS, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), }, From ceab740f7c41a6a34009a316aab23dff135388e3 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Wed, 23 Feb 2022 20:36:49 +0200 Subject: [PATCH 372/956] add Aurora to Testnet --- src/consts.ts | 22 ++++++++++++---------- src/factory/factories.ts | 9 +++++++++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 644af0b78..2da764238 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -32,6 +32,7 @@ export enum TestNetRpcUri { TEZOS = "https://hangzhounet.smartpy.io", VELAS = "https://explorer.testnet.velas.com/rpc", IOTEX = "https://babel-api.testnet.iotex.io", + AURORA = "https://testnet.aurora.dev/", // TODO: Algorand // TODO: Fuse } @@ -94,16 +95,17 @@ export namespace Chain { export const POLYGON = 7; export const FANTOM = 8; export const TRON = 9; - export const CELO = 0xb; - export const HARMONY = 0xc; - export const ONT = 0xd; - export const XDAI = 0xe; - export const ALGORAND = 0xf; - export const FUSE = 0x10; - export const UNIQUE = 0x11; - export const TEZOS = 0x12; - export const VELAS = 0x13; - export const IOTEX = 0x14; + export const CELO = 0xb; //11 + export const HARMONY = 0xc; //12 + export const ONT = 0xd; //13 + export const XDAI = 0xe; //14 + export const ALGORAND = 0xf;//15 + export const FUSE = 0x10; // 16 + export const UNIQUE = 0x11; // 17 + export const TEZOS = 0x12; // 18 + export const VELAS = 0x13; // 19 + export const IOTEX = 0x14; // 20 + export const AURORA = 0x15; // 21 } interface ChainData { diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 74f8b2cf8..595f1dd1c 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -124,6 +124,15 @@ export namespace ChainFactoryConfigs { sendNftAppId: 458971166, algodPort: 443, }, + auroraParams: { + middleware_uri, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AURORA), + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + nonce: Chain.AURORA, + }, uniqueParams: { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.UNIQUE), nonce: Chain.UNIQUE, From ccd46a113b63377a75151aa17ad4b74b60dbda2b Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 25 Feb 2022 00:33:01 +0530 Subject: [PATCH 373/956] create a service for event notifier --- src/factory/factories.ts | 575 ++++++++++++++++++++------------------- src/factory/index.ts | 4 +- src/helpers/elrond.ts | 16 ++ src/helpers/tezos.ts | 16 +- src/helpers/thor.ts | 16 +- src/helpers/tron.ts | 12 +- src/helpers/web3.ts | 16 +- src/index.ts | 1 + src/notifier/index.ts | 34 +++ 9 files changed, 354 insertions(+), 336 deletions(-) create mode 100644 src/notifier/index.ts diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 595f1dd1c..46425d3bf 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -4,6 +4,7 @@ import TronWeb from "tronweb"; import { Chain, MainNetRpcUri, TestNetRpcUri } from "../consts"; import { ethers } from "ethers"; import { TezosToolkit } from "@taquito/taquito"; +import { evNotifier } from "../notifier"; const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", @@ -24,291 +25,293 @@ const EVM_TESTNET_VALIDATORS = [ const middleware_uri = "https://notifier.xp.network"; export namespace ChainFactoryConfigs { - export const TestNet: () => Partial = () => ({ - elrondParams: { - node_uri: TestNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgqzses02wme3gsx320dpja2p2kk3rckgcfksmsj8grdk", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqwu3ulmuxppa2e537ajst468wplkxxsqyksms9az8at", - esdt_nft: "XPNFT-aca910", - esdt_swap: "WEGLD-f8dc4c", - nonce: 2, - }, - tronParams: { - provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), - middleware_uri, - minter_addr: "41cecf8ffbed6433c1cae2fe196925109aebc726f2", - erc721_addr: "41226a324faa855cf0e4774c682c9d772b72dd811e", - validators: EVM_TESTNET_VALIDATORS, - nonce: Chain.TRON, - }, - avalancheParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), - minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", - erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", - erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", - nonce: Chain.AVALANCHE, - }, - polygonParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), - minter_addr: "0x1A9C0d370b6e93dFdbEA1145011Bc551bB1a2B60", - erc721_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", - erc1155Minter: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", - erc721Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", - nonce: Chain.POLYGON, - }, - fantomParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc721Minter: "string", - nonce: Chain.FANTOM, - }, - bscParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), - minter_addr: "0xbde1262d472aDd62C495a601806c22d228c2d70d", - erc721_addr: "0xD90e3e365C204CE22755fEfcbA0E221a2B8a17f6", - erc1155Minter: "0xDF7a8f8452E367fA0562d67FEb90aD746b3DD99A", - erc721Minter: "0x20929C60f0158A21521dFe695A3876871874C472", - nonce: Chain.BSC, - }, - celoParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc721Minter: "string", - nonce: Chain.CELO, - }, - harmonyParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), - minter_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", - erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - erc1155Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - nonce: Chain.HARMONY, - }, - ropstenParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), - minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", - nonce: Chain.ETHEREUM, - }, - xDaiParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), - minter_addr: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", - erc721_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", - erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", - nonce: Chain.XDAI, - }, - algorandParams: { - algodApiKey: - "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", - algodUri: "https://algorand-node.xp.network/", - algoIndexer: "https://algoexplorerapi.io/idx2", - nonce: Chain.ALGORAND, - sendNftAppId: 458971166, - algodPort: 443, - }, - auroraParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AURORA), - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - nonce: Chain.AURORA, - }, - uniqueParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.UNIQUE), - nonce: Chain.UNIQUE, - erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155Minter: "string", - erc721Minter: "string", - middleware_uri, - }, - tezosParams: { - bridgeAddress: "KT1MRYxBimYh1PUt3LBhEAmvr7YMK2L7kqCL", - middlewareUri: middleware_uri, - Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), - xpnftAddress: "KT1F7THd96y39MYKkTXmLyWkDZQ3H6QgubLh", - validators: [ - "tz1e4QByQTYQyj98cBiM42hejkMWB2Pg6iXg", - "tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb", - "tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6", - ], - }, - velasParams: { - middleware_uri, - erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - minter_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", - erc1155Minter: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", - erc721Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", - nonce: Chain.VELAS, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), - }, - iotexParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.IOTEX), - minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", - nonce: Chain.IOTEX, - }, - }); + export const TestNet: () => Partial = () => { + const notifier = evNotifier(middleware_uri); + return { + elrondParams: { + node_uri: TestNetRpcUri.ELROND, + minter_address: "erd1qqqqqqqqqqqqqpgqzses02wme3gsx320dpja2p2kk3rckgcfksmsj8grdk", + esdt_swap_address: "erd1qqqqqqqqqqqqqpgqwu3ulmuxppa2e537ajst468wplkxxsqyksms9az8at", + esdt_nft: "XPNFT-aca910", + esdt_swap: "WEGLD-f8dc4c", + notifier, + nonce: 2, + }, + tronParams: { + provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), + notifier, + minter_addr: "41cecf8ffbed6433c1cae2fe196925109aebc726f2", + erc721_addr: "41226a324faa855cf0e4774c682c9d772b72dd811e", + validators: EVM_TESTNET_VALIDATORS, + nonce: Chain.TRON, + }, + avalancheParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), + minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", + nonce: Chain.AVALANCHE, + }, + polygonParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), + minter_addr: "0x1A9C0d370b6e93dFdbEA1145011Bc551bB1a2B60", + erc721_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", + erc1155Minter: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", + erc721Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", + nonce: Chain.POLYGON, + }, + fantomParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", + erc1155Minter: "string", + erc721Minter: "string", + nonce: Chain.FANTOM, + }, + bscParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), + minter_addr: "0xbde1262d472aDd62C495a601806c22d228c2d70d", + erc721_addr: "0xD90e3e365C204CE22755fEfcbA0E221a2B8a17f6", + erc1155Minter: "0xDF7a8f8452E367fA0562d67FEb90aD746b3DD99A", + erc721Minter: "0x20929C60f0158A21521dFe695A3876871874C472", + nonce: Chain.BSC, + }, + celoParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", + erc1155Minter: "string", + erc721Minter: "string", + nonce: Chain.CELO, + }, + harmonyParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), + minter_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", + erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc1155Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + nonce: Chain.HARMONY, + }, + ropstenParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), + minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + nonce: Chain.ETHEREUM, + }, + xDaiParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), + minter_addr: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + erc721_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + nonce: Chain.XDAI, + }, + algorandParams: { + algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodUri: "https://algorand-node.xp.network/", + algoIndexer: "https://algoexplorerapi.io/idx2", + nonce: Chain.ALGORAND, + sendNftAppId: 458971166, + algodPort: 443, + }, + auroraParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AURORA), + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + nonce: Chain.AURORA, + }, + uniqueParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.UNIQUE), + nonce: Chain.UNIQUE, + erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155Minter: "string", + erc721Minter: "string", + notifier, + }, + tezosParams: { + bridgeAddress: "KT1MRYxBimYh1PUt3LBhEAmvr7YMK2L7kqCL", + notifier, + Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), + xpnftAddress: "KT1F7THd96y39MYKkTXmLyWkDZQ3H6QgubLh", + validators: [ + "tz1e4QByQTYQyj98cBiM42hejkMWB2Pg6iXg", + "tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb", + "tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6", + ], + }, + velasParams: { + notifier, + erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + minter_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc1155Minter: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", + erc721Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + nonce: Chain.VELAS, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), + }, + iotexParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.IOTEX), + minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + nonce: Chain.IOTEX, + }, + }; + }; - export const MainNet: () => Partial = () => ({ - elrondParams: { - node_uri: MainNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", - esdt_nft: "XPNFT-cb7482", - esdt_swap: "WEGLD-5f1f8d", - nonce: Chain.ELROND, - }, - tronParams: { - provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), - middleware_uri, - minter_addr: "TMx1nCzbK7tbBinLh29CewahpbR1k64c8E", - erc721_addr: "TRON", - nonce: Chain.TRON, - validators: EVM_VALIDATORS, - }, - avalancheParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), - erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", - erc1155Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", - minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", - nonce: Chain.AVALANCHE, - }, - polygonParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), - erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", - minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", - nonce: Chain.POLYGON, - }, - fantomParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), - erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", - erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", - minter_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", - nonce: Chain.FANTOM, - }, - bscParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), - erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", - erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", - erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", - nonce: Chain.BSC, - }, - celoParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), - minter_addr: "string", - erc721_addr: "string", - erc1155Minter: "string", - erc721Minter: "string", - nonce: Chain.CELO, - }, - harmonyParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), - minter_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", - erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - erc1155Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - nonce: Chain.HARMONY, - }, - ropstenParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), - minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", - erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", - nonce: Chain.ETHEREUM, - }, - xDaiParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), - erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", - erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", - erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", - minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - nonce: Chain.XDAI, - }, - algorandParams: { - algodApiKey: - "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", - algodUri: "https://algorand-node.xp.network/", - nonce: Chain.ALGORAND, - sendNftAppId: 458971166, - algodPort: 443, - }, - fuseParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FUSE), - erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", - erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", - minter_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", - nonce: Chain.FUSE, - }, - tezosParams: { - bridgeAddress: "KT1B2zBPLVe51oXeuBJ8c7p2vHhi37jGxGHR", - middlewareUri: middleware_uri, - Tezos: new TezosToolkit(MainNetRpcUri.TEZOS), - xpnftAddress: "KT1FxthB8GQvT7HnuczSp1qJk4w7dR5umKrx", - validators: [ - "tz1bxXSUcu1PqceWBw1zwc4zMRQuSLpbQ5VX", - "tz1VBF2LXnnnqKqKmTQqdESGx91kVLKyZMv4", - "tz1hMBJzUouzXYRk3mpdVi2QHY2gP594Kk2G", - ], - }, - velasParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), - erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", - erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", - minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", - nonce: Chain.VELAS, - }, - iotexParams: { - middleware_uri, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), - minter_addr: "0x0E99a77fedf8D1Eb783078D1Aa84160a5CBE96D7", - erc721_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", - erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", - erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - nonce: Chain.IOTEX, - }, - }); + export const MainNet: () => Partial = () => { + const notifier = evNotifier(middleware_uri) + return { + elrondParams: { + node_uri: MainNetRpcUri.ELROND, + minter_address: "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", + esdt_swap_address: "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", + esdt_nft: "XPNFT-cb7482", + esdt_swap: "WEGLD-5f1f8d", + notifier, + nonce: Chain.ELROND, + }, + tronParams: { + provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), + notifier, + minter_addr: "TMx1nCzbK7tbBinLh29CewahpbR1k64c8E", + erc721_addr: "TRON", + nonce: Chain.TRON, + validators: EVM_VALIDATORS, + }, + avalancheParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), + erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", + erc1155Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", + erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + nonce: Chain.AVALANCHE, + }, + polygonParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), + erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", + erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", + nonce: Chain.POLYGON, + }, + fantomParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), + erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", + minter_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", + nonce: Chain.FANTOM, + }, + bscParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), + erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", + erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", + erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + nonce: Chain.BSC, + }, + celoParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), + minter_addr: "string", + erc721_addr: "string", + erc1155Minter: "string", + erc721Minter: "string", + nonce: Chain.CELO, + }, + harmonyParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), + minter_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", + erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc1155Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + nonce: Chain.HARMONY, + }, + ropstenParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), + minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", + nonce: Chain.ETHEREUM, + }, + xDaiParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), + erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", + erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", + erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + nonce: Chain.XDAI, + }, + algorandParams: { + algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodUri: "https://algorand-node.xp.network/", + nonce: Chain.ALGORAND, + sendNftAppId: 458971166, + algodPort: 443, + }, + fuseParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FUSE), + erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", + minter_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", + nonce: Chain.FUSE, + }, + tezosParams: { + bridgeAddress: "KT1B2zBPLVe51oXeuBJ8c7p2vHhi37jGxGHR", + notifier, + Tezos: new TezosToolkit(MainNetRpcUri.TEZOS), + xpnftAddress: "KT1FxthB8GQvT7HnuczSp1qJk4w7dR5umKrx", + validators: [ + "tz1bxXSUcu1PqceWBw1zwc4zMRQuSLpbQ5VX", + "tz1VBF2LXnnnqKqKmTQqdESGx91kVLKyZMv4", + "tz1hMBJzUouzXYRk3mpdVi2QHY2gP594Kk2G", + ], + }, + velasParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), + erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", + minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", + nonce: Chain.VELAS, + }, + iotexParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), + minter_addr: "0x0E99a77fedf8D1Eb783078D1Aa84160a5CBE96D7", + erc721_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", + erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", + erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + nonce: Chain.IOTEX, + }, + }; + }; } diff --git a/src/factory/index.ts b/src/factory/index.ts index adcb420d3..7c4c3a286 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -70,9 +70,7 @@ type FullChainBatch = FullChain & export type ChainFactory = { /** * Creates an helper factory for a given chain - * @type T: Either {@link ElrondHelper} | {@link Web3Helper} | {@link TronHelper} as required. - * @type P: Either {@link ElrondParams} | {@link Web3Params} | {@link TronParams} as required. - * @param chain: {@link Chain} to create the helper for. + * @param chain: {@link ChainNonce} to create the helper for. */ inner(chain: T): Promise>; /** diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 76fa511b7..8a6028598 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -50,6 +50,7 @@ import { ValidateAddress, } from ".."; import { NftMintArgs } from ".."; +import { EvNotifier } from "../notifier"; type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; @@ -229,6 +230,7 @@ export type ElrondHelper = BalanceCheck & */ export interface ElrondParams { node_uri: string; + notifier: EvNotifier; minter_address: string; esdt_swap_address: string; esdt_nft: string; @@ -252,6 +254,10 @@ export async function elrondHelperFactory( networkConfig.MinGasPrice.valueOf() * networkConfig.GasPriceModifier.valueOf(); + async function notifyValidator(hash: TransactionHash) { + await elrondParams.notifier.notifyElrond(hash.toString()); + } + const syncAccount = async (signer: ElrondSigner) => { const account = new Account(await getAddress(signer)); await account.sync(provider); @@ -587,6 +593,8 @@ export async function elrondHelperFactory( mintWith ); const tx = await signAndSend(sender, txu); + transactionResult(tx.getHash()) + .then(() => notifyValidator(tx.getHash())) return tx; }, @@ -605,6 +613,8 @@ export async function elrondHelperFactory( nonce ); const tx = await signAndSend(sender, txu); + transactionResult(tx.getHash()) + .then(() => notifyValidator(tx.getHash())) return tx; }, @@ -728,6 +738,9 @@ export async function elrondHelperFactory( .build(), }); const tx = await signAndSend(sender, txu); + transactionResult(tx.getHash()) + .then(() => notifyValidator(tx.getHash())) + return tx; }, async transferNftBatchToForeign( @@ -764,6 +777,9 @@ export async function elrondHelperFactory( .build(), }); const tx = await signAndSend(sender, txu); + transactionResult(tx.getHash()) + .then(() => notifyValidator(tx.getHash())) + return tx; }, async estimateValidateTransferNftBatch(_, nfts) { diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 40920ce76..96b9558db 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -28,6 +28,7 @@ import { import * as utils from "@taquito/utils"; import BigNumber from "bignumber.js"; import axios from "axios"; +import { EvNotifier } from "../notifier"; type TezosSigner = WalletProvider | Signer; @@ -61,7 +62,7 @@ export type TezosHelper = TransferNftForeign< export type TezosParams = { Tezos: TezosToolkit; - middlewareUri: string; + notifier: EvNotifier; xpnftAddress: string; bridgeAddress: string; validators: string[]; @@ -69,18 +70,11 @@ export type TezosParams = { export async function tezosHelperFactory({ Tezos, - middlewareUri, + notifier, xpnftAddress, bridgeAddress, validators, }: TezosParams): Promise { - const event_middleware = axios.create({ - baseURL: middlewareUri, - headers: { - "Content-Type": "application/json", - }, - }); - const estimateGas = (validators: string[], baseprice: number) => { return new BigNumber(baseprice * (validators.length + 1)); }; @@ -173,9 +167,7 @@ export async function tezosHelperFactory({ } async function notifyValidator(hash: string): Promise { - await event_middleware.post("/tx/tezos", { - tx_hash: hash, - }); + await notifier.notifyTezos(hash); } async function preTransfer(signer: TezosSigner, nft: NftInfo) { diff --git a/src/helpers/thor.ts b/src/helpers/thor.ts index 69429cf8c..8451955cc 100644 --- a/src/helpers/thor.ts +++ b/src/helpers/thor.ts @@ -39,7 +39,7 @@ import { } from ".."; import { NftMintArgs } from ".."; import { BigNumber as EthBN } from "ethers"; -import axios from "axios"; +import { EvNotifier } from "../notifier"; /** * Information required to perform NFT transfers in this chain @@ -176,7 +176,7 @@ export async function baseWeb3HelperFactory( */ export interface Web3Params { provider: Provider; - middleware_uri: string; + notifier: EvNotifier; minter_addr: string; erc721_addr: string; validators: string[]; @@ -190,18 +190,8 @@ export async function web3HelperFactory( const { minter_addr, provider } = params; const minter = new Contract(minter_addr, Minter__factory.abi, provider); - const event_middleware = axios.create({ - baseURL: params.middleware_uri, - headers: { - "Content-Type": "application/json", - }, - }); - async function notifyValidator(hash: string): Promise { - await event_middleware.post("/tx/web3", { - chain_nonce: params.nonce, - tx_hash: hash, - }); + await params.notifier.notifyWeb3(params.nonce, hash); } async function extractAction(txr: TransactionResponse): Promise { diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index a9d798225..30ea6d726 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -7,7 +7,6 @@ import { UnfreezeForeignNft, } from "./chain"; -import axios from "axios"; // @ts-expect-error no types cope import { TronWeb } from "tronweb"; // @ts-expect-error no types cope @@ -36,6 +35,7 @@ import { } from ".."; import { ChainNonceGet, NftInfo } from ".."; import { Transaction } from "ethers"; +import { EvNotifier } from "../notifier"; // Uses default private key in provider if sender is undefinedd type TronSender = string | undefined; @@ -191,7 +191,7 @@ export async function baseTronHelperFactory( export interface TronParams { provider: TronWeb; - middleware_uri: string; + notifier: EvNotifier; minter_addr: string; erc721_addr: string; validators: string[]; @@ -228,19 +228,13 @@ export async function tronHelperFactory( const station = new TronStation(provider); const base = await baseTronHelperFactory(provider); const minter = await provider.contract(Minter__factory.abi, minter_addr); - const event_middleware = axios.create({ - baseURL: tronParams.middleware_uri, - headers: { - "Content-Type": "application/json", - }, - }); const setSigner = (signer: TronSender) => { return signer && provider.setPrivateKey(signer); }; async function notifyValidator(hash: string): Promise { - await event_middleware.post("/tx/tron", { tx_hash: hash }); + await tronParams.notifier.notifyTron(hash); } async function extractAction(hash: string): Promise { diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 83cf99de6..a4262a503 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -44,8 +44,8 @@ import { WhitelistCheck, } from ".."; import { NftMintArgs } from ".."; -import axios from "axios"; import { ChainNonce } from "../type-utils"; +import { EvNotifier } from "../notifier"; /** * Information required to perform NFT transfers in this chain */ @@ -189,7 +189,7 @@ export async function baseWeb3HelperFactory( */ export interface Web3Params { provider: Provider; - middleware_uri: string; + notifier: EvNotifier; minter_addr: string; erc721_addr: string; erc721Minter: string; @@ -254,18 +254,8 @@ export async function web3HelperFactory( const { minter_addr, provider } = params; const minter = Minter__factory.connect(minter_addr, provider); - const event_middleware = axios.create({ - baseURL: params.middleware_uri, - headers: { - "Content-Type": "application/json", - }, - }); - async function notifyValidator(hash: string): Promise { - await event_middleware.post("/tx/web3", { - chain_nonce: params.nonce, - tx_hash: hash, - }); + await params.notifier.notifyWeb3(params.nonce, hash); } async function extractAction(txr: TransactionResponse): Promise { diff --git a/src/index.ts b/src/index.ts index 9e14780e5..02a257f9e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,3 +6,4 @@ export * from "./socket"; export * from "./factory"; export * from "./consts"; export * from "./config"; +export { ChainNonce } from "./type-utils"; diff --git a/src/notifier/index.ts b/src/notifier/index.ts new file mode 100644 index 000000000..1eee422a8 --- /dev/null +++ b/src/notifier/index.ts @@ -0,0 +1,34 @@ +import axios from "axios"; + + +export type EvNotifier = ReturnType; + +export function evNotifier(url: string) { + const api = axios.create({ + baseURL: url + }); + + return { + async notifyWeb3(chainNonce: number, txHash: string) { + await api.post("/tx/web3", { + chain_nonce: chainNonce, + tx_hash: txHash + }); + }, + async notifyTron(txHash: string) { + await api.post("/tx/tron", { + tx_hash: txHash + }); + }, + async notifyElrond(txHash: string) { + await api.post("/tx/elrond", { + tx_hash: txHash + }); + }, + async notifyTezos(txHash: string) { + await api.post("/tx/tezos", { + tx_hash: txHash + }); + } + } +} \ No newline at end of file From 7cd26e2f6a2b218b680b83d2f1b18827cf98deb3 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 25 Feb 2022 00:39:43 +0530 Subject: [PATCH 374/956] consts: add type mapping for aurora --- src/consts.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 2da764238..f9dd5e2ca 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -83,7 +83,8 @@ export type MetaMap = { 0x11: Web3Meta, 0x12: TezosMeta, 0x13: Web3Meta, - 0x14: Web3Meta + 0x14: Web3Meta, + 0x15: Web3Meta } & MetaMapAssert; export namespace Chain { From 3c943ed1cfa1ec6955f6bd842ea0755755123fe4 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 25 Feb 2022 01:05:42 +0530 Subject: [PATCH 375/956] consts: add info mappings for aurora --- src/consts.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index f9dd5e2ca..ba449e6d9 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -274,6 +274,15 @@ CHAIN_INFO.set(Chain.VELAS, { constructor: web3HelperFactory, currency: SupportedCurrency.VLX, chainId: 111, +}); +CHAIN_INFO.set(Chain.AURORA, { + name: "Aurora", + blockExplorerUrl: "https://testnet.aurorascan.dev/tx", + nonce: Chain.AURORA, + decimals: 1e18, + constructor: web3HelperFactory, + currency: SupportedCurrency.AURORA, + chainId: 1313161555 }) CHAIN_INFO.set(Chain.IOTEX, { name: "IoTeX", From 7af7b9614b0fa4d6f783207154bcaa3426e8584f Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 25 Feb 2022 01:32:46 +0530 Subject: [PATCH 376/956] elrond: wait to notify validator before returning --- src/helpers/elrond.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 8a6028598..c457324ee 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -593,8 +593,8 @@ export async function elrondHelperFactory( mintWith ); const tx = await signAndSend(sender, txu); - transactionResult(tx.getHash()) - .then(() => notifyValidator(tx.getHash())) + await transactionResult(tx.getHash()); + await notifyValidator(tx.getHash()); return tx; }, @@ -613,8 +613,8 @@ export async function elrondHelperFactory( nonce ); const tx = await signAndSend(sender, txu); - transactionResult(tx.getHash()) - .then(() => notifyValidator(tx.getHash())) + await transactionResult(tx.getHash()); + await notifyValidator(tx.getHash()); return tx; }, @@ -738,8 +738,8 @@ export async function elrondHelperFactory( .build(), }); const tx = await signAndSend(sender, txu); - transactionResult(tx.getHash()) - .then(() => notifyValidator(tx.getHash())) + await transactionResult(tx.getHash()); + await notifyValidator(tx.getHash()); return tx; }, @@ -777,8 +777,8 @@ export async function elrondHelperFactory( .build(), }); const tx = await signAndSend(sender, txu); - transactionResult(tx.getHash()) - .then(() => notifyValidator(tx.getHash())) + await transactionResult(tx.getHash()); + await notifyValidator(tx.getHash()); return tx; }, From 0ab157a88acb0ddfe390fdb23fa841872e72996d Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 25 Feb 2022 02:30:23 +0530 Subject: [PATCH 377/956] helpers: elrond: wait for confirmation before notifying --- src/helpers/elrond.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index c457324ee..3c8ccc30a 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -254,8 +254,10 @@ export async function elrondHelperFactory( networkConfig.MinGasPrice.valueOf() * networkConfig.GasPriceModifier.valueOf(); - async function notifyValidator(hash: TransactionHash) { - await elrondParams.notifier.notifyElrond(hash.toString()); + async function notifyValidator(txn: Transaction) { + await transactionResult(txn.getHash()); + await txn.awaitNotarized(provider) + await elrondParams.notifier.notifyElrond(txn.getHash().toString()); } const syncAccount = async (signer: ElrondSigner) => { @@ -593,8 +595,7 @@ export async function elrondHelperFactory( mintWith ); const tx = await signAndSend(sender, txu); - await transactionResult(tx.getHash()); - await notifyValidator(tx.getHash()); + await notifyValidator(tx); return tx; }, @@ -613,8 +614,7 @@ export async function elrondHelperFactory( nonce ); const tx = await signAndSend(sender, txu); - await transactionResult(tx.getHash()); - await notifyValidator(tx.getHash()); + await notifyValidator(tx); return tx; }, @@ -738,8 +738,7 @@ export async function elrondHelperFactory( .build(), }); const tx = await signAndSend(sender, txu); - await transactionResult(tx.getHash()); - await notifyValidator(tx.getHash()); + await notifyValidator(tx); return tx; }, @@ -777,8 +776,7 @@ export async function elrondHelperFactory( .build(), }); const tx = await signAndSend(sender, txu); - await transactionResult(tx.getHash()); - await notifyValidator(tx.getHash()); + await notifyValidator(tx); return tx; }, From 15d4b5381a5f929616a64dab4496b3c09c6dd3c8 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 25 Feb 2022 02:36:10 +0530 Subject: [PATCH 378/956] helpers: elrond: stop waiting for confirmation --- src/helpers/elrond.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 3c8ccc30a..1a4049fe0 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -255,8 +255,6 @@ export async function elrondHelperFactory( networkConfig.GasPriceModifier.valueOf(); async function notifyValidator(txn: Transaction) { - await transactionResult(txn.getHash()); - await txn.awaitNotarized(provider) await elrondParams.notifier.notifyElrond(txn.getHash().toString()); } From 37aa02ab6a1e6845643598f6a15b79e63c59f56f Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Sun, 27 Feb 2022 11:27:39 +0200 Subject: [PATCH 379/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 46425d3bf..353d9fa58 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -243,9 +243,9 @@ export namespace ChainFactoryConfigs { harmonyParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), - minter_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", - erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - erc1155Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + minter_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc721_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", nonce: Chain.HARMONY, }, From b889f7426c4184af2a762e813d18dde2ed801fef Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 27 Feb 2022 14:57:23 +0530 Subject: [PATCH 380/956] factory: checkWhitelist: return true if nft is wrapped --- src/factory/index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 7c4c3a286..a180ec972 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -620,8 +620,12 @@ export function ChainFactory( const algo: AlgorandHelper = await inner(Chain.ALGORAND); return await algo.claimableNfts(txSocket, claimer); }, - checkWhitelist(chain, nft) { - return chain.isNftWhitelisted ? chain.isNftWhitelisted(nft) : Promise.resolve(true); + async checkWhitelist(chain, nft) { + if (!chain.isNftWhitelisted || await isWrappedNft(nft)) { + return true; + } + + return await chain.isNftWhitelisted(nft); } }; } From fba70db02f4c49af85980482406d829f81e51d5c Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Sun, 27 Feb 2022 13:30:12 +0200 Subject: [PATCH 381/956] Update factories.ts --- src/factory/factories.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 353d9fa58..96767547b 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -245,6 +245,7 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), minter_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", erc721_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc1155_addr: "0xF547002799955812378137FA30C21039E69deF05", erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", nonce: Chain.HARMONY, From 793ce37e5cf0436e15f3ac8f4332c2808e70ba7e Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Sun, 27 Feb 2022 15:12:42 +0200 Subject: [PATCH 382/956] Update consts.ts --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index ba449e6d9..94fd3bcf4 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -47,7 +47,7 @@ export enum MainNetRpcUri { FANTOM = "https://rpc.ftm.tools/", TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", - HARMONY = "https://api.harmony.one", + HARMONY = "https://rpc.s0.t.hmny.io", XDAI = "https://rpc.xdaichain.com/", FUSE = "https://rpc.fuse.io/", VELAS = "https://mainnet.velas.com/rpc", From 27e246c508b730a8b983c5e5a4bb1b3890821254 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 28 Feb 2022 17:49:40 +0530 Subject: [PATCH 383/956] helpers: web3: modify EstimateTxn types --- src/helpers/web3.ts | 35 ++++++++++------------------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index a4262a503..5f6d777bf 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -110,27 +110,11 @@ export type BaseWeb3Helper = BalanceCheck & * Traits implemented by this module */ export type Web3Helper = BaseWeb3Helper & - TransferNftForeign< - Signer, - EthNftInfo, - TransactionResponse - > & - UnfreezeForeignNft< - Signer, - EthNftInfo, - TransactionResponse - > & - TransferNftForeignBatch< - Signer, - EthNftInfo, - TransactionResponse - > & - UnfreezeForeignNftBatch< - Signer, - EthNftInfo, - TransactionResponse - > & - EstimateTxFees & + TransferNftForeign & + UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFees & EstimateTxFeesBatch & ChainNonceGet & IsApproved & @@ -141,8 +125,9 @@ export type Web3Helper = BaseWeb3Helper & } & Pick, "preTransfer"> & PreTransferRawTxn & ExtractTxnStatus & - GetProvider & { XpNft: string } & - WhitelistCheck; + GetProvider & { + XpNft: string; + } & WhitelistCheck; /** * Create an object implementing minimal utilities for a web3 chain @@ -453,7 +438,7 @@ export async function web3HelperFactory( }, async estimateValidateTransferNft( _to: string, - _nftUri: NftInfo, + _nftUri: NftInfo, _mintWith ): Promise { const gas = await provider.getGasPrice(); @@ -464,6 +449,6 @@ export async function web3HelperFactory( }, isNftWhitelisted(nft) { return minter.nftWhitelist(nft.native.contract); - } + }, }; } From 3878fdb1792c8c3765defd9b2fc0602056d75f78 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 28 Feb 2022 17:53:06 +0530 Subject: [PATCH 384/956] xpjs: yarn format --- README.md | 600 ++++++++++++++++++++------------------- src/consts.ts | 232 +++++++-------- src/factory/cons.ts | 4 +- src/factory/factories.ts | 22 +- src/factory/index.ts | 55 ++-- src/helpers/chain.ts | 35 +-- src/helpers/elrond.ts | 53 ++-- src/helpers/thor.ts | 21 +- src/helpers/tron.ts | 6 +- src/notifier/index.ts | 55 ++-- src/socket.ts | 32 ++- src/type-utils.ts | 14 +- 12 files changed, 579 insertions(+), 550 deletions(-) diff --git a/README.md b/README.md index b0df745bf..55d0dbeb6 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ ### Work In Progress / Alpha Stage Library +
Bridging steps:
@@ -30,6 +31,7 @@ Bridging steps:

## To list and transfer NFTs, follow the steps below: +

@@ -37,6 +39,7 @@ Make sure [nodejs](https://nodejs.org/en/download/) is installed on your machine
### 1. Install the libraries required for the project: +
```bash @@ -61,11 +64,15 @@ yarn add "git+https://github.com/xp-network/xpjs#master-dist" @elrondnetwork/erd ```javascript import { - ChainFactoryConfigs, ChainFactory, - ElrondHelper, ElrondParams, - TronHelper, TronParams, - Web3Helper, Web3Params, - typedAlgoSigner + ChainFactoryConfigs, + ChainFactory, + ElrondHelper, + ElrondParams, + TronHelper, + TronParams, + Web3Helper, + Web3Params, + typedAlgoSigner, } from "xp.network/dist"; // Chanin name to chain nonce mapper: @@ -88,21 +95,22 @@ const factory = ChainFactory(Config, testnetConfig);
-| Chain | Parameters | -|:-----:|:-----:| -| Elrond | elrondParams | -| BSC | bscParams | -| Ethereum | ropstenParams | +| Chain | Parameters | +| :-------: | :-------------: | +| Elrond | elrondParams | +| BSC | bscParams | +| Ethereum | ropstenParams | | Avalanche | avalancheParams | -| Polygon | polygonParams | -| Fantom | fantomParams | -| Tron | tronParams | -| xDai | xDaiParams | -| Harmony | harmonyParams | +| Polygon | polygonParams | +| Fantom | fantomParams | +| Tron | tronParams | +| xDai | xDaiParams | +| Harmony | harmonyParams |
### 3.1 Example of getting the signer object (for manual EVM testing in the BE) + Avoid using 3.1 setup in production. Use it for initial or backend testing only.
@@ -115,26 +123,31 @@ const signer = new Wallet( mainnetConfig.polygonParams?.provider ); ``` +
### 3.2 Example of getting the signer object (in the FE for web3):

```typescript // EVM chains compatible signer: -import ethers from 'ethers'; -const signer = (new ethers.providers.Web3Provider(window.ethereum)).getSigner(); +import ethers from "ethers"; +const signer = new ethers.providers.Web3Provider(window.ethereum).getSigner(); ``` +
### 3.3 Example of getting the signer object (in the FE for Elrond):

+ ```typescript // ELROND provider: import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; const elrondSigner = ExtensionProvider.getInstance(); ``` +
### 3.4 Example of getting the signer object (in the FE for Tron):

+ ```typescript // Address is fetched from tronweb (async () => { @@ -146,12 +159,14 @@ const elrondSigner = ExtensionProvider.getInstance(); ``` ### 3.5 Example of getting the signer object (in the FE for Algorand):

+ ```typescript // Use the typedAlgoSigner function to get access to the Algorand signer const algorandSigner = typedAlgoSigner(); ``` ### 3.6 Example of getting the signer object (in the FE for Tezos):

+ ```typescript import { TempleWallet } from "@temple-wallet/dapp"; (async () => { @@ -176,21 +191,21 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor (async () => { // EVM-compatible chains: // Inner Object ====================== Chain Nonce == - const ethereum = await factory.inner(Chain.ETHEREUM); - const bsc = await factory.inner(Chain.BSC); - const polygon = await factory.inner(Chain.POLYGON); - const avax = await factory.inner(Chain.AVALANCHE); - const fantom = await factory.inner(Chain.FANTOM); - const velas = await factory.inner(Chain.VELAS); - const gnosis = await factory.inner(Chain.XDAI); - const harmony = await factory.inner(Chain.HARMONY); + const ethereum = await factory.inner(Chain.ETHEREUM); + const bsc = await factory.inner(Chain.BSC); + const polygon = await factory.inner(Chain.POLYGON); + const avax = await factory.inner(Chain.AVALANCHE); + const fantom = await factory.inner(Chain.FANTOM); + const velas = await factory.inner(Chain.VELAS); + const gnosis = await factory.inner(Chain.XDAI); + const harmony = await factory.inner(Chain.HARMONY); // Non-EVM chains: // Inner Object ====================== Chain Nonce == - const algorand = await factory.inner(Chain.ALGORAND); - const elrond = await factory.inner(Chain.ELROND); - const tezos = await factory.inner(Chain.TEZOS); - const tron = await factory.inner(Chain.TRON); + const algorand = await factory.inner(Chain.ALGORAND); + const elrond = await factory.inner(Chain.ELROND); + const tezos = await factory.inner(Chain.TEZOS); + const tron = await factory.inner(Chain.TRON); })(); ``` @@ -203,47 +218,45 @@ This operation does not depend on a wallet since reading operations are free and ```javascript (async () => { - // EVM: const web3Nfts = await factory.nftList( - harmony, // The chain of interest - "0x...." // The public key of the NFT owner in a web3 chain + harmony, // The chain of interest + "0x...." // The public key of the NFT owner in a web3 chain ); // Elrond: const elrondNfts = await factory.nftList( - elrond, // The chain of interest - "erd1...." // The public key of the NFT owner in Elrond + elrond, // The chain of interest + "erd1...." // The public key of the NFT owner in Elrond ); // Tron: const tronNfts = await factory.nftList( - tron, // The chain of interest - "TJuG..." // The public key of the NFT owner in Tron + tron, // The chain of interest + "TJuG..." // The public key of the NFT owner in Tron ); // Algorand: const algoNfts = factory.nftList( - algorand, // Algorand chain internal object - "PUPTH..." // The public key of the NFT owner in Algorand + algorand, // Algorand chain internal object + "PUPTH..." // The public key of the NFT owner in Algorand ); // Tezos: const tezosNfts = await factory.nftList( - tezos, // Tezos chain internal object - "tz1..." // The public key of the NFT owner in Tezos + tezos, // Tezos chain internal object + "tz1..." // The public key of the NFT owner in Tezos ); - })(); ``` ```javascript // Choosing an NFT to transfer: -const web3ChosenOne = web3Nfts[0]; -const elrondChosenOne = elrondNfts[0]; -const tronChosenOne = tronNfts[0]; -const algoChosenOne = algoNfts[0]; -const tezosChosenOne = tezosNfts[0]; +const web3ChosenOne = web3Nfts[0]; +const elrondChosenOne = elrondNfts[0]; +const tronChosenOne = tronNfts[0]; +const algoChosenOne = algoNfts[0]; +const tezosChosenOne = tezosNfts[0]; // Checking the selected NFT object console.log("EVM Selected NFT: ", web3ChosenOne); @@ -254,78 +267,79 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); ``` ### 5.2 Example of console logged native BSC NFT object: + ```json { - "boosterId": 10000000788939, - "id": "10002366816", - "txHash": "0x37c9b7c54ac05d5e00dd5cff06722fb67bed91ec91732875071f74bce8752e41", - "randomNumber": "0x1459a03e3d7a5510023e7385d438508d725dd19de2237c6c1d79a9883b6dc0b3", - "image": "https://assets.polkamon.com/images/Unimons_T02C03H06B04G00.jpg", - "external_url": "https://polkamon.com/polkamon/T02C03H06B04G00", - "description": "The Unifairy are the most magical and fairest of Polkamon. Their wings stretch into the realms beyond this world, enchanting those around her by her unique disposition.", - "name": "Unifairy", - "initialProbabilities": { - "horn": 0.2, - "color": 0.25, - "background": 1, - "glitter": 0.99, - "type": 0.135 + "boosterId": 10000000788939, + "id": "10002366816", + "txHash": "0x37c9b7c54ac05d5e00dd5cff06722fb67bed91ec91732875071f74bce8752e41", + "randomNumber": "0x1459a03e3d7a5510023e7385d438508d725dd19de2237c6c1d79a9883b6dc0b3", + "image": "https://assets.polkamon.com/images/Unimons_T02C03H06B04G00.jpg", + "external_url": "https://polkamon.com/polkamon/T02C03H06B04G00", + "description": "The Unifairy are the most magical and fairest of Polkamon. Their wings stretch into the realms beyond this world, enchanting those around her by her unique disposition.", + "name": "Unifairy", + "initialProbabilities": { + "horn": 0.2, + "color": 0.25, + "background": 1, + "glitter": 0.99, + "type": 0.135 + }, + "attributes": [ + { + "trait_type": "Type", + "value": "Unifairy" }, - "attributes": [ - { - "trait_type": "Type", - "value": "Unifairy" - }, - { - "trait_type": "Horn", - "value": "Spiral Horn" - }, - { - "trait_type": "Color", - "value": "Blue" - }, - { - "trait_type": "Background", - "value": "Mountain Range" - }, - { - "trait_type": "Opening Network", - "value": "Binance Smart Chain" - }, - { - "trait_type": "Glitter", - "value": "No" - }, - { - "trait_type": "Special", - "value": "No" - }, - { - "display_type": "date", - "trait_type": "Birthday", - "value": 1633650473 - }, - { - "display_type": "number", - "trait_type": "Booster", - "value": 10000000788939 - } - ], - "opening_network": "Binance Smart Chain", - "background_color": "FFFFFF", - "animation_url": "https://assets.polkamon.com/videos/Unimons_T02C03H06B04G00.mp4", - "code": "T02C03H06B04G00", - "uri": "https://meta.polkamon.com/meta?id=10002366816", - "native": { - "chainId": "4", - "tokenId": "10002366816", - "owner": "0x0d7df42014064a163DfDA404253fa9f6883b9187", - "contract": "0x85f0e02cb992aa1f9f47112f815f519ef1a59e2d", - "symbol": "PMONC", - "name": "PolkamonOfficialCollection", - "uri": "https://meta.polkamon.com/meta?id=10002366816", - "contractType": "ERC721" + { + "trait_type": "Horn", + "value": "Spiral Horn" + }, + { + "trait_type": "Color", + "value": "Blue" + }, + { + "trait_type": "Background", + "value": "Mountain Range" + }, + { + "trait_type": "Opening Network", + "value": "Binance Smart Chain" + }, + { + "trait_type": "Glitter", + "value": "No" + }, + { + "trait_type": "Special", + "value": "No" + }, + { + "display_type": "date", + "trait_type": "Birthday", + "value": 1633650473 + }, + { + "display_type": "number", + "trait_type": "Booster", + "value": 10000000788939 } + ], + "opening_network": "Binance Smart Chain", + "background_color": "FFFFFF", + "animation_url": "https://assets.polkamon.com/videos/Unimons_T02C03H06B04G00.mp4", + "code": "T02C03H06B04G00", + "uri": "https://meta.polkamon.com/meta?id=10002366816", + "native": { + "chainId": "4", + "tokenId": "10002366816", + "owner": "0x0d7df42014064a163DfDA404253fa9f6883b9187", + "contract": "0x85f0e02cb992aa1f9f47112f815f519ef1a59e2d", + "symbol": "PMONC", + "name": "PolkamonOfficialCollection", + "uri": "https://meta.polkamon.com/meta?id=10002366816", + "contractType": "ERC721" + } } ``` @@ -333,81 +347,81 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); ```json [ - { - "name": "Unifairy", - "description": "The Unifairy are the most magical and fairest of Polkamon. Their wings stretch into the realms beyond this world, enchanting those around her by her unique disposition.", - "image": "https://assets.polkamon.com/images/Unimons_T02C03H06B04G00.jpg", - "animation_url": "https://assets.polkamon.com/videos/Unimons_T02C03H06B04G00.mp4", - "wrapped": { - "contract": "0x85F0e02cb992aa1F9F47112F815F519EF1A59E2D", - "tokenId": "10002366816", - "origin": "4", - "original_uri": "https://meta.polkamon.com/meta?id=10002366816" - }, - "attributes": [ - { - "trait_type": "Original Chain", - "value": "BSC" - }, - { - "trait_type": "Original Chain Nonce", - "value": "4" - }, - { - "trait_type": "Original URI", - "value": "https://meta.polkamon.com/meta?id=10002366816" - }, - { - "trait_type": "Type", - "value": "Unifairy" - }, - { - "trait_type": "Horn", - "value": "Spiral Horn" - }, - { - "trait_type": "Color", - "value": "Blue" - }, - { - "trait_type": "Background", - "value": "Mountain Range" - }, - { - "trait_type": "Opening Network", - "value": "Binance Smart Chain" - }, - { - "trait_type": "Glitter", - "value": "No" - }, - { - "trait_type": "Special", - "value": "No" - }, - { - "display_type": "date", - "trait_type": "Birthday", - "value": 1633650473 - }, - { - "display_type": "number", - "trait_type": "Booster", - "value": 10000000788939 - } - ], - "uri": "https://wnfts.xp.network/w/61b8adae4298fe05d7a48962", - "native": { - "chainId": "19", - "tokenId": "17", - "owner": "0x0d7df42014064a163DfDA404253fa9f6883b9187", - "contract": "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", - "symbol": "XPNFT", - "name": "XpWrapNft", - "uri": "https://wnfts.xp.network/w/61b8adae4298fe05d7a48962", - "contractType": "ERC721" - } + { + "name": "Unifairy", + "description": "The Unifairy are the most magical and fairest of Polkamon. Their wings stretch into the realms beyond this world, enchanting those around her by her unique disposition.", + "image": "https://assets.polkamon.com/images/Unimons_T02C03H06B04G00.jpg", + "animation_url": "https://assets.polkamon.com/videos/Unimons_T02C03H06B04G00.mp4", + "wrapped": { + "contract": "0x85F0e02cb992aa1F9F47112F815F519EF1A59E2D", + "tokenId": "10002366816", + "origin": "4", + "original_uri": "https://meta.polkamon.com/meta?id=10002366816" + }, + "attributes": [ + { + "trait_type": "Original Chain", + "value": "BSC" + }, + { + "trait_type": "Original Chain Nonce", + "value": "4" + }, + { + "trait_type": "Original URI", + "value": "https://meta.polkamon.com/meta?id=10002366816" + }, + { + "trait_type": "Type", + "value": "Unifairy" + }, + { + "trait_type": "Horn", + "value": "Spiral Horn" + }, + { + "trait_type": "Color", + "value": "Blue" + }, + { + "trait_type": "Background", + "value": "Mountain Range" + }, + { + "trait_type": "Opening Network", + "value": "Binance Smart Chain" + }, + { + "trait_type": "Glitter", + "value": "No" + }, + { + "trait_type": "Special", + "value": "No" + }, + { + "display_type": "date", + "trait_type": "Birthday", + "value": 1633650473 + }, + { + "display_type": "number", + "trait_type": "Booster", + "value": 10000000788939 + } + ], + "uri": "https://wnfts.xp.network/w/61b8adae4298fe05d7a48962", + "native": { + "chainId": "19", + "tokenId": "17", + "owner": "0x0d7df42014064a163DfDA404253fa9f6883b9187", + "contract": "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", + "symbol": "XPNFT", + "name": "XpWrapNft", + "uri": "https://wnfts.xp.network/w/61b8adae4298fe05d7a48962", + "contractType": "ERC721" } + } ] ``` @@ -422,19 +436,31 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); console.log("Is Approved in an EVM:", isApprovedEVM); // Elrond example - const isApprovedElrond = await elrond.approveForMinter(elrondChosenOne, elrondSigner); + const isApprovedElrond = await elrond.approveForMinter( + elrondChosenOne, + elrondSigner + ); console.log("Is Approved in Elrond:", isApprovedElrond); // Tron example - const isApprovedTron = await elrond.approveForMinter(tronChosenOne, tronSigner); + const isApprovedTron = await elrond.approveForMinter( + tronChosenOne, + tronSigner + ); console.log("Is Approved in Tron:", isApprovedTron); // Algorand example - const isApprovedAlgorand = await algorand.approveForMinter(algoChosenOne, algorandSigner); + const isApprovedAlgorand = await algorand.approveForMinter( + algoChosenOne, + algorandSigner + ); console.log("Is Approved in Algorand:", isApprovedAlgorand); // Tezos example - const isApprovedTezos = await algorand.approveForMinter(tezosChosenOne, tezosSigner); + const isApprovedTezos = await algorand.approveForMinter( + tezosChosenOne, + tezosSigner + ); console.log("Is Approved in Tezos:", isApprovedTezos); })(); ``` @@ -447,51 +473,51 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); (async () => { // EVM compatible chains example: const web3Result = await factory.transferNft( - harmony, // The Source Chain. - bsc, // The Destination Chain. - theChosenOne, // The NFT object you have chosen from the list. - signer, // The web3 signer object (see p. 3.2 above). - "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. + harmony, // The Source Chain. + bsc, // The Destination Chain. + theChosenOne, // The NFT object you have chosen from the list. + signer, // The web3 signer object (see p. 3.2 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); console.log(web3Result); // Elrond example: const elrondResult = await factory.transferNft( - elrond, // The Source Chain. - tron, // The Destination Chain. - elrondChosenOne, // The NFT object you have chosen from the list. - elrondSigner, // The Elrond signer object (see p. 3.3 above). - "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. + elrond, // The Source Chain. + tron, // The Destination Chain. + elrondChosenOne, // The NFT object you have chosen from the list. + elrondSigner, // The Elrond signer object (see p. 3.3 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); console.log(elrondResult); // Tron example: const tronResult = await factory.transferNft( - tron, // The Source Chain. - elrond, // The Destination Chain. - tronChosenOne, // The NFT object you have chosen from the list. - tronSigner, // The Tron signer object (see p. 3.4 above). - "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. + tron, // The Source Chain. + elrond, // The Destination Chain. + tronChosenOne, // The NFT object you have chosen from the list. + tronSigner, // The Tron signer object (see p. 3.4 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); console.log(tronResult); // Algorand example: const algorandResult = await factory.transferNft( - algorand, // The Source Chain. - elrond, // The Destination Chain. - algoChosenOne, // The NFT object you have chosen from the list. - algorandSigner, // The Tron signer object (see p. 3.5 above). - "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. + algorand, // The Source Chain. + elrond, // The Destination Chain. + algoChosenOne, // The NFT object you have chosen from the list. + algorandSigner, // The Tron signer object (see p. 3.5 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); console.log(algorandResult); // Tezos example: const tezosResult = await factory.transferNft( - tezos, // The Source Chain. - velas, // The Destination Chain. - algoChosenOne, // Or the NFT object you have chosen from the list. - algorandSigner, // The Tron signer object (see p. 3.5 above). - "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. + tezos, // The Source Chain. + velas, // The Destination Chain. + algoChosenOne, // Or the NFT object you have chosen from the list. + algorandSigner, // The Tron signer object (see p. 3.5 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); console.log(tezosResult); })(); @@ -500,91 +526,95 @@ console.log("Tezos Selected NFT: ", tezosChosenOne);


## Minting NFTs on EVM chains, Elrond & Tron +
- Just call the mint function on the factory with suitable arguments. - +
- 1. For Web3 Chains: +1. For Web3 Chains: + +```javascript +(async () => { + // Web3Provider generally refers to a walletProvider like Metamask. + const receipt = await factory.mint( + avax, // The chain where to mint + signer, // The browser injected signer + { + // Could be an IPFS URL or Any URL that points to a Metadata + uris: [metadata.url], + // Description of your NFT. Can be an object. + attrs: description, + // A name that defines your NFT. + name: name, + // The contract with which you want to mint the NFT. + contract: "Can be fetched from the mainnetConfig or testnetConfig", + } + ); +})(); +``` - ```javascript - (async () => { - // Web3Provider generally refers to a walletProvider like Metamask. - const receipt = await factory.mint( - avax, // The chain where to mint - signer, // The browser injected signer - { - // Could be an IPFS URL or Any URL that points to a Metadata - uris: [metadata.url], - // Description of your NFT. Can be an object. - attrs: description, - // A name that defines your NFT. - name: name, - // The contract with which you want to mint the NFT. - contract: "Can be fetched from the mainnetConfig or testnetConfig", - } - ); - })(); - ```
- 2. For Elrond:
- - ```javascript - (async () => { - const receipt = await factory.mint( - elrond, // The chain where to mint - elrondSigner, // The browser injected signer - { - // Could be an IPFS URL or Any URL that points to a Metadata - uris: [metadata.url], - // Description of your NFT. Can be an object. - attrs: description, - // A name that defines your NFT. - name: name, - // The identifier with which you want to mint the NFT. You have to own this identifier. i.e. - identifier: "XPNFT-eda5d0-c5", - }); - })(); - ``` +2. For Elrond:
+ +```javascript +(async () => { + const receipt = await factory.mint( + elrond, // The chain where to mint + elrondSigner, // The browser injected signer + { + // Could be an IPFS URL or Any URL that points to a Metadata + uris: [metadata.url], + // Description of your NFT. Can be an object. + attrs: description, + // A name that defines your NFT. + name: name, + // The identifier with which you want to mint the NFT. You have to own this identifier. i.e. + identifier: "XPNFT-eda5d0-c5", + } + ); +})(); +``` +
- 3. For Tron: - - ```javascript - const receipt = await factory.mint(avax, tronSigner, { - // Could be an IPFS URL or Any URL that points to a Metadata - uris: [metadata.url], - // Description of your NFT. Can be an object. - attrs: description, - // A name that defines your NFT. - name: name, - // The contract with which you want to mint the NFT. - contract: "Can be fetched from the mainnetConfig or testnetConfig", - }); - ``` +3. For Tron: + +```javascript +const receipt = await factory.mint(avax, tronSigner, { + // Could be an IPFS URL or Any URL that points to a Metadata + uris: [metadata.url], + // Description of your NFT. Can be an object. + attrs: description, + // A name that defines your NFT. + name: name, + // The contract with which you want to mint the NFT. + contract: "Can be fetched from the mainnetConfig or testnetConfig", +}); +```
- P.S. The library is a work in progress. More features will be added soon. +P.S. The library is a work in progress. More features will be added soon.

- ## Estimating the transaction fee on the target chain - - ```typescript - (async () => { - const feeEstimation = await factory.estimateFees( - algorand, // The Source Chain. - tezos, // The Destination Chain. - algoChosenOne, // The NFT object you have chosen from the list. - "tz1..." // The public key of the NFT owner in Tezos - ); - console.log(`The estimated fee on Tezos is: ${feeEstimation} Algos`); - })(); - ``` +## Estimating the transaction fee on the target chain + +```typescript +(async () => { + const feeEstimation = await factory.estimateFees( + algorand, // The Source Chain. + tezos, // The Destination Chain. + algoChosenOne, // The NFT object you have chosen from the list. + "tz1..." // The public key of the NFT owner in Tezos + ); + console.log(`The estimated fee on Tezos is: ${feeEstimation} Algos`); +})(); +```
diff --git a/src/consts.ts b/src/consts.ts index 94fd3bcf4..d49249b70 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -63,28 +63,28 @@ type AlgoMeta = [AlgorandHelper, AlgorandParams]; type TezosMeta = [TezosHelper, TezosParams]; // Static Assert to Ensure all values of Chain are in MetaMap -type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown } +type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; export type MetaMap = { - 2: ElrondMeta, - 3: Web3Meta, - 4: Web3Meta, - 5: Web3Meta, - 6: Web3Meta, - 7: Web3Meta, - 8: Web3Meta, - 9: TronMeta, - 0xb: Web3Meta, - 0xc: Web3Meta, - 0xd: Web3Meta, - 0xe: Web3Meta, - 0xf: AlgoMeta, - 0x10: Web3Meta, - 0x11: Web3Meta, - 0x12: TezosMeta, - 0x13: Web3Meta, - 0x14: Web3Meta, - 0x15: Web3Meta + 2: ElrondMeta; + 3: Web3Meta; + 4: Web3Meta; + 5: Web3Meta; + 6: Web3Meta; + 7: Web3Meta; + 8: Web3Meta; + 9: TronMeta; + 0xb: Web3Meta; + 0xc: Web3Meta; + 0xd: Web3Meta; + 0xe: Web3Meta; + 0xf: AlgoMeta; + 0x10: Web3Meta; + 0x11: Web3Meta; + 0x12: TezosMeta; + 0x13: Web3Meta; + 0x14: Web3Meta; + 0x15: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -96,16 +96,16 @@ export namespace Chain { export const POLYGON = 7; export const FANTOM = 8; export const TRON = 9; - export const CELO = 0xb; //11 + export const CELO = 0xb; //11 export const HARMONY = 0xc; //12 - export const ONT = 0xd; //13 - export const XDAI = 0xe; //14 - export const ALGORAND = 0xf;//15 - export const FUSE = 0x10; // 16 + export const ONT = 0xd; //13 + export const XDAI = 0xe; //14 + export const ALGORAND = 0xf; //15 + export const FUSE = 0x10; // 16 export const UNIQUE = 0x11; // 17 - export const TEZOS = 0x12; // 18 - export const VELAS = 0x13; // 19 - export const IOTEX = 0x14; // 20 + export const TEZOS = 0x12; // 18 + export const VELAS = 0x13; // 19 + export const IOTEX = 0x14; // 20 export const AURORA = 0x15; // 21 } @@ -122,7 +122,7 @@ interface ChainData { type ChainInfo = { set(k: T, v: ChainData | undefined): void; get(k: T): ChainData | undefined; -} +}; export const CHAIN_INFO: ChainInfo = new Map(); CHAIN_INFO.set(Chain.ELROND, { @@ -131,7 +131,7 @@ CHAIN_INFO.set(Chain.ELROND, { decimals: 1e18, constructor: elrondHelperFactory, blockExplorerUrl: "https://devnet-explorer.elrond.com/transactions/", - currency: SupportedCurrency.EGLD + currency: SupportedCurrency.EGLD, }); CHAIN_INFO.set(Chain.HECO, { name: "HECO", @@ -186,7 +186,7 @@ CHAIN_INFO.set(Chain.FANTOM, { blockExplorerUrl: "https://explorer.testnet.fantom.network/transactions", constructor: web3HelperFactory, currency: SupportedCurrency.FTM, -}) +}); CHAIN_INFO.set(Chain.TRON, { name: "Tron", nonce: 0x9, @@ -196,102 +196,102 @@ CHAIN_INFO.set(Chain.TRON, { currency: SupportedCurrency.TRX, }); CHAIN_INFO.set(Chain.CELO, { - name: "Celo", - nonce: 0xb, - decimals: 1e18, - chainId: 44787, - blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", - constructor: web3HelperFactory, - currency: SupportedCurrency.CELO, -}) + name: "Celo", + nonce: 0xb, + decimals: 1e18, + chainId: 44787, + blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", + constructor: web3HelperFactory, + currency: SupportedCurrency.CELO, +}); CHAIN_INFO.set(Chain.HARMONY, { - name: "Harmony", - nonce: 0xc, - decimals: 1e18, - chainId: 1666700000, - blockExplorerUrl: "https://explorer.pops.one/tx", - constructor: web3HelperFactory, - currency: SupportedCurrency.ONE -}) + name: "Harmony", + nonce: 0xc, + decimals: 1e18, + chainId: 1666700000, + blockExplorerUrl: "https://explorer.pops.one/tx", + constructor: web3HelperFactory, + currency: SupportedCurrency.ONE, +}); CHAIN_INFO.set(Chain.ONT, { - name: "Ontology", - nonce: 0xd, - decimals: 1e18, - chainId: 1666700000, - blockExplorerUrl: "https://explorer.pops.one/tx", - constructor: web3HelperFactory, - currency: SupportedCurrency.ONT, -}) + name: "Ontology", + nonce: 0xd, + decimals: 1e18, + chainId: 1666700000, + blockExplorerUrl: "https://explorer.pops.one/tx", + constructor: web3HelperFactory, + currency: SupportedCurrency.ONT, +}); CHAIN_INFO.set(Chain.XDAI, { - name: "xDai", - nonce: 0xe, - decimals: 1e18, - chainId: 0x64, - blockExplorerUrl: "https://blockscout.com/xdai/mainnet/", - constructor: web3HelperFactory, - currency: SupportedCurrency.STAKE -}) + name: "xDai", + nonce: 0xe, + decimals: 1e18, + chainId: 0x64, + blockExplorerUrl: "https://blockscout.com/xdai/mainnet/", + constructor: web3HelperFactory, + currency: SupportedCurrency.STAKE, +}); CHAIN_INFO.set(Chain.ALGORAND, { - name: "Algorand", - nonce: 0xf, - decimals: 1e6, - chainId: undefined, - blockExplorerUrl: "https://algoexplorer.io/tx", - currency: SupportedCurrency.ALGO, - constructor: (p) => Promise.resolve(algorandHelper(p)), + name: "Algorand", + nonce: 0xf, + decimals: 1e6, + chainId: undefined, + blockExplorerUrl: "https://algoexplorer.io/tx", + currency: SupportedCurrency.ALGO, + constructor: (p) => Promise.resolve(algorandHelper(p)), }); CHAIN_INFO.set(Chain.FUSE, { - name: "FUSE", - nonce: 0x10, - decimals: 1e18, - chainId: undefined, - blockExplorerUrl: "https://explorer.fuse.io/tx", - currency: SupportedCurrency.FUSE, - constructor: web3HelperFactory, -}) + name: "FUSE", + nonce: 0x10, + decimals: 1e18, + chainId: undefined, + blockExplorerUrl: "https://explorer.fuse.io/tx", + currency: SupportedCurrency.FUSE, + constructor: web3HelperFactory, +}); CHAIN_INFO.set(Chain.UNIQUE, { - name: "Unique", - nonce: 0x11, - decimals: 1e18, - chainId: 8888, - blockExplorerUrl: "CANT FIND", - constructor: web3HelperFactory, - currency: SupportedCurrency.OPL, -}) + name: "Unique", + nonce: 0x11, + decimals: 1e18, + chainId: 8888, + blockExplorerUrl: "CANT FIND", + constructor: web3HelperFactory, + currency: SupportedCurrency.OPL, +}); CHAIN_INFO.set(Chain.TEZOS, { - name: "Tezos", - nonce: 0x12, - decimals: 1e6, - constructor: tezosHelperFactory, - currency: SupportedCurrency.XTZ, - blockExplorerUrl: "https://tezblock.io/transaction", -}) + name: "Tezos", + nonce: 0x12, + decimals: 1e6, + constructor: tezosHelperFactory, + currency: SupportedCurrency.XTZ, + blockExplorerUrl: "https://tezblock.io/transaction", +}); CHAIN_INFO.set(Chain.VELAS, { - name: "Velas", - blockExplorerUrl: "https://explorer.velas.com/tx", - nonce: 0x13, - decimals: 1e18, - constructor: web3HelperFactory, - currency: SupportedCurrency.VLX, - chainId: 111, + name: "Velas", + blockExplorerUrl: "https://explorer.velas.com/tx", + nonce: 0x13, + decimals: 1e18, + constructor: web3HelperFactory, + currency: SupportedCurrency.VLX, + chainId: 111, }); CHAIN_INFO.set(Chain.AURORA, { - name: "Aurora", - blockExplorerUrl: "https://testnet.aurorascan.dev/tx", - nonce: Chain.AURORA, - decimals: 1e18, - constructor: web3HelperFactory, - currency: SupportedCurrency.AURORA, - chainId: 1313161555 -}) + name: "Aurora", + blockExplorerUrl: "https://testnet.aurorascan.dev/tx", + nonce: Chain.AURORA, + decimals: 1e18, + constructor: web3HelperFactory, + currency: SupportedCurrency.AURORA, + chainId: 1313161555, +}); CHAIN_INFO.set(Chain.IOTEX, { - name: "IoTeX", - blockExplorerUrl: "https://iotexscan.io/tx", - nonce: 0x14, - decimals: 1e18, - constructor: web3HelperFactory, - currency: SupportedCurrency.IOTX, - chainId: 4689, + name: "IoTeX", + blockExplorerUrl: "https://iotexscan.io/tx", + nonce: 0x14, + decimals: 1e18, + constructor: web3HelperFactory, + currency: SupportedCurrency.IOTX, + chainId: 4689, }); export const Config: AppConfig = { @@ -305,4 +305,4 @@ export const Config: AppConfig = { wrappedNftPrefix: "https://nft.xp.network/w/", }; -export const FEE_MARGIN = { min: 0.5, max: 5 } +export const FEE_MARGIN = { min: 0.5, max: 5 }; diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 8b65a595c..05e08343e 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -6,7 +6,9 @@ import { NetworkModel, } from "crypto-exchange-rate"; -export function exchangeRateRepo(baseUrl: string): ExchangeRateRepo & BatchExchangeRateRepo { +export function exchangeRateRepo( + baseUrl: string +): ExchangeRateRepo & BatchExchangeRateRepo { const baseService = NetworkModel.batchExchangeRateService(baseUrl); return cachedExchangeRateRepo( diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 96767547b..75fcf7f92 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -19,7 +19,7 @@ const EVM_VALIDATORS = [ const EVM_TESTNET_VALIDATORS = [ "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", "0xae87208a5204B6606d3AB177Be5fdf62267Cd499", - "0x5002258315873AdCbdEF25a8E71C715A4f701dF5" + "0x5002258315873AdCbdEF25a8E71C715A4f701dF5", ]; const middleware_uri = "https://notifier.xp.network"; @@ -30,8 +30,10 @@ export namespace ChainFactoryConfigs { return { elrondParams: { node_uri: TestNetRpcUri.ELROND, - minter_address: "erd1qqqqqqqqqqqqqpgqzses02wme3gsx320dpja2p2kk3rckgcfksmsj8grdk", - esdt_swap_address: "erd1qqqqqqqqqqqqqpgqwu3ulmuxppa2e537ajst468wplkxxsqyksms9az8at", + minter_address: + "erd1qqqqqqqqqqqqqpgqzses02wme3gsx320dpja2p2kk3rckgcfksmsj8grdk", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqwu3ulmuxppa2e537ajst468wplkxxsqyksms9az8at", esdt_nft: "XPNFT-aca910", esdt_swap: "WEGLD-f8dc4c", notifier, @@ -118,7 +120,8 @@ export namespace ChainFactoryConfigs { nonce: Chain.XDAI, }, algorandParams: { - algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodApiKey: + "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", algodUri: "https://algorand-node.xp.network/", algoIndexer: "https://algoexplorerapi.io/idx2", nonce: Chain.ALGORAND, @@ -176,12 +179,14 @@ export namespace ChainFactoryConfigs { }; export const MainNet: () => Partial = () => { - const notifier = evNotifier(middleware_uri) + const notifier = evNotifier(middleware_uri); return { elrondParams: { node_uri: MainNetRpcUri.ELROND, - minter_address: "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", - esdt_swap_address: "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", + minter_address: + "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", esdt_nft: "XPNFT-cb7482", esdt_swap: "WEGLD-5f1f8d", notifier, @@ -269,7 +274,8 @@ export namespace ChainFactoryConfigs { nonce: Chain.XDAI, }, algorandParams: { - algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodApiKey: + "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", algodUri: "https://algorand-node.xp.network/", nonce: Chain.ALGORAND, sendNftAppId: 458971166, diff --git a/src/factory/index.ts b/src/factory/index.ts index a180ec972..92943db48 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -1,13 +1,7 @@ -import { - ElrondParams, -} from "../helpers/elrond"; +import { ElrondParams } from "../helpers/elrond"; import { TronParams } from "../helpers/tron"; import { Web3Params } from "../helpers/web3"; -import { - Chain, - CHAIN_INFO, - FEE_MARGIN, -} from "../consts"; +import { Chain, CHAIN_INFO, FEE_MARGIN } from "../consts"; export * from "./factories"; import { @@ -44,9 +38,16 @@ import { EstimateTxFeesBatch, TransferNftForeignBatch, UnfreezeForeignNftBatch, - WhitelistCheck + WhitelistCheck, } from "../helpers/chain"; -import { ChainNonce, HelperMap, InferChainH, InferChainParam, InferSigner, ParamMap } from "../type-utils"; +import { + ChainNonce, + HelperMap, + InferChainH, + InferChainParam, + InferSigner, + ParamMap, +} from "../type-utils"; type FullChain = TransferNftForeign< Signer, @@ -152,7 +153,10 @@ export type ChainFactory = { * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. * @param params : New Params to be set. */ - updateParams(nonce: T, params: InferChainParam): void; + updateParams( + nonce: T, + params: InferChainParam + ): void; pkeyToSigner( nonce: S, key: string @@ -202,7 +206,7 @@ export type ChainFactory = { checkWhitelist( chain: Partial>, nft: NftInfo - ): Promise + ): Promise; }; /** @@ -249,10 +253,7 @@ export interface AppConfig { wrappedNftPrefix: string; } - -function mapNonceToParams( - chainParams: Partial -): ParamMap { +function mapNonceToParams(chainParams: Partial): ParamMap { const cToP: ParamMap = new Map(); cToP.set(Chain.ELROND, chainParams.elrondParams); cToP.set(Chain.HECO, chainParams.hecoParams); @@ -301,11 +302,13 @@ export function ChainFactory( }, }); - const inner = async (chain: T): Promise> => { + const inner = async ( + chain: T + ): Promise> => { let helper = helpers.get(chain); if (helper === undefined) { helper = await CHAIN_INFO.get(chain)!.constructor(cToP.get(chain)!); - helpers.set(chain, helper) + helpers.set(chain, helper); } return helper!; }; @@ -423,7 +426,10 @@ export function ChainFactory( } async function isWrappedNft(nft: NftInfo) { - return (typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== "undefined"); + return ( + typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== + "undefined" + ); } async function getVerifiedContracts( @@ -516,7 +522,7 @@ export function ChainFactory( ); } default: { - const chainH = await inner(nonce) as any; + const chainH = (await inner(nonce)) as any; return chainH.createWallet(key); } } @@ -524,7 +530,10 @@ export function ChainFactory( estimateFees, inner, bridgeStatus, - updateParams(chainNonce: T, params: InferChainParam) { + updateParams( + chainNonce: T, + params: InferChainParam + ) { helpers.delete(chainNonce); cToP.set(chainNonce, params as any); }, @@ -621,12 +630,12 @@ export function ChainFactory( return await algo.claimableNfts(txSocket, claimer); }, async checkWhitelist(chain, nft) { - if (!chain.isNftWhitelisted || await isWrappedNft(nft)) { + if (!chain.isNftWhitelisted || (await isWrappedNft(nft))) { return true; } return await chain.isNftWhitelisted(nft); - } + }, }; } /** diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 2c8030420..45a0ab09d 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -37,11 +37,7 @@ export interface PreTransfer { * * @returns Transaction and the Identifier of this action to track the status */ -export interface TransferNftForeign< - Signer, - RawNft, - Resp -> { +export interface TransferNftForeign { transferNftToForeign( sender: Signer, chain_nonce: number, @@ -62,11 +58,7 @@ export interface TransferNftForeign< * * @returns Transaction and the Identifier of this action to track the status */ -export interface UnfreezeForeignNft< - Signer, - RawNft, - Resp -> { +export interface UnfreezeForeignNft { unfreezeWrappedNft( sender: Signer, to: string, @@ -139,32 +131,24 @@ export interface ExtractTxnStatus { extractTxnStatus(txn: string): Promise; } -export interface TransferNftForeignBatch< - Signer, - RawNft, - Resp -> { +export interface TransferNftForeignBatch { transferNftBatchToForeign( sender: Signer, chain_nonce: number, to: string, id: NftInfo[], mintWith: string, - txFees: BigNumber + txFees: BigNumber ): Promise; } -export interface UnfreezeForeignNftBatch< - Signer, - RawNft, - Resp -> { +export interface UnfreezeForeignNftBatch { unfreezeWrappedNftBatch( sender: Signer, chainNonce: number, to: string, nfts: NftInfo[], - txFees: BigNumber + txFees: BigNumber ): Promise; } @@ -182,12 +166,15 @@ export interface EstimateTxFeesBatch { export type WhitelistCheck = { isNftWhitelisted(nft: NftInfo): Promise; -} +}; export interface GetProvider { getProvider(): Provider; } export async function isWrappedNft(nft: NftInfo) { - return typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== "undefined"; + return ( + typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== + "undefined" + ); } diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 1a4049fe0..02ceee40b 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -186,31 +186,14 @@ export interface ElrondRawUnsignedTxn { * Traits implemented by this module */ export type ElrondHelper = BalanceCheck & - TransferNftForeign< - ElrondSigner, - EsdtNftInfo, - Transaction - > & - UnfreezeForeignNft< - ElrondSigner, - EsdtNftInfo, - Transaction - > & - TransferNftForeignBatch< - ElrondSigner, - EsdtNftInfo, - Transaction - > & - UnfreezeForeignNftBatch< - ElrondSigner, - EsdtNftInfo, - Transaction - > & + TransferNftForeign & + UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & IssueESDTNFT & MintNft & { mintableEsdts(address: Address): Promise; - } & - ChainNonceGet & + } & ChainNonceGet & ValidateAddress & ExtractAction & PreTransfer & @@ -422,7 +405,7 @@ export async function elrondHelperFactory( const unsignedUnfreezeNftTxn = ( address: Address, to: string, - { tokenIdentifier, nonce }: EsdtNftInfo, + { tokenIdentifier, nonce }: EsdtNftInfo, tx_fees: BigNumber, chain_nonce: string ) => { @@ -433,9 +416,11 @@ export async function elrondHelperFactory( .setFunction(new ContractFunction("MultiESDTNFTTransfer")) .addArg(new AddressValue(mintContract)) .addArg(new BigUIntValue(new BigNumber(2))) - .addArg(new TokenIdentifierValue( - Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") - )) + .addArg( + new TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + ) + ) .addArg(new U64Value(new BigNumber(nonce))) .addArg(new BigUIntValue(new BigNumber(1))) .addArg(new TokenIdentifierValue(esdtSwaphex)) @@ -483,9 +468,7 @@ export async function elrondHelperFactory( } if (canTransferNFTCreateRole !== undefined) { baseArgs = baseArgs - .addArg( - new BytesValue(Buffer.from("canChangeOwner", "ascii")) - ) + .addArg(new BytesValue(Buffer.from("canChangeOwner", "ascii"))) .addArg( new BytesValue( Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") @@ -652,7 +635,7 @@ export async function elrondHelperFactory( return res.data["data"]["tokens"]; }, - async preTransferRawTxn(id, address, value) { + async preTransferRawTxn(id, address, value) { if (!address || !value) { throw new Error("address and value is required for elrond egld swap"); } @@ -684,12 +667,14 @@ export async function elrondHelperFactory( const txu = unsignedSetESDTRoles(token, target, roles); const tx = await signAndSend(manager, txu); - await transactionResult(tx.getHash()); - return tx; + await transactionResult(tx.getHash()); + return tx; }, async transferESDTOwnership(sender, token, target): Promise { const txu = new Transaction({ - receiver: new Address("erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u"), + receiver: new Address( + "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" + ), gasLimit: new GasLimit(60000000), data: TransactionPayload.contractCall() .setFunction(new ContractFunction("transferOwnership")) @@ -796,7 +781,7 @@ export async function elrondHelperFactory( } }, }; -}; +} function filterEventId(results: Array): number { for (const res of results) { diff --git a/src/helpers/thor.ts b/src/helpers/thor.ts index 8451955cc..79ca3336c 100644 --- a/src/helpers/thor.ts +++ b/src/helpers/thor.ts @@ -21,10 +21,7 @@ import { } from "@vechain/ethers"; import { Transaction } from "@vechain/ethers/utils"; import { TransactionResponse, Provider } from "@vechain/ethers/providers"; -import { - Minter__factory, - UserNftMinter__factory, -} from "xpnet-web3-contracts"; +import { Minter__factory, UserNftMinter__factory } from "xpnet-web3-contracts"; import { ChainNonceGet, EstimateTxFees, @@ -104,16 +101,8 @@ export type BaseWeb3Helper = BalanceCheck & * Traits implemented by this module */ export type Web3Helper = BaseWeb3Helper & - TransferNftForeign< - Signer, - EthNftInfo, - TransactionResponse - > & - UnfreezeForeignNft< - Signer, - EthNftInfo, - TransactionResponse - > & + TransferNftForeign & + UnfreezeForeignNft & EstimateTxFees & ChainNonceGet & IsApproved & @@ -360,7 +349,7 @@ export async function web3HelperFactory( return Promise.resolve(ethers.utils.getAddress(adr) !== undefined); }, isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract) - } + return minter.nftWhitelist(nft.native.contract); + }, }; } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 30ea6d726..bc81a3600 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -441,15 +441,15 @@ export async function tronHelperFactory( _to: string, _nft: NftInfo ): Promise { - return new BigNumber(0) // TODO + return new BigNumber(0); // TODO }, async validateAddress(adr: string): Promise { return provider.isAddress(adr); }, isNftWhitelisted(nft) { return minter.nftWhitelist(nft.native.contract).call({ - from: tronParams.provider.defaultAddress.base58 + from: tronParams.provider.defaultAddress.base58, }); - } + }, }; } diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 1eee422a8..5414a8d8a 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -1,34 +1,33 @@ import axios from "axios"; - export type EvNotifier = ReturnType; export function evNotifier(url: string) { - const api = axios.create({ - baseURL: url - }); + const api = axios.create({ + baseURL: url, + }); - return { - async notifyWeb3(chainNonce: number, txHash: string) { - await api.post("/tx/web3", { - chain_nonce: chainNonce, - tx_hash: txHash - }); - }, - async notifyTron(txHash: string) { - await api.post("/tx/tron", { - tx_hash: txHash - }); - }, - async notifyElrond(txHash: string) { - await api.post("/tx/elrond", { - tx_hash: txHash - }); - }, - async notifyTezos(txHash: string) { - await api.post("/tx/tezos", { - tx_hash: txHash - }); - } - } -} \ No newline at end of file + return { + async notifyWeb3(chainNonce: number, txHash: string) { + await api.post("/tx/web3", { + chain_nonce: chainNonce, + tx_hash: txHash, + }); + }, + async notifyTron(txHash: string) { + await api.post("/tx/tron", { + tx_hash: txHash, + }); + }, + async notifyElrond(txHash: string) { + await api.post("/tx/elrond", { + tx_hash: txHash, + }); + }, + async notifyTezos(txHash: string) { + await api.post("/tx/tezos", { + tx_hash: txHash, + }); + }, + }; +} diff --git a/src/socket.ts b/src/socket.ts index ab534ac02..c5f56deb0 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -44,14 +44,20 @@ export type TxnSocketHelper = { }; export type AlgorandSocketHelper = { - waitAlgorandNft(sourceChain: number, receiver: string, action_id: string): Promise; + waitAlgorandNft( + sourceChain: number, + receiver: string, + action_id: string + ): Promise; claimNfts(receiver: string): Promise; cleanNfts(owner: string): Promise; }; function pairAction(sourceChain: number, action_id: string): number { const numId = parseInt(action_id); - return numId >= sourceChain ? numId * numId + sourceChain + numId : numId + sourceChain * sourceChain; + return numId >= sourceChain + ? numId * numId + sourceChain + numId + : numId + sourceChain * sourceChain; } function socketResBuf(): SocketResBuf { @@ -137,7 +143,7 @@ type DbClaimInfo = { nft_id: string; action_id: string; inserted_at: Date; -} +}; /** * Create a [[SocketHelper]] @@ -153,7 +159,7 @@ export function socketHelper( const txbuf: SocketResBuf = socketResBuf(); const algoBuf: SocketResBuf = socketResBuf(); const dbApi = axios.create({ - baseURL: uri + baseURL: uri, }); socket.on( @@ -176,26 +182,34 @@ export function socketHelper( async waitTxHash(chain: number, action_id: string): Promise { return await waitSocketData(txbuf, chain, action_id); }, - async waitAlgorandNft(sourceChain: number, receiver: string, action_id: string): Promise { + async waitAlgorandNft( + sourceChain: number, + receiver: string, + action_id: string + ): Promise { // Validator sends a an action paired with chain id // this is implementation dependent on validator const paired = pairAction(sourceChain, action_id).toString(); - const dbData = await dbApi.get>(`/algorand_event/${receiver}/${paired}`); + const dbData = await dbApi.get>( + `/algorand_event/${receiver}/${paired}` + ); if (dbData.data.app_id) { return { appId: parseInt(dbData.data.app_id!), - nftId: parseInt(dbData.data.nft_id!) + nftId: parseInt(dbData.data.nft_id!), }; } return await waitSocketData(algoBuf, 15, paired); }, async claimNfts(receiver: string): Promise { - const dbData = await dbApi.get<{ result: DbClaimInfo[] }>(`/algorand_event/${receiver}`); + const dbData = await dbApi.get<{ result: DbClaimInfo[] }>( + `/algorand_event/${receiver}` + ); return dbData.data.result; }, async cleanNfts(owner: string): Promise { await dbApi.delete(`/algorand_event/${owner}`); - } + }, }; } diff --git a/src/type-utils.ts b/src/type-utils.ts index e9408c076..16e4f9cab 100644 --- a/src/type-utils.ts +++ b/src/type-utils.ts @@ -1,16 +1,24 @@ import { MetaMap, TransferNftForeign } from "."; -type TransferNftChain = TransferNftForeign; +type TransferNftChain = TransferNftForeign< + Signer, + RawNft, + Resp +>; export type ChainNonce = keyof MetaMap; export type InferChainParam = MetaMap[K][1]; export type InferChainH = MetaMap[K][0]; -export type InferSigner> = K extends TransferNftChain ? S : never; +export type InferSigner> = + K extends TransferNftChain ? S : never; export type ParamMap = { set(k: T, v: InferChainParam | undefined): void; get(k: T): InferChainParam | undefined; }; -export type HelperMap = Map | undefined>; \ No newline at end of file +export type HelperMap = Map< + K, + InferChainH | undefined +>; From 82da9f9266c836527a436101050865c5de0d514a Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 1 Mar 2022 15:09:01 +0530 Subject: [PATCH 385/956] tron: update deployMinter --- package.json | 4 +-- src/helpers/tron.ts | 78 ++++++++++++++++++++++++++------------------- yarn.lock | 42 +++++++++++++----------- 3 files changed, 72 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index 43ad00e94..e55ff2bbf 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", - "tronweb": "^4.0.0", - "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#c351870fb44fede7c98f6fae00e408b86a39f5a3" + "tronweb": "^4.1.0", + "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#4875dd73dd3f1884c0129caa4638135b9c10eb05" } } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index bc81a3600..321e4c0ce 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -17,8 +17,8 @@ import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; import { Minter__factory, UserNftMinter__factory, - Erc1155Minter__factory, XPNft__factory, + XPNft1155__factory, } from "xpnet-web3-contracts"; import { Approve, @@ -45,8 +45,8 @@ export type MinterRes = { minter: string; // XPNFT (Wrapper for foreign NFTs) contracte xpnft: string; - // XPNET (Wrapper for foregin fungible tokens) contract - xpnet: string; + // XPNFT1155 (Wrapper for ERC1155 Foreign NFTs) contract + xpnft1155: string; // Whitelisted Native NFT contracts whitelist: string[]; }; @@ -65,15 +65,17 @@ export type BaseTronHelper = BalanceCheck & * Deploy Minter Smart Contract * * @argument deployer deployer of the smart contract - * @argument validators address of validators of the smart contract - * @argument threshold threshold for executing an action - * @argument whitelist optional whitelisted nfts contract (deploys one if empty/undefined) + * @argument frostGroupKey FROST SECP256k1 Group Key + * @argument xpnftPrefix XP Wrapped NFT backend with "/" suffix + * @argument xpnftPrefix1155 XP Wrapped NFT Backend in erc1155 format (with {id}) + * @argument whitelist List of NFTs to whitelist */ deployMinter( deployer: TronSender, - validators: string[], - threshold: number, - whitelist: string[] | undefined + frostGroupKey: string, + xpnftPrefix: string, + xpnftPrefix1155: string, + whitelist?: string[] ): Promise; }; @@ -110,29 +112,36 @@ export async function baseTronHelperFactory( return contract; }; - const deployErc1155_i = async (owner: TronSender) => { - setSigner(owner); + const deployXpNft = async (deployer: TronSender, nftPrefix: string) => { + setSigner(deployer); const contract = await provider.contract().new({ - abi: Erc1155Minter__factory.abi, - bytecode: Erc1155Minter__factory.bytecode, + abi: XPNft__factory.abi, + bytecode: XPNft__factory.bytecode, feeLimit: 3000000000, + parameters: [ + "XPNFT", + "XPNFT", + nftPrefix + ] }); return contract; }; - const deployXpNft = async (deployer: TronSender) => { + const deployXpNft1155 = async (deployer: TronSender, nftPrefix: string) => { setSigner(deployer); - const contract = await provider.contract().new({ - abi: XPNft__factory.abi, - bytecode: XPNft__factory.bytecode, + abi: XPNft1155__factory.abi, + bytecode: XPNft1155__factory.bytecode, feeLimit: 3000000000, + parameters: [ + nftPrefix + ] }); return contract; - }; + } return { async mintNft(owner: TronSender, options: NftMintArgs): Promise { @@ -152,8 +161,9 @@ export async function baseTronHelperFactory( await deployErc721_i(owner).then((c) => c.address), async deployMinter( deployer: TronSender, - validators: string[], - threshold: number, + frostGroupKey, + xpnftPrefix, + xpnftPrefix1155, whitelist: string[] = [] ): Promise { if (whitelist.length == 0) { @@ -161,28 +171,32 @@ export async function baseTronHelperFactory( whitelist.push(unft.address); } - const nft_token = await deployXpNft(deployer); - const token = await deployErc1155_i(deployer); + const gk = Buffer.from(frostGroupKey, "hex"); + const gkx = EthBN.from(`0x${gk.slice(1).toString("hex")}`); + // gkyp is either 0 or 1 + const gkyp = EthBN.from(`0x${gk[0] & 1}`); + + const erc721 = await deployXpNft(deployer, xpnftPrefix); + const erc1155 = await deployXpNft1155(deployer, xpnftPrefix1155); + const minter = await provider.contract().new({ abi: Minter__factory.abi, bytecode: Minter__factory.bytecode, - feeLimit: 3000000000, + feeLimit: 6000000000, parameters: [ - validators, - whitelist, - threshold, - nft_token.address, - token.address, + gkx, + gkyp, + whitelist ], }); - await nft_token.transferOwnership(minter.address).send(); - await token.transferOwnership(minter.address).send(); + await erc721.transferOwnership(minter.address).send(); + await erc1155.transferOwnership(minter.address).send(); return { minter: minter.address, - xpnft: nft_token.address, - xpnet: token.address, + xpnft: erc721.address, + xpnft1155: erc1155.address, whitelist, }; }, diff --git a/yarn.lock b/yarn.lock index 3948b28c3..601981a83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1861,6 +1861,13 @@ axios@0.21.1, axios@^0.21.1: dependencies: follow-redirects "^1.10.0" +axios@^0.24.0: + version "0.24.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6" + integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA== + dependencies: + follow-redirects "^1.14.4" + babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -2342,12 +2349,6 @@ crypt@0.0.2: dependencies: axios "^0.21.1" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": - version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#ccc292d237d584ec4744ac691b83a04f66357b5f" - dependencies: - axios "^0.21.1" - crypto-js@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" @@ -2956,6 +2957,11 @@ follow-redirects@^1.10.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== +follow-redirects@^1.14.4: + version "1.14.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" + integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== + foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" @@ -4743,13 +4749,13 @@ tronstation@^1.0.1: "@babel/runtime" "^7.0.0" babel-runtime "^6.26.0" -tronweb@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.0.0.tgz#a3677d4d2ee1a06231aa0fd75c15ab0d6d55fc91" - integrity sha512-yKRkEe9A5RJCRiDcKXfXhfF6CDJl7QWhBLleaW+GlTwVXKGNJdpGomuYhCXvQyFQVlY6cKzOfH7pXPH69rcfNQ== +tronweb@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.1.0.tgz#a79d3ac8e1d4a78d9d69067e2bc3e6cede6e83c9" + integrity sha512-aCBLnww8db5UQaewZFs4XJcgLhXuQG6Qxnbuhnw1LlFMBGWr7kX3OMK+Ld3weGHvZfoxgH6q5+LMhp/xewHrIg== dependencies: "@babel/runtime" "^7.0.0" - axios "^0.21.1" + axios "^0.24.0" bignumber.js "^9.0.1" elliptic "^6.5.4" ethers "^5.4.4" @@ -4757,7 +4763,7 @@ tronweb@^4.0.0: injectpromise "^1.0.0" lodash "^4.17.21" semver "^5.6.0" - validator "^13.6.0" + validator "^13.7.0" tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" @@ -4937,10 +4943,10 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -validator@^13.6.0: - version "13.6.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" - integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== +validator@^13.7.0: + version "13.7.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" + integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== vscode-textmate@5.2.0: version "5.2.0" @@ -5050,9 +5056,9 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#c351870fb44fede7c98f6fae00e408b86a39f5a3": +"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#4875dd73dd3f1884c0129caa4638135b9c10eb05": version "0.1.0" - resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#c351870fb44fede7c98f6fae00e408b86a39f5a3" + resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#4875dd73dd3f1884c0129caa4638135b9c10eb05" dependencies: ethers "^5.5.4" From 3cb811bf704a73b5aa4ef88beee65a6cad10dbbf Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 1 Mar 2022 17:20:57 +0530 Subject: [PATCH 386/956] isWrappedNft: return false if nft is old --- src/factory/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 92943db48..d73ea3138 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -428,7 +428,8 @@ export function ChainFactory( async function isWrappedNft(nft: NftInfo) { return ( typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== - "undefined" + "undefined" && + !await checkNotOldWrappedNft(nft.collectionIdent).then(() => true).catch(() => false) ); } From 4abd055c0ce1f8b011a6bf7c536f6482618c0798 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 1 Mar 2022 17:23:28 +0530 Subject: [PATCH 387/956] factory: isWrappednft: fix derp --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d73ea3138..0f4862862 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -429,7 +429,7 @@ export function ChainFactory( return ( typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== "undefined" && - !await checkNotOldWrappedNft(nft.collectionIdent).then(() => true).catch(() => false) + await checkNotOldWrappedNft(nft.collectionIdent).then(() => true).catch(() => false) ); } From 568e659d1aa730cb3954743af4db25253cdb6e00 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Tue, 1 Mar 2022 14:29:29 +0200 Subject: [PATCH 388/956] Update factories.ts --- src/factory/factories.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 75fcf7f92..7980f48ac 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -224,16 +224,17 @@ export namespace ChainFactoryConfigs { erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", - minter_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", + minter_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", nonce: Chain.FANTOM, }, bscParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", - erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", - erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + erc1155_addr: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", + erc1155Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", + erc721_addr: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", + minter_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", nonce: Chain.BSC, }, celoParams: { From daccc3fc7f13c69d5f583683de324fa82de7ee11 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Tue, 1 Mar 2022 14:52:04 +0200 Subject: [PATCH 389/956] Update factories.ts --- src/factory/factories.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 7980f48ac..06874b064 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -223,7 +223,8 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", + erc1155_addr: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", + erc721_addr: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", minter_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", nonce: Chain.FANTOM, }, From 52548cc9f82bddb3c7c732c584e4e7b72114e8b2 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 1 Mar 2022 18:32:02 +0530 Subject: [PATCH 390/956] improve checkNotOldWrappedNft --- src/factory/index.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 0f4862862..a83c4dc28 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -400,7 +400,7 @@ export function ChainFactory( } } - const oldXpWraps: string[] = [ + const oldXpWraps = new Set([ "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", @@ -410,10 +410,10 @@ export function ChainFactory( "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", - ]; + ]); - async function checkNotOldWrappedNft(contract: string) { - if (oldXpWraps.findIndex((x) => x === contract) !== -1) { + function checkNotOldWrappedNft(contract: string) { + if (oldXpWraps.has(contract)) { throw new Error(`${contract} is an old wrapped NFT`); } } @@ -426,10 +426,15 @@ export function ChainFactory( } async function isWrappedNft(nft: NftInfo) { + try { + checkNotOldWrappedNft(nft.collectionIdent); + } catch (_) { + return false; + } + return ( typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== - "undefined" && - await checkNotOldWrappedNft(nft.collectionIdent).then(() => true).catch(() => false) + "undefined" ); } From 9539005d5fe9455dec0c87ab09545a81e635d77e Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Tue, 1 Mar 2022 15:19:11 +0200 Subject: [PATCH 391/956] Update factories.ts --- src/factory/factories.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 06874b064..34ef1e114 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -232,10 +232,10 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", - erc1155_addr: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", - erc1155Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", - erc721_addr: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - minter_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", + erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", nonce: Chain.BSC, }, celoParams: { From 8e62b5799f01c07670eeb107224c639af32721a9 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 2 Mar 2022 09:44:49 +0200 Subject: [PATCH 392/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 34ef1e114..83381a8c0 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -223,9 +223,9 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc1155_addr: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", - erc721_addr: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - minter_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc1155_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", + erc721_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", + minter_addr: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", nonce: Chain.FANTOM, }, bscParams: { From b17c9dfd432f5b4b4dfd3a8c1c4363bdcdda8e36 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 2 Mar 2022 15:04:40 +0200 Subject: [PATCH 393/956] Update consts.ts --- src/consts.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/consts.ts b/src/consts.ts index d49249b70..3d49e7424 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -53,6 +53,7 @@ export enum MainNetRpcUri { VELAS = "https://mainnet.velas.com/rpc", TEZOS = "https://mainnet.smartpy.io", IOTEX = "https://babel-api.mainnet.iotex.io", + AURORA = "https://mainnet.aurora.dev, // TODO: Algorand } From 3c3cb8ef004e233375a5e2c622bf6d88a6618448 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 2 Mar 2022 15:13:53 +0200 Subject: [PATCH 394/956] Update factories.ts --- src/factory/factories.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 83381a8c0..606709934 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -321,6 +321,14 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.IOTEX, }, + auroraParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AURORA), + minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", + nonce: Chain.AURORA, + } }; }; } From b826cb27449a26db6bba602021fbb7c19317299b Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 2 Mar 2022 16:37:05 +0200 Subject: [PATCH 395/956] Update consts.ts --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 3d49e7424..7fd9a4881 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -53,7 +53,7 @@ export enum MainNetRpcUri { VELAS = "https://mainnet.velas.com/rpc", TEZOS = "https://mainnet.smartpy.io", IOTEX = "https://babel-api.mainnet.iotex.io", - AURORA = "https://mainnet.aurora.dev, + AURORA = "https://mainnet.aurora.dev", // TODO: Algorand } From 6d416167e72a0838ce02dfacb283b8613f68fc6f Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 2 Mar 2022 17:09:52 +0200 Subject: [PATCH 396/956] Update index.ts --- src/factory/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index a83c4dc28..2abe314e4 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -232,6 +232,7 @@ export interface ChainParams { velasParams: Web3Params; iotexParams: Web3Params; vechainParams: Web3Params; + auroraParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -273,6 +274,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.TEZOS, chainParams.tezosParams); cToP.set(Chain.VELAS, chainParams.velasParams); cToP.set(Chain.IOTEX, chainParams.iotexParams); + cToP.set(Chain.Chain.AURORA, chainParams.auroraParams); return cToP; } From 69e4b92b3e748313faeddf36e4f75c0ef7657918 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 2 Mar 2022 17:13:44 +0200 Subject: [PATCH 397/956] Update index.ts --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 2abe314e4..641a75861 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -274,7 +274,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.TEZOS, chainParams.tezosParams); cToP.set(Chain.VELAS, chainParams.velasParams); cToP.set(Chain.IOTEX, chainParams.iotexParams); - cToP.set(Chain.Chain.AURORA, chainParams.auroraParams); + cToP.set(Chain.AURORA, chainParams.auroraParams); return cToP; } From 5ced9418ce4a8ee9c68bcd977ab446d2d2e38a8f Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 2 Mar 2022 17:16:28 +0200 Subject: [PATCH 398/956] Update index.ts --- src/factory/index.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 641a75861..dbc619d88 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -232,7 +232,6 @@ export interface ChainParams { velasParams: Web3Params; iotexParams: Web3Params; vechainParams: Web3Params; - auroraParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -274,8 +273,6 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.TEZOS, chainParams.tezosParams); cToP.set(Chain.VELAS, chainParams.velasParams); cToP.set(Chain.IOTEX, chainParams.iotexParams); - cToP.set(Chain.AURORA, chainParams.auroraParams); - return cToP; } /** From 229107d91a87f04391436f41825fbd0aaffc1d1a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 2 Mar 2022 21:22:04 +0530 Subject: [PATCH 399/956] Complete Aurora Impl --- src/consts.ts | 4 ++-- src/factory/factories.ts | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 7fd9a4881..3949a2747 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -278,12 +278,12 @@ CHAIN_INFO.set(Chain.VELAS, { }); CHAIN_INFO.set(Chain.AURORA, { name: "Aurora", - blockExplorerUrl: "https://testnet.aurorascan.dev/tx", + blockExplorerUrl: "https://aurorascan.dev/tx", nonce: Chain.AURORA, decimals: 1e18, constructor: web3HelperFactory, currency: SupportedCurrency.AURORA, - chainId: 1313161555, + chainId: 1313161554, }); CHAIN_INFO.set(Chain.IOTEX, { name: "IoTeX", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 606709934..2a46d5267 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -322,13 +322,15 @@ export namespace ChainFactoryConfigs { nonce: Chain.IOTEX, }, auroraParams: { - notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AURORA), minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc1155Minter: "0x0000000000000000000000000000000000000000", + erc721Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.AURORA, - } + notifier, + }, }; }; } From f0523061476aa4ec6ea35090108ce27bb2b8a09e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 2 Mar 2022 21:51:12 +0530 Subject: [PATCH 400/956] bridge: notifier: add a sender field to elrond event --- src/helpers/elrond.ts | 12 ++++++------ src/notifier/index.ts | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 02ceee40b..06a67b147 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -237,8 +237,8 @@ export async function elrondHelperFactory( networkConfig.MinGasPrice.valueOf() * networkConfig.GasPriceModifier.valueOf(); - async function notifyValidator(txn: Transaction) { - await elrondParams.notifier.notifyElrond(txn.getHash().toString()); + async function notifyValidator(txn: Transaction, sender: string) { + await elrondParams.notifier.notifyElrond(txn.getHash().toString(), sender); } const syncAccount = async (signer: ElrondSigner) => { @@ -576,7 +576,7 @@ export async function elrondHelperFactory( mintWith ); const tx = await signAndSend(sender, txu); - await notifyValidator(tx); + await notifyValidator(tx, sender.getAddress().toString()); return tx; }, @@ -595,7 +595,7 @@ export async function elrondHelperFactory( nonce ); const tx = await signAndSend(sender, txu); - await notifyValidator(tx); + await notifyValidator(tx, sender.getAddress().toString()); return tx; }, @@ -721,7 +721,7 @@ export async function elrondHelperFactory( .build(), }); const tx = await signAndSend(sender, txu); - await notifyValidator(tx); + await notifyValidator(tx, sender.getAddress().toString()); return tx; }, @@ -759,7 +759,7 @@ export async function elrondHelperFactory( .build(), }); const tx = await signAndSend(sender, txu); - await notifyValidator(tx); + await notifyValidator(tx, sender.getAddress().toString()); return tx; }, diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 5414a8d8a..62536b74a 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -19,9 +19,10 @@ export function evNotifier(url: string) { tx_hash: txHash, }); }, - async notifyElrond(txHash: string) { + async notifyElrond(txHash: string, sender: string) { await api.post("/tx/elrond", { tx_hash: txHash, + sender, }); }, async notifyTezos(txHash: string) { From 0b08643bfc62dffb0efd555caae6fbbae1f123ee Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 2 Mar 2022 21:57:10 +0530 Subject: [PATCH 401/956] bridge: notifier: add uris field to elrond event --- src/helpers/elrond.ts | 28 ++++++++++++++++++++++------ src/notifier/index.ts | 3 ++- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 06a67b147..d22c530f2 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -237,8 +237,16 @@ export async function elrondHelperFactory( networkConfig.MinGasPrice.valueOf() * networkConfig.GasPriceModifier.valueOf(); - async function notifyValidator(txn: Transaction, sender: string) { - await elrondParams.notifier.notifyElrond(txn.getHash().toString(), sender); + async function notifyValidator( + txn: Transaction, + sender: string, + uri: string[] + ) { + await elrondParams.notifier.notifyElrond( + txn.getHash().toString(), + sender, + uri + ); } const syncAccount = async (signer: ElrondSigner) => { @@ -576,7 +584,7 @@ export async function elrondHelperFactory( mintWith ); const tx = await signAndSend(sender, txu); - await notifyValidator(tx, sender.getAddress().toString()); + await notifyValidator(tx, sender.getAddress().toString(), [info.uri]); return tx; }, @@ -595,7 +603,7 @@ export async function elrondHelperFactory( nonce ); const tx = await signAndSend(sender, txu); - await notifyValidator(tx, sender.getAddress().toString()); + await notifyValidator(tx, sender.getAddress().toString(), [nft.uri]); return tx; }, @@ -721,7 +729,11 @@ export async function elrondHelperFactory( .build(), }); const tx = await signAndSend(sender, txu); - await notifyValidator(tx, sender.getAddress().toString()); + await notifyValidator( + tx, + sender.getAddress().toString(), + nfts.map((n) => n.uri) + ); return tx; }, @@ -759,7 +771,11 @@ export async function elrondHelperFactory( .build(), }); const tx = await signAndSend(sender, txu); - await notifyValidator(tx, sender.getAddress().toString()); + await notifyValidator( + tx, + sender.getAddress().toString(), + nfts.map((n) => n.uri) + ); return tx; }, diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 62536b74a..37b4c54a2 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -19,10 +19,11 @@ export function evNotifier(url: string) { tx_hash: txHash, }); }, - async notifyElrond(txHash: string, sender: string) { + async notifyElrond(txHash: string, sender: string, uris: string[]) { await api.post("/tx/elrond", { tx_hash: txHash, sender, + uris, }); }, async notifyTezos(txHash: string) { From 5d7868a19cdccb5008d25e4cbfebe8d62b734d7c Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 2 Mar 2022 19:18:10 +0200 Subject: [PATCH 402/956] factories addresses change --- src/factory/factories.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 2a46d5267..1861f5b71 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -204,7 +204,7 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", - erc1155Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", + erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", nonce: Chain.AVALANCHE, @@ -213,7 +213,7 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc1155Minter: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", nonce: Chain.POLYGON, @@ -272,6 +272,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.XDAI, }, @@ -288,8 +289,9 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FUSE), erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc721_addr: "0xF5e792c1e8E626a4496D580b8c2b4d51bF80eFB7", - minter_addr: "0xC0D56171C798F9508CF39B25f19826B699F16693", + erc721_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc1155_addr: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", + minter_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", nonce: Chain.FUSE, }, tezosParams: { @@ -309,6 +311,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", + erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", nonce: Chain.VELAS, }, @@ -319,6 +322,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + erc1155_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.IOTEX, }, auroraParams: { From 16ad96be4996c1c6cf578b27155f79de3933f410 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Wed, 2 Mar 2022 22:20:56 +0200 Subject: [PATCH 403/956] add: Testnet Tron contracts & validators --- src/factory/factories.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 606709934..4170133d5 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -42,9 +42,15 @@ export namespace ChainFactoryConfigs { tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), notifier, - minter_addr: "41cecf8ffbed6433c1cae2fe196925109aebc726f2", - erc721_addr: "41226a324faa855cf0e4774c682c9d772b72dd811e", - validators: EVM_TESTNET_VALIDATORS, + minter_addr: "41ebb63d3ee6e1a1f7b3ed15b3bd1b67863384d39a", + erc721_addr: "4199721637ef58af9b6b91d92939312e2dc0aa2aa3", + erc1155Minter: "418e2f8651676728d923158b5cddbb79c62d85a00c", + erc721Minter: "414a51be8f24a62529541b0ea831a2e02a4930841b", + validators: [ + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N" + ], nonce: Chain.TRON, }, avalancheParams: { From 1ac5bc7579078f305b2105346b5cb55c3ac0a98e Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Wed, 2 Mar 2022 23:02:11 +0200 Subject: [PATCH 404/956] add Testnet Tron --- .gitignore | 1 + package.json | 1 + src/consts.ts | 11 +++++++++++ src/scripts/deploy_tron.ts | 25 +++++++++++++++++++++++++ yarn.lock | 5 +++++ 5 files changed, 43 insertions(+) create mode 100644 src/scripts/deploy_tron.ts diff --git a/.gitignore b/.gitignore index bb2e93eee..f22e51745 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ coverage tsconfig.tsbuildinfo dist src/test.ts +.env diff --git a/package.json b/package.json index e55ff2bbf..ccf6e412b 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "devDependencies": { "@typescript-eslint/eslint-plugin": "^4.31.0", "@typescript-eslint/parser": "^4.28.3", + "dotenv": "^16.0.0", "eslint": "^7.30.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-eslint-comments": "^3.2.0", diff --git a/src/consts.ts b/src/consts.ts index 3949a2747..a8edf27ac 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -306,4 +306,15 @@ export const Config: AppConfig = { wrappedNftPrefix: "https://nft.xp.network/w/", }; +<<<<<<< Updated upstream export const FEE_MARGIN = { min: 0.5, max: 5 }; +======= +export const TestnetConfig: AppConfig = { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri:"https://testing-nft-index.herokuapp.com", + nftListAuthToken:"eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY0NDIzMDE0NiwiZXhwIjoxNjUyMDA2MTQ2fQ.gX6Auj4hFLdpem5Pk2kAnH71I19iGXfBYjmQrXylMFX_R1yzDEbylVAOLW6kABH9VjnLbAnCRdQvLaQIFmMUpw", + txSocketUri:"https://testnet-tx-socket.herokuapp.com", + tronScanUri:"https://apilist.tronscan.org/api/", + heartbeatUri:"https://testnet-validator-pinger.herokuapp.com/" +} +>>>>>>> Stashed changes diff --git a/src/scripts/deploy_tron.ts b/src/scripts/deploy_tron.ts new file mode 100644 index 000000000..ee6230e00 --- /dev/null +++ b/src/scripts/deploy_tron.ts @@ -0,0 +1,25 @@ +import { baseTronHelperFactory } from "../helpers/tron"; +//@ts-expect-error no typings, cope +import TronWeb from "tronweb"; +import {config} from 'dotenv'; +config(); + + +(async () => { + const api = "https://api.shasta.trongrid.io"; + const signer = process.env.TRON_SK!; + const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; + const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; + const frostGroupKey = process.env.FROST_GROUP_KEY!; + + const prov = new TronWeb({ fullHost: api }) + const tron = await baseTronHelperFactory(prov); + + const contracts = await tron.deployMinter( + signer, + frostGroupKey, + xpnftWrappedUri, + xpnft1155WrappedUri + ); + console.log(contracts); +})().catch((e) => console.error(e)); diff --git a/yarn.lock b/yarn.lock index 601981a83..93f0b9b0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2451,6 +2451,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dotenv@^16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" + integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== + duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" From 890de0ac21b449279c2cd0761cf6182658c2fd95 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Thu, 3 Mar 2022 08:27:46 +0200 Subject: [PATCH 405/956] Update factories.ts --- src/factory/factories.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index b65d7b2bc..cf5a87a10 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -219,8 +219,9 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - erc1155Minter: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", nonce: Chain.POLYGON, }, @@ -268,6 +269,7 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", nonce: Chain.ETHEREUM, From 1fb631f3110fa707b62a9ed348bc3a70e7347f74 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 3 Mar 2022 12:50:43 +0530 Subject: [PATCH 406/956] configs: use the seprate namespace for configs --- src/consts.ts | 23 ----------------------- src/factory/factories.ts | 12 ++++++------ 2 files changed, 6 insertions(+), 29 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index a8edf27ac..28e5a9554 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -11,7 +11,6 @@ import { AlgorandHelper, algorandHelper, } from "./helpers/algorand"; -import { AppConfig } from "./factory"; import { TezosHelper, tezosHelperFactory, TezosParams } from "./helpers/tezos"; import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; @@ -295,26 +294,4 @@ CHAIN_INFO.set(Chain.IOTEX, { chainId: 4689, }); -export const Config: AppConfig = { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://indexnft.herokuapp.com", - nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTYzODk2MjMzOCwiZXhwIjoxNjQ2NzM4MzM4fQ.9eQMNMtt-P6myPlji7nBC9PAwTftd0qQvwnIZSt4ycM4E45NpzCF0URsdYj_YN_xqQKQpcHiZu1o4EXjJa_-Zw", - txSocketUri: "transaction-socket.xp.network", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com", - wrappedNftPrefix: "https://nft.xp.network/w/", -}; - -<<<<<<< Updated upstream export const FEE_MARGIN = { min: 0.5, max: 5 }; -======= -export const TestnetConfig: AppConfig = { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri:"https://testing-nft-index.herokuapp.com", - nftListAuthToken:"eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY0NDIzMDE0NiwiZXhwIjoxNjUyMDA2MTQ2fQ.gX6Auj4hFLdpem5Pk2kAnH71I19iGXfBYjmQrXylMFX_R1yzDEbylVAOLW6kABH9VjnLbAnCRdQvLaQIFmMUpw", - txSocketUri:"https://testnet-tx-socket.herokuapp.com", - tronScanUri:"https://apilist.tronscan.org/api/", - heartbeatUri:"https://testnet-validator-pinger.herokuapp.com/" -} ->>>>>>> Stashed changes diff --git a/src/factory/factories.ts b/src/factory/factories.ts index cf5a87a10..602d8e395 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -16,11 +16,11 @@ const EVM_VALIDATORS = [ "0xc2a29b4e9fa71e9033a52611544403241c56ac5e", ]; -const EVM_TESTNET_VALIDATORS = [ - "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", - "0xae87208a5204B6606d3AB177Be5fdf62267Cd499", - "0x5002258315873AdCbdEF25a8E71C715A4f701dF5", -]; +// const _EVM_TESTNET_VALIDATORS = [ +// "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", +// "0xae87208a5204B6606d3AB177Be5fdf62267Cd499", +// "0x5002258315873AdCbdEF25a8E71C715A4f701dF5", +// ]; const middleware_uri = "https://notifier.xp.network"; @@ -49,7 +49,7 @@ export namespace ChainFactoryConfigs { validators: [ "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N" + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", ], nonce: Chain.TRON, }, From 4089939483a12d04af6bcc1827998343feaa2b5b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 3 Mar 2022 13:58:53 +0530 Subject: [PATCH 407/956] mapNonceToParams: add aurora --- src/factory/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index dbc619d88..55c5a2937 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -232,6 +232,7 @@ export interface ChainParams { velasParams: Web3Params; iotexParams: Web3Params; vechainParams: Web3Params; + auroraParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -273,6 +274,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.TEZOS, chainParams.tezosParams); cToP.set(Chain.VELAS, chainParams.velasParams); cToP.set(Chain.IOTEX, chainParams.iotexParams); + cToP.set(Chain.AURORA, chainParams.auroraParams); return cToP; } /** From 74d55d5c400d0294fa22ef680e9f39a0fe793865 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 3 Mar 2022 15:43:54 +0530 Subject: [PATCH 408/956] packages: exchange-rate: bump to latest --- package.json | 2 +- yarn.lock | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ccf6e412b..c83ba7503 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "algosdk": "^1.12.0", "axios": "^0.21.1", "bignumber.js": "9.0.1", - "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#d0c721e0674feed19d53ec5195f008dd004e8da7", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", "ethers": "^5.5.4", "js-base64": "^3.6.1", "socket.io-client": "^4.1.3", diff --git a/yarn.lock b/yarn.lock index 93f0b9b0b..c6acd7e63 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2349,6 +2349,12 @@ crypt@0.0.2: dependencies: axios "^0.21.1" +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": + version "1.0.0" + resolved "git+https://github.com/xp-network/exchange-rate#fe1803e74aa4fe9d086e215176d8481b338e3455" + dependencies: + axios "^0.21.1" + crypto-js@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" From 908fa19009f8840b0bef5a805308a95af9b3cbf3 Mon Sep 17 00:00:00 2001 From: Rishabh Kumar Date: Thu, 3 Mar 2022 10:35:06 +0000 Subject: [PATCH 409/956] add action_id --- src/helpers/elrond.ts | 26 ++++++++++++++++++++------ src/notifier/index.ts | 8 +++++++- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index d22c530f2..de6281ed8 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -240,12 +240,14 @@ export async function elrondHelperFactory( async function notifyValidator( txn: Transaction, sender: string, - uri: string[] + uri: string[], + action_id: string ) { await elrondParams.notifier.notifyElrond( txn.getHash().toString(), sender, - uri + uri, + action_id ); } @@ -584,7 +586,12 @@ export async function elrondHelperFactory( mintWith ); const tx = await signAndSend(sender, txu); - await notifyValidator(tx, sender.getAddress().toString(), [info.uri]); + await notifyValidator( + tx, + sender.getAddress().toString(), + [info.uri], + await extractAction(tx) + ); return tx; }, @@ -603,7 +610,12 @@ export async function elrondHelperFactory( nonce ); const tx = await signAndSend(sender, txu); - await notifyValidator(tx, sender.getAddress().toString(), [nft.uri]); + await notifyValidator( + tx, + sender.getAddress().toString(), + [nft.uri], + await extractAction(tx) + ); return tx; }, @@ -732,7 +744,8 @@ export async function elrondHelperFactory( await notifyValidator( tx, sender.getAddress().toString(), - nfts.map((n) => n.uri) + nfts.map((n) => n.uri), + await extractAction(tx) ); return tx; @@ -774,7 +787,8 @@ export async function elrondHelperFactory( await notifyValidator( tx, sender.getAddress().toString(), - nfts.map((n) => n.uri) + nfts.map((n) => n.uri), + await extractAction(tx) ); return tx; diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 37b4c54a2..1fd3ce251 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -19,11 +19,17 @@ export function evNotifier(url: string) { tx_hash: txHash, }); }, - async notifyElrond(txHash: string, sender: string, uris: string[]) { + async notifyElrond( + txHash: string, + sender: string, + uris: string[], + action_id: string + ) { await api.post("/tx/elrond", { tx_hash: txHash, sender, uris, + action_id, }); }, async notifyTezos(txHash: string) { From 1a31299d9ae9334abf30706424ac85dd305ea282 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Thu, 3 Mar 2022 14:28:54 +0200 Subject: [PATCH 410/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 602d8e395..a88efd518 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -335,9 +335,9 @@ export namespace ChainFactoryConfigs { }, auroraParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AURORA), - minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", + minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", erc1155Minter: "0x0000000000000000000000000000000000000000", erc721Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.AURORA, From c38e319baa6c9e1cc9124bd5bb814adb990842e5 Mon Sep 17 00:00:00 2001 From: Rishabh Kumar Date: Thu, 3 Mar 2022 12:36:08 +0000 Subject: [PATCH 411/956] add cd --- .github/workflows/dev.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/dev.yml diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml new file mode 100644 index 000000000..0d2f7a42b --- /dev/null +++ b/.github/workflows/dev.yml @@ -0,0 +1,31 @@ +name: Deploy XPJS to development + +on: + push: + branches: + - new/erc1155 +jobs: + run: + runs-on: ubuntu-latest + env: + AWS_ACCESS_KEY_ID: ${{ secrets.DEV_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.DEV_AWS_SECRET_ACCESS_KEY }} + steps: + - uses: actions/checkout@v2 + + - name: Install dependencies + run: yarn + + - name: Build + run: yarn build + + - name: Deploy + uses: reggionick/s3-deploy@v3 + with: + folder: build + bucket: ${{ secrets.DEV_S3_BUCKET }} + bucket-region: ${{ secrets.DEV_S3_BUCKET_REGION }} + invalidation: / + delete-removed: true + no-cache: true + private: false From a42ac368fb04bd30c8951849a360100b9a3212ac Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Thu, 3 Mar 2022 15:05:40 +0200 Subject: [PATCH 412/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index a88efd518..61c3ddbd6 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -326,11 +326,11 @@ export namespace ChainFactoryConfigs { iotexParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), - minter_addr: "0x0E99a77fedf8D1Eb783078D1Aa84160a5CBE96D7", - erc721_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", + minter_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", + erc721_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - erc1155_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", nonce: Chain.IOTEX, }, auroraParams: { From 9427973f29a370d5725534f8b69dc694ddd65c90 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 3 Mar 2022 19:44:03 +0530 Subject: [PATCH 413/956] tron: helpers: deployminter: convert from hex before returning contract addresss --- src/helpers/tron.ts | 32 ++++++++++++-------------------- src/scripts/deploy_tron.ts | 37 ++++++++++++++++++------------------- 2 files changed, 30 insertions(+), 39 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 321e4c0ce..cd534d548 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -119,11 +119,7 @@ export async function baseTronHelperFactory( abi: XPNft__factory.abi, bytecode: XPNft__factory.bytecode, feeLimit: 3000000000, - parameters: [ - "XPNFT", - "XPNFT", - nftPrefix - ] + parameters: ["XPNFT", "XPNFT", nftPrefix], }); return contract; @@ -135,13 +131,11 @@ export async function baseTronHelperFactory( abi: XPNft1155__factory.abi, bytecode: XPNft1155__factory.bytecode, feeLimit: 3000000000, - parameters: [ - nftPrefix - ] + parameters: [nftPrefix], }); return contract; - } + }; return { async mintNft(owner: TronSender, options: NftMintArgs): Promise { @@ -175,28 +169,26 @@ export async function baseTronHelperFactory( const gkx = EthBN.from(`0x${gk.slice(1).toString("hex")}`); // gkyp is either 0 or 1 const gkyp = EthBN.from(`0x${gk[0] & 1}`); - + const erc721 = await deployXpNft(deployer, xpnftPrefix); const erc1155 = await deployXpNft1155(deployer, xpnftPrefix1155); - + const minter = await provider.contract().new({ abi: Minter__factory.abi, bytecode: Minter__factory.bytecode, feeLimit: 6000000000, - parameters: [ - gkx, - gkyp, - whitelist - ], + parameters: [gkx, gkyp, whitelist], }); await erc721.transferOwnership(minter.address).send(); await erc1155.transferOwnership(minter.address).send(); - + const minterAddress: string = provider.address.fromHex(minter.address); + const erc721Address: string = provider.address.fromHex(erc721.address); + const erc1155Address: string = provider.address.fromHex(erc1155.address); return { - minter: minter.address, - xpnft: erc721.address, - xpnft1155: erc1155.address, + minter: minterAddress, + xpnft: erc721Address, + xpnft1155: erc1155Address, whitelist, }; }, diff --git a/src/scripts/deploy_tron.ts b/src/scripts/deploy_tron.ts index ee6230e00..d147feb98 100644 --- a/src/scripts/deploy_tron.ts +++ b/src/scripts/deploy_tron.ts @@ -1,25 +1,24 @@ import { baseTronHelperFactory } from "../helpers/tron"; //@ts-expect-error no typings, cope import TronWeb from "tronweb"; -import {config} from 'dotenv'; +import { config } from "dotenv"; config(); - - + (async () => { - const api = "https://api.shasta.trongrid.io"; - const signer = process.env.TRON_SK!; - const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; - const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; - const frostGroupKey = process.env.FROST_GROUP_KEY!; - - const prov = new TronWeb({ fullHost: api }) - const tron = await baseTronHelperFactory(prov); - - const contracts = await tron.deployMinter( - signer, - frostGroupKey, - xpnftWrappedUri, - xpnft1155WrappedUri - ); - console.log(contracts); + const api = "https://api.shasta.trongrid.io"; + const signer = process.env.TRON_SK!; + const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; + const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; + const frostGroupKey = process.env.FROST_GROUP_KEY!; + + const prov = new TronWeb({ fullHost: api }); + const tron = await baseTronHelperFactory(prov); + + const contracts = await tron.deployMinter( + signer, + frostGroupKey, + xpnftWrappedUri, + xpnft1155WrappedUri + ); + console.log(contracts); })().catch((e) => console.error(e)); From 119730987e14006f3dbf2086df202f9f60a46a8b Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 3 Mar 2022 16:44:15 +0200 Subject: [PATCH 414/956] fix Tron SCs --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 61c3ddbd6..f237e138a 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -42,14 +42,14 @@ export namespace ChainFactoryConfigs { tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), notifier, - minter_addr: "41ebb63d3ee6e1a1f7b3ed15b3bd1b67863384d39a", - erc721_addr: "4199721637ef58af9b6b91d92939312e2dc0aa2aa3", - erc1155Minter: "418e2f8651676728d923158b5cddbb79c62d85a00c", - erc721Minter: "414a51be8f24a62529541b0ea831a2e02a4930841b", + minter_addr: "TP3FdrW9bQP1mpBZyacESdi3q2oupDSBKX", + erc721_addr: "TBfgC2uXTbne4TqBP9TtkKbMPvvwYaAQxQ", + erc1155Minter: "TPY71u5ao8HSYtqGAALgaMubotTvGKv2MZ", + erc721Minter: "TSagiMvx3JQBAGABdqf4Pfj6P3cFWwJn2Y", validators: [ "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N" ], nonce: Chain.TRON, }, From 408e281384e294e74b0bab21e859e3a9997ede16 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 3 Mar 2022 20:19:45 +0530 Subject: [PATCH 415/956] actions: remove redundant actions --- .github/workflows/dev.yml | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 .github/workflows/dev.yml diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml deleted file mode 100644 index 0d2f7a42b..000000000 --- a/.github/workflows/dev.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Deploy XPJS to development - -on: - push: - branches: - - new/erc1155 -jobs: - run: - runs-on: ubuntu-latest - env: - AWS_ACCESS_KEY_ID: ${{ secrets.DEV_AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.DEV_AWS_SECRET_ACCESS_KEY }} - steps: - - uses: actions/checkout@v2 - - - name: Install dependencies - run: yarn - - - name: Build - run: yarn build - - - name: Deploy - uses: reggionick/s3-deploy@v3 - with: - folder: build - bucket: ${{ secrets.DEV_S3_BUCKET }} - bucket-region: ${{ secrets.DEV_S3_BUCKET_REGION }} - invalidation: / - delete-removed: true - no-cache: true - private: false From 5be895c1e00db9a0fe9d2691ff9d37e0178d1504 Mon Sep 17 00:00:00 2001 From: VKint <82875319+VKint@users.noreply.github.com> Date: Thu, 3 Mar 2022 17:29:02 +0200 Subject: [PATCH 416/956] Update factories.ts --- src/factory/factories.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index f237e138a..d0eceeff0 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -326,18 +326,18 @@ export namespace ChainFactoryConfigs { iotexParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), - minter_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", - erc721_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", + minter_addr: "0x0E99a77fedf8D1Eb783078D1Aa84160a5CBE96D7", + erc721_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", + erc1155_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.IOTEX, }, auroraParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AURORA), - minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", - erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", erc1155Minter: "0x0000000000000000000000000000000000000000", erc721Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.AURORA, From 47554a626276475a92af2a0113dd95df0a4911b3 Mon Sep 17 00:00:00 2001 From: VKint <82875319+VKint@users.noreply.github.com> Date: Thu, 3 Mar 2022 17:31:46 +0200 Subject: [PATCH 417/956] Update factories.ts --- src/factory/factories.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d0eceeff0..75bdb7e74 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -213,6 +213,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", nonce: Chain.AVALANCHE, }, polygonParams: { @@ -230,9 +231,9 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc1155_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", - erc721_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", - minter_addr: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", + erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", + minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", nonce: Chain.FANTOM, }, bscParams: { From 436f72bc11274699ebe1d471dfa3dab25d5b34fd Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 3 Mar 2022 19:30:03 +0200 Subject: [PATCH 418/956] fix address --- src/factory/index.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 55c5a2937..96490dbd1 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -566,24 +566,26 @@ export function ChainFactory( ) => { //@ts-ignore if (nft.native.contract) { - //@ts-ignore - checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); + if (fromChain.getNonce() != 9) { + //@ts-ignore + checkNotOldWrappedNft(new utils.getAddress(`0x${nft.native.contract}`)); + } } const mw = //@ts-ignore nft.native.contract && - mintWith && - checkMintWith( - mintWith, - //@ts-ignore - await getVerifiedContracts( + mintWith && + checkMintWith( + mintWith, //@ts-ignore - nft.native.contract.toLowerCase(), - toChain.getNonce(), - fromChain.getNonce() + await getVerifiedContracts( + //@ts-ignore + nft.native.contract.toLowerCase(), + toChain.getNonce(), + fromChain.getNonce() + ) ) - ) ? mintWith : toChain.XpNft; From 1cf09afa096b7a92d365b5c97f0ed34427fc6f7f Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 3 Mar 2022 23:46:27 +0530 Subject: [PATCH 419/956] elrond: update gas limit --- src/helpers/elrond.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index de6281ed8..b0a2881d8 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -61,8 +61,8 @@ const ESDT_ISSUE_ADDR = new Address( ); const ESDT_ISSUE_COST = "50000000000000000"; -const NFT_TRANSFER_COST = new BigNumber(45000000); -const NFT_UNFREEZE_COST = new BigNumber(45000000); +const NFT_TRANSFER_COST = new BigNumber(350000000); +const NFT_UNFREEZE_COST = new BigNumber(350000000); type ContractRes = { readonly [idx: string]: number | string; @@ -794,10 +794,10 @@ export async function elrondHelperFactory( return tx; }, async estimateValidateTransferNftBatch(_, nfts) { - return estimateGas(new BigNumber(60000000 + 5000000 * nfts.length)); + return estimateGas(new BigNumber(360000000 + 5000000 * nfts.length)); }, async estimateValidateUnfreezeNftBatch(_, nfts) { - return estimateGas(new BigNumber(70000000 + 5000000 * nfts.length)); + return estimateGas(new BigNumber(340000000 + 5000000 * nfts.length)); }, async validateAddress(adr: string) { try { From 5c43ad1f4f1b5e103a717b8e95d5ac5d267ec735 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Sun, 6 Mar 2022 14:27:45 +0200 Subject: [PATCH 420/956] add testnet_middleware_uri --- src/factory/factories.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 75bdb7e74..dee648418 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -23,10 +23,11 @@ const EVM_VALIDATORS = [ // ]; const middleware_uri = "https://notifier.xp.network"; +const testnet_middleware_uri = "http://65.21.195.10:8000/" export namespace ChainFactoryConfigs { export const TestNet: () => Partial = () => { - const notifier = evNotifier(middleware_uri); + const notifier = evNotifier(testnet_middleware_uri); return { elrondParams: { node_uri: TestNetRpcUri.ELROND, From f1dba789dce1047ce74d92d6978a29fb0133b90c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 6 Mar 2022 22:11:15 +0530 Subject: [PATCH 421/956] bridge: notifier: fix port --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index dee648418..808da4d39 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -23,7 +23,7 @@ const EVM_VALIDATORS = [ // ]; const middleware_uri = "https://notifier.xp.network"; -const testnet_middleware_uri = "http://65.21.195.10:8000/" +const testnet_middleware_uri = "http://65.21.195.10:8076/"; export namespace ChainFactoryConfigs { export const TestNet: () => Partial = () => { @@ -50,7 +50,7 @@ export namespace ChainFactoryConfigs { validators: [ "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N" + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", ], nonce: Chain.TRON, }, From a633b9d7fe4cf0fd487c1b287bb98879a5082bd9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 6 Mar 2022 22:29:03 +0530 Subject: [PATCH 422/956] bridge: notifier: change testnet_middleware_uri --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 808da4d39..77823bc72 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -23,7 +23,7 @@ const EVM_VALIDATORS = [ // ]; const middleware_uri = "https://notifier.xp.network"; -const testnet_middleware_uri = "http://65.21.195.10:8076/"; +const testnet_middleware_uri = "http://65.21.195.10/notify-test/"; export namespace ChainFactoryConfigs { export const TestNet: () => Partial = () => { From fb66c8d2215bc884e9258160ce0d9969697ff3d3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 6 Mar 2022 23:57:08 +0530 Subject: [PATCH 423/956] bridge: helpers: tron: utilize the mintWith value --- src/helpers/tron.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index cd534d548..a4e4adfdc 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -414,13 +414,20 @@ export async function tronHelperFactory( chain_nonce: number, to: string, id: NftInfo, - txFees: BigNumber + txFees: BigNumber, + mintWith ): Promise { setSigner(sender); await approveForMinter(id, sender); const txr = await minter - .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to) + .freezeErc721( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith + ) .send({ callValue: EthBN.from(txFees.toString(10)) }); await notifyValidator(txr); From a9ea98ffcb69483ed9c02576a8a18a935f5c2ca6 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Mon, 7 Mar 2022 13:14:53 +0200 Subject: [PATCH 424/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 77823bc72..315c86810 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -232,9 +232,9 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", - erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", - minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", + erc1155_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", + erc721_addr: "0x75f93b47719Ab5270d27cF28a74eeA247d5DfeFF", + minter_addr: "0x97dd1B3AE755539F56Db8b29258d7C925b20b84B", nonce: Chain.FANTOM, }, bscParams: { From 9e28f07e38bca26a2e2006241a9ebacafa9af807 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Mon, 7 Mar 2022 13:45:26 +0200 Subject: [PATCH 425/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 315c86810..dc8d18f17 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -299,9 +299,9 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FUSE), erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc721_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - erc1155_addr: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - minter_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + erc721_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", + erc1155_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", + minter_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", nonce: Chain.FUSE, }, tezosParams: { From dec25b8bc759860a4206b1dead521367eef5795e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 7 Mar 2022 17:20:50 +0530 Subject: [PATCH 426/956] bridge: helpers: tron: fix the unfreeze and gas estimation --- src/factory/index.ts | 20 +++++----- src/helpers/tron.ts | 94 ++++++++++++++++++++------------------------ 2 files changed, 52 insertions(+), 62 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 96490dbd1..2286c48b5 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -568,24 +568,24 @@ export function ChainFactory( if (nft.native.contract) { if (fromChain.getNonce() != 9) { //@ts-ignore - checkNotOldWrappedNft(new utils.getAddress(`0x${nft.native.contract}`)); + checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); } } const mw = //@ts-ignore nft.native.contract && - mintWith && - checkMintWith( - mintWith, + mintWith && + checkMintWith( + mintWith, + //@ts-ignore + await getVerifiedContracts( //@ts-ignore - await getVerifiedContracts( - //@ts-ignore - nft.native.contract.toLowerCase(), - toChain.getNonce(), - fromChain.getNonce() - ) + nft.native.contract.toLowerCase(), + toChain.getNonce(), + fromChain.getNonce() ) + ) ? mintWith : toChain.XpNft; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index a4e4adfdc..cb687e9d6 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -231,7 +231,7 @@ export async function tronHelperFactory( tronParams: TronParams ): Promise { const { provider, minter_addr } = tronParams; - const station = new TronStation(provider); + // const station = new TronStation(provider); const base = await baseTronHelperFactory(provider); const minter = await provider.contract(Minter__factory.abi, minter_addr); @@ -265,41 +265,41 @@ export async function tronHelperFactory( return action_id; } - const randomAction = () => - Math.floor( - Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000) - ).toString(); - - async function estimateGas( - addrs: string[], - func_sig: string, - params: { type: string; value: any }[] - ): Promise { - let energy = 0; - let bandwidth = 0; - const nrgSun = await station.energy.burnedEnergy2Trx(1, { unit: "sun" }); - const bandSun = 10; - - for (const [i, addr] of addrs.entries()) { - const res = await provider.transactionBuilder.triggerConstantContract( - minter.address, - func_sig, - {}, - params, - provider.address.toHex(addr) - ); - let nrg: number = res["energy_used"]; - if (i == addrs.length - 1 && addrs.length != 1) nrg *= 2; - energy += nrg; - const tx_raw: string = res["transaction"]["raw_data_hex"]; - bandwidth += tx_raw.length; - } - // Fee = energy * (sun per energy) + bandwidth * (sun per bandwidth) - // bandwidth = raw tx byte length - const fee = new BigNumber(energy).times(nrgSun).plus(bandwidth * bandSun); - - return fee; - } + // const _randomAction = () => + // Math.floor( + // Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000) + // ).toString(); + + // async function _estimateGas( + // addrs: string[], + // func_sig: string, + // params: { type: string; value: any }[] + // ): Promise { + // let energy = 0; + // let bandwidth = 0; + // const nrgSun = await station.energy.burnedEnergy2Trx(1, { unit: "sun" }); + // const bandSun = 10; + + // for (const [i, addr] of addrs.entries()) { + // const res = await provider.transactionBuilder.triggerConstantContract( + // minter.address, + // func_sig, + // {}, + // params, + // provider.address.toHex(addr) + // ); + // let nrg: number = res["energy_used"]; + // if (i == addrs.length - 1 && addrs.length != 1) nrg *= 2; + // energy += nrg; + // const tx_raw: string = res["transaction"]["raw_data_hex"]; + // bandwidth += tx_raw.length; + // } + // // Fee = energy * (sun per energy) + bandwidth * (sun per bandwidth) + // // bandwidth = raw tx byte length + // const fee = new BigNumber(energy).times(nrgSun).plus(bandwidth * bandSun); + + // return fee; + // } const isApprovedForMinter = async ( id: NftInfo, @@ -396,11 +396,12 @@ export async function tronHelperFactory( sender: TronSender, to: string, id: NftInfo, - txFees: BigNumber + txFees: BigNumber, + nonce ): Promise { setSigner(sender); const res = await minter - .withdrawNft(to, id.native.tokenId) + .withdrawNft(to, nonce, id.native.tokenId, id.native.contract) .send({ callValue: EthBN.from(txFees.toString(10)) }); await notifyValidator(res); @@ -434,21 +435,10 @@ export async function tronHelperFactory( return txr; }, async estimateValidateTransferNft( - to: string, - nftUri: NftInfo + _to: string, + _nftUri: NftInfo ): Promise { - return await estimateGas( - tronParams.validators, - "validateTransferNft(uint128,address,string)", - [ - { type: "uint128", value: randomAction() }, - { type: "address", value: to }, - { - type: "string", - value: nftUri, - }, - ] - ); + return new BigNumber(0); // TODO }, async estimateValidateUnfreezeNft( _to: string, From 63d297d38f5391df7acd47faeb165900f3879d6d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 8 Mar 2022 16:50:26 +0530 Subject: [PATCH 427/956] bridge: helpers: tron: add xpnft field --- src/helpers/tron.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index cb687e9d6..ab9c99eba 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -91,7 +91,9 @@ export type TronHelper = BaseTronHelper & Pick, "preTransfer"> & PreTransferRawTxn & ExtractTxnStatus & - WhitelistCheck; + WhitelistCheck & { + XpNft: string; + }; export async function baseTronHelperFactory( provider: TronWeb @@ -348,6 +350,7 @@ export async function tronHelperFactory( return { ...base, extractAction, + XpNft: tronParams.erc721_addr, approveForMinter, preTransfer: (s, nft, _fee) => approveForMinter(nft, s), async preTransferRawTxn(nft, address, _value) { From 79c461264e420b4bf4da9351510ba6632590e694 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 8 Mar 2022 17:35:44 +0530 Subject: [PATCH 428/956] packages: bump contracts dependency --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index c83ba7503..bf6726116 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,6 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.1.0", - "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#4875dd73dd3f1884c0129caa4638135b9c10eb05" + "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f" } } diff --git a/yarn.lock b/yarn.lock index c6acd7e63..a7ba760d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2343,12 +2343,6 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= -"crypto-exchange-rate@git+https://github.com/XP-NETWORK/exchange-rate#d0c721e0674feed19d53ec5195f008dd004e8da7": - version "1.0.0" - resolved "git+https://github.com/XP-NETWORK/exchange-rate#d0c721e0674feed19d53ec5195f008dd004e8da7" - dependencies: - axios "^0.21.1" - "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#fe1803e74aa4fe9d086e215176d8481b338e3455" @@ -5073,6 +5067,12 @@ xmlhttprequest@1.8.0: dependencies: ethers "^5.5.4" +"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f": + version "0.1.0" + resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f" + dependencies: + ethers "^5.5.4" + y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" From cffcc15a0ecdd12bf8fdd26646b220d98c8d1933 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 8 Mar 2022 18:48:51 +0530 Subject: [PATCH 429/956] bridge: helpers: tron: fix contract addresses and whitelist --- src/factory/factories.ts | 8 ++++---- src/helpers/tron.ts | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index dc8d18f17..ed3fbbabd 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -43,10 +43,10 @@ export namespace ChainFactoryConfigs { tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), notifier, - minter_addr: "TP3FdrW9bQP1mpBZyacESdi3q2oupDSBKX", - erc721_addr: "TBfgC2uXTbne4TqBP9TtkKbMPvvwYaAQxQ", - erc1155Minter: "TPY71u5ao8HSYtqGAALgaMubotTvGKv2MZ", - erc721Minter: "TSagiMvx3JQBAGABdqf4Pfj6P3cFWwJn2Y", + minter_addr: "TY46GA3GGdMtu9GMaaSPPSQtqq9CZAv5sK", + erc721_addr: "TDhb2kyurMwoc1eMndKzqNebji1ap1DJC4", + erc1155Minter: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", + erc721Minter: "TMVDt5PP53eQro5hLafibv2xWzSSDSMyjy", validators: [ "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index ab9c99eba..00330971a 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -164,7 +164,8 @@ export async function baseTronHelperFactory( ): Promise { if (whitelist.length == 0) { const unft = await deployErc721_i(deployer); - whitelist.push(unft.address); + console.log(provider.address.fromHex(unft.address)); + whitelist.push(provider.address.fromHex(unft.address)); } const gk = Buffer.from(frostGroupKey, "hex"); From 02bdd20be90c33a3c77c87cf710ede6b7ba2bc38 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 8 Mar 2022 22:47:13 +0530 Subject: [PATCH 430/956] bridge: helpers: tron: fix return type of unfreezeWrapped --- src/helpers/tron.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 00330971a..d14e9afac 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -34,7 +34,6 @@ import { WhitelistCheck, } from ".."; import { ChainNonceGet, NftInfo } from ".."; -import { Transaction } from "ethers"; import { EvNotifier } from "../notifier"; // Uses default private key in provider if sender is undefinedd @@ -81,7 +80,7 @@ export type BaseTronHelper = BalanceCheck & export type TronHelper = BaseTronHelper & TransferNftForeign & - UnfreezeForeignNft & + UnfreezeForeignNft & EstimateTxFees & ChainNonceGet & Approve & @@ -402,7 +401,7 @@ export async function tronHelperFactory( id: NftInfo, txFees: BigNumber, nonce - ): Promise { + ): Promise { setSigner(sender); const res = await minter .withdrawNft(to, nonce, id.native.tokenId, id.native.contract) From b8f8598fd53f2bc739612302d1abd9c016042b9d Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 9 Mar 2022 09:52:59 +0200 Subject: [PATCH 431/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index ed3fbbabd..6e28a97cd 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -328,11 +328,11 @@ export namespace ChainFactoryConfigs { iotexParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), - minter_addr: "0x0E99a77fedf8D1Eb783078D1Aa84160a5CBE96D7", - erc721_addr: "0xF03d628aD8Ae53919A3E65A0cB85dD8765963C56", + minter_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", + erc721_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - erc1155_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", nonce: Chain.IOTEX, }, auroraParams: { From 014b04c638b048c785a6547f7c205e12931a126f Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 9 Mar 2022 11:21:55 +0200 Subject: [PATCH 432/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 6e28a97cd..9e34ed2d1 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -259,9 +259,9 @@ export namespace ChainFactoryConfigs { harmonyParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), - minter_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc721_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", - erc1155_addr: "0xF547002799955812378137FA30C21039E69deF05", + minter_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc721_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + erc1155_addr: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", nonce: Chain.HARMONY, From ccbcfeb04aaa194dfa079292739ef021345b0738 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 9 Mar 2022 16:19:04 +0530 Subject: [PATCH 433/956] bridge: factories: testnet: update bsc and polygon contracts --- src/factory/factories.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 9e34ed2d1..6060873eb 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -66,10 +66,10 @@ export namespace ChainFactoryConfigs { polygonParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), - minter_addr: "0x1A9C0d370b6e93dFdbEA1145011Bc551bB1a2B60", - erc721_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", - erc1155Minter: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", - erc721Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", + minter_addr: "0x224f78681099D66ceEdf4E52ee62E5a98CCB4b9e", + erc721_addr: "0xb678b13E41a47e46A4046a4D8315b32E0F34389c", + erc1155Minter: "0x5A768f8dDC67ccCA1431879BcA28E93a6c7722bb", + erc721Minter: "0x6516E2D3387A9CF4E5e868E7842D110c95A9f3B4", nonce: Chain.POLYGON, }, fantomParams: { @@ -84,10 +84,10 @@ export namespace ChainFactoryConfigs { bscParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), - minter_addr: "0xbde1262d472aDd62C495a601806c22d228c2d70d", - erc721_addr: "0xD90e3e365C204CE22755fEfcbA0E221a2B8a17f6", - erc1155Minter: "0xDF7a8f8452E367fA0562d67FEb90aD746b3DD99A", - erc721Minter: "0x20929C60f0158A21521dFe695A3876871874C472", + minter_addr: "0x3Dd26fFf61D2a79f5fB77100d6daDBF073F334E6", + erc721_addr: "0x783eF7485DCF27a3Cf59F5A0A406eEe3f9b2AaeB", + erc1155Minter: "0x5dA3b7431f4581a7d35aEc2f3429174DC0f2A2E1", + erc721Minter: "0x97CD6fD6cbFfaa24f5c858843955C2601cc7F2b9", nonce: Chain.BSC, }, celoParams: { From 238f30583ec6d92c95b60ee24558ed92f0f8a4e7 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 10 Mar 2022 18:09:34 +0200 Subject: [PATCH 434/956] add Velas Testnet SCs --- src/factory/factories.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 6060873eb..3eb31b540 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -166,10 +166,10 @@ export namespace ChainFactoryConfigs { }, velasParams: { notifier, - erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - minter_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", - erc1155Minter: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", - erc721Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + erc721_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + minter_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", + erc1155Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", + erc721Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", nonce: Chain.VELAS, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), }, From ec9fb87f7ed4adc075af000ebfee05d347f11115 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Mar 2022 18:34:24 +0530 Subject: [PATCH 435/956] bridge: handlers: tezos: update for bridge two point o --- .gitignore | 1 + src/factory/factories.ts | 10 +++++----- src/helpers/tezos.ts | 11 ++++++----- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index f22e51745..528ccb209 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ tsconfig.tsbuildinfo dist src/test.ts .env +test* \ No newline at end of file diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 3eb31b540..d8937eb09 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -154,14 +154,14 @@ export namespace ChainFactoryConfigs { notifier, }, tezosParams: { - bridgeAddress: "KT1MRYxBimYh1PUt3LBhEAmvr7YMK2L7kqCL", + bridgeAddress: "KT1RgpK22M3xuhsMwm5qEKqVHdugJVm6H1jX", notifier, Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), - xpnftAddress: "KT1F7THd96y39MYKkTXmLyWkDZQ3H6QgubLh", + xpnftAddress: "KT1HopTgHvQBVFn6AqsdSLV2QoUEL29nQvoN", validators: [ - "tz1e4QByQTYQyj98cBiM42hejkMWB2Pg6iXg", - "tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb", - "tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6", + "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", + "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", + "tz1exbY3JKPRpo2KLegK8iqoVNRLn1zFrnZi", ], }, velasParams: { diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 96b9558db..db3d4eba4 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -189,15 +189,16 @@ export async function tezosHelperFactory({ } return { - async transferNftToForeign(sender, chain, to, nft, fee) { + async transferNftToForeign(sender, chain, to, nft, fee, mw) { const hash = await withBridge( sender, (bridge) => bridge.methods.freeze_fa2( + nft.collectionIdent, + parseInt(nft.native.token_id), chain, - nft.native.contract, to, - parseInt(nft.native.token_id) + mw ), { amount: fee.toNumber() / 1e6 } ); @@ -208,11 +209,11 @@ export async function tezosHelperFactory({ async balance(address) { return Tezos.tz.getBalance(address); }, - async unfreezeWrappedNft(sender, to, nft, fee) { + async unfreezeWrappedNft(sender, to, nft, fee, nonce) { const hash = await withBridge( sender, (bridge) => - bridge.methods.withdraw_nft(to, parseInt(nft.native.token_id)), + bridge.methods.withdraw_nft(to, parseInt(nft.native.token_id), nonce), { amount: fee.toNumber() / 1e6 } ); From a5cf035cd484633d98df889e2bfa8254795c8e53 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 15 Mar 2022 16:50:18 +0530 Subject: [PATCH 436/956] bridge: handlers: tezos: fix factory and update contracts --- src/factory/factories.ts | 4 ++-- src/factory/index.ts | 24 ++++++++++++++---------- src/helpers/tezos.ts | 3 +++ 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d8937eb09..f982ba232 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -154,10 +154,10 @@ export namespace ChainFactoryConfigs { notifier, }, tezosParams: { - bridgeAddress: "KT1RgpK22M3xuhsMwm5qEKqVHdugJVm6H1jX", + bridgeAddress: "KT1XcqRsgNpuAv1ediqnRie5zqWsQGSHhYac", notifier, Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), - xpnftAddress: "KT1HopTgHvQBVFn6AqsdSLV2QoUEL29nQvoN", + xpnftAddress: "KT1GzPNDh8MBZnxEAiwxvaj69bLGZ58q3TbT", validators: [ "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", diff --git a/src/factory/index.ts b/src/factory/index.ts index 2286c48b5..92e9c8b42 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -566,7 +566,7 @@ export function ChainFactory( ) => { //@ts-ignore if (nft.native.contract) { - if (fromChain.getNonce() != 9) { + if (fromChain.getNonce() !== 9 && fromChain.getNonce() !== 18) { //@ts-ignore checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); } @@ -575,17 +575,17 @@ export function ChainFactory( const mw = //@ts-ignore nft.native.contract && - mintWith && - checkMintWith( - mintWith, - //@ts-ignore - await getVerifiedContracts( + mintWith && + checkMintWith( + mintWith, //@ts-ignore - nft.native.contract.toLowerCase(), - toChain.getNonce(), - fromChain.getNonce() + await getVerifiedContracts( + //@ts-ignore + nft.native.contract.toLowerCase(), + toChain.getNonce(), + fromChain.getNonce() + ) ) - ) ? mintWith : toChain.XpNft; @@ -597,6 +597,10 @@ export function ChainFactory( if (!(await toChain.validateAddress(receiver))) { throw Error("invalid address"); } + console.log(mw) + if (mw === undefined || mw === "") { + throw new Error(`Mint with is not set`); + } if (await isWrappedNft(nft)) { const res = await fromChain.unfreezeWrappedNft( sender, diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index db3d4eba4..040e1a9dd 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -58,6 +58,8 @@ export type TezosHelper = TransferNftForeign< address: NftInfo, sender: TezosSigner ): Promise; + } & { + XpNft: string; }; export type TezosParams = { @@ -189,6 +191,7 @@ export async function tezosHelperFactory({ } return { + XpNft: xpnftAddress, async transferNftToForeign(sender, chain, to, nft, fee, mw) { const hash = await withBridge( sender, From 3a9bccb64475a17654646ca1a1dd7cf179a72558 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 15 Mar 2022 16:55:12 +0530 Subject: [PATCH 437/956] bridge: factory: contracts: update iotex and harmony addresses --- src/factory/factories.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index f982ba232..4adb043fd 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -102,10 +102,10 @@ export namespace ChainFactoryConfigs { harmonyParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), - minter_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", - erc721_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - erc1155Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + minter_addr: "0x198Cae9EE853e7b44E99c0b35Bddb451F83485d5", + erc721_addr: "0x1280c5c11bF0aAaaEAeBc998893B42e08B26fD5A", + erc1155Minter: "0xB546c2358A6e4b0B83192cCBB83CaE37FA572fe1", + erc721Minter: "0xb036640d6f7cAfd338103dc60493250561Af2eBc", nonce: Chain.HARMONY, }, ropstenParams: { @@ -176,10 +176,10 @@ export namespace ChainFactoryConfigs { iotexParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.IOTEX), - minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + minter_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc721_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", + erc1155Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", + erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", nonce: Chain.IOTEX, }, }; From a7b0d15d1892e17b102b24f523424241421eeb7a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 15 Mar 2022 18:49:47 +0530 Subject: [PATCH 438/956] bridge: factory: adapt is wrapped for tezos --- src/factory/index.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 92e9c8b42..21f948576 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -204,7 +204,7 @@ export type ChainFactory = { ): Promise; checkWhitelist( - chain: Partial>, + chain: Partial> & ChainNonceGet, nft: NftInfo ): Promise; }; @@ -426,7 +426,10 @@ export function ChainFactory( ); } - async function isWrappedNft(nft: NftInfo) { + async function isWrappedNft(nft: NftInfo, fc: number) { + if (fc === Chain.TEZOS) { + return (typeof (nft.native as any).meta.wrapped !== undefined) + } try { checkNotOldWrappedNft(nft.collectionIdent); } catch (_) { @@ -471,7 +474,7 @@ export function ChainFactory( if (e.native.contractType && e.native.contractType === "ERC721") { throw new Error(`ERC721 is not supported`); } - if (await isWrappedNft(e)) { + if (await isWrappedNft(e, from.getNonce())) { wrapped.push(e); } else { unwrapped.push(e); @@ -597,11 +600,10 @@ export function ChainFactory( if (!(await toChain.validateAddress(receiver))) { throw Error("invalid address"); } - console.log(mw) if (mw === undefined || mw === "") { throw new Error(`Mint with is not set`); } - if (await isWrappedNft(nft)) { + if (await isWrappedNft(nft, fromChain.getNonce())) { const res = await fromChain.unfreezeWrappedNft( sender, receiver, @@ -643,7 +645,7 @@ export function ChainFactory( return await algo.claimableNfts(txSocket, claimer); }, async checkWhitelist(chain, nft) { - if (!chain.isNftWhitelisted || (await isWrappedNft(nft))) { + if (!chain.isNftWhitelisted || (await isWrappedNft(nft, chain.getNonce()))) { return true; } From df0139882b5f76dad26f3f8274beec4dcda4a6f8 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 15 Mar 2022 19:20:20 +0530 Subject: [PATCH 439/956] bridge: factory: tezos: fix the argument order --- src/helpers/tezos.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 040e1a9dd..2e5e7059a 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -197,11 +197,11 @@ export async function tezosHelperFactory({ sender, (bridge) => bridge.methods.freeze_fa2( - nft.collectionIdent, - parseInt(nft.native.token_id), chain, + nft.collectionIdent, + mw, to, - mw + parseInt(nft.native.token_id), ), { amount: fee.toNumber() / 1e6 } ); @@ -213,10 +213,13 @@ export async function tezosHelperFactory({ return Tezos.tz.getBalance(address); }, async unfreezeWrappedNft(sender, to, nft, fee, nonce) { + console.log("Unfreezing") + console.log(nft.native.contract) const hash = await withBridge( sender, - (bridge) => - bridge.methods.withdraw_nft(to, parseInt(nft.native.token_id), nonce), + (bridge) => { + return bridge.methods.withdraw_nft(nft.native.contract, nonce, to, parseInt(nft.native.token_id)) + }, { amount: fee.toNumber() / 1e6 } ); From 427cff5ccb89280e523d38076af8382715b975a2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 16 Mar 2022 18:53:47 +0530 Subject: [PATCH 440/956] tezos: handlers: match transfer functionality with other chains --- src/factory/index.ts | 5 +++-- src/helpers/tezos.ts | 5 ++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 21f948576..e42141657 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -428,7 +428,7 @@ export function ChainFactory( async function isWrappedNft(nft: NftInfo, fc: number) { if (fc === Chain.TEZOS) { - return (typeof (nft.native as any).meta.wrapped !== undefined) + return (typeof (nft.native as any).meta?.wrapped !== 'undefined') } try { checkNotOldWrappedNft(nft.collectionIdent); @@ -448,7 +448,7 @@ export function ChainFactory( fc: number ): Promise { const res = await axios.get<{ data: { to: string }[] }>( - `https://sc-verify.xp.network/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}` + `https://nodes.xp.network/sc-verify/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}` ); return res.data.data.map((r) => r.to); } @@ -603,6 +603,7 @@ export function ChainFactory( if (mw === undefined || mw === "") { throw new Error(`Mint with is not set`); } + console.log(`Minting With : ${mw}`) if (await isWrappedNft(nft, fromChain.getNonce())) { const res = await fromChain.unfreezeWrappedNft( sender, diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 2e5e7059a..f3566db18 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -32,7 +32,7 @@ import { EvNotifier } from "../notifier"; type TezosSigner = WalletProvider | Signer; -type TezosNftInfo = { +export type TezosNftInfo = { contract: string; token_id: string; }; @@ -193,6 +193,7 @@ export async function tezosHelperFactory({ return { XpNft: xpnftAddress, async transferNftToForeign(sender, chain, to, nft, fee, mw) { + await preTransfer(sender, nft) const hash = await withBridge( sender, (bridge) => @@ -213,8 +214,6 @@ export async function tezosHelperFactory({ return Tezos.tz.getBalance(address); }, async unfreezeWrappedNft(sender, to, nft, fee, nonce) { - console.log("Unfreezing") - console.log(nft.native.contract) const hash = await withBridge( sender, (bridge) => { From 321d9b859607108c1465d34d33a7a7805af35ae7 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 17 Mar 2022 15:38:35 +0200 Subject: [PATCH 441/956] change addresses for tezos mainnet in factories.ts --- src/factory/factories.ts | 13 ++++++++----- yarn.lock | 6 ------ 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 4adb043fd..c4d64ce1d 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -305,14 +305,17 @@ export namespace ChainFactoryConfigs { nonce: Chain.FUSE, }, tezosParams: { - bridgeAddress: "KT1B2zBPLVe51oXeuBJ8c7p2vHhi37jGxGHR", + bridgeAddress: "KT1WKtpe58XPCqNQmPmVUq6CZkPYRms5oLvu", notifier, Tezos: new TezosToolkit(MainNetRpcUri.TEZOS), - xpnftAddress: "KT1FxthB8GQvT7HnuczSp1qJk4w7dR5umKrx", + xpnftAddress: "KT1NEx6MX2GUEKMTX9ydyu8mn9WBNEz3QPEp", validators: [ - "tz1bxXSUcu1PqceWBw1zwc4zMRQuSLpbQ5VX", - "tz1VBF2LXnnnqKqKmTQqdESGx91kVLKyZMv4", - "tz1hMBJzUouzXYRk3mpdVi2QHY2gP594Kk2G", + "tz1MwAQrsg5EgeFD1AQHT2FTutnj9yQJNcjM", + "tz1b5AMdXs9nDxsqoN9wa3HTusvhahgBRWuF", + "tz1L5DjmMEHbj5npRzZewSARLmTQQyESW4Mj", + "tz1csq1THV9rKQQexo2XfSjSEJEg2wRCSHsD", + "tz1TBhd1NeZNtWsTbecee8jDMDzeBNLmpViN", + "tz1SHcDnXRgb7kWidiaM2J6bbTS7x5jzBr67" ], }, velasParams: { diff --git a/yarn.lock b/yarn.lock index a7ba760d3..3b79a5d5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5061,12 +5061,6 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#4875dd73dd3f1884c0129caa4638135b9c10eb05": - version "0.1.0" - resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#4875dd73dd3f1884c0129caa4638135b9c10eb05" - dependencies: - ethers "^5.5.4" - "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f": version "0.1.0" resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f" From 144d5920c5cfb22ffe6d486291bb80f98f5899a9 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 18 Mar 2022 14:02:31 +0530 Subject: [PATCH 442/956] fix sc-verify url --- src/factory/index.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index e42141657..19f1c85a7 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -448,7 +448,7 @@ export function ChainFactory( fc: number ): Promise { const res = await axios.get<{ data: { to: string }[] }>( - `https://nodes.xp.network/sc-verify/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}` + `https://sc-verify.xp.network/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}` ); return res.data.data.map((r) => r.to); } @@ -575,15 +575,12 @@ export function ChainFactory( } } - const mw = - //@ts-ignore - nft.native.contract && + const mw = "contract" in nft.native && mintWith && checkMintWith( mintWith, - //@ts-ignore await getVerifiedContracts( - //@ts-ignore + //@ts-expect-error contract is checked nft.native.contract.toLowerCase(), toChain.getNonce(), fromChain.getNonce() @@ -620,7 +617,7 @@ export function ChainFactory( receiver, nft, new BigNumber(fee), - mw || "" + mw ); return res; } From 666b3d5ed3820664ecfbe547fd1741dbef71db94 Mon Sep 17 00:00:00 2001 From: rupansh Date: Fri, 18 Mar 2022 17:18:20 +0530 Subject: [PATCH 443/956] tezos: fix isWrappedNft --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 19f1c85a7..3252768c0 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -428,7 +428,7 @@ export function ChainFactory( async function isWrappedNft(nft: NftInfo, fc: number) { if (fc === Chain.TEZOS) { - return (typeof (nft.native as any).meta?.wrapped !== 'undefined') + return (typeof (nft.native as any).meta?.token?.metadata?.wrapped !== 'undefined') } try { checkNotOldWrappedNft(nft.collectionIdent); From 687d0d36c359cc86b057572d3bafbffa3163ccf5 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 20 Mar 2022 19:36:25 +0530 Subject: [PATCH 444/956] elrond: increase fees for transfers to work --- src/factory/factories.ts | 12 ++++++------ src/factory/index.ts | 22 +++++++++++----------- src/helpers/elrond.ts | 7 ++++--- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index c4d64ce1d..fa348b388 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -32,11 +32,11 @@ export namespace ChainFactoryConfigs { elrondParams: { node_uri: TestNetRpcUri.ELROND, minter_address: - "erd1qqqqqqqqqqqqqpgqzses02wme3gsx320dpja2p2kk3rckgcfksmsj8grdk", + "erd1qqqqqqqqqqqqqpgqnd6nmq4vh8e3xrxqrxgpwfldgp3sje83k4as3lusln", esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqwu3ulmuxppa2e537ajst468wplkxxsqyksms9az8at", - esdt_nft: "XPNFT-aca910", - esdt_swap: "WEGLD-f8dc4c", + "erd1qqqqqqqqqqqqqpgq62h6fe5myaajkeva09whewaw8u2hsuexk4as29tzn9", + esdt_nft: "XPNFT-fc0a99", + esdt_swap: "WEGLD-2d1d69", notifier, nonce: 2, }, @@ -154,10 +154,10 @@ export namespace ChainFactoryConfigs { notifier, }, tezosParams: { - bridgeAddress: "KT1XcqRsgNpuAv1ediqnRie5zqWsQGSHhYac", + bridgeAddress: "KT195omxiopL2ZDqM3g8hRj2sSCG2pTqjNEj", notifier, Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), - xpnftAddress: "KT1GzPNDh8MBZnxEAiwxvaj69bLGZ58q3TbT", + xpnftAddress: "KT1LZ3YqxgHy8jao5L8VBFyMUoPkxhgfLhLV", validators: [ "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", diff --git a/src/factory/index.ts b/src/factory/index.ts index 3252768c0..3fb22637f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -576,18 +576,18 @@ export function ChainFactory( } const mw = "contract" in nft.native && - mintWith && - checkMintWith( - mintWith, - await getVerifiedContracts( - //@ts-expect-error contract is checked - nft.native.contract.toLowerCase(), - toChain.getNonce(), - fromChain.getNonce() - ) + mintWith && + checkMintWith( + mintWith, + await getVerifiedContracts( + //@ts-expect-error contract is checked + nft.native.contract.toLowerCase(), + toChain.getNonce(), + fromChain.getNonce() ) - ? mintWith - : toChain.XpNft; + ) + ? mintWith + : toChain.XpNft; await requireBridge([fromChain.getNonce(), toChain.getNonce()]); diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index b0a2881d8..c6bd06a72 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -326,7 +326,7 @@ export async function elrondHelperFactory( if (res === undefined || new BigNumber(res.balance).lt(value)) { const utx = new Transaction({ receiver: swapContract, - gasLimit: new GasLimit(50000000), + gasLimit: new GasLimit(300000000), value: new Balance( Egld.getToken(), Egld.getNonce(), @@ -389,7 +389,7 @@ export async function elrondHelperFactory( ) => { return new Transaction({ receiver: address, - gasLimit: new GasLimit(70000000), + gasLimit: new GasLimit(300000000), data: TransactionPayload.contractCall() .setFunction(new ContractFunction("MultiESDTNFTTransfer")) .addArg(new AddressValue(mintContract)) @@ -421,7 +421,7 @@ export async function elrondHelperFactory( ) => { return new Transaction({ receiver: address, - gasLimit: new GasLimit(70000000), + gasLimit: new GasLimit(300000000), data: TransactionPayload.contractCall() .setFunction(new ContractFunction("MultiESDTNFTTransfer")) .addArg(new AddressValue(mintContract)) @@ -602,6 +602,7 @@ export async function elrondHelperFactory( txFees: EasyBalance, nonce ): Promise { + console.log(`Unfreezing`) const txu = unsignedUnfreezeNftTxn( await getAddress(sender), to, From 9f4ffa8de1596c35809fa803f07ef38f53e328dc Mon Sep 17 00:00:00 2001 From: rocalex Date: Mon, 21 Mar 2022 11:36:08 +0200 Subject: [PATCH 445/956] fix algorand helper --- src/helpers/algorand.ts | 103 ++++++++++++++++++------------ src/helpers/bridge_pool.tmpl.teal | 65 +++++++++++++++++++ 2 files changed, 126 insertions(+), 42 deletions(-) create mode 100644 src/helpers/bridge_pool.tmpl.teal diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index c49e3d50f..20d36d034 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -1,5 +1,5 @@ import WalletConnect from "@walletconnect/client"; -import algosdk, { SuggestedParams } from "algosdk"; +import algosdk, { Algodv2, SuggestedParams } from "algosdk"; import { formatJsonRpcRequest } from "@json-rpc-tools/utils"; import axios from "axios"; import { BigNumber } from "bignumber.js"; @@ -173,6 +173,27 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { } } + async function compileProgram( + client: Algodv2, + programSource: string + ) { + const enc = new TextEncoder(); + const programBytes = enc.encode(programSource); + const compileResponse = await client.compile(programBytes).do(); + const compiledBytes = new Uint8Array( + Buffer.from(compileResponse.result, 'base64') + ); + return compiledBytes; + }; + + async function getMintPoolProgram(client: Algodv2, recv: any) { + const poolSrc = fs.readFileSync(__dirname + '/bridge_pool.tmpl.teal'); + return await compileProgram( + client, + poolSrc.toString().replace('TMPL_RECV_ADDR', recv) + ); + } + const transferNft = async ( signer: AlgoSignerH, chain_nonce: number, @@ -181,12 +202,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { txFees: BigNumber ) => { const suggested = await algod.getTransactionParams().do(); - const feesTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: appAddr, - amount: BigInt(txFees.toString()), - suggestedParams: suggested, - }); + const transferTx = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ from: signer.address, @@ -199,7 +215,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { from: signer.address, appIndex: args.sendNftAppId, appArgs: [ - encoder.encode("receive_nft"), + encoder.encode("freeze_nft"), encoder.encode(to), new Uint8Array( Buffer.concat([ @@ -211,18 +227,16 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { foreignAssets: [nft.native.nftId], suggestedParams: suggested, }); - algosdk.assignGroupID([feesTx, transferTx, tCallTx]); + algosdk.assignGroupID([tCallTx, transferTx]); const encodedTxns = [ - { txn: Base64.fromUint8Array(feesTx.toByte()) }, - { txn: Base64.fromUint8Array(transferTx.toByte()) }, { txn: Base64.fromUint8Array(tCallTx.toByte()) }, + { txn: Base64.fromUint8Array(transferTx.toByte()) }, ]; const signedTxns = await signer.algoSigner.signTxn(encodedTxns); const sendRes = await algod .sendRawTransaction([ Base64.toUint8Array(signedTxns[0].blob), Base64.toUint8Array(signedTxns[1].blob), - Base64.toUint8Array(signedTxns[2].blob), ]) .do(); await waitTxnConfirm(sendRes.txId); @@ -267,28 +281,21 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { async function claimNft(signer: AlgoSignerH, info: ClaimNftInfo) { await optInNft(signer, info); + const program = await getMintPoolProgram(algod, signer.address) + const lsig = new algosdk.LogicSigAccount(program) const suggested = await algod.getTransactionParams().do(); - - const callTxn = algosdk.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: info.appId, - appArgs: [encoder.encode("transfer_nft")], - foreignAssets: [info.nftId], + const xferTxn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: lsig.address(), suggestedParams: suggested, - }); - const encodedCall = Base64.fromUint8Array(callTxn.toByte()); - const signedCall = await signer.algoSigner.signTxn([ - { - txn: encodedCall, - }, - ]); - const callRes = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedCall[0].blob, - }); - - await waitTxnConfirm(callRes.txId); - return callRes.txId; + to: signer.address, + amount: 1, + assetIndex: info.nftId + }) + const lstx = algosdk.signLogicSigTransactionObject(xferTxn, lsig) + const { txId } = await algod.sendRawTransaction([lstx.blob]).do() + + await waitTxnConfirm(txId); + return txId; } return { @@ -306,19 +313,31 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { const callTx = algosdk.makeApplicationNoOpTxnFromObject({ from: sender.address, appIndex: args.sendNftAppId, - appArgs: [encoder.encode("opt_in_nft")], + appArgs: [encoder.encode("optin_asset")], foreignAssets: [nft.native.nftId], suggestedParams: suggested, }); - const encodedTx = Base64.fromUint8Array(callTx.toByte()); - const signedTxCall = await sender.algoSigner.signTxn([ - { txn: encodedTx }, - ]); - const res = await sender.algoSigner.send({ - ledger: sender.ledger, - tx: signedTxCall[0].blob, - }); - await waitTxnConfirm(res.txId); + const feesTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ + from: sender.address, + suggestedParams: suggested, + to: appAddr, + amount: _fee.toNumber() + }) + + algosdk.assignGroupID([callTx, feesTx]); + const encodedTxns = [ + { txn: Base64.fromUint8Array(callTx.toByte()) }, + { txn: Base64.fromUint8Array(feesTx.toByte()) }, + ]; + const signedTxns = await sender.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + Base64.toUint8Array(signedTxns[0].blob), + Base64.toUint8Array(signedTxns[1].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + return suggested; }, transferNftToForeign: transferNft, diff --git a/src/helpers/bridge_pool.tmpl.teal b/src/helpers/bridge_pool.tmpl.teal new file mode 100644 index 000000000..3d80320f8 --- /dev/null +++ b/src/helpers/bridge_pool.tmpl.teal @@ -0,0 +1,65 @@ +#pragma version 5 +intcblock 1 6 3 +bytecblock TMPL_RECV_ADDR +txn TypeEnum +pushint 4 // axfer +== +txn AssetAmount +intc_0 // 1 +== +&& +txn AssetReceiver +bytec_0 // TMPL_RECV_ADDR +== +&& +bnz main_l6 +gtxn 0 TypeEnum +intc_1 // appl +== +gtxna 0 ApplicationArgs 0 +pushbytes 0x6372656174655f6e6674 // "create_nft" +== +&& +gtxna 0 Accounts 1 +bytec_0 // TMPL_RECV_ADDR +== +&& +gtxn 1 TypeEnum +intc_2 // acfg +== +&& +gtxn 1 ConfigAssetTotal +intc_0 // 1 +== +&& +gtxn 1 ConfigAssetDecimals +pushint 0 // 0 +== +&& +bnz main_l5 +gtxn 0 TypeEnum +intc_1 // appl +== +gtxna 0 ApplicationArgs 0 +pushbytes 0x77697468647261775f6e6674 // "withdraw_nft" +== +&& +gtxn 1 TypeEnum +intc_2 // acfg +== +&& +gtxn 1 ConfigAsset +gtxna 0 Assets 0 +== +&& +bnz main_l4 +err +main_l4: +intc_0 // 1 +return +main_l5: +intc_0 // 1 +return +main_l6: +intc_0 // 1 +return \ No newline at end of file From d76b70dae50f51d7f0a6fe116fb37d103842da00 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 21 Mar 2022 16:29:59 +0530 Subject: [PATCH 446/956] bridge: handlers: algorand: use mintWith and fix unfreeze function --- src/helpers/algorand.ts | 45 +++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 20d36d034..f315a5061 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -1,7 +1,6 @@ import WalletConnect from "@walletconnect/client"; import algosdk, { Algodv2, SuggestedParams } from "algosdk"; import { formatJsonRpcRequest } from "@json-rpc-tools/utils"; -import axios from "axios"; import { BigNumber } from "bignumber.js"; import { Base64 } from "js-base64"; import { @@ -16,6 +15,7 @@ import { ValidateAddress, } from ".."; import MyAlgoConnect from "@randlabs/myalgo-connect"; +import fs from "fs" type TxResp = { txId: string; @@ -143,11 +143,11 @@ export type AlgorandParams = { sendNftAppId: number; }; -type MinWrappedNft = { - wrapped: { - origin: string; - }; -}; +// type MinWrappedNft = { +// wrapped: { +// origin: string; +// }; +// }; const encoder = new TextEncoder(); const MINT_NFT_COST = new BigNumber(1000); @@ -199,7 +199,8 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { chain_nonce: number, to: string, nft: NftInfo, - txFees: BigNumber + _txFees: BigNumber, + mintWith?: string ) => { const suggested = await algod.getTransactionParams().do(); @@ -211,19 +212,23 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { assetIndex: nft.native.nftId, suggestedParams: suggested, }); + const appArgs = [ + encoder.encode("freeze_nft"), + encoder.encode(to), + new Uint8Array( + Buffer.concat([ + Buffer.from(new Uint32Array([0]).buffer), + Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse(), + ]) + ), + ] + if (mintWith) { + appArgs.push(encoder.encode(mintWith)); + } const tCallTx = algosdk.makeApplicationNoOpTxnFromObject({ from: signer.address, appIndex: args.sendNftAppId, - appArgs: [ - encoder.encode("freeze_nft"), - encoder.encode(to), - new Uint8Array( - Buffer.concat([ - Buffer.from(new Uint32Array([0]).buffer), - Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse(), - ]) - ), - ], + appArgs, foreignAssets: [nft.native.nftId], suggestedParams: suggested, }); @@ -341,11 +346,11 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { return suggested; }, transferNftToForeign: transferNft, - unfreezeWrappedNft: async (signer, to, nft, txFees) => { - const nftMeta = await axios.get(nft.uri); + unfreezeWrappedNft: async (signer, to, nft, txFees, nonce) => { + // const nftMeta = await axios.get(nft.uri); return await transferNft( signer, - parseInt(nftMeta.data.wrapped.origin), + parseInt(nonce), to, nft, txFees From d670cef6ee9490baea637b65691a7165045040da Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 21 Mar 2022 17:00:30 +0530 Subject: [PATCH 447/956] bridge: handlers: algorand: fix claimable NFTs (1/n) --- package.json | 2 +- src/helpers/algorand.ts | 28 +++++++++++----------------- yarn.lock | 8 ++++---- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index bf6726116..dd062904e 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@taquito/tzip12": "^11.1.0", "@vechain/ethers": "^4.0.27-5", "@walletconnect/client": "^1.7.0", - "algosdk": "^1.12.0", + "algosdk": "^1.15.0-beta.1", "axios": "^0.21.1", "bignumber.js": "9.0.1", "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index f315a5061..deba91376 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -359,26 +359,20 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), - claimableNfts: async (txSocket: AlgorandSocketHelper, owner: string) => { - await txSocket.cleanNfts(owner); - const claims = await txSocket.claimNfts(owner); + claimableNfts: async (_txSocket: AlgorandSocketHelper, owner: string) => { + const program = await getMintPoolProgram(algod, owner) + const lsig = new algosdk.LogicSigAccount(program) - const res = await Promise.all( - claims.map(async (v) => { - const appId = parseInt(v.app_id); - const nftId = parseInt(v.nft_id); - const assetInfo = await algod.getAssetByID(nftId).do(); + const idx = new algosdk.Indexer(args.algodApiKey, args.algodUri, args.algodPort) - return { - nftId, - appId, - uri: assetInfo.params.url as string, - name: (assetInfo.params.name as string) || "", - }; - }) - ); + const nfts = await idx.lookupAccountAssets(lsig.address()).do() + console.log(nfts) + + const claims = nfts["assets"] + + console.log(claims) - return res; + return []; }, walletConnectSigner( connector: WalletConnect, diff --git a/yarn.lock b/yarn.lock index 3b79a5d5a..06e33605b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1721,10 +1721,10 @@ algo-msgpack-with-bigint@^2.1.1: resolved "https://registry.yarnpkg.com/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz#38bb717220525b3ff42232eefdcd9efb9ad405d6" integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== -algosdk@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.12.0.tgz#77e2a22568495210d26ecd1f830e98cc069815b5" - integrity sha512-Iqek0AwcCeXLywVg4E8gWWjmuPZ10P7PUmpZrlR71FSNyEtX4Ie+UgrNHWhkYnhyykRU5mjtvD4Hrb2eOepsGA== +algosdk@^1.15.0-beta.1: + version "1.15.0-beta.1" + resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.15.0-beta.1.tgz#b9e6d1abaad087a4c1aa0dbb75e6309d7bf69821" + integrity sha512-J3HCq4e01WZTiPUkU5RCMdKYqwTqwhleL2cK8IbSDTSsRiRD2WKH5IXft9CNKqdbSQcLbLgjeOX2QpWWEwi/Zw== dependencies: algo-msgpack-with-bigint "^2.1.1" buffer "^6.0.2" From 24857c27d4ce623d68684fdf0e9db99b90b61f6c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 24 Mar 2022 19:28:10 +0530 Subject: [PATCH 448/956] mintWith: set empty XpNft value for algorand --- src/factory/index.ts | 2 +- src/helpers/algorand.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 3fb22637f..95139c7f9 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -597,7 +597,7 @@ export function ChainFactory( if (!(await toChain.validateAddress(receiver))) { throw Error("invalid address"); } - if (mw === undefined || mw === "") { + if (mw === undefined) { throw new Error(`Mint with is not set`); } console.log(`Minting With : ${mw}`) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index deba91376..cba03c3c3 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -134,7 +134,7 @@ export type AlgorandHelper = ChainNonceGet & ): Promise; walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; myAlgoSigner(myAlgo: MyAlgoConnect, address: string): AlgoSignerH; - } & Pick, "preTransfer">; + } & Pick, "preTransfer"> & { XpNft: string }; export type AlgorandParams = { algodApiKey: string; @@ -304,6 +304,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { } return { + XpNft: "", algod, getNonce: () => Chain.ALGORAND, claimNft, From d66a63214d19761fa9f81124350a25d838d02068 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 29 Mar 2022 17:30:08 +0530 Subject: [PATCH 449/956] bridge: web3: set up god woken chain --- src/consts.ts | 13 +++++++++++++ src/factory/factories.ts | 18 ++++++++++++++++++ src/factory/index.ts | 1 + yarn.lock | 2 +- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 28e5a9554..03ff24889 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -32,6 +32,7 @@ export enum TestNetRpcUri { VELAS = "https://explorer.testnet.velas.com/rpc", IOTEX = "https://babel-api.testnet.iotex.io", AURORA = "https://testnet.aurora.dev/", + GODWOKEN = "https://godwoken-testnet-web3-v1-rpc.ckbapp.dev" // TODO: Algorand // TODO: Fuse } @@ -53,6 +54,7 @@ export enum MainNetRpcUri { TEZOS = "https://mainnet.smartpy.io", IOTEX = "https://babel-api.mainnet.iotex.io", AURORA = "https://mainnet.aurora.dev", + GODWOKEN = "https://mainnet.godwoken.io/rpc" // TODO: Algorand } @@ -85,6 +87,7 @@ export type MetaMap = { 0x13: Web3Meta; 0x14: Web3Meta; 0x15: Web3Meta; + 0x16: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -107,6 +110,7 @@ export namespace Chain { export const VELAS = 0x13; // 19 export const IOTEX = 0x14; // 20 export const AURORA = 0x15; // 21 + export const GODWOKEN = 0x16; // 22 } interface ChainData { @@ -293,5 +297,14 @@ CHAIN_INFO.set(Chain.IOTEX, { currency: SupportedCurrency.IOTX, chainId: 4689, }); +CHAIN_INFO.set(Chain.GODWOKEN, { + name: "GodWoken", + blockExplorerUrl: "https://aggron.layerview.io/tx/", + constructor: web3HelperFactory, + nonce: 0x16, + decimals: 1e18, + currency: SupportedCurrency.CKB, + chainId: 868455272153094 +}) export const FEE_MARGIN = { min: 0.5, max: 5 }; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index fa348b388..112022bcb 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -182,6 +182,15 @@ export namespace ChainFactoryConfigs { erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", nonce: Chain.IOTEX, }, + godwokenParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.GODWOKEN), + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + nonce: Chain.GODWOKEN, + } }; }; @@ -348,6 +357,15 @@ export namespace ChainFactoryConfigs { nonce: Chain.AURORA, notifier, }, + godwokenParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.GODWOKEN), + minter_addr: "0x0000000000000000000000000000000000000000", + erc721_addr: "0x0000000000000000000000000000000000000000", + erc721Minter: "0x0000000000000000000000000000000000000000", + erc1155Minter: "0x0000000000000000000000000000000000000000", + nonce: Chain.GODWOKEN, + } }; }; } diff --git a/src/factory/index.ts b/src/factory/index.ts index 95139c7f9..59c2f10f2 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -233,6 +233,7 @@ export interface ChainParams { iotexParams: Web3Params; vechainParams: Web3Params; auroraParams: Web3Params; + godwokenParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; diff --git a/yarn.lock b/yarn.lock index 06e33605b..e2ecc93a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2345,7 +2345,7 @@ crypt@0.0.2: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#fe1803e74aa4fe9d086e215176d8481b338e3455" + resolved "git+https://github.com/xp-network/exchange-rate#51e8a04490be0f3bf486e5d619b7db9fadaa8b5b" dependencies: axios "^0.21.1" From 064be4302da333aa27e9e68ea60084b6f6cdab95 Mon Sep 17 00:00:00 2001 From: rocalex Date: Wed, 30 Mar 2022 15:09:44 +0300 Subject: [PATCH 450/956] fix claim nft --- src/helpers/algorand.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index cba03c3c3..35a40a328 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -286,21 +286,23 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { async function claimNft(signer: AlgoSignerH, info: ClaimNftInfo) { await optInNft(signer, info); - const program = await getMintPoolProgram(algod, signer.address) - const lsig = new algosdk.LogicSigAccount(program) const suggested = await algod.getTransactionParams().do(); - const xferTxn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: lsig.address(), + const txn = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, suggestedParams: suggested, - to: signer.address, - amount: 1, - assetIndex: info.nftId + appIndex: info.appId, + appArgs: [encoder.encode("transfer_nft")], + foreignAssets: [info.nftId] }) - const lstx = algosdk.signLogicSigTransactionObject(xferTxn, lsig) - const { txId } = await algod.sendRawTransaction([lstx.blob]).do() - await waitTxnConfirm(txId); - return txId; + const encodedTx = Base64.fromUint8Array(txn.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob, + }); + await waitTxnConfirm(res.txId); + return res.txId; } return { From 66443daa4a1097b359e4553cca163dc36d477ee4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 30 Mar 2022 18:27:18 +0530 Subject: [PATCH 451/956] factory: add godwoken to factory --- src/factory/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 59c2f10f2..e32d35510 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -276,6 +276,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.VELAS, chainParams.velasParams); cToP.set(Chain.IOTEX, chainParams.iotexParams); cToP.set(Chain.AURORA, chainParams.auroraParams); + cToP.set(Chain.GODWOKEN, chainParams.godwokenParams) return cToP; } /** From 0b942659fc83f8988acf990516135fb2efbd792a Mon Sep 17 00:00:00 2001 From: rocalex Date: Wed, 30 Mar 2022 16:17:29 +0300 Subject: [PATCH 452/956] fix claimableNfts --- src/helpers/algorand.ts | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 35a40a328..579b90af0 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -362,20 +362,26 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), - claimableNfts: async (_txSocket: AlgorandSocketHelper, owner: string) => { - const program = await getMintPoolProgram(algod, owner) - const lsig = new algosdk.LogicSigAccount(program) + claimableNfts: async (txSocket: AlgorandSocketHelper, owner: string) => { + await txSocket.cleanNfts(owner); + const claims = await txSocket.claimNfts(owner); - const idx = new algosdk.Indexer(args.algodApiKey, args.algodUri, args.algodPort) + const res = await Promise.all( + claims.map(async (v) => { + const appId = parseInt(v.app_id); + const nftId = parseInt(v.nft_id); + const assetInfo = await algod.getAssetByID(nftId).do(); - const nfts = await idx.lookupAccountAssets(lsig.address()).do() - console.log(nfts) - - const claims = nfts["assets"] - - console.log(claims) + return { + nftId, + appId, + uri: assetInfo.params.url as string, + name: (assetInfo.params.name as string) || "", + }; + }) + ); - return []; + return res; }, walletConnectSigner( connector: WalletConnect, From f64b328cb17099684ae8ba0e2fbc26dc408c9371 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 31 Mar 2022 13:46:38 +0530 Subject: [PATCH 453/956] xpjs: fix build errors --- src/helpers/algorand.ts | 44 ++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 579b90af0..6a0303c47 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -1,5 +1,5 @@ import WalletConnect from "@walletconnect/client"; -import algosdk, { Algodv2, SuggestedParams } from "algosdk"; +import algosdk, { SuggestedParams } from "algosdk"; import { formatJsonRpcRequest } from "@json-rpc-tools/utils"; import { BigNumber } from "bignumber.js"; import { Base64 } from "js-base64"; @@ -15,7 +15,7 @@ import { ValidateAddress, } from ".."; import MyAlgoConnect from "@randlabs/myalgo-connect"; -import fs from "fs" + type TxResp = { txId: string; @@ -173,26 +173,26 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { } } - async function compileProgram( - client: Algodv2, - programSource: string - ) { - const enc = new TextEncoder(); - const programBytes = enc.encode(programSource); - const compileResponse = await client.compile(programBytes).do(); - const compiledBytes = new Uint8Array( - Buffer.from(compileResponse.result, 'base64') - ); - return compiledBytes; - }; - - async function getMintPoolProgram(client: Algodv2, recv: any) { - const poolSrc = fs.readFileSync(__dirname + '/bridge_pool.tmpl.teal'); - return await compileProgram( - client, - poolSrc.toString().replace('TMPL_RECV_ADDR', recv) - ); - } + // async function compileProgram( + // client: Algodv2, + // programSource: string + // ) { + // const enc = new TextEncoder(); + // const programBytes = enc.encode(programSource); + // const compileResponse = await client.compile(programBytes).do(); + // const compiledBytes = new Uint8Array( + // Buffer.from(compileResponse.result, 'base64') + // ); + // return compiledBytes; + // }; + + // async function getMintPoolProgram(client: Algodv2, recv: any) { + // const poolSrc = fs.readFileSync(__dirname + '/bridge_pool.tmpl.teal'); + // return await compileProgram( + // client, + // poolSrc.toString().replace('TMPL_RECV_ADDR', recv) + // ); + // } const transferNft = async ( signer: AlgoSignerH, From 8e1bfa7586d5fed17a8d61580e918a3e93b53bf7 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 31 Mar 2022 14:48:51 +0530 Subject: [PATCH 454/956] factory: gw: fix decimals --- src/consts.ts | 2 +- src/factory/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 03ff24889..a8082cdc7 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -302,7 +302,7 @@ CHAIN_INFO.set(Chain.GODWOKEN, { blockExplorerUrl: "https://aggron.layerview.io/tx/", constructor: web3HelperFactory, nonce: 0x16, - decimals: 1e18, + decimals: 1e8, currency: SupportedCurrency.CKB, chainId: 868455272153094 }) diff --git a/src/factory/index.ts b/src/factory/index.ts index e32d35510..2665feb07 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -591,7 +591,7 @@ export function ChainFactory( ? mintWith : toChain.XpNft; - await requireBridge([fromChain.getNonce(), toChain.getNonce()]); + // await requireBridge([fromChain.getNonce(), toChain.getNonce()]); if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); From ba59f23bf12c8ff2dc056178a679b98016af6e9a Mon Sep 17 00:00:00 2001 From: Rishabh Kumar Date: Thu, 31 Mar 2022 17:59:03 +0530 Subject: [PATCH 455/956] add more data to socket --- src/helpers/web3.ts | 56 +++++++++++++++++++++++++++++++++++++++---- src/notifier/index.ts | 23 +++++++++++++++--- 2 files changed, 72 insertions(+), 7 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 5f6d777bf..869fa0c77 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -239,8 +239,27 @@ export async function web3HelperFactory( const { minter_addr, provider } = params; const minter = Minter__factory.connect(minter_addr, provider); - async function notifyValidator(hash: string): Promise { - await params.notifier.notifyWeb3(params.nonce, hash); + async function notifyValidator( + fromHash: string, + actionId?: string, + type?: string, + toChain?: number, + txFees?: string, + senderAddress?: string, + targetAddress?: string, + nftUri?: string + ): Promise { + await params.notifier.notifyWeb3( + params.nonce, + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri + ); } async function extractAction(txr: TransactionResponse): Promise { @@ -351,6 +370,16 @@ export async function web3HelperFactory( } ); + // await notifyValidator( + // res.hash, + // await extractAction(res), + // "Unfreeze", + // chainNonce.toString(), + // txFees.toString(), + // await signer.getAddress(), + // to, + // res.data + // ); await notifyValidator(res.hash); return res; @@ -416,7 +445,17 @@ export async function web3HelperFactory( } ); - await notifyValidator(txr.hash); + await notifyValidator( + txr.hash, + await extractAction(txr), + "Transfer", + chain_nonce, + txFees.toString(), + await sender.getAddress(), + to, + id.uri + ); + return txr; }, async unfreezeWrappedNft( @@ -432,7 +471,16 @@ export async function web3HelperFactory( value: EthBN.from(txFees.toString(10)), }); - await notifyValidator(res.hash); + await notifyValidator( + res.hash, + await extractAction(res), + "Unfreeze", + nonce, + txFees.toString(), + await sender.getAddress(), + to, + id.uri + ); return res; }, diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 1fd3ce251..f8e5a410b 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -8,10 +8,27 @@ export function evNotifier(url: string) { }); return { - async notifyWeb3(chainNonce: number, txHash: string) { + async notifyWeb3( + fromChain: number, + fromHash: string, + actionId?: string, + type?: string, + toChain?: number, + txFees?: string, + senderAddress?: string, + targetAddress?: string, + nftUri?: string + ) { await api.post("/tx/web3", { - chain_nonce: chainNonce, - tx_hash: txHash, + chain_nonce: fromChain, + tx_hash: fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, }); }, async notifyTron(txHash: string) { From 37717abc59f5ccd31d31351c705545a369af8ca1 Mon Sep 17 00:00:00 2001 From: Rishabh Kumar Date: Thu, 31 Mar 2022 18:03:12 +0530 Subject: [PATCH 456/956] fix type error --- src/helpers/web3.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 869fa0c77..c9a9fd106 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -475,7 +475,7 @@ export async function web3HelperFactory( res.hash, await extractAction(res), "Unfreeze", - nonce, + Number(nonce), txFees.toString(), await sender.getAddress(), to, From 021fe18e5457e04d27071826d9b005f003740d17 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 1 Apr 2022 16:37:28 +0530 Subject: [PATCH 457/956] bridge: heartbeat: only check for mainnet --- src/config.ts | 2 ++ src/factory/index.ts | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 5d547d214..8fcc67da0 100644 --- a/src/config.ts +++ b/src/config.ts @@ -11,6 +11,7 @@ export namespace AppConfigs { tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", wrappedNftPrefix: "https://nft.xp.network/w/", + network: "mainnet" }; }; export const TestNet: () => AppConfig = () => { @@ -23,6 +24,7 @@ export namespace AppConfigs { tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", + network: "testnet" }; }; } diff --git a/src/factory/index.ts b/src/factory/index.ts index 2665feb07..e40b64fb5 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -253,6 +253,7 @@ export interface AppConfig { nftListAuthToken: string; tronScanUri: string; wrappedNftPrefix: string; + network: "testnet" | "mainnet" } function mapNonceToParams(chainParams: Partial): ParamMap { @@ -591,7 +592,9 @@ export function ChainFactory( ? mintWith : toChain.XpNft; - // await requireBridge([fromChain.getNonce(), toChain.getNonce()]); + if (appConfig.network === "mainnet") { + await requireBridge([fromChain.getNonce(), toChain.getNonce()]); + } if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); From 337ce37fbd4b8230dbc43a55954699d9867af0be Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 1 Apr 2022 17:27:20 +0530 Subject: [PATCH 458/956] bridge: algorand: move program to ts file --- ...dge_pool.tmpl.teal => bridge_pool.teal.ts} | 130 +++++++++--------- 1 file changed, 65 insertions(+), 65 deletions(-) rename src/helpers/{bridge_pool.tmpl.teal => bridge_pool.teal.ts} (89%) diff --git a/src/helpers/bridge_pool.tmpl.teal b/src/helpers/bridge_pool.teal.ts similarity index 89% rename from src/helpers/bridge_pool.tmpl.teal rename to src/helpers/bridge_pool.teal.ts index 3d80320f8..6c780f28d 100644 --- a/src/helpers/bridge_pool.tmpl.teal +++ b/src/helpers/bridge_pool.teal.ts @@ -1,65 +1,65 @@ -#pragma version 5 -intcblock 1 6 3 -bytecblock TMPL_RECV_ADDR -txn TypeEnum -pushint 4 // axfer -== -txn AssetAmount -intc_0 // 1 -== -&& -txn AssetReceiver -bytec_0 // TMPL_RECV_ADDR -== -&& -bnz main_l6 -gtxn 0 TypeEnum -intc_1 // appl -== -gtxna 0 ApplicationArgs 0 -pushbytes 0x6372656174655f6e6674 // "create_nft" -== -&& -gtxna 0 Accounts 1 -bytec_0 // TMPL_RECV_ADDR -== -&& -gtxn 1 TypeEnum -intc_2 // acfg -== -&& -gtxn 1 ConfigAssetTotal -intc_0 // 1 -== -&& -gtxn 1 ConfigAssetDecimals -pushint 0 // 0 -== -&& -bnz main_l5 -gtxn 0 TypeEnum -intc_1 // appl -== -gtxna 0 ApplicationArgs 0 -pushbytes 0x77697468647261775f6e6674 // "withdraw_nft" -== -&& -gtxn 1 TypeEnum -intc_2 // acfg -== -&& -gtxn 1 ConfigAsset -gtxna 0 Assets 0 -== -&& -bnz main_l4 -err -main_l4: -intc_0 // 1 -return -main_l5: -intc_0 // 1 -return -main_l6: -intc_0 // 1 -return \ No newline at end of file +export const BRIDGE_TEAL = `#pragma version 5 +intcblock 1 6 3 +bytecblock TMPL_RECV_ADDR +txn TypeEnum +pushint 4 // axfer +== +txn AssetAmount +intc_0 // 1 +== +&& +txn AssetReceiver +bytec_0 // TMPL_RECV_ADDR +== +&& +bnz main_l6 +gtxn 0 TypeEnum +intc_1 // appl +== +gtxna 0 ApplicationArgs 0 +pushbytes 0x6372656174655f6e6674 // "create_nft" +== +&& +gtxna 0 Accounts 1 +bytec_0 // TMPL_RECV_ADDR +== +&& +gtxn 1 TypeEnum +intc_2 // acfg +== +&& +gtxn 1 ConfigAssetTotal +intc_0 // 1 +== +&& +gtxn 1 ConfigAssetDecimals +pushint 0 // 0 +== +&& +bnz main_l5 +gtxn 0 TypeEnum +intc_1 // appl +== +gtxna 0 ApplicationArgs 0 +pushbytes 0x77697468647261775f6e6674 // "withdraw_nft" +== +&& +gtxn 1 TypeEnum +intc_2 // acfg +== +&& +gtxn 1 ConfigAsset +gtxna 0 Assets 0 +== +&& +bnz main_l4 +err +main_l4: +intc_0 // 1 +return +main_l5: +intc_0 // 1 +return +main_l6: +intc_0 // 1 +return` \ No newline at end of file From df5dceb97016c88afc678ff3fa85615ddfc1ced2 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 5 Apr 2022 17:56:39 +0530 Subject: [PATCH 459/956] algorand: use indexer --- src/factory/factories.ts | 3 ++- src/helpers/algorand.ts | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 112022bcb..5cb466b75 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -130,7 +130,7 @@ export namespace ChainFactoryConfigs { algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", algodUri: "https://algorand-node.xp.network/", - algoIndexer: "https://algoexplorerapi.io/idx2", + indexerUri: "https://algoexplorerapi.io/idx2", nonce: Chain.ALGORAND, sendNftAppId: 458971166, algodPort: 443, @@ -299,6 +299,7 @@ export namespace ChainFactoryConfigs { algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", algodUri: "https://algorand-node.xp.network/", + indexerUri: "https://algoexplorerapi.io/idx2", nonce: Chain.ALGORAND, sendNftAppId: 458971166, algodPort: 443, diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 6a0303c47..411331dd1 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -139,6 +139,7 @@ export type AlgorandHelper = ChainNonceGet & export type AlgorandParams = { algodApiKey: string; algodUri: string; + indexerUri: string; algodPort: number | undefined; sendNftAppId: number; }; @@ -159,6 +160,11 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { args.algodUri, args.algodPort ); + const indexer = new algosdk.Indexer( + args.algodApiKey, + args.indexerUri, + args.algodPort + ); async function waitTxnConfirm(txId: string) { const status = await algod.status().do(); @@ -250,7 +256,10 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { }; async function isOptIn(addr: string, nftId: number) { - const user = await algod.accountInformation(addr).do(); + const userRes = await indexer.lookupAccountByID(addr).do(); + const user = userRes["account"]; + if (!user.assets) return false; + for (let i = 0; i < user["assets"].length; i++) { if (user["assets"][i]["asset-id"] === nftId) { return true; @@ -370,7 +379,8 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { claims.map(async (v) => { const appId = parseInt(v.app_id); const nftId = parseInt(v.nft_id); - const assetInfo = await algod.getAssetByID(nftId).do(); + const assetRes = await indexer.lookupAssetByID(nftId).do(); + const assetInfo = assetRes.asset; return { nftId, From 06533f92431ef1e27142607136430865ba1972e1 Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Tue, 5 Apr 2022 17:07:29 +0300 Subject: [PATCH 460/956] gatechain testnet added to xpjs --- src/consts.ts | 19 ++++++++++++++++--- src/factory/factories.ts | 18 ++++++++++++++++++ src/factory/index.ts | 2 ++ 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index a8082cdc7..7375d7fcf 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -32,7 +32,8 @@ export enum TestNetRpcUri { VELAS = "https://explorer.testnet.velas.com/rpc", IOTEX = "https://babel-api.testnet.iotex.io", AURORA = "https://testnet.aurora.dev/", - GODWOKEN = "https://godwoken-testnet-web3-v1-rpc.ckbapp.dev" + GODWOKEN = "https://godwoken-testnet-web3-v1-rpc.ckbapp.dev", + GATECHAIN = "https://testnet.gatenode.cc" // TODO: Algorand // TODO: Fuse } @@ -54,7 +55,8 @@ export enum MainNetRpcUri { TEZOS = "https://mainnet.smartpy.io", IOTEX = "https://babel-api.mainnet.iotex.io", AURORA = "https://mainnet.aurora.dev", - GODWOKEN = "https://mainnet.godwoken.io/rpc" + GODWOKEN = "https://mainnet.godwoken.io/rpc", + GATECHAIN = "https://evm.gatenode.cc" // TODO: Algorand } @@ -88,6 +90,7 @@ export type MetaMap = { 0x14: Web3Meta; 0x15: Web3Meta; 0x16: Web3Meta; + 0x17: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -111,6 +114,7 @@ export namespace Chain { export const IOTEX = 0x14; // 20 export const AURORA = 0x15; // 21 export const GODWOKEN = 0x16; // 22 + export const GATECHAIN = 0x17; // 23 } interface ChainData { @@ -305,6 +309,15 @@ CHAIN_INFO.set(Chain.GODWOKEN, { decimals: 1e8, currency: SupportedCurrency.CKB, chainId: 868455272153094 -}) +}); +CHAIN_INFO.set(Chain.GATECHAIN, { + name: "GateChain", + blockExplorerUrl: "https://gatescan.org/testnet/tx", + constructor: web3HelperFactory, + nonce: 0x17, + decimals: 1e18, + currency: SupportedCurrency.GT, + chainId: 85 +}); export const FEE_MARGIN = { min: 0.5, max: 5 }; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 5cb466b75..7019684b3 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -190,6 +190,15 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", nonce: Chain.GODWOKEN, + }, + gateChainParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.GATECHAIN), + minter_addr: "0x2B24de7BFf5d2ab01b1C53682Ee5987c9BCf1BAc", + erc721_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc721Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155Minter: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + nonce: Chain.GATECHAIN, } }; }; @@ -366,6 +375,15 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x0000000000000000000000000000000000000000", erc1155Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.GODWOKEN, + }, + gateChainParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.GATECHAIN), + minter_addr: "0x0000000000000000000000000000000000000000", + erc721_addr: "0x0000000000000000000000000000000000000000", + erc721Minter: "0x0000000000000000000000000000000000000000", + erc1155Minter: "0x0000000000000000000000000000000000000000", + nonce: Chain.GATECHAIN, } }; }; diff --git a/src/factory/index.ts b/src/factory/index.ts index e40b64fb5..9c6456f02 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -234,6 +234,7 @@ export interface ChainParams { vechainParams: Web3Params; auroraParams: Web3Params; godwokenParams: Web3Params; + gateChainParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -278,6 +279,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.IOTEX, chainParams.iotexParams); cToP.set(Chain.AURORA, chainParams.auroraParams); cToP.set(Chain.GODWOKEN, chainParams.godwokenParams) + cToP.set(Chain.GATECHAIN, chainParams.gateChainParams) return cToP; } /** From 04910369841bf7c61a5d771bfa6f92c7afa4285e Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 6 Apr 2022 22:49:43 +0530 Subject: [PATCH 461/956] algorand: implement unfreeze nft properly --- src/helpers/algorand.ts | 49 +++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 411331dd1..8753ef7f3 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -358,15 +358,46 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { return suggested; }, transferNftToForeign: transferNft, - unfreezeWrappedNft: async (signer, to, nft, txFees, nonce) => { - // const nftMeta = await axios.get(nft.uri); - return await transferNft( - signer, - parseInt(nonce), - to, - nft, - txFees - ); + unfreezeWrappedNft: async (signer, to, nft, _txFees, nonce) => { + const suggested = await algod.getTransactionParams().do(); + + const transferTx = + algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: 1, + assetIndex: nft.native.nftId, + suggestedParams: suggested, + }); + const sTransferTx = await signer.algoSigner.signTxn([{ txn: Base64.fromUint8Array(transferTx.toByte()) }]); + const transferRes = await algod.sendRawTransaction(Base64.toUint8Array(sTransferTx[0].blob)).do(); + await waitTxnConfirm(transferRes.txId as string); + + const appArgs = [ + encoder.encode("withdraw_nft"), + encoder.encode(to), + new Uint8Array(Buffer.from(new Uint32Array([parseInt(nonce)]).buffer).reverse()), + new Uint8Array(Buffer.from("")) + ]; + const tCallTx = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs, + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + const encodedTxns = [ + { txn: Base64.fromUint8Array(tCallTx.toByte()) }, + ]; + const signedTxns = await signer.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + Base64.toUint8Array(signedTxns[0].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + + return sendRes.txId as string; }, estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), From 3d53d8d6407f67f68e093a57f70445d57e3d055a Mon Sep 17 00:00:00 2001 From: rocalex Date: Fri, 8 Apr 2022 18:38:08 +0300 Subject: [PATCH 462/956] add payment txn to tranfer --- src/helpers/algorand.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 8753ef7f3..7e8aed092 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -205,7 +205,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { chain_nonce: number, to: string, nft: NftInfo, - _txFees: BigNumber, + txFees: BigNumber, mintWith?: string ) => { const suggested = await algod.getTransactionParams().do(); @@ -218,6 +218,13 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { assetIndex: nft.native.nftId, suggestedParams: suggested, }); + + const paymentTxn = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ + from: signer.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(txFees.toString()) + }) const appArgs = [ encoder.encode("freeze_nft"), encoder.encode(to), @@ -238,16 +245,18 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { foreignAssets: [nft.native.nftId], suggestedParams: suggested, }); - algosdk.assignGroupID([tCallTx, transferTx]); + algosdk.assignGroupID([tCallTx, transferTx, paymentTxn]); const encodedTxns = [ { txn: Base64.fromUint8Array(tCallTx.toByte()) }, { txn: Base64.fromUint8Array(transferTx.toByte()) }, + { txn: Base64.fromUint8Array(paymentTxn.toByte()) }, ]; const signedTxns = await signer.algoSigner.signTxn(encodedTxns); const sendRes = await algod .sendRawTransaction([ Base64.toUint8Array(signedTxns[0].blob), Base64.toUint8Array(signedTxns[1].blob), + Base64.toUint8Array(signedTxns[2].blob), ]) .do(); await waitTxnConfirm(sendRes.txId); @@ -259,7 +268,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { const userRes = await indexer.lookupAccountByID(addr).do(); const user = userRes["account"]; if (!user.assets) return false; - + for (let i = 0; i < user["assets"].length; i++) { if (user["assets"][i]["asset-id"] === nftId) { return true; @@ -321,7 +330,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { claimNft, optInNft, isOptIn, - async preTransfer(sender, nft, _fee) { + async preTransfer(sender, nft, fee) { if (await isOptIn(appAddr, nft.native.nftId)) { return undefined; } @@ -338,7 +347,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { from: sender.address, suggestedParams: suggested, to: appAddr, - amount: _fee.toNumber() + amount: BigInt(fee.toString()) }) algosdk.assignGroupID([callTx, feesTx]); @@ -396,7 +405,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { ]) .do(); await waitTxnConfirm(sendRes.txId); - + return sendRes.txId as string; }, estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), From cdf54546bfde0dcf7126b92d1167cf102566fe63 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Apr 2022 15:11:04 +0530 Subject: [PATCH 463/956] algorand: various fixes --- src/helpers/algorand.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 7e8aed092..fae3c40d1 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -367,7 +367,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { return suggested; }, transferNftToForeign: transferNft, - unfreezeWrappedNft: async (signer, to, nft, _txFees, nonce) => { + unfreezeWrappedNft: async (signer, to, nft, txFees, nonce) => { const suggested = await algod.getTransactionParams().do(); const transferTx = @@ -382,6 +382,12 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { const transferRes = await algod.sendRawTransaction(Base64.toUint8Array(sTransferTx[0].blob)).do(); await waitTxnConfirm(transferRes.txId as string); + const paymentTxn = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ + from: signer.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(txFees.toString()) + }); const appArgs = [ encoder.encode("withdraw_nft"), encoder.encode(to), @@ -395,13 +401,16 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { foreignAssets: [nft.native.nftId], suggestedParams: suggested, }); + algosdk.assignGroupID([tCallTx, paymentTxn]) const encodedTxns = [ { txn: Base64.fromUint8Array(tCallTx.toByte()) }, + { txn: Base64.fromUint8Array(paymentTxn.toByte()) }, ]; const signedTxns = await signer.algoSigner.signTxn(encodedTxns); const sendRes = await algod .sendRawTransaction([ Base64.toUint8Array(signedTxns[0].blob), + Base64.toUint8Array(signedTxns[1].blob) ]) .do(); await waitTxnConfirm(sendRes.txId); @@ -419,19 +428,20 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { claims.map(async (v) => { const appId = parseInt(v.app_id); const nftId = parseInt(v.nft_id); - const assetRes = await indexer.lookupAssetByID(nftId).do(); + const assetRes = await indexer.lookupAssetByID(nftId).do().catch(() => undefined); + if (assetRes == undefined) return [] const assetInfo = assetRes.asset; - return { + return [{ nftId, appId, uri: assetInfo.params.url as string, name: (assetInfo.params.name as string) || "", - }; + }]; }) ); - return res; + return res.flat(); }, walletConnectSigner( connector: WalletConnect, From 7824b28ee53ac9f2b9ac6e358db2c659bb103812 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Apr 2022 15:13:40 +0530 Subject: [PATCH 464/956] bump exchange-rate dep --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index e2ecc93a2..e43bb989a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2345,7 +2345,7 @@ crypt@0.0.2: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#51e8a04490be0f3bf486e5d619b7db9fadaa8b5b" + resolved "git+https://github.com/xp-network/exchange-rate#b78aa00d70a44c9f1d42515c9d1d7a67a5aa34b2" dependencies: axios "^0.21.1" From 8e3fc7bed84c8c116fc6e733824d36ce3a68dbb1 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 10 Apr 2022 21:14:08 +0530 Subject: [PATCH 465/956] algorand: update testnet factory and add notifier support --- src/factory/factories.ts | 11 ++++++----- src/helpers/algorand.ts | 6 ++++++ src/notifier/index.ts | 5 +++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 7019684b3..bb08dc5b7 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -127,13 +127,13 @@ export namespace ChainFactoryConfigs { nonce: Chain.XDAI, }, algorandParams: { - algodApiKey: - "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", - algodUri: "https://algorand-node.xp.network/", - indexerUri: "https://algoexplorerapi.io/idx2", + algodApiKey: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', + indexerUri: "https://algoindexer.testnet.algoexplorerapi.io", + algodUri: 'https://node.testnet.algoexplorerapi.io', nonce: Chain.ALGORAND, - sendNftAppId: 458971166, + sendNftAppId: 83148194, algodPort: 443, + notifier }, auroraParams: { notifier, @@ -312,6 +312,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.ALGORAND, sendNftAppId: 458971166, algodPort: 443, + notifier }, fuseParams: { notifier, diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index fae3c40d1..0bc70b9e0 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -15,6 +15,7 @@ import { ValidateAddress, } from ".."; import MyAlgoConnect from "@randlabs/myalgo-connect"; +import { EvNotifier } from "../notifier"; type TxResp = { @@ -142,6 +143,7 @@ export type AlgorandParams = { indexerUri: string; algodPort: number | undefined; sendNftAppId: number; + notifier: EvNotifier; }; // type MinWrappedNft = { @@ -261,6 +263,8 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { .do(); await waitTxnConfirm(sendRes.txId); + await args.notifier.notifyAlgorand(sendRes.txId); + return sendRes.txId as string; }; @@ -415,6 +419,8 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { .do(); await waitTxnConfirm(sendRes.txId); + await args.notifier.notifyAlgorand(sendRes.txId); + return sendRes.txId as string; }, estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), diff --git a/src/notifier/index.ts b/src/notifier/index.ts index f8e5a410b..9f9623ea5 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -54,5 +54,10 @@ export function evNotifier(url: string) { tx_hash: txHash, }); }, + async notifyAlgorand(txHash: string) { + await api.post("/tx/algorand", { + tx_hash: txHash + }) + } }; } From 1335455e811d9ac8a68551c563e995afefdc0d4f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 11 Apr 2022 14:35:32 +0530 Subject: [PATCH 466/956] consts: testnetrpc: update rpc for gatechain testnet --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 7375d7fcf..e496414db 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -33,7 +33,7 @@ export enum TestNetRpcUri { IOTEX = "https://babel-api.testnet.iotex.io", AURORA = "https://testnet.aurora.dev/", GODWOKEN = "https://godwoken-testnet-web3-v1-rpc.ckbapp.dev", - GATECHAIN = "https://testnet.gatenode.cc" + GATECHAIN = "https://meteora-evm.gatenode.cc" // TODO: Algorand // TODO: Fuse } From 27246c18636b4f007c2051356642c208b1ee2dbd Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 11 Apr 2022 15:06:03 +0530 Subject: [PATCH 467/956] consts: fee-margin: use seprate fee margins for all chains --- src/consts.ts | 1 - src/factory/factories.ts | 37 +++++++++++++++++++++++++++++++++++++ src/factory/index.ts | 19 ++++++++++++------- src/helpers/chain.ts | 7 +++++++ src/helpers/elrond.ts | 8 +++++++- src/helpers/tezos.ts | 8 +++++++- src/helpers/tron.ts | 8 +++++++- src/helpers/web3.ts | 28 +++++++++++++++++----------- 8 files changed, 94 insertions(+), 22 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index e496414db..d8edb2adf 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -320,4 +320,3 @@ CHAIN_INFO.set(Chain.GATECHAIN, { chainId: 85 }); -export const FEE_MARGIN = { min: 0.5, max: 5 }; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index bb08dc5b7..a810f35f1 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -26,7 +26,9 @@ const middleware_uri = "https://notifier.xp.network"; const testnet_middleware_uri = "http://65.21.195.10/notify-test/"; export namespace ChainFactoryConfigs { + export const TestNet: () => Partial = () => { + const feeMargin = { min: 0.5, max: 5 }; const notifier = evNotifier(testnet_middleware_uri); return { elrondParams: { @@ -39,6 +41,7 @@ export namespace ChainFactoryConfigs { esdt_swap: "WEGLD-2d1d69", notifier, nonce: 2, + feeMargin }, tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), @@ -53,6 +56,7 @@ export namespace ChainFactoryConfigs { "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", ], nonce: Chain.TRON, + feeMargin }, avalancheParams: { notifier, @@ -62,6 +66,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", nonce: Chain.AVALANCHE, + feeMargin }, polygonParams: { notifier, @@ -71,6 +76,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x5A768f8dDC67ccCA1431879BcA28E93a6c7722bb", erc721Minter: "0x6516E2D3387A9CF4E5e868E7842D110c95A9f3B4", nonce: Chain.POLYGON, + feeMargin }, fantomParams: { notifier, @@ -80,6 +86,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "string", erc721Minter: "string", nonce: Chain.FANTOM, + feeMargin }, bscParams: { notifier, @@ -89,6 +96,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x5dA3b7431f4581a7d35aEc2f3429174DC0f2A2E1", erc721Minter: "0x97CD6fD6cbFfaa24f5c858843955C2601cc7F2b9", nonce: Chain.BSC, + feeMargin }, celoParams: { notifier, @@ -98,6 +106,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "string", erc721Minter: "string", nonce: Chain.CELO, + feeMargin }, harmonyParams: { notifier, @@ -107,6 +116,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0xB546c2358A6e4b0B83192cCBB83CaE37FA572fe1", erc721Minter: "0xb036640d6f7cAfd338103dc60493250561Af2eBc", nonce: Chain.HARMONY, + feeMargin }, ropstenParams: { notifier, @@ -116,6 +126,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", nonce: Chain.ETHEREUM, + feeMargin }, xDaiParams: { notifier, @@ -125,6 +136,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", nonce: Chain.XDAI, + feeMargin }, algorandParams: { algodApiKey: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', @@ -143,6 +155,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", nonce: Chain.AURORA, + feeMargin }, uniqueParams: { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.UNIQUE), @@ -152,6 +165,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "string", erc721Minter: "string", notifier, + feeMargin }, tezosParams: { bridgeAddress: "KT195omxiopL2ZDqM3g8hRj2sSCG2pTqjNEj", @@ -163,6 +177,7 @@ export namespace ChainFactoryConfigs { "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", "tz1exbY3JKPRpo2KLegK8iqoVNRLn1zFrnZi", ], + feeMargin }, velasParams: { notifier, @@ -172,6 +187,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", nonce: Chain.VELAS, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), + feeMargin }, iotexParams: { notifier, @@ -181,6 +197,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", nonce: Chain.IOTEX, + feeMargin }, godwokenParams: { notifier, @@ -190,6 +207,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", nonce: Chain.GODWOKEN, + feeMargin }, gateChainParams: { notifier, @@ -199,11 +217,13 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", erc1155Minter: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", nonce: Chain.GATECHAIN, + feeMargin } }; }; export const MainNet: () => Partial = () => { + const feeMargin = { min: 0.5, max: 5 }; const notifier = evNotifier(middleware_uri); return { elrondParams: { @@ -216,6 +236,7 @@ export namespace ChainFactoryConfigs { esdt_swap: "WEGLD-5f1f8d", notifier, nonce: Chain.ELROND, + feeMargin }, tronParams: { provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), @@ -224,6 +245,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "TRON", nonce: Chain.TRON, validators: EVM_VALIDATORS, + feeMargin }, avalancheParams: { notifier, @@ -234,6 +256,7 @@ export namespace ChainFactoryConfigs { minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", nonce: Chain.AVALANCHE, + feeMargin }, polygonParams: { notifier, @@ -244,6 +267,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", nonce: Chain.POLYGON, + feeMargin }, fantomParams: { notifier, @@ -254,6 +278,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x75f93b47719Ab5270d27cF28a74eeA247d5DfeFF", minter_addr: "0x97dd1B3AE755539F56Db8b29258d7C925b20b84B", nonce: Chain.FANTOM, + feeMargin }, bscParams: { notifier, @@ -264,6 +289,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", nonce: Chain.BSC, + feeMargin }, celoParams: { notifier, @@ -273,6 +299,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "string", erc721Minter: "string", nonce: Chain.CELO, + feeMargin }, harmonyParams: { notifier, @@ -283,6 +310,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", nonce: Chain.HARMONY, + feeMargin }, ropstenParams: { notifier, @@ -293,6 +321,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", nonce: Chain.ETHEREUM, + feeMargin }, xDaiParams: { notifier, @@ -303,6 +332,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.XDAI, + feeMargin }, algorandParams: { algodApiKey: @@ -323,6 +353,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", minter_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", nonce: Chain.FUSE, + feeMargin }, tezosParams: { bridgeAddress: "KT1WKtpe58XPCqNQmPmVUq6CZkPYRms5oLvu", @@ -337,6 +368,7 @@ export namespace ChainFactoryConfigs { "tz1TBhd1NeZNtWsTbecee8jDMDzeBNLmpViN", "tz1SHcDnXRgb7kWidiaM2J6bbTS7x5jzBr67" ], + feeMargin }, velasParams: { notifier, @@ -347,6 +379,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", nonce: Chain.VELAS, + feeMargin }, iotexParams: { notifier, @@ -357,6 +390,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", nonce: Chain.IOTEX, + feeMargin }, auroraParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AURORA), @@ -367,6 +401,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.AURORA, notifier, + feeMargin }, godwokenParams: { notifier, @@ -376,6 +411,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x0000000000000000000000000000000000000000", erc1155Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.GODWOKEN, + feeMargin }, gateChainParams: { notifier, @@ -385,6 +421,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x0000000000000000000000000000000000000000", erc1155Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.GATECHAIN, + feeMargin } }; }; diff --git a/src/factory/index.ts b/src/factory/index.ts index 9c6456f02..e21c53968 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -1,7 +1,7 @@ import { ElrondParams } from "../helpers/elrond"; import { TronParams } from "../helpers/tron"; import { Web3Params } from "../helpers/web3"; -import { Chain, CHAIN_INFO, FEE_MARGIN } from "../consts"; +import { Chain, CHAIN_INFO } from "../consts"; export * from "./factories"; import { @@ -36,6 +36,8 @@ import { Base64 } from "js-base64"; import { TezosParams } from "../helpers/tezos"; import { EstimateTxFeesBatch, + FeeMargins, + GetFeeMargins, TransferNftForeignBatch, UnfreezeForeignNftBatch, WhitelistCheck, @@ -57,7 +59,7 @@ type FullChain = TransferNftForeign< UnfreezeForeignNft & EstimateTxFees & ChainNonceGet & - ValidateAddress & { XpNft?: string }; + ValidateAddress & { XpNft?: string } & GetFeeMargins; type FullChainBatch = FullChain & TransferNftForeignBatch & @@ -322,7 +324,8 @@ export function ChainFactory( async function calcExchangeFees( fromChain: T, toChain: T, - val: BigNumber + val: BigNumber, + toChainFee: FeeMargins ): Promise { const rate = await remoteExchangeRate.getBatchedRate([ CHAIN_INFO.get(toChain)!.currency, @@ -332,8 +335,8 @@ export function ChainFactory( const fromExRate = rate.get(CHAIN_INFO.get(fromChain)!.currency)!; const toExRate = rate.get(CHAIN_INFO.get(toChain)!.currency)!; const usdFee = Math.min( - Math.max(FEE_MARGIN.min, feeR.times(toExRate * 0.1).toNumber()), - FEE_MARGIN.max + Math.max(toChainFee.min, feeR.times(toExRate * 0.1).toNumber()), + toChainFee.max ); const feeProfit = usdFee / fromExRate; @@ -357,7 +360,8 @@ export function ChainFactory( const conv = await calcExchangeFees( fromChain.getNonce(), toChain.getNonce(), - estimate + estimate, + toChain.getFeeMargin() ); return conv; }; @@ -386,7 +390,8 @@ export function ChainFactory( const conv = await calcExchangeFees( fromChain.getNonce(), toChain.getNonce(), - estimate.times(nft.length) + estimate.times(nft.length), + toChain.getFeeMargin() ); return conv; } diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 45a0ab09d..e6da3592e 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -178,3 +178,10 @@ export async function isWrappedNft(nft: NftInfo) { "undefined" ); } + +export interface FeeMargins { + min: number; + max: number; +} + +export interface GetFeeMargins { getFeeMargin(): FeeMargins } \ No newline at end of file diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index c6bd06a72..bd97e1436 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -37,6 +37,8 @@ import { TransferNftForeignBatch, UnfreezeForeignNftBatch, EstimateTxFeesBatch, + GetFeeMargins, + FeeMargins, } from "./chain"; import { Chain, @@ -201,7 +203,7 @@ export type ElrondHelper = BalanceCheck & EstimateTxFeesBatch & PreTransferRawTxn & ExtractTxnStatus & - SetESDTRoles & { XpNft: string }; + SetESDTRoles & { XpNft: string } & GetFeeMargins; /** * Create an object implementing cross chain utilities for elrond @@ -218,6 +220,7 @@ export interface ElrondParams { esdt_swap_address: string; esdt_nft: string; esdt_swap: string; + feeMargin: FeeMargins; } export async function elrondHelperFactory( @@ -551,6 +554,9 @@ export async function elrondHelperFactory( return wallet.balance.valueOf(); }, + getFeeMargin() { + return elrondParams.feeMargin + }, async extractTxnStatus(txn) { const status = await provider.getTransactionStatus( new TransactionHash(txn) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index f3566db18..6d67fbf54 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -29,6 +29,7 @@ import * as utils from "@taquito/utils"; import BigNumber from "bignumber.js"; import axios from "axios"; import { EvNotifier } from "../notifier"; +import { FeeMargins, GetFeeMargins } from "./chain"; type TezosSigner = WalletProvider | Signer; @@ -60,7 +61,7 @@ export type TezosHelper = TransferNftForeign< ): Promise; } & { XpNft: string; - }; + } & GetFeeMargins; export type TezosParams = { Tezos: TezosToolkit; @@ -68,6 +69,7 @@ export type TezosParams = { xpnftAddress: string; bridgeAddress: string; validators: string[]; + feeMargin: FeeMargins }; export async function tezosHelperFactory({ @@ -76,6 +78,7 @@ export async function tezosHelperFactory({ xpnftAddress, bridgeAddress, validators, + feeMargin }: TezosParams): Promise { const estimateGas = (validators: string[], baseprice: number) => { return new BigNumber(baseprice * (validators.length + 1)); @@ -246,6 +249,9 @@ export async function tezosHelperFactory({ getNonce() { return Chain.TEZOS; }, + getFeeMargin() { + return feeMargin + }, async estimateValidateTransferNft() { return estimateGas(validators, 1.2e5); }, diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index d14e9afac..0bd2cfc4e 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -2,6 +2,8 @@ import { BigNumber } from "bignumber.js"; import { BalanceCheck, EstimateTxFees, + FeeMargins, + GetFeeMargins, MintNft, TransferNftForeign, UnfreezeForeignNft, @@ -92,7 +94,7 @@ export type TronHelper = BaseTronHelper & ExtractTxnStatus & WhitelistCheck & { XpNft: string; - }; + } & GetFeeMargins; export async function baseTronHelperFactory( provider: TronWeb @@ -203,6 +205,7 @@ export interface TronParams { minter_addr: string; erc721_addr: string; validators: string[]; + feeMargin: FeeMargins } export interface TronRawTxn { @@ -351,6 +354,9 @@ export async function tronHelperFactory( ...base, extractAction, XpNft: tronParams.erc721_addr, + getFeeMargin() { + return tronParams.feeMargin + }, approveForMinter, preTransfer: (s, nft, _fee) => approveForMinter(nft, s), async preTransferRawTxn(nft, address, _value) { diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index c9a9fd106..6f42a8bf4 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -12,6 +12,8 @@ import { TransferNftForeignBatch, UnfreezeForeignNftBatch, EstimateTxFeesBatch, + FeeMargins, + GetFeeMargins, } from "./chain"; import { Signer, @@ -127,7 +129,7 @@ export type Web3Helper = BaseWeb3Helper & ExtractTxnStatus & GetProvider & { XpNft: string; - } & WhitelistCheck; + } & WhitelistCheck & GetFeeMargins; /** * Create an object implementing minimal utilities for a web3 chain @@ -180,6 +182,7 @@ export interface Web3Params { erc721Minter: string; erc1155Minter: string; nonce: ChainNonce; + feeMargin: FeeMargins; } type NftMethodVal = { @@ -320,6 +323,9 @@ export async function web3HelperFactory( const gas = await provider.getGasPrice(); return new BigNumber(gas.mul(150_000).toString()); }, + getFeeMargin() { + return params.feeMargin; + }, isApprovedForMinter, preTransfer: (s, id, _fee) => approveForMinter(id, s), extractAction, @@ -434,16 +440,16 @@ export async function web3HelperFactory( const txr = await minter .connect(sender) - [method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - { - value: EthBN.from(txFees.toString(10)), - } - ); + [method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString(10)), + } + ); await notifyValidator( txr.hash, From 490fc5632c80b7cf60fc58b1312a5ab3d88f1c4f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 11 Apr 2022 15:07:35 +0530 Subject: [PATCH 468/956] consts: fee-margin: modify fee margins for gnosis/xdai chain --- src/factory/factories.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index a810f35f1..823de0a64 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -136,7 +136,10 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", nonce: Chain.XDAI, - feeMargin + feeMargin: { + min: 0.5, + max: 1 + } }, algorandParams: { algodApiKey: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', @@ -332,7 +335,10 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.XDAI, - feeMargin + feeMargin: { + min: 0.5, + max: 1 + } }, algorandParams: { algodApiKey: From 5aabc0828fa99813adb7868cb5c66968a2fef7ce Mon Sep 17 00:00:00 2001 From: Rishabh Kumar Date: Tue, 12 Apr 2022 16:24:26 +0530 Subject: [PATCH 469/956] add tokenID, contract --- src/helpers/web3.ts | 39 ++++++++++++++++++++++++--------------- src/notifier/index.ts | 12 ++++++++---- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 6f42a8bf4..bbf612a22 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -129,7 +129,8 @@ export type Web3Helper = BaseWeb3Helper & ExtractTxnStatus & GetProvider & { XpNft: string; - } & WhitelistCheck & GetFeeMargins; + } & WhitelistCheck & + GetFeeMargins; /** * Create an object implementing minimal utilities for a web3 chain @@ -250,7 +251,9 @@ export async function web3HelperFactory( txFees?: string, senderAddress?: string, targetAddress?: string, - nftUri?: string + nftUri?: string, + tokenId?: string, + contract?: string ): Promise { await params.notifier.notifyWeb3( params.nonce, @@ -261,7 +264,9 @@ export async function web3HelperFactory( txFees, senderAddress, targetAddress, - nftUri + nftUri, + tokenId, + contract ); } @@ -440,16 +445,16 @@ export async function web3HelperFactory( const txr = await minter .connect(sender) - [method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - { - value: EthBN.from(txFees.toString(10)), - } - ); + [method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString(10)), + } + ); await notifyValidator( txr.hash, @@ -459,7 +464,9 @@ export async function web3HelperFactory( txFees.toString(), await sender.getAddress(), to, - id.uri + id.uri, + id.native.tokenId, + id.native.contract ); return txr; @@ -485,7 +492,9 @@ export async function web3HelperFactory( txFees.toString(), await sender.getAddress(), to, - id.uri + id.uri, + id.native.tokenId, + id.native.contract ); return res; diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 9f9623ea5..221c1c8c9 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -17,7 +17,9 @@ export function evNotifier(url: string) { txFees?: string, senderAddress?: string, targetAddress?: string, - nftUri?: string + nftUri?: string, + tokenId?: string, + contract?: string ) { await api.post("/tx/web3", { chain_nonce: fromChain, @@ -29,6 +31,8 @@ export function evNotifier(url: string) { senderAddress, targetAddress, nftUri, + tokenId, + contract, }); }, async notifyTron(txHash: string) { @@ -56,8 +60,8 @@ export function evNotifier(url: string) { }, async notifyAlgorand(txHash: string) { await api.post("/tx/algorand", { - tx_hash: txHash - }) - } + tx_hash: txHash, + }); + }, }; } From e520ab69e2db1c6bd6d409fdd6bc278b64a1c636 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 12 Apr 2022 16:32:20 +0530 Subject: [PATCH 470/956] web3: chains: add support for vechain --- package.json | 3 + src/consts.ts | 13 +- src/factory/factories.ts | 117 +- src/factory/index.ts | 25 +- yarn.lock | 2370 +++++++++++++++++++++++++++++++++++++- 5 files changed, 2430 insertions(+), 98 deletions(-) diff --git a/package.json b/package.json index dd062904e..0e954550b 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,8 @@ "@taquito/signer": "^11.1.0", "@taquito/taquito": "^11.1.0", "@taquito/tzip12": "^11.1.0", + "@vechain/connex-driver": "^2.0.8", + "@vechain/connex-framework": "^2.0.8", "@vechain/ethers": "^4.0.27-5", "@walletconnect/client": "^1.7.0", "algosdk": "^1.15.0-beta.1", @@ -43,6 +45,7 @@ "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.1.0", + "web3-providers-connex": "^0.3.1", "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f" } } diff --git a/src/consts.ts b/src/consts.ts index d8edb2adf..ea60ea5c6 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -33,7 +33,7 @@ export enum TestNetRpcUri { IOTEX = "https://babel-api.testnet.iotex.io", AURORA = "https://testnet.aurora.dev/", GODWOKEN = "https://godwoken-testnet-web3-v1-rpc.ckbapp.dev", - GATECHAIN = "https://meteora-evm.gatenode.cc" + GATECHAIN = "https://meteora-evm.gatenode.cc", // TODO: Algorand // TODO: Fuse } @@ -56,7 +56,7 @@ export enum MainNetRpcUri { IOTEX = "https://babel-api.mainnet.iotex.io", AURORA = "https://mainnet.aurora.dev", GODWOKEN = "https://mainnet.godwoken.io/rpc", - GATECHAIN = "https://evm.gatenode.cc" + GATECHAIN = "https://evm.gatenode.cc", // TODO: Algorand } @@ -91,6 +91,8 @@ export type MetaMap = { 0x15: Web3Meta; 0x16: Web3Meta; 0x17: Web3Meta; + // 0x18 Reserved + 0x19: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -115,6 +117,8 @@ export namespace Chain { export const AURORA = 0x15; // 21 export const GODWOKEN = 0x16; // 22 export const GATECHAIN = 0x17; // 23 + // 0x18 Reserved + export const VECHAIN = 0x19; // 25 } interface ChainData { @@ -308,7 +312,7 @@ CHAIN_INFO.set(Chain.GODWOKEN, { nonce: 0x16, decimals: 1e8, currency: SupportedCurrency.CKB, - chainId: 868455272153094 + chainId: 868455272153094, }); CHAIN_INFO.set(Chain.GATECHAIN, { name: "GateChain", @@ -317,6 +321,5 @@ CHAIN_INFO.set(Chain.GATECHAIN, { nonce: 0x17, decimals: 1e18, currency: SupportedCurrency.GT, - chainId: 85 + chainId: 85, }); - diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 823de0a64..cadd4455d 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -5,6 +5,9 @@ import { Chain, MainNetRpcUri, TestNetRpcUri } from "../consts"; import { ethers } from "ethers"; import { TezosToolkit } from "@taquito/taquito"; import { evNotifier } from "../notifier"; +import { Driver, SimpleNet } from "@vechain/connex-driver"; +import * as thor from "web3-providers-connex"; +import { Framework } from "@vechain/connex-framework"; const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", @@ -26,10 +29,21 @@ const middleware_uri = "https://notifier.xp.network"; const testnet_middleware_uri = "http://65.21.195.10/notify-test/"; export namespace ChainFactoryConfigs { - - export const TestNet: () => Partial = () => { + export const TestNet: () => Promise> = async () => { const feeMargin = { min: 0.5, max: 5 }; const notifier = evNotifier(testnet_middleware_uri); + + const net = new SimpleNet("https://sync-mainnet.veblocks.net"); + + const driver = await Driver.connect(net); + + const provider = thor.ethers.modifyProvider( + //@ts-ignore + new ethers.providers.Web3Provider( + new thor.ConnexProvider({ connex: new Framework(driver) }) + ) + ); + return { elrondParams: { node_uri: TestNetRpcUri.ELROND, @@ -41,7 +55,17 @@ export namespace ChainFactoryConfigs { esdt_swap: "WEGLD-2d1d69", notifier, nonce: 2, - feeMargin + feeMargin, + }, + vechainParams: { + notifier, + feeMargin, + nonce: Chain.VECHAIN, + provider, + minter_addr: "0x73575AC2b3dDd497b50B46642B5bBf0B43c3400A", + erc721_addr: "0x72Bd2eB1585aaC9c30Bc2875a3C16dea8B7fC232", + erc721Minter: "0x683d0327A82e2Ad24b9F7a4b17faA608cfceeC2d", + erc1155Minter: "0x2FeD1EbDe30484B3a13fB1552291D333537317f9", }, tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), @@ -56,7 +80,7 @@ export namespace ChainFactoryConfigs { "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", ], nonce: Chain.TRON, - feeMargin + feeMargin, }, avalancheParams: { notifier, @@ -66,7 +90,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", nonce: Chain.AVALANCHE, - feeMargin + feeMargin, }, polygonParams: { notifier, @@ -76,7 +100,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x5A768f8dDC67ccCA1431879BcA28E93a6c7722bb", erc721Minter: "0x6516E2D3387A9CF4E5e868E7842D110c95A9f3B4", nonce: Chain.POLYGON, - feeMargin + feeMargin, }, fantomParams: { notifier, @@ -86,7 +110,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "string", erc721Minter: "string", nonce: Chain.FANTOM, - feeMargin + feeMargin, }, bscParams: { notifier, @@ -96,7 +120,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x5dA3b7431f4581a7d35aEc2f3429174DC0f2A2E1", erc721Minter: "0x97CD6fD6cbFfaa24f5c858843955C2601cc7F2b9", nonce: Chain.BSC, - feeMargin + feeMargin, }, celoParams: { notifier, @@ -106,7 +130,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "string", erc721Minter: "string", nonce: Chain.CELO, - feeMargin + feeMargin, }, harmonyParams: { notifier, @@ -116,7 +140,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0xB546c2358A6e4b0B83192cCBB83CaE37FA572fe1", erc721Minter: "0xb036640d6f7cAfd338103dc60493250561Af2eBc", nonce: Chain.HARMONY, - feeMargin + feeMargin, }, ropstenParams: { notifier, @@ -126,7 +150,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", nonce: Chain.ETHEREUM, - feeMargin + feeMargin, }, xDaiParams: { notifier, @@ -138,17 +162,18 @@ export namespace ChainFactoryConfigs { nonce: Chain.XDAI, feeMargin: { min: 0.5, - max: 1 - } + max: 1, + }, }, algorandParams: { - algodApiKey: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', + algodApiKey: + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", indexerUri: "https://algoindexer.testnet.algoexplorerapi.io", - algodUri: 'https://node.testnet.algoexplorerapi.io', + algodUri: "https://node.testnet.algoexplorerapi.io", nonce: Chain.ALGORAND, sendNftAppId: 83148194, algodPort: 443, - notifier + notifier, }, auroraParams: { notifier, @@ -158,7 +183,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", nonce: Chain.AURORA, - feeMargin + feeMargin, }, uniqueParams: { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.UNIQUE), @@ -168,7 +193,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "string", erc721Minter: "string", notifier, - feeMargin + feeMargin, }, tezosParams: { bridgeAddress: "KT195omxiopL2ZDqM3g8hRj2sSCG2pTqjNEj", @@ -180,7 +205,7 @@ export namespace ChainFactoryConfigs { "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", "tz1exbY3JKPRpo2KLegK8iqoVNRLn1zFrnZi", ], - feeMargin + feeMargin, }, velasParams: { notifier, @@ -190,7 +215,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", nonce: Chain.VELAS, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), - feeMargin + feeMargin, }, iotexParams: { notifier, @@ -200,7 +225,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", nonce: Chain.IOTEX, - feeMargin + feeMargin, }, godwokenParams: { notifier, @@ -210,7 +235,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", nonce: Chain.GODWOKEN, - feeMargin + feeMargin, }, gateChainParams: { notifier, @@ -220,12 +245,12 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", erc1155Minter: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", nonce: Chain.GATECHAIN, - feeMargin - } + feeMargin, + }, }; }; - export const MainNet: () => Partial = () => { + export const MainNet: () => Promise> = async () => { const feeMargin = { min: 0.5, max: 5 }; const notifier = evNotifier(middleware_uri); return { @@ -239,7 +264,7 @@ export namespace ChainFactoryConfigs { esdt_swap: "WEGLD-5f1f8d", notifier, nonce: Chain.ELROND, - feeMargin + feeMargin, }, tronParams: { provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), @@ -248,7 +273,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "TRON", nonce: Chain.TRON, validators: EVM_VALIDATORS, - feeMargin + feeMargin, }, avalancheParams: { notifier, @@ -259,7 +284,7 @@ export namespace ChainFactoryConfigs { minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", nonce: Chain.AVALANCHE, - feeMargin + feeMargin, }, polygonParams: { notifier, @@ -270,7 +295,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", nonce: Chain.POLYGON, - feeMargin + feeMargin, }, fantomParams: { notifier, @@ -281,7 +306,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x75f93b47719Ab5270d27cF28a74eeA247d5DfeFF", minter_addr: "0x97dd1B3AE755539F56Db8b29258d7C925b20b84B", nonce: Chain.FANTOM, - feeMargin + feeMargin, }, bscParams: { notifier, @@ -292,7 +317,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", nonce: Chain.BSC, - feeMargin + feeMargin, }, celoParams: { notifier, @@ -302,7 +327,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "string", erc721Minter: "string", nonce: Chain.CELO, - feeMargin + feeMargin, }, harmonyParams: { notifier, @@ -313,7 +338,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", nonce: Chain.HARMONY, - feeMargin + feeMargin, }, ropstenParams: { notifier, @@ -324,7 +349,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", nonce: Chain.ETHEREUM, - feeMargin + feeMargin, }, xDaiParams: { notifier, @@ -337,8 +362,8 @@ export namespace ChainFactoryConfigs { nonce: Chain.XDAI, feeMargin: { min: 0.5, - max: 1 - } + max: 1, + }, }, algorandParams: { algodApiKey: @@ -348,7 +373,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.ALGORAND, sendNftAppId: 458971166, algodPort: 443, - notifier + notifier, }, fuseParams: { notifier, @@ -359,7 +384,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", minter_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", nonce: Chain.FUSE, - feeMargin + feeMargin, }, tezosParams: { bridgeAddress: "KT1WKtpe58XPCqNQmPmVUq6CZkPYRms5oLvu", @@ -372,9 +397,9 @@ export namespace ChainFactoryConfigs { "tz1L5DjmMEHbj5npRzZewSARLmTQQyESW4Mj", "tz1csq1THV9rKQQexo2XfSjSEJEg2wRCSHsD", "tz1TBhd1NeZNtWsTbecee8jDMDzeBNLmpViN", - "tz1SHcDnXRgb7kWidiaM2J6bbTS7x5jzBr67" + "tz1SHcDnXRgb7kWidiaM2J6bbTS7x5jzBr67", ], - feeMargin + feeMargin, }, velasParams: { notifier, @@ -385,7 +410,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", nonce: Chain.VELAS, - feeMargin + feeMargin, }, iotexParams: { notifier, @@ -396,7 +421,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", nonce: Chain.IOTEX, - feeMargin + feeMargin, }, auroraParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AURORA), @@ -407,7 +432,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.AURORA, notifier, - feeMargin + feeMargin, }, godwokenParams: { notifier, @@ -417,7 +442,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x0000000000000000000000000000000000000000", erc1155Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.GODWOKEN, - feeMargin + feeMargin, }, gateChainParams: { notifier, @@ -427,8 +452,8 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x0000000000000000000000000000000000000000", erc1155Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.GATECHAIN, - feeMargin - } + feeMargin, + }, }; }; } diff --git a/src/factory/index.ts b/src/factory/index.ts index e21c53968..56832792d 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -256,7 +256,7 @@ export interface AppConfig { nftListAuthToken: string; tronScanUri: string; wrappedNftPrefix: string; - network: "testnet" | "mainnet" + network: "testnet" | "mainnet"; } function mapNonceToParams(chainParams: Partial): ParamMap { @@ -280,8 +280,8 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.VELAS, chainParams.velasParams); cToP.set(Chain.IOTEX, chainParams.iotexParams); cToP.set(Chain.AURORA, chainParams.auroraParams); - cToP.set(Chain.GODWOKEN, chainParams.godwokenParams) - cToP.set(Chain.GATECHAIN, chainParams.gateChainParams) + cToP.set(Chain.GODWOKEN, chainParams.godwokenParams); + cToP.set(Chain.GATECHAIN, chainParams.gateChainParams); return cToP; } /** @@ -438,7 +438,10 @@ export function ChainFactory( async function isWrappedNft(nft: NftInfo, fc: number) { if (fc === Chain.TEZOS) { - return (typeof (nft.native as any).meta?.token?.metadata?.wrapped !== 'undefined') + return ( + typeof (nft.native as any).meta?.token?.metadata?.wrapped !== + "undefined" + ); } try { checkNotOldWrappedNft(nft.collectionIdent); @@ -585,7 +588,8 @@ export function ChainFactory( } } - const mw = "contract" in nft.native && + const mw = + "contract" in nft.native && mintWith && checkMintWith( mintWith, @@ -596,8 +600,8 @@ export function ChainFactory( fromChain.getNonce() ) ) - ? mintWith - : toChain.XpNft; + ? mintWith + : toChain.XpNft; if (appConfig.network === "mainnet") { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); @@ -612,7 +616,7 @@ export function ChainFactory( if (mw === undefined) { throw new Error(`Mint with is not set`); } - console.log(`Minting With : ${mw}`) + console.log(`Minting With : ${mw}`); if (await isWrappedNft(nft, fromChain.getNonce())) { const res = await fromChain.unfreezeWrappedNft( sender, @@ -655,7 +659,10 @@ export function ChainFactory( return await algo.claimableNfts(txSocket, claimer); }, async checkWhitelist(chain, nft) { - if (!chain.isNftWhitelisted || (await isWrappedNft(nft, chain.getNonce()))) { + if ( + !chain.isNftWhitelisted || + (await isWrappedNft(nft, chain.getNonce())) + ) { return true; } diff --git a/yarn.lock b/yarn.lock index e43bb989a..9c11902a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -106,6 +106,37 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.3": + version "2.6.3" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.3.tgz#39ddece7300b336276bad6c02f6a9f1a082caa05" + integrity sha512-mQwPucDL7FDYIg9XQ8DL31CnIYZwGhU5hyOO5E+BMmT71G0+RHvIT5rIkLBirJEKxV6+Rcf9aEIY0kXInxUWpQ== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.4" + +"@ethereumjs/tx@^3.3.2": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.1.tgz#8d941b83a602b4a89949c879615f7ea9a90e6671" + integrity sha512-xzDrTiu4sqZXUcaBxJ4n4W5FrppwxLxZB4ZDGVLtxSQR4lVuOnFR6RcUHdg1mpUhAPVrmnzLJpxaeXnPxIyhWA== + dependencies: + "@ethereumjs/common" "^2.6.3" + ethereumjs-util "^7.1.4" + +"@ethersproject/abi@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@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/abi@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.1.tgz#6ac28fafc9ef6f5a7a37e30356a2eb31fa05d39b" @@ -136,6 +167,21 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" +"@ethersproject/abi@5.6.0", "@ethersproject/abi@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.0.tgz#ea07cbc1eec2374d32485679c12408005895e9f3" + integrity sha512-AhVByTwdXCc2YQ20v300w6KVHle9g2OFc28ZAFCPnJyEpkv1xKXjZcSTgWOlv1i+0dqlgF8RCF2Rn2KC1t+1Vg== + dependencies: + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/abstract-provider@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e" @@ -162,6 +208,19 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/web" "^5.5.0" +"@ethersproject/abstract-provider@5.6.0", "@ethersproject/abstract-provider@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz#0c4ac7054650dbd9c476cf5907f588bbb6ef3061" + integrity sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/web" "^5.6.0" + "@ethersproject/abstract-signer@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81" @@ -184,6 +243,17 @@ "@ethersproject/logger" "^5.5.0" "@ethersproject/properties" "^5.5.0" +"@ethersproject/abstract-signer@5.6.0", "@ethersproject/abstract-signer@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz#9cd7ae9211c2b123a3b29bf47aab17d4d016e3e7" + integrity sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ== + dependencies: + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/address@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" @@ -206,6 +276,17 @@ "@ethersproject/logger" "^5.5.0" "@ethersproject/rlp" "^5.5.0" +"@ethersproject/address@5.6.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.0.tgz#13c49836d73e7885fc148ad633afad729da25012" + integrity sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ== + dependencies: + "@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@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" @@ -220,6 +301,13 @@ dependencies: "@ethersproject/bytes" "^5.5.0" +"@ethersproject/base64@5.6.0", "@ethersproject/base64@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.6.0.tgz#a12c4da2a6fb86d88563216b0282308fc15907c9" + integrity sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/basex@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6" @@ -236,6 +324,14 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/properties" "^5.5.0" +"@ethersproject/basex@5.6.0", "@ethersproject/basex@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.6.0.tgz#9ea7209bf0a1c3ddc2a90f180c3a7f0d7d2e8a69" + integrity sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/bignumber@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.1.tgz#64399d3b9ae80aa83d483e550ba57ea062c1042d" @@ -254,6 +350,15 @@ "@ethersproject/logger" "^5.5.0" bn.js "^4.11.9" +"@ethersproject/bignumber@5.6.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.6.0.tgz#116c81b075c57fa765a8f3822648cf718a8a0e26" + integrity sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + bn.js "^4.11.9" + "@ethersproject/bytes@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" @@ -268,6 +373,13 @@ dependencies: "@ethersproject/logger" "^5.5.0" +"@ethersproject/bytes@5.6.1", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.6.0": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.6.1.tgz#24f916e411f82a8a60412344bf4a813b917eefe7" + integrity sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g== + dependencies: + "@ethersproject/logger" "^5.6.0" + "@ethersproject/constants@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" @@ -282,6 +394,13 @@ dependencies: "@ethersproject/bignumber" "^5.5.0" +"@ethersproject/constants@5.6.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.6.0.tgz#55e3eb0918584d3acc0688e9958b0cedef297088" + integrity sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/contracts@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.1.tgz#3eb4f35b7fe60a962a75804ada2746494df3e470" @@ -314,6 +433,22 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/transactions" "^5.5.0" +"@ethersproject/contracts@5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.6.0.tgz#60f2cfc7addd99a865c6c8cfbbcec76297386067" + integrity sha512-74Ge7iqTDom0NX+mux8KbRUeJgu1eHZ3iv6utv++sLJG80FVuU9HnHeKVPfjd9s3woFhaFoQGf3B3iH/FrQmgw== + dependencies: + "@ethersproject/abi" "^5.6.0" + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/hash@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" @@ -342,6 +477,20 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" +"@ethersproject/hash@5.6.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.6.0.tgz#d24446a5263e02492f9808baa99b6e2b4c3429a2" + integrity sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA== + dependencies: + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/hdnode@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac" @@ -378,6 +527,24 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/wordlists" "^5.5.0" +"@ethersproject/hdnode@5.6.0", "@ethersproject/hdnode@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.6.0.tgz#9dcbe8d629bbbcf144f2cae476337fe92d320998" + integrity sha512-61g3Jp3nwDqJcL/p4nugSyLrpl/+ChXIOtCEM8UDmWeB3JCAt5FoLdOMXQc3WWkc0oM2C0aAn6GFqqMcS/mHTw== + dependencies: + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/basex" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + "@ethersproject/signing-key" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/wordlists" "^5.6.0" + "@ethersproject/json-wallets@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz#2583341cfe313fc9856642e8ace3080154145e95" @@ -416,6 +583,25 @@ aes-js "3.0.0" scrypt-js "3.0.1" +"@ethersproject/json-wallets@5.6.0", "@ethersproject/json-wallets@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.6.0.tgz#4c2fc27f17e36c583e7a252fb938bc46f98891e5" + integrity sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ== + dependencies: + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/hdnode" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + "@ethersproject/keccak256@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318" @@ -432,6 +618,14 @@ "@ethersproject/bytes" "^5.5.0" js-sha3 "0.8.0" +"@ethersproject/keccak256@5.6.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.6.0.tgz#fea4bb47dbf8f131c2e1774a1cecbfeb9d606459" + integrity sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w== + dependencies: + "@ethersproject/bytes" "^5.6.0" + js-sha3 "0.8.0" + "@ethersproject/logger@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" @@ -442,6 +636,11 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== +"@ethersproject/logger@5.6.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" + integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== + "@ethersproject/networks@5.4.2": version "5.4.2" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35" @@ -456,6 +655,13 @@ dependencies: "@ethersproject/logger" "^5.5.0" +"@ethersproject/networks@5.6.1", "@ethersproject/networks@^5.6.0": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.6.1.tgz#7a21ed1f83e86121737b16841961ec99ccf5c9c7" + integrity sha512-b2rrupf3kCTcc3jr9xOWBuHylSFtbpJf79Ga7QR98ienU2UqGimPGEsYMgbI29KHJfA5Us89XwGVmxrlxmSrMg== + dependencies: + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks@^5.4.0", "@ethersproject/networks@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" @@ -479,6 +685,14 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/sha2" "^5.5.0" +"@ethersproject/pbkdf2@5.6.0", "@ethersproject/pbkdf2@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.6.0.tgz#04fcc2d7c6bff88393f5b4237d906a192426685a" + integrity sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + "@ethersproject/properties@5.4.1": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.1.tgz#9f051f976ce790142c6261ccb7b826eaae1f2f36" @@ -493,6 +707,13 @@ dependencies: "@ethersproject/logger" "^5.5.0" +"@ethersproject/properties@5.6.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.6.0.tgz#38904651713bc6bdd5bdd1b0a4287ecda920fa04" + integrity sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg== + dependencies: + "@ethersproject/logger" "^5.6.0" + "@ethersproject/providers@5.4.5": version "5.4.5" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" @@ -543,6 +764,31 @@ bech32 "1.1.4" ws "7.4.6" +"@ethersproject/providers@5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.2.tgz#b9807b1c8c6f59fa2ee4b3cf6519724d07a9f422" + integrity sha512-6/EaFW/hNWz+224FXwl8+HdMRzVHt8DpPmu5MZaIQqx/K/ELnC9eY236SMV7mleCM3NnEArFwcAAxH5kUUgaRg== + dependencies: + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/basex" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/networks" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.0" + "@ethersproject/rlp" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/web" "^5.6.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/random@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" @@ -559,6 +805,14 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/logger" "^5.5.0" +"@ethersproject/random@5.6.0", "@ethersproject/random@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.6.0.tgz#1505d1ab6a250e0ee92f436850fa3314b2cb5ae6" + integrity sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" @@ -583,6 +837,14 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/logger" "^5.5.0" +"@ethersproject/rlp@5.6.0", "@ethersproject/rlp@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.6.0.tgz#55a7be01c6f5e64d6e6e7edb6061aa120962a717" + integrity sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/sha2@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" @@ -601,6 +863,15 @@ "@ethersproject/logger" "^5.5.0" hash.js "1.1.7" +"@ethersproject/sha2@5.6.0", "@ethersproject/sha2@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.6.0.tgz#364c4c11cc753bda36f31f001628706ebadb64d9" + integrity sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + hash.js "1.1.7" + "@ethersproject/signing-key@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec" @@ -625,6 +896,18 @@ elliptic "6.5.4" hash.js "1.1.7" +"@ethersproject/signing-key@5.6.0", "@ethersproject/signing-key@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.6.0.tgz#4f02e3fb09e22b71e2e1d6dc4bcb5dafa69ce042" + integrity sha512-S+njkhowmLeUu/r7ir8n78OUKx63kBdMCPssePS89So1TH4hZqnWFsThEd/GiXYp9qMxVrydf7KdM9MTGPFukA== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.7" + "@ethersproject/solidity@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.4.0.tgz#1305e058ea02dc4891df18b33232b11a14ece9ec" @@ -648,6 +931,18 @@ "@ethersproject/sha2" "^5.5.0" "@ethersproject/strings" "^5.5.0" +"@ethersproject/solidity@5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.6.0.tgz#64657362a596bf7f5630bdc921c07dd78df06dc3" + integrity sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/sha2" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/strings@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" @@ -666,6 +961,15 @@ "@ethersproject/constants" "^5.5.0" "@ethersproject/logger" "^5.5.0" +"@ethersproject/strings@5.6.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.6.0.tgz#9891b26709153d996bf1303d39a7f4bc047878fd" + integrity sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/transactions@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" @@ -696,6 +1000,21 @@ "@ethersproject/rlp" "^5.5.0" "@ethersproject/signing-key" "^5.5.0" +"@ethersproject/transactions@5.6.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.6.0.tgz#4b594d73a868ef6e1529a2f8f94a785e6791ae4e" + integrity sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg== + dependencies: + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/rlp" "^5.6.0" + "@ethersproject/signing-key" "^5.6.0" + "@ethersproject/units@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.4.0.tgz#d57477a4498b14b88b10396062c8cbbaf20c79fe" @@ -714,6 +1033,15 @@ "@ethersproject/constants" "^5.5.0" "@ethersproject/logger" "^5.5.0" +"@ethersproject/units@5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.6.0.tgz#e5cbb1906988f5740254a21b9ded6bd51e826d9c" + integrity sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw== + dependencies: + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/constants" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/wallet@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" @@ -756,6 +1084,27 @@ "@ethersproject/transactions" "^5.5.0" "@ethersproject/wordlists" "^5.5.0" +"@ethersproject/wallet@5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.6.0.tgz#33d11a806d783864208f348709a5a3badac8e22a" + integrity sha512-qMlSdOSTyp0MBeE+r7SUhr1jjDlC1zAXB8VD84hCnpijPQiSNbxr6GdiLXxpUs8UKzkDiNYYC5DRI3MZr+n+tg== + dependencies: + "@ethersproject/abstract-provider" "^5.6.0" + "@ethersproject/abstract-signer" "^5.6.0" + "@ethersproject/address" "^5.6.0" + "@ethersproject/bignumber" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/hdnode" "^5.6.0" + "@ethersproject/json-wallets" "^5.6.0" + "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/random" "^5.6.0" + "@ethersproject/signing-key" "^5.6.0" + "@ethersproject/transactions" "^5.6.0" + "@ethersproject/wordlists" "^5.6.0" + "@ethersproject/web@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" @@ -778,6 +1127,17 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" +"@ethersproject/web@5.6.0", "@ethersproject/web@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.6.0.tgz#4bf8b3cbc17055027e1a5dd3c357e37474eaaeb8" + integrity sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg== + dependencies: + "@ethersproject/base64" "^5.6.0" + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" @@ -811,6 +1171,17 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" +"@ethersproject/wordlists@5.6.0", "@ethersproject/wordlists@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.6.0.tgz#79e62c5276e091d8575f6930ba01a29218ded032" + integrity sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q== + dependencies: + "@ethersproject/bytes" "^5.6.0" + "@ethersproject/hash" "^5.6.0" + "@ethersproject/logger" "^5.6.0" + "@ethersproject/properties" "^5.6.0" + "@ethersproject/strings" "^5.6.0" + "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" @@ -1113,6 +1484,11 @@ "@randlabs/communication-bridge" "^1.0.0" belter "^1.0.170" +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + "@sindresorhus/is@^2.0.0": version "2.1.1" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" @@ -1175,6 +1551,13 @@ resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + "@szmarczak/http-timer@^4.0.0": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1277,6 +1660,20 @@ elliptic "^6.5.4" typedarray-to-buffer "^4.0.0" +"@types/bn.js@^4.11.5": + version "4.11.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + +"@types/bn.js@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" + integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== + dependencies: + "@types/node" "*" + "@types/cacheable-request@^6.0.1": version "6.0.2" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" @@ -1329,11 +1726,23 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== +"@types/node@^12.12.6": + version "12.20.47" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.47.tgz#ca9237d51f2a2557419688511dab1c8daf475188" + integrity sha512-BzcaRsnFuznzOItW1WpQrDHM7plAa7GIDMZ6b5pnMbkqEtM/6WCOhvZar39oeMQP79gwvFUWjjptE7/KGcNqFg== + "@types/node@^13.7.0": version "13.13.52" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" + "@types/responselike@*": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -1341,6 +1750,13 @@ dependencies: "@types/node" "*" +"@types/secp256k1@^4.0.1": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + dependencies: + "@types/node" "*" + "@typescript-eslint/eslint-plugin@^4.31.0": version "4.31.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" @@ -1456,6 +1872,34 @@ "@typescript-eslint/types" "4.31.0" eslint-visitor-keys "^2.0.0" +"@vechain/connex-driver@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@vechain/connex-driver/-/connex-driver-2.0.8.tgz#2c4ce3815b4ed398c768c359decf29fbb58f1d5c" + integrity sha512-SGUVexzDGEKPILYCHUw9tBIvtJULLTxn+aMGIx5tQIpqO/2NiFUYERx75mzuBaFe7aWtw4zd2yhGXWrZlfXydw== + dependencies: + "@vechain/connex-types" "^2.0.2" + axios "^0.21.1" + bignumber.js "^7.2.1" + isomorphic-ws "^4.0.1" + lru-cache "^5.1.1" + thor-devkit "^2.0.4" + ws "^7.1.0" + +"@vechain/connex-framework@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@vechain/connex-framework/-/connex-framework-2.0.8.tgz#864a86650c51e91d079b5a0cfe34c4912ce0a254" + integrity sha512-wJHDpAxZsbA8YrE7nGaspdZhB1nLi2yDbGayS1w/QonmIjwFZU31Z+Y7v2AKXSjGm69OHwdT1tBAUsP2+721ng== + dependencies: + "@vechain/connex-types" "^2.0.2" + bignumber.js "^7.2.1" + thor-devkit "^2.0.4" + validator-ts "^0.9.1" + +"@vechain/connex-types@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vechain/connex-types/-/connex-types-2.0.2.tgz#089d94137ba9934daf903025647897f804f4b7c4" + integrity sha512-as905zXnVgc74mLkWkr2zMgJRJmFTMEDrRgtOPn68rqLeYCBzR7Ye1QCGbGKnPUaYGDLbGutoIW8r1y8wmGCUg== + "@vechain/ethers@^4.0.27-5": version "4.0.27-5" resolved "https://registry.yarnpkg.com/@vechain/ethers/-/ethers-4.0.27-5.tgz#2e7d40294b2e14ddf4cf6f6094bbdc871e26e299" @@ -1676,6 +2120,14 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + acorn-jsx@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1696,7 +2148,7 @@ aes-js@^3.1.2: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1804,6 +2256,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -1819,6 +2276,28 @@ array.prototype.flatmap@^1.2.4: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + assert@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" @@ -1839,6 +2318,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1854,6 +2338,16 @@ available-typed-arrays@^1.0.2: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + axios@0.21.1, axios@^0.21.1: version "0.21.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" @@ -1891,7 +2385,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.2: +base-x@^3.0.2, base-x@^3.0.8: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== @@ -1908,6 +2402,13 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -1937,6 +2438,11 @@ bignumber.js@9.0.1, bignumber.js@^9.0.0, bignumber.js@^9.0.1: resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== +bignumber.js@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" + integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -2011,21 +2517,70 @@ blakejs@^1.1.0: resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== +bluebird@^3.5.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + bluebird@~3.4.1: version "3.4.7" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= + bn.js@4.11.8: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -bn.js@^4.11.9, bn.js@^4.4.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9, bn.js@^4.4.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +body-parser@1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" + integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.9.7" + raw-body "2.4.3" + type-is "~1.6.18" + +body-parser@^1.16.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2041,11 +2596,65 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.1.0: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + 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" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + bs58@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -2072,7 +2681,17 @@ buffer-indexof-polyfill@~1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== -buffer@^5.5.0: +buffer-to-arraybuffer@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2093,6 +2712,18 @@ buffers@~0.1.1: resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= +bufferutil@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" + integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== + dependencies: + node-gyp-build "^4.3.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + cacheable-lookup@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" @@ -2101,6 +2732,19 @@ cacheable-lookup@^2.0.0: "@types/keyv" "^3.1.1" keyv "^4.0.0" +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + 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" + cacheable-request@^7.0.1: version "7.0.2" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" @@ -2132,6 +2776,11 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + chainsaw@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" @@ -2176,12 +2825,23 @@ chokidar@^3.0.0: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: +chownr@^1.1.1, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -cipher-base@^1.0.1, cipher-base@^1.0.3: +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== @@ -2189,6 +2849,11 @@ cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2239,7 +2904,7 @@ colors@^1.4.0: resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -combined-stream@^1.0.8: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -2266,6 +2931,37 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-hash@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + cookiejar@^2.1.1, cookiejar@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" @@ -2276,12 +2972,33 @@ core-js@^2.4.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -create-hash@^1.1.0, create-hash@^1.1.2: +cors@^2.8.1: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== @@ -2292,7 +3009,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@1.1.7, create-hmac@^1.1.4: +create-hmac@1.1.7, create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -2343,6 +3060,23 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= +crypto-browserify@3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#b78aa00d70a44c9f1d42515c9d1d7a67a5aa34b2" @@ -2354,6 +3088,28 @@ crypto-js@^4.1.1: resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debug@2.6.9, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" @@ -2371,6 +3127,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + decompress-response@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" @@ -2400,6 +3163,11 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + defer-to-connect@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" @@ -2422,11 +3190,39 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-browser@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" @@ -2437,6 +3233,15 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2451,6 +3256,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + dotenv@^16.0.0: version "16.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" @@ -2468,6 +3278,14 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + ed25519-hd-key@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.1.2.tgz#168dcf08419694be7bba3319e7d64e4a5cfe5d44" @@ -2477,7 +3295,12 @@ ed25519-hd-key@1.1.2: create-hmac "1.1.7" tweetnacl "1.0.3" -elliptic@6.5.4, elliptic@^6.5.4: +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -2500,6 +3323,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2567,15 +3395,46 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.60" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.60.tgz#e8060a86472842b93019c31c34865012449883f4" + integrity sha512-jpKNXIt60htYG59/9FGf2PYT3pwMpnEbNKysU+k/4FGwyGtMotOvcZOuW+EmXXYASRqYSXQfGL5cVIthOTgbkg== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + es6-object-assign@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escape-string-regexp@^4.0.0: version "4.0.0" @@ -2727,6 +3586,79 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eth-ens-namehash@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" + integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= + dependencies: + idna-uts46-hx "^2.3.1" + js-sha3 "^0.5.7" + +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + +eth-lib@^0.1.26: + version "0.1.29" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" + integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + nano-json-stream-parser "^0.1.2" + servify "^0.1.12" + ws "^3.0.0" + xhr-request-promise "^0.1.2" + +ethereum-bloom-filters@^1.0.6: + version "1.0.10" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== + dependencies: + js-sha3 "^0.8.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@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" + +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz#a6885bcdd92045b06f596c7626c3e89ab3312458" + integrity sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A== + dependencies: + "@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" + ethers@^5.4.4: version "5.4.6" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.6.tgz#fe0a023956b5502c947f58e82fbcf9a73e5e75b6" @@ -2799,21 +3731,83 @@ ethers@^5.5.4: "@ethersproject/web" "5.5.1" "@ethersproject/wordlists" "5.5.0" +ethers@^5.6.2: + version "5.6.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.6.2.tgz#e75bac7f038c5e0fdde667dba62fc223924143a2" + integrity sha512-EzGCbns24/Yluu7+ToWnMca3SXJ1Jk1BvWB7CCmVNxyOeM4LLvw2OLuIHhlkhQk1dtOcj9UMsdkxUh8RiG1dxQ== + dependencies: + "@ethersproject/abi" "5.6.0" + "@ethersproject/abstract-provider" "5.6.0" + "@ethersproject/abstract-signer" "5.6.0" + "@ethersproject/address" "5.6.0" + "@ethersproject/base64" "5.6.0" + "@ethersproject/basex" "5.6.0" + "@ethersproject/bignumber" "5.6.0" + "@ethersproject/bytes" "5.6.1" + "@ethersproject/constants" "5.6.0" + "@ethersproject/contracts" "5.6.0" + "@ethersproject/hash" "5.6.0" + "@ethersproject/hdnode" "5.6.0" + "@ethersproject/json-wallets" "5.6.0" + "@ethersproject/keccak256" "5.6.0" + "@ethersproject/logger" "5.6.0" + "@ethersproject/networks" "5.6.1" + "@ethersproject/pbkdf2" "5.6.0" + "@ethersproject/properties" "5.6.0" + "@ethersproject/providers" "5.6.2" + "@ethersproject/random" "5.6.0" + "@ethersproject/rlp" "5.6.0" + "@ethersproject/sha2" "5.6.0" + "@ethersproject/signing-key" "5.6.0" + "@ethersproject/solidity" "5.6.0" + "@ethersproject/strings" "5.6.0" + "@ethersproject/transactions" "5.6.0" + "@ethersproject/units" "5.6.0" + "@ethersproject/wallet" "5.6.0" + "@ethersproject/web" "5.6.0" + "@ethersproject/wordlists" "5.6.0" + +ethjs-unit@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= + dependencies: + bn.js "4.11.6" + number-to-bn "1.7.0" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== +eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -2832,6 +3826,64 @@ expand-template@^2.0.3: resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== +express@^4.14.0: + version "4.17.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" + integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.19.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.4.2" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.9.7" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.17.2" + serve-static "1.14.2" + setprototypeof "1.2.0" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" + integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== + dependencies: + type "^2.5.0" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2889,6 +3941,19 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -2972,6 +4037,11 @@ foreach@^2.0.5: resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -2981,16 +4051,44 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + formidable@^1.2.2: version "1.2.6" resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -3000,6 +4098,13 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -3058,7 +4163,12 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-stream@^4.0.0: +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -3072,6 +4182,13 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" @@ -3108,6 +4225,14 @@ glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" +global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + globals@^13.6.0, globals@^13.9.0: version "13.10.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" @@ -3127,6 +4252,23 @@ globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" +got@9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + 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" + got@^10.5.7: version "10.7.0" resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" @@ -3148,11 +4290,44 @@ got@^10.5.7: to-readable-stream "^2.0.0" type-fest "^0.10.0" +got@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -3173,11 +4348,23 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3234,6 +4421,56 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== +http-errors@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +idna-uts46-hx@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== + dependencies: + punycode "2.1.0" + ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -3270,7 +4507,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -3290,6 +4527,11 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + is-arguments@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" @@ -3360,6 +4602,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + is-generator-function@^1.0.7: version "1.0.9" resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c" @@ -3372,6 +4619,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= + is-nan@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -3395,6 +4647,16 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -3408,7 +4670,12 @@ is-regex@^1.1.3: call-bind "^1.0.2" has-symbols "^1.0.2" -is-stream@^1.1.0: +is-retry-allowed@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -3436,7 +4703,7 @@ is-typed-array@^1.1.3: foreach "^2.0.5" has-symbols "^1.0.1" -is-typedarray@1.0.0, is-typedarray@^1.0.0: +is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -3451,6 +4718,24 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + js-base64@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.1.tgz#555aae398b74694b4037af1f8a5a6209d170efbe" @@ -3461,7 +4746,7 @@ js-sha256@^0.9.0: resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== -js-sha3@0.5.7: +js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= @@ -3489,6 +4774,11 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + json-bigint@1.0.0, json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -3496,6 +4786,11 @@ json-bigint@1.0.0, json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -3518,11 +4813,21 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" @@ -3535,7 +4840,17 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -keccak@^3.0.1: +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +keccak@^3.0.0, keccak@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== @@ -3549,6 +4864,13 @@ kefir@^3.7.3: resolved "https://registry.yarnpkg.com/kefir/-/kefir-3.8.8.tgz#235932ddfbed422acebf5d7cba503035e9ea05c5" integrity sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA== +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + keyv@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" @@ -3633,6 +4955,11 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -3685,12 +5012,22 @@ md5@^2.2.1: crypt "0.0.2" is-buffer "~1.1.6" +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@^1.1.2: +methods@^1.1.2, methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= @@ -3703,11 +5040,24 @@ micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + mime-db@1.50.0: version "1.50.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + mime-types@^2.1.12: version "2.1.33" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" @@ -3715,12 +5065,24 @@ mime-types@^2.1.12: dependencies: mime-db "1.50.0" +mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + mime@^2.4.6: version "2.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -mimic-response@^1.0.0: +mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== @@ -3730,6 +5092,13 @@ mimic-response@^2.0.0, mimic-response@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -3752,11 +5121,43 @@ minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + "mkdirp@>=0.5 0": version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -3764,16 +5165,78 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: dependencies: minimist "^1.2.5" -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@^0.5.5: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mock-fs@^4.1.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +nano-json-stream-parser@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= + nanoassert@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" @@ -3789,6 +5252,16 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -3826,6 +5299,11 @@ node-gyp-build@^4.2.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== +node-gyp-build@^4.3.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" + integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== + node-hid@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.1.tgz#f83c8aa0bb4e6758b5f7383542477da93f67359d" @@ -3845,6 +5323,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -3872,7 +5355,20 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -object-assign@^4.1.0: +number-to-bn@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -3915,11 +5411,32 @@ object.fromentries@^2.0.3: es-abstract "^1.18.0-next.2" has "^1.0.3" +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= + dependencies: + http-https "^1.0.0" + octokit-pagination-methods@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -3954,6 +5471,16 @@ os-name@^3.1.0: macos-release "^2.2.0" windows-release "^3.1.0" +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" @@ -3985,6 +5512,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + dependencies: + p-finally "^1.0.0" + p-timeout@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -4004,6 +5538,22 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-headers@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" + integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== + parseqs@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" @@ -4014,6 +5564,11 @@ parseuri@0.0.6: resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -4039,12 +5594,17 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.9, pbkdf2@^3.1.2: +pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -4060,6 +5620,11 @@ perf_hooks@0.0.1: resolved "https://registry.yarnpkg.com/perf_hooks/-/perf_hooks-0.0.1.tgz#253e7e18b71fcc0390fd3afb2cd7cf1685df040c" integrity sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw== +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" @@ -4115,6 +5680,16 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + prettier@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" @@ -4130,6 +5705,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -4154,6 +5734,31 @@ protobufjs@6.10.2: "@types/node" "^13.7.0" long "^4.0.0" +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -4162,7 +5767,12 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0: +punycode@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= + +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -4174,6 +5784,23 @@ qs@6.10.1, qs@^6.9.4: dependencies: side-channel "^1.0.4" +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + +qs@6.9.7: + version "6.9.7" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" + integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + query-string@6.13.5: version "6.13.5" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" @@ -4183,6 +5810,15 @@ query-string@6.13.5: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -4193,13 +5829,46 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -randombytes@^2.0.1, randombytes@^2.1.0: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" + integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== + dependencies: + bytes "3.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -4261,6 +5930,32 @@ regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +request@^2.79.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -4294,6 +5989,13 @@ resolve@^1.1.6: is-core-module "^2.2.0" path-parse "^1.0.6" +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + responselike@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" @@ -4328,6 +6030,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rlp@^2.0.0, rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -4342,7 +6051,7 @@ rxjs@6, rxjs@^6.6.3: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -4352,12 +6061,17 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + scrypt-js@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== -scrypt-js@3.0.1: +scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -4367,6 +6081,15 @@ scryptsy@2.1.0: resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== +secp256k1@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + semver@7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" @@ -4384,6 +6107,46 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +send@0.17.2: + version "0.17.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" + integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "1.8.1" + mime "1.6.0" + ms "2.1.3" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.2: + version "1.14.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" + integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.2" + +servify@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== + dependencies: + body-parser "^1.16.0" + cors "^2.8.1" + express "^4.14.0" + request "^2.79.0" + xhr "^2.3.3" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -4394,11 +6157,16 @@ setimmediate@1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= -setimmediate@~1.0.4: +setimmediate@^1.0.5, setimmediate@~1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -4468,6 +6236,15 @@ simple-concat@^1.0.0: resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== +simple-get@^2.7.0: + version "2.8.2" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" + integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-get@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" @@ -4532,6 +6309,36 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -4635,6 +6442,13 @@ strip-eof@^1.0.0: resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= + dependencies: + is-hex-prefixed "1.0.0" + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -4676,6 +6490,23 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +swarm-js@^0.1.40: + version "0.1.40" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" + integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== + dependencies: + bluebird "^3.5.0" + buffer "^5.0.5" + eth-lib "^0.1.26" + fs-extra "^4.0.2" + got "^7.1.0" + mime-types "^2.1.16" + mkdirp-promise "^5.0.1" + mock-fs "^4.1.0" + setimmediate "^1.0.5" + tar "^4.0.2" + xhr-request "^1.0.1" + table@^5.4.6: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -4719,16 +6550,52 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" +tar@^4.0.2: + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= +thor-devkit@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/thor-devkit/-/thor-devkit-2.0.4.tgz#2f4dccc8bbde79d532876a9c6a4f41650aeed905" + integrity sha512-4bti4dwYOwflXI3OirSMOvN8nyTTkwVMduuT1QmNbm9rJ1VLmI9Up2Hvqs20w4FxgA77ggYHbawU4I6OS9ZkOQ== + dependencies: + "@vechain/ethers" "^4.0.27-5" + bignumber.js "^7.2.1" + blakejs "^1.1.0" + elliptic "6.5.4" + fast-json-stable-stringify "^2.0.0" + js-sha3 "0.5.7" + rlp "^2.0.0" + through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + to-readable-stream@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" @@ -4741,6 +6608,19 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + "traverse@>=0.3.0 <0.4": version "0.3.9" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" @@ -4794,6 +6674,11 @@ tweetnacl@1.0.3, tweetnacl@^1.0.3: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -4811,7 +6696,25 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typedarray-to-buffer@3.1.5: +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f" + integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ== + +typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== @@ -4849,6 +6752,11 @@ u2f-api@0.2.7: resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -4876,6 +6784,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + unzipper@^0.10.8: version "0.10.11" resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" @@ -4899,6 +6812,20 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + url-parse@^1.5.1: version "1.5.3" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" @@ -4907,6 +6834,16 @@ url-parse@^1.5.1: querystringify "^2.1.1" requires-port "^1.0.0" +url-set-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + usb@^1.7.0: version "1.7.1" resolved "https://registry.yarnpkg.com/usb/-/usb-1.7.1.tgz#d723223ec517b802c4d2082e31a4649c65c491c5" @@ -4916,6 +6853,18 @@ usb@^1.7.0: node-addon-api "3.0.2" prebuild-install "^5.3.3" +utf-8-validate@^5.0.2: + version "5.0.9" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3" + integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== + dependencies: + node-gyp-build "^4.3.0" + +utf8@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -4933,31 +6882,322 @@ util@^0.12.0: safe-buffer "^5.1.2" which-typed-array "^1.1.2" +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + uuid@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + uuid@8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== +validator-ts@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/validator-ts/-/validator-ts-0.9.1.tgz#1ab8748e6ddddc63e9e5edbf7fea91a82b7a466f" + integrity sha512-3PCL0AzKWvG/4Y12zUgk6OVup9zQ3vXGzqUIZ69GnSapIV9lgr9VCLFReUgTe04vY6Fm4WzAL7a1HdIVyWRw8Q== + validator@^13.7.0: version "13.7.0" resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== +varint@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vscode-textmate@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== +web3-bzz@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.3.tgz#6860a584f748838af5e3932b6798e024ab8ae951" + integrity sha512-y2i2IW0MfSqFc1JBhBSQ59Ts9xE30hhxSmLS13jLKWzie24/An5dnoGarp2rFAy20tevJu1zJVPYrEl14jiL5w== + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + +web3-core-helpers@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.3.tgz#9a8d7830737d0e9c48694b244f4ce0f769ba67b9" + integrity sha512-qS2t6UKLhRV/6C7OFHtMeoHphkcA+CKUr2vfpxy4hubs3+Nj28K9pgiqFuvZiXmtEEwIAE2A28GBOC3RdcSuFg== + dependencies: + web3-eth-iban "1.7.3" + web3-utils "1.7.3" + +web3-core-method@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.3.tgz#eb2a4f140448445c939518c0fa6216b3d265c5e9" + integrity sha512-SeF8YL/NVFbj/ddwLhJeS0io8y7wXaPYA2AVT0h2C2ESYkpvOtQmyw2Bc3aXxBmBErKcbOJjE2ABOKdUmLSmMA== + dependencies: + "@ethersproject/transactions" "^5.0.0-beta.135" + web3-core-helpers "1.7.3" + web3-core-promievent "1.7.3" + web3-core-subscriptions "1.7.3" + web3-utils "1.7.3" + +web3-core-promievent@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.3.tgz#2d0eeef694569b61355054c721578f67df925b80" + integrity sha512-+mcfNJLP8h2JqcL/UdMGdRVfTdm+bsoLzAFtLpazE4u9kU7yJUgMMAqnK59fKD3Zpke3DjaUJKwz1TyiGM5wig== + dependencies: + eventemitter3 "4.0.4" + +web3-core-requestmanager@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.3.tgz#226f79d16e546c9157d00908de215e984cae84e9" + integrity sha512-bC+jeOjPbagZi2IuL1J5d44f3zfPcgX+GWYUpE9vicNkPUxFBWRG+olhMo7L+BIcD57cTmukDlnz+1xBULAjFg== + dependencies: + util "^0.12.0" + web3-core-helpers "1.7.3" + web3-providers-http "1.7.3" + web3-providers-ipc "1.7.3" + web3-providers-ws "1.7.3" + +web3-core-subscriptions@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.3.tgz#ca456dfe2c219a0696c5cf34c13b03c3599ec5d5" + integrity sha512-/i1ZCLW3SDxEs5mu7HW8KL4Vq7x4/fDXY+yf/vPoDljlpvcLEOnI8y9r7om+0kYwvuTlM6DUHHafvW0221TyRQ== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.7.3" + +web3-core@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.3.tgz#2ef25c4cc023997f43af9f31a03b571729ff3cda" + integrity sha512-4RNxueGyevD1XSjdHE57vz/YWRHybpcd3wfQS33fgMyHZBVLFDNwhn+4dX4BeofVlK/9/cmPAokLfBUStZMLdw== + dependencies: + "@types/bn.js" "^4.11.5" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.7.3" + web3-core-method "1.7.3" + web3-core-requestmanager "1.7.3" + web3-utils "1.7.3" + +web3-eth-abi@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.3.tgz#2a1123c7252c37100eecd0b1fb2fb2c51366071f" + integrity sha512-ZlD8DrJro0ocnbZViZpAoMX44x5aYAb73u2tMq557rMmpiluZNnhcCYF/NnVMy6UIkn7SF/qEA45GXA1ne6Tnw== + dependencies: + "@ethersproject/abi" "5.0.7" + web3-utils "1.7.3" + +web3-eth-accounts@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.3.tgz#cd1789000f13ed3c438e96b3e80ee7be8d3f1a9b" + integrity sha512-aDaWjW1oJeh0LeSGRVyEBiTe/UD2/cMY4dD6pQYa8dOhwgMtNQjxIQ7kacBBXe7ZKhjbIFZDhvXN4mjXZ82R2Q== + dependencies: + "@ethereumjs/common" "^2.5.0" + "@ethereumjs/tx" "^3.3.2" + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-util "^7.0.10" + scrypt-js "^3.0.1" + uuid "3.3.2" + web3-core "1.7.3" + web3-core-helpers "1.7.3" + web3-core-method "1.7.3" + web3-utils "1.7.3" + +web3-eth-contract@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.3.tgz#c4efc118ed7adafbc1270b633f33e696a39c7fc7" + integrity sha512-7mjkLxCNMWlQrlfM/MmNnlKRHwFk5XrZcbndoMt3KejcqDP6dPHi2PZLutEcw07n/Sk8OMpSamyF3QiGfmyRxw== + dependencies: + "@types/bn.js" "^4.11.5" + web3-core "1.7.3" + web3-core-helpers "1.7.3" + web3-core-method "1.7.3" + web3-core-promievent "1.7.3" + web3-core-subscriptions "1.7.3" + web3-eth-abi "1.7.3" + web3-utils "1.7.3" + +web3-eth-ens@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.3.tgz#ebc56a4dc7007f4f899259bbae1237d3095e2f3f" + integrity sha512-q7+hFGHIc0mBI3LwgRVcLCQmp6GItsWgUtEZ5bjwdjOnJdbjYddm7PO9RDcTDQ6LIr7hqYaY4WTRnDHZ6BEt5Q== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + web3-core "1.7.3" + web3-core-helpers "1.7.3" + web3-core-promievent "1.7.3" + web3-eth-abi "1.7.3" + web3-eth-contract "1.7.3" + web3-utils "1.7.3" + +web3-eth-iban@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.3.tgz#47433a73380322bba04e17b91fccd4a0e63a390a" + integrity sha512-1GPVWgajwhh7g53mmYDD1YxcftQniIixMiRfOqlnA1w0mFGrTbCoPeVaSQ3XtSf+rYehNJIZAUeDBnONVjXXmg== + dependencies: + bn.js "^4.11.9" + web3-utils "1.7.3" + +web3-eth-personal@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.3.tgz#ca2464dca356d4335aa8141cf75a6947f10f45a6" + integrity sha512-iTLz2OYzEsJj2qGE4iXC1Gw+KZN924fTAl0ESBFs2VmRhvVaM7GFqZz/wx7/XESl3GVxGxlRje3gNK0oGIoYYQ== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.7.3" + web3-core-helpers "1.7.3" + web3-core-method "1.7.3" + web3-net "1.7.3" + web3-utils "1.7.3" + +web3-eth@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.3.tgz#9e92785ea18d682548b6044551abe7f2918fc0b5" + integrity sha512-BCIRMPwaMlTCbswXyGT6jj9chCh9RirbDFkPtvqozfQ73HGW7kP78TXXf9+Xdo1GjutQfxi/fQ9yPdxtDJEpDA== + dependencies: + web3-core "1.7.3" + web3-core-helpers "1.7.3" + web3-core-method "1.7.3" + web3-core-subscriptions "1.7.3" + web3-eth-abi "1.7.3" + web3-eth-accounts "1.7.3" + web3-eth-contract "1.7.3" + web3-eth-ens "1.7.3" + web3-eth-iban "1.7.3" + web3-eth-personal "1.7.3" + web3-net "1.7.3" + web3-utils "1.7.3" + +web3-net@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.3.tgz#54e35bcc829fdc40cf5001a3870b885d95069810" + integrity sha512-zAByK0Qrr71k9XW0Adtn+EOuhS9bt77vhBO6epAeQ2/VKl8rCGLAwrl3GbeEl7kWa8s/su72cjI5OetG7cYR0g== + dependencies: + web3-core "1.7.3" + web3-core-method "1.7.3" + web3-utils "1.7.3" + +web3-providers-connex@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/web3-providers-connex/-/web3-providers-connex-0.3.1.tgz#45eb139ea70c76a8bb625a964d92f61c8033adc2" + integrity sha512-0jnPkPszyHA9nlvB1hJ+FDT8pLixF7GzmZm0gB/j1UonuYYuYD3VtNgQ2+N4jDkkFuRd3H/sZRR+Piq0tV8aig== + dependencies: + "@vechain/connex-driver" "^2.0.8" + "@vechain/connex-types" "^2.0.2" + ethers "^5.6.2" + eventemitter3 "^4.0.4" + thor-devkit "^2.0.4" + web3 "^1.7.1" + +web3-providers-http@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.3.tgz#8ea5e39f6ceee0b5bc4e45403fae75cad8ff4cf7" + integrity sha512-TQJfMsDQ5Uq9zGMYlu7azx1L7EvxW+Llks3MaWn3cazzr5tnrDbGh6V17x6LN4t8tFDHWx0rYKr3mDPqyTjOZw== + dependencies: + web3-core-helpers "1.7.3" + xhr2-cookies "1.1.0" + +web3-providers-ipc@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.3.tgz#a34872103a8d37a03795fa2f9b259e869287dcaa" + integrity sha512-Z4EGdLKzz6I1Bw+VcSyqVN4EJiT2uAro48Am1eRvxUi4vktGoZtge1ixiyfrRIVb6nPe7KnTFl30eQBtMqS0zA== + dependencies: + oboe "2.1.5" + web3-core-helpers "1.7.3" + +web3-providers-ws@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.3.tgz#87564facc47387c9004a043a6686e4881ed6acfe" + integrity sha512-PpykGbkkkKtxPgv7U4ny4UhnkqSZDfLgBEvFTXuXLAngbX/qdgfYkhIuz3MiGplfL7Yh93SQw3xDjImXmn2Rgw== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.7.3" + websocket "^1.0.32" + +web3-shh@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.3.tgz#84e10adf628556798244b58f73cda1447bb7075e" + integrity sha512-bQTSKkyG7GkuULdZInJ0osHjnmkHij9tAySibpev1XjYdjLiQnd0J9YGF4HjvxoG3glNROpuCyTaRLrsLwaZuw== + dependencies: + web3-core "1.7.3" + web3-core-method "1.7.3" + web3-core-subscriptions "1.7.3" + web3-net "1.7.3" + +web3-utils@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.3.tgz#b214d05f124530d8694ad364509ac454d05f207c" + integrity sha512-g6nQgvb/bUpVUIxJE+ezVN+rYwYmlFyMvMIRSuqpi1dk6ApDD00YNArrk7sPcZnjvxOJ76813Xs2vIN2rgh4lg== + dependencies: + 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" + +web3@^1.7.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.3.tgz#30fe786338b2cc775881cb28c056ee5da4be65b8" + integrity sha512-UgBvQnKIXncGYzsiGacaiHtm0xzQ/JtGqcSO/ddzQHYxnNuwI72j1Pb4gskztLYihizV9qPNQYHMSCiBlStI9A== + dependencies: + web3-bzz "1.7.3" + web3-core "1.7.3" + web3-eth "1.7.3" + web3-eth-personal "1.7.3" + web3-net "1.7.3" + web3-shh "1.7.3" + web3-utils "1.7.3" + +websocket@^1.0.32: + version "1.0.34" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" + integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -5049,13 +7289,57 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== -xhr2-cookies@^1.1.0: +ws@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@^7.1.0: + version "7.5.7" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + +xhr-request-promise@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== + dependencies: + xhr-request "^1.1.0" + +xhr-request@^1.0.1, xhr-request@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== + dependencies: + buffer-to-arraybuffer "^0.0.5" + object-assign "^4.1.1" + query-string "^5.0.1" + simple-get "^2.7.0" + timed-out "^4.0.1" + url-set-query "^1.0.0" + xhr "^2.0.4" + +xhr2-cookies@1.1.0, xhr2-cookies@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= dependencies: cookiejar "^2.1.1" +xhr@^2.0.4, xhr@^2.3.3: + version "2.6.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + xmlhttprequest@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" @@ -5067,12 +7351,22 @@ xmlhttprequest@1.8.0: dependencies: ethers "^5.5.4" +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== -yallist@^3.0.2: +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== From 49d8c7f40029208d56b62e92abce2b74d368e452 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 12 Apr 2022 18:19:19 +0530 Subject: [PATCH 471/956] chain_info: add vechain --- src/consts.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index ea60ea5c6..5668f06c1 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -323,3 +323,12 @@ CHAIN_INFO.set(Chain.GATECHAIN, { currency: SupportedCurrency.GT, chainId: 85, }); +CHAIN_INFO.set(Chain.VECHAIN, { + name: "VeChain", + blockExplorerUrl: "https://explore-testnet.vechain.org/transactions/", + constructor: web3HelperFactory, + nonce: 0x19, + currency: SupportedCurrency.VET, + decimals: 1e18, + chainId: 39, +}); From 98a9b2bf4e7a60c7142710fd36d2f8a711361fdd Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 12 Apr 2022 19:09:44 +0530 Subject: [PATCH 472/956] fix xdai fee calculation --- src/consts.ts | 2 +- src/factory/factories.ts | 4 ++-- yarn.lock | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 5668f06c1..7bfb1381c 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -241,7 +241,7 @@ CHAIN_INFO.set(Chain.XDAI, { chainId: 0x64, blockExplorerUrl: "https://blockscout.com/xdai/mainnet/", constructor: web3HelperFactory, - currency: SupportedCurrency.STAKE, + currency: SupportedCurrency.GNO, }); CHAIN_INFO.set(Chain.ALGORAND, { name: "Algorand", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index cadd4455d..f9e2781f1 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -161,7 +161,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", nonce: Chain.XDAI, feeMargin: { - min: 0.5, + min: 1, max: 1, }, }, @@ -361,7 +361,7 @@ export namespace ChainFactoryConfigs { minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.XDAI, feeMargin: { - min: 0.5, + min: 1, max: 1, }, }, diff --git a/yarn.lock b/yarn.lock index 9c11902a5..2e249d89e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3079,7 +3079,7 @@ crypto-browserify@3.12.0: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#b78aa00d70a44c9f1d42515c9d1d7a67a5aa34b2" + resolved "git+https://github.com/xp-network/exchange-rate#2b0eb7df5dbe938d7111dd005593f5dff2e8d7dd" dependencies: axios "^0.21.1" From cb0ce9df81d7c3920ca21adcb24257bc8a6bd80d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 12 Apr 2022 20:32:25 +0530 Subject: [PATCH 473/956] algorand: add fee margins --- src/factory/factories.ts | 12 +++----- src/helpers/algorand.ts | 66 +++++++++++++++++++++++++--------------- 2 files changed, 46 insertions(+), 32 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index f9e2781f1..4831d7384 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -160,10 +160,7 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", nonce: Chain.XDAI, - feeMargin: { - min: 1, - max: 1, - }, + feeMargin, }, algorandParams: { algodApiKey: @@ -174,6 +171,7 @@ export namespace ChainFactoryConfigs { sendNftAppId: 83148194, algodPort: 443, notifier, + feeMargin, }, auroraParams: { notifier, @@ -360,10 +358,7 @@ export namespace ChainFactoryConfigs { erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", nonce: Chain.XDAI, - feeMargin: { - min: 1, - max: 1, - }, + feeMargin, }, algorandParams: { algodApiKey: @@ -374,6 +369,7 @@ export namespace ChainFactoryConfigs { sendNftAppId: 458971166, algodPort: 443, notifier, + feeMargin, }, fuseParams: { notifier, diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 0bc70b9e0..dee2f93b2 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -16,7 +16,7 @@ import { } from ".."; import MyAlgoConnect from "@randlabs/myalgo-connect"; import { EvNotifier } from "../notifier"; - +import { FeeMargins, GetFeeMargins } from "./chain"; type TxResp = { txId: string; @@ -135,7 +135,10 @@ export type AlgorandHelper = ChainNonceGet & ): Promise; walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; myAlgoSigner(myAlgo: MyAlgoConnect, address: string): AlgoSignerH; - } & Pick, "preTransfer"> & { XpNft: string }; + } & Pick< + PreTransfer, + "preTransfer" + > & { XpNft: string } & GetFeeMargins; export type AlgorandParams = { algodApiKey: string; @@ -144,6 +147,7 @@ export type AlgorandParams = { algodPort: number | undefined; sendNftAppId: number; notifier: EvNotifier; + feeMargin: FeeMargins; }; // type MinWrappedNft = { @@ -225,8 +229,8 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { from: signer.address, suggestedParams: suggested, to: appAddr, - amount: BigInt(txFees.toString()) - }) + amount: BigInt(txFees.toString()), + }); const appArgs = [ encoder.encode("freeze_nft"), encoder.encode(to), @@ -236,7 +240,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse(), ]) ), - ] + ]; if (mintWith) { appArgs.push(encoder.encode(mintWith)); } @@ -314,8 +318,8 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { suggestedParams: suggested, appIndex: info.appId, appArgs: [encoder.encode("transfer_nft")], - foreignAssets: [info.nftId] - }) + foreignAssets: [info.nftId], + }); const encodedTx = Base64.fromUint8Array(txn.toByte()); const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); @@ -351,8 +355,8 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { from: sender.address, suggestedParams: suggested, to: appAddr, - amount: BigInt(fee.toString()) - }) + amount: BigInt(fee.toString()), + }); algosdk.assignGroupID([callTx, feesTx]); const encodedTxns = [ @@ -370,6 +374,9 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { return suggested; }, + getFeeMargin() { + return args.feeMargin; + }, transferNftToForeign: transferNft, unfreezeWrappedNft: async (signer, to, nft, txFees, nonce) => { const suggested = await algod.getTransactionParams().do(); @@ -382,21 +389,27 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { assetIndex: nft.native.nftId, suggestedParams: suggested, }); - const sTransferTx = await signer.algoSigner.signTxn([{ txn: Base64.fromUint8Array(transferTx.toByte()) }]); - const transferRes = await algod.sendRawTransaction(Base64.toUint8Array(sTransferTx[0].blob)).do(); + const sTransferTx = await signer.algoSigner.signTxn([ + { txn: Base64.fromUint8Array(transferTx.toByte()) }, + ]); + const transferRes = await algod + .sendRawTransaction(Base64.toUint8Array(sTransferTx[0].blob)) + .do(); await waitTxnConfirm(transferRes.txId as string); const paymentTxn = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ from: signer.address, suggestedParams: suggested, to: appAddr, - amount: BigInt(txFees.toString()) + amount: BigInt(txFees.toString()), }); const appArgs = [ encoder.encode("withdraw_nft"), encoder.encode(to), - new Uint8Array(Buffer.from(new Uint32Array([parseInt(nonce)]).buffer).reverse()), - new Uint8Array(Buffer.from("")) + new Uint8Array( + Buffer.from(new Uint32Array([parseInt(nonce)]).buffer).reverse() + ), + new Uint8Array(Buffer.from("")), ]; const tCallTx = algosdk.makeApplicationNoOpTxnFromObject({ from: signer.address, @@ -405,7 +418,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { foreignAssets: [nft.native.nftId], suggestedParams: suggested, }); - algosdk.assignGroupID([tCallTx, paymentTxn]) + algosdk.assignGroupID([tCallTx, paymentTxn]); const encodedTxns = [ { txn: Base64.fromUint8Array(tCallTx.toByte()) }, { txn: Base64.fromUint8Array(paymentTxn.toByte()) }, @@ -414,7 +427,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { const sendRes = await algod .sendRawTransaction([ Base64.toUint8Array(signedTxns[0].blob), - Base64.toUint8Array(signedTxns[1].blob) + Base64.toUint8Array(signedTxns[1].blob), ]) .do(); await waitTxnConfirm(sendRes.txId); @@ -434,16 +447,21 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { claims.map(async (v) => { const appId = parseInt(v.app_id); const nftId = parseInt(v.nft_id); - const assetRes = await indexer.lookupAssetByID(nftId).do().catch(() => undefined); - if (assetRes == undefined) return [] + const assetRes = await indexer + .lookupAssetByID(nftId) + .do() + .catch(() => undefined); + if (assetRes == undefined) return []; const assetInfo = assetRes.asset; - return [{ - nftId, - appId, - uri: assetInfo.params.url as string, - name: (assetInfo.params.name as string) || "", - }]; + return [ + { + nftId, + appId, + uri: assetInfo.params.url as string, + name: (assetInfo.params.name as string) || "", + }, + ]; }) ); From 071dc084ff1d8a496e95ea76a7a6fd04dc554a4c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 12 Apr 2022 20:41:17 +0530 Subject: [PATCH 474/956] bump exchange-rate --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 2e249d89e..df53ae30e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3079,7 +3079,7 @@ crypto-browserify@3.12.0: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#2b0eb7df5dbe938d7111dd005593f5dff2e8d7dd" + resolved "git+https://github.com/xp-network/exchange-rate#7c292cb6f584d977aadd3a348cff6a8b5d375e25" dependencies: axios "^0.21.1" From d61b304a9ca633c622ed7b0a69d3d7ef54bf1cb0 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 13 Apr 2022 12:31:47 +0300 Subject: [PATCH 475/956] new tron,aurora contacts --- src/factory/factories.ts | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 823de0a64..890002b7e 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -244,10 +244,20 @@ export namespace ChainFactoryConfigs { tronParams: { provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), notifier, - minter_addr: "TMx1nCzbK7tbBinLh29CewahpbR1k64c8E", - erc721_addr: "TRON", + minter_addr: "TAncANF5aYbvgXDatmwTdvTa5N9PTrq95k", + erc721_addr: "TVdp7szDHg3opRyuciQaJi93LLk7y83hrC", + erc1155Minter: "TYoj1JVpJt1TAWBFj3GkaKLC2vrcFnjZ1G", + erc721Minter: "TPSQTbFWaxiDZbGD7MoqR6N2aWDSWBUNfA", + validators: [ + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + ], nonce: Chain.TRON, - validators: EVM_VALIDATORS, feeMargin }, avalancheParams: { @@ -400,9 +410,9 @@ export namespace ChainFactoryConfigs { }, auroraParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AURORA), - minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", + minter_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", + erc721_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", + erc1155_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", erc1155Minter: "0x0000000000000000000000000000000000000000", erc721Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.AURORA, From c626cc970821ef8a0d2d925f3e66fc912118eb97 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 13 Apr 2022 12:37:26 +0300 Subject: [PATCH 476/956] fix bug with unused var --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 890002b7e..9ff7b5b0b 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -6,7 +6,7 @@ import { ethers } from "ethers"; import { TezosToolkit } from "@taquito/taquito"; import { evNotifier } from "../notifier"; -const EVM_VALIDATORS = [ +/*const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", "0x837b2eb764860b442c971f98f505e7c5f419edd7", "0x9671ce5a02eb53cf0f2cbd220b34e50c39c0bf23", @@ -14,7 +14,7 @@ const EVM_VALIDATORS = [ "0xdc80905cafeda39cb19a566baeef52472848e82f", "0x77745cd585798e55938940e3d4dd0fd7cde7bdd6", "0xc2a29b4e9fa71e9033a52611544403241c56ac5e", -]; +];*/ // const _EVM_TESTNET_VALIDATORS = [ // "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", From 2d945c9ef36f6ec3164d8512435670ca3b7986e3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 13 Apr 2022 15:36:29 +0530 Subject: [PATCH 477/956] vechain: remove static url from factory --- src/consts.ts | 2 ++ src/factory/factories.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 7bfb1381c..5a41efca3 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -34,6 +34,7 @@ export enum TestNetRpcUri { AURORA = "https://testnet.aurora.dev/", GODWOKEN = "https://godwoken-testnet-web3-v1-rpc.ckbapp.dev", GATECHAIN = "https://meteora-evm.gatenode.cc", + VECHAIN = "https://sync-testnet.veblocks.net", // TODO: Algorand // TODO: Fuse } @@ -57,6 +58,7 @@ export enum MainNetRpcUri { AURORA = "https://mainnet.aurora.dev", GODWOKEN = "https://mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", + VECHAIN = "https://sync-mainnet.veblocks.net", // TODO: Algorand } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 4831d7384..2e8e95194 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -33,7 +33,7 @@ export namespace ChainFactoryConfigs { const feeMargin = { min: 0.5, max: 5 }; const notifier = evNotifier(testnet_middleware_uri); - const net = new SimpleNet("https://sync-mainnet.veblocks.net"); + const net = new SimpleNet(TestNetRpcUri.VECHAIN); const driver = await Driver.connect(net); From 51d4571bae7ec70a099fbed6125f757685543854 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 13 Apr 2022 16:29:00 +0530 Subject: [PATCH 478/956] add vechain to map --- src/factory/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 56832792d..f7049c39e 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -282,6 +282,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.AURORA, chainParams.auroraParams); cToP.set(Chain.GODWOKEN, chainParams.godwokenParams); cToP.set(Chain.GATECHAIN, chainParams.gateChainParams); + cToP.set(Chain.VECHAIN, chainParams.vechainParams); return cToP; } /** From c29da0a0758a4c615811284e1061d94f543b3159 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 13 Apr 2022 16:30:00 +0530 Subject: [PATCH 479/956] bump exchange-rate --- src/consts.ts | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 5a41efca3..f47656335 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -243,7 +243,7 @@ CHAIN_INFO.set(Chain.XDAI, { chainId: 0x64, blockExplorerUrl: "https://blockscout.com/xdai/mainnet/", constructor: web3HelperFactory, - currency: SupportedCurrency.GNO, + currency: SupportedCurrency.XDAI, }); CHAIN_INFO.set(Chain.ALGORAND, { name: "Algorand", diff --git a/yarn.lock b/yarn.lock index df53ae30e..8195f797f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3079,7 +3079,7 @@ crypto-browserify@3.12.0: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#7c292cb6f584d977aadd3a348cff6a8b5d375e25" + resolved "git+https://github.com/xp-network/exchange-rate#339fbebceda2cc0b698d67e2b0cb0cba8f362aca" dependencies: axios "^0.21.1" From 965f2d8b844ae5344dac56d06fe2d02e300682db Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 14 Apr 2022 14:32:58 +0530 Subject: [PATCH 480/956] factory: transferNft: add optin checks for transfering wrapped algo nft --- src/factory/index.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index e21c53968..a5dbfdbc4 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -452,6 +452,21 @@ export function ChainFactory( ); } + async function algoOptInCheck( + nft: NftInfo, + toChain: FullChain, + receiver: string + ) { + const nftDat = await axios.get(nft.uri); + if (nftDat.data.wrapped.origin == Chain.ALGORAND.toString() && + ("isOptIn" in toChain) && + !await (toChain as AlgorandHelper).isOptIn( + receiver, parseInt(nftDat.data.wrapped.assetID) + )) { + throw Error("receiver hasn't opted-in to wrapped nft"); + } + } + async function getVerifiedContracts( from: string, tc: number, @@ -614,6 +629,8 @@ export function ChainFactory( } console.log(`Minting With : ${mw}`) if (await isWrappedNft(nft, fromChain.getNonce())) { + await algoOptInCheck(nft, toChain, receiver); + const res = await fromChain.unfreezeWrappedNft( sender, receiver, From c49d84bac8b438efda37947928d960f2313de336 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 14 Apr 2022 15:43:07 +0530 Subject: [PATCH 481/956] vechain: update contracts address --- src/factory/factories.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 2e8e95194..80bf33ab2 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -62,10 +62,10 @@ export namespace ChainFactoryConfigs { feeMargin, nonce: Chain.VECHAIN, provider, - minter_addr: "0x73575AC2b3dDd497b50B46642B5bBf0B43c3400A", - erc721_addr: "0x72Bd2eB1585aaC9c30Bc2875a3C16dea8B7fC232", - erc721Minter: "0x683d0327A82e2Ad24b9F7a4b17faA608cfceeC2d", - erc1155Minter: "0x2FeD1EbDe30484B3a13fB1552291D333537317f9", + minter_addr: "0x4096e08C5d6270c8cd873daDbEAB575670aad8Bc", + erc721_addr: "0x39737B28d02d170Cb7a6141BA55F039104b3Fce9", + erc721Minter: "0x38d2A286BF1d7567129506527B7ced29bb42772b", + erc1155Minter: "0x9Db78e8750de28B0f08F866d6a54FAd34FF19da6", }, tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), From 5df2a6037edefa0f7b979b6dbe9940e8d41f016f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 14 Apr 2022 18:37:55 +0530 Subject: [PATCH 482/956] configs: testnet: update nft-index uri --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 8fcc67da0..04e57a5f7 100644 --- a/src/config.ts +++ b/src/config.ts @@ -17,7 +17,7 @@ export namespace AppConfigs { export const TestNet: () => AppConfig = () => { return { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://testing-nft-index.herokuapp.com", + nftListUri: "http://65.21.195.10/testnet-indexer/", nftListAuthToken: "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY0NDIzMDE0NiwiZXhwIjoxNjUyMDA2MTQ2fQ.gX6Auj4hFLdpem5Pk2kAnH71I19iGXfBYjmQrXylMFX_R1yzDEbylVAOLW6kABH9VjnLbAnCRdQvLaQIFmMUpw", txSocketUri: "https://testnet-tx-socket.herokuapp.com", From 02203cf42e5f81677079194111e4bce5ba215e74 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Sun, 17 Apr 2022 12:57:01 +0300 Subject: [PATCH 483/956] Update config.ts --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 04e57a5f7..0deb3726c 100644 --- a/src/config.ts +++ b/src/config.ts @@ -17,7 +17,7 @@ export namespace AppConfigs { export const TestNet: () => AppConfig = () => { return { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "http://65.21.195.10/testnet-indexer/", + nftListUri: "https://testnet-notifier.xp.network/testnet-indexer/", nftListAuthToken: "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY0NDIzMDE0NiwiZXhwIjoxNjUyMDA2MTQ2fQ.gX6Auj4hFLdpem5Pk2kAnH71I19iGXfBYjmQrXylMFX_R1yzDEbylVAOLW6kABH9VjnLbAnCRdQvLaQIFmMUpw", txSocketUri: "https://testnet-tx-socket.herokuapp.com", From 1ce281e36b95afe3d4961d9f46d1a7a11610104e Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Mon, 18 Apr 2022 14:01:11 +0300 Subject: [PATCH 484/956] add mainnet to deploy_tron.ts --- src/scripts/deploy_tron.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/scripts/deploy_tron.ts b/src/scripts/deploy_tron.ts index d147feb98..37882b01e 100644 --- a/src/scripts/deploy_tron.ts +++ b/src/scripts/deploy_tron.ts @@ -5,10 +5,19 @@ import { config } from "dotenv"; config(); (async () => { - const api = "https://api.shasta.trongrid.io"; + + // Testnet + // const api = "https://api.shasta.trongrid.io"; + // const signer = process.env.TRON_SK!; + // const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; + // const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; + // const frostGroupKey = process.env.FROST_GROUP_KEY!; + + // Mainnet + const api = "https://api.trongrid.io"; const signer = process.env.TRON_SK!; - const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; - const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; + const xpnftWrappedUri = "https://wnfts.xp.network/w/"; + const xpnft1155WrappedUri = "https://wnfts.xp.network/w/{id}"; const frostGroupKey = process.env.FROST_GROUP_KEY!; const prov = new TronWeb({ fullHost: api }); @@ -20,5 +29,7 @@ config(); xpnftWrappedUri, xpnft1155WrappedUri ); + console.log(contracts); + })().catch((e) => console.error(e)); From 9e15b6af7df00ce5914f301e4e4aefdd5df89e7c Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Mon, 18 Apr 2022 14:25:43 +0300 Subject: [PATCH 485/956] add arbitrary gasLimit to transferNftToForeign web3 --- src/helpers/web3.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index bbf612a22..02f4af51c 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -438,23 +438,25 @@ export async function web3HelperFactory( to: string, id: NftInfo, txFees: BigNumber, - mintWith + mintWith: string, + gasLimit: ethers.BigNumberish | undefined = undefined ): Promise { await approveForMinter(id, sender); const method = NFT_METHOD_MAP[id.native.contractType].freeze; const txr = await minter .connect(sender) - [method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - { - value: EthBN.from(txFees.toString(10)), - } - ); + [method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString(10)), + gasLimit + } + ); await notifyValidator( txr.hash, From 2581d9ce958fac8810eddec642d1356fbf6684b0 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Mon, 18 Apr 2022 14:54:43 +0300 Subject: [PATCH 486/956] Update factories.ts --- src/factory/factories.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 301eb9d7d..82c9f9dda 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -281,8 +281,7 @@ export namespace ChainFactoryConfigs { "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", ], nonce: Chain.TRON, - validators: EVM_VALIDATORS, - feeMargin, + feeMargin }, avalancheParams: { notifier, From 61cb47106e83c62b3582e46990854894fb522c41 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Mon, 18 Apr 2022 15:33:35 +0300 Subject: [PATCH 487/956] add gasLimit --- src/factory/index.ts | 13 +++++++++---- src/helpers/chain.ts | 4 +++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 66988f6fe..3749fa0f2 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -23,7 +23,7 @@ import axios from "axios"; import { exchangeRateRepo } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { bridgeHeartbeat } from "../heartbeat"; -import { utils } from "ethers"; +import { ethers, utils } from "ethers"; import { AlgorandParams, AlgorandHelper, @@ -90,6 +90,8 @@ export type ChainFactory = { * @param sender {@link Sender} The owner of the NFT. * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) + * @param mintWith an arbitrary address of the target chain minter contract + * @param gasLimit an arbitrary gas limit value (required for some chains) */ transferNft( fromChain: FullChain, @@ -98,7 +100,8 @@ export type ChainFactory = { sender: SignerF, receiver: string, fee?: BigNumber.Value, - mintWith?: string + mintWith?: string, + gasLimit?: ethers.BigNumberish|undefined ): Promise; transferBatchNft( @@ -594,7 +597,8 @@ export function ChainFactory( sender, receiver, fee, - mintWith + mintWith, + gasLimit ) => { //@ts-ignore if (nft.native.contract) { @@ -651,7 +655,8 @@ export function ChainFactory( receiver, nft, new BigNumber(fee), - mw + mw, + gasLimit ); return res; } diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index e6da3592e..7e3e0f9b8 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -1,5 +1,6 @@ import axios from "axios"; import BigNumber from "bignumber.js"; +import { ethers } from "ethers"; import { ChainNonce } from "../type-utils"; /** @@ -44,7 +45,8 @@ export interface TransferNftForeign { to: string, id: NftInfo, txFees: BigNumber, - mintWith: string + mintWith: string, + gasLimit? : ethers.BigNumberish | undefined ): Promise; } From 0e66c086871c4a034f37ca6541099927266b6d93 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 18 Apr 2022 20:06:06 +0530 Subject: [PATCH 488/956] do not send action id for now --- src/helpers/elrond.ts | 14 +++++++++----- src/helpers/web3.ts | 4 ++-- src/notifier/index.ts | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index bd97e1436..0c35bf713 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -244,7 +244,7 @@ export async function elrondHelperFactory( txn: Transaction, sender: string, uri: string[], - action_id: string + action_id: string | undefined ) { await elrondParams.notifier.notifyElrond( txn.getHash().toString(), @@ -596,7 +596,8 @@ export async function elrondHelperFactory( tx, sender.getAddress().toString(), [info.uri], - await extractAction(tx) + undefined + // await extractAction(tx) ); return tx; @@ -621,7 +622,8 @@ export async function elrondHelperFactory( tx, sender.getAddress().toString(), [nft.uri], - await extractAction(tx) + undefined + // await extractAction(tx) ); return tx; @@ -752,7 +754,8 @@ export async function elrondHelperFactory( tx, sender.getAddress().toString(), nfts.map((n) => n.uri), - await extractAction(tx) + undefined + // await extractAction(tx) ); return tx; @@ -795,7 +798,8 @@ export async function elrondHelperFactory( tx, sender.getAddress().toString(), nfts.map((n) => n.uri), - await extractAction(tx) + undefined + // await extractAction(tx) ); return tx; diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 02f4af51c..2bacc30e1 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -460,7 +460,7 @@ export async function web3HelperFactory( await notifyValidator( txr.hash, - await extractAction(txr), + undefined, "Transfer", chain_nonce, txFees.toString(), @@ -488,7 +488,7 @@ export async function web3HelperFactory( await notifyValidator( res.hash, - await extractAction(res), + undefined, "Unfreeze", Number(nonce), txFees.toString(), diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 221c1c8c9..665ae2e12 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -44,7 +44,7 @@ export function evNotifier(url: string) { txHash: string, sender: string, uris: string[], - action_id: string + action_id: string | undefined ) { await api.post("/tx/elrond", { tx_hash: txHash, From 4ecd8c12125f545c54b311f9b3c7ea0e87b9b7d4 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Tue, 19 Apr 2022 15:02:49 +0300 Subject: [PATCH 489/956] update testnet nodes --- src/consts.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index f47656335..e4909dee3 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -18,10 +18,10 @@ import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; export enum TestNetRpcUri { ELROND = "https://devnet-api.elrond.com", HECO = "https://http-testnet.hecochain.com", - BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", - ROPSTEN = "https://ropsten.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", + BSC = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/bsc/testnet/archive", + ROPSTEN = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/eth/ropsten/archive", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", - POLYGON = "https://matic-testnet-archive-rpc.bwarelabs.com", + POLYGON = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/polygon/mumbai/archive", FANTOM = "https://rpc.testnet.fantom.network/", TRON = "https://api.shasta.trongrid.io/", CELO = "https://alfajores-forno.celo-testnet.org", From 894a6fe1bae97dae87b38366268c8805c99b1973 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Tue, 19 Apr 2022 22:55:53 +0300 Subject: [PATCH 490/956] update Avalanche Testnet --- src/factory/factories.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 82c9f9dda..ba0257c41 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -85,10 +85,10 @@ export namespace ChainFactoryConfigs { avalancheParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), - minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", - erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", - erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", + minter_addr: "0xDdF1f6B8Ae8cd26dBE7C4C3ed9ac8E6D8B3a4FdC", + erc721_addr: "0xE1D8Df2e06797F22e7ce25c95A7ddccb926f8A1E", + erc1155Minter: "0xfA9214AEe59a6631A400DC039808457524dE70A2", + erc721Minter: "0x54Db938575DD089702822F191AEbB25C2Af7D1Ef", nonce: Chain.AVALANCHE, feeMargin, }, From 5ea6ffe04bbaadcf784e1fd90396455d3cb65f5b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 20 Apr 2022 14:34:02 +0530 Subject: [PATCH 491/956] fix decimals for ckb --- src/consts.ts | 2 +- src/factory/index.ts | 29 +++++++++++++++-------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index e4909dee3..a62196cd7 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -312,7 +312,7 @@ CHAIN_INFO.set(Chain.GODWOKEN, { blockExplorerUrl: "https://aggron.layerview.io/tx/", constructor: web3HelperFactory, nonce: 0x16, - decimals: 1e8, + decimals: 1e18, currency: SupportedCurrency.CKB, chainId: 868455272153094, }); diff --git a/src/factory/index.ts b/src/factory/index.ts index 3749fa0f2..1eb4965c8 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -101,7 +101,7 @@ export type ChainFactory = { receiver: string, fee?: BigNumber.Value, mintWith?: string, - gasLimit?: ethers.BigNumberish|undefined + gasLimit?: ethers.BigNumberish | undefined ): Promise; transferBatchNft( @@ -466,10 +466,10 @@ export function ChainFactory( ) { const nftDat = await axios.get(nft.uri); if (nftDat.data.wrapped.origin == Chain.ALGORAND.toString() && - ("isOptIn" in toChain) && - !await (toChain as AlgorandHelper).isOptIn( - receiver, parseInt(nftDat.data.wrapped.assetID) - )) { + ("isOptIn" in toChain) && + !await (toChain as AlgorandHelper).isOptIn( + receiver, parseInt(nftDat.data.wrapped.assetID) + )) { throw Error("receiver hasn't opted-in to wrapped nft"); } } @@ -610,16 +610,16 @@ export function ChainFactory( const mw = "contract" in nft.native && - mintWith && - checkMintWith( - mintWith, - await getVerifiedContracts( - //@ts-expect-error contract is checked - nft.native.contract.toLowerCase(), - toChain.getNonce(), - fromChain.getNonce() + mintWith && + checkMintWith( + mintWith, + await getVerifiedContracts( + //@ts-expect-error contract is checked + nft.native.contract.toLowerCase(), + toChain.getNonce(), + fromChain.getNonce() + ) ) - ) ? mintWith : toChain.XpNft; @@ -629,6 +629,7 @@ export function ChainFactory( if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); + console.log(new BigNumber(fee).toString()) } if (!(await toChain.validateAddress(receiver))) { throw Error("invalid address"); From cdf1f8773a814d87f768b4a0b9462ec4a2cd2db8 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 20 Apr 2022 13:23:57 +0300 Subject: [PATCH 492/956] Update factories.ts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index ba0257c41..04b31ca01 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -431,9 +431,9 @@ export namespace ChainFactoryConfigs { }, auroraParams: { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AURORA), - minter_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", - erc721_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", - erc1155_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", + minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", erc1155Minter: "0x0000000000000000000000000000000000000000", erc721Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.AURORA, From 1ef7f2cbac0d86d8f5a48dc74af454992d201baf Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 20 Apr 2022 18:04:42 +0530 Subject: [PATCH 493/956] godwoken: the decimals are 1e8 --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index a62196cd7..e4909dee3 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -312,7 +312,7 @@ CHAIN_INFO.set(Chain.GODWOKEN, { blockExplorerUrl: "https://aggron.layerview.io/tx/", constructor: web3HelperFactory, nonce: 0x16, - decimals: 1e18, + decimals: 1e8, currency: SupportedCurrency.CKB, chainId: 868455272153094, }); From 484256065dc16e078fd806c40fdd5ab74ee34813 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 20 Apr 2022 18:06:53 +0530 Subject: [PATCH 494/956] web3: enable action id for notifier --- src/helpers/web3.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 2bacc30e1..02f4af51c 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -460,7 +460,7 @@ export async function web3HelperFactory( await notifyValidator( txr.hash, - undefined, + await extractAction(txr), "Transfer", chain_nonce, txFees.toString(), @@ -488,7 +488,7 @@ export async function web3HelperFactory( await notifyValidator( res.hash, - undefined, + await extractAction(res), "Unfreeze", Number(nonce), txFees.toString(), From 731a4b5817a7474b5fe48f91dc0ac81e16acaedb Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Sun, 24 Apr 2022 11:31:02 +0300 Subject: [PATCH 495/956] add GateChain mainnet contracts --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 04b31ca01..9e040c070 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -453,10 +453,10 @@ export namespace ChainFactoryConfigs { gateChainParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.GATECHAIN), - minter_addr: "0x0000000000000000000000000000000000000000", - erc721_addr: "0x0000000000000000000000000000000000000000", + minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", erc721Minter: "0x0000000000000000000000000000000000000000", - erc1155Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.GATECHAIN, feeMargin, }, From 20c0be784c2a9d631ad501ccdad8228f158a40a3 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 24 Apr 2022 18:01:35 +0530 Subject: [PATCH 496/956] algorand: remove claimed nfts from claimableNfts --- src/helpers/algorand.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index dee2f93b2..79eb2aede 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -453,6 +453,12 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { .catch(() => undefined); if (assetRes == undefined) return []; const assetInfo = assetRes.asset; + const bal = await indexer.lookupAssetBalances(nftId) + .currencyGreaterThan(0) + .currencyLessThan(2) + .limit(1) + .do(); + if (bal.balances[0].address == owner || bal.balances[0].amount == 0) return []; return [ { From e4288347d5c6e458d97bad20bef8ac1f2148d63d Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 25 Apr 2022 18:30:54 +0530 Subject: [PATCH 497/956] switch to https for testnet notifier --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 9e040c070..66fd92e85 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -26,7 +26,7 @@ import { Framework } from "@vechain/connex-framework"; // ]; const middleware_uri = "https://notifier.xp.network"; -const testnet_middleware_uri = "http://65.21.195.10/notify-test/"; +const testnet_middleware_uri = "https://testnet-notifier.xp.network/notify-test/"; export namespace ChainFactoryConfigs { export const TestNet: () => Promise> = async () => { From 72754867e697ed0ae20152944aa86d7d76f690b5 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 25 Apr 2022 18:44:49 +0530 Subject: [PATCH 498/956] factory: expose isWrappedNft --- src/factory/index.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 1eb4965c8..41beddd6d 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -212,6 +212,11 @@ export type ChainFactory = { chain: Partial> & ChainNonceGet, nft: NftInfo ): Promise; + + isWrappedNft( + nft: NftInfo, + fromChain: number + ): Promise; }; /** @@ -692,6 +697,7 @@ export function ChainFactory( return await chain.isNftWhitelisted(nft); }, + isWrappedNft }; } /** From 9f560297872282612e84a9538b30467fe621a98f Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 25 Apr 2022 16:54:07 +0300 Subject: [PATCH 499/956] contracts update for gateChain --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 66fd92e85..dac4c3f64 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -453,9 +453,9 @@ export namespace ChainFactoryConfigs { gateChainParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.GATECHAIN), - minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + minter_addr: "0xFc7f7fD2DBdAF6D8F3ee3f222b3a6a9f89729f05", + erc721_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", + erc1155Minter: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", erc721Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.GATECHAIN, feeMargin, From 5daa0a718f5f54b513b86993daadedb7c0fb5376 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Tue, 26 Apr 2022 12:59:21 +0300 Subject: [PATCH 500/956] update README --- README.md | 119 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 72 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 55d0dbeb6..a31d3b9fe 100644 --- a/README.md +++ b/README.md @@ -52,10 +52,10 @@ OR npm i --save xp.network @elrondnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp ``` -To import the latest version of xp.network library: +To import the latest version of xp.network v.2.0 library: ```bash -yarn add "git+https://github.com/xp-network/xpjs#master-dist" @elrondnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp +yarn add "git+https://github.com/xp-network/xpjs#bleeding-edge" @elrondnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp ```
@@ -64,28 +64,37 @@ yarn add "git+https://github.com/xp-network/xpjs#master-dist" @elrondnetwork/erd ```javascript import { - ChainFactoryConfigs, - ChainFactory, - ElrondHelper, - ElrondParams, - TronHelper, - TronParams, - Web3Helper, - Web3Params, - typedAlgoSigner, -} from "xp.network/dist"; - -// Chanin name to chain nonce mapper: -import { Chain, Config } from "xp.network/dist/consts"; + ChainFactoryConfigs, + ChainFactory, + ElrondHelper, + ElrondParams, + TronHelper, + TronParams, + Web3Helper, + Web3Params, + Chain, + AppConfigs, + ChainParams +} from "xp.network"; // Instantiate the chain factory for the -// MAINNET -const mainnetConfig = ChainFactoryConfigs.MainNet(); -const factory = ChainFactory(Config, mainnetConfig); -// or -// TESTNET -const testnetConfig = ChainFactoryConfigs.TestNet(); -const factory = ChainFactory(Config, testnetConfig); +// Connecting to the mainnnets of all the blockchains: +const mainnetConfig = await ChainFactoryConfigs.MainNet() +const mainnetFactory: ChainFactory = ChainFactory( + AppConfigs.MainNet(), + mainnetConfig +); + +// Connecting to the testnets of all the blockchains: +const testnetConfig = await ChainFactoryConfigs.TestNet(); +const testnetFactory: ChainFactory = ChainFactory( + AppConfigs.TestNet(), + testnetConfig +); + +// Switching between the mainnets & the testnets: +const factory: ChainFactory = mainnetFactory; +const CONFIG: Partial = mainnetConfig; ```

@@ -114,14 +123,22 @@ const factory = ChainFactory(Config, testnetConfig); Avoid using 3.1 setup in production. Use it for initial or backend testing only.
+Add your private key to the environment: +```bash +touch .env +echo "SK=" >> .env +``` + ```javascript // EVM chains compatible wallet: import { Wallet } from "ethers"; +import { config } from 'dotenv'; +config(); // EVM signer for testing in the BE const signer = new Wallet( - "PRIVATE KEY HERE", - mainnetConfig.polygonParams?.provider -); + process.env.SK!, + CONFIG.polygonParams?.provider + ); ```
@@ -161,6 +178,7 @@ const elrondSigner = ExtensionProvider.getInstance(); ### 3.5 Example of getting the signer object (in the FE for Algorand):

```typescript +import { typedAlgoSigner } from "xp.network/dist/helpers/algorand"; // Use the typedAlgoSigner function to get access to the Algorand signer const algorandSigner = typedAlgoSigner(); ``` @@ -171,11 +189,14 @@ const algorandSigner = typedAlgoSigner(); import { TempleWallet } from "@temple-wallet/dapp"; (async () => { try { - const available = await TempleWallet.isAvailable(); - if (!available) { - throw new Error("Temple Wallet not installed"); + const available = await TempleWallet.isAvailable(); + if (!available) { + throw new Error("Temple Wallet is not installed"); + } + const tezosSigner = new TempleWallet("bridge.xp.network"); + } catch (error) { + console.error("Error:", error); } - const tezosSigner = new TempleWallet("bridge.xp.network"); })(); ``` @@ -185,27 +206,31 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor
-### 4. Getting the inner objects from this factory to be used for transferring, minting, estimation of gas fees.

+### 4. Getting the inner objects from this factory to be used for transferring, minting, and estimation of gas fees.

```javascript (async () => { - // EVM-compatible chains: - // Inner Object ====================== Chain Nonce == - const ethereum = await factory.inner(Chain.ETHEREUM); - const bsc = await factory.inner(Chain.BSC); - const polygon = await factory.inner(Chain.POLYGON); - const avax = await factory.inner(Chain.AVALANCHE); - const fantom = await factory.inner(Chain.FANTOM); - const velas = await factory.inner(Chain.VELAS); - const gnosis = await factory.inner(Chain.XDAI); - const harmony = await factory.inner(Chain.HARMONY); - - // Non-EVM chains: - // Inner Object ====================== Chain Nonce == - const algorand = await factory.inner(Chain.ALGORAND); - const elrond = await factory.inner(Chain.ELROND); - const tezos = await factory.inner(Chain.TEZOS); - const tron = await factory.inner(Chain.TRON); +// Inner Object ================================ Chain Nonce + const bsc = await factory.inner(Chain.BSC); // 4 + const ethereum = await factory.inner(Chain.ETHEREUM); // 5 + const avax = await factory.inner(Chain.AVALANCHE); // 6 + const polygon = await factory.inner(Chain.POLYGON); // 7 + const fantom = await factory.inner(Chain.FANTOM); // 8 + const harmony = await factory.inner(Chain.HARMONY); // 12 + const gnosis = await factory.inner(Chain.XDAI); // 14 + const fuse = await factory.inner(Chain.FUSE); // 16 + const velas = await factory.inner(Chain.VELAS); // 19 + const aurora = await factory.inner(Chain.AURORA); // 21 + const godwoken = await factory.inner(Chain.GODWOKEN); // 22 + const gatechain = await factory.inner(Chain.GATECHAIN); // 23 + const vechain = await factory.inner(Chain.VECHAIN); // 25 + + // Non-EVM chains: + // Inner Object ================================ Chain Nonce + const elrond = await factory.inner(Chain.ELROND); // 2 + const tron = await factory.inner(Chain.TRON); // 9 + const algorand = await factory.inner(Chain.ALGORAND); // 15 + const tezos = await factory.inner(Chain.TEZOS); // 18 })(); ``` From 925da9291ae01bce2a38daa2bae76a8fb729a7df Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Tue, 26 Apr 2022 13:26:39 +0300 Subject: [PATCH 501/956] update README --- README.md | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index a31d3b9fe..bea072f1b 100644 --- a/README.md +++ b/README.md @@ -66,12 +66,6 @@ yarn add "git+https://github.com/xp-network/xpjs#bleeding-edge" @elrondnetwork/e import { ChainFactoryConfigs, ChainFactory, - ElrondHelper, - ElrondParams, - TronHelper, - TronParams, - Web3Helper, - Web3Params, Chain, AppConfigs, ChainParams @@ -98,26 +92,9 @@ const CONFIG: Partial = mainnetConfig; ```

-
## 3. Get the signer objects -
- -| Chain | Parameters | -| :-------: | :-------------: | -| Elrond | elrondParams | -| BSC | bscParams | -| Ethereum | ropstenParams | -| Avalanche | avalancheParams | -| Polygon | polygonParams | -| Fantom | fantomParams | -| Tron | tronParams | -| xDai | xDaiParams | -| Harmony | harmonyParams | - -

- ### 3.1 Example of getting the signer object (for manual EVM testing in the BE) Avoid using 3.1 setup in production. Use it for initial or backend testing only. @@ -137,11 +114,35 @@ config(); // EVM signer for testing in the BE const signer = new Wallet( process.env.SK!, + // Replace 'polygonParams' + // with the relevant parameter + // from the table below CONFIG.polygonParams?.provider ); ``` +
-
+|Chain|Parameters|Chain Nonce| +| :-: | :-: |:-:| +| Elrond | elrondParams |2| +| BSC | bscParams |4| +| Ethereum | ropstenParams |5| +| Avalanche | avalancheParams |6| +| Polygon | polygonParams |7| +| Fantom | fantomParams |8| +| Tron | tronParams |9| +| Harmony | harmonyParams |12| +| xDai | xDaiParams |14| +|Algorand|algorandParams|15| +|Fuse|fuseParams|16| +|Tezos|tezosParams|18| +|Velas|velasParams|19| +|Aurora|auroraParams|21| +|Godwoken|godwokenParams|22| +|Gatechain|gatechainParams|23| +|VeChain|vechainParams|25| + +

### 3.2 Example of getting the signer object (in the FE for web3):

From 2e601d2754f9b820dcfdefaf2eb10e3e2c8b5066 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Tue, 26 Apr 2022 13:44:34 +0300 Subject: [PATCH 502/956] update README --- README.md | 103 ++++++++++++++++-------------------------------------- 1 file changed, 30 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index bea072f1b..23b6e28c2 100644 --- a/README.md +++ b/README.md @@ -372,83 +372,40 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); ### 5.3 Example of the console logged wrapped NFT from BSC on Velas ```json -[ - { - "name": "Unifairy", - "description": "The Unifairy are the most magical and fairest of Polkamon. Their wings stretch into the realms beyond this world, enchanting those around her by her unique disposition.", - "image": "https://assets.polkamon.com/images/Unimons_T02C03H06B04G00.jpg", - "animation_url": "https://assets.polkamon.com/videos/Unimons_T02C03H06B04G00.mp4", +{ + "name": "DRVR NOT LVR", + "description": "Cliff Blank | Community Pool Drop\n\nWe would need a license to love, there would be fewer lines, fewer misunderstandings but definitely more accidents. \nThe arteries of our heart would be 4 lanes so that we could reach love in a short time. Of course, there could always be works and exits closed but at least we would have fewer surprises and we would react accordingly, choosing another exit or deciding to continue on our way.", + "decimals": 0, + "isBooleanAmount": true, + "image": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", + "artifactUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", "wrapped": { - "contract": "0x85F0e02cb992aa1F9F47112F815F519EF1A59E2D", - "tokenId": "10002366816", - "origin": "4", - "original_uri": "https://meta.polkamon.com/meta?id=10002366816" + "contract": "0x1BFb3FbCf1ce331B7AAE03a3c0Bf3AcF685F4bD6", + "tokenId": "10", + "contractType": 721, + "origin": "14", + "original_uri": "https://ipfs.infura.io/ipfs/QmdtemgadGPgWSn9Lq1RvQn4Q2ofEpRNr7ox8oMyNWJ9ma", + "mint_with": "0x3a1d5a87c5f0c2f5c5e079b0f234d8797ee0e9b4", + "source_mint_ident": "0x1BFb3FbCf1ce331B7AAE03a3c0Bf3AcF685F4bD6" }, "attributes": [ - { - "trait_type": "Original Chain", - "value": "BSC" - }, - { - "trait_type": "Original Chain Nonce", - "value": "4" - }, - { - "trait_type": "Original URI", - "value": "https://meta.polkamon.com/meta?id=10002366816" - }, - { - "trait_type": "Type", - "value": "Unifairy" - }, - { - "trait_type": "Horn", - "value": "Spiral Horn" - }, - { - "trait_type": "Color", - "value": "Blue" - }, - { - "trait_type": "Background", - "value": "Mountain Range" - }, - { - "trait_type": "Opening Network", - "value": "Binance Smart Chain" - }, - { - "trait_type": "Glitter", - "value": "No" - }, - { - "trait_type": "Special", - "value": "No" - }, - { - "display_type": "date", - "trait_type": "Birthday", - "value": 1633650473 - }, - { - "display_type": "number", - "trait_type": "Booster", - "value": 10000000788939 - } + { + "trait_type": "Original Chain", + "value": "xDai" + }, + { + "trait_type": "Original Chain Nonce", + "value": "14" + }, + { + "trait_type": "Original URI", + "value": "https://ipfs.infura.io/ipfs/QmdtemgadGPgWSn9Lq1RvQn4Q2ofEpRNr7ox8oMyNWJ9ma" + } ], - "uri": "https://wnfts.xp.network/w/61b8adae4298fe05d7a48962", - "native": { - "chainId": "19", - "tokenId": "17", - "owner": "0x0d7df42014064a163DfDA404253fa9f6883b9187", - "contract": "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", - "symbol": "XPNFT", - "name": "XpWrapNft", - "uri": "https://wnfts.xp.network/w/61b8adae4298fe05d7a48962", - "contractType": "ERC721" - } - } -] + "displayUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", + "thumbnailUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", + "ipfs": false +} ```

From 07062700cc7119c1f3c9535a34a3a54e8f07fe71 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 28 Apr 2022 10:27:11 +0300 Subject: [PATCH 503/956] change major version to 3.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0e954550b..1b92edfe3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "0.1.0", + "version": "3.0.0", "author": "xp-network ", "main": "dist/index.js", "types": "dist/index.d.ts", From 374afbdbbdc84af28eb675f1ebe508b8a52d1e9d Mon Sep 17 00:00:00 2001 From: Rishabh Kumar Date: Mon, 2 May 2022 17:10:47 +0530 Subject: [PATCH 504/956] change min fee to 1 usd --- src/factory/factories.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index dac4c3f64..a70f6a53d 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -26,11 +26,12 @@ import { Framework } from "@vechain/connex-framework"; // ]; const middleware_uri = "https://notifier.xp.network"; -const testnet_middleware_uri = "https://testnet-notifier.xp.network/notify-test/"; +const testnet_middleware_uri = + "https://testnet-notifier.xp.network/notify-test/"; export namespace ChainFactoryConfigs { export const TestNet: () => Promise> = async () => { - const feeMargin = { min: 0.5, max: 5 }; + const feeMargin = { min: 1, max: 5 }; const notifier = evNotifier(testnet_middleware_uri); const net = new SimpleNet(TestNetRpcUri.VECHAIN); @@ -249,7 +250,7 @@ export namespace ChainFactoryConfigs { }; export const MainNet: () => Promise> = async () => { - const feeMargin = { min: 0.5, max: 5 }; + const feeMargin = { min: 1, max: 5 }; const notifier = evNotifier(middleware_uri); return { elrondParams: { @@ -281,7 +282,7 @@ export namespace ChainFactoryConfigs { "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", ], nonce: Chain.TRON, - feeMargin + feeMargin, }, avalancheParams: { notifier, From 21d5b3d93f9f529205178643acddf0b35fd6f771 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Mon, 2 May 2022 16:28:36 +0300 Subject: [PATCH 505/956] Update factories.ts --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index a70f6a53d..21022771f 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -377,7 +377,7 @@ export namespace ChainFactoryConfigs { algodUri: "https://algorand-node.xp.network/", indexerUri: "https://algoexplorerapi.io/idx2", nonce: Chain.ALGORAND, - sendNftAppId: 458971166, + sendNftAppId: 721832640, algodPort: 443, notifier, feeMargin, From 7e3d7e45a9ce3b8c809aed4d61d7babc4e5e2416 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Tue, 3 May 2022 10:17:24 +0300 Subject: [PATCH 506/956] add: mainnet VeChain contracts --- .gitignore | 5 +++-- src/factory/factories.ts | 24 ++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 528ccb209..d10447d30 100644 --- a/.gitignore +++ b/.gitignore @@ -8,5 +8,6 @@ coverage tsconfig.tsbuildinfo dist src/test.ts -.env -test* \ No newline at end of file +.env* +test* +*.DS_Store \ No newline at end of file diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 21022771f..bd6e3ef08 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -34,10 +34,9 @@ export namespace ChainFactoryConfigs { const feeMargin = { min: 1, max: 5 }; const notifier = evNotifier(testnet_middleware_uri); + // VeChain related: const net = new SimpleNet(TestNetRpcUri.VECHAIN); - const driver = await Driver.connect(net); - const provider = thor.ethers.modifyProvider( //@ts-ignore new ethers.providers.Web3Provider( @@ -252,6 +251,17 @@ export namespace ChainFactoryConfigs { export const MainNet: () => Promise> = async () => { const feeMargin = { min: 1, max: 5 }; const notifier = evNotifier(middleware_uri); + + // VeChain related: + const net = new SimpleNet(TestNetRpcUri.VECHAIN); + const driver = await Driver.connect(net); + const provider = thor.ethers.modifyProvider( + //@ts-ignore + new ethers.providers.Web3Provider( + new thor.ConnexProvider({ connex: new Framework(driver) }) + ) + ); + return { elrondParams: { node_uri: MainNetRpcUri.ELROND, @@ -265,6 +275,16 @@ export namespace ChainFactoryConfigs { nonce: Chain.ELROND, feeMargin, }, + vechainParams: { + notifier, + feeMargin, + nonce: Chain.VECHAIN, + provider, + minter_addr: "0xE860cef926E5e76E0E88fdc762417a582F849C27", + erc721_addr: "0xf0E778BD5C4c2F219A2A5699e3AfD2D82D50E271", + erc721Minter: "0x6e2B43FeF2E750e1562AC572e60B6C484a027424", + erc1155Minter: "0x4E3a506800b894f3d7B46475Ab693DD5a567bB5C", + }, tronParams: { provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), notifier, From 89f2e1f3aa18442d372e848ae6d7bf3c84961599 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Tue, 3 May 2022 10:26:25 +0300 Subject: [PATCH 507/956] 3.0.0 -> 3.0.1 add mainnet VeChain --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1b92edfe3..bc824e4e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "3.0.0", + "version": "3.0.1", "author": "xp-network ", "main": "dist/index.js", "types": "dist/index.d.ts", From 613a30eca9fd06aee4c5ed765c6c59dd0b825199 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 5 May 2022 12:22:12 +0530 Subject: [PATCH 508/956] web3: add transaction underpriced fix for polygon --- src/helpers/web3.ts | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 02f4af51c..b2273cff0 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -48,6 +48,7 @@ import { import { NftMintArgs } from ".."; import { ChainNonce } from "../type-utils"; import { EvNotifier } from "../notifier"; +import axios from "axios"; /** * Information required to perform NFT transfers in this chain */ @@ -239,6 +240,23 @@ export const NFT_METHOD_MAP: NftMethodMap = { export async function web3HelperFactory( params: Web3Params ): Promise { + const txnUnderpricedPolyWorkaround = + params.nonce == 7 + ? async (utx: PopulatedTransaction) => { + const res = await axios.get( + 'https://gasstation-mainnet.matic.network/v2' + ); + const { fast } = res.data; + if (fast) { + const sixtyGwei = ethers.utils.parseUnits( + Math.ceil(fast.maxFee).toString(), + 'gwei' + ); + utx.maxFeePerGas = sixtyGwei; + utx.maxPriorityFeePerGas = sixtyGwei; + } + } + : () => Promise.resolve(); const w3 = params.provider; const { minter_addr, provider } = params; const minter = Minter__factory.connect(minter_addr, provider); @@ -370,7 +388,7 @@ export async function web3HelperFactory( return TransactionStatus.UNKNOWN; }, async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { - const res = await minter.connect(signer).withdrawNftBatch( + const tx = await minter.connect(signer).populateTransaction.withdrawNftBatch( to, chainNonce, nfts.map((nft) => nft.native.tokenId), @@ -380,6 +398,8 @@ export async function web3HelperFactory( value: EthBN.from(txFees.toString()), } ); + await txnUnderpricedPolyWorkaround(tx) + const res = await signer.sendTransaction(tx) // await notifyValidator( // res.hash, @@ -403,7 +423,7 @@ export async function web3HelperFactory( mintWith, txFees ) { - const res = await minter.connect(signer).freezeErc1155Batch( + const tx = await minter.connect(signer).populateTransaction.freezeErc1155Batch( nfts[0].native.contract, nfts.map((nft) => nft.native.tokenId), new Array(nfts.length).fill(1), @@ -414,6 +434,9 @@ export async function web3HelperFactory( value: EthBN.from(txFees.toString()), } ); + await txnUnderpricedPolyWorkaround(tx) + + const res = await signer.sendTransaction(tx) await notifyValidator(res.hash); @@ -444,8 +467,9 @@ export async function web3HelperFactory( await approveForMinter(id, sender); const method = NFT_METHOD_MAP[id.native.contractType].freeze; - const txr = await minter + const tx = await minter .connect(sender) + .populateTransaction [method]( id.native.contract, id.native.tokenId, @@ -457,6 +481,9 @@ export async function web3HelperFactory( gasLimit } ); + await txnUnderpricedPolyWorkaround(tx) + + const txr = await sender.sendTransaction(tx) await notifyValidator( txr.hash, @@ -480,12 +507,16 @@ export async function web3HelperFactory( txFees: BigNumber, nonce ): Promise { - const res = await minter + const txn = await minter .connect(sender) + .populateTransaction .withdrawNft(to, nonce, id.native.tokenId, id.native.contract, { value: EthBN.from(txFees.toString(10)), }); + await txnUnderpricedPolyWorkaround(txn) + const res = await sender.sendTransaction(txn) + await notifyValidator( res.hash, await extractAction(res), From d559b9bef3f18b8867d63f87b21b876bd1d66d26 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 8 May 2022 15:32:07 +0530 Subject: [PATCH 509/956] packages: bump erdjs --- package.json | 2 +- yarn.lock | 1010 ++++++++++++++++++++++---------------------------- 2 files changed, 438 insertions(+), 574 deletions(-) diff --git a/package.json b/package.json index bc824e4e9..bc76d27e5 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "typescript": "^4.3.5" }, "dependencies": { - "@elrondnetwork/erdjs": "^8.0.1-alpha.8", + "@elrondnetwork/erdjs": "^9.2.6", "@json-rpc-tools/utils": "^1.7.6", "@randlabs/myalgo-connect": "^1.1.1", "@taquito/signer": "^11.1.0", diff --git a/yarn.lock b/yarn.lock index 8195f797f..0147ca402 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,19 +9,24 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.10.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== +"@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== dependencies: - "@babel/highlight" "^7.14.5" + "@babel/highlight" "^7.16.7" "@babel/helper-validator-identifier@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== -"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/highlight@^7.10.4": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== @@ -30,6 +35,15 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.16.7": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" + integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/runtime@7.11.2": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" @@ -52,23 +66,25 @@ assert "^2.0.0" perf_hooks "0.0.1" -"@elrondnetwork/erdjs@^8.0.1-alpha.8": - version "8.0.1-alpha.10" - resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-8.0.1-alpha.10.tgz#3e4f1f5f7ab8f9ca6998ff004954b026ef3a2856" - integrity sha512-CV7QNRKBaGWgD1QJk7tLZ4qm8bC3ThH4XU9Kbw3K2dFvIsIb2WXutM4G3c43YbHXqp3hKl4p3lkh+FzTfCEwAA== +"@elrondnetwork/erdjs@^9.2.6": + version "9.2.6" + resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-9.2.6.tgz#93a531c13e769146087487256668798348db6468" + integrity sha512-PnjQq3YAq8ggtP6hYnjswMZm9oGQN9CetzDmZow1Gr/nfMZf6Z9IIJjUxgwmnbqTp0B6SlWWoTQ8X6X5/epcbg== dependencies: "@babel/runtime" "7.11.2" "@elrondnetwork/bls-wasm" "0.3.3" "@elrondnetwork/hw-app-elrond" "0.3.2" - "@ledgerhq/hw-transport-u2f" "5.28.0" - "@ledgerhq/hw-transport-webusb" "5.28.0" + "@ledgerhq/hw-transport-u2f" "^5.36.0-deprecated" + "@ledgerhq/hw-transport-webhid" "^6.11.2" + "@ledgerhq/hw-transport-webusb" "6.11.2" "@walletconnect/client" "1.6.5" abort-controller "3.0.0" - axios "0.21.1" + axios "0.24.0" bech32 "1.1.4" bignumber.js "9.0.1" bip39 "3.0.2" blake2b "2.1.3" + buffer "6.0.3" ed25519-hd-key "1.1.2" json-bigint "1.0.0" json-duplicate-key-handle "1.0.0" @@ -1211,7 +1227,7 @@ "@json-rpc-tools/types" "^1.7.6" "@pedrouid/environment" "^1.0.1" -"@ledgerhq/devices@^5.28.0", "@ledgerhq/devices@^5.51.1": +"@ledgerhq/devices@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" integrity sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA== @@ -1221,11 +1237,26 @@ rxjs "6" semver "^7.3.5" -"@ledgerhq/errors@^5.28.0", "@ledgerhq/errors@^5.50.0": +"@ledgerhq/devices@^6.11.2", "@ledgerhq/devices@^6.27.1": + version "6.27.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-6.27.1.tgz#3b13ab1d1ba8201e9e74a08f390560483978c962" + integrity sha512-jX++oy89jtv7Dp2X6gwt3MMkoajel80JFWcdc0HCouwDsV1mVJ3SQdwl/bQU0zd8HI6KebvUP95QTwbQLLK/RQ== + dependencies: + "@ledgerhq/errors" "^6.10.0" + "@ledgerhq/logs" "^6.10.0" + rxjs "6" + semver "^7.3.5" + +"@ledgerhq/errors@^5.34.0", "@ledgerhq/errors@^5.50.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== +"@ledgerhq/errors@^6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.10.0.tgz#dda9127b65f653fbb2f74a55e8f0e550d69de6e4" + integrity sha512-fQFnl2VIXh9Yd41lGjReCeK+Q2hwxQJvLZfqHnKqWapTz68NHOv5QcI0OHuZVNEbv0xhgdLhi5b65kgYeQSUVg== + "@ledgerhq/hw-transport-node-hid-noevents@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.51.1.tgz#71f37f812e448178ad0bcc2258982150d211c1ab" @@ -1251,27 +1282,37 @@ node-hid "2.1.1" usb "^1.7.0" -"@ledgerhq/hw-transport-u2f@5.28.0": - version "5.28.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.28.0.tgz#dc08d42203de1b3328b5c973628bbf39634a9f47" - integrity sha512-p/4CB+Sf5c1pLUjVWnHCm6Ll6atratfWlgFSmqt8yRxxejB5mwlK+4HkX8Tq4wgooZe2PqDuVTdFxGwiq4nAeg== +"@ledgerhq/hw-transport-u2f@^5.36.0-deprecated": + version "5.36.0-deprecated" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.36.0-deprecated.tgz#66e3ed399a117a1c0110871a055dd54f5fe707fd" + integrity sha512-T/+mGHIiUK/ZQATad6DMDmobCMZ1mVST952009jKzhaE1Et2Uy2secU+QhRkx3BfEAkvwa0zSRSYCL9d20Iqjg== dependencies: - "@ledgerhq/errors" "^5.28.0" - "@ledgerhq/hw-transport" "^5.28.0" - "@ledgerhq/logs" "^5.28.0" + "@ledgerhq/errors" "^5.34.0" + "@ledgerhq/hw-transport" "^5.34.0" + "@ledgerhq/logs" "^5.30.0" u2f-api "0.2.7" -"@ledgerhq/hw-transport-webusb@5.28.0": - version "5.28.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-5.28.0.tgz#55761c3080210e8f8ddaf61a7e666a2f2c6c5caf" - integrity sha512-BTSA8T21ymxy3z1S3jJKMt9MvysYvyE2ZRkZm+gY35oJ9bm97PKTwe5/NLx9cwYxIem8/rJalREp4GAJESgELA== +"@ledgerhq/hw-transport-webhid@^6.11.2": + version "6.27.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.1.tgz#8fd1710d23b6bd7cbe2382dd02054dfabe788447" + integrity sha512-u74rBYlibpbyGblSn74fRs2pMM19gEAkYhfVibq0RE1GNFjxDMFC1n7Sb+93Jqmz8flyfB4UFJsxs8/l1tm2Kw== dependencies: - "@ledgerhq/devices" "^5.28.0" - "@ledgerhq/errors" "^5.28.0" - "@ledgerhq/hw-transport" "^5.28.0" - "@ledgerhq/logs" "^5.28.0" + "@ledgerhq/devices" "^6.27.1" + "@ledgerhq/errors" "^6.10.0" + "@ledgerhq/hw-transport" "^6.27.1" + "@ledgerhq/logs" "^6.10.0" -"@ledgerhq/hw-transport@^5.19.1", "@ledgerhq/hw-transport@^5.28.0", "@ledgerhq/hw-transport@^5.51.1": +"@ledgerhq/hw-transport-webusb@6.11.2": + version "6.11.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-6.11.2.tgz#d190709881e50f8c271efe956705b05e46b4649d" + integrity sha512-ReiYoypXybLQi1ekA+YQqsvbSj0wwTFH7Lg690eUkqZydjDd4lMjpZk7lDczsXp3wxTjE/mdAQ0bpNwZWmPTJw== + dependencies: + "@ledgerhq/devices" "^6.11.2" + "@ledgerhq/errors" "^6.10.0" + "@ledgerhq/hw-transport" "^6.11.2" + "@ledgerhq/logs" "^6.10.0" + +"@ledgerhq/hw-transport@^5.19.1", "@ledgerhq/hw-transport@^5.34.0", "@ledgerhq/hw-transport@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz#8dd14a8e58cbee4df0c29eaeef983a79f5f22578" integrity sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw== @@ -1280,11 +1321,25 @@ "@ledgerhq/errors" "^5.50.0" events "^3.3.0" -"@ledgerhq/logs@^5.28.0", "@ledgerhq/logs@^5.50.0": +"@ledgerhq/hw-transport@^6.11.2", "@ledgerhq/hw-transport@^6.27.1": + version "6.27.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.1.tgz#88072278f69c279cb6569352acd4ae2fec33ace3" + integrity sha512-hnE4/Fq1YzQI4PA1W0H8tCkI99R3UWDb3pJeZd6/Xs4Qw/q1uiQO+vNLC6KIPPhK0IajUfuI/P2jk0qWcMsuAQ== + dependencies: + "@ledgerhq/devices" "^6.27.1" + "@ledgerhq/errors" "^6.10.0" + events "^3.3.0" + +"@ledgerhq/logs@^5.30.0", "@ledgerhq/logs@^5.50.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== +"@ledgerhq/logs@^6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.0.tgz#c012c1ecc1a0e53d50e6af381618dca5268461c1" + integrity sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1306,12 +1361,25 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@octokit/auth-token@^2.4.0": - version "2.4.5" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.5.tgz#568ccfb8cb46f36441fac094ce34f7a875b197f3" - integrity sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA== +"@octokit/auth-token@^2.4.4": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== + dependencies: + "@octokit/types" "^6.0.3" + +"@octokit/core@^3.5.1": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" + integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== dependencies: + "@octokit/auth-token" "^2.4.4" + "@octokit/graphql" "^4.5.8" + "@octokit/request" "^5.6.3" + "@octokit/request-error" "^2.0.5" "@octokit/types" "^6.0.3" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" "@octokit/endpoint@^6.0.1": version "6.0.12" @@ -1322,41 +1390,41 @@ is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-8.3.0.tgz#8bc912edae8c03e002882cf1e29b595b7da9b441" - integrity sha512-ZFyQ30tNpoATI7o+Z9MWFUzUgWisB8yduhcky7S4UYsRijgIGSnwUKzPBDGzf/Xkx1DuvUtqzvmuFlDSqPJqmQ== +"@octokit/graphql@^4.5.8": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" + integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== + dependencies: + "@octokit/request" "^5.6.0" + "@octokit/types" "^6.0.3" + universal-user-agent "^6.0.0" -"@octokit/plugin-paginate-rest@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc" - integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q== +"@octokit/openapi-types@^11.2.0": + version "11.2.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" + integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== + +"@octokit/plugin-paginate-rest@^2.16.8": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7" + integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== dependencies: - "@octokit/types" "^2.0.1" + "@octokit/types" "^6.34.0" -"@octokit/plugin-request-log@^1.0.0": +"@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== -"@octokit/plugin-rest-endpoint-methods@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e" - integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ== +"@octokit/plugin-rest-endpoint-methods@^5.12.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" + integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA== dependencies: - "@octokit/types" "^2.0.1" + "@octokit/types" "^6.34.0" deprecation "^2.3.1" -"@octokit/request-error@^1.0.2": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" - integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== - dependencies: - "@octokit/types" "^2.0.0" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request-error@^2.1.0": +"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== @@ -1365,53 +1433,34 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.2.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.0.tgz#6084861b6e4fa21dc40c8e2a739ec5eff597e672" - integrity sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA== +"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== dependencies: "@octokit/endpoint" "^6.0.1" "@octokit/request-error" "^2.1.0" "@octokit/types" "^6.16.1" is-plain-object "^5.0.0" - node-fetch "^2.6.1" + node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@^16.43.1": - version "16.43.2" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.2.tgz#c53426f1e1d1044dee967023e3279c50993dd91b" - integrity sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ== - dependencies: - "@octokit/auth-token" "^2.4.0" - "@octokit/plugin-paginate-rest" "^1.1.1" - "@octokit/plugin-request-log" "^1.0.0" - "@octokit/plugin-rest-endpoint-methods" "2.4.0" - "@octokit/request" "^5.2.0" - "@octokit/request-error" "^1.0.2" - atob-lite "^2.0.0" - before-after-hook "^2.0.0" - btoa-lite "^1.0.0" - deprecation "^2.0.0" - lodash.get "^4.4.2" - lodash.set "^4.3.2" - lodash.uniq "^4.5.0" - octokit-pagination-methods "^1.1.0" - once "^1.4.0" - universal-user-agent "^4.0.0" - -"@octokit/types@^2.0.0", "@octokit/types@^2.0.1": - version "2.16.2" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2" - integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q== +"@octokit/rest@^18.12.0": + version "18.12.0" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== dependencies: - "@types/node" ">= 8" + "@octokit/core" "^3.5.1" + "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^5.12.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.19.0.tgz#e2b6fedb10c8b53cf4574aa5d1a8a5611295297a" - integrity sha512-9wdZFiJfonDyU6DjIgDHxAIn92vdSUBOwAXbO2F9rOFt6DJwuAkyGLu1CvdJPphCbPBoV9iSDMX7y4fu0v6AtA== +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0": + version "6.34.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" + integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== dependencies: - "@octokit/openapi-types" "^8.3.0" + "@octokit/openapi-types" "^11.2.0" "@pedrouid/environment@^1.0.1": version "1.0.1" @@ -1694,15 +1743,20 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== +"@types/json-buffer@~3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" + integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== + "@types/json-schema@^7.0.7": version "7.0.8" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg== "@types/keyv@*", "@types/keyv@^3.1.1": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.2.tgz#5d97bb65526c20b6e0845f6b0d2ade4f28604ee5" - integrity sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg== + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== dependencies: "@types/node" "*" @@ -1711,7 +1765,7 @@ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== -"@types/node@*", "@types/node@>= 8": +"@types/node@*": version "16.3.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.2.tgz#655432817f83b51ac869c2d51dd8305fb8342e16" integrity sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw== @@ -1916,24 +1970,24 @@ uuid "2.0.1" xmlhttprequest "1.8.0" -"@walletconnect/browser-utils@^1.6.6": - version "1.6.6" - resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.6.6.tgz#a985b48c99c65a986a051d66a4910010a10a0c56" - integrity sha512-E29xSHU7Akd4jaPehWVGx7ct+SsUzZbxcGc0fz+Pw6/j4Gh5tlfYZ9XuVixuYI4WPdQ2CmOraj8RrVOu5vba4w== +"@walletconnect/browser-utils@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.0.tgz#b420eb110d5ea4d7fe00084537fd720a72b68d56" + integrity sha512-bQsbCIDTT1OB4v8VF5bzg3byp03qTst9kLmjQj68ElecIUcdS6nZvEDhZdQK/r63WMVnA2KrTb5AEN6hPRGgIw== dependencies: "@walletconnect/safe-json" "1.0.0" - "@walletconnect/types" "^1.6.6" + "@walletconnect/types" "^1.7.0" "@walletconnect/window-getters" "1.0.0" "@walletconnect/window-metadata" "1.0.0" detect-browser "5.2.0" -"@walletconnect/browser-utils@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.0.tgz#b420eb110d5ea4d7fe00084537fd720a72b68d56" - integrity sha512-bQsbCIDTT1OB4v8VF5bzg3byp03qTst9kLmjQj68ElecIUcdS6nZvEDhZdQK/r63WMVnA2KrTb5AEN6hPRGgIw== +"@walletconnect/browser-utils@^1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.8.tgz#c9e27f69d838442d69ccf53cb38ffc3c554baee2" + integrity sha512-iCL0XCWOZaABIc0lqA79Vyaybr3z26nt8mxiwvfrG8oaKUf5Y21Of4dj+wIXQ4Hhblre6SgDlU0Ffb39+1THOw== dependencies: "@walletconnect/safe-json" "1.0.0" - "@walletconnect/types" "^1.7.0" + "@walletconnect/types" "^1.7.8" "@walletconnect/window-getters" "1.0.0" "@walletconnect/window-metadata" "1.0.0" detect-browser "5.2.0" @@ -1959,13 +2013,13 @@ "@walletconnect/utils" "^1.7.0" "@walletconnect/core@^1.6.5": - version "1.6.6" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.6.6.tgz#0a35a9b0f91da8958bec27be801a510818f4e142" - integrity sha512-pSftIVPY6mYz2koZPBEYmeFeAjVf2MSnRHOM6+vx+iAsUEcfMZHkgeXX6GtM6Fjza+zSZu1qnmdgURVXpmKwtQ== + version "1.7.8" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.7.8.tgz#97c52ea7d00126863cd37bf19bd3e87d4f30de1e" + integrity sha512-9xcQ0YNf9JUFb0YOX1Mpy4Yojt+6w2yQz/0aIEyj2X/s9D71NW0fTYsMcdhkLOI7mn2cqVbx2t1lRvdgqsbrSQ== dependencies: - "@walletconnect/socket-transport" "^1.6.6" - "@walletconnect/types" "^1.6.6" - "@walletconnect/utils" "^1.6.6" + "@walletconnect/socket-transport" "^1.7.8" + "@walletconnect/types" "^1.7.8" + "@walletconnect/utils" "^1.7.8" "@walletconnect/core@^1.7.0": version "1.7.0" @@ -1987,6 +2041,17 @@ aes-js "^3.1.2" hash.js "^1.1.7" +"@walletconnect/crypto@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.2.tgz#3fcc2b2cde6f529a19eadd883dc555cd0e861992" + integrity sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ== + dependencies: + "@walletconnect/encoding" "^1.0.1" + "@walletconnect/environment" "^1.0.0" + "@walletconnect/randombytes" "^1.0.2" + aes-js "^3.1.2" + hash.js "^1.1.7" + "@walletconnect/encoding@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.0.tgz#e24190cb5e803526f9dfd7191fb0e4dc53c6d864" @@ -1995,19 +2060,27 @@ is-typedarray "1.0.0" typedarray-to-buffer "3.1.5" +"@walletconnect/encoding@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.1.tgz#93c18ce9478c3d5283dbb88c41eb2864b575269a" + integrity sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA== + dependencies: + is-typedarray "1.0.0" + typedarray-to-buffer "3.1.5" + "@walletconnect/environment@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== "@walletconnect/iso-crypto@^1.6.5": - version "1.6.6" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.6.6.tgz#19848bdcd54e9945961bab8a996cbca8a00d7cf1" - integrity sha512-wRYgKvd8K3A9FVLn2c0cDh4+9OUHkqibKtwQJTJsz+ibPGgd+n5j1/FjnzDDRGb9T1+TtlwYF3ZswKyys3diVQ== + version "1.7.8" + resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.7.8.tgz#41f09326d129faa09beae213e78614c19d90bbd6" + integrity sha512-Qo6qDcMG0Ac+9fpWE0h/oE55NHLk6eM2vlXpWlQDN/me7RZGrkvk+LXsAkQ3UiYPEiPfq4eswcyRWC9AcrAscg== dependencies: - "@walletconnect/crypto" "^1.0.1" - "@walletconnect/types" "^1.6.6" - "@walletconnect/utils" "^1.6.6" + "@walletconnect/crypto" "^1.0.2" + "@walletconnect/types" "^1.7.8" + "@walletconnect/utils" "^1.7.8" "@walletconnect/iso-crypto@^1.7.0": version "1.7.0" @@ -2042,20 +2115,20 @@ "@walletconnect/environment" "^1.0.0" randombytes "^2.1.0" +"@walletconnect/randombytes@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.2.tgz#95c644251a15e6675f58fbffc9513a01486da49c" + integrity sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A== + dependencies: + "@walletconnect/encoding" "^1.0.1" + "@walletconnect/environment" "^1.0.0" + randombytes "^2.1.0" + "@walletconnect/safe-json@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== -"@walletconnect/socket-transport@^1.6.6": - version "1.6.6" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.6.6.tgz#b80974fe3e2a2f93ba1f6b40df5a0ea492b94086" - integrity sha512-mugCEoeKTx75ogb5ROg/+LA3yGTsuRNcrYgrApceo7WNU9Z4dG8l6ycMPqrrFcODcrasq3NmXVWUYDv/CvrzSw== - dependencies: - "@walletconnect/types" "^1.6.6" - "@walletconnect/utils" "^1.6.6" - ws "7.5.3" - "@walletconnect/socket-transport@^1.7.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.7.0.tgz#713a162d577fdda0b44753227b699b6f93927b97" @@ -2065,25 +2138,34 @@ "@walletconnect/utils" "^1.7.0" ws "7.5.3" -"@walletconnect/types@^1.6.5", "@walletconnect/types@^1.6.6": - version "1.6.6" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.6.6.tgz#8d644e2a390e494e40424c60272e91b4820bf0d4" - integrity sha512-op77cxexOmQQN36XB1sYouNTlBRV0Rup/2NYK8A1ffdwXa3a6HLHHdhBM7I/I9BVmRXoZ4+XoOnPKGGrYtlS3g== +"@walletconnect/socket-transport@^1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.7.8.tgz#a4ef50d8054293991dbfde7f9c66788030182ec3" + integrity sha512-bqEjLxfSzG79v2OT7XVOZoyUkg6g3yng0fURrdLusWs42fYHWnrSrIZDejFn8N5PiZk5R2edrggkQ7w0VUUAfw== + dependencies: + "@walletconnect/types" "^1.7.8" + "@walletconnect/utils" "^1.7.8" + ws "7.5.3" + +"@walletconnect/types@^1.6.5", "@walletconnect/types@^1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.7.8.tgz#ec397e6fbdc8147bccc17029edfeb41c50a5ca09" + integrity sha512-0oSZhKIrtXRJVP1jQ0EDTRtotQY6kggGjDcmm/LLQBKnOZXdPeo0sPkV/7DjT5plT3O7Cjc6JvuXt9WOY0hlCA== "@walletconnect/types@^1.7.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.7.0.tgz#e6d0f7e41e5d22303b57be0739716a8dd8c968b4" integrity sha512-eoqnF+U04IuMfGIBsqYhAR6SIM2kzcrZM/RCVcomT/lIcsRoBwNxR+86+3Vn12/iaGnuAKn8xDZhZ47SLFmanQ== -"@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.6.6": - version "1.6.6" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.6.6.tgz#e8e49a5f2c35e4a5f9153b09ad076655f38d8c96" - integrity sha512-s2X/cVXiMDSEoWV6i7HPMbP1obXlzP7KLMrBo9OMabiJKnQEh6HSZ39WLswB2PHnl8Hp1Sr4BdRvhM5kCcYWRw== +"@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.7.8.tgz#f94572bca5eb6b5f81daf8a35268f249f9c6b1ec" + integrity sha512-DSpfH6Do0TQmdrgzu+SyjVhupVjN0WEMvNWGK9K4VlSmLFpCWfme7qxzrvuxBZ47gDqs1kGWvjyJmviWqvOnAg== dependencies: - "@walletconnect/browser-utils" "^1.6.6" - "@walletconnect/encoding" "^1.0.0" + "@walletconnect/browser-utils" "^1.7.8" + "@walletconnect/encoding" "^1.0.1" "@walletconnect/jsonrpc-utils" "^1.0.0" - "@walletconnect/types" "^1.6.6" + "@walletconnect/types" "^1.7.8" bn.js "4.11.8" js-sha3 "0.8.0" query-string "6.13.5" @@ -2148,7 +2230,7 @@ aes-js@^3.1.2: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: +ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2199,22 +2281,17 @@ ansi-regex@^2.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -2242,9 +2319,9 @@ aproba@^1.0.3: integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + version "1.1.7" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -2308,11 +2385,6 @@ assert@^2.0.0: object-is "^1.0.1" util "^0.12.0" -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -2328,11 +2400,6 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob-lite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" - integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= - available-typed-arrays@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" @@ -2348,20 +2415,20 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@0.21.1, axios@^0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== - dependencies: - follow-redirects "^1.10.0" - -axios@^0.24.0: +axios@0.24.0, axios@^0.24.0: version "0.24.0" resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6" integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA== dependencies: follow-redirects "^1.14.4" +axios@^0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -2414,7 +2481,7 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -before-after-hook@^2.0.0: +before-after-hook@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== @@ -2428,11 +2495,6 @@ belter@^1.0.170: cross-domain-utils "^2" zalgo-promise "^1" -big-integer@^1.6.17: - version "1.6.48" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" - integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== - bignumber.js@9.0.1, bignumber.js@^9.0.0, bignumber.js@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" @@ -2448,15 +2510,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -binary@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" - integrity sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk= - dependencies: - buffers "~0.1.1" - chainsaw "~0.1.0" - -bindings@^1.4.0, bindings@^1.5.0: +bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -2522,11 +2576,6 @@ bluebird@^3.5.0: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bluebird@~3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - integrity sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM= - bn.js@4.11.6: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" @@ -2671,16 +2720,6 @@ bs58check@^2.1.2: create-hash "^1.1.0" safe-buffer "^5.1.2" -btoa-lite@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" - integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= - -buffer-indexof-polyfill@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" - integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== - buffer-to-arraybuffer@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" @@ -2691,15 +2730,7 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= -buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffer@^6.0.2, buffer@^6.0.3: +buffer@6.0.3, buffer@^6.0.2, buffer@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -2707,10 +2738,13 @@ buffer@^6.0.2, buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -buffers@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" - integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" bufferutil@^4.0.1: version "4.0.6" @@ -2781,13 +2815,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chainsaw@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" - integrity sha1-XqtQsor+WAdNDVgpE4iCi15fvJg= - dependencies: - traverse ">=0.3.0 <0.4" - chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2811,9 +2838,9 @@ charenc@0.0.2: integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= chokidar@^3.0.0: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -2899,7 +2926,7 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colors@^1.4.0: +colors@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -2921,6 +2948,14 @@ component-emitter@^1.3.0, component-emitter@~1.3.0: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== +compress-brotli@^1.3.6: + version "1.3.8" + resolved "https://registry.yarnpkg.com/compress-brotli/-/compress-brotli-1.3.8.tgz#0c0a60c97a989145314ec381e84e26682e7b38db" + integrity sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ== + dependencies: + "@types/json-buffer" "~3.0.0" + json-buffer "~3.0.1" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -2972,11 +3007,16 @@ core-js@^2.4.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + cors@^2.8.1: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" @@ -3035,17 +3075,6 @@ cross-domain-utils@^2, cross-domain-utils@^2.0.0: dependencies: zalgo-promise "^1.0.11" -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -3266,13 +3295,6 @@ dotenv@^16.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== -duplexer2@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= - dependencies: - readable-stream "^2.0.2" - duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -3313,11 +3335,6 @@ elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -3808,19 +3825,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" @@ -3987,39 +3991,38 @@ flow-copy-source@^2.0.9: yargs "^15.0.1" flow-typed@^3.2.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/flow-typed/-/flow-typed-3.3.1.tgz#538bbcf13098916a09731f06ed6c0e5b8aee7303" - integrity sha512-svxMNRJNTeKfOwBt/bPZvOrgkjpYH1nXC2v7dgbq4sZgZu/Slna6kAPD45fnOJ4D0TCS2B4yp6Nhc32AV1sxpQ== + version "3.7.0" + resolved "https://registry.yarnpkg.com/flow-typed/-/flow-typed-3.7.0.tgz#c3e087cb39de1a3ba303f5c646daca74c9fa8a21" + integrity sha512-Mxl4c445SbvX1IBJQ+WRcPsRp3LxRMorHH57db4tBuuzNKg/Qpeo9CwdBQbFr39Xz1lxlOTPOP2ZNFLnCzb0fA== dependencies: - "@octokit/rest" "^16.43.1" - colors "^1.4.0" + "@octokit/rest" "^18.12.0" + colors "1.4.0" flowgen "^1.10.0" fs-extra "^8.1.0" glob "^7.1.6" got "^10.5.7" md5 "^2.2.1" mkdirp "^1.0.3" + node-stream-zip "^1.15.0" prettier "^1.19.1" rimraf "^3.0.2" semver "7.3.2" - table "^5.4.6" - through "^2.3.8" - unzipper "^0.10.8" + table "^6.7.3" which "^2.0.2" yargs "^15.1.0" flowgen@^1.10.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.14.1.tgz#a1da7cbe78bd3897291257dc60c566e14540c95a" - integrity sha512-rpwM75zi4BH5CLHtak0/1wZ40/3eEi2E7CafjiGPnyL2b9y3zznSrgbNTnpkspU1o4C0Ypsvfwi0lFslIVxWVw== + version "1.19.0" + resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.19.0.tgz#ccb0fc98f46ab9848f23618cb3e7a2dc20721767" + integrity sha512-fP78dAGRuxpx9NLc+aIMkdW9ScjzHNA5wm+LLI4uFmAFo9T0xzEU6XgTXFbGBgSVwIL467D+fg39x73CR8012A== dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/highlight" "^7.10.4" + "@babel/code-frame" "^7.16.7" + "@babel/highlight" "^7.16.7" commander "^6.1.0" lodash "^4.17.20" - prettier "^2.1.1" + prettier "^2.5.1" shelljs "^0.8.4" - typescript "^4.0.2" + typescript "~4.4.4" typescript-compiler "^1.4.1-2" follow-redirects@^1.10.0: @@ -4115,16 +4118,6 @@ fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -4168,7 +4161,7 @@ get-stream@^3.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= -get-stream@^4.0.0, get-stream@^4.1.0: +get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -4201,10 +4194,10 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +glob@^7.0.0, glob@^7.1.6, glob@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -4213,10 +4206,10 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.1.3: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -4310,11 +4303,16 @@ got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: +graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -4507,7 +4505,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4568,10 +4566,10 @@ is-callable@^1.1.4, is-callable@^1.2.3: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== -is-core-module@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" - integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== +is-core-module@^2.8.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" @@ -4592,11 +4590,6 @@ is-fullwidth-code-point@^1.0.0: dependencies: number-is-nan "^1.0.0" -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -4612,13 +4605,20 @@ is-generator-function@^1.0.7: resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c" integrity sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" +is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" @@ -4675,7 +4675,7 @@ is-retry-allowed@^1.0.0: resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -4791,7 +4791,7 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= -json-buffer@3.0.1: +json-buffer@3.0.1, json-buffer@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== @@ -4872,10 +4872,11 @@ keyv@^3.0.0: json-buffer "3.0.0" keyv@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" - integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== + version "4.2.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.2.2.tgz#4b6f602c0228ef4d8214c03c520bef469ed6b768" + integrity sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ== dependencies: + compress-brotli "^1.3.6" json-buffer "3.0.1" keyvaluestorage-interface@^1.0.0: @@ -4903,11 +4904,6 @@ libsodium@0.7.8: resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.8.tgz#fbd12247b7b1353f88d8de1cbc66bc1a07b2e008" integrity sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ== -listenercount@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" - integrity sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc= - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -4940,12 +4936,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4984,11 +4975,6 @@ lunr@^2.3.9: resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== -macos-release@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2" - integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g== - marked@^3.0.4: version "3.0.7" resolved "https://registry.yarnpkg.com/marked/-/marked-3.0.7.tgz#343aad9e91b96249b495c99c512ea09cfe06de1e" @@ -5116,12 +5102,7 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -5158,13 +5139,6 @@ mkdirp@*, mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -"mkdirp@>=0.5 0": - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - mkdirp@^0.5.5: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -5262,23 +5236,13 @@ next-tick@^1.1.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-abi@^2.21.0, node-abi@^2.7.0: - version "2.30.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.0.tgz#8be53bf3e7945a34eea10e0fc9a5982776cf550b" - integrity sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg== +node-abi@^2.21.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" + integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== dependencies: semver "^5.4.1" -node-addon-api@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.0.2.tgz#04bc7b83fd845ba785bb6eae25bc857e1ef75681" - integrity sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg== - node-addon-api@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" @@ -5289,10 +5253,17 @@ node-addon-api@^3.0.2: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== -node-fetch@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== +node-addon-api@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" + integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== + +node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" node-gyp-build@^4.2.0: version "4.2.3" @@ -5313,10 +5284,10 @@ node-hid@2.1.1: node-addon-api "^3.0.2" prebuild-install "^6.0.0" -noop-logger@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" - integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= +node-stream-zip@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" + integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -5333,13 +5304,6 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - npmlog@^4.0.1: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -5418,11 +5382,6 @@ oboe@2.1.5: dependencies: http-https "^1.0.0" -octokit-pagination-methods@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" - integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== - on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -5463,14 +5422,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -os-name@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" - integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== - dependencies: - macos-release "^2.2.0" - windows-release "^3.1.0" - p-cancelable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" @@ -5579,17 +5530,12 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -5625,7 +5571,12 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== @@ -5635,31 +5586,10 @@ platform@1.3.6: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== -prebuild-install@^5.3.3: - version "5.3.6" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz#7c225568d864c71d89d07f8796042733a3f54291" - integrity sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg== - dependencies: - detect-libc "^1.0.3" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^2.7.0" - noop-logger "^0.1.1" - npmlog "^4.0.1" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^3.0.3" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" - which-pm-runs "^1.0.0" - prebuild-install@^6.0.0: - version "6.1.3" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.3.tgz#8ea1f9d7386a0b30f7ef20247e36f8b2b82825a2" - integrity sha512-iqqSR84tNYQUQHRXalSKdIaM8Ov1QxOVuBNWI7+BzZWv6Ih9k75wOnH1rGQ9WWTaaLkTpxWKIciOF0KyfM74+Q== + version "6.1.4" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" + integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== dependencies: detect-libc "^1.0.3" expand-template "^2.0.3" @@ -5695,11 +5625,16 @@ prettier@^1.19.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.1.1, prettier@^2.3.2: +prettier@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== +prettier@^2.5.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" + integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -5879,7 +5814,7 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@~2.3.6: +readable-stream@^2.0.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -5982,12 +5917,13 @@ resolve-from@^4.0.0: integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.1.6: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" responselike@^1.0.2: version "1.0.2" @@ -6008,13 +5944,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -6095,7 +6024,7 @@ semver@7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: +semver@^5.4.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -6157,7 +6086,7 @@ setimmediate@1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= -setimmediate@^1.0.5, setimmediate@~1.0.4: +setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -6175,13 +6104,6 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -6189,20 +6111,15 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shelljs@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" - integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -6227,9 +6144,9 @@ side-channel@^1.0.4: object-inspect "^1.9.0" signal-exit@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-concat@^1.0.0: version "1.0.1" @@ -6246,9 +6163,9 @@ simple-get@^2.7.0: simple-concat "^1.0.0" simple-get@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" - integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" + integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== dependencies: decompress-response "^4.2.0" once "^1.3.1" @@ -6259,15 +6176,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -6353,24 +6261,16 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== @@ -6416,20 +6316,6 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -6437,10 +6323,12 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" strip-hex-prefix@1.0.0: version "1.0.0" @@ -6490,6 +6378,11 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + swarm-js@^0.1.40: version "0.1.40" resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" @@ -6507,16 +6400,6 @@ swarm-js@^0.1.40: tar "^4.0.2" xhr-request "^1.0.1" -table@^5.4.6: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - table@^6.0.9: version "6.7.1" resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" @@ -6529,6 +6412,17 @@ table@^6.0.9: string-width "^4.2.0" strip-ansi "^6.0.0" +table@^6.7.3: + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + tar-fs@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" @@ -6581,11 +6475,6 @@ thor-devkit@^2.0.4: js-sha3 "0.5.7" rlp "^2.0.0" -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" @@ -6621,10 +6510,10 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -"traverse@>=0.3.0 <0.4": - version "0.3.9" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" - integrity sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk= +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= tronstation@^1.0.1: version "1.0.1" @@ -6742,11 +6631,16 @@ typescript-compiler@^1.4.1-2: resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f" integrity sha1-uk99si2RU0oZKdkACdzhYety/T8= -typescript@^4.0.2, typescript@^4.3.5: +typescript@^4.3.5: version "4.3.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== +typescript@~4.4.4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== + u2f-api@0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" @@ -6767,13 +6661,6 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" -universal-user-agent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" - integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg== - dependencies: - os-name "^3.1.0" - universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" @@ -6789,22 +6676,6 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unzipper@^0.10.8: - version "0.10.11" - resolved "https://registry.yarnpkg.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" - integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== - dependencies: - big-integer "^1.6.17" - binary "~0.3.0" - bluebird "~3.4.1" - buffer-indexof-polyfill "~1.0.0" - duplexer2 "~0.1.4" - fstream "^1.0.12" - graceful-fs "^4.2.2" - listenercount "~1.0.1" - readable-stream "~2.3.6" - setimmediate "~1.0.4" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -6845,13 +6716,12 @@ url-to-options@^1.0.1: integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= usb@^1.7.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/usb/-/usb-1.7.1.tgz#d723223ec517b802c4d2082e31a4649c65c491c5" - integrity sha512-HTCfx6NnNRhv5y98t04Y8j2+A8dmQnEGxCMY2/zN/0gkiioLYfTZ5w/PEKlWRVUY+3qLe9xwRv9pHLkjQYNw/g== + version "1.9.2" + resolved "https://registry.yarnpkg.com/usb/-/usb-1.9.2.tgz#fb6b36f744ecc707a196c45a6ec72442cb6f2b73" + integrity sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg== dependencies: - bindings "^1.4.0" - node-addon-api "3.0.2" - prebuild-install "^5.3.3" + node-addon-api "^4.2.0" + node-gyp-build "^4.3.0" utf-8-validate@^5.0.2: version "5.0.9" @@ -7186,6 +7056,11 @@ web3@^1.7.1: web3-shh "1.7.3" web3-utils "1.7.3" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + websocket@^1.0.32: version "1.0.34" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" @@ -7198,6 +7073,14 @@ websocket@^1.0.32: utf-8-validate "^5.0.2" yaeti "^0.0.6" +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -7214,11 +7097,6 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which-pm-runs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" - integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= - which-typed-array@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" @@ -7232,13 +7110,6 @@ which-typed-array@^1.1.2: has-symbols "^1.0.1" is-typed-array "^1.1.3" -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -7247,18 +7118,11 @@ which@^2.0.1, which@^2.0.2: isexe "^2.0.0" wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -windows-release@^3.1.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.3.tgz#1c10027c7225743eec6b89df160d64c2e0293999" - integrity sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg== + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: - execa "^1.0.0" + string-width "^1.0.2 || 2 || 3 || 4" word-wrap@^1.2.3: version "1.2.3" From f631af6c0effa743cf3cb37ae4aa401a54c13b90 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 8 May 2022 17:19:17 +0530 Subject: [PATCH 510/956] packages: pin bignumbers.js --- .vscode/settings.json | 3 +++ package.json | 2 +- yarn.lock | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..55712c19f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "typescript.tsdk": "node_modules/typescript/lib" +} \ No newline at end of file diff --git a/package.json b/package.json index bc76d27e5..c6d4aa571 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "@walletconnect/client": "^1.7.0", "algosdk": "^1.15.0-beta.1", "axios": "^0.21.1", - "bignumber.js": "9.0.1", + "bignumber.js": "=9.0.1", "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", "ethers": "^5.5.4", "js-base64": "^3.6.1", diff --git a/yarn.lock b/yarn.lock index 0147ca402..0f45b3c21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2495,7 +2495,7 @@ belter@^1.0.170: cross-domain-utils "^2" zalgo-promise "^1" -bignumber.js@9.0.1, bignumber.js@^9.0.0, bignumber.js@^9.0.1: +bignumber.js@9.0.1, bignumber.js@=9.0.1, bignumber.js@^9.0.0, bignumber.js@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== From 9817a6babe5fe905ba826952c169311f36889315 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 9 May 2022 15:05:15 +0530 Subject: [PATCH 511/956] configs: update testnet nft auth token --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 0deb3726c..caf728f56 100644 --- a/src/config.ts +++ b/src/config.ts @@ -19,7 +19,7 @@ export namespace AppConfigs { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", nftListUri: "https://testnet-notifier.xp.network/testnet-indexer/", nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY0NDIzMDE0NiwiZXhwIjoxNjUyMDA2MTQ2fQ.gX6Auj4hFLdpem5Pk2kAnH71I19iGXfBYjmQrXylMFX_R1yzDEbylVAOLW6kABH9VjnLbAnCRdQvLaQIFmMUpw", + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1MjA4NzAwNiwiZXhwIjoxNjU5ODYzMDA2fQ.ERjXpljkyuklPTJCSXQXZ-Wh09oxQwA4u8HKIbIwO1TSajvLIlNgxseqBVEd5D4lkqXYGwcezkuezuRc3kKkKg", txSocketUri: "https://testnet-tx-socket.herokuapp.com", tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", From 9a46fbaa13f443c4fb4b7f1747e7786050d414be Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 11 May 2022 17:10:05 +0530 Subject: [PATCH 512/956] fix tx socket url --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index caf728f56..5cf827c41 100644 --- a/src/config.ts +++ b/src/config.ts @@ -7,7 +7,7 @@ export namespace AppConfigs { nftListUri: "https://indexnft.herokuapp.com", nftListAuthToken: "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTYzODk2MjMzOCwiZXhwIjoxNjQ2NzM4MzM4fQ.9eQMNMtt-P6myPlji7nBC9PAwTftd0qQvwnIZSt4ycM4E45NpzCF0URsdYj_YN_xqQKQpcHiZu1o4EXjJa_-Zw", - txSocketUri: "transaction-socket.xp.network", + txSocketUri: "https://transaction-socket.xp.network", tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", wrappedNftPrefix: "https://nft.xp.network/w/", From bc59c1b7f794295e358e2d5b3502352cd57cb966 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 15 May 2022 19:40:03 +0530 Subject: [PATCH 513/956] algorand: add balance check trait --- src/helpers/algorand.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 79eb2aede..1c89245b5 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -16,7 +16,7 @@ import { } from ".."; import MyAlgoConnect from "@randlabs/myalgo-connect"; import { EvNotifier } from "../notifier"; -import { FeeMargins, GetFeeMargins } from "./chain"; +import { BalanceCheck, FeeMargins, GetFeeMargins } from "./chain"; type TxResp = { txId: string; @@ -138,7 +138,7 @@ export type AlgorandHelper = ChainNonceGet & } & Pick< PreTransfer, "preTransfer" - > & { XpNft: string } & GetFeeMargins; + > & { XpNft: string } & GetFeeMargins & BalanceCheck; export type AlgorandParams = { algodApiKey: string; @@ -338,6 +338,12 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { claimNft, optInNft, isOptIn, + async balance(address) { + const acc = await algod.accountInformation(address).do().catch(() => undefined); + if (!acc) return new BigNumber(0); + + return new BigNumber(acc.amount); + }, async preTransfer(sender, nft, fee) { if (await isOptIn(appAddr, nft.native.nftId)) { return undefined; From 4d5e122538dadb4ca9b10470810f540ab59531a5 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 15 May 2022 19:41:39 +0530 Subject: [PATCH 514/956] factory: add method for balance check --- src/factory/index.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 41beddd6d..4d40c0a45 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -35,6 +35,7 @@ import algosdk from "algosdk"; import { Base64 } from "js-base64"; import { TezosParams } from "../helpers/tezos"; import { + BalanceCheck, EstimateTxFeesBatch, FeeMargins, GetFeeMargins, @@ -81,6 +82,13 @@ export type ChainFactory = { * this is checked regardless before using any bridge related function(e.g transferNft) is called */ bridgeStatus(): Promise<{ [chainNonce: number]: "alive" | "dead" }>; + /** + * Check the balance of an account + * + * @param inner The chain to check the balance in + * @param address address of the account + */ + balance(inner: BalanceCheck, address: string): Promise; /** * Transfers the NFT from one chain to other. * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. @@ -492,6 +500,7 @@ export function ChainFactory( return { getVerifiedContracts, + balance: (i, a) => i.balance(a), async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { type Result = ReturnType; let result: Result[] = []; From 39d18a8297f1aef72d694dd747cc0720fc2281c3 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 16 May 2022 20:00:07 +0530 Subject: [PATCH 515/956] factory: algoOptInCheck: add check for tezos --- src/factory/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 4d40c0a45..528a5b64a 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -477,6 +477,7 @@ export function ChainFactory( toChain: FullChain, receiver: string ) { + if ("meta" in (nft.native as Record)) return; const nftDat = await axios.get(nft.uri); if (nftDat.data.wrapped.origin == Chain.ALGORAND.toString() && ("isOptIn" in toChain) && From 652ee8b98244de5dc831c63adba00646e8e5d9ee Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 17 May 2022 18:20:54 +0530 Subject: [PATCH 516/956] configs: mainnet: update nft index token --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 5cf827c41..942172c5d 100644 --- a/src/config.ts +++ b/src/config.ts @@ -6,7 +6,7 @@ export namespace AppConfigs { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", nftListUri: "https://indexnft.herokuapp.com", nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTYzODk2MjMzOCwiZXhwIjoxNjQ2NzM4MzM4fQ.9eQMNMtt-P6myPlji7nBC9PAwTftd0qQvwnIZSt4ycM4E45NpzCF0URsdYj_YN_xqQKQpcHiZu1o4EXjJa_-Zw", + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", txSocketUri: "https://transaction-socket.xp.network", tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", From 95a30eed527ab35d9a13f6b28341e356ee279ba4 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 18 May 2022 22:52:47 +0530 Subject: [PATCH 517/956] factory: move sc-verify to appConfig --- src/config.ts | 2 ++ src/factory/index.ts | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 942172c5d..32d25b27c 100644 --- a/src/config.ts +++ b/src/config.ts @@ -11,6 +11,7 @@ export namespace AppConfigs { tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", wrappedNftPrefix: "https://nft.xp.network/w/", + scVerifyUri: "https://sc-verify.xp.network", network: "mainnet" }; }; @@ -24,6 +25,7 @@ export namespace AppConfigs { tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", + scVerifyUri: "https://sc-verify.xp.network", network: "testnet" }; }; diff --git a/src/factory/index.ts b/src/factory/index.ts index 528a5b64a..73a68414e 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -272,6 +272,7 @@ export interface AppConfig { nftListAuthToken: string; tronScanUri: string; wrappedNftPrefix: string; + scVerifyUri: string; network: "testnet" | "mainnet"; } @@ -494,7 +495,7 @@ export function ChainFactory( fc: number ): Promise { const res = await axios.get<{ data: { to: string }[] }>( - `https://sc-verify.xp.network/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}` + `${appConfig.scVerifyUri}/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}` ); return res.data.data.map((r) => r.to); } From 293e4e055aae0ad7e0e7df268fbbfdca16001d32 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 19 May 2022 11:43:41 +0300 Subject: [PATCH 518/956] update sc-verify address for testnet --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 32d25b27c..efda6c420 100644 --- a/src/config.ts +++ b/src/config.ts @@ -25,7 +25,7 @@ export namespace AppConfigs { tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", - scVerifyUri: "https://sc-verify.xp.network", + scVerifyUri: "https://testnet-sc-verify.herokuapp.com", network: "testnet" }; }; From 02fae7f3b220f12e2591d7a18ddc564319b873f2 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 19 May 2022 11:48:15 +0300 Subject: [PATCH 519/956] update to v3.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c6d4aa571..8572bf2bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "3.0.1", + "version": "3.0.2", "author": "xp-network ", "main": "dist/index.js", "types": "dist/index.d.ts", From 91783cb8615534eddfd65c6eb1f3c9bd6d0450a3 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 19 May 2022 12:32:11 +0300 Subject: [PATCH 520/956] fix repo address --- README.md | 38 ++++++++++++++++++++------------------ package.json | 7 ++++--- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 23b6e28c2..291c5c4ad 100644 --- a/README.md +++ b/README.md @@ -71,24 +71,26 @@ import { ChainParams } from "xp.network"; -// Instantiate the chain factory for the -// Connecting to the mainnnets of all the blockchains: -const mainnetConfig = await ChainFactoryConfigs.MainNet() -const mainnetFactory: ChainFactory = ChainFactory( - AppConfigs.MainNet(), - mainnetConfig -); - -// Connecting to the testnets of all the blockchains: -const testnetConfig = await ChainFactoryConfigs.TestNet(); -const testnetFactory: ChainFactory = ChainFactory( - AppConfigs.TestNet(), - testnetConfig -); - -// Switching between the mainnets & the testnets: -const factory: ChainFactory = mainnetFactory; -const CONFIG: Partial = mainnetConfig; +(async () => { + // Instantiate the chain factory for the + // Connecting to the mainnnets of all the blockchains: + const mainnetConfig = await ChainFactoryConfigs.MainNet() + const mainnetFactory: ChainFactory = ChainFactory( + AppConfigs.MainNet(), + mainnetConfig + ); + + // Connecting to the testnets of all the blockchains: + const testnetConfig = await ChainFactoryConfigs.TestNet(); + const testnetFactory: ChainFactory = ChainFactory( + AppConfigs.TestNet(), + testnetConfig + ); + + // Switching between the mainnets & the testnets: + const factory: ChainFactory = mainnetFactory; + const CONFIG: Partial = mainnetConfig; +})(); ```

diff --git a/package.json b/package.json index 8572bf2bf..9888557b7 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,14 @@ { "name": "xp.network", - "version": "3.0.2", - "author": "xp-network ", + "version": "3.0.3", + "author": "xp-network ", + "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", "types": "dist/index.d.ts", "license": "MIT", "repository": { "type": "git", - "url": "https://github.com/xp-network/bridge-ui-logics.git" + "url": "https://github.com/XP-NETWORK/xpjs" }, "scripts": { "build": "tsc -p tsconfig.json", From f0f07ef16120196a890fb9f58d459c9043ce683a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 23 May 2022 19:16:49 +0530 Subject: [PATCH 521/956] web3: add txn underpriced fix to approval as well --- src/helpers/web3.ts | 152 ++++++++++++++++++++++++++------------------ 1 file changed, 90 insertions(+), 62 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index b2273cff0..8e97b1a51 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -197,7 +197,12 @@ type NftMethodVal = { minterAddr: string, tok: string ) => Promise; - approve: (umt: T, forAddr: string, tok: string) => Promise; + approve: ( + umt: T, + forAddr: string, + tok: string, + txnUp: (tx: PopulatedTransaction) => Promise + ) => Promise; }; type EthNftMethodVal = NftMethodVal; @@ -215,8 +220,15 @@ export const NFT_METHOD_MAP: NftMethodMap = { approved: (umt: Erc1155Minter, sender: string, minterAddr: string) => { return umt.isApprovedForAll(sender, minterAddr); }, - approve: (umt: Erc1155Minter, forAddr: string) => { - return umt.setApprovalForAll(forAddr, true); + approve: async ( + umt: Erc1155Minter, + forAddr: string, + _tok: string, + txnUp: (tx: PopulatedTransaction) => Promise + ) => { + const tx = await umt.populateTransaction.setApprovalForAll(forAddr, true); + await txnUp(tx); + return await umt.signer.sendTransaction(tx); }, }, ERC721: { @@ -231,8 +243,15 @@ export const NFT_METHOD_MAP: NftMethodMap = { ) => { return (await umt.getApproved(tok)) == minterAddr; }, - approve: (umt: UserNftMinter, forAddr: string, tok: string) => { - return umt.approve(forAddr, tok); + approve: async ( + umt: UserNftMinter, + forAddr: string, + tok: string, + txnUp: (tx: PopulatedTransaction) => Promise + ) => { + const tx = await umt.populateTransaction.approve(forAddr, tok); + await txnUp(tx); + return await umt.signer.sendTransaction(tx); }, }, }; @@ -243,19 +262,19 @@ export async function web3HelperFactory( const txnUnderpricedPolyWorkaround = params.nonce == 7 ? async (utx: PopulatedTransaction) => { - const res = await axios.get( - 'https://gasstation-mainnet.matic.network/v2' - ); - const { fast } = res.data; - if (fast) { - const sixtyGwei = ethers.utils.parseUnits( - Math.ceil(fast.maxFee).toString(), - 'gwei' + const res = await axios.get( + "https://gasstation-mainnet.matic.network/v2" ); - utx.maxFeePerGas = sixtyGwei; - utx.maxPriorityFeePerGas = sixtyGwei; + const { fast } = res.data; + if (fast) { + const sixtyGwei = ethers.utils.parseUnits( + Math.ceil(fast.maxFee).toString(), + "gwei" + ); + utx.maxFeePerGas = sixtyGwei; + utx.maxPriorityFeePerGas = sixtyGwei; + } } - } : () => Promise.resolve(); const w3 = params.provider; const { minter_addr, provider } = params; @@ -329,7 +348,8 @@ export async function web3HelperFactory( const receipt = await NFT_METHOD_MAP[id.native.contractType].approve( erc as any, minter_addr, - id.native.tokenId + id.native.tokenId, + txnUnderpricedPolyWorkaround ); await receipt.wait(); return receipt.hash; @@ -388,18 +408,20 @@ export async function web3HelperFactory( return TransactionStatus.UNKNOWN; }, async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { - const tx = await minter.connect(signer).populateTransaction.withdrawNftBatch( - to, - chainNonce, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - nfts[0].native.contract, - { - value: EthBN.from(txFees.toString()), - } - ); - await txnUnderpricedPolyWorkaround(tx) - const res = await signer.sendTransaction(tx) + const tx = await minter + .connect(signer) + .populateTransaction.withdrawNftBatch( + to, + chainNonce, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + nfts[0].native.contract, + { + value: EthBN.from(txFees.toString()), + } + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); // await notifyValidator( // res.hash, @@ -423,20 +445,22 @@ export async function web3HelperFactory( mintWith, txFees ) { - const tx = await minter.connect(signer).populateTransaction.freezeErc1155Batch( - nfts[0].native.contract, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - chainNonce, - to, - mintWith, - { - value: EthBN.from(txFees.toString()), - } - ); - await txnUnderpricedPolyWorkaround(tx) + const tx = await minter + .connect(signer) + .populateTransaction.freezeErc1155Batch( + nfts[0].native.contract, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + chainNonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString()), + } + ); + await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx) + const res = await signer.sendTransaction(tx); await notifyValidator(res.hash); @@ -469,21 +493,20 @@ export async function web3HelperFactory( const tx = await minter .connect(sender) - .populateTransaction - [method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - { - value: EthBN.from(txFees.toString(10)), - gasLimit - } - ); - await txnUnderpricedPolyWorkaround(tx) + .populateTransaction[method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString(10)), + gasLimit, + } + ); + await txnUnderpricedPolyWorkaround(tx); - const txr = await sender.sendTransaction(tx) + const txr = await sender.sendTransaction(tx); await notifyValidator( txr.hash, @@ -509,13 +532,18 @@ export async function web3HelperFactory( ): Promise { const txn = await minter .connect(sender) - .populateTransaction - .withdrawNft(to, nonce, id.native.tokenId, id.native.contract, { - value: EthBN.from(txFees.toString(10)), - }); + .populateTransaction.withdrawNft( + to, + nonce, + id.native.tokenId, + id.native.contract, + { + value: EthBN.from(txFees.toString(10)), + } + ); - await txnUnderpricedPolyWorkaround(txn) - const res = await sender.sendTransaction(txn) + await txnUnderpricedPolyWorkaround(txn); + const res = await sender.sendTransaction(txn); await notifyValidator( res.hash, From 96ef9570b0ab9dca6bcdbf5c6230dc97d02b49dd Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 23 May 2022 23:38:43 +0530 Subject: [PATCH 522/956] initial secretjs bringup --- package.json | 1 + src/consts.ts | 14 +++- src/helpers/secret.ts | 147 +++++++++++++++++++++++++++++++++ src/notifier/index.ts | 3 + yarn.lock | 187 ++++++++++++++++++++++++++++++++++++++++-- 5 files changed, 344 insertions(+), 8 deletions(-) create mode 100644 src/helpers/secret.ts diff --git a/package.json b/package.json index c6d4aa571..1b6883b68 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", "ethers": "^5.5.4", "js-base64": "^3.6.1", + "secretjs": "^1.3.0-beta.1", "socket.io-client": "^4.1.3", "tronstation": "^1.0.1", "tronweb": "^4.1.0", diff --git a/src/consts.ts b/src/consts.ts index e4909dee3..e49947480 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -13,6 +13,7 @@ import { } from "./helpers/algorand"; import { TezosHelper, tezosHelperFactory, TezosParams } from "./helpers/tezos"; import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; +import { SecretHelper, secretHelperFactory, SecretParams } from "./helpers/secret"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -67,6 +68,7 @@ type Web3Meta = [Web3Helper, Web3Params]; type TronMeta = [TronHelper, TronParams]; type AlgoMeta = [AlgorandHelper, AlgorandParams]; type TezosMeta = [TezosHelper, TezosParams]; +type SecretMeta = [SecretHelper, SecretParams]; // Static Assert to Ensure all values of Chain are in MetaMap type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; @@ -93,7 +95,7 @@ export type MetaMap = { 0x15: Web3Meta; 0x16: Web3Meta; 0x17: Web3Meta; - // 0x18 Reserved + 0x18: SecretMeta; 0x19: Web3Meta; } & MetaMapAssert; @@ -119,7 +121,7 @@ export namespace Chain { export const AURORA = 0x15; // 21 export const GODWOKEN = 0x16; // 22 export const GATECHAIN = 0x17; // 23 - // 0x18 Reserved + export const SECRET = 0x18; export const VECHAIN = 0x19; // 25 } @@ -334,3 +336,11 @@ CHAIN_INFO.set(Chain.VECHAIN, { decimals: 1e18, chainId: 39, }); +CHAIN_INFO.set(Chain.SECRET, { + name: "Secret", + blockExplorerUrl: "", // TODO + constructor: secretHelperFactory, + nonce: Chain.SECRET, + currency: SupportedCurrency.ETH, // TODO + decimals: 1e6, +}); diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts new file mode 100644 index 000000000..eea86b631 --- /dev/null +++ b/src/helpers/secret.ts @@ -0,0 +1,147 @@ +import BigNumber from "bignumber.js"; +import { Bech32, SecretNetworkClient } from "secretjs"; +import { EvNotifier } from "../notifier"; +import { BalanceCheck, ChainNonceGet, EstimateTxFees, NftInfo, PreTransfer, TransferNftForeign, UnfreezeForeignNft, ValidateAddress } from "./chain"; + +export type SecretNftInfo = { + contract: string; + contractHash: string; + token_id: string; +}; + +type SecretSigner = SecretNetworkClient; + +export type SecretHelper = TransferNftForeign< + SecretSigner, + SecretNftInfo, + string +> & + UnfreezeForeignNft & + ValidateAddress & + EstimateTxFees & + ChainNonceGet & + PreTransfer & + BalanceCheck; + +export type SecretContract = { + contractAddress: string, + codeHash: string +}; + +export type SecretParams = { + rpcUrl: string, + chainId: string, + notifier: EvNotifier, + bridge: SecretContract, + xpnft: SecretContract +} + +// TODO +const TRANSFER_GASL = new BigNumber(0); + +// TODO +const UNFREEZE_GASL = new BigNumber(0); + +export async function secretHelperFactory(p: SecretParams): Promise { + const queryClient = await SecretNetworkClient.create({ + grpcWebUrl: p.rpcUrl, + chainId: p.chainId + }); + + // TODO + const gasPrice = 1; + + async function preTransfer(sender: SecretSigner, nft: NftInfo) { + // TODO: check if approved + const res = await sender.tx.compute.executeContract({ + sender: sender.address, + contractAddress: nft.native.contract, + codeHash: nft.native.contractHash, + msg: { + approve: { + spender: p.bridge.contractAddress, + token_id: nft.native.token_id, + } + } + }); + + return res.transactionHash; + } + + return { + getNonce: () => 0x18, + balance: async (address) => { + const b = await queryClient.query.bank.balance({ + address, + denom: 'uscrt' + }); + + return new BigNumber(b.balance?.amount || 0) + }, + validateAddress: async (a) => { + try { + Bech32.decode(a) + return true; + } catch { + return false; + } + }, + estimateValidateTransferNft: async () => { + return TRANSFER_GASL.times(gasPrice); + }, + estimateValidateUnfreezeNft: async () => { + return UNFREEZE_GASL.times(gasPrice); + }, + preTransfer, + preUnfreeze: preTransfer, + transferNftToForeign: async (wallet, chainNonce, to, nft, fee, mw) => { + const tx = await wallet.tx.compute.executeContract({ + sender: wallet.address, + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, + msg: { + freeze_nft: { + contract: nft.native.contract, + contract_hash: nft.native.contractHash, + token_id: nft.native.token_id, + to, + chain_nonce: chainNonce, + minter: mw + } + }, + sentFunds: [{ + denom: 'uscrt', + amount: fee.toString(10) + }] + }, { waitForCommit: true }); + + await p.notifier.notifySecret(tx.transactionHash); + + return tx.transactionHash; + }, + unfreezeWrappedNft: async (wallet, to, nft, fee, chainNonce) => { + const tx = await wallet.tx.compute.executeContract({ + sender: wallet.address, + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, + msg: { + withdraw_nft: { + burner: nft.native.contract, + burner_hash: nft.native.contractHash, + token_id: nft.native.token_id, + to, + chain_nonce: chainNonce + } + }, + sentFunds: [{ + denom: 'uscrt', + amount: fee.toString(10) + }] + }, { waitForCommit: true }); + + await p.notifier.notifySecret(tx.transactionHash); + + return tx.transactionHash; + } + } +} \ No newline at end of file diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 665ae2e12..d72352445 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -63,5 +63,8 @@ export function evNotifier(url: string) { tx_hash: txHash, }); }, + async notifySecret(_: string) { + throw Error("unimplemented!") + } }; } diff --git a/yarn.lock b/yarn.lock index 0f45b3c21..2a200a54c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -58,6 +58,22 @@ dependencies: regenerator-runtime "^0.13.4" +"@cosmjs/encoding@0.27.1": + version "0.27.1" + resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.27.1.tgz#3cd5bc0af743485eb2578cdb08cfa84c86d610e1" + integrity sha512-rayLsA0ojHeniaRfWWcqSsrE/T1rl1gl0OXVNtXlPwLJifKBeLEefGbOUiAQaT0wgJ8VNGBazVtAZBpJidfDhw== + dependencies: + base64-js "^1.3.0" + bech32 "^1.1.4" + readonly-date "^1.0.0" + +"@cosmjs/math@0.27.1": + version "0.27.1" + resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.27.1.tgz#be78857b008ffc6b1ed6fecaa1c4cd5bc38c07d7" + integrity sha512-cHWVjmfIjtRc7f80n7x+J5k8pe+vTVTQ0lA82tIxUgqUvgS6rogPP/TmGtTiZ4+NxWxd11DUISY6gVpr18/VNQ== + dependencies: + bn.js "^5.2.0" + "@elrondnetwork/bls-wasm@0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@elrondnetwork/bls-wasm/-/bls-wasm-0.3.3.tgz#5164a95f39727c53dba877bf43c0374bca9f01eb" @@ -1212,6 +1228,18 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== +"@improbable-eng/grpc-web-node-http-transport@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz#5a064472ef43489cbd075a91fb831c2abeb09d68" + integrity sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA== + +"@improbable-eng/grpc-web@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz#3e47e9fdd90381a74abd4b7d26e67422a2a04bef" + integrity sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg== + dependencies: + browser-headers "^0.4.1" + "@json-rpc-tools/types@^1.7.6": version "1.7.6" resolved "https://registry.yarnpkg.com/@json-rpc-tools/types/-/types-1.7.6.tgz#5abd5fde01364a130c46093b501715bcce5bdc0e" @@ -1340,6 +1368,16 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.0.tgz#c012c1ecc1a0e53d50e6af381618dca5268461c1" integrity sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw== +"@noble/hashes@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.0.0.tgz#d5e38bfbdaba174805a4e649f13be9a9ed3351ae" + integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== + +"@noble/secp256k1@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.5.2.tgz#40399e4fba54f588fda14fc03a4499044fdcab24" + integrity sha512-5mzA40W2q55VCRuC9XzmkiEnODdY0c5a7qsK2QcOfI5/MuVQyBaWGQyE6YOEF7kDwp+tDVWGsCDVJUME+wsWWw== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1770,11 +1808,21 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.2.tgz#655432817f83b51ac869c2d51dd8305fb8342e16" integrity sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw== +"@types/node@10.12.18": + version "10.12.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" + integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== + "@types/node@11.11.6": version "11.11.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== +"@types/node@>=13.7.0": + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.35.tgz#635b7586086d51fb40de0a2ec9d1014a5283ba4a" + integrity sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg== + "@types/node@^10.3.2": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -2464,7 +2512,7 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-js@^1.3.1: +base64-js@^1.3.0, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -2476,11 +2524,16 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bech32@1.1.4: +bech32@1.1.4, bech32@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== +bech32@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" + integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== + before-after-hook@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" @@ -2500,6 +2553,11 @@ bignumber.js@9.0.1, bignumber.js@=9.0.1, bignumber.js@^9.0.0, bignumber.js@^9.0. resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== +bignumber.js@9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" + integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + bignumber.js@^7.2.1: version "7.2.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" @@ -2510,7 +2568,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: +bindings@^1.3.0, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -2522,6 +2580,19 @@ bip32-path@^0.4.2: resolved "https://registry.yarnpkg.com/bip32-path/-/bip32-path-0.4.2.tgz#5db0416ad6822712f077836e2557b8697c0c7c99" integrity sha1-XbBBataCJxLwd4NuJVe4aXwMfJk= +bip32@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/bip32/-/bip32-2.0.6.tgz#6a81d9f98c4cd57d05150c60d8f9e75121635134" + integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA== + dependencies: + "@types/node" "10.12.18" + bs58check "^2.1.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + tiny-secp256k1 "^1.1.3" + typeforce "^1.11.5" + wif "^2.0.6" + bip39@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.2.tgz#2baf42ff3071fc9ddd5103de92e8f80d9257ee32" @@ -2532,7 +2603,7 @@ bip39@3.0.2: pbkdf2 "^3.0.9" randombytes "^2.0.1" -bip39@^3.0.4: +bip39@3.0.4, bip39@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== @@ -2586,7 +2657,7 @@ bn.js@4.11.8: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.9, bn.js@^4.4.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -2650,6 +2721,11 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browser-headers@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" + integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== + browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -2711,7 +2787,7 @@ bs58@^4.0.0: dependencies: base-x "^3.0.2" -bs58check@^2.1.2: +bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== @@ -3117,6 +3193,11 @@ crypto-js@^4.1.1: resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== +curve25519-js@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/curve25519-js/-/curve25519-js-0.0.4.tgz#e6ad967e8cd284590d657bbfc90d8b50e49ba060" + integrity sha512-axn2UMEnkhyDUPWOwVKBMVIzSQy2ejH2xRGy1wq81dqRwApXfIzfbE3hIX0ZRFBIihf/KDqK158DLwESu4AK1w== + d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -4619,6 +4700,11 @@ is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-gzip@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-2.0.0.tgz#f4fed2bbd9f96bf2cb39e19262797fdb15aad933" + integrity sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA== + is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" @@ -5122,6 +5208,11 @@ minizlib@^1.3.3: dependencies: minipass "^2.9.0" +miscreant@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/miscreant/-/miscreant-0.3.2.tgz#a91c046566cca70bd6b5e9fbdd3f67617fa85034" + integrity sha512-fL9KxsQz9BJB2KGPMHFrReioywkiomBiuaLk6EuChijK0BsJsIKJXdVomR+/bPj5mvbFD6wM0CM3bZio9g7OHA== + mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" @@ -5206,6 +5297,11 @@ multihashes@^0.4.15, multihashes@~0.4.15: multibase "^0.7.0" varint "^5.0.0" +nan@^2.13.2: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + nano-json-stream-parser@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" @@ -5482,6 +5578,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pako@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" + integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -5669,6 +5770,25 @@ protobufjs@6.10.2: "@types/node" "^13.7.0" long "^4.0.0" +protobufjs@6.11.2: + version "6.11.2" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b" + integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -5843,6 +5963,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +readonly-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/readonly-date/-/readonly-date-1.0.0.tgz#5af785464d8c7d7c40b9d738cbde8c646f97dcd9" + integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ== + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -6019,6 +6144,33 @@ secp256k1@^4.0.1: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" +secretjs@^1.3.0-beta.1: + version "1.3.0-beta.1" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.3.0-beta.1.tgz#a432082f8e1d582997a4d09abd47be6688db7d88" + integrity sha512-g0NgleCWvKKzQg3uFygbV8S39VXTXHHzENdCjtp/PrMHB1aXA64hEMUjcZTJrXyLEe1NC2gTZksPnYgAhFA/vg== + dependencies: + "@cosmjs/encoding" "0.27.1" + "@cosmjs/math" "0.27.1" + "@improbable-eng/grpc-web" "0.15.0" + "@improbable-eng/grpc-web-node-http-transport" "0.15.0" + "@noble/hashes" "1.0.0" + "@noble/secp256k1" "1.5.2" + bech32 "2.0.0" + bignumber.js "9.0.2" + bip32 "2.0.6" + bip39 "3.0.4" + curve25519-js "0.0.4" + is-gzip "2.0.0" + miscreant "0.3.2" + pako "2.0.4" + protobufjs "6.11.2" + secure-random "1.1.2" + +secure-random@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/secure-random/-/secure-random-1.1.2.tgz#ed103b460a851632d420d46448b2a900a41e7f7c" + integrity sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ== + semver@7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" @@ -6480,6 +6632,17 @@ timed-out@^4.0.0, timed-out@^4.0.1: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= +tiny-secp256k1@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz#7e224d2bee8ab8283f284e40e6b4acb74ffe047c" + integrity sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA== + dependencies: + bindings "^1.3.0" + bn.js "^4.11.8" + create-hmac "^1.1.7" + elliptic "^6.4.0" + nan "^2.13.2" + to-readable-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" @@ -6626,6 +6789,11 @@ typedoc@^0.22.6: minimatch "^3.0.4" shiki "^0.9.11" +typeforce@^1.11.5: + version "1.18.0" + resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== + typescript-compiler@^1.4.1-2: version "1.4.1-2" resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f" @@ -7124,6 +7292,13 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2 || 3 || 4" +wif@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + integrity sha1-CNP1IFbGZnkplyb63g1DKudLRwQ= + dependencies: + bs58check "<3.0.0" + word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" From 73f12cb69f91249e001dba74e8478a5c5f298f1e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 24 May 2022 17:24:23 +0530 Subject: [PATCH 523/956] add a pre commit hook for prettier --- .husky/pre-commit | 4 + .vscode/settings.json | 4 +- README.md | 178 ++++++++++++++++---------------- package.json | 5 +- src/config.ts | 8 +- src/consts.ts | 6 +- src/factory/factories.ts | 2 +- src/factory/index.ts | 42 ++++---- src/helpers/algorand.ts | 14 ++- src/helpers/bridge_pool.teal.ts | 2 +- src/helpers/chain.ts | 6 +- src/helpers/elrond.ts | 4 +- src/helpers/secret.ts | 136 ++++++++++++++---------- src/helpers/tezos.ts | 17 +-- src/helpers/tron.ts | 4 +- src/helpers/web3.ts | 120 +++++++++++---------- src/notifier/index.ts | 4 +- src/scripts/deploy_tron.ts | 4 +- yarn.lock | 116 ++++++++++++++++++++- 19 files changed, 421 insertions(+), 255 deletions(-) create mode 100755 .husky/pre-commit diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 000000000..0da96d6ba --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx pretty-quick --staged diff --git a/.vscode/settings.json b/.vscode/settings.json index 55712c19f..25fa6215f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,3 @@ { - "typescript.tsdk": "node_modules/typescript/lib" -} \ No newline at end of file + "typescript.tsdk": "node_modules/typescript/lib" +} diff --git a/README.md b/README.md index 23b6e28c2..e33fda8a8 100644 --- a/README.md +++ b/README.md @@ -64,26 +64,26 @@ yarn add "git+https://github.com/xp-network/xpjs#bleeding-edge" @elrondnetwork/e ```javascript import { - ChainFactoryConfigs, - ChainFactory, - Chain, - AppConfigs, - ChainParams + ChainFactoryConfigs, + ChainFactory, + Chain, + AppConfigs, + ChainParams, } from "xp.network"; // Instantiate the chain factory for the // Connecting to the mainnnets of all the blockchains: -const mainnetConfig = await ChainFactoryConfigs.MainNet() +const mainnetConfig = await ChainFactoryConfigs.MainNet(); const mainnetFactory: ChainFactory = ChainFactory( - AppConfigs.MainNet(), - mainnetConfig + AppConfigs.MainNet(), + mainnetConfig ); // Connecting to the testnets of all the blockchains: const testnetConfig = await ChainFactoryConfigs.TestNet(); const testnetFactory: ChainFactory = ChainFactory( - AppConfigs.TestNet(), - testnetConfig + AppConfigs.TestNet(), + testnetConfig ); // Switching between the mainnets & the testnets: @@ -101,6 +101,7 @@ Avoid using 3.1 setup in production. Use it for initial or backend testing only.
Add your private key to the environment: + ```bash touch .env echo "SK=" >> .env @@ -120,27 +121,28 @@ const signer = new Wallet( CONFIG.polygonParams?.provider ); ``` +
-|Chain|Parameters|Chain Nonce| -| :-: | :-: |:-:| -| Elrond | elrondParams |2| -| BSC | bscParams |4| -| Ethereum | ropstenParams |5| -| Avalanche | avalancheParams |6| -| Polygon | polygonParams |7| -| Fantom | fantomParams |8| -| Tron | tronParams |9| -| Harmony | harmonyParams |12| -| xDai | xDaiParams |14| -|Algorand|algorandParams|15| -|Fuse|fuseParams|16| -|Tezos|tezosParams|18| -|Velas|velasParams|19| -|Aurora|auroraParams|21| -|Godwoken|godwokenParams|22| -|Gatechain|gatechainParams|23| -|VeChain|vechainParams|25| +| Chain | Parameters | Chain Nonce | +| :-------: | :-------------: | :---------: | +| Elrond | elrondParams | 2 | +| BSC | bscParams | 4 | +| Ethereum | ropstenParams | 5 | +| Avalanche | avalancheParams | 6 | +| Polygon | polygonParams | 7 | +| Fantom | fantomParams | 8 | +| Tron | tronParams | 9 | +| Harmony | harmonyParams | 12 | +| xDai | xDaiParams | 14 | +| Algorand | algorandParams | 15 | +| Fuse | fuseParams | 16 | +| Tezos | tezosParams | 18 | +| Velas | velasParams | 19 | +| Aurora | auroraParams | 21 | +| Godwoken | godwokenParams | 22 | +| Gatechain | gatechainParams | 23 | +| VeChain | vechainParams | 25 |

@@ -190,14 +192,14 @@ const algorandSigner = typedAlgoSigner(); import { TempleWallet } from "@temple-wallet/dapp"; (async () => { try { - const available = await TempleWallet.isAvailable(); - if (!available) { - throw new Error("Temple Wallet is not installed"); - } - const tezosSigner = new TempleWallet("bridge.xp.network"); - } catch (error) { - console.error("Error:", error); + const available = await TempleWallet.isAvailable(); + if (!available) { + throw new Error("Temple Wallet is not installed"); } + const tezosSigner = new TempleWallet("bridge.xp.network"); + } catch (error) { + console.error("Error:", error); + } })(); ``` @@ -211,27 +213,27 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor ```javascript (async () => { -// Inner Object ================================ Chain Nonce - const bsc = await factory.inner(Chain.BSC); // 4 - const ethereum = await factory.inner(Chain.ETHEREUM); // 5 - const avax = await factory.inner(Chain.AVALANCHE); // 6 - const polygon = await factory.inner(Chain.POLYGON); // 7 - const fantom = await factory.inner(Chain.FANTOM); // 8 - const harmony = await factory.inner(Chain.HARMONY); // 12 - const gnosis = await factory.inner(Chain.XDAI); // 14 - const fuse = await factory.inner(Chain.FUSE); // 16 - const velas = await factory.inner(Chain.VELAS); // 19 - const aurora = await factory.inner(Chain.AURORA); // 21 - const godwoken = await factory.inner(Chain.GODWOKEN); // 22 - const gatechain = await factory.inner(Chain.GATECHAIN); // 23 - const vechain = await factory.inner(Chain.VECHAIN); // 25 - - // Non-EVM chains: - // Inner Object ================================ Chain Nonce - const elrond = await factory.inner(Chain.ELROND); // 2 - const tron = await factory.inner(Chain.TRON); // 9 - const algorand = await factory.inner(Chain.ALGORAND); // 15 - const tezos = await factory.inner(Chain.TEZOS); // 18 + // Inner Object ================================ Chain Nonce + const bsc = await factory.inner(Chain.BSC); // 4 + const ethereum = await factory.inner(Chain.ETHEREUM); // 5 + const avax = await factory.inner(Chain.AVALANCHE); // 6 + const polygon = await factory.inner(Chain.POLYGON); // 7 + const fantom = await factory.inner(Chain.FANTOM); // 8 + const harmony = await factory.inner(Chain.HARMONY); // 12 + const gnosis = await factory.inner(Chain.XDAI); // 14 + const fuse = await factory.inner(Chain.FUSE); // 16 + const velas = await factory.inner(Chain.VELAS); // 19 + const aurora = await factory.inner(Chain.AURORA); // 21 + const godwoken = await factory.inner(Chain.GODWOKEN); // 22 + const gatechain = await factory.inner(Chain.GATECHAIN); // 23 + const vechain = await factory.inner(Chain.VECHAIN); // 25 + + // Non-EVM chains: + // Inner Object ================================ Chain Nonce + const elrond = await factory.inner(Chain.ELROND); // 2 + const tron = await factory.inner(Chain.TRON); // 9 + const algorand = await factory.inner(Chain.ALGORAND); // 15 + const tezos = await factory.inner(Chain.TEZOS); // 18 })(); ``` @@ -373,38 +375,38 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); ```json { - "name": "DRVR NOT LVR", - "description": "Cliff Blank | Community Pool Drop\n\nWe would need a license to love, there would be fewer lines, fewer misunderstandings but definitely more accidents. \nThe arteries of our heart would be 4 lanes so that we could reach love in a short time. Of course, there could always be works and exits closed but at least we would have fewer surprises and we would react accordingly, choosing another exit or deciding to continue on our way.", - "decimals": 0, - "isBooleanAmount": true, - "image": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", - "artifactUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", - "wrapped": { - "contract": "0x1BFb3FbCf1ce331B7AAE03a3c0Bf3AcF685F4bD6", - "tokenId": "10", - "contractType": 721, - "origin": "14", - "original_uri": "https://ipfs.infura.io/ipfs/QmdtemgadGPgWSn9Lq1RvQn4Q2ofEpRNr7ox8oMyNWJ9ma", - "mint_with": "0x3a1d5a87c5f0c2f5c5e079b0f234d8797ee0e9b4", - "source_mint_ident": "0x1BFb3FbCf1ce331B7AAE03a3c0Bf3AcF685F4bD6" + "name": "DRVR NOT LVR", + "description": "Cliff Blank | Community Pool Drop\n\nWe would need a license to love, there would be fewer lines, fewer misunderstandings but definitely more accidents. \nThe arteries of our heart would be 4 lanes so that we could reach love in a short time. Of course, there could always be works and exits closed but at least we would have fewer surprises and we would react accordingly, choosing another exit or deciding to continue on our way.", + "decimals": 0, + "isBooleanAmount": true, + "image": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", + "artifactUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", + "wrapped": { + "contract": "0x1BFb3FbCf1ce331B7AAE03a3c0Bf3AcF685F4bD6", + "tokenId": "10", + "contractType": 721, + "origin": "14", + "original_uri": "https://ipfs.infura.io/ipfs/QmdtemgadGPgWSn9Lq1RvQn4Q2ofEpRNr7ox8oMyNWJ9ma", + "mint_with": "0x3a1d5a87c5f0c2f5c5e079b0f234d8797ee0e9b4", + "source_mint_ident": "0x1BFb3FbCf1ce331B7AAE03a3c0Bf3AcF685F4bD6" + }, + "attributes": [ + { + "trait_type": "Original Chain", + "value": "xDai" }, - "attributes": [ - { - "trait_type": "Original Chain", - "value": "xDai" - }, - { - "trait_type": "Original Chain Nonce", - "value": "14" - }, - { - "trait_type": "Original URI", - "value": "https://ipfs.infura.io/ipfs/QmdtemgadGPgWSn9Lq1RvQn4Q2ofEpRNr7ox8oMyNWJ9ma" - } - ], - "displayUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", - "thumbnailUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", - "ipfs": false + { + "trait_type": "Original Chain Nonce", + "value": "14" + }, + { + "trait_type": "Original URI", + "value": "https://ipfs.infura.io/ipfs/QmdtemgadGPgWSn9Lq1RvQn4Q2ofEpRNr7ox8oMyNWJ9ma" + } + ], + "displayUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", + "thumbnailUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", + "ipfs": false } ``` diff --git a/package.json b/package.json index 1b6883b68..fe669b962 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ }, "scripts": { "build": "tsc -p tsconfig.json", - "format": "prettier . --write" + "format": "prettier . --write", + "prepare": "husky install" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^4.31.0", @@ -21,7 +22,9 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-functional": "^3.2.1", + "husky": "^8.0.0", "prettier": "^2.3.2", + "pretty-quick": "^3.1.3", "typedoc": "^0.22.6", "typescript": "^4.3.5" }, diff --git a/src/config.ts b/src/config.ts index 32d25b27c..894090393 100644 --- a/src/config.ts +++ b/src/config.ts @@ -11,8 +11,8 @@ export namespace AppConfigs { tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", wrappedNftPrefix: "https://nft.xp.network/w/", - scVerifyUri: "https://sc-verify.xp.network", - network: "mainnet" + scVerifyUri: "https://sc-verify.xp.network", + network: "mainnet", }; }; export const TestNet: () => AppConfig = () => { @@ -25,8 +25,8 @@ export namespace AppConfigs { tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", - scVerifyUri: "https://sc-verify.xp.network", - network: "testnet" + scVerifyUri: "https://sc-verify.xp.network", + network: "testnet", }; }; } diff --git a/src/consts.ts b/src/consts.ts index e49947480..f075e96a7 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -13,7 +13,11 @@ import { } from "./helpers/algorand"; import { TezosHelper, tezosHelperFactory, TezosParams } from "./helpers/tezos"; import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; -import { SecretHelper, secretHelperFactory, SecretParams } from "./helpers/secret"; +import { + SecretHelper, + secretHelperFactory, + SecretParams, +} from "./helpers/secret"; // All the supported testnet uri's are here. export enum TestNetRpcUri { diff --git a/src/factory/factories.ts b/src/factory/factories.ts index bd6e3ef08..603125132 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -251,7 +251,7 @@ export namespace ChainFactoryConfigs { export const MainNet: () => Promise> = async () => { const feeMargin = { min: 1, max: 5 }; const notifier = evNotifier(middleware_uri); - + // VeChain related: const net = new SimpleNet(TestNetRpcUri.VECHAIN); const driver = await Driver.connect(net); diff --git a/src/factory/index.ts b/src/factory/index.ts index 73a68414e..5c2ba8e6c 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -84,7 +84,7 @@ export type ChainFactory = { bridgeStatus(): Promise<{ [chainNonce: number]: "alive" | "dead" }>; /** * Check the balance of an account - * + * * @param inner The chain to check the balance in * @param address address of the account */ @@ -221,10 +221,7 @@ export type ChainFactory = { nft: NftInfo ): Promise; - isWrappedNft( - nft: NftInfo, - fromChain: number - ): Promise; + isWrappedNft(nft: NftInfo, fromChain: number): Promise; }; /** @@ -480,11 +477,14 @@ export function ChainFactory( ) { if ("meta" in (nft.native as Record)) return; const nftDat = await axios.get(nft.uri); - if (nftDat.data.wrapped.origin == Chain.ALGORAND.toString() && - ("isOptIn" in toChain) && - !await (toChain as AlgorandHelper).isOptIn( - receiver, parseInt(nftDat.data.wrapped.assetID) - )) { + if ( + nftDat.data.wrapped.origin == Chain.ALGORAND.toString() && + "isOptIn" in toChain && + !(await (toChain as AlgorandHelper).isOptIn( + receiver, + parseInt(nftDat.data.wrapped.assetID) + )) + ) { throw Error("receiver hasn't opted-in to wrapped nft"); } } @@ -626,16 +626,16 @@ export function ChainFactory( const mw = "contract" in nft.native && - mintWith && - checkMintWith( - mintWith, - await getVerifiedContracts( - //@ts-expect-error contract is checked - nft.native.contract.toLowerCase(), - toChain.getNonce(), - fromChain.getNonce() - ) + mintWith && + checkMintWith( + mintWith, + await getVerifiedContracts( + //@ts-expect-error contract is checked + nft.native.contract.toLowerCase(), + toChain.getNonce(), + fromChain.getNonce() ) + ) ? mintWith : toChain.XpNft; @@ -645,7 +645,7 @@ export function ChainFactory( if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); - console.log(new BigNumber(fee).toString()) + console.log(new BigNumber(fee).toString()); } if (!(await toChain.validateAddress(receiver))) { throw Error("invalid address"); @@ -708,7 +708,7 @@ export function ChainFactory( return await chain.isNftWhitelisted(nft); }, - isWrappedNft + isWrappedNft, }; } /** diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 1c89245b5..48ab23c17 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -138,7 +138,8 @@ export type AlgorandHelper = ChainNonceGet & } & Pick< PreTransfer, "preTransfer" - > & { XpNft: string } & GetFeeMargins & BalanceCheck; + > & { XpNft: string } & GetFeeMargins & + BalanceCheck; export type AlgorandParams = { algodApiKey: string; @@ -339,7 +340,10 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { optInNft, isOptIn, async balance(address) { - const acc = await algod.accountInformation(address).do().catch(() => undefined); + const acc = await algod + .accountInformation(address) + .do() + .catch(() => undefined); if (!acc) return new BigNumber(0); return new BigNumber(acc.amount); @@ -459,12 +463,14 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { .catch(() => undefined); if (assetRes == undefined) return []; const assetInfo = assetRes.asset; - const bal = await indexer.lookupAssetBalances(nftId) + const bal = await indexer + .lookupAssetBalances(nftId) .currencyGreaterThan(0) .currencyLessThan(2) .limit(1) .do(); - if (bal.balances[0].address == owner || bal.balances[0].amount == 0) return []; + if (bal.balances[0].address == owner || bal.balances[0].amount == 0) + return []; return [ { diff --git a/src/helpers/bridge_pool.teal.ts b/src/helpers/bridge_pool.teal.ts index 6c780f28d..2988ce9df 100644 --- a/src/helpers/bridge_pool.teal.ts +++ b/src/helpers/bridge_pool.teal.ts @@ -62,4 +62,4 @@ intc_0 // 1 return main_l6: intc_0 // 1 -return` \ No newline at end of file +return`; diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 7e3e0f9b8..d61026a46 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -46,7 +46,7 @@ export interface TransferNftForeign { id: NftInfo, txFees: BigNumber, mintWith: string, - gasLimit? : ethers.BigNumberish | undefined + gasLimit?: ethers.BigNumberish | undefined ): Promise; } @@ -186,4 +186,6 @@ export interface FeeMargins { max: number; } -export interface GetFeeMargins { getFeeMargin(): FeeMargins } \ No newline at end of file +export interface GetFeeMargins { + getFeeMargin(): FeeMargins; +} diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 0c35bf713..401cece2f 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -555,7 +555,7 @@ export async function elrondHelperFactory( return wallet.balance.valueOf(); }, getFeeMargin() { - return elrondParams.feeMargin + return elrondParams.feeMargin; }, async extractTxnStatus(txn) { const status = await provider.getTransactionStatus( @@ -609,7 +609,7 @@ export async function elrondHelperFactory( txFees: EasyBalance, nonce ): Promise { - console.log(`Unfreezing`) + console.log(`Unfreezing`); const txu = unsignedUnfreezeNftTxn( await getAddress(sender), to, diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index eea86b631..3bc7a1590 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,7 +1,16 @@ import BigNumber from "bignumber.js"; import { Bech32, SecretNetworkClient } from "secretjs"; import { EvNotifier } from "../notifier"; -import { BalanceCheck, ChainNonceGet, EstimateTxFees, NftInfo, PreTransfer, TransferNftForeign, UnfreezeForeignNft, ValidateAddress } from "./chain"; +import { + BalanceCheck, + ChainNonceGet, + EstimateTxFees, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "./chain"; export type SecretNftInfo = { contract: string; @@ -24,17 +33,17 @@ export type SecretHelper = TransferNftForeign< BalanceCheck; export type SecretContract = { - contractAddress: string, - codeHash: string + contractAddress: string; + codeHash: string; }; export type SecretParams = { - rpcUrl: string, - chainId: string, - notifier: EvNotifier, - bridge: SecretContract, - xpnft: SecretContract -} + rpcUrl: string; + chainId: string; + notifier: EvNotifier; + bridge: SecretContract; + xpnft: SecretContract; +}; // TODO const TRANSFER_GASL = new BigNumber(0); @@ -42,16 +51,21 @@ const TRANSFER_GASL = new BigNumber(0); // TODO const UNFREEZE_GASL = new BigNumber(0); -export async function secretHelperFactory(p: SecretParams): Promise { +export async function secretHelperFactory( + p: SecretParams +): Promise { const queryClient = await SecretNetworkClient.create({ grpcWebUrl: p.rpcUrl, - chainId: p.chainId + chainId: p.chainId, }); // TODO const gasPrice = 1; - async function preTransfer(sender: SecretSigner, nft: NftInfo) { + async function preTransfer( + sender: SecretSigner, + nft: NftInfo + ) { // TODO: check if approved const res = await sender.tx.compute.executeContract({ sender: sender.address, @@ -61,8 +75,8 @@ export async function secretHelperFactory(p: SecretParams): Promise { const b = await queryClient.query.bank.balance({ address, - denom: 'uscrt' + denom: "uscrt", }); - return new BigNumber(b.balance?.amount || 0) + return new BigNumber(b.balance?.amount || 0); }, validateAddress: async (a) => { try { - Bech32.decode(a) + Bech32.decode(a); return true; } catch { return false; - } + } }, estimateValidateTransferNft: async () => { return TRANSFER_GASL.times(gasPrice); @@ -95,53 +109,63 @@ export async function secretHelperFactory(p: SecretParams): Promise { - const tx = await wallet.tx.compute.executeContract({ - sender: wallet.address, - contractAddress: p.bridge.contractAddress, - codeHash: p.bridge.codeHash, - msg: { - freeze_nft: { - contract: nft.native.contract, - contract_hash: nft.native.contractHash, - token_id: nft.native.token_id, - to, - chain_nonce: chainNonce, - minter: mw - } + const tx = await wallet.tx.compute.executeContract( + { + sender: wallet.address, + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, + msg: { + freeze_nft: { + contract: nft.native.contract, + contract_hash: nft.native.contractHash, + token_id: nft.native.token_id, + to, + chain_nonce: chainNonce, + minter: mw, + }, + }, + sentFunds: [ + { + denom: "uscrt", + amount: fee.toString(10), + }, + ], }, - sentFunds: [{ - denom: 'uscrt', - amount: fee.toString(10) - }] - }, { waitForCommit: true }); + { waitForCommit: true } + ); await p.notifier.notifySecret(tx.transactionHash); return tx.transactionHash; }, unfreezeWrappedNft: async (wallet, to, nft, fee, chainNonce) => { - const tx = await wallet.tx.compute.executeContract({ - sender: wallet.address, - contractAddress: p.bridge.contractAddress, - codeHash: p.bridge.codeHash, - msg: { - withdraw_nft: { - burner: nft.native.contract, - burner_hash: nft.native.contractHash, - token_id: nft.native.token_id, - to, - chain_nonce: chainNonce - } + const tx = await wallet.tx.compute.executeContract( + { + sender: wallet.address, + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, + msg: { + withdraw_nft: { + burner: nft.native.contract, + burner_hash: nft.native.contractHash, + token_id: nft.native.token_id, + to, + chain_nonce: chainNonce, + }, + }, + sentFunds: [ + { + denom: "uscrt", + amount: fee.toString(10), + }, + ], }, - sentFunds: [{ - denom: 'uscrt', - amount: fee.toString(10) - }] - }, { waitForCommit: true }); + { waitForCommit: true } + ); await p.notifier.notifySecret(tx.transactionHash); return tx.transactionHash; - } - } -} \ No newline at end of file + }, + }; +} diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 6d67fbf54..ff7e76a04 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -69,7 +69,7 @@ export type TezosParams = { xpnftAddress: string; bridgeAddress: string; validators: string[]; - feeMargin: FeeMargins + feeMargin: FeeMargins; }; export async function tezosHelperFactory({ @@ -78,7 +78,7 @@ export async function tezosHelperFactory({ xpnftAddress, bridgeAddress, validators, - feeMargin + feeMargin, }: TezosParams): Promise { const estimateGas = (validators: string[], baseprice: number) => { return new BigNumber(baseprice * (validators.length + 1)); @@ -196,7 +196,7 @@ export async function tezosHelperFactory({ return { XpNft: xpnftAddress, async transferNftToForeign(sender, chain, to, nft, fee, mw) { - await preTransfer(sender, nft) + await preTransfer(sender, nft); const hash = await withBridge( sender, (bridge) => @@ -205,7 +205,7 @@ export async function tezosHelperFactory({ nft.collectionIdent, mw, to, - parseInt(nft.native.token_id), + parseInt(nft.native.token_id) ), { amount: fee.toNumber() / 1e6 } ); @@ -220,7 +220,12 @@ export async function tezosHelperFactory({ const hash = await withBridge( sender, (bridge) => { - return bridge.methods.withdraw_nft(nft.native.contract, nonce, to, parseInt(nft.native.token_id)) + return bridge.methods.withdraw_nft( + nft.native.contract, + nonce, + to, + parseInt(nft.native.token_id) + ); }, { amount: fee.toNumber() / 1e6 } ); @@ -250,7 +255,7 @@ export async function tezosHelperFactory({ return Chain.TEZOS; }, getFeeMargin() { - return feeMargin + return feeMargin; }, async estimateValidateTransferNft() { return estimateGas(validators, 1.2e5); diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 0bd2cfc4e..a126b5bb6 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -205,7 +205,7 @@ export interface TronParams { minter_addr: string; erc721_addr: string; validators: string[]; - feeMargin: FeeMargins + feeMargin: FeeMargins; } export interface TronRawTxn { @@ -355,7 +355,7 @@ export async function tronHelperFactory( extractAction, XpNft: tronParams.erc721_addr, getFeeMargin() { - return tronParams.feeMargin + return tronParams.feeMargin; }, approveForMinter, preTransfer: (s, nft, _fee) => approveForMinter(nft, s), diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index b2273cff0..8e09acd15 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -243,19 +243,19 @@ export async function web3HelperFactory( const txnUnderpricedPolyWorkaround = params.nonce == 7 ? async (utx: PopulatedTransaction) => { - const res = await axios.get( - 'https://gasstation-mainnet.matic.network/v2' - ); - const { fast } = res.data; - if (fast) { - const sixtyGwei = ethers.utils.parseUnits( - Math.ceil(fast.maxFee).toString(), - 'gwei' + const res = await axios.get( + "https://gasstation-mainnet.matic.network/v2" ); - utx.maxFeePerGas = sixtyGwei; - utx.maxPriorityFeePerGas = sixtyGwei; + const { fast } = res.data; + if (fast) { + const sixtyGwei = ethers.utils.parseUnits( + Math.ceil(fast.maxFee).toString(), + "gwei" + ); + utx.maxFeePerGas = sixtyGwei; + utx.maxPriorityFeePerGas = sixtyGwei; + } } - } : () => Promise.resolve(); const w3 = params.provider; const { minter_addr, provider } = params; @@ -388,18 +388,20 @@ export async function web3HelperFactory( return TransactionStatus.UNKNOWN; }, async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { - const tx = await minter.connect(signer).populateTransaction.withdrawNftBatch( - to, - chainNonce, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - nfts[0].native.contract, - { - value: EthBN.from(txFees.toString()), - } - ); - await txnUnderpricedPolyWorkaround(tx) - const res = await signer.sendTransaction(tx) + const tx = await minter + .connect(signer) + .populateTransaction.withdrawNftBatch( + to, + chainNonce, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + nfts[0].native.contract, + { + value: EthBN.from(txFees.toString()), + } + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); // await notifyValidator( // res.hash, @@ -423,20 +425,22 @@ export async function web3HelperFactory( mintWith, txFees ) { - const tx = await minter.connect(signer).populateTransaction.freezeErc1155Batch( - nfts[0].native.contract, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - chainNonce, - to, - mintWith, - { - value: EthBN.from(txFees.toString()), - } - ); - await txnUnderpricedPolyWorkaround(tx) + const tx = await minter + .connect(signer) + .populateTransaction.freezeErc1155Batch( + nfts[0].native.contract, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + chainNonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString()), + } + ); + await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx) + const res = await signer.sendTransaction(tx); await notifyValidator(res.hash); @@ -469,21 +473,20 @@ export async function web3HelperFactory( const tx = await minter .connect(sender) - .populateTransaction - [method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - { - value: EthBN.from(txFees.toString(10)), - gasLimit - } - ); - await txnUnderpricedPolyWorkaround(tx) + .populateTransaction[method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString(10)), + gasLimit, + } + ); + await txnUnderpricedPolyWorkaround(tx); - const txr = await sender.sendTransaction(tx) + const txr = await sender.sendTransaction(tx); await notifyValidator( txr.hash, @@ -509,13 +512,18 @@ export async function web3HelperFactory( ): Promise { const txn = await minter .connect(sender) - .populateTransaction - .withdrawNft(to, nonce, id.native.tokenId, id.native.contract, { - value: EthBN.from(txFees.toString(10)), - }); + .populateTransaction.withdrawNft( + to, + nonce, + id.native.tokenId, + id.native.contract, + { + value: EthBN.from(txFees.toString(10)), + } + ); - await txnUnderpricedPolyWorkaround(txn) - const res = await sender.sendTransaction(txn) + await txnUnderpricedPolyWorkaround(txn); + const res = await sender.sendTransaction(txn); await notifyValidator( res.hash, diff --git a/src/notifier/index.ts b/src/notifier/index.ts index d72352445..40fd962f4 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -64,7 +64,7 @@ export function evNotifier(url: string) { }); }, async notifySecret(_: string) { - throw Error("unimplemented!") - } + throw Error("unimplemented!"); + }, }; } diff --git a/src/scripts/deploy_tron.ts b/src/scripts/deploy_tron.ts index 37882b01e..8169bb09a 100644 --- a/src/scripts/deploy_tron.ts +++ b/src/scripts/deploy_tron.ts @@ -5,7 +5,6 @@ import { config } from "dotenv"; config(); (async () => { - // Testnet // const api = "https://api.shasta.trongrid.io"; // const signer = process.env.TRON_SK!; @@ -29,7 +28,6 @@ config(); xpnftWrappedUri, xpnft1155WrappedUri ); - - console.log(contracts); + console.log(contracts); })().catch((e) => console.error(e)); diff --git a/yarn.lock b/yarn.lock index 2a200a54c..ddcf4282a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1803,6 +1803,11 @@ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== +"@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + "@types/node@*": version "16.3.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.2.tgz#655432817f83b51ac869c2d51dd8305fb8342e16" @@ -2381,6 +2386,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -2401,6 +2411,11 @@ array.prototype.flatmap@^1.2.4: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -2900,6 +2915,14 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" @@ -3151,7 +3174,7 @@ cross-domain-utils@^2, cross-domain-utils@^2.0.0: dependencies: zalgo-promise "^1.0.11" -cross-spawn@^7.0.2: +cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3906,6 +3929,21 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + expand-template@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" @@ -4536,6 +4574,16 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +husky@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" + integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -4766,6 +4814,11 @@ is-stream@^1.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + is-string@^1.0.5, is-string@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" @@ -5094,6 +5147,11 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" @@ -5154,6 +5212,11 @@ mime@^2.4.6: resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -5242,6 +5305,11 @@ mock-fs@^4.1.0: resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== +mri@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -5297,6 +5365,17 @@ multihashes@^0.4.15, multihashes@~0.4.15: multibase "^0.7.0" varint "^5.0.0" +multimatch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + nan@^2.13.2: version "2.15.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" @@ -5400,6 +5479,13 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + npmlog@^4.0.1: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -5499,6 +5585,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + onigasm@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.5.tgz#cc4d2a79a0fa0b64caec1f4c7ea367585a676892" @@ -5631,7 +5724,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -5736,6 +5829,18 @@ prettier@^2.5.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== +pretty-quick@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" + integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== + dependencies: + chalk "^3.0.0" + execa "^4.0.0" + find-up "^4.1.0" + ignore "^5.1.4" + mri "^1.1.5" + multimatch "^4.0.0" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -6295,7 +6400,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -6482,6 +6587,11 @@ strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" From 84a4845819c403a2d8dc224f64921e05e46313f6 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 24 May 2022 17:47:46 +0530 Subject: [PATCH 524/956] notifier: initial scrt impl --- src/notifier/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 40fd962f4..37fe583eb 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -9,7 +9,7 @@ export function evNotifier(url: string) { return { async notifyWeb3( - fromChain: number, + fromChain: number, fromHash: string, actionId?: string, type?: string, @@ -63,8 +63,8 @@ export function evNotifier(url: string) { tx_hash: txHash, }); }, - async notifySecret(_: string) { - throw Error("unimplemented!"); - }, + async notifySecret(txHash: string) { + await api.post("/tx/scrt", { tx_hash: txHash }); + } }; } From 6ba8d65778d68590400a1ffe9d4004865bb7bc35 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 24 May 2022 17:49:23 +0530 Subject: [PATCH 525/956] add secret currency --- package.json | 2 +- src/consts.ts | 2 +- yarn.lock | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index fe669b962..4eaab827b 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "algosdk": "^1.15.0-beta.1", "axios": "^0.21.1", "bignumber.js": "=9.0.1", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", + "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#04867f1773b37f77a1aa3edd7e0562517099c078", "ethers": "^5.5.4", "js-base64": "^3.6.1", "secretjs": "^1.3.0-beta.1", diff --git a/src/consts.ts b/src/consts.ts index f075e96a7..0f73eae9b 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -345,6 +345,6 @@ CHAIN_INFO.set(Chain.SECRET, { blockExplorerUrl: "", // TODO constructor: secretHelperFactory, nonce: Chain.SECRET, - currency: SupportedCurrency.ETH, // TODO + currency: SupportedCurrency.SCRT, decimals: 1e6, }); diff --git a/yarn.lock b/yarn.lock index ddcf4282a..b7c951184 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3205,6 +3205,12 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" +"crypto-exchange-rate@git+https://github.com/XP-NETWORK/exchange-rate#04867f1773b37f77a1aa3edd7e0562517099c078": + version "1.0.0" + resolved "git+https://github.com/XP-NETWORK/exchange-rate#04867f1773b37f77a1aa3edd7e0562517099c078" + dependencies: + axios "^0.21.1" + "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#339fbebceda2cc0b698d67e2b0cb0cba8f362aca" From 975e17cc3a3c68751074124e027c262d72cb5424 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 24 May 2022 17:50:23 +0530 Subject: [PATCH 526/956] add missing peer-dep for secret --- package.json | 1 + yarn.lock | 11 +++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 4eaab827b..335bcb49f 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "bignumber.js": "=9.0.1", "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#04867f1773b37f77a1aa3edd7e0562517099c078", "ethers": "^5.5.4", + "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "secretjs": "^1.3.0-beta.1", "socket.io-client": "^4.1.3", diff --git a/yarn.lock b/yarn.lock index b7c951184..d76362f85 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3211,12 +3211,6 @@ crypto-browserify@3.12.0: dependencies: axios "^0.21.1" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": - version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#339fbebceda2cc0b698d67e2b0cb0cba8f362aca" - dependencies: - axios "^0.21.1" - crypto-js@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" @@ -4370,6 +4364,11 @@ globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" +google-protobuf@^3.20.1: + version "3.20.1" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.20.1.tgz#1b255c2b59bcda7c399df46c65206aa3c7a0ce8b" + integrity sha512-XMf1+O32FjYIV3CYu6Tuh5PNbfNEU5Xu22X+Xkdb/DUexFlCzhvv7d5Iirm4AOwn8lv4al1YvIhzGrg2j9Zfzw== + got@9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" From 3a4f9aedc77dfc1fd5f5fff489231bd56c19e38c Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 26 May 2022 16:14:16 +0300 Subject: [PATCH 527/956] update moralis testnet rpc nodes --- src/consts.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index e4909dee3..4fc8fdff3 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -18,10 +18,10 @@ import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; export enum TestNetRpcUri { ELROND = "https://devnet-api.elrond.com", HECO = "https://http-testnet.hecochain.com", - BSC = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/bsc/testnet/archive", - ROPSTEN = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/eth/ropsten/archive", + BSC = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/bsc/testnet", + ROPSTEN = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/eth/ropsten", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", - POLYGON = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/polygon/mumbai/archive", + POLYGON = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/polygon/mumbai", FANTOM = "https://rpc.testnet.fantom.network/", TRON = "https://api.shasta.trongrid.io/", CELO = "https://alfajores-forno.celo-testnet.org", From 543082fa6b4e593d39ad9869a30ad6c988a149f2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 27 May 2022 17:01:14 +0530 Subject: [PATCH 528/956] secret: fixes for transfer setup --- src/consts.ts | 1 + src/factory/factories.ts | 16 ++++++++++++++++ src/factory/index.ts | 3 +++ src/helpers/secret.ts | 14 +++++++++++++- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 0f73eae9b..4010a1e0d 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -40,6 +40,7 @@ export enum TestNetRpcUri { GODWOKEN = "https://godwoken-testnet-web3-v1-rpc.ckbapp.dev", GATECHAIN = "https://meteora-evm.gatenode.cc", VECHAIN = "https://sync-testnet.veblocks.net", + SECRET = "https://pulsar-2.api.trivium.network:9091/", // TODO: Algorand // TODO: Fuse } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 603125132..050a30990 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -245,6 +245,22 @@ export namespace ChainFactoryConfigs { nonce: Chain.GATECHAIN, feeMargin, }, + secretParams: { + notifier, + rpcUrl: TestNetRpcUri.SECRET, + bridge: { + contractAddress: "secret1l2gjtt209wfgfka25qfh0s0lmgc65tarrhzthg", + codeHash: + "0x99af8844018f3312045149ae3ae45afc25abf9a04f7e79bba2b9c8b925f86fdb", + }, + xpnft: { + contractAddress: "secret1z8avjhhm2kkhpyx3f490y3mngts5hygfx9q65h", + codeHash: + "0x090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", + }, + chainId: "0x18", + feeMargin, + }, }; }; diff --git a/src/factory/index.ts b/src/factory/index.ts index 5c2ba8e6c..fde4173ae 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -51,6 +51,7 @@ import { InferSigner, ParamMap, } from "../type-utils"; +import { SecretParams } from "../helpers/secret"; type FullChain = TransferNftForeign< Signer, @@ -250,6 +251,7 @@ export interface ChainParams { auroraParams: Web3Params; godwokenParams: Web3Params; gateChainParams: Web3Params; + secretParams: SecretParams; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -297,6 +299,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.GODWOKEN, chainParams.godwokenParams); cToP.set(Chain.GATECHAIN, chainParams.gateChainParams); cToP.set(Chain.VECHAIN, chainParams.vechainParams); + cToP.set(Chain.SECRET, chainParams.secretParams); return cToP; } /** diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 3bc7a1590..1c7a25280 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -5,6 +5,9 @@ import { BalanceCheck, ChainNonceGet, EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, NftInfo, PreTransfer, TransferNftForeign, @@ -30,7 +33,8 @@ export type SecretHelper = TransferNftForeign< EstimateTxFees & ChainNonceGet & PreTransfer & - BalanceCheck; + BalanceCheck & + GetFeeMargins & { XpNft: string } & GetProvider; export type SecretContract = { contractAddress: string; @@ -43,6 +47,7 @@ export type SecretParams = { notifier: EvNotifier; bridge: SecretContract; xpnft: SecretContract; + feeMargin: FeeMargins; }; // TODO @@ -83,6 +88,12 @@ export async function secretHelperFactory( } return { + getFeeMargin() { + return p.feeMargin; + }, + getProvider() { + return queryClient; + }, getNonce: () => 0x18, balance: async (address) => { const b = await queryClient.query.bank.balance({ @@ -92,6 +103,7 @@ export async function secretHelperFactory( return new BigNumber(b.balance?.amount || 0); }, + XpNft: `${p.xpnft.contractAddress},${p.xpnft.codeHash}`, validateAddress: async (a) => { try { Bech32.decode(a); From 90f75517fad5a0339df89ce650f42eb9aefe77a1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 27 May 2022 18:34:50 +0530 Subject: [PATCH 529/956] xpjs: fix missing erc1155_addr for chains --- src/factory/factories.ts | 23 ++++++++++++++++++- src/factory/index.ts | 48 ++++++++++++++++++++++------------------ src/helpers/tezos.ts | 17 +++++++++----- src/helpers/tron.ts | 7 ++++-- src/helpers/web3.ts | 3 +++ 5 files changed, 67 insertions(+), 31 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index bd6e3ef08..be8dc62e7 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -64,6 +64,7 @@ export namespace ChainFactoryConfigs { provider, minter_addr: "0x4096e08C5d6270c8cd873daDbEAB575670aad8Bc", erc721_addr: "0x39737B28d02d170Cb7a6141BA55F039104b3Fce9", + erc1155_addr: "0x9Db78e8750de28B0f08F866d6a54FAd34FF19da6", erc721Minter: "0x38d2A286BF1d7567129506527B7ced29bb42772b", erc1155Minter: "0x9Db78e8750de28B0f08F866d6a54FAd34FF19da6", }, @@ -72,6 +73,7 @@ export namespace ChainFactoryConfigs { notifier, minter_addr: "TY46GA3GGdMtu9GMaaSPPSQtqq9CZAv5sK", erc721_addr: "TDhb2kyurMwoc1eMndKzqNebji1ap1DJC4", + erc1155_addr: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", erc1155Minter: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", erc721Minter: "TMVDt5PP53eQro5hLafibv2xWzSSDSMyjy", validators: [ @@ -89,6 +91,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0xE1D8Df2e06797F22e7ce25c95A7ddccb926f8A1E", erc1155Minter: "0xfA9214AEe59a6631A400DC039808457524dE70A2", erc721Minter: "0x54Db938575DD089702822F191AEbB25C2Af7D1Ef", + erc1155_addr: "0xfA9214AEe59a6631A400DC039808457524dE70A2", nonce: Chain.AVALANCHE, feeMargin, }, @@ -98,6 +101,7 @@ export namespace ChainFactoryConfigs { minter_addr: "0x224f78681099D66ceEdf4E52ee62E5a98CCB4b9e", erc721_addr: "0xb678b13E41a47e46A4046a4D8315b32E0F34389c", erc1155Minter: "0x5A768f8dDC67ccCA1431879BcA28E93a6c7722bb", + erc1155_addr: "0xc1D778Ce89154357471bA6c4C6E51f0e590FFe57", erc721Minter: "0x6516E2D3387A9CF4E5e868E7842D110c95A9f3B4", nonce: Chain.POLYGON, feeMargin, @@ -108,6 +112,7 @@ export namespace ChainFactoryConfigs { minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", erc1155Minter: "string", + erc1155_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", erc721Minter: "string", nonce: Chain.FANTOM, feeMargin, @@ -119,6 +124,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x783eF7485DCF27a3Cf59F5A0A406eEe3f9b2AaeB", erc1155Minter: "0x5dA3b7431f4581a7d35aEc2f3429174DC0f2A2E1", erc721Minter: "0x97CD6fD6cbFfaa24f5c858843955C2601cc7F2b9", + erc1155_addr: "0xb5278A4808e2345A3B9d08bAc8909A121aFaEBB3", nonce: Chain.BSC, feeMargin, }, @@ -127,6 +133,7 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", + erc1155_addr: "", erc1155Minter: "string", erc721Minter: "string", nonce: Chain.CELO, @@ -139,6 +146,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x1280c5c11bF0aAaaEAeBc998893B42e08B26fD5A", erc1155Minter: "0xB546c2358A6e4b0B83192cCBB83CaE37FA572fe1", erc721Minter: "0xb036640d6f7cAfd338103dc60493250561Af2eBc", + erc1155_addr: "0x44FCF0001A2B03260e4Bba44AF93a60C64cE79A2", nonce: Chain.HARMONY, feeMargin, }, @@ -148,6 +156,7 @@ export namespace ChainFactoryConfigs { minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + erc1155_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", nonce: Chain.ETHEREUM, feeMargin, @@ -159,6 +168,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + erc1155_addr: "0x1C6d7aa611B30C9C1e5f52068E145b77b0e661b2", nonce: Chain.XDAI, feeMargin, }, @@ -179,6 +189,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "", erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", nonce: Chain.AURORA, feeMargin, @@ -187,6 +198,7 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.UNIQUE), nonce: Chain.UNIQUE, erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc1155_addr: "", minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", erc1155Minter: "string", erc721Minter: "string", @@ -208,6 +220,7 @@ export namespace ChainFactoryConfigs { velasParams: { notifier, erc721_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc1155_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", minter_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", erc1155Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", erc721Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", @@ -220,6 +233,7 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.IOTEX), minter_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", erc721_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", + erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", erc1155Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", nonce: Chain.IOTEX, @@ -230,6 +244,7 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.GODWOKEN), minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", nonce: Chain.GODWOKEN, @@ -240,6 +255,7 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.GATECHAIN), minter_addr: "0x2B24de7BFf5d2ab01b1C53682Ee5987c9BCf1BAc", erc721_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc1155_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", erc721Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", erc1155Minter: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", nonce: Chain.GATECHAIN, @@ -251,7 +267,7 @@ export namespace ChainFactoryConfigs { export const MainNet: () => Promise> = async () => { const feeMargin = { min: 1, max: 5 }; const notifier = evNotifier(middleware_uri); - + // VeChain related: const net = new SimpleNet(TestNetRpcUri.VECHAIN); const driver = await Driver.connect(net); @@ -282,6 +298,7 @@ export namespace ChainFactoryConfigs { provider, minter_addr: "0xE860cef926E5e76E0E88fdc762417a582F849C27", erc721_addr: "0xf0E778BD5C4c2F219A2A5699e3AfD2D82D50E271", + erc1155_addr: "", erc721Minter: "0x6e2B43FeF2E750e1562AC572e60B6C484a027424", erc1155Minter: "0x4E3a506800b894f3d7B46475Ab693DD5a567bB5C", }, @@ -290,6 +307,7 @@ export namespace ChainFactoryConfigs { notifier, minter_addr: "TAncANF5aYbvgXDatmwTdvTa5N9PTrq95k", erc721_addr: "TVdp7szDHg3opRyuciQaJi93LLk7y83hrC", + erc1155_addr: "", erc1155Minter: "TYoj1JVpJt1TAWBFj3GkaKLC2vrcFnjZ1G", erc721Minter: "TPSQTbFWaxiDZbGD7MoqR6N2aWDSWBUNfA", validators: [ @@ -355,6 +373,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "string", erc1155Minter: "string", erc721Minter: "string", + erc1155_addr: "", nonce: Chain.CELO, feeMargin, }, @@ -468,6 +487,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x0000000000000000000000000000000000000000", erc721Minter: "0x0000000000000000000000000000000000000000", erc1155Minter: "0x0000000000000000000000000000000000000000", + erc1155_addr: "", nonce: Chain.GODWOKEN, feeMargin, }, @@ -476,6 +496,7 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.GATECHAIN), minter_addr: "0xFc7f7fD2DBdAF6D8F3ee3f222b3a6a9f89729f05", erc721_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", + erc1155_addr: "", erc1155Minter: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", erc721Minter: "0x0000000000000000000000000000000000000000", nonce: Chain.GATECHAIN, diff --git a/src/factory/index.ts b/src/factory/index.ts index 73a68414e..e57f8d649 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -60,7 +60,7 @@ type FullChain = TransferNftForeign< UnfreezeForeignNft & EstimateTxFees & ChainNonceGet & - ValidateAddress & { XpNft?: string } & GetFeeMargins; + ValidateAddress & { XpNft: string; XpNft1155?: string } & GetFeeMargins; type FullChainBatch = FullChain & TransferNftForeignBatch & @@ -84,7 +84,7 @@ export type ChainFactory = { bridgeStatus(): Promise<{ [chainNonce: number]: "alive" | "dead" }>; /** * Check the balance of an account - * + * * @param inner The chain to check the balance in * @param address address of the account */ @@ -221,10 +221,7 @@ export type ChainFactory = { nft: NftInfo ): Promise; - isWrappedNft( - nft: NftInfo, - fromChain: number - ): Promise; + isWrappedNft(nft: NftInfo, fromChain: number): Promise; }; /** @@ -480,11 +477,14 @@ export function ChainFactory( ) { if ("meta" in (nft.native as Record)) return; const nftDat = await axios.get(nft.uri); - if (nftDat.data.wrapped.origin == Chain.ALGORAND.toString() && - ("isOptIn" in toChain) && - !await (toChain as AlgorandHelper).isOptIn( - receiver, parseInt(nftDat.data.wrapped.assetID) - )) { + if ( + nftDat.data.wrapped.origin == Chain.ALGORAND.toString() && + "isOptIn" in toChain && + !(await (toChain as AlgorandHelper).isOptIn( + receiver, + parseInt(nftDat.data.wrapped.assetID) + )) + ) { throw Error("receiver hasn't opted-in to wrapped nft"); } } @@ -626,17 +626,21 @@ export function ChainFactory( const mw = "contract" in nft.native && - mintWith && - checkMintWith( - mintWith, - await getVerifiedContracts( - //@ts-expect-error contract is checked - nft.native.contract.toLowerCase(), - toChain.getNonce(), - fromChain.getNonce() - ) + mintWith && + checkMintWith( + mintWith, + await getVerifiedContracts( + //@ts-expect-error contract is checked + nft.native.contract.toLowerCase(), + toChain.getNonce(), + fromChain.getNonce() ) + ) ? mintWith + : "contractType" in nft.native && + //@ts-ignore contractType is checked + nft.native.contractType === "ERC1155" + ? toChain.XpNft1155 : toChain.XpNft; if (appConfig.network === "mainnet") { @@ -645,7 +649,7 @@ export function ChainFactory( if (!fee) { fee = await estimateFees(fromChain, toChain, nft, receiver); - console.log(new BigNumber(fee).toString()) + console.log(new BigNumber(fee).toString()); } if (!(await toChain.validateAddress(receiver))) { throw Error("invalid address"); @@ -708,7 +712,7 @@ export function ChainFactory( return await chain.isNftWhitelisted(nft); }, - isWrappedNft + isWrappedNft, }; } /** diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 6d67fbf54..ff7e76a04 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -69,7 +69,7 @@ export type TezosParams = { xpnftAddress: string; bridgeAddress: string; validators: string[]; - feeMargin: FeeMargins + feeMargin: FeeMargins; }; export async function tezosHelperFactory({ @@ -78,7 +78,7 @@ export async function tezosHelperFactory({ xpnftAddress, bridgeAddress, validators, - feeMargin + feeMargin, }: TezosParams): Promise { const estimateGas = (validators: string[], baseprice: number) => { return new BigNumber(baseprice * (validators.length + 1)); @@ -196,7 +196,7 @@ export async function tezosHelperFactory({ return { XpNft: xpnftAddress, async transferNftToForeign(sender, chain, to, nft, fee, mw) { - await preTransfer(sender, nft) + await preTransfer(sender, nft); const hash = await withBridge( sender, (bridge) => @@ -205,7 +205,7 @@ export async function tezosHelperFactory({ nft.collectionIdent, mw, to, - parseInt(nft.native.token_id), + parseInt(nft.native.token_id) ), { amount: fee.toNumber() / 1e6 } ); @@ -220,7 +220,12 @@ export async function tezosHelperFactory({ const hash = await withBridge( sender, (bridge) => { - return bridge.methods.withdraw_nft(nft.native.contract, nonce, to, parseInt(nft.native.token_id)) + return bridge.methods.withdraw_nft( + nft.native.contract, + nonce, + to, + parseInt(nft.native.token_id) + ); }, { amount: fee.toNumber() / 1e6 } ); @@ -250,7 +255,7 @@ export async function tezosHelperFactory({ return Chain.TEZOS; }, getFeeMargin() { - return feeMargin + return feeMargin; }, async estimateValidateTransferNft() { return estimateGas(validators, 1.2e5); diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 0bd2cfc4e..654fd8643 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -94,6 +94,7 @@ export type TronHelper = BaseTronHelper & ExtractTxnStatus & WhitelistCheck & { XpNft: string; + XpNft1155: string; } & GetFeeMargins; export async function baseTronHelperFactory( @@ -204,8 +205,9 @@ export interface TronParams { notifier: EvNotifier; minter_addr: string; erc721_addr: string; + erc1155_addr: string; validators: string[]; - feeMargin: FeeMargins + feeMargin: FeeMargins; } export interface TronRawTxn { @@ -353,9 +355,10 @@ export async function tronHelperFactory( return { ...base, extractAction, + XpNft1155: tronParams.erc721_addr, XpNft: tronParams.erc721_addr, getFeeMargin() { - return tronParams.feeMargin + return tronParams.feeMargin; }, approveForMinter, preTransfer: (s, nft, _fee) => approveForMinter(nft, s), diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 8e97b1a51..ecd976cef 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -130,6 +130,7 @@ export type Web3Helper = BaseWeb3Helper & ExtractTxnStatus & GetProvider & { XpNft: string; + XpNft1155: string; } & WhitelistCheck & GetFeeMargins; @@ -181,6 +182,7 @@ export interface Web3Params { notifier: EvNotifier; minter_addr: string; erc721_addr: string; + erc1155_addr: string; erc721Minter: string; erc1155Minter: string; nonce: ChainNonce; @@ -360,6 +362,7 @@ export async function web3HelperFactory( return { ...base, XpNft: params.erc721_addr, + XpNft1155: params.erc1155_addr, approveForMinter, getProvider: () => provider, async estimateValidateUnfreezeNft(_to, _id, _mW) { From 86604bd8433b11ae19e9d7b12257a975674f524f Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Sun, 29 May 2022 19:34:38 +0300 Subject: [PATCH 530/956] update Godwoken testnet v1.0 -> v1.1 --- package.json | 2 +- src/consts.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9888557b7..381510a9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "3.0.3", + "version": "3.0.7", "author": "xp-network ", "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", diff --git a/src/consts.ts b/src/consts.ts index 4fc8fdff3..4828ebb8f 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -32,7 +32,7 @@ export enum TestNetRpcUri { VELAS = "https://explorer.testnet.velas.com/rpc", IOTEX = "https://babel-api.testnet.iotex.io", AURORA = "https://testnet.aurora.dev/", - GODWOKEN = "https://godwoken-testnet-web3-v1-rpc.ckbapp.dev", + GODWOKEN = "https://godwoken-testnet-v1.ckbapp.dev", GATECHAIN = "https://meteora-evm.gatenode.cc", VECHAIN = "https://sync-testnet.veblocks.net", // TODO: Algorand From 6cf667323af5ba3417ea1eb16e3abab380eca8a1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 31 May 2022 14:42:29 +0530 Subject: [PATCH 531/956] factory: fix hardcoded rpc url for vechain mainnet --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 050a30990..0be4b7592 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -269,7 +269,7 @@ export namespace ChainFactoryConfigs { const notifier = evNotifier(middleware_uri); // VeChain related: - const net = new SimpleNet(TestNetRpcUri.VECHAIN); + const net = new SimpleNet(MainNetRpcUri.VECHAIN); const driver = await Driver.connect(net); const provider = thor.ethers.modifyProvider( //@ts-ignore From 3bf673f96c2d32b49e9696c7747b02201abf730d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 31 May 2022 14:42:29 +0530 Subject: [PATCH 532/956] factory: fix hardcoded rpc url for vechain mainnet --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index be8dc62e7..765f97869 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -269,7 +269,7 @@ export namespace ChainFactoryConfigs { const notifier = evNotifier(middleware_uri); // VeChain related: - const net = new SimpleNet(TestNetRpcUri.VECHAIN); + const net = new SimpleNet(MainNetRpcUri.VECHAIN); const driver = await Driver.connect(net); const provider = thor.ethers.modifyProvider( //@ts-ignore From 37d5514f80c15af66312b1371b9e7e5011c4e6c4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 2 Jun 2022 17:27:24 +0530 Subject: [PATCH 533/956] secret: more fixes --- src/factory/factories.ts | 8 ++++---- src/factory/index.ts | 6 +++++- src/helpers/secret.ts | 29 +++++++++++++++++------------ 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 0be4b7592..d52f08773 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -249,14 +249,14 @@ export namespace ChainFactoryConfigs { notifier, rpcUrl: TestNetRpcUri.SECRET, bridge: { - contractAddress: "secret1l2gjtt209wfgfka25qfh0s0lmgc65tarrhzthg", + contractAddress: "secret1ngxqfwjff25etu26mvqx5erksnwyrf93czy4wm", codeHash: - "0x99af8844018f3312045149ae3ae45afc25abf9a04f7e79bba2b9c8b925f86fdb", + "52c64148569438c2f5b49d09686ffdc3b5b1d07ed7209812a6fbcbaf100a9f82", }, xpnft: { - contractAddress: "secret1z8avjhhm2kkhpyx3f490y3mngts5hygfx9q65h", + contractAddress: "secret10mcn3q2zys2fdfaxlxtu72s5mvjdvcscqqzwfc", codeHash: - "0x090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", + "090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", }, chainId: "0x18", feeMargin, diff --git a/src/factory/index.ts b/src/factory/index.ts index fde4173ae..7154eb825 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -621,7 +621,11 @@ export function ChainFactory( ) => { //@ts-ignore if (nft.native.contract) { - if (fromChain.getNonce() !== 9 && fromChain.getNonce() !== 18) { + if ( + fromChain.getNonce() !== 9 && + fromChain.getNonce() !== 18 && + fromChain.getNonce() !== 24 + ) { //@ts-ignore checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); } diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 1c7a25280..6d84b2d98 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -72,18 +72,23 @@ export async function secretHelperFactory( nft: NftInfo ) { // TODO: check if approved - const res = await sender.tx.compute.executeContract({ - sender: sender.address, - contractAddress: nft.native.contract, - codeHash: nft.native.contractHash, - msg: { - approve: { - spender: p.bridge.contractAddress, - token_id: nft.native.token_id, + const res = await sender.tx.compute.executeContract( + { + sender: sender.address, + contractAddress: nft.native.contract, + codeHash: nft.native.contractHash, + msg: { + approve: { + spender: p.bridge.contractAddress, + token_id: nft.native.token_id, + }, }, }, - }); - + { + waitForCommit: true, + gasLimit: 100_000, + } + ); return res.transactionHash; } @@ -162,7 +167,7 @@ export async function secretHelperFactory( burner_hash: nft.native.contractHash, token_id: nft.native.token_id, to, - chain_nonce: chainNonce, + chain_nonce: Number(chainNonce), }, }, sentFunds: [ @@ -172,7 +177,7 @@ export async function secretHelperFactory( }, ], }, - { waitForCommit: true } + { waitForCommit: true, gasLimit: 100_000 } ); await p.notifier.notifySecret(tx.transactionHash); From c13fafaaaeaa18b9f533c229b587ad7fd964edb4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 3 Jun 2022 16:26:16 +0530 Subject: [PATCH 534/956] factory: secret: update contracts --- src/factory/factories.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d52f08773..62d2801c3 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -26,8 +26,7 @@ import { Framework } from "@vechain/connex-framework"; // ]; const middleware_uri = "https://notifier.xp.network"; -const testnet_middleware_uri = - "https://testnet-notifier.xp.network/notify-test/"; +const testnet_middleware_uri = "http://localhost:5555/"; export namespace ChainFactoryConfigs { export const TestNet: () => Promise> = async () => { @@ -249,12 +248,12 @@ export namespace ChainFactoryConfigs { notifier, rpcUrl: TestNetRpcUri.SECRET, bridge: { - contractAddress: "secret1ngxqfwjff25etu26mvqx5erksnwyrf93czy4wm", + contractAddress: "secret1ecsxtsrct6h647lpztnnzc9e47ezh0uu673c8h", codeHash: - "52c64148569438c2f5b49d09686ffdc3b5b1d07ed7209812a6fbcbaf100a9f82", + "29a127369d1f4326fb684435fde702fa9619c812dfb5b3a1929529bab0e308e0", }, xpnft: { - contractAddress: "secret10mcn3q2zys2fdfaxlxtu72s5mvjdvcscqqzwfc", + contractAddress: "secret1x4afa2shvq4uwwtl0ld8qnjfm3jkmyvap3yn9g", codeHash: "090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", }, From b2f55f4b84405352e2054f44f57ab9db51590d49 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 6 Jun 2022 19:01:33 +0530 Subject: [PATCH 535/956] secret: return whole txn from secret --- src/helpers/secret.ts | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 6d84b2d98..5b90fa62d 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,5 +1,5 @@ import BigNumber from "bignumber.js"; -import { Bech32, SecretNetworkClient } from "secretjs"; +import { Bech32, SecretNetworkClient, Tx } from "secretjs"; import { EvNotifier } from "../notifier"; import { BalanceCheck, @@ -23,12 +23,8 @@ export type SecretNftInfo = { type SecretSigner = SecretNetworkClient; -export type SecretHelper = TransferNftForeign< - SecretSigner, - SecretNftInfo, - string -> & - UnfreezeForeignNft & +export type SecretHelper = TransferNftForeign & + UnfreezeForeignNft & ValidateAddress & EstimateTxFees & ChainNonceGet & @@ -153,7 +149,7 @@ export async function secretHelperFactory( await p.notifier.notifySecret(tx.transactionHash); - return tx.transactionHash; + return tx; }, unfreezeWrappedNft: async (wallet, to, nft, fee, chainNonce) => { const tx = await wallet.tx.compute.executeContract( @@ -182,7 +178,7 @@ export async function secretHelperFactory( await p.notifier.notifySecret(tx.transactionHash); - return tx.transactionHash; + return tx; }, }; } From bbcd399bdbf49015938146caa9ae9fa310e20e37 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 7 Jun 2022 16:01:13 +0530 Subject: [PATCH 536/956] secret: mint transferable nfts only --- src/factory/factories.ts | 5 +++++ src/helpers/secret.ts | 36 ++++++++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 62d2801c3..c84a3ca39 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -257,6 +257,11 @@ export namespace ChainFactoryConfigs { codeHash: "090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", }, + umt: { + contractAddress: "secret1f7lrnmk8gx9d5540dqmdlrg8702hs05tx9ky0k", + codeHash: + "1381c39cf889d52a15b683ffdee18c0785bea3ab0154f8df70c3c9ee6939ea43", + }, chainId: "0x18", feeMargin, }, diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 5b90fa62d..28a5157fa 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,5 +1,6 @@ import BigNumber from "bignumber.js"; import { Bech32, SecretNetworkClient, Tx } from "secretjs"; +import { Snip721MintOptions } from "secretjs/dist/extensions/snip721/types"; import { EvNotifier } from "../notifier"; import { BalanceCheck, @@ -8,6 +9,7 @@ import { FeeMargins, GetFeeMargins, GetProvider, + MintNft, NftInfo, PreTransfer, TransferNftForeign, @@ -20,6 +22,10 @@ export type SecretNftInfo = { contractHash: string; token_id: string; }; +export type SecretMintArgs = { + url: string; + contract?: SecretContract; +}; type SecretSigner = SecretNetworkClient; @@ -30,7 +36,8 @@ export type SecretHelper = TransferNftForeign & ChainNonceGet & PreTransfer & BalanceCheck & - GetFeeMargins & { XpNft: string } & GetProvider; + GetFeeMargins & { XpNft: string } & GetProvider & + MintNft; export type SecretContract = { contractAddress: string; @@ -43,6 +50,7 @@ export type SecretParams = { notifier: EvNotifier; bridge: SecretContract; xpnft: SecretContract; + umt: SecretContract; feeMargin: FeeMargins; }; @@ -104,6 +112,30 @@ export async function secretHelperFactory( return new BigNumber(b.balance?.amount || 0); }, + async mintNft(signer, args) { + const minter = args.contract ? args.contract : p.umt; + const tx = await signer.tx.compute.executeContract( + { + contractAddress: minter.contractAddress, + codeHash: minter.codeHash, + msg: { + mint_nft: { + public_metadata: { + token_uri: args.url, + }, + owner: signer.address, + transferable: true, + }, + } as Snip721MintOptions, + sender: signer.address, + }, + { + waitForCommit: true, + gasLimit: 50_000, + } + ); + return tx; + }, XpNft: `${p.xpnft.contractAddress},${p.xpnft.codeHash}`, validateAddress: async (a) => { try { @@ -144,7 +176,7 @@ export async function secretHelperFactory( }, ], }, - { waitForCommit: true } + { waitForCommit: true, gasLimit: 50_000 } ); await p.notifier.notifySecret(tx.transactionHash); From d61bf06fad475c6f48d7ac842ad5733b23be2bf3 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Tue, 7 Jun 2022 17:42:33 +0300 Subject: [PATCH 537/956] change Algorand SC address v3.0.9 --- package.json | 2 +- src/factory/factories.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 381510a9d..a07d963e5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "3.0.7", + "version": "3.0.9", "author": "xp-network ", "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 765f97869..13da7415d 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -416,7 +416,7 @@ export namespace ChainFactoryConfigs { algodUri: "https://algorand-node.xp.network/", indexerUri: "https://algoexplorerapi.io/idx2", nonce: Chain.ALGORAND, - sendNftAppId: 721832640, + sendNftAppId: 769053604, algodPort: 443, notifier, feeMargin, From 7478d9b42d65ddec10fcd27f992c5b5707d1fbb4 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Tue, 7 Jun 2022 18:14:19 +0300 Subject: [PATCH 538/956] Update factories.ts --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 13da7415d..7a1277a1b 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -414,7 +414,7 @@ export namespace ChainFactoryConfigs { algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", algodUri: "https://algorand-node.xp.network/", - indexerUri: "https://algoexplorerapi.io/idx2", + indexerUri: "https://algoindexer.algoexplorerapi.io", nonce: Chain.ALGORAND, sendNftAppId: 769053604, algodPort: 443, From 73bf54403a72d2a63e80e4864fe8727a16f4f025 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Wed, 8 Jun 2022 14:49:26 +0300 Subject: [PATCH 539/956] fix SC mapping 'from' address --- src/factory/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index e57f8d649..ea448dc83 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -494,8 +494,9 @@ export function ChainFactory( tc: number, fc: number ): Promise { + const _from = ethers.utils.getAddress(from); const res = await axios.get<{ data: { to: string }[] }>( - `${appConfig.scVerifyUri}/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}` + `${appConfig.scVerifyUri}/verify/list?from=${_from}&targetChain=${tc}&fromChain=${fc}` ); return res.data.data.map((r) => r.to); } From 95dacca62728061c3f1c1525c08b7c0e6ecc0eda Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Wed, 8 Jun 2022 15:02:40 +0300 Subject: [PATCH 540/956] update to version 3.0.10 - mappoing from address fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a07d963e5..1ecceade4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "3.0.9", + "version": "3.0.10", "author": "xp-network ", "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", From 32cb6b7f5ea8e27cc365fb04af950fd248117eea Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 9 Jun 2022 17:18:36 +0530 Subject: [PATCH 541/956] factory: secret: update umt --- src/factory/factories.ts | 4 ++-- src/helpers/secret.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index c84a3ca39..28c9ce9ee 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -258,9 +258,9 @@ export namespace ChainFactoryConfigs { "090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", }, umt: { - contractAddress: "secret1f7lrnmk8gx9d5540dqmdlrg8702hs05tx9ky0k", + contractAddress: "secret146snljq0kjsva7qrx4am54nv3fhfaet7srx4n2", codeHash: - "1381c39cf889d52a15b683ffdee18c0785bea3ab0154f8df70c3c9ee6939ea43", + "af076a49141264ec048270318f1358c9be193893c3f829425cab53ee5eb05e5c", }, chainId: "0x18", feeMargin, diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 28a5157fa..44b7808ed 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -176,7 +176,7 @@ export async function secretHelperFactory( }, ], }, - { waitForCommit: true, gasLimit: 50_000 } + { waitForCommit: true, gasLimit: 150_000 } ); await p.notifier.notifySecret(tx.transactionHash); From b5f5126b7e09420a7963d10c95bf819cdefd9528 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 9 Jun 2022 17:42:38 +0530 Subject: [PATCH 542/956] factory: fix testnet middleware uri --- src/factory/factories.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 28c9ce9ee..2d3dc5773 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -26,7 +26,8 @@ import { Framework } from "@vechain/connex-framework"; // ]; const middleware_uri = "https://notifier.xp.network"; -const testnet_middleware_uri = "http://localhost:5555/"; +const testnet_middleware_uri = + "https://testnet-notifier.xp.network/notify-test/"; export namespace ChainFactoryConfigs { export const TestNet: () => Promise> = async () => { From e39ded69b6d4c707d6944c41d6f2d74e1f11f7ee Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 12 Jun 2022 18:18:38 +0530 Subject: [PATCH 543/956] helpers: elrond: add utils for wegld --- src/helpers/elrond.ts | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 0c35bf713..8f6fd7f5b 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -203,7 +203,10 @@ export type ElrondHelper = BalanceCheck & EstimateTxFeesBatch & PreTransferRawTxn & ExtractTxnStatus & - SetESDTRoles & { XpNft: string } & GetFeeMargins; + SetESDTRoles & { XpNft: string } & GetFeeMargins & { + wegldBalance(address: string): Promise; + unwrapWegld(sender: ElrondSigner, amt: BigNumber): Promise; + }; /** * Create an object implementing cross chain utilities for elrond @@ -804,6 +807,30 @@ export async function elrondHelperFactory( return tx; }, + async wegldBalance(addr) { + const esdtInfo = await provider.getAddressEsdt( + new Address(addr), + elrondParams.esdt_swap + ); + + return new BigNumber(esdtInfo.balance); + }, + async unwrapWegld(sender: ElrondSigner, amount: BigNumber) { + const txu = new Transaction({ + receiver: swapContract, + gasLimit: new GasLimit(300500000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTTransfer")) + .addArg(new TokenIdentifierValue(esdtSwaphex)) + .addArg(new U64Value(amount)) + .addArg(new BytesValue(Buffer.from("unwrapEgld"))) + .build() + }); + + const tx = await signAndSend(sender, txu); + + return tx.getHash().toString(); + }, async estimateValidateTransferNftBatch(_, nfts) { return estimateGas(new BigNumber(360000000 + 5000000 * nfts.length)); }, From 2b8b2402701e613b27596729985a60551d8285e1 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Mon, 13 Jun 2022 14:39:44 +0300 Subject: [PATCH 544/956] update @elrondnetwork/erdjs to 9.0.3 --- package.json | 4 ++-- yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 335bcb49f..df227a651 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "3.0.1", + "version": "3.0.11", "author": "xp-network ", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -29,7 +29,7 @@ "typescript": "^4.3.5" }, "dependencies": { - "@elrondnetwork/erdjs": "^9.2.6", + "@elrondnetwork/erdjs": "9.0.3", "@json-rpc-tools/utils": "^1.7.6", "@randlabs/myalgo-connect": "^1.1.1", "@taquito/signer": "^11.1.0", diff --git a/yarn.lock b/yarn.lock index d76362f85..06f50a619 100644 --- a/yarn.lock +++ b/yarn.lock @@ -82,10 +82,10 @@ assert "^2.0.0" perf_hooks "0.0.1" -"@elrondnetwork/erdjs@^9.2.6": - version "9.2.6" - resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-9.2.6.tgz#93a531c13e769146087487256668798348db6468" - integrity sha512-PnjQq3YAq8ggtP6hYnjswMZm9oGQN9CetzDmZow1Gr/nfMZf6Z9IIJjUxgwmnbqTp0B6SlWWoTQ8X6X5/epcbg== +"@elrondnetwork/erdjs@9.0.3": + version "9.0.3" + resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-9.0.3.tgz#3909874096778d75e622d9f3a661ff690f54ec5d" + integrity sha512-xOBzlFXkx2avMFTrZrgKoSSJbBUlZnSobpDaMzs4hqvUYr/xAN2y+nbMFJqaLcfKxf5ALGolnbqhprHLNfWpEQ== dependencies: "@babel/runtime" "7.11.2" "@elrondnetwork/bls-wasm" "0.3.3" From 11bfe7b792f63e8e28e994a12a498b6353c5ac5e Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Mon, 13 Jun 2022 14:47:04 +0300 Subject: [PATCH 545/956] Update release.yml --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5b71cd4e5..e40e7e5ff 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: - name: setup node.js uses: actions/setup-node@v2.4.0 with: - node-version: 14.x + node-version: 16.x cache: yarn cache-dependency-path: yarn.lock From 43eed597320cad827a0e5831676aaaf17c7c20e1 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Mon, 13 Jun 2022 14:49:10 +0300 Subject: [PATCH 546/956] Update release.yml --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e40e7e5ff..7ff613b7f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,8 +19,8 @@ jobs: uses: actions/setup-node@v2.4.0 with: node-version: 16.x - cache: yarn - cache-dependency-path: yarn.lock +# cache: yarn +# cache-dependency-path: yarn.lock - name: dep run: yarn From f500f65db80cdbdf5101bb9b5faf0caa5fa34db9 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Thu, 16 Jun 2022 09:37:13 +0300 Subject: [PATCH 547/956] Update index.ts --- src/factory/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index de6a05ba0..5beabf20a 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -497,13 +497,13 @@ export function ChainFactory( tc: number, fc: number ): Promise { - const _from = ethers.utils.getAddress(from); + try{ const _from = ethers.utils.getAddress(from); const res = await axios.get<{ data: { to: string }[] }>( `${appConfig.scVerifyUri}/verify/list?from=${_from}&targetChain=${tc}&fromChain=${fc}` ); - return res.data.data.map((r) => r.to); + return res.data.data.map((r) => r.to);} + catch()err{} } - return { getVerifiedContracts, balance: (i, a) => i.balance(a), From 7d0c803710785c1ea16c306ee29d16e479317a3e Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Thu, 16 Jun 2022 09:40:09 +0300 Subject: [PATCH 548/956] Update index.ts --- src/factory/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 5beabf20a..391ea2f65 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -502,7 +502,10 @@ export function ChainFactory( `${appConfig.scVerifyUri}/verify/list?from=${_from}&targetChain=${tc}&fromChain=${fc}` ); return res.data.data.map((r) => r.to);} - catch()err{} + catch(err){ + const res = await axios_1.get<{ data: { to: string }[] }>(`${appConfig.scVerifyUri}/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}`); + return res.data.data.map((r) => r.to); + } } return { getVerifiedContracts, From 7debe2b03f8f6eb74dec5b08c57dd0f6b3fafebc Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Thu, 16 Jun 2022 09:45:41 +0300 Subject: [PATCH 549/956] Update index.ts --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 391ea2f65..bc424b0eb 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -503,7 +503,7 @@ export function ChainFactory( ); return res.data.data.map((r) => r.to);} catch(err){ - const res = await axios_1.get<{ data: { to: string }[] }>(`${appConfig.scVerifyUri}/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}`); + const res = await axios.get<{ data: { to: string }[] }>(`${appConfig.scVerifyUri}/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}`); return res.data.data.map((r) => r.to); } } From ded5a6253d03a69f07d32909f7cb28130385299e Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Thu, 16 Jun 2022 11:50:40 +0300 Subject: [PATCH 550/956] Update tezos.ts --- src/helpers/tezos.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index ff7e76a04..ab9c1594d 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -196,7 +196,7 @@ export async function tezosHelperFactory({ return { XpNft: xpnftAddress, async transferNftToForeign(sender, chain, to, nft, fee, mw) { - await preTransfer(sender, nft); +// await preTransfer(sender, nft); const hash = await withBridge( sender, (bridge) => From 00de48498526ab4aa46aa2296c12aeb669c95fe0 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Mon, 20 Jun 2022 16:10:01 +0300 Subject: [PATCH 551/956] Update elrond.ts --- src/helpers/elrond.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index e67f18413..dcb426890 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -274,7 +274,7 @@ export async function elrondHelperFactory( } else if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); } else { - await (signer as ISigner).sign(tx); + await (signer as ISigner).signTransaction(tx) stx = tx; } try { From 6f9093f1a5c89db0eac52a84b27d3ea1e4c5b5a0 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Mon, 20 Jun 2022 16:14:22 +0300 Subject: [PATCH 552/956] Update elrond.ts --- src/helpers/elrond.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index dcb426890..43c1ff3d1 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -274,7 +274,7 @@ export async function elrondHelperFactory( } else if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); } else { - await (signer as ISigner).signTransaction(tx) + await (signer as ISigner).sign(tx) stx = tx; } try { From b02f361f26fe4608a188a8856f876f7dfb94e779 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 23 Jun 2022 17:48:30 +0300 Subject: [PATCH 553/956] elrond maiar extension signer fix --- src/helpers/elrond.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 43c1ff3d1..dc3fd7599 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -274,8 +274,9 @@ export async function elrondHelperFactory( } else if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); } else { - await (signer as ISigner).sign(tx) - stx = tx; + //@ts-ignore + stx = await (signer as ISigner).signTransaction(tx); + //stx = tx; } try { await stx.send(provider); From 0836b95ff1ccd5a828ac698129976d8bc96c765a Mon Sep 17 00:00:00 2001 From: rupansh Date: Sat, 25 Jun 2022 16:21:33 +0530 Subject: [PATCH 554/956] initial solana bringup --- package.json | 5 +- src/consts.ts | 13 + src/helpers/idl/xp_bridge.ts | 918 +++++++++++++++++++++++++++++++++++ src/helpers/solana.ts | 187 +++++++ src/type-utils.ts | 4 + yarn.lock | 521 +++++++++++++++++++- 6 files changed, 1627 insertions(+), 21 deletions(-) create mode 100644 src/helpers/idl/xp_bridge.ts create mode 100644 src/helpers/solana.ts diff --git a/package.json b/package.json index 76dcd11bb..a7c5f1656 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,10 @@ "dependencies": { "@elrondnetwork/erdjs": "9.0.3", "@json-rpc-tools/utils": "^1.7.6", + "@project-serum/anchor": "^0.25.0-beta.1", "@randlabs/myalgo-connect": "^1.1.1", + "@solana/spl-token": "^0.2.0", + "@solana/web3.js": "^1.44.2", "@taquito/signer": "^11.1.0", "@taquito/taquito": "^11.1.0", "@taquito/tzip12": "^11.1.0", @@ -43,7 +46,7 @@ "algosdk": "^1.15.0-beta.1", "axios": "^0.21.1", "bignumber.js": "=9.0.1", - "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#04867f1773b37f77a1aa3edd7e0562517099c078", + "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#ae839df99ed55c3670b47dbaaa0503425e2d17e8", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/src/consts.ts b/src/consts.ts index 79f1c8868..fb759097f 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -18,6 +18,7 @@ import { secretHelperFactory, SecretParams, } from "./helpers/secret"; +import { solanaHelper, SolanaHelper, SolanaParams } from "./helpers/solana"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -74,6 +75,7 @@ type TronMeta = [TronHelper, TronParams]; type AlgoMeta = [AlgorandHelper, AlgorandParams]; type TezosMeta = [TezosHelper, TezosParams]; type SecretMeta = [SecretHelper, SecretParams]; +type SolanaMeta = [SolanaHelper, SolanaParams]; // Static Assert to Ensure all values of Chain are in MetaMap type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; @@ -102,6 +104,7 @@ export type MetaMap = { 0x17: Web3Meta; 0x18: SecretMeta; 0x19: Web3Meta; + 0x1a: SolanaMeta; } & MetaMapAssert; export namespace Chain { @@ -128,6 +131,8 @@ export namespace Chain { export const GATECHAIN = 0x17; // 23 export const SECRET = 0x18; export const VECHAIN = 0x19; // 25 + export const SOLANA = 0x1a; + // 0x1b => TON } interface ChainData { @@ -349,3 +354,11 @@ CHAIN_INFO.set(Chain.SECRET, { currency: SupportedCurrency.SCRT, decimals: 1e6, }); +CHAIN_INFO.set(Chain.SOLANA, { + name: "Solana", + blockExplorerUrl: "", // TODO + constructor: solanaHelper, + nonce: Chain.SOLANA, + currency: SupportedCurrency.SOL, + decimals: 1e9, +}); diff --git a/src/helpers/idl/xp_bridge.ts b/src/helpers/idl/xp_bridge.ts new file mode 100644 index 000000000..270ce27e1 --- /dev/null +++ b/src/helpers/idl/xp_bridge.ts @@ -0,0 +1,918 @@ +import { Idl } from "@project-serum/anchor"; +import { Mutable } from "../../type-utils"; + +const val = { + version: "0.1.0", + name: "xp_bridge", + instructions: [ + { + name: "initialize", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "costInLamports", + type: "u64", + }, + { + name: "groupKey", + type: { + array: ["u8", 32], + }, + }, + ], + }, + { + name: "createAction", + accounts: [ + { + name: "action", + isMut: true, + isSigner: true, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "action", + type: "u64", + }, + ], + }, + { + name: "validatePause", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "action", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "PauseData", + }, + }, + ], + }, + { + name: "validateUnpause", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "action", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UnpauseData", + }, + }, + ], + }, + { + name: "validateWithdrawFees", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "action", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "WithdrawFeesData", + }, + }, + ], + }, + { + name: "validateUpdateGroupkey", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "action", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UpdateGroupkeyData", + }, + }, + ], + }, + { + name: "validateTransferNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "payer", + isMut: true, + isSigner: true, + }, + { + name: "authority", + isMut: false, + isSigner: false, + }, + { + name: "mint", + isMut: true, + isSigner: false, + }, + { + name: "tokenAccount", + isMut: true, + isSigner: false, + }, + { + name: "metadataAccount", + isMut: true, + isSigner: false, + }, + { + name: "editionAccount", + isMut: true, + isSigner: false, + }, + { + name: "metadataProgram", + isMut: false, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "rent", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + { + name: "action", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "TransferNftData", + }, + }, + ], + }, + { + name: "withdrawNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "authority", + isMut: true, + isSigner: true, + }, + { + name: "mint", + isMut: true, + isSigner: false, + }, + { + name: "tokenAccount", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "chainNonce", + type: "u8", + }, + { + name: "to", + type: "string", + }, + { + name: "lamports", + type: "u64", + }, + ], + }, + { + name: "freezeNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "authority", + isMut: true, + isSigner: true, + }, + { + name: "from", + isMut: true, + isSigner: false, + }, + { + name: "to", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "chainNonce", + type: "u8", + }, + { + name: "to", + type: "string", + }, + { + name: "lamports", + type: "u64", + }, + { + name: "mintWith", + type: "string", + }, + ], + }, + { + name: "validateUnfreezeNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "from", + isMut: true, + isSigner: false, + }, + { + name: "to", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "action", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "payer", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UnfreezeNftData", + }, + }, + ], + }, + ], + accounts: [ + { + name: "Bridge", + type: { + kind: "struct", + fields: [ + { + name: "paused", + type: "bool", + }, + { + name: "txFees", + type: "u64", + }, + { + name: "costInLamports", + type: "u64", + }, + { + name: "groupKey", + type: { + array: ["u8", 32], + }, + }, + { + name: "actionId", + type: "u128", + }, + ], + }, + }, + { + name: "Action", + type: { + kind: "struct", + fields: [ + { + name: "action", + type: "u64", + }, + ], + }, + }, + { + name: "ConsumedAction", + type: { + kind: "struct", + fields: [ + { + name: "consumed", + type: "bool", + }, + ], + }, + }, + ], + types: [ + { + name: "PauseData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + ], + }, + }, + { + name: "UnpauseData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + ], + }, + }, + { + name: "UpdateGroupkeyData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "newKey", + type: { + array: ["u8", 32], + }, + }, + ], + }, + }, + { + name: "TransferNftData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "chainNonce", + type: "u64", + }, + { + name: "tokenName", + type: "string", + }, + { + name: "tokenSymbol", + type: "string", + }, + { + name: "tokenUri", + type: "string", + }, + { + name: "owner", + type: { + array: ["u8", 32], + }, + }, + ], + }, + }, + { + name: "AnchorDataV2", + type: { + kind: "struct", + fields: [ + { + name: "name", + type: "string", + }, + { + name: "symbol", + type: "string", + }, + { + name: "uri", + type: "string", + }, + { + name: "sellerFeeBasisPoints", + type: "u16", + }, + { + name: "creators", + type: { + option: { + vec: { + defined: "AnchorCreator", + }, + }, + }, + }, + { + name: "collection", + type: { + option: { + defined: "AnchorCollection", + }, + }, + }, + { + name: "uses", + type: { + option: { + defined: "AnchorUses", + }, + }, + }, + ], + }, + }, + { + name: "AnchorCreator", + type: { + kind: "struct", + fields: [ + { + name: "address", + type: "publicKey", + }, + { + name: "verified", + type: "bool", + }, + { + name: "share", + type: "u8", + }, + ], + }, + }, + { + name: "AnchorCollection", + type: { + kind: "struct", + fields: [ + { + name: "verified", + type: "bool", + }, + { + name: "key", + type: "publicKey", + }, + ], + }, + }, + { + name: "AnchorUses", + type: { + kind: "struct", + fields: [ + { + name: "useMethod", + type: { + defined: "AnchorUseMethod", + }, + }, + { + name: "remaining", + type: "u64", + }, + { + name: "total", + type: "u64", + }, + ], + }, + }, + { + name: "WithdrawFeesData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + ], + }, + }, + { + name: "UnfreezeNftData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "receiver", + type: { + array: ["u8", 32], + }, + }, + { + name: "mint", + type: { + array: ["u8", 32], + }, + }, + ], + }, + }, + { + name: "AnchorUseMethod", + type: { + kind: "enum", + variants: [ + { + name: "Burn", + }, + { + name: "Multiple", + }, + { + name: "Single", + }, + ], + }, + }, + ], + events: [ + { + name: "TransferNft", + fields: [ + { + name: "chainNonce", + type: "u8", + index: false, + }, + { + name: "to", + type: "string", + index: true, + }, + { + name: "mint", + type: "publicKey", + index: false, + }, + { + name: "actionId", + type: "u128", + index: false, + }, + { + name: "mintWith", + type: "string", + index: false, + }, + { + name: "lamports", + type: "u64", + index: false, + }, + ], + }, + { + name: "UnfreezeNft", + fields: [ + { + name: "chainNonce", + type: "u8", + index: false, + }, + { + name: "to", + type: "string", + index: true, + }, + { + name: "actionId", + type: "u128", + index: false, + }, + { + name: "mint", + type: "publicKey", + index: false, + }, + { + name: "lamports", + type: "u64", + index: false, + }, + ], + }, + ], + errors: [ + { + code: 6000, + name: "Paused", + msg: "Pausable: paused", + }, + { + code: 6001, + name: "Unpaused", + msg: "Pausable: unpaused", + }, + { + code: 6002, + name: "AlreadyMinted", + msg: "Already minted", + }, + { + code: 6003, + name: "AlreadyBurned", + msg: "Already burned", + }, + { + code: 6004, + name: "InstructionAtWrongIndex", + msg: "instruction at wrong index", + }, + { + code: 6005, + name: "InvalidEd25519Instruction", + msg: "invalid ed25519 instruction", + }, + { + code: 6006, + name: "InvalidGroupKey", + msg: "invalid group key", + }, + { + code: 6007, + name: "InvalidProgramId", + msg: "invalid program id", + }, + { + code: 6008, + name: "InvalidArgs", + msg: "invalid args", + }, + { + code: 6009, + name: "InvalidActionId", + msg: "invalid action id", + }, + { + code: 6010, + name: "DuplicatedAction", + msg: "duplicated action", + }, + { + code: 6011, + name: "IncorrectOwner", + msg: "incorrect owner", + }, + { + code: 6012, + name: "InvalidMint", + msg: "invalid mint", + }, + { + code: 6013, + name: "InsufficientFundsForTransaction", + msg: "insufficient funds for transaction", + }, + ], +} as const; + +export default val as Mutable & Idl; diff --git a/src/helpers/solana.ts b/src/helpers/solana.ts new file mode 100644 index 000000000..130b72973 --- /dev/null +++ b/src/helpers/solana.ts @@ -0,0 +1,187 @@ +import { + AnchorProvider, + BN, + Program, + setProvider, +} from "@project-serum/anchor"; +import { + Account, + createAssociatedTokenAccountInstruction, + getAccount, + getAssociatedTokenAddress, + TokenAccountNotFoundError, + TokenInvalidAccountOwnerError, + TokenInvalidMintError, + TokenInvalidOwnerError, + TOKEN_PROGRAM_ID, +} from "@solana/spl-token"; +import { Connection, PublicKey, Transaction } from "@solana/web3.js"; +import BigNumber from "bignumber.js"; +import { Chain } from ".."; +import { + ChainNonceGet, + EstimateTxFees, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "./chain"; +import BridgeIdl from "./idl/xp_bridge"; + +export type SolanaSigner = AnchorProvider; + +export type SolanaNft = { + nftMint: string; +}; + +export type SolanaHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + connection: Connection; + }; + +export type SolanaParams = { + endpoint: string; + bridgeContractAddr: string; + xpnftAddr: string; +}; + +// Based on https://github.com/solana-labs/solana-program-library/blob/118bd047aa0f1ba1930b5bc4639d40aa2a375ccb/token/js/src/actions/getOrCreateAssociatedTokenAccount.ts +async function getOrCreateAssociatedTokenAccount( + connection: Connection, + payer: SolanaSigner, + mint: PublicKey, + owner: PublicKey, + allowOwnerOffCurve = false +) { + const associatedToken = await getAssociatedTokenAddress( + mint, + owner, + allowOwnerOffCurve + ); + + // This is the optimal logic, considering TX fee, client-side computation, RPC roundtrips and guaranteed idempotent. + // Sadly we can't do this atomically. + let account: Account; + try { + account = await getAccount(connection, associatedToken); + } catch (error: unknown) { + // TokenAccountNotFoundError can be possible if the associated address has already received some lamports, + // becoming a system account. Assuming program derived addressing is safe, this is the only case for the + // TokenInvalidAccountOwnerError in this code path. + if ( + error instanceof TokenAccountNotFoundError || + error instanceof TokenInvalidAccountOwnerError + ) { + // As this isn't atomic, it's possible others can create associated accounts meanwhile. + try { + const transaction = new Transaction().add( + createAssociatedTokenAccountInstruction( + payer.publicKey, + associatedToken, + owner, + mint + ) + ); + + await payer.sendAndConfirm(transaction); + } catch (error: unknown) { + // Ignore all errors; for now there is no API-compatible way to selectively ignore the expected + // instruction error if the associated account exists already. + } + + // Now this should always succeed + account = await getAccount(connection, associatedToken); + } else { + throw error; + } + } + + if (!account.mint.equals(mint)) throw new TokenInvalidMintError(); + if (!account.owner.equals(owner)) throw new TokenInvalidOwnerError(); + + return account; +} + +export async function solanaHelper(args: SolanaParams): Promise { + const conn = new Connection(args.endpoint); + const bridgeContract = new Program(BridgeIdl, args.bridgeContractAddr); + + const [bridge] = await PublicKey.findProgramAddress( + [Buffer.from("bridge")], + bridgeContract.programId + ); + + return { + connection: conn, + getNonce: () => Chain.SOLANA, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { + setProvider(sender); + + const mintAddr = new PublicKey(id.native.nftMint); + const fromTokenAcc = await getOrCreateAssociatedTokenAccount( + conn, + sender, + mintAddr, + sender.publicKey + ); + const toTokenAcc = await getOrCreateAssociatedTokenAccount( + conn, + sender, + mintAddr, + sender.publicKey, + true + ); + const tx = await bridgeContract.methods + .freezeNft(chain_nonce, to, new BN(txFees.toString(10)), mintWith) + .accounts({ + bridge, + authority: sender.publicKey, + from: fromTokenAcc.address, + to: toTokenAcc.address, + tokenProgram: TOKEN_PROGRAM_ID, + }) + .rpc(); + + return tx; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const mintAddr = new PublicKey(id.native.nftMint); + + const tokenAcc = await getOrCreateAssociatedTokenAccount( + conn, + sender, + mintAddr, + sender.publicKey + ); + + const tx = await bridgeContract.methods + .withdrawNft(parseInt(nonce), to, new BN(txFees.toString(10))) + .accounts({ + bridge, + authority: sender.publicKey, + mint: tokenAcc.mint, + tokenAccount: tokenAcc.address, + tokenProgram: TOKEN_PROGRAM_ID, + }) + .rpc(); + + return tx; + }, + async estimateValidateTransferNft() { + return new BigNumber(0); // TODO + }, + async estimateValidateUnfreezeNft() { + return new BigNumber(0); // TODO + }, + async validateAddress(adr) { + try { + new PublicKey(adr); + return true; + } catch { + return false; + } + }, + }; +} diff --git a/src/type-utils.ts b/src/type-utils.ts index 16e4f9cab..c67f28cae 100644 --- a/src/type-utils.ts +++ b/src/type-utils.ts @@ -22,3 +22,7 @@ export type HelperMap = Map< K, InferChainH | undefined >; + +export type Mutable = { + -readonly [Key in keyof Type]: Type[Key]; +}; diff --git a/yarn.lock b/yarn.lock index 06f50a619..3faa7340d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -58,6 +58,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2": + version "7.18.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" + integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== + dependencies: + regenerator-runtime "^0.13.4" + "@cosmjs/encoding@0.27.1": version "0.27.1" resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.27.1.tgz#3cd5bc0af743485eb2578cdb08cfa84c86d610e1" @@ -1214,6 +1221,18 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.0" +"@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" @@ -1505,6 +1524,35 @@ resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== +"@project-serum/anchor@^0.25.0-beta.1": + version "0.25.0-beta.1" + resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.25.0-beta.1.tgz#7b113fb6604483d6740c8da9c6d86e9a5d5f6cf7" + integrity sha512-edesFlclgQzIluD2mC0xrGPnABBllKvbGd6MOtNZMCauUnx1Xbu073um8O6mrCeuZrz4PG9AhwAp1y5cOl3R4A== + dependencies: + "@project-serum/borsh" "^0.2.5" + "@solana/web3.js" "^1.36.0" + base64-js "^1.5.1" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^5.3.1" + cross-fetch "^3.1.5" + crypto-hash "^1.3.0" + eventemitter3 "^4.0.7" + js-sha256 "^0.9.0" + pako "^2.0.3" + snake-case "^3.0.4" + superstruct "^0.15.4" + toml "^3.0.0" + +"@project-serum/borsh@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@project-serum/borsh/-/borsh-0.2.5.tgz#6059287aa624ecebbfc0edd35e4c28ff987d8663" + integrity sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -1571,6 +1619,23 @@ "@randlabs/communication-bridge" "^1.0.0" belter "^1.0.170" +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -1581,6 +1646,55 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== +"@solana/buffer-layout-utils@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" + integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/web3.js" "^1.32.0" + bigint-buffer "^1.1.5" + bignumber.js "^9.0.1" + +"@solana/buffer-layout@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz#75b1b11adc487234821c81dfae3119b73a5fd734" + integrity sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ== + dependencies: + buffer "~6.0.3" + +"@solana/spl-token@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.2.0.tgz#329bb6babb5de0f9c40035ddb1657f01a8347acd" + integrity sha512-RWcn31OXtdqIxmkzQfB2R+WpsJOVS6rKuvpxJFjvik2LyODd+WN58ZP3Rpjpro03fscGAkzlFuP3r42doRJgyQ== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/buffer-layout-utils" "^0.2.0" + "@solana/web3.js" "^1.32.0" + start-server-and-test "^1.14.0" + +"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2": + version "1.44.2" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.44.2.tgz#5303efd94a7f2d6054a1483a4b4db4a26eb2a392" + integrity sha512-DvrJMoKonLuaX0/KyyJXcP/+w+9q8mve4gN3hC2Ptg51K/Gi1/cx6oQN2lbRZb4wYPBd2s2GDAJAJUAwZGsEug== + dependencies: + "@babel/runtime" "^7.12.5" + "@ethersproject/sha2" "^5.5.0" + "@solana/buffer-layout" "^4.0.0" + bigint-buffer "^1.1.5" + bn.js "^5.0.0" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.1" + fast-stable-stringify "^1.0.0" + jayson "^3.4.4" + js-sha3 "^0.8.0" + node-fetch "2" + rpc-websockets "^7.4.2" + secp256k1 "^4.0.2" + superstruct "^0.14.2" + tweetnacl "^1.0.0" + "@stablelib/binary@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" @@ -1776,6 +1890,22 @@ resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== +"@types/connect@^3.4.33": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/express-serve-static-core@^4.17.9": + version "4.17.29" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz#2a1795ea8e9e9c91b4a4bbe475034b20c1ec711c" + integrity sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" @@ -1798,6 +1928,11 @@ dependencies: "@types/node" "*" +"@types/lodash@^4.14.159": + version "4.14.182" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" + integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== + "@types/long@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" @@ -1833,6 +1968,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== +"@types/node@^12.12.54": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + "@types/node@^12.12.6": version "12.20.47" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.47.tgz#ca9237d51f2a2557419688511dab1c8daf475188" @@ -1850,6 +1990,16 @@ dependencies: "@types/node" "*" +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + "@types/responselike@*": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -1864,6 +2014,13 @@ dependencies: "@types/node" "*" +"@types/ws@^7.4.4": + version "7.4.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + "@typescript-eslint/eslint-plugin@^4.31.0": version "4.31.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" @@ -2248,6 +2405,14 @@ dependencies: "@walletconnect/window-getters" "^1.0.0" +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abort-controller@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -2527,7 +2692,7 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-js@^1.3.0, base64-js@^1.3.1: +base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -2563,6 +2728,13 @@ belter@^1.0.170: cross-domain-utils "^2" zalgo-promise "^1" +bigint-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" + integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== + dependencies: + bindings "^1.3.0" + bignumber.js@9.0.1, bignumber.js@=9.0.1, bignumber.js@^9.0.0, bignumber.js@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" @@ -2657,7 +2829,7 @@ blakejs@^1.1.0: resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== -bluebird@^3.5.0: +bluebird@3.7.2, bluebird@^3.5.0: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -2716,6 +2888,15 @@ body-parser@^1.16.0: type-is "~1.6.18" unpipe "1.0.0" +borsh@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" + integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== + dependencies: + bn.js "^5.2.0" + bs58 "^4.0.0" + text-encoding-utf-8 "^1.0.2" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2795,7 +2976,7 @@ browserify-sign@^4.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -bs58@^4.0.0: +bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= @@ -2811,6 +2992,11 @@ bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2: create-hash "^1.1.0" safe-buffer "^5.1.2" +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + buffer-to-arraybuffer@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" @@ -2821,7 +3007,15 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= -buffer@6.0.3, buffer@^6.0.2, buffer@^6.0.3: +buffer@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.1.tgz#3cbea8c1463e5a0779e30b66d4c88c6ffa182ac2" + integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +buffer@6.0.3, buffer@^6.0.2, buffer@^6.0.3, buffer@~6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -2896,7 +3090,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -2936,6 +3130,11 @@ charenc@0.0.2: resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= +check-more-types@2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== + chokidar@^3.0.0: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -3037,6 +3236,11 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@^6.1.0: version "6.2.1" resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" @@ -3174,7 +3378,14 @@ cross-domain-utils@^2, cross-domain-utils@^2.0.0: dependencies: zalgo-promise "^1.0.11" -cross-spawn@^7.0.0, cross-spawn@^7.0.2: +cross-fetch@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3205,12 +3416,17 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -"crypto-exchange-rate@git+https://github.com/XP-NETWORK/exchange-rate#04867f1773b37f77a1aa3edd7e0562517099c078": +"crypto-exchange-rate@git+https://github.com/XP-NETWORK/exchange-rate#ae839df99ed55c3670b47dbaaa0503425e2d17e8": version "1.0.0" - resolved "git+https://github.com/XP-NETWORK/exchange-rate#04867f1773b37f77a1aa3edd7e0562517099c078" + resolved "git+https://github.com/XP-NETWORK/exchange-rate#ae839df99ed55c3670b47dbaaa0503425e2d17e8" dependencies: axios "^0.21.1" +crypto-hash@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" + integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== + crypto-js@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" @@ -3243,7 +3459,7 @@ debug@2.6.9, debug@^2.2.0: dependencies: ms "2.0.0" -debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: +debug@4.3.2, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -3313,6 +3529,11 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -3394,6 +3615,14 @@ dom-walk@^0.1.0: resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + dotenv@^16.0.0: version "16.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" @@ -3404,6 +3633,11 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= +duplexer@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -3539,6 +3773,18 @@ es6-object-assign@^1.1.0: resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== + dependencies: + es6-promise "^4.0.3" + es6-symbol@^3.1.1, es6-symbol@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" @@ -3896,6 +4142,19 @@ ethjs-unit@0.1.6: bn.js "4.11.6" number-to-bn "1.7.0" +event-stream@=3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -3911,7 +4170,7 @@ eventemitter3@^3.1.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -eventemitter3@^4.0.4: +eventemitter3@^4.0.4, eventemitter3@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== @@ -3929,6 +4188,21 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +execa@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + execa@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" @@ -4007,6 +4281,11 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== +eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -4038,6 +4317,11 @@ fast-safe-stringify@^2.0.7: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== +fast-stable-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" + integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== + fastq@^1.6.0: version "1.11.1" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" @@ -4197,6 +4481,11 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== + fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -4294,6 +4583,11 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -4584,6 +4878,11 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + husky@^8.0.0: version "8.0.1" resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" @@ -4880,6 +5179,38 @@ isurl@^1.0.0-alpha5: has-to-string-tag-x "^1.2.0" is-object "^1.0.1" +jayson@^3.4.4: + version "3.6.6" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.6.6.tgz#189984f624e398f831bd2be8e8c80eb3abf764a1" + integrity sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ== + dependencies: + "@types/connect" "^3.4.33" + "@types/express-serve-static-core" "^4.17.9" + "@types/lodash" "^4.14.159" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + JSONStream "^1.3.5" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + lodash "^4.17.20" + uuid "^8.3.2" + ws "^7.4.5" + +joi@^17.4.0: + version "17.6.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" + integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + js-base64@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.1.tgz#555aae398b74694b4037af1f8a5a6209d170efbe" @@ -4967,7 +5298,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= @@ -4984,6 +5315,11 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + jsprim@^1.2.2: version "1.4.2" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" @@ -5028,6 +5364,11 @@ keyvaluestorage-interface@^1.0.0: resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff" integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== +lazy-ass@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -5090,6 +5431,13 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -5119,6 +5467,11 @@ lunr@^2.3.9: resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== + marked@^3.0.4: version "3.0.7" resolved "https://registry.yarnpkg.com/marked/-/marked-3.0.7.tgz#343aad9e91b96249b495c99c512ea09cfe06de1e" @@ -5256,7 +5609,7 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -5416,6 +5769,14 @@ next-tick@^1.1.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + node-abi@^2.21.0: version "2.30.1" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" @@ -5438,7 +5799,7 @@ node-addon-api@^4.2.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== -node-fetch@^2.6.7: +node-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -5484,7 +5845,7 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-run-path@^4.0.0: +npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -5590,7 +5951,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -5676,7 +6037,7 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@2.0.4: +pako@2.0.4, pako@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== @@ -5749,6 +6110,13 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== + dependencies: + through "~2.3" + pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" @@ -5907,6 +6275,13 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +ps-tree@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" + integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== + dependencies: + event-stream "=3.3.4" + psl@^1.1.28: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" @@ -6201,6 +6576,19 @@ rlp@^2.0.0, rlp@^2.2.4: dependencies: bn.js "^5.2.0" +rpc-websockets@^7.4.2: + version "7.5.0" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.0.tgz#bbeb87572e66703ff151e50af1658f98098e2748" + integrity sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ== + dependencies: + "@babel/runtime" "^7.17.2" + eventemitter3 "^4.0.7" + uuid "^8.3.2" + ws "^8.5.0" + optionalDependencies: + bufferutil "^4.0.1" + utf-8-validate "^5.0.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -6215,6 +6603,13 @@ rxjs@6, rxjs@^6.6.3: dependencies: tslib "^1.9.0" +rxjs@^7.1.0: + version "7.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" + integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== + dependencies: + tslib "^2.1.0" + safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -6245,7 +6640,7 @@ scryptsy@2.1.0: resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== -secp256k1@^4.0.1: +secp256k1@^4.0.1, secp256k1@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== @@ -6405,7 +6800,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -6447,6 +6842,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + socket.io-client@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.1.3.tgz#236daa642a9f229932e00b7221e843bf74232a62" @@ -6474,6 +6877,13 @@ split-on-first@^1.0.0: resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== + dependencies: + through "2" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -6494,6 +6904,19 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +start-server-and-test@^1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3" + integrity sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw== + dependencies: + bluebird "3.7.2" + check-more-types "2.24.0" + debug "4.3.2" + execa "5.1.1" + lazy-ass "1.6.0" + ps-tree "1.2.0" + wait-on "6.0.0" + statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -6504,6 +6927,13 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== + dependencies: + duplexer "~0.1.1" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -6631,6 +7061,16 @@ superagent@^6.1.0: readable-stream "^3.6.0" semver "^7.3.2" +superstruct@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" + integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== + +superstruct@^0.15.4: + version "0.15.5" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" + integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -6724,6 +7164,11 @@ tar@^4.0.2: safe-buffer "^5.2.1" yallist "^3.1.1" +text-encoding-utf-8@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" + integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -6742,6 +7187,11 @@ thor-devkit@^2.0.4: js-sha3 "0.5.7" rlp "^2.0.0" +through@2, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" @@ -6780,6 +7230,11 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -6822,6 +7277,11 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.0.3, tslib@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -6836,7 +7296,7 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl@1.0.3, tweetnacl@^1.0.3: +tweetnacl@1.0.3, tweetnacl@^1.0.0, tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== @@ -7050,7 +7510,7 @@ uuid@3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -uuid@8.3.2: +uuid@8.3.2, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -7099,6 +7559,17 @@ vscode-textmate@5.2.0: resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== +wait-on@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7" + integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw== + dependencies: + axios "^0.21.1" + joi "^17.4.0" + lodash "^4.17.21" + minimist "^1.2.5" + rxjs "^7.1.0" + web3-bzz@1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.3.tgz#6860a584f748838af5e3932b6798e024ab8ae951" @@ -7457,6 +7928,16 @@ ws@^7.1.0: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== +ws@^7.4.5: + version "7.5.8" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" + integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== + +ws@^8.5.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" + integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== + xhr-request-promise@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" From a6bcf0f9bf67bdea0fb5511836501aed4cb98b92 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sat, 25 Jun 2022 17:10:35 +0530 Subject: [PATCH 555/956] add ton boilerplate --- package.json | 4 +- src/consts.ts | 13 +- src/helpers/ton-bridge.ts | 137 +++++++++++++++ src/helpers/ton.ts | 33 ++++ yarn.lock | 341 +++++++++++++++++++++++++++++++++++++- 5 files changed, 518 insertions(+), 10 deletions(-) create mode 100644 src/helpers/ton-bridge.ts create mode 100644 src/helpers/ton.ts diff --git a/package.json b/package.json index a7c5f1656..501633bab 100644 --- a/package.json +++ b/package.json @@ -46,12 +46,14 @@ "algosdk": "^1.15.0-beta.1", "axios": "^0.21.1", "bignumber.js": "=9.0.1", - "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#ae839df99ed55c3670b47dbaaa0503425e2d17e8", + "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#da4e9788428e1ce135e6ecf10a3e5c4b94c7313a", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "secretjs": "^1.3.0-beta.1", "socket.io-client": "^4.1.3", + "tonweb": "^0.0.43", + "tonweb-mnemonic": "^1.0.1", "tronstation": "^1.0.1", "tronweb": "^4.1.0", "web3-providers-connex": "^0.3.1", diff --git a/src/consts.ts b/src/consts.ts index fb759097f..794e10319 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -19,6 +19,7 @@ import { SecretParams, } from "./helpers/secret"; import { solanaHelper, SolanaHelper, SolanaParams } from "./helpers/solana"; +import { tonHelper, TonHelper, TonParams } from "./helpers/ton"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -76,6 +77,7 @@ type AlgoMeta = [AlgorandHelper, AlgorandParams]; type TezosMeta = [TezosHelper, TezosParams]; type SecretMeta = [SecretHelper, SecretParams]; type SolanaMeta = [SolanaHelper, SolanaParams]; +type TonMeta = [TonHelper, TonParams]; // Static Assert to Ensure all values of Chain are in MetaMap type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; @@ -105,6 +107,7 @@ export type MetaMap = { 0x18: SecretMeta; 0x19: Web3Meta; 0x1a: SolanaMeta; + 0x1b: TonMeta; } & MetaMapAssert; export namespace Chain { @@ -132,7 +135,7 @@ export namespace Chain { export const SECRET = 0x18; export const VECHAIN = 0x19; // 25 export const SOLANA = 0x1a; - // 0x1b => TON + export const TON = 0x1b; } interface ChainData { @@ -362,3 +365,11 @@ CHAIN_INFO.set(Chain.SOLANA, { currency: SupportedCurrency.SOL, decimals: 1e9, }); +CHAIN_INFO.set(Chain.TON, { + name: "TON", + blockExplorerUrl: "", // TODO + constructor: tonHelper, // TODO + nonce: Chain.TON, + currency: SupportedCurrency.TON, + decimals: 1e9, +}); diff --git a/src/helpers/ton-bridge.ts b/src/helpers/ton-bridge.ts new file mode 100644 index 000000000..efe809456 --- /dev/null +++ b/src/helpers/ton-bridge.ts @@ -0,0 +1,137 @@ +import BN from "bn.js"; +import TonWeb, { ContractMethods, ContractOptions } from "tonweb"; +import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; + +const Contract = TonWeb.Contract; +const Cell = TonWeb.boc.Cell; + +declare type SeqnoMethod = () => SeqnoMethodResult; + +interface SeqnoMethodResult { + call: () => Promise; +} + +interface BridgeOptions extends ContractOptions { + burner: string; +} +interface BridgeMethods extends ContractMethods { + seqno: SeqnoMethod; + getPublicKey: () => Promise; + isInitialized: () => Promise; + getActionId: () => Promise; + getWhitelist: () => Promise; +} + +interface WithdrawParams { + chainNonce: number; + to: Uint8Array; +} + +interface FreezeParams { + chainNonce: number; + to: Uint8Array; + mintWith: Uint8Array; + amount?: number | BN; +} + +export class BridgeContract extends Contract { + constructor(provider: HttpProvider, options: BridgeOptions) { + super(provider, options); + + this.methods.seqno = () => { + return { + call: async () => { + const address = await this.getAddress(); + let n = null; + try { + n = (await provider.call2(address.toString(), "seqno")).toNumber(); + } catch (e) { + console.log(e); + } + return n; + }, + }; + }; + this.methods.getPublicKey = this.getPublicKey; + this.methods.isInitialized = this.isInitialized; + this.methods.getActionId = this.getActionId; + this.methods.getWhitelist = this.getWhitelist; + } + + serializeUri(uri: string): Uint8Array { + return new TextEncoder().encode(encodeURI(uri)); + } + + async createWithdrawBody(params: WithdrawParams) { + const cell = new Cell(); + cell.bits.writeUint(0x5fcc3d14, 32); // transfer op + cell.bits.writeUint(0, 64); + cell.bits.writeAddress(new TonWeb.Address(this.options.burner)); // target address + cell.bits.writeAddress(await this.getAddress()); // bridge as response address + cell.bits.writeBit(false); // null custom_payload + cell.bits.writeCoins(new BN(0)); // forward amount + cell.bits.writeBit(false); // forward_payload in this slice, not separate cell + + const msg = new Cell(); + msg.bits.writeUint(params.chainNonce, 8); + msg.bits.writeBytes(params.to); + cell.refs[0] = msg; + + return cell; + } + + async createFreezeBody(params: FreezeParams) { + const cell = new Cell(); + cell.bits.writeUint(0x5fcc3d14, 32); // transfer op + cell.bits.writeUint(0, 64); + cell.bits.writeAddress(await this.getAddress()); // target address + cell.bits.writeAddress(undefined); // undefined as response address + cell.bits.writeBit(false); // null custom_payload + cell.bits.writeCoins(params.amount || new BN(0)); + cell.bits.writeBit(false); // forward_payload in this slice, not separate cell + + const payload = new Cell(); + payload.bits.writeUint(params.chainNonce, 8); + payload.bits.writeUint(params.to.length, 16); + payload.bits.writeBytes(params.to); + payload.bits.writeBytes(params.mintWith); + cell.refs[0] = payload; + return cell; + } + + getPublicKey = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_public_key" + ); + return result; + }; + + isInitialized = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "is_initialized" + ); + return result; + }; + + getActionId = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_action_id" + ); + return result; + }; + + getWhitelist = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_whitelist" + ); + return result; + }; +} diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts new file mode 100644 index 000000000..a243a42a9 --- /dev/null +++ b/src/helpers/ton.ts @@ -0,0 +1,33 @@ +import TonWeb from "tonweb"; +import TonWebMnemonic from "tonweb-mnemonic"; +import { + ChainNonceGet, + EstimateTxFees, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "./chain"; + +export type TonSigner = TonWebMnemonic.KeyPair | undefined; + +export type TonNft = { + nftId: number; +}; + +export type TonHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress; + +export type TonParams = { + tonweb: TonWeb; + bridgeAddr: string; + burnerAddr: string; + xpnftAddr: string; +}; + +export async function tonHelper(_args: TonParams): Promise { + // TODO + return {} as any; +} diff --git a/yarn.lock b/yarn.lock index 3faa7340d..2e6ea51b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1274,7 +1274,7 @@ "@json-rpc-tools/types" "^1.7.6" "@pedrouid/environment" "^1.0.1" -"@ledgerhq/devices@^5.51.1": +"@ledgerhq/devices@^5.48.0", "@ledgerhq/devices@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" integrity sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA== @@ -1294,7 +1294,7 @@ rxjs "6" semver "^7.3.5" -"@ledgerhq/errors@^5.34.0", "@ledgerhq/errors@^5.50.0": +"@ledgerhq/errors@^5.34.0", "@ledgerhq/errors@^5.48.0", "@ledgerhq/errors@^5.50.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== @@ -1339,6 +1339,27 @@ "@ledgerhq/logs" "^5.30.0" u2f-api "0.2.7" +"@ledgerhq/hw-transport-web-ble@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-web-ble/-/hw-transport-web-ble-5.48.0.tgz#41b29293c263d8ed4200037eb6da4db3bd4268a6" + integrity sha512-ezgssFvxc4/UbfwIxwg9jEn0/yiND8TW6bDkaE3kAqKCa8ZYYgFtms8iRqjTOJlqcbSYkudbNhP74jtY0NxfdA== + dependencies: + "@ledgerhq/devices" "^5.48.0" + "@ledgerhq/errors" "^5.48.0" + "@ledgerhq/hw-transport" "^5.48.0" + "@ledgerhq/logs" "^5.48.0" + rxjs "^6.6.7" + +"@ledgerhq/hw-transport-webhid@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-5.48.0.tgz#aab2cffac3d5c97b04f093e2a0cbfe311dfdeab4" + integrity sha512-g6TYxgPX3MqP3jQ4SJaJjlM+2SwUSk4Si/9MeKLwz5ySbiD3bSTh/Gbzv8VBCaHPO4fILujc5vW/xejJuMzR8w== + dependencies: + "@ledgerhq/devices" "^5.48.0" + "@ledgerhq/errors" "^5.48.0" + "@ledgerhq/hw-transport" "^5.48.0" + "@ledgerhq/logs" "^5.48.0" + "@ledgerhq/hw-transport-webhid@^6.11.2": version "6.27.1" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.1.tgz#8fd1710d23b6bd7cbe2382dd02054dfabe788447" @@ -1349,6 +1370,16 @@ "@ledgerhq/hw-transport" "^6.27.1" "@ledgerhq/logs" "^6.10.0" +"@ledgerhq/hw-transport-webusb@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-5.48.0.tgz#62e5bffffba853d4e06103f7c8e9b6c87ca0f994" + integrity sha512-tO+p11aRQx9q9ifmi/NCbCBKQ738lp+PROy1BWSzjCJcUEz1sKTLeRTLE2Xze25KebhuM2YR1NgkX5LN1z4upA== + dependencies: + "@ledgerhq/devices" "^5.48.0" + "@ledgerhq/errors" "^5.48.0" + "@ledgerhq/hw-transport" "^5.48.0" + "@ledgerhq/logs" "^5.48.0" + "@ledgerhq/hw-transport-webusb@6.11.2": version "6.11.2" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-6.11.2.tgz#d190709881e50f8c271efe956705b05e46b4649d" @@ -1359,7 +1390,7 @@ "@ledgerhq/hw-transport" "^6.11.2" "@ledgerhq/logs" "^6.10.0" -"@ledgerhq/hw-transport@^5.19.1", "@ledgerhq/hw-transport@^5.34.0", "@ledgerhq/hw-transport@^5.51.1": +"@ledgerhq/hw-transport@^5.19.1", "@ledgerhq/hw-transport@^5.34.0", "@ledgerhq/hw-transport@^5.48.0", "@ledgerhq/hw-transport@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz#8dd14a8e58cbee4df0c29eaeef983a79f5f22578" integrity sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw== @@ -1377,7 +1408,7 @@ "@ledgerhq/errors" "^6.10.0" events "^3.3.0" -"@ledgerhq/logs@^5.30.0", "@ledgerhq/logs@^5.50.0": +"@ledgerhq/logs@^5.30.0", "@ledgerhq/logs@^5.48.0", "@ledgerhq/logs@^5.50.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== @@ -1519,6 +1550,33 @@ dependencies: "@octokit/openapi-types" "^11.2.0" +"@peculiar/asn1-schema@^2.1.6": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.2.0.tgz#d8a54527685c8dee518e6448137349444310ad64" + integrity sha512-1ENEJNY7Lwlua/1wvzpYP194WtjQBfFxvde2FlzfBFh/ln6wvChrtxlORhbKEnYswzn6fOC4c7HdC5izLPMTJg== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.0.22": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.0.tgz#f941bd95285a0f8a3d2af39ccda5197b80cd32bf" + integrity sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg== + dependencies: + "@peculiar/asn1-schema" "^2.1.6" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.2" + tslib "^2.4.0" + webcrypto-core "^1.7.4" + "@pedrouid/environment@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" @@ -2136,6 +2194,21 @@ "@typescript-eslint/types" "4.31.0" eslint-visitor-keys "^2.0.0" +"@unimodules/core@*": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@unimodules/core/-/core-7.1.2.tgz#5181b99586476a5d87afd0958f26a04714c47fa1" + integrity sha512-lY+e2TAFuebD3vshHMIRqru3X4+k7Xkba4Wa7QsDBd+ex4c4N2dHAO61E2SrGD9+TRBD8w/o7mzK6ljbqRnbyg== + dependencies: + compare-versions "^3.4.0" + +"@unimodules/react-native-adapter@*": + version "6.3.9" + resolved "https://registry.yarnpkg.com/@unimodules/react-native-adapter/-/react-native-adapter-6.3.9.tgz#2f4bef6b7532dce5bf9f236e69f96403d0243c30" + integrity sha512-i9/9Si4AQ8awls+YGAKkByFbeAsOPgUNeLoYeh2SQ3ddjxJ5ZJDtq/I74clDnpDcn8zS9pYlcDJ9fgVJa39Glw== + dependencies: + expo-modules-autolinking "^0.0.3" + invariant "^2.2.4" + "@vechain/connex-driver@^2.0.8": version "2.0.8" resolved "https://registry.yarnpkg.com/@vechain/connex-driver/-/connex-driver-2.0.8.tgz#2c4ce3815b4ed398c768c359decf29fbb58f1d5c" @@ -2581,6 +2654,11 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== +asmcrypto.js@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/asmcrypto.js/-/asmcrypto.js-0.22.0.tgz#38fc1440884d802c7bd37d1d23c2b26a5cd5d2d2" + integrity sha512-usgMoyXjMbx/ZPdzTSXExhMPur2FTdz/Vo5PVx2gIaBcdAAJNOFlsdgqveM8Cff7W0v+xrf9BwjOV26JSAF9qA== + asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -2598,6 +2676,15 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== + dependencies: + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" + assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" @@ -2628,6 +2715,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + available-typed-arrays@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" @@ -2657,6 +2749,20 @@ axios@^0.21.1: dependencies: follow-redirects "^1.10.0" +b64-lite@^1.3.1, b64-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/b64-lite/-/b64-lite-1.4.0.tgz#e62442de11f1f21c60e38b74f111ac0242283d3d" + integrity sha512-aHe97M7DXt+dkpa8fHlCcm1CnskAHrJqEfMI0KN7dwqlzml/aUe1AGt6lk51HzrSfVD67xOso84sOpr+0wIe2w== + dependencies: + base-64 "^0.1.0" + +b64u-lite@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/b64u-lite/-/b64u-lite-1.1.0.tgz#a581b7df94cbd4bed7cbb19feae816654f0b1bf0" + integrity sha512-929qWGDVCRph7gQVTC6koHqQIpF4vtVaSbwLltFQo44B1bYUquALswZdBKFfrJCPEnsCOvWkJsPdQYZ/Ukhw8A== + dependencies: + b64-lite "^1.4.0" + babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -2680,6 +2786,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base-64@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" + integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== + base-x@^3.0.2, base-x@^3.0.8: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" @@ -2692,7 +2803,7 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@*, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -2844,6 +2955,11 @@ bn.js@4.11.8: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== +bn.js@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz#48efc4031a9c4041b9c99c6941d903463ab62eb5" + integrity sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA== + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" @@ -3125,6 +3241,14 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + charenc@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" @@ -3246,6 +3370,16 @@ commander@^6.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +compare-versions@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + component-emitter@^1.3.0, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -3422,6 +3556,12 @@ crypto-browserify@3.12.0: dependencies: axios "^0.21.1" +"crypto-exchange-rate@git+https://github.com/XP-NETWORK/exchange-rate#da4e9788428e1ce135e6ecf10a3e5c4b94c7313a": + version "1.0.0" + resolved "git+https://github.com/XP-NETWORK/exchange-rate#da4e9788428e1ce135e6ecf10a3e5c4b94c7313a" + dependencies: + axios "^0.21.1" + crypto-hash@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" @@ -4223,6 +4363,24 @@ expand-template@^2.0.3: resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== +expo-modules-autolinking@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.0.3.tgz#45ba8cb1798f9339347ae35e96e9cc70eafb3727" + integrity sha512-azkCRYj/DxbK4udDuDxA9beYzQTwpJ5a9QA0bBgha2jHtWdFGF4ZZWSY+zNA5mtU3KqzYt8jWHfoqgSvKyu1Aw== + dependencies: + chalk "^4.1.0" + commander "^7.2.0" + fast-glob "^3.2.5" + find-up "~5.0.0" + fs-extra "^9.1.0" + +expo-random@*: + version "12.2.0" + resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-12.2.0.tgz#a3c8a9ce84ef2c85900131d96eea6c7123285482" + integrity sha512-SihCGLmDyDOALzBN8XXpz2hCw0RSx9c4/rvjcS4Bfqhw6luHjL2rHNTLrFYrPrPRmG1jHM6dXXJe/Zm8jdu+2g== + dependencies: + base64-js "^1.3.0" + express@^4.14.0: version "4.17.3" resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" @@ -4302,6 +4460,17 @@ fast-glob@^3.1.1: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.2.5: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -4369,6 +4538,14 @@ find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -4509,6 +4686,16 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -4958,6 +5145,13 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -5161,6 +5355,24 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +isomorphic-webcrypto@2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/isomorphic-webcrypto/-/isomorphic-webcrypto-2.3.8.tgz#4a7493b486ef072b9f11b6f8fd66adde856e3eec" + integrity sha512-XddQSI0WYlSCjxtm1AI8kWQOulf7hAN3k3DclF1sxDJZqOe0pcsOt675zvWW91cZH9hYs3nlA3Ev8QK5i80SxQ== + dependencies: + "@peculiar/webcrypto" "^1.0.22" + asmcrypto.js "^0.22.0" + b64-lite "^1.3.1" + b64u-lite "^1.0.1" + msrcrypto "^1.5.6" + str2buf "^1.3.0" + webcrypto-shim "^0.1.4" + optionalDependencies: + "@unimodules/core" "*" + "@unimodules/react-native-adapter" "*" + expo-random "*" + react-native-securerandom "^0.1.1" + isomorphic-ws@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" @@ -5236,7 +5448,7 @@ js-sha512@^0.8.0: resolved "https://registry.yarnpkg.com/js-sha512/-/js-sha512-0.8.0.tgz#dd22db8d02756faccf19f218e3ed61ec8249f7d4" integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== -js-tokens@^4.0.0: +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== @@ -5315,6 +5527,15 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" @@ -5396,6 +5617,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -5431,6 +5659,13 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -5683,6 +5918,11 @@ ms@2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +msrcrypto@^1.5.6: + version "1.5.8" + resolved "https://registry.yarnpkg.com/msrcrypto/-/msrcrypto-1.5.8.tgz#be419be4945bf134d8af52e9d43be7fa261f4a1c" + integrity sha512-ujZ0TRuozHKKm6eGbKHfXef7f+esIhEckmThVnz7RNyiOJd7a6MXj2JGBoL9cnPDW+JMG16MoTUh5X+XXjI66Q== + multibase@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" @@ -6011,6 +6251,13 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -6018,6 +6265,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + p-timeout@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" @@ -6317,6 +6571,18 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pvtsutils@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" + integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== + dependencies: + tslib "^2.4.0" + +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== + qs@6.10.1, qs@^6.9.4: version "6.10.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" @@ -6419,6 +6685,13 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-native-securerandom@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/react-native-securerandom/-/react-native-securerandom-0.1.1.tgz#f130623a412c338b0afadedbc204c5cbb8bf2070" + integrity sha512-CozcCx0lpBLevxiXEb86kwLRalBCHNjiGPlw3P7Fi27U6ZLdfjOCNRHD1LtBKcvPvI3TvkBXB3GOtLvqaYJLGw== + dependencies: + base64-js "*" + readable-stream@^2.0.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -6596,7 +6869,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@6, rxjs@^6.6.3: +rxjs@6, rxjs@^6.6.3, rxjs@^6.6.7: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -6927,6 +7200,11 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +str2buf@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/str2buf/-/str2buf-1.3.0.tgz#a4172afff4310e67235178e738a2dbb573abead0" + integrity sha512-xIBmHIUHYZDP4HyoXGHYNVmxlXLXDrtFHYT0eV6IOdEj3VO9ccaF1Ejl9Oq8iFjITllpT8FhaXb4KsNmw+3EuA== + stream-combiner@~0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" @@ -7235,6 +7513,27 @@ toml@^3.0.0: resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== +tonweb-mnemonic@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tonweb-mnemonic/-/tonweb-mnemonic-1.0.1.tgz#bb1b8bb6220f56f8e230b8a8f9555ff5bcbd4681" + integrity sha512-YQAEXQHBHb0dnNy50bwIutXwyWa6Den7+cLcXWoG7ZClcqo4bjALOr6tnIqI+hs5jab+AGSsRjilxcp8ao/CpA== + dependencies: + tweetnacl "^1.0.3" + +tonweb@^0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/tonweb/-/tonweb-0.0.43.tgz#c659dd806aaa982413ffda33762ddca204da87a9" + integrity sha512-wed71NUHymDNVeGFIaMVTj658CXnbr9iafLpKRk4LyvZ17FU2fIBja7m1Uc+oD/+Gf6n0Zqbhsf0b69jF/41Hw== + dependencies: + "@ledgerhq/hw-transport-web-ble" "5.48.0" + "@ledgerhq/hw-transport-webhid" "5.48.0" + "@ledgerhq/hw-transport-webusb" "5.48.0" + bn.js "5.1.1" + ethjs-unit "0.1.6" + isomorphic-webcrypto "2.3.8" + node-fetch "2.6.7" + tweetnacl "1.0.3" + tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -7277,7 +7576,7 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.1.0: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -7414,6 +7713,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -7810,6 +8114,22 @@ web3@^1.7.1: web3-shh "1.7.3" web3-utils "1.7.3" +webcrypto-core@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.5.tgz#c02104c953ca7107557f9c165d194c6316587ca4" + integrity sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A== + dependencies: + "@peculiar/asn1-schema" "^2.1.6" + "@peculiar/json-schema" "^1.1.12" + asn1js "^3.0.1" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +webcrypto-shim@^0.1.4: + version "0.1.7" + resolved "https://registry.yarnpkg.com/webcrypto-shim/-/webcrypto-shim-0.1.7.tgz#da8be23061a0451cf23b424d4a9b61c10f091c12" + integrity sha512-JAvAQR5mRNRxZW2jKigWMjCMkjSdmP5cColRP1U/pTg69VgHXEi1orv5vVpJ55Zc5MIaPc1aaurzd9pjv2bveg== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -8041,6 +8361,11 @@ yeast@0.1.2: resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + zalgo-promise@^1, zalgo-promise@^1.0.11: version "1.0.48" resolved "https://registry.yarnpkg.com/zalgo-promise/-/zalgo-promise-1.0.48.tgz#9e33eef502d5ed9f5a09fc5728c833c3e87afa2e" From 4d1ade235b981c7a4b04e10b1772ac816e3d23ef Mon Sep 17 00:00:00 2001 From: rupansh Date: Sat, 25 Jun 2022 17:21:03 +0530 Subject: [PATCH 556/956] solana: use notifier --- src/helpers/solana.ts | 8 ++++++++ src/notifier/index.ts | 3 +++ 2 files changed, 11 insertions(+) diff --git a/src/helpers/solana.ts b/src/helpers/solana.ts index 130b72973..d7de35822 100644 --- a/src/helpers/solana.ts +++ b/src/helpers/solana.ts @@ -18,6 +18,7 @@ import { import { Connection, PublicKey, Transaction } from "@solana/web3.js"; import BigNumber from "bignumber.js"; import { Chain } from ".."; +import { evNotifier, EvNotifier } from "../notifier"; import { ChainNonceGet, EstimateTxFees, @@ -45,6 +46,7 @@ export type SolanaParams = { endpoint: string; bridgeContractAddr: string; xpnftAddr: string; + notifier: EvNotifier; }; // Based on https://github.com/solana-labs/solana-program-library/blob/118bd047aa0f1ba1930b5bc4639d40aa2a375ccb/token/js/src/actions/getOrCreateAssociatedTokenAccount.ts @@ -144,9 +146,13 @@ export async function solanaHelper(args: SolanaParams): Promise { }) .rpc(); + await args.notifier.notifySolana(tx); + return tx; }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + setProvider(sender); + const mintAddr = new PublicKey(id.native.nftMint); const tokenAcc = await getOrCreateAssociatedTokenAccount( @@ -167,6 +173,8 @@ export async function solanaHelper(args: SolanaParams): Promise { }) .rpc(); + await args.notifier.notifySolana(tx); + return tx; }, async estimateValidateTransferNft() { diff --git a/src/notifier/index.ts b/src/notifier/index.ts index e27f19ae7..4439384f2 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -66,5 +66,8 @@ export function evNotifier(url: string) { async notifySecret(txHash: string) { await api.post("/tx/scrt", { tx_hash: txHash }); }, + async notifySolana(txHash: string) { + await api.post("/tx/solana", { tx_hash: txHash }); + }, }; } From 0a27bdf71600f7ceeadc0951b18941098a18aad3 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 27 Jun 2022 18:29:26 +0530 Subject: [PATCH 557/956] ton: initial boilerplate --- src/helpers/solana.ts | 2 +- src/helpers/ton.ts | 81 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 77 insertions(+), 6 deletions(-) diff --git a/src/helpers/solana.ts b/src/helpers/solana.ts index d7de35822..15556221f 100644 --- a/src/helpers/solana.ts +++ b/src/helpers/solana.ts @@ -18,7 +18,7 @@ import { import { Connection, PublicKey, Transaction } from "@solana/web3.js"; import BigNumber from "bignumber.js"; import { Chain } from ".."; -import { evNotifier, EvNotifier } from "../notifier"; +import { EvNotifier } from "../notifier"; import { ChainNonceGet, EstimateTxFees, diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index a243a42a9..5232f3ad3 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -1,5 +1,8 @@ +import { BN } from "@project-serum/anchor"; +import BigNumber from "bignumber.js"; import TonWeb from "tonweb"; import TonWebMnemonic from "tonweb-mnemonic"; +import { Chain } from "../consts"; import { ChainNonceGet, EstimateTxFees, @@ -7,8 +10,9 @@ import { UnfreezeForeignNft, ValidateAddress, } from "./chain"; +// import { BridgeContract } from "./ton-bridge"; -export type TonSigner = TonWebMnemonic.KeyPair | undefined; +export type TonSigner = TonWallet | { accIdx: number }; export type TonNft = { nftId: number; @@ -18,7 +22,9 @@ export type TonHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & - ValidateAddress; + ValidateAddress & { XpNft: string } & { + tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonWallet; + }; export type TonParams = { tonweb: TonWeb; @@ -27,7 +33,72 @@ export type TonParams = { xpnftAddr: string; }; -export async function tonHelper(_args: TonParams): Promise { - // TODO - return {} as any; +type MethodMap = { + ton_requestAccounts: [undefined, string]; + ton_sendTransaction: [{ value: string; to: string; data: string }, unknown]; + ton_getBalance: [undefined, string]; +}; + +type TonWallet = { + send( + method: M, + params: MethodMap[M][0] + ): Promise; +}; + +export async function tonHelper(args: TonParams): Promise { + // const bridge = new BridgeContract(args.tonweb.provider, { + // burner: args.burnerAddr + // }); + + const ton = args.tonweb as TonWeb & TonWallet; + + return { + getNonce: () => Chain.TON, + XpNft: args.xpnftAddr, + async estimateValidateTransferNft() { + return new BigNumber(0); // TODO + }, + async estimateValidateUnfreezeNft() { + return new BigNumber(0); // TODO + }, + async validateAddress(adr) { + return TonWeb.Address.isValid(adr); + }, + async transferNftToForeign() { + // TODO + return ""; + }, + async unfreezeWrappedNft() { + // TODO + return ""; + }, + tonKpWrapper(kp: TonWebMnemonic.KeyPair): TonWallet { + const wallet = new TonWeb.Wallets.all.v3R2(ton.provider, { + publicKey: kp.publicKey, + wc: 0, + }); + return { + async send(method, params) { + switch (method) { + case "ton_getBalance": + return await ton.getBalance(await wallet.getAddress()); + case "ton_requestAccounts": + return [await wallet.getAddress()]; + case "ton_sendTransaction": + return await wallet.methods + .transfer({ + secretKey: kp.secretKey, + toAddress: params!.to, + amount: new BN(params!.value), + seqno: (await wallet.methods.seqno().call()) || 0, + sendMode: 3, + payload: Buffer.from(params!.data, "base64"), + }) + .send(); + } + }, + }; + }, + }; } From 955f3de7ff17999eb6f37c147c87f2550af8df9f Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 27 Jun 2022 19:41:05 +0530 Subject: [PATCH 558/956] initial dfinity bringup --- package.json | 6 +- src/consts.ts | 14 ++++- src/helpers/dfinity.ts | 139 +++++++++++++++++++++++++++++++++++++++++ src/notifier/index.ts | 3 + yarn.lock | 96 ++++++++++++++++++++++++---- 5 files changed, 245 insertions(+), 13 deletions(-) create mode 100644 src/helpers/dfinity.ts diff --git a/package.json b/package.json index 501633bab..97b138cc7 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,10 @@ "typescript": "^4.3.5" }, "dependencies": { + "@dfinity/agent": "^0.11.3", + "@dfinity/candid": "^0.11.3", + "@dfinity/nns": "^0.5.0", + "@dfinity/principal": "^0.11.3", "@elrondnetwork/erdjs": "9.0.3", "@json-rpc-tools/utils": "^1.7.6", "@project-serum/anchor": "^0.25.0-beta.1", @@ -46,7 +50,7 @@ "algosdk": "^1.15.0-beta.1", "axios": "^0.21.1", "bignumber.js": "=9.0.1", - "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#da4e9788428e1ce135e6ecf10a3e5c4b94c7313a", + "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#5b63a5831f8e89625969852cb29f8f6983b4c93e", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/src/consts.ts b/src/consts.ts index 794e10319..e55d92d57 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -20,6 +20,7 @@ import { } from "./helpers/secret"; import { solanaHelper, SolanaHelper, SolanaParams } from "./helpers/solana"; import { tonHelper, TonHelper, TonParams } from "./helpers/ton"; +import { dfinityHelper, DfinityHelper, DfinityParams } from "./helpers/dfinity"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -78,6 +79,7 @@ type TezosMeta = [TezosHelper, TezosParams]; type SecretMeta = [SecretHelper, SecretParams]; type SolanaMeta = [SolanaHelper, SolanaParams]; type TonMeta = [TonHelper, TonParams]; +type DfinityMeta = [DfinityHelper, DfinityParams]; // Static Assert to Ensure all values of Chain are in MetaMap type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; @@ -108,6 +110,7 @@ export type MetaMap = { 0x19: Web3Meta; 0x1a: SolanaMeta; 0x1b: TonMeta; + 0x1c: DfinityMeta; } & MetaMapAssert; export namespace Chain { @@ -136,6 +139,7 @@ export namespace Chain { export const VECHAIN = 0x19; // 25 export const SOLANA = 0x1a; export const TON = 0x1b; + export const DFINITY = 0x1c; } interface ChainData { @@ -368,8 +372,16 @@ CHAIN_INFO.set(Chain.SOLANA, { CHAIN_INFO.set(Chain.TON, { name: "TON", blockExplorerUrl: "", // TODO - constructor: tonHelper, // TODO + constructor: tonHelper, nonce: Chain.TON, currency: SupportedCurrency.TON, decimals: 1e9, }); +CHAIN_INFO.set(Chain.DFINITY, { + name: "DFINITY", + blockExplorerUrl: "", // TODO + constructor: dfinityHelper, + nonce: Chain.DFINITY, + currency: SupportedCurrency.ICP, + decimals: 1e8, +}); diff --git a/src/helpers/dfinity.ts b/src/helpers/dfinity.ts new file mode 100644 index 000000000..24893d8ef --- /dev/null +++ b/src/helpers/dfinity.ts @@ -0,0 +1,139 @@ +import { HttpAgent, Identity, polling, RequestId } from "@dfinity/agent"; +import { + decode, + encode, + Nat, + Nat64, + PrincipalClass, + Text, +} from "@dfinity/candid/lib/cjs/idl"; +import { AccountIdentifier, ICP, LedgerCanister } from "@dfinity/nns"; +import { Principal } from "@dfinity/principal"; +import BigNumber from "bignumber.js"; +import { Chain } from "../consts"; +import { EvNotifier } from "../notifier"; +import { + ChainNonceGet, + EstimateTxFees, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "./chain"; + +export type DfinitySigner = Identity; + +export type DfinityNft = { + canisterId: string; + tokenId: string; +}; + +// TODO: approval +export type DfinityHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { XpNft: string }; + +export type DfinityParams = { + agent: HttpAgent; + bridgeContract: Principal; + xpnftId: Principal; + notifier: EvNotifier; +}; + +export async function dfinityHelper( + args: DfinityParams +): Promise { + const ledger = LedgerCanister.create({ agent: args.agent }); + + async function transferTxFee(amt: BigNumber): Promise { + return await ledger.transfer({ + to: AccountIdentifier.fromPrincipal({ principal: args.bridgeContract }), + amount: ICP.fromString(amt.toFixed()) as ICP, + }); + } + + async function waitActionId(requestId: RequestId) { + const pollStrat = polling.defaultStrategy(); + const resp = await polling.pollForResponse( + args.agent, + args.bridgeContract, + requestId, + pollStrat + ); + + return decode([Nat], resp)[0].toString() as string; + } + + return { + XpNft: args.xpnftId.toString(), + getNonce: () => Chain.DFINITY, + estimateValidateTransferNft: async () => new BigNumber(0), // TODO + estimateValidateUnfreezeNft: async () => new BigNumber(0), // TODO + async validateAddress(adr) { + try { + Principal.fromText(adr); + return true; + } catch { + return false; + } + }, + async transferNftToForeign( + sender, + chain_nonce, + to, + id, + txFees, + mintWith, + gasLimit? + ) { + args.agent.replaceIdentity(sender); + + const txFeeBlock = await transferTxFee(txFees); + + const freezeCall = await args.agent.call(args.bridgeContract, { + methodName: "freeze_nft", + arg: encode( + [Nat64, new PrincipalClass(), Nat, Nat64, Text, Text], + [ + txFeeBlock, + Principal.fromText(id.native.canisterId), + BigInt(id.native.tokenId), + chain_nonce, + to, + mintWith, + ] + ), + }); + + const actionId = await waitActionId(freezeCall.requestId); + await args.notifier.notifyDfinity(actionId); + + return Buffer.from(freezeCall.requestId).toString("hex"); + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + args.agent.replaceIdentity(sender); + + const txFeeBlock = await transferTxFee(txFees); + + const withdrawCall = await args.agent.call(args.bridgeContract, { + methodName: "withdraw_nft", + arg: encode( + [Nat64, new PrincipalClass(), Nat, Nat64, Text], + [ + txFeeBlock, + Principal.fromText(id.native.canisterId), + BigInt(id.native.tokenId), + nonce, + to, + ] + ), + }); + + const actionId = await waitActionId(withdrawCall.requestId); + await args.notifier.notifyDfinity(actionId); + + return Buffer.from(withdrawCall.requestId).toString("hex"); + }, + }; +} diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 4439384f2..83ac195ad 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -69,5 +69,8 @@ export function evNotifier(url: string) { async notifySolana(txHash: string) { await api.post("/tx/solana", { tx_hash: txHash }); }, + async notifyDfinity(actionId: string) { + await api.post("/tx/dfinity", { action_id: actionId }); + }, }; } diff --git a/yarn.lock b/yarn.lock index 2e6ea51b5..7773e4acc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -81,6 +81,41 @@ dependencies: bn.js "^5.2.0" +"@dfinity/agent@^0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@dfinity/agent/-/agent-0.11.3.tgz#3363b1dbaa10a6e5cfe25e269316e2416fd3d11d" + integrity sha512-pqiogLey6S83SG5BS93hBCtXfGRW6tkxa8Y0c9HwxOP/wRoVEuKHdTcOn7rL/HN4mDTwxkdqK4EC1Kv24S1q4Q== + dependencies: + base64-arraybuffer "^0.2.0" + bignumber.js "^9.0.0" + borc "^2.1.1" + js-sha256 "0.9.0" + simple-cbor "^0.4.1" + +"@dfinity/candid@^0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@dfinity/candid/-/candid-0.11.3.tgz#aed66124751545522acf9bde7cdc22b5d9ce31df" + integrity sha512-xX7xNj2lLt7SIlvy0sqNp4fpcTD/xnwEu9APj0tnIF64cnsxIiS12T1Z8jl9g80jCQ1CbRPQf4cfsOfS3Cd2OA== + +"@dfinity/nns@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@dfinity/nns/-/nns-0.5.0.tgz#f34244c9b79597edd78bfb8793cca7ac9771c38d" + integrity sha512-zFZswSTRx5VsyuC6cufmHibTXLbIfzhvzitB8X4i6tpGLT/0K7gMpKR6gYsDyG/Gq+aF2Z6CxEfE/RJIGQGbSw== + dependencies: + "@dfinity/agent" "^0.11.3" + "@dfinity/candid" "^0.11.3" + "@dfinity/principal" "^0.11.3" + crc "^4.1.1" + crc-32 "^1.2.2" + google-protobuf "^3.20.1" + js-sha256 "^0.9.0" + randombytes "^2.1.0" + +"@dfinity/principal@^0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@dfinity/principal/-/principal-0.11.3.tgz#2130a7673bb8c2d404bc9842136547a91cb3edd2" + integrity sha512-+AJGDJ+RsveybSdxuTQFr2DPNZFpPfXnyixAOFWWdElVniSwnO/SwqQChR0AWvJdy/fKqoAXK+ZzyLG0uqSetA== + "@elrondnetwork/bls-wasm@0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@elrondnetwork/bls-wasm/-/bls-wasm-0.3.3.tgz#5164a95f39727c53dba877bf43c0374bca9f01eb" @@ -2803,6 +2838,11 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= +base64-arraybuffer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45" + integrity sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ== + base64-js@*, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -3004,6 +3044,19 @@ body-parser@^1.16.0: type-is "~1.6.18" unpipe "1.0.0" +borc@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" + integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== + dependencies: + bignumber.js "^9.0.0" + buffer "^5.5.0" + commander "^2.15.0" + ieee754 "^1.1.13" + iso-url "~0.4.7" + json-text-sequence "~0.1.0" + readable-stream "^3.6.0" + borsh@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" @@ -3360,7 +3413,7 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.20.3: +commander@^2.15.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -3462,11 +3515,16 @@ cors@^2.8.1: object-assign "^4" vary "^1" -crc-32@^1.2.0: +crc-32@^1.2.0, crc-32@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== +crc@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/crc/-/crc-4.1.1.tgz#cb926237b56739f82c8533da1b66925ed33e011f" + integrity sha512-2U3ZqJ2phJl9ANuP2q5VS53LMpNmYU9vcpmh6nutJmsqUREhtWpTRh9yYxG7sDg3xkwaEEXytSeffTxw4cgwPg== + create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -3550,15 +3608,9 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -"crypto-exchange-rate@git+https://github.com/XP-NETWORK/exchange-rate#ae839df99ed55c3670b47dbaaa0503425e2d17e8": - version "1.0.0" - resolved "git+https://github.com/XP-NETWORK/exchange-rate#ae839df99ed55c3670b47dbaaa0503425e2d17e8" - dependencies: - axios "^0.21.1" - -"crypto-exchange-rate@git+https://github.com/XP-NETWORK/exchange-rate#da4e9788428e1ce135e6ecf10a3e5c4b94c7313a": +"crypto-exchange-rate@git+https://github.com/XP-NETWORK/exchange-rate#5b63a5831f8e89625969852cb29f8f6983b4c93e": version "1.0.0" - resolved "git+https://github.com/XP-NETWORK/exchange-rate#da4e9788428e1ce135e6ecf10a3e5c4b94c7313a" + resolved "git+https://github.com/XP-NETWORK/exchange-rate#5b63a5831f8e89625969852cb29f8f6983b4c93e" dependencies: axios "^0.21.1" @@ -3684,6 +3736,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +delimit-stream@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" + integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -5355,6 +5412,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +iso-url@~0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" + integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== + isomorphic-webcrypto@2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/isomorphic-webcrypto/-/isomorphic-webcrypto-2.3.8.tgz#4a7493b486ef072b9f11b6f8fd66adde856e3eec" @@ -5428,7 +5490,7 @@ js-base64@^3.6.1: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.1.tgz#555aae398b74694b4037af1f8a5a6209d170efbe" integrity sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ== -js-sha256@^0.9.0: +js-sha256@0.9.0, js-sha256@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== @@ -5515,6 +5577,13 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json-text-sequence@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" + integrity sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w== + dependencies: + delimit-stream "0.1.0" + jsonc-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" @@ -7078,6 +7147,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +simple-cbor@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/simple-cbor/-/simple-cbor-0.4.1.tgz#0c88312e87db52b94e0e92f6bd1cf634e86f8a22" + integrity sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w== + simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" From b30987119a642b1a548c880550789ef81486a703 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 27 Jun 2022 19:51:58 +0530 Subject: [PATCH 559/956] dfinity: add approval --- src/helpers/dfinity.ts | 45 +++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/src/helpers/dfinity.ts b/src/helpers/dfinity.ts index 24893d8ef..d24c39e2a 100644 --- a/src/helpers/dfinity.ts +++ b/src/helpers/dfinity.ts @@ -15,6 +15,7 @@ import { EvNotifier } from "../notifier"; import { ChainNonceGet, EstimateTxFees, + PreTransfer, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -27,12 +28,14 @@ export type DfinityNft = { tokenId: string; }; -// TODO: approval export type DfinityHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & - ValidateAddress & { XpNft: string }; + ValidateAddress & { XpNft: string } & Pick< + PreTransfer, + "preTransfer" + >; export type DfinityParams = { agent: HttpAgent; @@ -78,15 +81,7 @@ export async function dfinityHelper( return false; } }, - async transferNftToForeign( - sender, - chain_nonce, - to, - id, - txFees, - mintWith, - gasLimit? - ) { + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { args.agent.replaceIdentity(sender); const txFeeBlock = await transferTxFee(txFees); @@ -135,5 +130,33 @@ export async function dfinityHelper( return Buffer.from(withdrawCall.requestId).toString("hex"); }, + async preTransfer(sender, nft) { + args.agent.replaceIdentity(sender); + + const nftContract = Principal.fromText(nft.native.canisterId); + const approvedQuery = await args.agent.query(nftContract, { + methodName: "getApproved", + arg: encode([Nat], [BigInt(nft.native.tokenId)]), + }); + + if ( + "reply" in approvedQuery && + decode([new PrincipalClass()], approvedQuery.reply.arg)[0].toString() == + args.bridgeContract.toString() + ) { + // already approved + return; + } + + const approveCall = await args.agent.call(nftContract, { + methodName: "approve", + arg: encode( + [new PrincipalClass(), Nat], + [args.bridgeContract, BigInt(nft.native.tokenId)] + ), + }); + + return Buffer.from(approveCall.requestId).toString("hex"); + }, }; } From da7979b7478ae8c87187fdf976a1178ee8a63cc4 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 27 Jun 2022 20:00:40 +0530 Subject: [PATCH 560/956] dfinity: add balance check --- src/helpers/dfinity.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/helpers/dfinity.ts b/src/helpers/dfinity.ts index d24c39e2a..a04a128d2 100644 --- a/src/helpers/dfinity.ts +++ b/src/helpers/dfinity.ts @@ -13,6 +13,7 @@ import BigNumber from "bignumber.js"; import { Chain } from "../consts"; import { EvNotifier } from "../notifier"; import { + BalanceCheck, ChainNonceGet, EstimateTxFees, PreTransfer, @@ -35,7 +36,8 @@ export type DfinityHelper = ChainNonceGet & ValidateAddress & { XpNft: string } & Pick< PreTransfer, "preTransfer" - >; + > & + BalanceCheck; export type DfinityParams = { agent: HttpAgent; @@ -158,5 +160,16 @@ export async function dfinityHelper( return Buffer.from(approveCall.requestId).toString("hex"); }, + async balance(address) { + const bal = await ledger.accountBalance({ + accountIdentifier: AccountIdentifier.fromPrincipal({ + principal: Principal.fromText(address), + }), + }); + + const e8s = bal.toE8s().toString(); + + return new BigNumber(e8s); + }, }; } From 4a5de228206b92a04e576c05965d19b98a12cc5d Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 28 Jun 2022 22:22:41 +0530 Subject: [PATCH 561/956] tezos: fix isApprovedForMinter --- package.json | 6 +- src/helpers/tezos.ts | 49 ++------ yarn.lock | 263 +++++++++++++++++++++++++++---------------- 3 files changed, 183 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index 97b138cc7..72522a408 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,9 @@ "@randlabs/myalgo-connect": "^1.1.1", "@solana/spl-token": "^0.2.0", "@solana/web3.js": "^1.44.2", - "@taquito/signer": "^11.1.0", - "@taquito/taquito": "^11.1.0", - "@taquito/tzip12": "^11.1.0", + "@taquito/signer": "^13.0.0", + "@taquito/taquito": "^13.0.0", + "@taquito/tzip12": "^13.0.0", "@vechain/connex-driver": "^2.0.8", "@vechain/connex-framework": "^2.0.8", "@vechain/ethers": "^4.0.27-5", diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index ab9c1594d..cb1a5575e 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -12,7 +12,7 @@ import { ValidateAddress, } from ".."; import { - ChainIds, + BigMapAbstraction, ContractAbstraction, ContractMethod, ContractProvider, @@ -27,7 +27,6 @@ import { import * as utils from "@taquito/utils"; import BigNumber from "bignumber.js"; -import axios from "axios"; import { EvNotifier } from "../notifier"; import { FeeMargins, GetFeeMargins } from "./chain"; @@ -51,7 +50,7 @@ export type TezosHelper = TransferNftForeign< ChainNonceGet & Pick, "preTransfer"> & { isApprovedForMinter( - signer: Signer, + signer: TezosSigner, nft: NftInfo ): Promise; } & { @@ -84,11 +83,6 @@ export async function tezosHelperFactory({ return new BigNumber(baseprice * (validators.length + 1)); }; - const net = - (await Tezos.rpc.getChainId()) == ChainIds.MAINNET - ? "mainnet" - : "hangzhou2net"; - async function withContract( sender: TezosSigner, contract: string, @@ -141,34 +135,15 @@ export async function tezosHelperFactory({ sender: TezosSigner, nft: NftInfo ) { - const baseUrl = `https://sheltered-crag-76748.herokuapp.com/https://api.better-call.dev/v1/contract/${net}/${nft.native.contract}/entrypoints/trace`; const owner = await getAddress(sender); - const res = await axios - .post(baseUrl, { - name: "update_operators", - source: owner, - data: { - update_operators: [ - { - "@or_29": { - add_operator: { - "@pair_32": { - token_id: nft.native.token_id, - operator: bridgeAddress, - }, - owner, - }, - schemaKey: "L", - }, - }, - ], - }, - }) - .catch((_) => undefined); - if (res == undefined) { - return false; - } - return res.data[0].status != "applied"; + const contract = await Tezos.contract.at(nft.native.contract); + const storage = await contract.storage<{ operators: BigMapAbstraction }>(); + let op = await storage.operators.get({ + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }); + return op != undefined; } async function notifyValidator(hash: string): Promise { @@ -196,7 +171,7 @@ export async function tezosHelperFactory({ return { XpNft: xpnftAddress, async transferNftToForeign(sender, chain, to, nft, fee, mw) { -// await preTransfer(sender, nft); + // await preTransfer(sender, nft); const hash = await withBridge( sender, (bridge) => @@ -214,7 +189,7 @@ export async function tezosHelperFactory({ return hash; }, async balance(address) { - return Tezos.tz.getBalance(address); + return new BigNumber((await Tezos.tz.getBalance(address)).toString(10)); }, async unfreezeWrappedNft(sender, to, nft, fee, nonce) { const hash = await withBridge( diff --git a/yarn.lock b/yarn.lock index 7773e4acc..7c01c7dec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1804,6 +1804,16 @@ "@stablelib/hash" "^1.0.1" "@stablelib/wipe" "^1.0.1" +"@stablelib/bytes@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" + integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== + +"@stablelib/constant-time@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" + integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== + "@stablelib/ed25519@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.2.tgz#937a88a2f73a71d9bdc3ea276efe8954776ae0f4" @@ -1823,6 +1833,32 @@ resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== +"@stablelib/keyagreement@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f" + integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== + dependencies: + "@stablelib/bytes" "^1.0.1" + +"@stablelib/nacl@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/nacl/-/nacl-1.0.3.tgz#e1ad2a48c47809e475a07d35692cd41f79e39990" + integrity sha512-ZdDGRo4s6ke2rdhwwna5SAikU48AQRNqPPbJ29ZSC781SMUMPpkixKpyZG+NfYhMkFSJ0ZRlFdKW+/ksmpVHWA== + dependencies: + "@stablelib/poly1305" "^1.0.1" + "@stablelib/random" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + "@stablelib/x25519" "^1.0.2" + "@stablelib/xsalsa20" "^1.0.2" + +"@stablelib/poly1305@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc" + integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + "@stablelib/random@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.1.tgz#4357a00cb1249d484a9a71e6054bc7b8324a7009" @@ -1831,6 +1867,15 @@ "@stablelib/binary" "^1.0.1" "@stablelib/wipe" "^1.0.1" +"@stablelib/salsa20@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/salsa20/-/salsa20-1.0.2.tgz#95177331f89a59d1c90f153f53265c925d4de138" + integrity sha512-nfjKzw0KTKrrKBasEP+j7UP4I8Xudom8lVZIBCp0kQNARXq72IlSic0oabg2FC1NU68L4RdHrNJDd8bFwrphYA== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + "@stablelib/sha512@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" @@ -1845,6 +1890,24 @@ resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== +"@stablelib/x25519@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.2.tgz#ae21e2ab668076ec2eb2b4853b82a27fab045fa1" + integrity sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw== + dependencies: + "@stablelib/keyagreement" "^1.0.1" + "@stablelib/random" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/xsalsa20@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/xsalsa20/-/xsalsa20-1.0.2.tgz#89efc22a7ba432880ef11d876fdeba13529ccdc4" + integrity sha512-7XdBGbcNgBShmuhDXv1G1WPVCkjZdkb1oPMzSidO7Fve0MHntH6TjFkj5bfLI+aRE+61weO076vYpP/jmaAYog== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/salsa20" "^1.0.2" + "@stablelib/wipe" "^1.0.1" + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -1859,96 +1922,104 @@ dependencies: defer-to-connect "^2.0.0" -"@taquito/http-utils@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-11.1.0.tgz#43e53b4f57f4f1aec355c84462ee1839ca6277cf" - integrity sha512-5kig7XKDcWlAxPx0qkGxyaqvS/rcz7DldcqcNvxAq+Z9Bb5viWIXQm4EaBKZ0KDh5PYjSS0HpbpvoGagIGwowQ== +"@taquito/http-utils@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-13.0.0.tgz#bbad571ef07740b52c8bc56c7663fc6568b4b66c" + integrity sha512-WNCGi0HyocFkNSLekBfHqKqnGB2kQ5gCKgIXoh2UVyuHTq3W5dWJO7pMVfeVSf9nYLVnsoIIfEC/d7jY7HIYQw== dependencies: - xhr2-cookies "^1.1.0" + axios "^0.26.0" -"@taquito/michel-codec@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@taquito/michel-codec/-/michel-codec-11.1.0.tgz#a32555ad70d931fd7c2cf3b03d57ba44bf77abe7" - integrity sha512-Gh1ehstk2OOixeQfc3/XQLPrI4Nr/8gJCWm/Zj5FWtn0GTsxGnZR6W4EjqbWF290b4LMO8FrOAc68+I3EvPaFQ== +"@taquito/local-forging@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@taquito/local-forging/-/local-forging-13.0.0.tgz#03f2dcda36bca5af0f5c9b60701ed7376ab8589a" + integrity sha512-59w1U94072FVgzAVRjADit26vHJ7lA7aC34ra9QWHVTYNul/S/+cvcGVCrRen8dt11NKytQCzkrRblh2xXFKeQ== + dependencies: + "@taquito/utils" "^13.0.0" + bignumber.js "^9.0.2" + +"@taquito/michel-codec@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@taquito/michel-codec/-/michel-codec-13.0.0.tgz#c6610f25739d7f6322e1ce72118a7ce0669b64df" + integrity sha512-t+1UopQO6dHzUpkrs/e3EyNtnm5wn1I8CJrj+OzYAm0ZCC2gns5d7e7Xm9nRQpU9xPFXNKqlmGUPuh5az513sA== -"@taquito/michelson-encoder@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@taquito/michelson-encoder/-/michelson-encoder-11.1.0.tgz#b3cd4d88e140f9a6a1b5d3b01f4806aee381d8df" - integrity sha512-XYoegKuQ2wnlQCMkaghI+QAVKH3xnIt7x3ChJvvnbpcKOHihFgWawK0nx1HKoz8GyW6+ZeOC2DgzP5uW0C6WRw== +"@taquito/michelson-encoder@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@taquito/michelson-encoder/-/michelson-encoder-13.0.0.tgz#48a41ceb8dea2da14c1ba5ad53617bb39de842c8" + integrity sha512-6R9U4kUlGLSK36OmSfKqU0GF+5+wwAhlqjgZhRYOdWjZ0kzeoPAAxLLC0kriZ5CZJBKr4ZSIrd64dtk4VdE/8w== dependencies: - "@taquito/rpc" "^11.1.0" - "@taquito/utils" "^11.1.0" - bignumber.js "^9.0.1" + "@taquito/rpc" "^13.0.0" + "@taquito/utils" "^13.0.0" + bignumber.js "^9.0.2" fast-json-stable-stringify "^2.1.0" -"@taquito/rpc@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@taquito/rpc/-/rpc-11.1.0.tgz#ec7bc2de1848330ac69f80f87f22655759d856a7" - integrity sha512-AUP1eUmjwwWzCSY00dIzGA2Xe9riO6kGG364TT3626qjDzEE/PxVy65oCiNC3BiXdtO4memQzdVI3gcKZYS3hA== +"@taquito/rpc@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@taquito/rpc/-/rpc-13.0.0.tgz#0917bbc9d7c7d42e5954c28bb9b0c9a7293b3fb8" + integrity sha512-g3CmrdCCEH5KiXIaAeZJ4RYYPtpitqTiv7GeDyYypOdUDQ1OBF/3c8d/Apx92bvSwbI/0I7nX46wtZHahWavmg== dependencies: - "@taquito/http-utils" "^11.1.0" - bignumber.js "^9.0.1" - lodash.get "^4.4.2" - lodash.set "^4.3.2" + "@taquito/http-utils" "^13.0.0" + "@taquito/utils" "^13.0.0" + bignumber.js "^9.0.2" -"@taquito/signer@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@taquito/signer/-/signer-11.1.0.tgz#ffb2656b332c477ee486356a6387cbe0ba48fe6a" - integrity sha512-WJLm2tJPb69F5jL/C4keIzJ/AbhmMzupiCS8jx0CXev+YKZmJE0kW7UpUzorLt9Va0grE9/VRxQiQVdAyp+w6A== +"@taquito/signer@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@taquito/signer/-/signer-13.0.0.tgz#9e7982a64bb1694520ab143c1645ed5db3bccab9" + integrity sha512-cBOlzWOz0/DEhzybTSFDXKCYyyUl5JRpErc5WTX2o8hw0VSx9LdGTtCoxQbcgR9VjLK8QmaiWsC3zDUbHT3q+w== dependencies: - "@taquito/taquito" "^11.1.0" - "@taquito/utils" "^11.1.0" - bignumber.js "^9.0.1" - bip39 "^3.0.4" + "@stablelib/blake2b" "^1.0.1" + "@stablelib/ed25519" "^1.0.2" + "@stablelib/nacl" "^1.0.3" + "@taquito/taquito" "^13.0.0" + "@taquito/utils" "^13.0.0" elliptic "^6.5.4" - libsodium-wrappers "0.7.8" pbkdf2 "^3.1.2" typedarray-to-buffer "^4.0.0" -"@taquito/taquito@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-11.1.0.tgz#96c86fb6c8b7425b0faccca8150fd5127fe278d8" - integrity sha512-aGibJBTi+kCCEhz3E+wHyJ6Pf/n30Tv/m/ag2ZMoWMYxWzOHepfkYaPQ6nq4eXUcWzAAxEuAtvgJBUB2pkHlog== - dependencies: - "@taquito/http-utils" "^11.1.0" - "@taquito/michel-codec" "^11.1.0" - "@taquito/michelson-encoder" "^11.1.0" - "@taquito/rpc" "^11.1.0" - "@taquito/utils" "^11.1.0" - bignumber.js "^9.0.1" +"@taquito/taquito@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-13.0.0.tgz#df08da00626e82ee83ee1f8f6c34041a92d64d3a" + integrity sha512-OhMAwDtDvoXkvZmiO1XgshtlLplQ+BGzciQe8sNuinHC2j8vV2aFxBiU/pSlc5WIU6RpIjQxaohFEaF3XZ7yrw== + dependencies: + "@taquito/http-utils" "^13.0.0" + "@taquito/local-forging" "^13.0.0" + "@taquito/michel-codec" "^13.0.0" + "@taquito/michelson-encoder" "^13.0.0" + "@taquito/rpc" "^13.0.0" + "@taquito/utils" "^13.0.0" + bignumber.js "^9.0.2" rxjs "^6.6.3" -"@taquito/tzip12@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@taquito/tzip12/-/tzip12-11.1.0.tgz#886d25939912da8fc13cf9e8a8271d8ff6e62333" - integrity sha512-O5ga32NwYn4zsRjgb1pSHqqiE9lkMqMZ+F/TojWaLuF3KQdYEUHUFOsATSx4I8CB+iG3HbklO/1/hxyNkTYY1g== - dependencies: - "@taquito/michelson-encoder" "^11.1.0" - "@taquito/taquito" "^11.1.0" - "@taquito/tzip16" "^11.1.0" - bignumber.js "^9.0.1" - -"@taquito/tzip16@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@taquito/tzip16/-/tzip16-11.1.0.tgz#a63d3306f0c88d0fd5aaaa912dd3a240b180c045" - integrity sha512-NIf4trDMP7fOMUebdBlTYF23OVEK6o6Os/wPi+VHpASVKbtBcFSOz/Df7ku/yWQN7U4G4goiCOtfvHWunwzitA== - dependencies: - "@taquito/http-utils" "^11.1.0" - "@taquito/michelson-encoder" "^11.1.0" - "@taquito/rpc" "^11.1.0" - "@taquito/taquito" "^11.1.0" - "@taquito/utils" "^11.1.0" - bignumber.js "^9.0.1" +"@taquito/tzip12@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@taquito/tzip12/-/tzip12-13.0.0.tgz#2f09030d45489a93b295242b43868b3d419f882a" + integrity sha512-AVUbdVNB1Sez3iS+4JN/wXsxmGLfYPdbzT9Nbu5O0GdXi/B05hU6UlMTnu0NReN9a/eRdmYKXP1CBjUbGLgkSg== + dependencies: + "@taquito/michelson-encoder" "^13.0.0" + "@taquito/taquito" "^13.0.0" + "@taquito/tzip16" "^13.0.0" + +"@taquito/tzip16@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@taquito/tzip16/-/tzip16-13.0.0.tgz#86c1cc66f26ee388d93e80bf8711cbcf9266e073" + integrity sha512-vcSKKYrJg/E6eM7UJ3aAKTVkEbb1R0jUl8CrLKtyGsePBDt4rBIMYJTvDNzJzNi69feUCfqj7gdgECy2aT4PNA== + dependencies: + "@taquito/http-utils" "^13.0.0" + "@taquito/michelson-encoder" "^13.0.0" + "@taquito/rpc" "^13.0.0" + "@taquito/taquito" "^13.0.0" + "@taquito/utils" "^13.0.0" + bignumber.js "^9.0.2" crypto-js "^4.1.1" -"@taquito/utils@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-11.1.0.tgz#f179881e0e211dfb2764fbf2ea4fd467ae3426c5" - integrity sha512-65Ms8lRD7Y7E4X9wqDugtoskRhGvonn4MTVfuWCZJEDHR6iKhy5SO/fy31wWvTc8281BsNelvniiItHgLx69wg== +"@taquito/utils@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-13.0.0.tgz#1b39f8f2227dbdc98e4729ff8cbd7f4fdeff937a" + integrity sha512-b6uD3VOb8YSrExEH5beicDSNGuEfuH2qvJYx4FX5OI+EfXa9EfORfUNNsHzkEn/Rh3Ue3jKFbymPvkFhM95uiw== dependencies: "@stablelib/blake2b" "^1.0.1" "@stablelib/ed25519" "^1.0.2" - blakejs "^1.1.0" + "@types/bs58check" "^2.1.0" + blakejs "^1.1.1" bs58check "^2.1.2" buffer "^6.0.3" elliptic "^6.5.4" @@ -1968,6 +2039,13 @@ dependencies: "@types/node" "*" +"@types/bs58check@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/bs58check/-/bs58check-2.1.0.tgz#7d25a8b88fe7a9e315d2647335ee3c43c8fdb0c0" + integrity sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ== + dependencies: + "@types/node" "*" + "@types/cacheable-request@^6.0.1": version "6.0.2" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" @@ -2784,6 +2862,13 @@ axios@^0.21.1: dependencies: follow-redirects "^1.10.0" +axios@^0.26.0: + version "0.26.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" + integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== + dependencies: + follow-redirects "^1.14.8" + b64-lite@^1.3.1, b64-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/b64-lite/-/b64-lite-1.4.0.tgz#e62442de11f1f21c60e38b74f111ac0242283d3d" @@ -2891,7 +2976,7 @@ bignumber.js@9.0.1, bignumber.js@=9.0.1, bignumber.js@^9.0.0, bignumber.js@^9.0. resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== -bignumber.js@9.0.2: +bignumber.js@9.0.2, bignumber.js@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== @@ -2941,7 +3026,7 @@ bip39@3.0.2: pbkdf2 "^3.0.9" randombytes "^2.0.1" -bip39@3.0.4, bip39@^3.0.4: +bip39@3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== @@ -2980,6 +3065,11 @@ blakejs@^1.1.0: resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== +blakejs@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== + bluebird@3.7.2, bluebird@^3.5.0: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -4672,6 +4762,11 @@ follow-redirects@^1.14.4: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== +follow-redirects@^1.14.8: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" @@ -5667,18 +5762,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -libsodium-wrappers@0.7.8: - version "0.7.8" - resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz#d95cdf3e7236c2aef76844bf8e1929ba9eef3e9e" - integrity sha512-PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg== - dependencies: - libsodium "0.7.8" - -libsodium@0.7.8: - version "0.7.8" - resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.8.tgz#fbd12247b7b1353f88d8de1cbc66bc1a07b2e008" - integrity sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ== - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -5698,21 +5781,11 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.set@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" - integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= - lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" @@ -8352,7 +8425,7 @@ xhr-request@^1.0.1, xhr-request@^1.1.0: url-set-query "^1.0.0" xhr "^2.0.4" -xhr2-cookies@1.1.0, xhr2-cookies@^1.1.0: +xhr2-cookies@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= From b2a33f20caabafd0d879bfdddeeff7f2c7491d7d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 29 Jun 2022 18:05:43 +0530 Subject: [PATCH 562/956] factories: add hedera --- package.json | 3 +- src/consts.ts | 10 + src/factory/factories.ts | 13 ++ src/factory/index.ts | 23 +- yarn.lock | 443 +++++++++++++++++++++++++++++++++++++-- 5 files changed, 460 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 72522a408..c8e72322a 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "@dfinity/nns": "^0.5.0", "@dfinity/principal": "^0.11.3", "@elrondnetwork/erdjs": "9.0.3", + "@hashgraph/hethers": "^1.1.2", "@json-rpc-tools/utils": "^1.7.6", "@project-serum/anchor": "^0.25.0-beta.1", "@randlabs/myalgo-connect": "^1.1.1", @@ -50,7 +51,7 @@ "algosdk": "^1.15.0-beta.1", "axios": "^0.21.1", "bignumber.js": "=9.0.1", - "crypto-exchange-rate": "git+https://github.com/XP-NETWORK/exchange-rate#5b63a5831f8e89625969852cb29f8f6983b4c93e", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/src/consts.ts b/src/consts.ts index e55d92d57..bd5651966 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -111,6 +111,7 @@ export type MetaMap = { 0x1a: SolanaMeta; 0x1b: TonMeta; 0x1c: DfinityMeta; + 0x1d: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -140,6 +141,7 @@ export namespace Chain { export const SOLANA = 0x1a; export const TON = 0x1b; export const DFINITY = 0x1c; + export const HEDERA = 0x1d; } interface ChainData { @@ -385,3 +387,11 @@ CHAIN_INFO.set(Chain.DFINITY, { currency: SupportedCurrency.ICP, decimals: 1e8, }); +CHAIN_INFO.set(Chain.HEDERA, { + blockExplorerUrl: "https://hashscan.io/#/testnet/transaction", + constructor: web3HelperFactory, + currency: SupportedCurrency.HBAR, + decimals: 1e18, + nonce: Chain.HEDERA, + name: "Hedera", +}); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index b86327beb..dff96372f 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -8,6 +8,7 @@ import { evNotifier } from "../notifier"; import { Driver, SimpleNet } from "@vechain/connex-driver"; import * as thor from "web3-providers-connex"; import { Framework } from "@vechain/connex-framework"; +import { hethers } from "@hashgraph/hethers"; /*const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", @@ -30,6 +31,7 @@ const testnet_middleware_uri = "https://testnet-notifier.xp.network/notify-test/"; export namespace ChainFactoryConfigs { + //@ts-ignore export const TestNet: () => Promise> = async () => { const feeMargin = { min: 1, max: 5 }; const notifier = evNotifier(testnet_middleware_uri); @@ -239,6 +241,17 @@ export namespace ChainFactoryConfigs { nonce: Chain.IOTEX, feeMargin, }, + hederaParams: { + notifier, + provider: hethers.providers.getDefaultProvider("testnet"), + feeMargin, + nonce: Chain.HEDERA, + minter_addr: "", + erc1155Minter: "", + erc1155_addr: "", + erc721Minter: "", + erc721_addr: "", + }, godwokenParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.GODWOKEN), diff --git a/src/factory/index.ts b/src/factory/index.ts index bc424b0eb..c8913f9d6 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -252,6 +252,7 @@ export interface ChainParams { godwokenParams: Web3Params; gateChainParams: Web3Params; secretParams: SecretParams; + hederaParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -300,6 +301,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.GATECHAIN, chainParams.gateChainParams); cToP.set(Chain.VECHAIN, chainParams.vechainParams); cToP.set(Chain.SECRET, chainParams.secretParams); + cToP.set(Chain.HEDERA, chainParams.hederaParams); return cToP; } /** @@ -497,15 +499,18 @@ export function ChainFactory( tc: number, fc: number ): Promise { - try{ const _from = ethers.utils.getAddress(from); - const res = await axios.get<{ data: { to: string }[] }>( - `${appConfig.scVerifyUri}/verify/list?from=${_from}&targetChain=${tc}&fromChain=${fc}` - ); - return res.data.data.map((r) => r.to);} - catch(err){ - const res = await axios.get<{ data: { to: string }[] }>(`${appConfig.scVerifyUri}/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}`); - return res.data.data.map((r) => r.to); - } + try { + const _from = ethers.utils.getAddress(from); + const res = await axios.get<{ data: { to: string }[] }>( + `${appConfig.scVerifyUri}/verify/list?from=${_from}&targetChain=${tc}&fromChain=${fc}` + ); + return res.data.data.map((r) => r.to); + } catch (err) { + const res = await axios.get<{ data: { to: string }[] }>( + `${appConfig.scVerifyUri}/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}` + ); + return res.data.data.map((r) => r.to); + } } return { getVerifiedContracts, diff --git a/yarn.lock b/yarn.lock index 7c01c7dec..597323d04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -871,6 +871,14 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" +"@ethersproject/random@5.5.0", "@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" + integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/random@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.1.tgz#7cdf38ea93dc0b1ed1d8e480ccdaf3535c555415" @@ -887,14 +895,6 @@ "@ethersproject/bytes" "^5.6.0" "@ethersproject/logger" "^5.6.0" -"@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" - integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/rlp@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931" @@ -1190,6 +1190,17 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" +"@ethersproject/web@5.5.0", "@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" + integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== + dependencies: + "@ethersproject/base64" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + "@ethersproject/web@5.5.1": version "5.5.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.1.tgz#cfcc4a074a6936c657878ac58917a61341681316" @@ -1212,17 +1223,6 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.0" -"@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" - integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== - dependencies: - "@ethersproject/base64" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/wordlists@5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7" @@ -1256,6 +1256,25 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.0" +"@grpc/grpc-js@^1.5.3": + version "1.6.7" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.7.tgz#4c4fa998ff719fe859ac19fe977fdef097bb99aa" + integrity sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw== + dependencies: + "@grpc/proto-loader" "^0.6.4" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.6.4": + version "0.6.13" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.13.tgz#008f989b72a40c60c96cd4088522f09b05ac66bc" + integrity sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g== + dependencies: + "@types/long" "^4.0.1" + lodash.camelcase "^4.3.0" + long "^4.0.0" + protobufjs "^6.11.3" + yargs "^16.2.0" + "@hapi/hoek@^9.0.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" @@ -1268,6 +1287,271 @@ dependencies: "@hapi/hoek" "^9.0.0" +"@hashgraph/cryptography@^1.1.0-beta.5": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@hashgraph/cryptography/-/cryptography-1.3.0.tgz#2c2f55d80c91cf63b8e297ca237dc1288c52a0f5" + integrity sha512-nyNXVNy58iFcr9DqgNdPWDVLK631mvkUYesoiJEZZ1/Pzhw0lP8nt4YnXZeflsr52sjSy0+uxJSJoHv3rTdJRQ== + dependencies: + bignumber.js "^9.0.2" + crypto-js "^4.1.1" + elliptic "^6.5.4" + js-base64 "^3.7.2" + tweetnacl "^1.0.3" + utf8 "^3.0.0" + +"@hashgraph/hethers@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hashgraph/hethers/-/hethers-1.1.2.tgz#f665b0068b9ec5423181ce6cc2f07db096174732" + integrity sha512-DezQCwm86oQCIXfDwJI6G+/RI0YPy9a/Ho/z3CRUSY9/1gBB0ZFRSK9HUovlrj30eyNtWVeIrHsYE+ZerQI5rQ== + dependencies: + "@ethersproject/solidity" "5.5.0" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.2" + "@hethers/address" "1.1.0" + "@hethers/constants" "1.1.0" + "@hethers/contracts" "1.1.1" + "@hethers/hdnode" "1.1.1" + "@hethers/json-wallets" "1.1.1" + "@hethers/logger" "1.1.0" + "@hethers/networks" "1.1.0" + "@hethers/providers" "1.1.1" + "@hethers/signing-key" "1.1.0" + "@hethers/transactions" "1.1.1" + "@hethers/units" "1.1.0" + "@hethers/wallet" "1.1.1" + +"@hashgraph/proto@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@hashgraph/proto/-/proto-2.1.5.tgz#665202dc2c0fe099a5a07018bc82a409cb0933be" + integrity sha512-7iKO98T3iS+V+Ddy3Ew7+u8nzFT8MjRs6HczPE2scCjwKRhsodtYfGyOxVji+HN6WDqZmylr1VJwhNy5de/CRQ== + dependencies: + long "^4.0.0" + protobufjs "^6.11.2" + +"@hashgraph/sdk@2.11.0-beta.1": + version "2.11.0-beta.1" + resolved "https://registry.yarnpkg.com/@hashgraph/sdk/-/sdk-2.11.0-beta.1.tgz#bc2d2dbc2c8768c78836dcaf108ec624887578d7" + integrity sha512-rpUSg0c580paop1uOvHhUFt7WGnDuvqC0iDpBr0Bp2jTOhgL12AOG5sF0RF/bEQfwAdsizgRBTT24xhmk07yhA== + dependencies: + "@grpc/grpc-js" "^1.5.3" + "@hashgraph/cryptography" "^1.1.0-beta.5" + "@hashgraph/proto" "2.1.5" + bignumber.js "^9.0.2" + crypto-js "^4.1.1" + js-base64 "^3.7.2" + js-logger "^1.6.1" + long "^4.0.0" + protobufjs "^6.11.2" + utf8 "^3.0.0" + +"@hethers/abstract-provider@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/abstract-provider/-/abstract-provider-1.1.1.tgz#1f1f946f5970cd56dd9a46b09dfaa0f66e8074a6" + integrity sha512-s3u4Cu2qpdWgLh7oYf/evCFk7sgZYlaaIhje6BMXFN+jOKgWWQA6MSECqHSc6h9p9eNEsKt1HmM7yWClikrzyQ== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/web" "5.5.0" + "@hethers/logger" "1.1.0" + "@hethers/networks" "1.1.0" + "@hethers/transactions" "1.1.1" + +"@hethers/abstract-signer@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.1.tgz#60d95c45811bad09c5eda9236b7ba3b9935c65bb" + integrity sha512-g6NyaC/Fwj+l30MqMudKRgL/zNJUcHFdJ5ZdRJAeJaOVBRl7Za3X/2Fz9/A1YJocnhvZFBygq67fl25a+1aKYw== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/abstract-provider" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/transactions" "1.1.1" + +"@hethers/abstract-signer@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.2.tgz#f42d02b1d5763b77535ad5236174c476a4e9357d" + integrity sha512-F66cbneTByr/BlfXvXsZ1wfjxXAa1daTMV0YNWrBgsjuT/xZxyqfuEMCNeHVYSd91S7gNlGGdGcEqKcqlJpVew== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/abstract-provider" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/transactions" "1.1.1" + +"@hethers/address@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/address/-/address-1.1.0.tgz#2b7f7d49524f211f12f27eedef68ed75cfebab53" + integrity sha512-aqZvvLe9n0Tc72aAGgjTR9NWLV+rcL9ORq9GOh9tuQ4GeY4XLT1vcI+liXMpjvDxAgEXfsgUWPW9MsZ7DOHSmA== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@hethers/logger" "1.1.0" + +"@hethers/constants@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/constants/-/constants-1.1.0.tgz#7c8b31e93b2e3ae77377880f66cb9ca23f9014cf" + integrity sha512-cto4CMH5bbLdzKyIHnBVx7aW1bipi92u94PBvXD3+EEdYgWMMSFhsAhNtpRo0YNovfG6Vqi5eqs+JM71bncnGw== + dependencies: + "@ethersproject/bignumber" "5.5.0" + +"@hethers/contracts@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/contracts/-/contracts-1.1.1.tgz#5f56f2741d46b810476f7d0a39b3c1f7a4019722" + integrity sha512-72zte2dgoLBnsf5DU1YtfbWvQ9OZh6S1qdBdRCxaNBc/3p0lTuxPWcerIuLeKV/HtDKnwSU4mYIoO46FWyZ2eA== + dependencies: + "@ethersproject/abi" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/providers" "1.1.1" + "@hethers/transactions" "1.1.1" + +"@hethers/hdnode@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/hdnode/-/hdnode-1.1.1.tgz#9c2a53f496b405ae8636dabeecf62bcd6b99c365" + integrity sha512-/yECuQAUaCGIhcDG3x81XJOH6nDwahfMpSq7B7AWl+buS7tswBF9fYwAD/G9SzgnjB9LlIaBWCJcK1/Z5sU39g== + dependencies: + "@ethersproject/basex" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/pbkdf2" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/sha2" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@ethersproject/wordlists" "5.5.0" + "@hethers/abstract-signer" "1.1.1" + "@hethers/logger" "1.1.0" + "@hethers/signing-key" "1.1.0" + "@hethers/transactions" "1.1.1" + +"@hethers/json-wallets@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/json-wallets/-/json-wallets-1.1.1.tgz#8746dada5206e9ef819056ae856fdffe20de70d9" + integrity sha512-GtEHrKex0B0u3EdTX6tYrMpYESvS1zZNraE1Q/gFyWpB/VmwEze2aUApdcEDnWiOJOvZhg5E8QOaSZeHzMS0SQ== + dependencies: + "@ethersproject/bytes" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/pbkdf2" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/random" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@hethers/abstract-signer" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/hdnode" "1.1.1" + "@hethers/logger" "1.1.0" + "@hethers/transactions" "1.1.1" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@hethers/logger@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/logger/-/logger-1.1.0.tgz#946017e30fd6b573f744d9bc76d005dd07e39549" + integrity sha512-EZAM5kirlNobe6auj7AUS1QyNOxunm9ZglatkC0fIx+9y4tEQsrx4asu5r2SPg1fgZiJ9mk2DbaidMWuHSr3kA== + +"@hethers/networks@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/networks/-/networks-1.1.0.tgz#55011e436566a0e34c8e3cab81ffd7eb16f709d0" + integrity sha512-xtS+5KHlyXND+1CbUCeMPJrqlyDk7ayhcxeAKSc7aHyHm1/wa3xI45W6tJj+AMDC8sGS5GZvAU3YrKSkUGTFdw== + dependencies: + "@hethers/address" "1.1.0" + "@hethers/logger" "1.1.0" + +"@hethers/providers@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/providers/-/providers-1.1.1.tgz#4dd374a75aeb99a03e93859b22d6f859dede8ec4" + integrity sha512-6CdwiB7GVD7tFm7G1mLemoVKgZ8KNiQvTTEyFxqazRFW6G8unVW07S104+hq/jfVL2eMoZP0O3LZLD+ny5Jelg== + dependencies: + "@ethersproject/base64" "5.5.0" + "@ethersproject/basex" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/hash" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/random" "5.5.0" + "@ethersproject/sha2" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@ethersproject/web" "5.5.0" + "@hashgraph/proto" "2.1.5" + "@hashgraph/sdk" "2.11.0-beta.1" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/constants" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/networks" "1.1.0" + "@hethers/transactions" "1.1.1" + "@types/axios" "^0.14.0" + axios "^0.24.0" + bech32 "1.1.4" + ws "7.4.6" + +"@hethers/signing-key@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/signing-key/-/signing-key-1.1.0.tgz#796c450d1245552db74bfb34778ff71ce18fbff9" + integrity sha512-Xf+0a2DI3hLcnx2reFO5B7+JSwJMNc9iyb1iWtxi0h6dgrHIF5h0bdRJXSY8a19953hZ6jhDvk5RwEzDaamUqw== + dependencies: + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/logger" "1.1.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.7" + +"@hethers/transactions@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/transactions/-/transactions-1.1.1.tgz#9e6bfa02547bede017065647eede0d49c1e3c23e" + integrity sha512-M4EL3l/xJ3MmtWSQEm8ZpD9LJUd9LPEi106VfBEL/ns/xcTW6wRlIw+xwLHdqDibZ8/Niu8SYN18LbHp/zY6ng== + dependencies: + "@ethersproject/base64" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/address" "1.1.0" + "@hethers/constants" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/signing-key" "1.1.0" + +"@hethers/units@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/units/-/units-1.1.0.tgz#765cab6f4aa3fdb21687c6e4bd62a5587e98044c" + integrity sha512-FNxIQalKF4TbgtpEicN9U0HPjlIhnXF1iNouxy1QzQVt58j+elJ6pj7d6Ht5LtwTW/UogGfx95803DZFXqrIhw== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@hethers/logger" "1.1.0" + +"@hethers/wallet@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/wallet/-/wallet-1.1.1.tgz#f1eddf7e4a77b821faa85392745ef404655e9f96" + integrity sha512-tg6vrjZL1t1FQziCat7zBx2IjqfFbWsQv5WwZkHPjn7Y/lFzmZuVYdh90t7/p3rquC96VGdmqYa/557qdotzRw== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/hash" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/random" "5.5.0" + "@ethersproject/wordlists" "5.5.0" + "@hashgraph/sdk" "2.11.0-beta.1" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/hdnode" "1.1.1" + "@hethers/json-wallets" "1.1.1" + "@hethers/logger" "1.1.0" + "@hethers/signing-key" "1.1.0" + "@hethers/transactions" "1.1.1" + "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" @@ -2025,6 +2309,13 @@ elliptic "^6.5.4" typedarray-to-buffer "^4.0.0" +"@types/axios@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@types/axios/-/axios-0.14.0.tgz#ec2300fbe7d7dddd7eb9d3abf87999964cafce46" + integrity sha512-KqQnQbdYE54D7oa/UmYVMZKq7CO4l8DEENzOKc4aBRwxCXSlJXGz83flFx5L7AWrOQnmuN3kVsRdt+GZPPjiVQ== + dependencies: + axios "*" + "@types/bn.js@^4.11.5": version "4.11.6" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" @@ -2129,6 +2420,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== +"@types/node@>=12.12.47": + version "18.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" + integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== + "@types/node@>=13.7.0": version "17.0.35" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.35.tgz#635b7586086d51fb40de0a2ec9d1014a5283ba4a" @@ -2848,6 +3144,14 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== +axios@*: + version "0.27.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== + dependencies: + follow-redirects "^1.14.9" + form-data "^4.0.0" + axios@0.24.0, axios@^0.24.0: version "0.24.0" resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6" @@ -3455,6 +3759,15 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -3704,6 +4017,12 @@ crypto-browserify@3.12.0: dependencies: axios "^0.21.1" +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": + version "1.0.0" + resolved "git+https://github.com/xp-network/exchange-rate#e18e569d4c6f2025d905a1c65a76471ae6db69f5" + dependencies: + axios "^0.21.1" + crypto-hash@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" @@ -4080,6 +4399,11 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: d "^1.0.1" ext "^1.1.2" +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -4762,7 +5086,7 @@ follow-redirects@^1.14.4: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== -follow-redirects@^1.14.8: +follow-redirects@^1.14.8, follow-redirects@^1.14.9: version "1.15.1" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== @@ -4786,6 +5110,15 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -4889,7 +5222,7 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -get-caller-file@^2.0.1: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -5585,6 +5918,16 @@ js-base64@^3.6.1: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.1.tgz#555aae398b74694b4037af1f8a5a6209d170efbe" integrity sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ== +js-base64@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" + integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== + +js-logger@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/js-logger/-/js-logger-1.6.1.tgz#8f09671b515e4a6f31dced8fdb8923432e2c60af" + integrity sha512-yTgMCPXVjhmg28CuUH8CKjU+cIKL/G+zTu4Fn4lQxs8mRFH/03QTNvEFngcxfg/gRDiQAOoyCKmMTOm9ayOzXA== + js-sha256@0.9.0, js-sha256@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" @@ -5776,6 +6119,11 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -6663,6 +7011,25 @@ protobufjs@6.11.2: "@types/node" ">=13.7.0" long "^4.0.0" +protobufjs@^6.11.2, protobufjs@^6.11.3: + version "6.11.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" + integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -7924,7 +8291,7 @@ utf-8-validate@^5.0.2: dependencies: node-gyp-build "^4.3.0" -utf8@3.0.0: +utf8@3.0.0, utf8@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== @@ -8366,6 +8733,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -8463,6 +8839,11 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yaeti@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" @@ -8486,6 +8867,11 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + yargs@^15.0.1, yargs@^15.1.0: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -8503,6 +8889,19 @@ yargs@^15.0.1, yargs@^15.1.0: y18n "^4.0.0" yargs-parser "^18.1.2" +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From 6167ff6a739e84520ef198d55f0bde687e453034 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 29 Jun 2022 22:05:30 +0530 Subject: [PATCH 563/956] ton: implement bridge funcs --- package.json | 1 + src/helpers/ton-bridge.ts | 3 +- src/helpers/ton.ts | 72 ++++++++++++++++++++++++++++++++++----- 3 files changed, 66 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index c8e72322a..0e4150d0b 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "algosdk": "^1.15.0-beta.1", "axios": "^0.21.1", "bignumber.js": "=9.0.1", + "buffer": "^6.0.3", "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", diff --git a/src/helpers/ton-bridge.ts b/src/helpers/ton-bridge.ts index efe809456..5d161cacf 100644 --- a/src/helpers/ton-bridge.ts +++ b/src/helpers/ton-bridge.ts @@ -25,6 +25,7 @@ interface BridgeMethods extends ContractMethods { interface WithdrawParams { chainNonce: number; to: Uint8Array; + txFees: BN; } interface FreezeParams { @@ -69,7 +70,7 @@ export class BridgeContract extends Contract { cell.bits.writeAddress(new TonWeb.Address(this.options.burner)); // target address cell.bits.writeAddress(await this.getAddress()); // bridge as response address cell.bits.writeBit(false); // null custom_payload - cell.bits.writeCoins(new BN(0)); // forward amount + cell.bits.writeCoins(params.txFees); // forward amount cell.bits.writeBit(false); // forward_payload in this slice, not separate cell const msg = new Cell(); diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 5232f3ad3..bb2dd45a9 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -2,6 +2,8 @@ import { BN } from "@project-serum/anchor"; import BigNumber from "bignumber.js"; import TonWeb from "tonweb"; import TonWebMnemonic from "tonweb-mnemonic"; +import { NftCollection } from "tonweb/dist/types/contract/token/nft/nft-collection"; +import { NftItem } from "tonweb/dist/types/contract/token/nft/nft-item"; import { Chain } from "../consts"; import { ChainNonceGet, @@ -10,9 +12,9 @@ import { UnfreezeForeignNft, ValidateAddress, } from "./chain"; -// import { BridgeContract } from "./ton-bridge"; +import { BridgeContract } from "./ton-bridge"; -export type TonSigner = TonWallet | { accIdx: number }; +export type TonSigner = { wallet?: TonWallet; accIdx: number }; export type TonNft = { nftId: number; @@ -47,9 +49,9 @@ type TonWallet = { }; export async function tonHelper(args: TonParams): Promise { - // const bridge = new BridgeContract(args.tonweb.provider, { - // burner: args.burnerAddr - // }); + const bridge = new BridgeContract(args.tonweb.provider, { + burner: args.burnerAddr, + }); const ton = args.tonweb as TonWeb & TonWallet; @@ -65,12 +67,64 @@ export async function tonHelper(args: TonParams): Promise { async validateAddress(adr) { return TonWeb.Address.isValid(adr); }, - async transferNftToForeign() { - // TODO + async transferNftToForeign(signer, chainNonce, to, nft, txFees, mintWith) { + const rSigner = signer.wallet || ton; + const addr = (await rSigner.send("ton_requestAccounts", undefined))[ + signer.accIdx + ]; + const nftColl = new NftCollection(ton.provider, { + ownerAddress: new TonWeb.Address(addr), + nftItemCodeHex: NftItem.codeHex, + }); + + const nftItemAddr = await nftColl.getNftItemAddressByIndex( + nft.native.nftId + ); + const txFeesFull = new BN(txFees.toString(10)); + const nftFee = TonWeb.utils.toNano("0.05"); + const payload = await bridge.createFreezeBody({ + amount: txFeesFull.sub(nftFee), + to: Buffer.from(to), + chainNonce, + mintWith: Buffer.from(mintWith), + }); + + await rSigner.send("ton_sendTransaction", { + value: nftFee.toString(10), + to: nftItemAddr.toString(true, true, true), + data: Buffer.from(await payload.getRepr()).toString("base64"), + }); + + // TODO: Tx hash return ""; }, - async unfreezeWrappedNft() { - // TODO + async unfreezeWrappedNft(signer, to, nft, txFees, chainNonce) { + const rSigner = signer.wallet || ton; + + const nftColl = new NftCollection(ton.provider, { + ownerAddress: await bridge.getAddress(), + nftItemCodeHex: NftItem.codeHex, + }); + + const nftItemAddr = await nftColl.getNftItemAddressByIndex( + nft.native.nftId + ); + + const txFeesFull = new BN(txFees.toString(10)); + const nftFee = TonWeb.utils.toNano("0.05"); + const payload = await bridge.createWithdrawBody({ + to: Buffer.from(to), + chainNonce: parseInt(chainNonce), + txFees: txFeesFull.sub(nftFee), + }); + + await rSigner.send("ton_sendTransaction", { + value: nftFee.toString(10), + to: nftItemAddr.toString(true, true, true), + data: Buffer.from(await payload.getRepr()).toString("base64"), + }); + + // TODO: tx hash return ""; }, tonKpWrapper(kp: TonWebMnemonic.KeyPair): TonWallet { From d80dac9ec46a36ca240d79404c3bfaeda7edc491 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 29 Jun 2022 22:11:03 +0530 Subject: [PATCH 564/956] helpers: tezos: add isNftWhitelisted --- src/helpers/tezos.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index cb1a5575e..bd97d8d72 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -28,7 +28,7 @@ import { import * as utils from "@taquito/utils"; import BigNumber from "bignumber.js"; import { EvNotifier } from "../notifier"; -import { FeeMargins, GetFeeMargins } from "./chain"; +import { FeeMargins, GetFeeMargins, WhitelistCheck } from "./chain"; type TezosSigner = WalletProvider | Signer; @@ -60,7 +60,8 @@ export type TezosHelper = TransferNftForeign< ): Promise; } & { XpNft: string; - } & GetFeeMargins; + } & GetFeeMargins & + WhitelistCheck; export type TezosParams = { Tezos: TezosToolkit; @@ -241,5 +242,14 @@ export async function tezosHelperFactory({ preTransfer, isApprovedForMinter, approveForMinter: (nft, sender) => preTransfer(sender, nft), + async isNftWhitelisted(nft) { + const bridge = await Tezos.contract.at(bridgeAddress); + const storage = await bridge.storage<{ + nft_whitelist: BigMapAbstraction; + }>(); + const whitelisted = await storage.nft_whitelist.get(nft.native.contract); + + return whitelisted == 2; + }, }; } From bb12c4693c003c3a3f13b39cc79186afab2a9346 Mon Sep 17 00:00:00 2001 From: rupansh Date: Wed, 29 Jun 2022 22:14:31 +0530 Subject: [PATCH 565/956] update yarn.lock --- yarn.lock | 6 ------ 1 file changed, 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 597323d04..e6eb31d60 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4011,12 +4011,6 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -"crypto-exchange-rate@git+https://github.com/XP-NETWORK/exchange-rate#5b63a5831f8e89625969852cb29f8f6983b4c93e": - version "1.0.0" - resolved "git+https://github.com/XP-NETWORK/exchange-rate#5b63a5831f8e89625969852cb29f8f6983b4c93e" - dependencies: - axios "^0.21.1" - "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#e18e569d4c6f2025d905a1c65a76471ae6db69f5" From 208816952af4a6c78081108fd3d60cad66ad43fb Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 30 Jun 2022 11:59:33 +0300 Subject: [PATCH 566/956] new gnosis rpc mainnet --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index bd5651966..09898665d 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -59,7 +59,7 @@ export enum MainNetRpcUri { TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", HARMONY = "https://rpc.s0.t.hmny.io", - XDAI = "https://rpc.xdaichain.com/", + XDAI = "https://gnosischain-rpc.gateway.pokt.network", FUSE = "https://rpc.fuse.io/", VELAS = "https://mainnet.velas.com/rpc", TEZOS = "https://mainnet.smartpy.io", From 097349f5cddc732c36834831ff631c468672fae1 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 30 Jun 2022 13:19:39 +0300 Subject: [PATCH 567/956] yarn lock fix --- yarn.lock | 3551 +++++++++++++++++++---------------------------------- 1 file changed, 1292 insertions(+), 2259 deletions(-) diff --git a/yarn.lock b/yarn.lock index e6eb31d60..357cc53c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,37 +10,23 @@ "@babel/highlight" "^7.10.4" "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/helper-validator-identifier@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" - integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== + "@babel/highlight" "^7.18.6" -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/highlight@^7.10.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" - integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.5" - chalk "^2.0.0" - js-tokens "^4.0.0" +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== -"@babel/highlight@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" - integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== +"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7", "@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" @@ -51,17 +37,10 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" - integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" - integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580" + integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ== dependencies: regenerator-runtime "^0.13.4" @@ -165,10 +144,10 @@ flow-copy-source "^2.0.9" flow-typed "^3.2.1" -"@eslint/eslintrc@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" - integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -180,53 +159,23 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.3": - version "2.6.3" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.3.tgz#39ddece7300b336276bad6c02f6a9f1a082caa05" - integrity sha512-mQwPucDL7FDYIg9XQ8DL31CnIYZwGhU5hyOO5E+BMmT71G0+RHvIT5rIkLBirJEKxV6+Rcf9aEIY0kXInxUWpQ== +"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" + integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== dependencies: crc-32 "^1.2.0" - ethereumjs-util "^7.1.4" + ethereumjs-util "^7.1.5" "@ethereumjs/tx@^3.3.2": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.1.tgz#8d941b83a602b4a89949c879615f7ea9a90e6671" - integrity sha512-xzDrTiu4sqZXUcaBxJ4n4W5FrppwxLxZB4ZDGVLtxSQR4lVuOnFR6RcUHdg1mpUhAPVrmnzLJpxaeXnPxIyhWA== - dependencies: - "@ethereumjs/common" "^2.6.3" - ethereumjs-util "^7.1.4" - -"@ethersproject/abi@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" - integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== - dependencies: - "@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/abi@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.1.tgz#6ac28fafc9ef6f5a7a37e30356a2eb31fa05d39b" - integrity sha512-9mhbjUk76BiSluiiW4BaYyI58KSbDMMQpCLdsAR+RsT2GyATiNYxVv+pGWRrekmsIdY3I+hOqsYQSTkc8L/mcg== - dependencies: - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.5.0": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" + integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== + dependencies: + "@ethereumjs/common" "^2.6.4" + ethereumjs-util "^7.1.5" + +"@ethersproject/abi@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== @@ -241,156 +190,71 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/abi@5.6.0", "@ethersproject/abi@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.0.tgz#ea07cbc1eec2374d32485679c12408005895e9f3" - integrity sha512-AhVByTwdXCc2YQ20v300w6KVHle9g2OFc28ZAFCPnJyEpkv1xKXjZcSTgWOlv1i+0dqlgF8RCF2Rn2KC1t+1Vg== - dependencies: - "@ethersproject/address" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/constants" "^5.6.0" - "@ethersproject/hash" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" +"@ethersproject/abi@5.6.4", "@ethersproject/abi@^5.6.3": + version "5.6.4" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.4.tgz#f6e01b6ed391a505932698ecc0d9e7a99ee60362" + integrity sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg== + dependencies: + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" "@ethersproject/logger" "^5.6.0" "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.0" + "@ethersproject/strings" "^5.6.1" -"@ethersproject/abstract-provider@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e" - integrity sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - -"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.4.0", "@ethersproject/abstract-provider@^5.5.0": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" - integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" - -"@ethersproject/abstract-provider@5.6.0", "@ethersproject/abstract-provider@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz#0c4ac7054650dbd9c476cf5907f588bbb6ef3061" - integrity sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw== +"@ethersproject/abstract-provider@5.6.1", "@ethersproject/abstract-provider@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz#02ddce150785caf0c77fe036a0ebfcee61878c59" + integrity sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ== dependencies: - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" "@ethersproject/logger" "^5.6.0" - "@ethersproject/networks" "^5.6.0" + "@ethersproject/networks" "^5.6.3" "@ethersproject/properties" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - "@ethersproject/web" "^5.6.0" - -"@ethersproject/abstract-signer@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81" - integrity sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/web" "^5.6.1" -"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.4.0", "@ethersproject/abstract-signer@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" - integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - -"@ethersproject/abstract-signer@5.6.0", "@ethersproject/abstract-signer@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz#9cd7ae9211c2b123a3b29bf47aab17d4d016e3e7" - integrity sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ== +"@ethersproject/abstract-signer@5.6.2", "@ethersproject/abstract-signer@^5.5.0", "@ethersproject/abstract-signer@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz#491f07fc2cbd5da258f46ec539664713950b0b33" + integrity sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ== dependencies: - "@ethersproject/abstract-provider" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" + "@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" -"@ethersproject/address@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" - integrity sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - -"@ethersproject/address@5.5.0", "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" - integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - -"@ethersproject/address@5.6.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.0.tgz#13c49836d73e7885fc148ad633afad729da25012" - integrity sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ== +"@ethersproject/address@5.6.1", "@ethersproject/address@^5.5.0", "@ethersproject/address@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.1.tgz#ab57818d9aefee919c5721d28cd31fd95eff413d" + integrity sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q== dependencies: - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" "@ethersproject/logger" "^5.6.0" - "@ethersproject/rlp" "^5.6.0" + "@ethersproject/rlp" "^5.6.1" -"@ethersproject/base64@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" - integrity sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ== - dependencies: - "@ethersproject/bytes" "^5.4.0" - -"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.4.0", "@ethersproject/base64@^5.5.0": +"@ethersproject/base64@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== dependencies: "@ethersproject/bytes" "^5.5.0" -"@ethersproject/base64@5.6.0", "@ethersproject/base64@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.6.0.tgz#a12c4da2a6fb86d88563216b0282308fc15907c9" - integrity sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw== - dependencies: - "@ethersproject/bytes" "^5.6.0" - -"@ethersproject/basex@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6" - integrity sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg== +"@ethersproject/base64@5.6.1", "@ethersproject/base64@^5.5.0", "@ethersproject/base64@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.6.1.tgz#2c40d8a0310c9d1606c2c37ae3092634b41d87cb" + integrity sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw== dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/properties" "^5.4.0" + "@ethersproject/bytes" "^5.6.1" -"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.4.0", "@ethersproject/basex@^5.5.0": +"@ethersproject/basex@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== @@ -398,24 +262,15 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/properties" "^5.5.0" -"@ethersproject/basex@5.6.0", "@ethersproject/basex@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.6.0.tgz#9ea7209bf0a1c3ddc2a90f180c3a7f0d7d2e8a69" - integrity sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ== +"@ethersproject/basex@5.6.1", "@ethersproject/basex@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.6.1.tgz#badbb2f1d4a6f52ce41c9064f01eab19cc4c5305" + integrity sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA== dependencies: - "@ethersproject/bytes" "^5.6.0" + "@ethersproject/bytes" "^5.6.1" "@ethersproject/properties" "^5.6.0" -"@ethersproject/bignumber@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.1.tgz#64399d3b9ae80aa83d483e550ba57ea062c1042d" - integrity sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - bn.js "^4.11.9" - -"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.4.0", "@ethersproject/bignumber@^5.5.0": +"@ethersproject/bignumber@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== @@ -424,120 +279,53 @@ "@ethersproject/logger" "^5.5.0" bn.js "^4.11.9" -"@ethersproject/bignumber@5.6.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.6.0.tgz#116c81b075c57fa765a8f3822648cf718a8a0e26" - integrity sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA== +"@ethersproject/bignumber@5.6.2", "@ethersproject/bignumber@^5.5.0", "@ethersproject/bignumber@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.6.2.tgz#72a0717d6163fab44c47bcc82e0c550ac0315d66" + integrity sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw== dependencies: - "@ethersproject/bytes" "^5.6.0" + "@ethersproject/bytes" "^5.6.1" "@ethersproject/logger" "^5.6.0" - bn.js "^4.11.9" + bn.js "^5.2.1" -"@ethersproject/bytes@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" - integrity sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA== - dependencies: - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.5.0": +"@ethersproject/bytes@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== dependencies: "@ethersproject/logger" "^5.5.0" -"@ethersproject/bytes@5.6.1", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.6.0": +"@ethersproject/bytes@5.6.1", "@ethersproject/bytes@^5.5.0", "@ethersproject/bytes@^5.6.1": version "5.6.1" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.6.1.tgz#24f916e411f82a8a60412344bf4a813b917eefe7" integrity sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g== dependencies: "@ethersproject/logger" "^5.6.0" -"@ethersproject/constants@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" - integrity sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - -"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.4.0", "@ethersproject/constants@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" - integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - -"@ethersproject/constants@5.6.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.6.0.tgz#55e3eb0918584d3acc0688e9958b0cedef297088" - integrity sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA== - dependencies: - "@ethersproject/bignumber" "^5.6.0" - -"@ethersproject/contracts@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.1.tgz#3eb4f35b7fe60a962a75804ada2746494df3e470" - integrity sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w== - dependencies: - "@ethersproject/abi" "^5.4.0" - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - -"@ethersproject/contracts@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" - integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== +"@ethersproject/constants@5.6.1", "@ethersproject/constants@^5.5.0", "@ethersproject/constants@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.6.1.tgz#e2e974cac160dd101cf79fdf879d7d18e8cb1370" + integrity sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg== dependencies: - "@ethersproject/abi" "^5.5.0" - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" + "@ethersproject/bignumber" "^5.6.2" -"@ethersproject/contracts@5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.6.0.tgz#60f2cfc7addd99a865c6c8cfbbcec76297386067" - integrity sha512-74Ge7iqTDom0NX+mux8KbRUeJgu1eHZ3iv6utv++sLJG80FVuU9HnHeKVPfjd9s3woFhaFoQGf3B3iH/FrQmgw== - dependencies: - "@ethersproject/abi" "^5.6.0" - "@ethersproject/abstract-provider" "^5.6.0" - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/address" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/constants" "^5.6.0" +"@ethersproject/contracts@5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.6.2.tgz#20b52e69ebc1b74274ff8e3d4e508de971c287bc" + integrity sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g== + dependencies: + "@ethersproject/abi" "^5.6.3" + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" "@ethersproject/logger" "^5.6.0" "@ethersproject/properties" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - -"@ethersproject/hash@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" - integrity sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.5.0": + "@ethersproject/transactions" "^5.6.2" + +"@ethersproject/hash@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== @@ -551,140 +339,58 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/hash@5.6.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.6.0.tgz#d24446a5263e02492f9808baa99b6e2b4c3429a2" - integrity sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA== - dependencies: - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/address" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" +"@ethersproject/hash@5.6.1", "@ethersproject/hash@^5.5.0", "@ethersproject/hash@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.6.1.tgz#224572ea4de257f05b4abf8ae58b03a67e99b0f4" + integrity sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA== + dependencies: + "@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.0" - -"@ethersproject/hdnode@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac" - integrity sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/pbkdf2" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/wordlists" "^5.4.0" - -"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.4.0", "@ethersproject/hdnode@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" - integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/pbkdf2" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" + "@ethersproject/strings" "^5.6.1" -"@ethersproject/hdnode@5.6.0", "@ethersproject/hdnode@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.6.0.tgz#9dcbe8d629bbbcf144f2cae476337fe92d320998" - integrity sha512-61g3Jp3nwDqJcL/p4nugSyLrpl/+ChXIOtCEM8UDmWeB3JCAt5FoLdOMXQc3WWkc0oM2C0aAn6GFqqMcS/mHTw== +"@ethersproject/hdnode@5.6.2", "@ethersproject/hdnode@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.6.2.tgz#26f3c83a3e8f1b7985c15d1db50dc2903418b2d2" + integrity sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q== dependencies: - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/basex" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/basex" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" "@ethersproject/logger" "^5.6.0" - "@ethersproject/pbkdf2" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.1" "@ethersproject/properties" "^5.6.0" - "@ethersproject/sha2" "^5.6.0" - "@ethersproject/signing-key" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - "@ethersproject/wordlists" "^5.6.0" - -"@ethersproject/json-wallets@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz#2583341cfe313fc9856642e8ace3080154145e95" - integrity sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hdnode" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/pbkdf2" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - aes-js "3.0.0" - scrypt-js "3.0.1" + "@ethersproject/sha2" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/wordlists" "^5.6.1" -"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.4.0", "@ethersproject/json-wallets@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" - integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/pbkdf2" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/json-wallets@5.6.0", "@ethersproject/json-wallets@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.6.0.tgz#4c2fc27f17e36c583e7a252fb938bc46f98891e5" - integrity sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ== - dependencies: - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/address" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/hdnode" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" +"@ethersproject/json-wallets@5.6.1", "@ethersproject/json-wallets@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz#3f06ba555c9c0d7da46756a12ac53483fe18dd91" + integrity sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ== + dependencies: + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hdnode" "^5.6.2" + "@ethersproject/keccak256" "^5.6.1" "@ethersproject/logger" "^5.6.0" - "@ethersproject/pbkdf2" "^5.6.0" + "@ethersproject/pbkdf2" "^5.6.1" "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" + "@ethersproject/random" "^5.6.1" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318" - integrity sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A== - dependencies: - "@ethersproject/bytes" "^5.4.0" - js-sha3 "0.5.7" - -"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.4.0", "@ethersproject/keccak256@^5.5.0": +"@ethersproject/keccak256@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== @@ -692,66 +398,27 @@ "@ethersproject/bytes" "^5.5.0" js-sha3 "0.8.0" -"@ethersproject/keccak256@5.6.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.6.0.tgz#fea4bb47dbf8f131c2e1774a1cecbfeb9d606459" - integrity sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w== +"@ethersproject/keccak256@5.6.1", "@ethersproject/keccak256@^5.5.0", "@ethersproject/keccak256@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.6.1.tgz#b867167c9b50ba1b1a92bccdd4f2d6bd168a91cc" + integrity sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA== dependencies: - "@ethersproject/bytes" "^5.6.0" + "@ethersproject/bytes" "^5.6.1" js-sha3 "0.8.0" -"@ethersproject/logger@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" - integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== - -"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.4.0", "@ethersproject/logger@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" - integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== - -"@ethersproject/logger@5.6.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0": +"@ethersproject/logger@5.6.0", "@ethersproject/logger@^5.5.0", "@ethersproject/logger@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== -"@ethersproject/networks@5.4.2": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35" - integrity sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw== - dependencies: - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/networks@5.5.2": - version "5.5.2" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.2.tgz#784c8b1283cd2a931114ab428dae1bd00c07630b" - integrity sha512-NEqPxbGBfy6O3x4ZTISb90SjEDkWYDUbEeIFhJly0F7sZjoQMnj5KYzMSkMkLKZ+1fGpx00EDpHQCy6PrDupkQ== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/networks@5.6.1", "@ethersproject/networks@^5.6.0": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.6.1.tgz#7a21ed1f83e86121737b16841961ec99ccf5c9c7" - integrity sha512-b2rrupf3kCTcc3jr9xOWBuHylSFtbpJf79Ga7QR98ienU2UqGimPGEsYMgbI29KHJfA5Us89XwGVmxrlxmSrMg== +"@ethersproject/networks@5.6.4", "@ethersproject/networks@^5.6.3": + version "5.6.4" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.6.4.tgz#51296d8fec59e9627554f5a8a9c7791248c8dc07" + integrity sha512-KShHeHPahHI2UlWdtDMn2lJETcbtaJge4k7XSjDR9h79QTd6yQJmv6Cp2ZA4JdqWnhszAOLSuJEd9C0PRw7hSQ== dependencies: "@ethersproject/logger" "^5.6.0" -"@ethersproject/networks@^5.4.0", "@ethersproject/networks@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" - integrity sha512-KWfP3xOnJeF89Uf/FCJdV1a2aDJe5XTN2N52p4fcQ34QhDqQFkgQKZ39VGtiqUgHcLI8DfT0l9azC3KFTunqtA== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/pbkdf2@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz#ed88782a67fda1594c22d60d0ca911a9d669641c" - integrity sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - -"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.4.0", "@ethersproject/pbkdf2@^5.5.0": +"@ethersproject/pbkdf2@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== @@ -759,119 +426,55 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/sha2" "^5.5.0" -"@ethersproject/pbkdf2@5.6.0", "@ethersproject/pbkdf2@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.6.0.tgz#04fcc2d7c6bff88393f5b4237d906a192426685a" - integrity sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ== - dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/sha2" "^5.6.0" - -"@ethersproject/properties@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.1.tgz#9f051f976ce790142c6261ccb7b826eaae1f2f36" - integrity sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w== +"@ethersproject/pbkdf2@5.6.1", "@ethersproject/pbkdf2@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz#f462fe320b22c0d6b1d72a9920a3963b09eb82d1" + integrity sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ== dependencies: - "@ethersproject/logger" "^5.4.0" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/sha2" "^5.6.1" -"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.4.0", "@ethersproject/properties@^5.5.0": +"@ethersproject/properties@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== dependencies: "@ethersproject/logger" "^5.5.0" -"@ethersproject/properties@5.6.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.6.0": +"@ethersproject/properties@5.6.0", "@ethersproject/properties@^5.5.0", "@ethersproject/properties@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.6.0.tgz#38904651713bc6bdd5bdd1b0a4287ecda920fa04" integrity sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg== dependencies: "@ethersproject/logger" "^5.6.0" -"@ethersproject/providers@5.4.5": - version "5.4.5" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" - integrity sha512-1GkrvkiAw3Fj28cwi1Sqm8ED1RtERtpdXmRfwIBGmqBSN5MoeRUHuwHPppMtbPayPgpFcvD7/Gdc9doO5fGYgw== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - bech32 "1.1.4" - ws "7.4.6" - -"@ethersproject/providers@5.5.3": - version "5.5.3" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.3.tgz#56c2b070542ac44eb5de2ed3cf6784acd60a3130" - integrity sha512-ZHXxXXXWHuwCQKrgdpIkbzMNJMvs+9YWemanwp1fA7XZEv7QlilseysPvQe0D7Q7DlkJX/w/bGA1MdgK2TbGvA== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" - bech32 "1.1.4" - ws "7.4.6" - -"@ethersproject/providers@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.2.tgz#b9807b1c8c6f59fa2ee4b3cf6519724d07a9f422" - integrity sha512-6/EaFW/hNWz+224FXwl8+HdMRzVHt8DpPmu5MZaIQqx/K/ELnC9eY236SMV7mleCM3NnEArFwcAAxH5kUUgaRg== - dependencies: - "@ethersproject/abstract-provider" "^5.6.0" - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/address" "^5.6.0" - "@ethersproject/basex" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/constants" "^5.6.0" - "@ethersproject/hash" "^5.6.0" +"@ethersproject/providers@5.6.8": + version "5.6.8" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.8.tgz#22e6c57be215ba5545d3a46cf759d265bb4e879d" + integrity sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w== + dependencies: + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/base64" "^5.6.1" + "@ethersproject/basex" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" + "@ethersproject/hash" "^5.6.1" "@ethersproject/logger" "^5.6.0" - "@ethersproject/networks" "^5.6.0" + "@ethersproject/networks" "^5.6.3" "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.0" - "@ethersproject/rlp" "^5.6.0" - "@ethersproject/sha2" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - "@ethersproject/web" "^5.6.0" + "@ethersproject/random" "^5.6.1" + "@ethersproject/rlp" "^5.6.1" + "@ethersproject/sha2" "^5.6.1" + "@ethersproject/strings" "^5.6.1" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/web" "^5.6.1" bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" - integrity sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/random@5.5.0", "@ethersproject/random@^5.4.0", "@ethersproject/random@^5.5.0": +"@ethersproject/random@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== @@ -879,56 +482,23 @@ "@ethersproject/bytes" "^5.5.0" "@ethersproject/logger" "^5.5.0" -"@ethersproject/random@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.1.tgz#7cdf38ea93dc0b1ed1d8e480ccdaf3535c555415" - integrity sha512-YaU2dQ7DuhL5Au7KbcQLHxcRHfgyNgvFV4sQOo0HrtW3Zkrc9ctWNz8wXQ4uCSfSDsqX2vcjhroxU5RQRV0nqA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/random@5.6.0", "@ethersproject/random@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.6.0.tgz#1505d1ab6a250e0ee92f436850fa3314b2cb5ae6" - integrity sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw== +"@ethersproject/random@5.6.1", "@ethersproject/random@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.6.1.tgz#66915943981bcd3e11bbd43733f5c3ba5a790255" + integrity sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA== dependencies: - "@ethersproject/bytes" "^5.6.0" + "@ethersproject/bytes" "^5.6.1" "@ethersproject/logger" "^5.6.0" -"@ethersproject/rlp@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931" - integrity sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.4.0", "@ethersproject/rlp@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" - integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/rlp@5.6.0", "@ethersproject/rlp@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.6.0.tgz#55a7be01c6f5e64d6e6e7edb6061aa120962a717" - integrity sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g== +"@ethersproject/rlp@5.6.1", "@ethersproject/rlp@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.6.1.tgz#df8311e6f9f24dcb03d59a2bac457a28a4fe2bd8" + integrity sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ== dependencies: - "@ethersproject/bytes" "^5.6.0" + "@ethersproject/bytes" "^5.6.1" "@ethersproject/logger" "^5.6.0" -"@ethersproject/sha2@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" - integrity sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - hash.js "1.1.7" - -"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.4.0", "@ethersproject/sha2@^5.5.0": +"@ethersproject/sha2@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== @@ -937,62 +507,27 @@ "@ethersproject/logger" "^5.5.0" hash.js "1.1.7" -"@ethersproject/sha2@5.6.0", "@ethersproject/sha2@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.6.0.tgz#364c4c11cc753bda36f31f001628706ebadb64d9" - integrity sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA== +"@ethersproject/sha2@5.6.1", "@ethersproject/sha2@^5.5.0", "@ethersproject/sha2@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.6.1.tgz#211f14d3f5da5301c8972a8827770b6fd3e51656" + integrity sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g== dependencies: - "@ethersproject/bytes" "^5.6.0" + "@ethersproject/bytes" "^5.6.1" "@ethersproject/logger" "^5.6.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec" - integrity sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.7" - -"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.4.0", "@ethersproject/signing-key@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" - integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.7" - -"@ethersproject/signing-key@5.6.0", "@ethersproject/signing-key@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.6.0.tgz#4f02e3fb09e22b71e2e1d6dc4bcb5dafa69ce042" - integrity sha512-S+njkhowmLeUu/r7ir8n78OUKx63kBdMCPssePS89So1TH4hZqnWFsThEd/GiXYp9qMxVrydf7KdM9MTGPFukA== +"@ethersproject/signing-key@5.6.2", "@ethersproject/signing-key@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.6.2.tgz#8a51b111e4d62e5a62aee1da1e088d12de0614a3" + integrity sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ== dependencies: - "@ethersproject/bytes" "^5.6.0" + "@ethersproject/bytes" "^5.6.1" "@ethersproject/logger" "^5.6.0" "@ethersproject/properties" "^5.6.0" - bn.js "^4.11.9" + bn.js "^5.2.1" elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.4.0.tgz#1305e058ea02dc4891df18b33232b11a14ece9ec" - integrity sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/solidity@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" @@ -1005,28 +540,19 @@ "@ethersproject/sha2" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/solidity@5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.6.0.tgz#64657362a596bf7f5630bdc921c07dd78df06dc3" - integrity sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww== +"@ethersproject/solidity@5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.6.1.tgz#5845e71182c66d32e6ec5eefd041fca091a473e2" + integrity sha512-KWqVLkUUoLBfL1iwdzUVlkNqAUIFMpbbeH0rgCfKmJp0vFtY4AsaN91gHKo9ZZLkC4UOm3cI3BmMV4N53BOq4g== dependencies: - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" "@ethersproject/logger" "^5.6.0" - "@ethersproject/sha2" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - -"@ethersproject/strings@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" - integrity sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" + "@ethersproject/sha2" "^5.6.1" + "@ethersproject/strings" "^5.6.1" -"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.4.0", "@ethersproject/strings@^5.5.0": +"@ethersproject/strings@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== @@ -1035,162 +561,61 @@ "@ethersproject/constants" "^5.5.0" "@ethersproject/logger" "^5.5.0" -"@ethersproject/strings@5.6.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.6.0.tgz#9891b26709153d996bf1303d39a7f4bc047878fd" - integrity sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg== +"@ethersproject/strings@5.6.1", "@ethersproject/strings@^5.5.0", "@ethersproject/strings@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.6.1.tgz#dbc1b7f901db822b5cafd4ebf01ca93c373f8952" + integrity sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw== dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/constants" "^5.6.0" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/constants" "^5.6.1" "@ethersproject/logger" "^5.6.0" -"@ethersproject/transactions@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" - integrity sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ== - dependencies: - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - -"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.4.0", "@ethersproject/transactions@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" - integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== - dependencies: - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - -"@ethersproject/transactions@5.6.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.6.0.tgz#4b594d73a868ef6e1529a2f8f94a785e6791ae4e" - integrity sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg== - dependencies: - "@ethersproject/address" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/constants" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" +"@ethersproject/transactions@5.6.2", "@ethersproject/transactions@^5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.6.2.tgz#793a774c01ced9fe7073985bb95a4b4e57a6370b" + integrity sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q== + dependencies: + "@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.0" - "@ethersproject/signing-key" "^5.6.0" - -"@ethersproject/units@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.4.0.tgz#d57477a4498b14b88b10396062c8cbbaf20c79fe" - integrity sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/units@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" - integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" + "@ethersproject/rlp" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" -"@ethersproject/units@5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.6.0.tgz#e5cbb1906988f5740254a21b9ded6bd51e826d9c" - integrity sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw== +"@ethersproject/units@5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.6.1.tgz#ecc590d16d37c8f9ef4e89e2005bda7ddc6a4e6f" + integrity sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw== dependencies: - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/constants" "^5.6.0" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/constants" "^5.6.1" "@ethersproject/logger" "^5.6.0" -"@ethersproject/wallet@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" - integrity sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/hdnode" "^5.4.0" - "@ethersproject/json-wallets" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/wordlists" "^5.4.0" - -"@ethersproject/wallet@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" - integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/json-wallets" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - -"@ethersproject/wallet@5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.6.0.tgz#33d11a806d783864208f348709a5a3badac8e22a" - integrity sha512-qMlSdOSTyp0MBeE+r7SUhr1jjDlC1zAXB8VD84hCnpijPQiSNbxr6GdiLXxpUs8UKzkDiNYYC5DRI3MZr+n+tg== - dependencies: - "@ethersproject/abstract-provider" "^5.6.0" - "@ethersproject/abstract-signer" "^5.6.0" - "@ethersproject/address" "^5.6.0" - "@ethersproject/bignumber" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/hash" "^5.6.0" - "@ethersproject/hdnode" "^5.6.0" - "@ethersproject/json-wallets" "^5.6.0" - "@ethersproject/keccak256" "^5.6.0" +"@ethersproject/wallet@5.6.2": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.6.2.tgz#cd61429d1e934681e413f4bc847a5f2f87e3a03c" + integrity sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg== + dependencies: + "@ethersproject/abstract-provider" "^5.6.1" + "@ethersproject/abstract-signer" "^5.6.2" + "@ethersproject/address" "^5.6.1" + "@ethersproject/bignumber" "^5.6.2" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hash" "^5.6.1" + "@ethersproject/hdnode" "^5.6.2" + "@ethersproject/json-wallets" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" "@ethersproject/logger" "^5.6.0" "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.0" - "@ethersproject/signing-key" "^5.6.0" - "@ethersproject/transactions" "^5.6.0" - "@ethersproject/wordlists" "^5.6.0" - -"@ethersproject/web@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" - integrity sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og== - dependencies: - "@ethersproject/base64" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/web@5.5.0", "@ethersproject/web@^5.4.0", "@ethersproject/web@^5.5.0": + "@ethersproject/random" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + "@ethersproject/transactions" "^5.6.2" + "@ethersproject/wordlists" "^5.6.1" + +"@ethersproject/web@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== @@ -1201,40 +626,18 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/web@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.1.tgz#cfcc4a074a6936c657878ac58917a61341681316" - integrity sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg== - dependencies: - "@ethersproject/base64" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/web@5.6.0", "@ethersproject/web@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.6.0.tgz#4bf8b3cbc17055027e1a5dd3c357e37474eaaeb8" - integrity sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg== +"@ethersproject/web@5.6.1", "@ethersproject/web@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.6.1.tgz#6e2bd3ebadd033e6fe57d072db2b69ad2c9bdf5d" + integrity sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA== dependencies: - "@ethersproject/base64" "^5.6.0" - "@ethersproject/bytes" "^5.6.0" + "@ethersproject/base64" "^5.6.1" + "@ethersproject/bytes" "^5.6.1" "@ethersproject/logger" "^5.6.0" "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.0" - -"@ethersproject/wordlists@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7" - integrity sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" + "@ethersproject/strings" "^5.6.1" -"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.4.0", "@ethersproject/wordlists@^5.5.0": +"@ethersproject/wordlists@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== @@ -1245,16 +648,16 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/wordlists@5.6.0", "@ethersproject/wordlists@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.6.0.tgz#79e62c5276e091d8575f6930ba01a29218ded032" - integrity sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q== +"@ethersproject/wordlists@5.6.1", "@ethersproject/wordlists@^5.6.1": + version "5.6.1" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.6.1.tgz#1e78e2740a8a21e9e99947e47979d72e130aeda1" + integrity sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw== dependencies: - "@ethersproject/bytes" "^5.6.0" - "@ethersproject/hash" "^5.6.0" + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/hash" "^5.6.1" "@ethersproject/logger" "^5.6.0" "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.0" + "@ethersproject/strings" "^5.6.1" "@grpc/grpc-js@^1.5.3": version "1.6.7" @@ -1562,9 +965,9 @@ minimatch "^3.0.4" "@humanwhocodes/object-schema@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" - integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@improbable-eng/grpc-web-node-http-transport@0.15.0": version "0.15.0" @@ -1806,17 +1209,17 @@ "@octokit/types" "^6.0.3" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^11.2.0": - version "11.2.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" - integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^12.5.0": + version "12.5.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.5.0.tgz#e10b256237c877fa6f0a21922151dc03d9c57510" + integrity sha512-VatvE5wtRkJq6hAWGTBZ62WkrdlCiy0G0u27cVOYTfAWVZi7QqTurVcjpsyc5+9hXLPRP5O/DaNEs4TgAp4Mqg== "@octokit/plugin-paginate-rest@^2.16.8": - version "2.17.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7" - integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== + version "2.21.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.0.tgz#ddd425eaa09214dfdfdc9cc411fcf676b8985e65" + integrity sha512-MoGEKjvDpTOCVb5gbeiW7kZm/cRfT256UJwHEuy+y+gTUuKziyXaiOkt5rM/4nzhp8UxVgvok9Tu7dMMpUybiQ== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^6.38.1" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" @@ -1824,11 +1227,11 @@ integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== "@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" - integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA== + version "5.16.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.0.tgz#e0a774d78bb17fb9b6b9ae48d5517940f7f61e90" + integrity sha512-mvdwq+LvhR2GRDY82FgSZ52xX6wkOCpjiI3amiKbzKHd9nyKeFdXLsIQ3Go12tWRtvo+HwqoypLHDjRrgMFDQA== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^6.38.0" deprecation "^2.3.1" "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": @@ -1862,12 +1265,12 @@ "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^5.12.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0": - version "6.34.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" - integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.38.0", "@octokit/types@^6.38.1": + version "6.38.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.38.1.tgz#03d70745564954dfdae32df23d5f1578f958474f" + integrity sha512-kWMohLCIvnwApRmxRFDOqve7puiNNdtVfgwdDOm6QyJNorWOgKv2/AodCcGqx63o28kF7Dr4/nJCatrwwqhULg== dependencies: - "@octokit/openapi-types" "^11.2.0" + "@octokit/openapi-types" "^12.5.0" "@peculiar/asn1-schema@^2.1.6": version "2.2.0" @@ -1933,7 +1336,7 @@ "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== "@protobufjs/base64@^1.1.2": version "1.1.2" @@ -1948,12 +1351,12 @@ "@protobufjs/eventemitter@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== "@protobufjs/fetch@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== dependencies: "@protobufjs/aspromise" "^1.1.1" "@protobufjs/inquire" "^1.1.0" @@ -1961,27 +1364,27 @@ "@protobufjs/float@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== "@protobufjs/inquire@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== "@protobufjs/path@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== "@protobufjs/pool@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== "@protobufjs/utf8@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== "@randlabs/communication-bridge@^1.0.0": version "1.0.0" @@ -1989,12 +1392,11 @@ integrity sha512-CuJNwtMTG1LHR1LQNWUPv+8xPUdkRY9p61wGJEp8J/N3q8djmnMySvSQlyVqLBvXsTPKmYc0ZmfXEXCpb5P5Cw== "@randlabs/myalgo-connect@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.1.1.tgz#08e76a95b63f106e4cc54381748a330bc6dc9935" - integrity sha512-knW4eGfu/N5tlgRo+LP7ehNQ3zg6eL2fLJocRnAs0s2pWLmPXOAeXYhYgW0eV2VvxgLF/0nzIunY/dwei7k7JQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.2.0.tgz#4a7bd4c8898fc9f3f9c031859512b2517fbd0e8d" + integrity sha512-eUuv90M4LBrdL+A6qTrOqaICeRqmwZKW7JIfgaM6GgmfDopf8ugdK0gA2TuaCvCytA/NahEnsM5+Eup/ngUsLA== dependencies: "@randlabs/communication-bridge" "^1.0.0" - belter "^1.0.170" "@sideway/address@^4.1.3": version "4.1.4" @@ -2018,10 +1420,15 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@sindresorhus/is@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-2.1.1.tgz#ceff6a28a5b4867c2dd4a1ba513de278ccbe8bb1" - integrity sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg== +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@socket.io/component-emitter@~3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" + integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== "@solana/buffer-layout-utils@^0.2.0": version "0.2.0" @@ -2051,9 +1458,9 @@ start-server-and-test "^1.14.0" "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2": - version "1.44.2" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.44.2.tgz#5303efd94a7f2d6054a1483a4b4db4a26eb2a392" - integrity sha512-DvrJMoKonLuaX0/KyyJXcP/+w+9q8mve4gN3hC2Ptg51K/Gi1/cx6oQN2lbRZb4wYPBd2s2GDAJAJUAwZGsEug== + version "1.46.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.46.0.tgz#74364b277a0d01026deaf6f97edf49c07a271405" + integrity sha512-JzuWfrmoxfgczpgA7dK7gELpLxvn1KssFridn9I/OPfFxVGgcc68U8rux/q1mPem6hmP2K8kbQ0xL3SYxlQaHg== dependencies: "@babel/runtime" "^7.12.5" "@ethersproject/sha2" "^5.5.0" @@ -2067,7 +1474,7 @@ jayson "^3.4.4" js-sha3 "^0.8.0" node-fetch "2" - rpc-websockets "^7.4.2" + rpc-websockets "^7.5.0" secp256k1 "^4.0.2" superstruct "^0.14.2" tweetnacl "^1.0.0" @@ -2199,7 +1606,7 @@ dependencies: defer-to-connect "^1.0.1" -"@szmarczak/http-timer@^4.0.0": +"@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== @@ -2316,13 +1723,6 @@ dependencies: axios "*" -"@types/bn.js@^4.11.5": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - "@types/bn.js@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" @@ -2347,11 +1747,6 @@ "@types/node" "*" "@types/responselike" "*" -"@types/component-emitter@^1.2.10": - version "1.2.10" - resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.10.tgz#ef5b1589b9f16544642e473db5ea5639107ef3ea" - integrity sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== - "@types/connect@^3.4.33": version "3.4.35" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" @@ -2379,11 +1774,11 @@ integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== "@types/json-schema@^7.0.7": - version "7.0.8" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" - integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg== + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== -"@types/keyv@*", "@types/keyv@^3.1.1": +"@types/keyv@*": version "3.1.4" resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== @@ -2396,19 +1791,19 @@ integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== "@types/long@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" - integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== "@types/minimatch@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== -"@types/node@*": - version "16.3.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.2.tgz#655432817f83b51ac869c2d51dd8305fb8342e16" - integrity sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw== +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "18.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" + integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== "@types/node@10.12.18": version "10.12.18" @@ -2420,31 +1815,16 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== -"@types/node@>=12.12.47": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" - integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== - -"@types/node@>=13.7.0": - version "17.0.35" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.35.tgz#635b7586086d51fb40de0a2ec9d1014a5283ba4a" - integrity sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg== - "@types/node@^10.3.2": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== -"@types/node@^12.12.54": +"@types/node@^12.12.54", "@types/node@^12.12.6": version "12.20.55" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^12.12.6": - version "12.20.47" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.47.tgz#ca9237d51f2a2557419688511dab1c8daf475188" - integrity sha512-BzcaRsnFuznzOItW1WpQrDHM7plAa7GIDMZ6b5pnMbkqEtM/6WCOhvZar39oeMQP79gwvFUWjjptE7/KGcNqFg== - "@types/node@^13.7.0": version "13.13.52" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" @@ -2467,7 +1847,7 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/responselike@*": +"@types/responselike@*", "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== @@ -2489,118 +1869,73 @@ "@types/node" "*" "@typescript-eslint/eslint-plugin@^4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" - integrity sha512-iPKZTZNavAlOhfF4gymiSuUkgLne/nh5Oz2/mdiUmuZVD42m9PapnCnzjxuDsnpnbH3wT5s2D8bw6S39TC6GNw== + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== dependencies: - "@typescript-eslint/experimental-utils" "4.31.0" - "@typescript-eslint/scope-manager" "4.31.0" + "@typescript-eslint/experimental-utils" "4.33.0" + "@typescript-eslint/scope-manager" "4.33.0" debug "^4.3.1" functional-red-black-tree "^1.0.1" + ignore "^5.1.8" regexpp "^3.1.0" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/experimental-utils@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.0.tgz#0ef1d5d86c334f983a00f310e43c1ce4c14e054d" - integrity sha512-Hld+EQiKLMppgKKkdUsLeVIeEOrwKc2G983NmznY/r5/ZtZCDvIOXnXtwqJIgYz/ymsy7n7RGvMyrzf1WaSQrw== +"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.9.1": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== dependencies: "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.31.0" - "@typescript-eslint/types" "4.31.0" - "@typescript-eslint/typescript-estree" "4.31.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/experimental-utils@^4.9.1": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.3.tgz#976f8c1191b37105fd06658ed57ddfee4be361ca" - integrity sha512-zZYl9TnrxwEPi3FbyeX0ZnE8Hp7j3OCR+ELoUfbwGHGxWnHg9+OqSmkw2MoCVpZksPCZYpQzC559Ee9pJNHTQw== - dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.28.3" - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/typescript-estree" "4.28.3" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" "@typescript-eslint/parser@^4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.3.tgz#95f1d475c08268edffdcb2779993c488b6434b44" - integrity sha512-ZyWEn34bJexn/JNYvLQab0Mo5e+qqQNhknxmc8azgNd4XqspVYR5oHq9O11fLwdZMRcj4by15ghSlIEq+H5ltQ== + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== dependencies: - "@typescript-eslint/scope-manager" "4.28.3" - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/typescript-estree" "4.28.3" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.3.tgz#c32ad4491b3726db1ba34030b59ea922c214e371" - integrity sha512-/8lMisZ5NGIzGtJB+QizQ5eX4Xd8uxedFfMBXOKuJGP0oaBBVEMbJVddQKDXyyB0bPlmt8i6bHV89KbwOelJiQ== - dependencies: - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/visitor-keys" "4.28.3" - -"@typescript-eslint/scope-manager@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.0.tgz#9be33aed4e9901db753803ba233b70d79a87fc3e" - integrity sha512-LJ+xtl34W76JMRLjbaQorhR0hfRAlp3Lscdiz9NeI/8i+q0hdBZ7BsiYieLoYWqy+AnRigaD3hUwPFugSzdocg== +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== dependencies: - "@typescript-eslint/types" "4.31.0" - "@typescript-eslint/visitor-keys" "4.31.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" -"@typescript-eslint/types@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.3.tgz#8fffd436a3bada422c2c1da56060a0566a9506c7" - integrity sha512-kQFaEsQBQVtA9VGVyciyTbIg7S3WoKHNuOp/UF5RG40900KtGqfoiETWD/v0lzRXc+euVE9NXmfer9dLkUJrkA== +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== -"@typescript-eslint/types@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.0.tgz#9a7c86fcc1620189567dc4e46cad7efa07ee8dce" - integrity sha512-9XR5q9mk7DCXgXLS7REIVs+BaAswfdHhx91XqlJklmqWpTALGjygWVIb/UnLh4NWhfwhR5wNe1yTyCInxVhLqQ== - -"@typescript-eslint/typescript-estree@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.3.tgz#253d7088100b2a38aefe3c8dd7bd1f8232ec46fb" - integrity sha512-YAb1JED41kJsqCQt1NcnX5ZdTA93vKFCMP4lQYG6CFxd0VzDJcKttRlMrlG+1qiWAw8+zowmHU1H0OzjWJzR2w== - dependencies: - "@typescript-eslint/types" "4.28.3" - "@typescript-eslint/visitor-keys" "4.28.3" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.0.tgz#4da4cb6274a7ef3b21d53f9e7147cc76f278a078" - integrity sha512-QHl2014t3ptg+xpmOSSPn5hm4mY8D4s97ftzyk9BZ8RxYQ3j73XcwuijnJ9cMa6DO4aLXeo8XS3z1omT9LA/Eg== +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== dependencies: - "@typescript-eslint/types" "4.31.0" - "@typescript-eslint/visitor-keys" "4.31.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.28.3": - version "4.28.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.3.tgz#26ac91e84b23529968361045829da80a4e5251c4" - integrity sha512-ri1OzcLnk1HH4gORmr1dllxDzzrN6goUIz/P4MHFV0YZJDCADPR3RvYNp0PW2SetKTThar6wlbFTL00hV2Q+fg== +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== dependencies: - "@typescript-eslint/types" "4.28.3" - eslint-visitor-keys "^2.0.0" - -"@typescript-eslint/visitor-keys@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.0.tgz#4e87b7761cb4e0e627dc2047021aa693fc76ea2b" - integrity sha512-HUcRp2a9I+P21+O21yu3ezv3GEPGjyGiXoEUQwZXjR8UxRApGeLyWH4ZIIUSalE28aG4YsV6GjtaAVB3QKOu0w== - dependencies: - "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" "@unimodules/core@*": @@ -2619,26 +1954,26 @@ invariant "^2.2.4" "@vechain/connex-driver@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@vechain/connex-driver/-/connex-driver-2.0.8.tgz#2c4ce3815b4ed398c768c359decf29fbb58f1d5c" - integrity sha512-SGUVexzDGEKPILYCHUw9tBIvtJULLTxn+aMGIx5tQIpqO/2NiFUYERx75mzuBaFe7aWtw4zd2yhGXWrZlfXydw== + version "2.0.10" + resolved "https://registry.yarnpkg.com/@vechain/connex-driver/-/connex-driver-2.0.10.tgz#0c29bd66e46b511a3d66f3a68a0921914bf990fd" + integrity sha512-Ki/wUTG4OcPD8t0vCfwcgOJnyfHFiUlWTg/oU0CXwXC+0FeOSxtXOdAY6AyKlSETQKd7AM+PAdU6MqNBADx+Ew== dependencies: "@vechain/connex-types" "^2.0.2" axios "^0.21.1" bignumber.js "^7.2.1" isomorphic-ws "^4.0.1" lru-cache "^5.1.1" - thor-devkit "^2.0.4" + thor-devkit "^2.0.5" ws "^7.1.0" "@vechain/connex-framework@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@vechain/connex-framework/-/connex-framework-2.0.8.tgz#864a86650c51e91d079b5a0cfe34c4912ce0a254" - integrity sha512-wJHDpAxZsbA8YrE7nGaspdZhB1nLi2yDbGayS1w/QonmIjwFZU31Z+Y7v2AKXSjGm69OHwdT1tBAUsP2+721ng== + version "2.0.10" + resolved "https://registry.yarnpkg.com/@vechain/connex-framework/-/connex-framework-2.0.10.tgz#cb281ae38473d862baea061483579ad66b3d76ee" + integrity sha512-pgTxMUr99ZOfd5cjzOihVdnbwXP7qh+kdLSjKaWjW+9Yw2ZOdNk58AJ/Bs2POkKB836pgt+Phu65T7MRxPENpg== dependencies: "@vechain/connex-types" "^2.0.2" bignumber.js "^7.2.1" - thor-devkit "^2.0.4" + thor-devkit "^2.0.5" validator-ts "^0.9.1" "@vechain/connex-types@^2.0.2": @@ -2662,17 +1997,6 @@ uuid "2.0.1" xmlhttprequest "1.8.0" -"@walletconnect/browser-utils@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.0.tgz#b420eb110d5ea4d7fe00084537fd720a72b68d56" - integrity sha512-bQsbCIDTT1OB4v8VF5bzg3byp03qTst9kLmjQj68ElecIUcdS6nZvEDhZdQK/r63WMVnA2KrTb5AEN6hPRGgIw== - dependencies: - "@walletconnect/safe-json" "1.0.0" - "@walletconnect/types" "^1.7.0" - "@walletconnect/window-getters" "1.0.0" - "@walletconnect/window-metadata" "1.0.0" - detect-browser "5.2.0" - "@walletconnect/browser-utils@^1.7.8": version "1.7.8" resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.8.tgz#c9e27f69d838442d69ccf53cb38ffc3c554baee2" @@ -2695,16 +2019,16 @@ "@walletconnect/utils" "^1.6.5" "@walletconnect/client@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.7.0.tgz#f656952a23367cc4890ca16cc3f10ee7dabb2f03" - integrity sha512-56aXK9Rb30cHhl4DMaUakz/3KG3Mr+/9h2iCvKDqAxmIeD931ahMZlBu86T7hGf4vboisZZEhj8/ZwiAM4Ukvg== + version "1.7.8" + resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.7.8.tgz#62c2d7114e59495d90772ea8033831ceb29c6a78" + integrity sha512-pBroM6jZAaUM0SoXJZg5U7aPTiU3ljQAw3Xh/i2pxFDeN/oPKao7husZ5rdxS5xuGSV6YpqqRb0RxW1IeoR2Pg== dependencies: - "@walletconnect/core" "^1.7.0" - "@walletconnect/iso-crypto" "^1.7.0" - "@walletconnect/types" "^1.7.0" - "@walletconnect/utils" "^1.7.0" + "@walletconnect/core" "^1.7.8" + "@walletconnect/iso-crypto" "^1.7.8" + "@walletconnect/types" "^1.7.8" + "@walletconnect/utils" "^1.7.8" -"@walletconnect/core@^1.6.5": +"@walletconnect/core@^1.6.5", "@walletconnect/core@^1.7.8": version "1.7.8" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.7.8.tgz#97c52ea7d00126863cd37bf19bd3e87d4f30de1e" integrity sha512-9xcQ0YNf9JUFb0YOX1Mpy4Yojt+6w2yQz/0aIEyj2X/s9D71NW0fTYsMcdhkLOI7mn2cqVbx2t1lRvdgqsbrSQ== @@ -2713,26 +2037,6 @@ "@walletconnect/types" "^1.7.8" "@walletconnect/utils" "^1.7.8" -"@walletconnect/core@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.7.0.tgz#eb318bfce80a5454e12f1d7811a583e2d1adcb42" - integrity sha512-0YX9Y/CVYctKPcSgSyp2wLrk4OgSenmyzWj6Z3C93Hb7PG+tJ+dKCeNFeEIYA03QQRxHew5uMLPbVgmdtmB/0w== - dependencies: - "@walletconnect/socket-transport" "^1.7.0" - "@walletconnect/types" "^1.7.0" - "@walletconnect/utils" "^1.7.0" - -"@walletconnect/crypto@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.1.tgz#d4c1b1cd5dd1be88fe9a82dfc54cadbbb3f9d325" - integrity sha512-IgUReNrycIFxkGgq8YT9HsosCkhutakWD9Q411PR0aJfxpEa/VKJeaLRtoz6DvJpztWStwhIHnAbBoOVR72a6g== - dependencies: - "@walletconnect/encoding" "^1.0.0" - "@walletconnect/environment" "^1.0.0" - "@walletconnect/randombytes" "^1.0.1" - aes-js "^3.1.2" - hash.js "^1.1.7" - "@walletconnect/crypto@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.2.tgz#3fcc2b2cde6f529a19eadd883dc555cd0e861992" @@ -2744,14 +2048,6 @@ aes-js "^3.1.2" hash.js "^1.1.7" -"@walletconnect/encoding@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.0.tgz#e24190cb5e803526f9dfd7191fb0e4dc53c6d864" - integrity sha512-4nkJFnS0QF5JdieG/3VPD1/iEWkLSZ14EBInLZ00RWxmC6EMZrzAeHNAWIgm+xP3NK0lqz+7lEsmWGtcl5gYnQ== - dependencies: - is-typedarray "1.0.0" - typedarray-to-buffer "3.1.5" - "@walletconnect/encoding@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.1.tgz#93c18ce9478c3d5283dbb88c41eb2864b575269a" @@ -2765,7 +2061,7 @@ resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== -"@walletconnect/iso-crypto@^1.6.5": +"@walletconnect/iso-crypto@^1.6.5", "@walletconnect/iso-crypto@^1.7.8": version "1.7.8" resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.7.8.tgz#41f09326d129faa09beae213e78614c19d90bbd6" integrity sha512-Qo6qDcMG0Ac+9fpWE0h/oE55NHLk6eM2vlXpWlQDN/me7RZGrkvk+LXsAkQ3UiYPEiPfq4eswcyRWC9AcrAscg== @@ -2774,38 +2070,20 @@ "@walletconnect/types" "^1.7.8" "@walletconnect/utils" "^1.7.8" -"@walletconnect/iso-crypto@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.7.0.tgz#ccb968504ee5925ae75c64efe610631470072982" - integrity sha512-ZUQ/MAM9TXtneIaRjxW/PuFF+es4I9OrCGFgVTCYAaa7p2zdy7BgHmVOnxxOpUh9VYwLXoiA/FU234NwS0ulYw== - dependencies: - "@walletconnect/crypto" "^1.0.1" - "@walletconnect/types" "^1.7.0" - "@walletconnect/utils" "^1.7.0" - -"@walletconnect/jsonrpc-types@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.0.tgz#fa75ad5e8f106a2e33287b1e6833e22ed0225055" - integrity sha512-11QXNq5H1PKZk7bP8SxgmCw3HRaDuPOVE+wObqEvmhc7OWYUZqfuaaMb+OXGRSOHL3sbC+XHfdeCxFTMXSFyng== +"@walletconnect/jsonrpc-types@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.1.tgz#a96b4bb2bcc8838a70e06f15c1b5ab11c47d8e95" + integrity sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw== dependencies: keyvaluestorage-interface "^1.0.0" "@walletconnect/jsonrpc-utils@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.0.tgz#1a2f668d606e8f0b6e7d8fdebae86001bd037a3f" - integrity sha512-qUHbKUK6sHeHn67qtHZoLoYk5hS6x1arTPjKDRkY93/6Fx+ZmNIpdm1owX3l6aYueyegJ7mz43FpvYHUqJ8xcw== - dependencies: - "@walletconnect/environment" "^1.0.0" - "@walletconnect/jsonrpc-types" "^1.0.0" - -"@walletconnect/randombytes@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.1.tgz#87f0f02d9206704ce1c9e23f07d3b28898c48385" - integrity sha512-YJTyq69i0PtxVg7osEpKfvjTaWuAsR49QEcqGKZRKVQWMbGXBZ65fovemK/SRgtiFRv0V8PwsrlKSheqzfPNcg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz#5bd49865eef0eae48e8b45a06731dc18691cf8c7" + integrity sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ== dependencies: - "@walletconnect/encoding" "^1.0.0" "@walletconnect/environment" "^1.0.0" - randombytes "^2.1.0" + "@walletconnect/jsonrpc-types" "^1.0.1" "@walletconnect/randombytes@^1.0.2": version "1.0.2" @@ -2821,15 +2099,6 @@ resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== -"@walletconnect/socket-transport@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.7.0.tgz#713a162d577fdda0b44753227b699b6f93927b97" - integrity sha512-HSWGZxdxDtf8K1Kd1eD1QuObpoNxHui+A/+inuC8i8fcifDjZu85AeJIfCKQijlmgjLR/25Ry3eJFbYpRXxUjQ== - dependencies: - "@walletconnect/types" "^1.7.0" - "@walletconnect/utils" "^1.7.0" - ws "7.5.3" - "@walletconnect/socket-transport@^1.7.8": version "1.7.8" resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.7.8.tgz#a4ef50d8054293991dbfde7f9c66788030182ec3" @@ -2844,11 +2113,6 @@ resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.7.8.tgz#ec397e6fbdc8147bccc17029edfeb41c50a5ca09" integrity sha512-0oSZhKIrtXRJVP1jQ0EDTRtotQY6kggGjDcmm/LLQBKnOZXdPeo0sPkV/7DjT5plT3O7Cjc6JvuXt9WOY0hlCA== -"@walletconnect/types@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.7.0.tgz#e6d0f7e41e5d22303b57be0739716a8dd8c968b4" - integrity sha512-eoqnF+U04IuMfGIBsqYhAR6SIM2kzcrZM/RCVcomT/lIcsRoBwNxR+86+3Vn12/iaGnuAKn8xDZhZ47SLFmanQ== - "@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.7.8": version "1.7.8" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.7.8.tgz#f94572bca5eb6b5f81daf8a35268f249f9c6b1ec" @@ -2862,19 +2126,6 @@ js-sha3 "0.8.0" query-string "6.13.5" -"@walletconnect/utils@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.7.0.tgz#1dbb1268c1ee245df378957945bf036a3d9fdbf5" - integrity sha512-DnYyKNMkpPUkbu6YwHfycvzlpx7Ro/qDPIDAuaNYT4FFWFyYxfx2ZY66kU3XklQivAc8dK7TyvYPJ08LWd8w4Q== - dependencies: - "@walletconnect/browser-utils" "^1.7.0" - "@walletconnect/encoding" "^1.0.0" - "@walletconnect/jsonrpc-utils" "^1.0.0" - "@walletconnect/types" "^1.7.0" - bn.js "4.11.8" - js-sha3 "0.8.0" - query-string "6.13.5" - "@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" @@ -2923,7 +2174,7 @@ acorn@^7.4.0: aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== aes-js@^3.1.2: version "3.1.2" @@ -2941,9 +2192,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.0.1: - version "8.6.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.1.tgz#ae65764bf1edde8cd861281cda5057852364a295" - integrity sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ== + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -2956,9 +2207,9 @@ algo-msgpack-with-bigint@^2.1.1: integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== algosdk@^1.15.0-beta.1: - version "1.15.0-beta.1" - resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.15.0-beta.1.tgz#b9e6d1abaad087a4c1aa0dbb75e6309d7bf69821" - integrity sha512-J3HCq4e01WZTiPUkU5RCMdKYqwTqwhleL2cK8IbSDTSsRiRD2WKH5IXft9CNKqdbSQcLbLgjeOX2QpWWEwi/Zw== + version "1.18.0" + resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.18.0.tgz#251abbb495843dbc2998426a548794e2e1ff772f" + integrity sha512-+baSG0IrcZf2Qt35HyQF7wAkOykEW2iMhghUa/tcFNu4dMcvv41AUPRrB1T/bKq6dsb4OvbCzCEHAdaztBp32w== dependencies: algo-msgpack-with-bigint "^2.1.1" buffer "^6.0.2" @@ -2972,19 +2223,14 @@ algosdk@^1.15.0-beta.1: url-parse "^1.5.1" ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^5.0.1: version "5.0.1" @@ -3041,7 +2287,7 @@ array-differ@^3.0.0: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== array-union@^2.1.0: version "2.1.0" @@ -3049,14 +2295,14 @@ array-union@^2.1.0: integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array.prototype.flatmap@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" - integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" + integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" arrify@^2.0.1: version "2.0.1" @@ -3097,7 +2343,7 @@ asn1js@^3.0.1, asn1js@^3.0.5: assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assert@^2.0.0: version "2.0.0" @@ -3122,22 +2368,22 @@ async-limiter@~1.0.0: asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -available-typed-arrays@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" - integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: version "1.11.0" @@ -3160,13 +2406,13 @@ axios@0.24.0, axios@^0.24.0: follow-redirects "^1.14.4" axios@^0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== dependencies: - follow-redirects "^1.10.0" + follow-redirects "^1.14.0" -axios@^0.26.0: +axios@^0.26.0, axios@^0.26.1: version "0.26.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== @@ -3190,20 +2436,15 @@ b64u-lite@^1.0.1: babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" -backo2@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - backslash@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/backslash/-/backslash-0.2.0.tgz#6c3c1fce7e7e714ccfc10fd74f0f73410677375f" - integrity sha1-bDwfzn5+cUzPwQ/XTw9zQQZ3N18= + integrity sha512-Avs+8FUZ1HF/VFP4YWwHQZSGzRPm37ukU1JQYQWijuHhtXdOuAzcZ8PcAzfIw898a8PyBzdn+RtnKA6MzW0X2A== balanced-match@^1.0.0: version "1.0.2" @@ -3222,11 +2463,6 @@ base-x@^3.0.2, base-x@^3.0.8: dependencies: safe-buffer "^5.0.1" -base64-arraybuffer@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" - integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= - base64-arraybuffer@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45" @@ -3240,7 +2476,7 @@ base64-js@*, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" @@ -3259,15 +2495,6 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== -belter@^1.0.170: - version "1.0.177" - resolved "https://registry.yarnpkg.com/belter/-/belter-1.0.177.tgz#4d49b6a7797c19a12eed233f408934964b808e49" - integrity sha512-oJCyvKkO6Cz+ocjEVdyYe6itIgcgS+AgONrEVexErIfFx6y4Q8Uv5699mvMkTWLY5wR72BXoCYZFkb17xJ/7dA== - dependencies: - cross-domain-safe-weakmap "^1" - cross-domain-utils "^2" - zalgo-promise "^1" - bigint-buffer@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" @@ -3275,12 +2502,12 @@ bigint-buffer@^1.1.5: dependencies: bindings "^1.3.0" -bignumber.js@9.0.1, bignumber.js@=9.0.1, bignumber.js@^9.0.0, bignumber.js@^9.0.1: +bignumber.js@9.0.1, bignumber.js@=9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== -bignumber.js@9.0.2, bignumber.js@^9.0.2: +bignumber.js@9.0.2, bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== @@ -3305,7 +2532,7 @@ bindings@^1.3.0, bindings@^1.5.0: bip32-path@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/bip32-path/-/bip32-path-0.4.2.tgz#5db0416ad6822712f077836e2557b8697c0c7c99" - integrity sha1-XbBBataCJxLwd4NuJVe4aXwMfJk= + integrity sha512-ZBMCELjJfcNMkz5bDuJ1WrYvjlhEF5k6mQ8vUr4N7MbVRsXei7ZOg8VhhwMfNiW68NWmLkgkc6WvTickrLGprQ== bip32@2.0.6: version "2.0.6" @@ -3364,12 +2591,7 @@ blake2b@2.1.3: blake2b-wasm "^1.1.0" nanoassert "^1.0.0" -blakejs@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" - integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== - -blakejs@^1.1.1: +blakejs@^1.1.0, blakejs@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== @@ -3382,7 +2604,7 @@ bluebird@3.7.2, bluebird@^3.5.0: bn.js@4.11.6: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= + integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== bn.js@4.11.8: version "4.11.8" @@ -3399,28 +2621,12 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -body-parser@1.19.2: - version "1.19.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" - integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.8.1" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.9.7" - raw-body "2.4.3" - type-is "~1.6.18" +bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@^1.16.0: +body-parser@1.20.0, body-parser@^1.16.0: version "1.20.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== @@ -3468,7 +2674,14 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.1, braces@~3.0.2: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -3478,7 +2691,7 @@ braces@^3.0.1, braces@~3.0.2: brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browser-headers@^0.4.1: version "0.4.1" @@ -3542,7 +2755,7 @@ browserify-sign@^4.0.0: bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" @@ -3563,12 +2776,12 @@ buffer-layout@^1.2.0, buffer-layout@^1.2.2: buffer-to-arraybuffer@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= + integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer@6.0.1: version "6.0.1" @@ -3606,13 +2819,10 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacheable-lookup@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz#87be64a18b925234875e10a9bb1ebca4adce6b38" - integrity sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg== - dependencies: - "@types/keyv" "^3.1.1" - keyv "^4.0.0" +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== cacheable-request@^6.0.0: version "6.1.0" @@ -3627,7 +2837,7 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" -cacheable-request@^7.0.1: +cacheable-request@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== @@ -3661,7 +2871,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== chalk@^2.0.0: version "2.4.2" @@ -3680,15 +2890,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3699,7 +2901,7 @@ chalk@^4.1.0: charenc@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== check-more-types@2.24.0: version "2.24.0" @@ -3771,14 +2973,14 @@ cliui@^7.0.2: clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== dependencies: mimic-response "^1.0.0" code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== color-convert@^1.9.0: version "1.9.3" @@ -3797,7 +2999,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -3836,12 +3038,12 @@ compare-versions@^3.4.0: resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== -component-emitter@^1.3.0, component-emitter@~1.3.0: +component-emitter@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -compress-brotli@^1.3.6: +compress-brotli@^1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/compress-brotli/-/compress-brotli-1.3.8.tgz#0c0a60c97a989145314ec381e84e26682e7b38db" integrity sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ== @@ -3852,12 +3054,12 @@ compress-brotli@^1.3.6: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== content-disposition@0.5.4: version "0.5.4" @@ -3883,12 +3085,12 @@ content-type@~1.0.4: cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== cookiejar@^2.1.1, cookiejar@^2.1.2: version "2.1.3" @@ -3903,7 +3105,7 @@ core-js@^2.4.0: core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== core-util-is@~1.0.0: version "1.0.3" @@ -3959,20 +3161,6 @@ create-hmac@1.1.7, create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-domain-safe-weakmap@^1: - version "1.0.29" - resolved "https://registry.yarnpkg.com/cross-domain-safe-weakmap/-/cross-domain-safe-weakmap-1.0.29.tgz#0847975c27d9e1cc840f24c1745311958df98022" - integrity sha512-VLoUgf2SXnf3+na8NfeUFV59TRZkIJqCIATaMdbhccgtnTlSnHXkyTRwokngEGYdQXx8JbHT9GDYitgR2sdjuA== - dependencies: - cross-domain-utils "^2.0.0" - -cross-domain-utils@^2, cross-domain-utils@^2.0.0: - version "2.0.38" - resolved "https://registry.yarnpkg.com/cross-domain-utils/-/cross-domain-utils-2.0.38.tgz#2eaf321c4dfdb61596805ca4233fde4400cb6377" - integrity sha512-zZfi3+2EIR9l4chrEiXI2xFleyacsJf8YMLR1eJ0Veb5FTMXeJ3DpxDjZkto2FhL/g717WSELqbptNSo85UJDw== - dependencies: - zalgo-promise "^1.0.11" - cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" @@ -3992,7 +3180,7 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: crypt@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== crypto-browserify@3.12.0: version "3.12.0" @@ -4043,7 +3231,7 @@ d@1, d@^1.0.1: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" @@ -4054,27 +3242,34 @@ debug@2.6.9, debug@^2.2.0: dependencies: ms "2.0.0" -debug@4.3.2, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: +debug@4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" +debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1, debug@~4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== decompress-response@^3.2.0, decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== dependencies: mimic-response "^1.0.0" @@ -4085,12 +3280,12 @@ decompress-response@^4.2.0: dependencies: mimic-response "^2.0.0" -decompress-response@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" - integrity sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: - mimic-response "^2.0.0" + mimic-response "^3.1.0" deep-extend@^0.6.0: version "0.6.0" @@ -4098,9 +3293,9 @@ deep-extend@^0.6.0: integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: version "4.2.2" @@ -4117,12 +3312,13 @@ defer-to-connect@^2.0.0: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - object-keys "^1.0.12" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" delay@^5.0.0: version "5.0.0" @@ -4132,12 +3328,12 @@ delay@^5.0.0: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== delimit-stream@0.1.0: version "0.1.0" @@ -4149,11 +3345,6 @@ depd@2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" @@ -4172,11 +3363,6 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - detect-browser@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" @@ -4185,7 +3371,7 @@ detect-browser@5.2.0: detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== diffie-hellman@^5.0.0: version "5.0.3" @@ -4224,14 +3410,14 @@ dot-case@^3.0.4: tslib "^2.0.3" dotenv@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" - integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== + version "16.0.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.1.tgz#8f8f9d94876c35dac989876a5d3a82a267fdce1d" + integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ== duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + integrity sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA== duplexer@~0.1.1: version "0.1.2" @@ -4241,7 +3427,7 @@ duplexer@~0.1.1: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" @@ -4258,7 +3444,7 @@ ed25519-hd-key@1.1.2: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" @@ -4281,7 +3467,7 @@ emoji-regex@^8.0.0: encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" @@ -4290,27 +3476,21 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-5.1.2.tgz#27108da9b39ae03262443d945caf2caa3655c4cb" - integrity sha512-blRrgXIE0A/eurWXRzvfCLG7uUFJqfTGFsyJzXSK71srMMGJ2VraBLg8Mdw28uUxSpVicepBN9X7asqpD1mZcQ== +engine.io-client@~6.2.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.2.tgz#c6c5243167f5943dcd9c4abee1bfc634aa2cbdd0" + integrity sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ== dependencies: - base64-arraybuffer "0.1.4" - component-emitter "~1.3.0" + "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" - engine.io-parser "~4.0.1" - has-cors "1.1.0" - parseqs "0.0.6" - parseuri "0.0.6" - ws "~7.4.2" - yeast "0.1.2" - -engine.io-parser@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.2.tgz#e41d0b3fb66f7bf4a3671d2038a154024edb501e" - integrity sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg== - dependencies: - base64-arraybuffer "0.1.4" + engine.io-parser "~5.0.3" + ws "~8.2.3" + xmlhttprequest-ssl "~2.0.0" + +engine.io-parser@~5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" + integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== enquirer@^2.3.5: version "2.3.6" @@ -4319,27 +3499,41 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: - version "1.18.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" - integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== +es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + function.prototype.name "^1.1.5" get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.3" - is-string "^1.0.6" - object-inspect "^1.10.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" es-to-primitive@^1.2.1: version "1.2.1" @@ -4351,9 +3545,9 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.60" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.60.tgz#e8060a86472842b93019c31c34865012449883f4" - integrity sha512-jpKNXIt60htYG59/9FGf2PYT3pwMpnEbNKysU+k/4FGwyGtMotOvcZOuW+EmXXYASRqYSXQfGL5cVIthOTgbkg== + version "0.10.61" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.61.tgz#311de37949ef86b6b0dcea894d1ffedb909d3269" + integrity sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA== dependencies: es6-iterator "^2.0.3" es6-symbol "^3.1.3" @@ -4362,7 +3556,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.50: es6-iterator@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" es5-ext "^0.10.35" @@ -4371,7 +3565,7 @@ es6-iterator@^2.0.3: es6-object-assign@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= + integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== es6-promise@^4.0.3: version "4.2.8" @@ -4401,12 +3595,12 @@ escalade@^3.1.1: escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" @@ -4414,9 +3608,9 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" - integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== eslint-plugin-eslint-comments@^3.2.0: version "3.2.0" @@ -4427,9 +3621,9 @@ eslint-plugin-eslint-comments@^3.2.0: ignore "^5.0.5" eslint-plugin-functional@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-functional/-/eslint-plugin-functional-3.2.1.tgz#d5ad668b57646ad24f4ef0476328408681d59061" - integrity sha512-uJ8W0FznWsKp4exxO79b0xSc1WNROzDiVNGgSFOwdZCBeUHQf89BqwqlshNW9aSz/kg2gVGs+Ue6AeTpNSFM/g== + version "3.7.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-functional/-/eslint-plugin-functional-3.7.2.tgz#c90325dddfa822fab27419375084d12158f05da1" + integrity sha512-BuWPOeE0nuXYlZjObYOHnYf7G3iG+sysxw84I579MsrH+hy5XdXb2sdabmXQ5z7eFGCg2/DWNbZ/yz5GAgtcUg== dependencies: "@typescript-eslint/experimental-utils" "^4.9.1" array.prototype.flatmap "^1.2.4" @@ -4470,12 +3664,12 @@ eslint-visitor-keys@^2.0.0: integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint@^7.30.0: - version "7.30.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.30.0.tgz#6d34ab51aaa56112fd97166226c9a97f505474f8" - integrity sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg== + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.2" + "@eslint/eslintrc" "^0.4.3" "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" chalk "^4.0.0" @@ -4549,9 +3743,9 @@ estraverse@^4.1.1: integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" @@ -4561,12 +3755,12 @@ esutils@^2.0.2: etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eth-ens-namehash@2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" - integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= + integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== dependencies: idna-uts46-hx "^2.3.1" js-sha3 "^0.5.7" @@ -4620,10 +3814,10 @@ ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz#a6885bcdd92045b06f596c7626c3e89ab3312458" - integrity sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A== +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.5: + version "7.1.5" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== dependencies: "@types/bn.js" "^5.1.0" bn.js "^5.1.2" @@ -4631,118 +3825,46 @@ ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.4: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethers@^5.4.4: - version "5.4.6" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.6.tgz#fe0a023956b5502c947f58e82fbcf9a73e5e75b6" - integrity sha512-F7LXARyB/Px3AQC6/QKedWZ8eqCkgOLORqL4B/F0Mag/K+qJSFGqsR36EaOZ6fKg3ZonI+pdbhb4A8Knt/43jQ== - dependencies: - "@ethersproject/abi" "5.4.1" - "@ethersproject/abstract-provider" "5.4.1" - "@ethersproject/abstract-signer" "5.4.1" - "@ethersproject/address" "5.4.0" - "@ethersproject/base64" "5.4.0" - "@ethersproject/basex" "5.4.0" - "@ethersproject/bignumber" "5.4.1" - "@ethersproject/bytes" "5.4.0" - "@ethersproject/constants" "5.4.0" - "@ethersproject/contracts" "5.4.1" - "@ethersproject/hash" "5.4.0" - "@ethersproject/hdnode" "5.4.0" - "@ethersproject/json-wallets" "5.4.0" - "@ethersproject/keccak256" "5.4.0" - "@ethersproject/logger" "5.4.1" - "@ethersproject/networks" "5.4.2" - "@ethersproject/pbkdf2" "5.4.0" - "@ethersproject/properties" "5.4.1" - "@ethersproject/providers" "5.4.5" - "@ethersproject/random" "5.4.0" - "@ethersproject/rlp" "5.4.0" - "@ethersproject/sha2" "5.4.0" - "@ethersproject/signing-key" "5.4.0" - "@ethersproject/solidity" "5.4.0" - "@ethersproject/strings" "5.4.0" - "@ethersproject/transactions" "5.4.0" - "@ethersproject/units" "5.4.0" - "@ethersproject/wallet" "5.4.0" - "@ethersproject/web" "5.4.0" - "@ethersproject/wordlists" "5.4.0" - -ethers@^5.5.4: - version "5.5.4" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.4.tgz#e1155b73376a2f5da448e4a33351b57a885f4352" - integrity sha512-N9IAXsF8iKhgHIC6pquzRgPBJEzc9auw3JoRkaKe+y4Wl/LFBtDDunNe7YmdomontECAcC5APaAgWZBiu1kirw== - dependencies: - "@ethersproject/abi" "5.5.0" - "@ethersproject/abstract-provider" "5.5.1" - "@ethersproject/abstract-signer" "5.5.0" - "@ethersproject/address" "5.5.0" - "@ethersproject/base64" "5.5.0" - "@ethersproject/basex" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/constants" "5.5.0" - "@ethersproject/contracts" "5.5.0" - "@ethersproject/hash" "5.5.0" - "@ethersproject/hdnode" "5.5.0" - "@ethersproject/json-wallets" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/logger" "5.5.0" - "@ethersproject/networks" "5.5.2" - "@ethersproject/pbkdf2" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/providers" "5.5.3" - "@ethersproject/random" "5.5.1" - "@ethersproject/rlp" "5.5.0" - "@ethersproject/sha2" "5.5.0" - "@ethersproject/signing-key" "5.5.0" - "@ethersproject/solidity" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@ethersproject/transactions" "5.5.0" - "@ethersproject/units" "5.5.0" - "@ethersproject/wallet" "5.5.0" - "@ethersproject/web" "5.5.1" - "@ethersproject/wordlists" "5.5.0" - -ethers@^5.6.2: - version "5.6.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.6.2.tgz#e75bac7f038c5e0fdde667dba62fc223924143a2" - integrity sha512-EzGCbns24/Yluu7+ToWnMca3SXJ1Jk1BvWB7CCmVNxyOeM4LLvw2OLuIHhlkhQk1dtOcj9UMsdkxUh8RiG1dxQ== - dependencies: - "@ethersproject/abi" "5.6.0" - "@ethersproject/abstract-provider" "5.6.0" - "@ethersproject/abstract-signer" "5.6.0" - "@ethersproject/address" "5.6.0" - "@ethersproject/base64" "5.6.0" - "@ethersproject/basex" "5.6.0" - "@ethersproject/bignumber" "5.6.0" +ethers@^5.4.4, ethers@^5.5.4, ethers@^5.6.2: + version "5.6.9" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.6.9.tgz#4e12f8dfcb67b88ae7a78a9519b384c23c576a4d" + integrity sha512-lMGC2zv9HC5EC+8r429WaWu3uWJUCgUCt8xxKCFqkrFuBDZXDYIdzDUECxzjf2BMF8IVBByY1EBoGSL3RTm8RA== + dependencies: + "@ethersproject/abi" "5.6.4" + "@ethersproject/abstract-provider" "5.6.1" + "@ethersproject/abstract-signer" "5.6.2" + "@ethersproject/address" "5.6.1" + "@ethersproject/base64" "5.6.1" + "@ethersproject/basex" "5.6.1" + "@ethersproject/bignumber" "5.6.2" "@ethersproject/bytes" "5.6.1" - "@ethersproject/constants" "5.6.0" - "@ethersproject/contracts" "5.6.0" - "@ethersproject/hash" "5.6.0" - "@ethersproject/hdnode" "5.6.0" - "@ethersproject/json-wallets" "5.6.0" - "@ethersproject/keccak256" "5.6.0" + "@ethersproject/constants" "5.6.1" + "@ethersproject/contracts" "5.6.2" + "@ethersproject/hash" "5.6.1" + "@ethersproject/hdnode" "5.6.2" + "@ethersproject/json-wallets" "5.6.1" + "@ethersproject/keccak256" "5.6.1" "@ethersproject/logger" "5.6.0" - "@ethersproject/networks" "5.6.1" - "@ethersproject/pbkdf2" "5.6.0" + "@ethersproject/networks" "5.6.4" + "@ethersproject/pbkdf2" "5.6.1" "@ethersproject/properties" "5.6.0" - "@ethersproject/providers" "5.6.2" - "@ethersproject/random" "5.6.0" - "@ethersproject/rlp" "5.6.0" - "@ethersproject/sha2" "5.6.0" - "@ethersproject/signing-key" "5.6.0" - "@ethersproject/solidity" "5.6.0" - "@ethersproject/strings" "5.6.0" - "@ethersproject/transactions" "5.6.0" - "@ethersproject/units" "5.6.0" - "@ethersproject/wallet" "5.6.0" - "@ethersproject/web" "5.6.0" - "@ethersproject/wordlists" "5.6.0" + "@ethersproject/providers" "5.6.8" + "@ethersproject/random" "5.6.1" + "@ethersproject/rlp" "5.6.1" + "@ethersproject/sha2" "5.6.1" + "@ethersproject/signing-key" "5.6.2" + "@ethersproject/solidity" "5.6.1" + "@ethersproject/strings" "5.6.1" + "@ethersproject/transactions" "5.6.2" + "@ethersproject/units" "5.6.1" + "@ethersproject/wallet" "5.6.2" + "@ethersproject/web" "5.6.1" + "@ethersproject/wordlists" "5.6.1" ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= + integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== dependencies: bn.js "4.11.6" number-to-bn "1.7.0" @@ -4847,37 +3969,38 @@ expo-random@*: base64-js "^1.3.0" express@^4.14.0: - version "4.17.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" - integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.2" + body-parser "1.20.0" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.2" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.9.7" + qs "6.10.3" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" + send "0.18.0" + serve-static "1.15.0" setprototypeof "1.2.0" - statuses "~1.5.0" + statuses "2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -4897,7 +4020,7 @@ extend@~3.0.2: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: version "1.4.1" @@ -4910,22 +4033,11 @@ eyes@^0.1.8: integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.5: +fast-glob@^3.2.5, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== @@ -4944,7 +4056,7 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-safe-stringify@^2.0.7: version "2.1.1" @@ -4957,9 +4069,9 @@ fast-stable-stringify@^1.0.0: integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== fastq@^1.6.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" - integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw== + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: reusify "^1.0.4" @@ -4982,17 +4094,17 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" find-up@^4.1.0: @@ -5020,9 +4132,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.1.tgz#bbef080d95fca6709362c73044a1634f7c6e7d05" - integrity sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg== + version "3.2.6" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" + integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== flow-copy-source@^2.0.9: version "2.0.9" @@ -5036,16 +4148,16 @@ flow-copy-source@^2.0.9: yargs "^15.0.1" flow-typed@^3.2.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/flow-typed/-/flow-typed-3.7.0.tgz#c3e087cb39de1a3ba303f5c646daca74c9fa8a21" - integrity sha512-Mxl4c445SbvX1IBJQ+WRcPsRp3LxRMorHH57db4tBuuzNKg/Qpeo9CwdBQbFr39Xz1lxlOTPOP2ZNFLnCzb0fA== + version "3.8.0" + resolved "https://registry.yarnpkg.com/flow-typed/-/flow-typed-3.8.0.tgz#2ed83e4723ede48a6c71135de90289c4031a19c6" + integrity sha512-Lgmj8K69kbTz7UjKjiuaG/UNaZpyoyCGKU9wL9wrcqw0a9GNvuRe7llueHSJThKyuOsymEmZf3TOpMUD2Fw1HQ== dependencies: "@octokit/rest" "^18.12.0" colors "1.4.0" flowgen "^1.10.0" fs-extra "^8.1.0" glob "^7.1.6" - got "^10.5.7" + got "^11.8.5" md5 "^2.2.1" mkdirp "^1.0.3" node-stream-zip "^1.15.0" @@ -5057,9 +4169,9 @@ flow-typed@^3.2.1: yargs "^15.1.0" flowgen@^1.10.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.19.0.tgz#ccb0fc98f46ab9848f23618cb3e7a2dc20721767" - integrity sha512-fP78dAGRuxpx9NLc+aIMkdW9ScjzHNA5wm+LLI4uFmAFo9T0xzEU6XgTXFbGBgSVwIL467D+fg39x73CR8012A== + version "1.20.0" + resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.20.0.tgz#268b49506429c5da765da5cd49ff231fa6465fe7" + integrity sha512-7ezkbL4hKBHzgVYzmwibzGcBwu4zA47I+eP4U1U0HAG4F4p7xIYLvuEmzfk5xKzBXnsr42d/ZgMM0Le84MeS2A== dependencies: "@babel/code-frame" "^7.16.7" "@babel/highlight" "^7.16.7" @@ -5070,30 +4182,22 @@ flowgen@^1.10.0: typescript "~4.4.4" typescript-compiler "^1.4.1-2" -follow-redirects@^1.10.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" - integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== - -follow-redirects@^1.14.4: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== - -follow-redirects@^1.14.8, follow-redirects@^1.14.9: +follow-redirects@^1.14.0, follow-redirects@^1.14.4, follow-redirects@^1.14.8, follow-redirects@^1.14.9: version "1.15.1" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data@^3.0.0: version "3.0.1" @@ -5135,7 +4239,7 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== from@~0: version "0.1.7" @@ -5185,7 +4289,7 @@ fs-minipass@^1.2.7: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.2" @@ -5197,15 +4301,30 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -5221,19 +4340,19 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== get-stream@^4.1.0: version "4.1.0" @@ -5254,17 +4373,25 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" @@ -5273,29 +4400,28 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.0.0, glob@^7.1.6, glob@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 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" -glob@^7.1.3: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +glob@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" global@~4.4.0: version "4.4.0" @@ -5306,22 +4432,22 @@ global@~4.4.0: process "^0.11.10" globals@^13.6.0, globals@^13.9.0: - version "13.10.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" - integrity sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g== + version "13.15.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" + integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== dependencies: type-fest "^0.20.2" globby@^11.0.3: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" slash "^3.0.0" google-protobuf@^3.20.1: @@ -5346,26 +4472,22 @@ got@9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -got@^10.5.7: - version "10.7.0" - resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" - integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== +got@^11.8.5: + version "11.8.5" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" + integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== dependencies: - "@sindresorhus/is" "^2.0.0" - "@szmarczak/http-timer" "^4.0.0" + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" "@types/cacheable-request" "^6.0.1" - cacheable-lookup "^2.0.0" - cacheable-request "^7.0.1" - decompress-response "^5.0.0" - duplexer3 "^0.1.4" - get-stream "^5.0.0" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" lowercase-keys "^2.0.0" - mimic-response "^2.1.0" p-cancelable "^2.0.0" - p-event "^4.0.0" responselike "^2.0.0" - to-readable-stream "^2.0.0" - type-fest "^0.10.0" got@^7.1.0: version "7.1.0" @@ -5387,12 +4509,7 @@ got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -graceful-fs@^4.2.0: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -5400,7 +4517,7 @@ graceful-fs@^4.2.0: har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" @@ -5410,35 +4527,37 @@ har-validator@~5.1.3: ajv "^6.12.3" har-schema "^2.0.0" -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + has-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-to-string-tag-x@^1.2.0: version "1.4.1" @@ -5447,10 +4566,17 @@ has-to-string-tag-x@^1.2.0: dependencies: has-symbol-support-x "^1.4.1" +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== has@^1.0.3: version "1.0.3" @@ -5492,7 +4618,7 @@ hi-base32@^0.5.1: hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -5503,17 +4629,6 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -5528,17 +4643,25 @@ http-errors@2.0.0: http-https@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" - integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= + integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -5578,10 +4701,10 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.0.5, ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +ignore@^5.0.5, ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -5594,12 +4717,12 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -5619,6 +4742,15 @@ injectpromise@^1.0.0: resolved "https://registry.yarnpkg.com/injectpromise/-/injectpromise-1.0.0.tgz#c621f7df2bbfc1164d714f1fb229adec2079da39" integrity sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA== +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + interpret@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" @@ -5637,16 +4769,19 @@ ipaddr.js@1.9.1: integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-bigint@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" - integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" @@ -5656,23 +4791,24 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" - integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-buffer@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.8.1: +is-core-module@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== @@ -5680,19 +4816,21 @@ is-core-module@^2.8.1: has "^1.0.3" is-date-object@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" - integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== dependencies: number-is-nan "^1.0.0" @@ -5707,18 +4845,13 @@ is-function@^1.0.1: integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== is-generator-function@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c" - integrity sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A== - -is-glob@^4.0.0, is-glob@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: - is-extglob "^2.1.1" + has-tostringtag "^1.0.0" -is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -5733,7 +4866,7 @@ is-gzip@2.0.0: is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= + integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== is-nan@^1.2.1: version "1.3.2" @@ -5743,15 +4876,17 @@ is-nan@^1.2.1: call-bind "^1.0.0" define-properties "^1.1.3" -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" - integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" @@ -5766,40 +4901,49 @@ is-object@^1.0.1: is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-regex@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" - integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.2" + has-tostringtag "^1.0.0" is-retry-allowed@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + is-stream@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-string@^1.0.5, is-string@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" - integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" @@ -5808,31 +4952,38 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e" - integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug== +is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== dependencies: - available-typed-arrays "^1.0.2" + available-typed-arrays "^1.0.5" call-bind "^1.0.2" - es-abstract "^1.18.0-next.2" - foreach "^2.0.5" - has-symbols "^1.0.1" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== iso-url@~0.4.7: version "0.4.7" @@ -5865,7 +5016,7 @@ isomorphic-ws@^4.0.1: isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== isurl@^1.0.0-alpha5: version "1.0.0" @@ -5907,12 +5058,7 @@ joi@^17.4.0: "@sideway/formula" "^3.0.0" "@sideway/pinpoint" "^2.0.0" -js-base64@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.6.1.tgz#555aae398b74694b4037af1f8a5a6209d170efbe" - integrity sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ== - -js-base64@^3.7.2: +js-base64@^3.6.1, js-base64@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== @@ -5930,7 +5076,7 @@ js-sha256@0.9.0, js-sha256@^0.9.0: js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= + integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" @@ -5958,7 +5104,7 @@ js-yaml@^3.13.1: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== json-bigint@1.0.0, json-bigint@^1.0.0: version "1.0.0" @@ -5970,7 +5116,7 @@ json-bigint@1.0.0, json-bigint@^1.0.0: json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== json-buffer@3.0.1, json-buffer@~3.0.1: version "3.0.1" @@ -5980,7 +5126,7 @@ json-buffer@3.0.1, json-buffer@~3.0.1: json-duplicate-key-handle@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-duplicate-key-handle/-/json-duplicate-key-handle-1.0.0.tgz#0678bd17822d23d8c0d0958b43011875fa37f363" - integrity sha1-Bni9F4ItI9jA0JWLQwEYdfo382M= + integrity sha512-OLIxL+UpfwUsqcLX3i6Z51ChTou/Vje+6bSeGUSubj96dF/SfjObDprLy++ZXYH07KITuEzsXS7PX7e/BGf4jw== dependencies: backslash "^0.2.0" @@ -6002,12 +5148,12 @@ json-schema@0.4.0: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json-text-sequence@~0.1.0: version "0.1.1" @@ -6024,7 +5170,7 @@ jsonc-parser@^3.0.0: jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" @@ -6074,11 +5220,11 @@ keyv@^3.0.0: json-buffer "3.0.0" keyv@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.2.2.tgz#4b6f602c0228ef4d8214c03c520bef469ed6b768" - integrity sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ== + version "4.3.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.3.2.tgz#e839df676a0c7ee594c8835e7c1c83742558e5c2" + integrity sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw== dependencies: - compress-brotli "^1.3.6" + compress-brotli "^1.3.8" json-buffer "3.0.1" keyvaluestorage-interface@^1.0.0: @@ -6118,11 +5264,6 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -6131,7 +5272,7 @@ lodash.merge@^4.6.2: lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" @@ -6191,10 +5332,10 @@ map-stream@~0.1.0: resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== -marked@^3.0.4: - version "3.0.7" - resolved "https://registry.yarnpkg.com/marked/-/marked-3.0.7.tgz#343aad9e91b96249b495c99c512ea09cfe06de1e" - integrity sha512-ctKqbnLuNbsHbI26cfMyOlKgXGfl1orOv1AvWWDX7AkgfMOwCWvmuYc+mVLeWhQ9W6hdWVBynOs96VkcscKo0Q== +marked@^4.0.16: + version "4.0.17" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.17.tgz#1186193d85bb7882159cdcfc57d1dfccaffb3fe9" + integrity sha512-Wfk0ATOK5iPxM4ptrORkFemqroz0ZDxp5MWfYA7H/F+wO17NRWV5Ypxi6p3g2Xmw2bKeiYOl6oVnLHKxBA0VhA== md5.js@^1.3.4: version "1.3.5" @@ -6217,19 +5358,19 @@ md5@^2.2.1: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -6237,15 +5378,15 @@ merge2@^1.3.0: methods@^1.1.2, methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" miller-rabin@^4.0.0: version "4.0.1" @@ -6255,24 +5396,12 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.50.0: - version "1.50.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" - integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== - mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12: - version "2.1.33" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" - integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== - dependencies: - mime-db "1.50.0" - -mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -6299,15 +5428,20 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -mimic-response@^2.0.0, mimic-response@^2.1.0: +mimic-response@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== dependencies: dom-walk "^0.1.0" @@ -6319,15 +5453,22 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" @@ -6361,7 +5502,7 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: mkdirp-promise@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" - integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== dependencies: mkdirp "*" @@ -6390,7 +5531,7 @@ mri@^1.1.5: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -6459,19 +5600,19 @@ multimatch@^4.0.0: minimatch "^3.0.4" nan@^2.13.2: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + version "2.16.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== nano-json-stream-parser@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" - integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= + integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== nanoassert@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" - integrity sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40= + integrity sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ== napi-build-utils@^1.0.1: version "1.0.2" @@ -6481,7 +5622,7 @@ napi-build-utils@^1.0.1: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.3: version "0.6.3" @@ -6530,12 +5671,7 @@ node-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-gyp-build@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" - integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== - -node-gyp-build@^4.3.0: +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: version "4.4.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== @@ -6589,12 +5725,12 @@ npmlog@^4.0.1: number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== number-to-bn@1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= + integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== dependencies: bn.js "4.11.6" strip-hex-prefix "1.0.0" @@ -6607,12 +5743,12 @@ oauth-sign@~0.9.0: object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.10.3, object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== object-is@^1.0.1: version "1.1.5" @@ -6622,7 +5758,7 @@ object-is@^1.0.1: call-bind "^1.0.2" define-properties "^1.1.3" -object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -6638,19 +5774,18 @@ object.assign@^4.1.2: object-keys "^1.1.1" object.fromentries@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" - integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + version "2.0.5" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" + integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" + es-abstract "^1.19.1" oboe@2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" - integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= + integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== dependencies: http-https "^1.0.0" @@ -6661,17 +5796,10 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -6682,13 +5810,6 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onigasm@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.5.tgz#cc4d2a79a0fa0b64caec1f4c7ea367585a676892" - integrity sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA== - dependencies: - lru-cache "^5.1.1" - optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -6716,17 +5837,10 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== -p-event@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" - integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== - dependencies: - p-timeout "^3.1.0" - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-limit@^2.2.0: version "2.3.0" @@ -6759,14 +5873,7 @@ p-locate@^5.0.0: p-timeout@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= - dependencies: - p-finally "^1.0.0" - -p-timeout@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + integrity sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA== dependencies: p-finally "^1.0.0" @@ -6803,16 +5910,6 @@ parse-headers@^2.0.0: resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== -parseqs@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" - integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== - -parseuri@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" - integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== - parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -6826,7 +5923,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" @@ -6841,7 +5938,7 @@ path-parse@^1.0.7: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-type@^4.0.0: version "4.0.0" @@ -6874,18 +5971,13 @@ perf_hooks@0.0.1: performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -picomatch@^2.0.4, picomatch@^2.2.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - platform@1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" @@ -6918,27 +6010,22 @@ prelude-ls@^1.2.1: prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== prettier@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" - integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== - -prettier@^2.5.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== +prettier@^2.3.2, prettier@^2.5.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== pretty-quick@^3.1.3: version "3.1.3" @@ -6960,7 +6047,7 @@ process-nextick-args@~2.0.0: process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== progress@^2.0.0: version "2.0.3" @@ -6986,26 +6073,7 @@ protobufjs@6.10.2: "@types/node" "^13.7.0" long "^4.0.0" -protobufjs@6.11.2: - version "6.11.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b" - integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - -protobufjs@^6.11.2, protobufjs@^6.11.3: +protobufjs@6.11.3, protobufjs@^6.11.2, protobufjs@^6.11.3: version "6.11.3" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== @@ -7067,7 +6135,7 @@ pump@^3.0.0: punycode@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= + integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" @@ -7086,7 +6154,7 @@ pvutils@^1.1.3: resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== -qs@6.10.1, qs@^6.9.4: +qs@6.10.1: version "6.10.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== @@ -7100,10 +6168,12 @@ qs@6.10.3: dependencies: side-channel "^1.0.4" -qs@6.9.7: - version "6.9.7" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" - integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== +qs@^6.9.4: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" qs@~6.5.2: version "6.5.3" @@ -7138,6 +6208,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -7158,16 +6233,6 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" - integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== - dependencies: - bytes "3.1.2" - http-errors "1.8.1" - iconv-lite "0.4.24" - unpipe "1.0.0" - raw-body@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" @@ -7232,7 +6297,7 @@ readonly-date@^1.0.0: rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" @@ -7242,9 +6307,18 @@ regenerator-runtime@^0.11.0: integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" regexpp@^3.1.0: version "3.2.0" @@ -7280,7 +6354,7 @@ request@^2.79.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" @@ -7295,7 +6369,12 @@ require-main-filename@^2.0.0: requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@^4.0.0: version "4.0.0" @@ -7303,18 +6382,18 @@ resolve-from@^4.0.0: integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.1.6: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== dependencies: lowercase-keys "^1.0.0" @@ -7352,7 +6431,7 @@ rlp@^2.0.0, rlp@^2.2.4: dependencies: bn.js "^5.2.0" -rpc-websockets@^7.4.2: +rpc-websockets@^7.5.0: version "7.5.0" resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.0.tgz#bbeb87572e66703ff151e50af1658f98098e2748" integrity sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ== @@ -7426,9 +6505,9 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-gyp-build "^4.2.0" secretjs@^1.3.0-beta.1: - version "1.3.0-beta.1" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.3.0-beta.1.tgz#a432082f8e1d582997a4d09abd47be6688db7d88" - integrity sha512-g0NgleCWvKKzQg3uFygbV8S39VXTXHHzENdCjtp/PrMHB1aXA64hEMUjcZTJrXyLEe1NC2gTZksPnYgAhFA/vg== + version "1.3.0-beta.6" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.3.0-beta.6.tgz#41ed7355f926707a665679f2357ac3ed17d83e51" + integrity sha512-0dI11xiqKWnEZxVn4k1O7WHDQ1t2Qw2XZCzxVP1tBa7KdUj4aA6kTMKsZfNQh/cvrJwnsS87WtLxUNueh7AwJw== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" @@ -7444,7 +6523,7 @@ secretjs@^1.3.0-beta.1: is-gzip "2.0.0" miscreant "0.3.2" pako "2.0.4" - protobufjs "6.11.2" + protobufjs "6.11.3" secure-random "1.1.2" secure-random@1.1.2: @@ -7463,40 +6542,40 @@ semver@^5.4.1, semver@^5.6.0: integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" -send@0.17.2: - version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "1.8.1" + http-errors "2.0.0" mime "1.6.0" ms "2.1.3" - on-finished "~2.3.0" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" -serve-static@1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" - integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.2" + send "0.18.0" servify@^0.1.12: version "0.1.12" @@ -7512,17 +6591,17 @@ servify@^0.1.12: set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== setimmediate@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= + integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.2.0: version "1.2.0" @@ -7558,13 +6637,13 @@ shelljs@^0.8.4: interpret "^1.0.0" rechoir "^0.6.2" -shiki@^0.9.11: - version "0.9.12" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.9.12.tgz#70cbc8c1bb78ff7b356f84a7eecdb040efddd247" - integrity sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw== +shiki@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.10.1.tgz#6f9a16205a823b56c072d0f1a0bcd0f2646bef14" + integrity sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng== dependencies: jsonc-parser "^3.0.0" - onigasm "^2.2.5" + vscode-oniguruma "^1.6.1" vscode-textmate "5.2.0" side-channel@^1.0.4: @@ -7632,25 +6711,21 @@ snake-case@^3.0.4: tslib "^2.0.3" socket.io-client@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.1.3.tgz#236daa642a9f229932e00b7221e843bf74232a62" - integrity sha512-hISFn6PDpgDifVUiNklLHVPTMv1LAk8poHArfIUdXa+gKgbr0MZbAlquDFqCqsF30yBqa+jg42wgos2FK50BHA== + version "4.5.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.1.tgz#cab8da71976a300d3090414e28c2203a47884d84" + integrity sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA== dependencies: - "@types/component-emitter" "^1.2.10" - backo2 "~1.0.2" - component-emitter "~1.3.0" - debug "~4.3.1" - engine.io-client "~5.1.2" - parseuri "0.0.6" - socket.io-parser "~4.0.4" + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.2" + engine.io-client "~6.2.1" + socket.io-parser "~4.2.0" -socket.io-parser@~4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" - integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== +socket.io-parser@~4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" + integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== dependencies: - "@types/component-emitter" "^1.2.10" - component-emitter "~1.3.0" + "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" split-on-first@^1.0.0: @@ -7668,7 +6743,7 @@ split@0.3: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.7.0: version "1.17.0" @@ -7703,11 +6778,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - str2buf@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/str2buf/-/str2buf-1.3.0.tgz#a4172afff4310e67235178e738a2dbb573abead0" @@ -7723,23 +6793,23 @@ stream-combiner@~0.0.4: strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.3: +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -7748,30 +6818,23 @@ string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" string_decoder@^1.1.1: version "1.3.0" @@ -7790,18 +6853,11 @@ string_decoder@~1.1.1: strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -7816,7 +6872,7 @@ strip-final-newline@^2.0.0: strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= + integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== dependencies: is-hex-prefixed "1.0.0" @@ -7828,7 +6884,7 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== superagent@^6.1.0: version "6.1.0" @@ -7893,19 +6949,7 @@ swarm-js@^0.1.40: tar "^4.0.2" xhr-request "^1.0.1" -table@^6.0.9: - version "6.7.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" - integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== - dependencies: - ajv "^8.0.1" - lodash.clonedeep "^4.5.0" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.0" - strip-ansi "^6.0.0" - -table@^6.7.3: +table@^6.0.9, table@^6.7.3: version "6.8.0" resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== @@ -7958,12 +7002,12 @@ text-encoding-utf-8@^1.0.2: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -thor-devkit@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/thor-devkit/-/thor-devkit-2.0.4.tgz#2f4dccc8bbde79d532876a9c6a4f41650aeed905" - integrity sha512-4bti4dwYOwflXI3OirSMOvN8nyTTkwVMduuT1QmNbm9rJ1VLmI9Up2Hvqs20w4FxgA77ggYHbawU4I6OS9ZkOQ== +thor-devkit@^2.0.4, thor-devkit@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/thor-devkit/-/thor-devkit-2.0.5.tgz#1cdd6d623f755e82aacf27290624372bfe6d1b90" + integrity sha512-82Z0/sY0+S54bhmg57r7iqoK7sJB1F5md3zWXjXXGPin3ejsR0Whw1O9wzWvE0DkTp1EiPHWFMTPtOejxaiXeA== dependencies: "@vechain/ethers" "^4.0.27-5" bignumber.js "^7.2.1" @@ -7981,7 +7025,7 @@ through@2, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1: timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== tiny-secp256k1@^1.1.3: version "1.1.6" @@ -7999,11 +7043,6 @@ to-readable-stream@^1.0.0: resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== -to-readable-stream@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-2.1.0.tgz#82880316121bea662cdc226adb30addb50cb06e8" - integrity sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -8053,7 +7092,7 @@ tough-cookie@~2.5.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== tronstation@^1.0.1: version "1.0.1" @@ -8064,12 +7103,12 @@ tronstation@^1.0.1: babel-runtime "^6.26.0" tronweb@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.1.0.tgz#a79d3ac8e1d4a78d9d69067e2bc3e6cede6e83c9" - integrity sha512-aCBLnww8db5UQaewZFs4XJcgLhXuQG6Qxnbuhnw1LlFMBGWr7kX3OMK+Ld3weGHvZfoxgH6q5+LMhp/xewHrIg== + version "4.2.0" + resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.2.0.tgz#332aa4df1dc8f24b5260377c3127532280eb2143" + integrity sha512-zNWG9iHCfpmRHBpiC2YpRlBdtmfdG1VNJw0uMg/lxZYyFpHghf2LvGCS34Kv7HvoLH7tck/O/CZGYudKkoLF7w== dependencies: "@babel/runtime" "^7.0.0" - axios "^0.24.0" + axios "^0.26.1" bignumber.js "^9.0.1" elliptic "^6.5.4" ethers "^5.4.4" @@ -8099,7 +7138,7 @@ tsutils@^3.21.0: tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" @@ -8111,7 +7150,7 @@ tweetnacl@1.0.3, tweetnacl@^1.0.0, tweetnacl@^1.0.3: tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -8120,11 +7159,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-fest@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.10.0.tgz#7f06b2b9fbfc581068d1341ffabd0349ceafc642" - integrity sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw== - type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -8161,15 +7195,15 @@ typedarray-to-buffer@^4.0.0: integrity sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ== typedoc@^0.22.6: - version "0.22.6" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.6.tgz#1122f83a6eb5cd7dbb26d1924de1f9de9e8c7c7e" - integrity sha512-ePbJqOaz0GNkU2ehRwFwBpLD4Gp6m7jbJfHysXmDdjVKc1g8DFJ83r/LOZ9TZrkC661vgpoIY3FjSPEtUilHNA== + version "0.22.18" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.18.tgz#1d000c33b66b88fd8cdfea14a26113a83b7e6591" + integrity sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA== dependencies: - glob "^7.2.0" + glob "^8.0.3" lunr "^2.3.9" - marked "^3.0.4" - minimatch "^3.0.4" - shiki "^0.9.11" + marked "^4.0.16" + minimatch "^5.1.0" + shiki "^0.10.1" typeforce@^1.11.5: version "1.18.0" @@ -8179,12 +7213,12 @@ typeforce@^1.11.5: typescript-compiler@^1.4.1-2: version "1.4.1-2" resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f" - integrity sha1-uk99si2RU0oZKdkACdzhYety/T8= + integrity sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg== typescript@^4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" - integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== + version "4.7.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== typescript@~4.4.4: version "4.4.4" @@ -8201,14 +7235,14 @@ ultron@~1.1.0: resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" universal-user-agent@^6.0.0: @@ -8229,7 +7263,7 @@ universalify@^2.0.0: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== uri-js@^4.2.2: version "4.4.1" @@ -8241,21 +7275,21 @@ uri-js@^4.2.2: url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== dependencies: prepend-http "^1.0.1" url-parse-lax@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== dependencies: prepend-http "^2.0.0" url-parse@^1.5.1: - version "1.5.3" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" - integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -8263,12 +7297,12 @@ url-parse@^1.5.1: url-set-query@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= + integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== url-to-options@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + integrity sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A== usb@^1.7.0: version "1.9.2" @@ -8293,7 +7327,7 @@ utf8@3.0.0, utf8@^3.0.0: util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@^0.12.0: version "0.12.4" @@ -8310,12 +7344,12 @@ util@^0.12.0: utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= + integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== uuid@3.3.2: version "3.3.2" @@ -8355,17 +7389,22 @@ varint@^5.0.0: vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" +vscode-oniguruma@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" + integrity sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA== + vscode-textmate@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" @@ -8382,85 +7421,85 @@ wait-on@6.0.0: minimist "^1.2.5" rxjs "^7.1.0" -web3-bzz@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.3.tgz#6860a584f748838af5e3932b6798e024ab8ae951" - integrity sha512-y2i2IW0MfSqFc1JBhBSQ59Ts9xE30hhxSmLS13jLKWzie24/An5dnoGarp2rFAy20tevJu1zJVPYrEl14jiL5w== +web3-bzz@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.4.tgz#9419e606e38a9777443d4ce40506ebd796e06075" + integrity sha512-w9zRhyEqTK/yi0LGRHjZMcPCfP24LBjYXI/9YxFw9VqsIZ9/G0CRCnUt12lUx0A56LRAMpF7iQ8eA73aBcO29Q== dependencies: "@types/node" "^12.12.6" got "9.6.0" swarm-js "^0.1.40" -web3-core-helpers@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.3.tgz#9a8d7830737d0e9c48694b244f4ce0f769ba67b9" - integrity sha512-qS2t6UKLhRV/6C7OFHtMeoHphkcA+CKUr2vfpxy4hubs3+Nj28K9pgiqFuvZiXmtEEwIAE2A28GBOC3RdcSuFg== +web3-core-helpers@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.4.tgz#f8f808928560d3e64e0c8d7bdd163aa4766bcf40" + integrity sha512-F8PH11qIkE/LpK4/h1fF/lGYgt4B6doeMi8rukeV/s4ivseZHHslv1L6aaijLX/g/j4PsFmR42byynBI/MIzFg== dependencies: - web3-eth-iban "1.7.3" - web3-utils "1.7.3" + web3-eth-iban "1.7.4" + web3-utils "1.7.4" -web3-core-method@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.3.tgz#eb2a4f140448445c939518c0fa6216b3d265c5e9" - integrity sha512-SeF8YL/NVFbj/ddwLhJeS0io8y7wXaPYA2AVT0h2C2ESYkpvOtQmyw2Bc3aXxBmBErKcbOJjE2ABOKdUmLSmMA== +web3-core-method@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.4.tgz#3873c6405e1a0a8a1efc1d7b28de8b7550b00c15" + integrity sha512-56K7pq+8lZRkxJyzf5MHQPI9/VL3IJLoy4L/+q8HRdZJ3CkB1DkXYaXGU2PeylG1GosGiSzgIfu1ljqS7CP9xQ== dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - web3-core-helpers "1.7.3" - web3-core-promievent "1.7.3" - web3-core-subscriptions "1.7.3" - web3-utils "1.7.3" + "@ethersproject/transactions" "^5.6.2" + web3-core-helpers "1.7.4" + web3-core-promievent "1.7.4" + web3-core-subscriptions "1.7.4" + web3-utils "1.7.4" -web3-core-promievent@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.3.tgz#2d0eeef694569b61355054c721578f67df925b80" - integrity sha512-+mcfNJLP8h2JqcL/UdMGdRVfTdm+bsoLzAFtLpazE4u9kU7yJUgMMAqnK59fKD3Zpke3DjaUJKwz1TyiGM5wig== +web3-core-promievent@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.4.tgz#80a75633fdfe21fbaae2f1e38950edb2f134868c" + integrity sha512-o4uxwXKDldN7ER7VUvDfWsqTx9nQSP1aDssi1XYXeYC2xJbVo0n+z6ryKtmcoWoRdRj7uSpVzal3nEmlr480mA== dependencies: eventemitter3 "4.0.4" -web3-core-requestmanager@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.3.tgz#226f79d16e546c9157d00908de215e984cae84e9" - integrity sha512-bC+jeOjPbagZi2IuL1J5d44f3zfPcgX+GWYUpE9vicNkPUxFBWRG+olhMo7L+BIcD57cTmukDlnz+1xBULAjFg== +web3-core-requestmanager@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.4.tgz#2dc8a526dab8183dca3fef54658621801b1d0469" + integrity sha512-IuXdAm65BQtPL4aI6LZJJOrKAs0SM5IK2Cqo2/lMNvVMT9Kssq6qOk68Uf7EBDH0rPuINi+ReLP+uH+0g3AnPA== dependencies: util "^0.12.0" - web3-core-helpers "1.7.3" - web3-providers-http "1.7.3" - web3-providers-ipc "1.7.3" - web3-providers-ws "1.7.3" + web3-core-helpers "1.7.4" + web3-providers-http "1.7.4" + web3-providers-ipc "1.7.4" + web3-providers-ws "1.7.4" -web3-core-subscriptions@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.3.tgz#ca456dfe2c219a0696c5cf34c13b03c3599ec5d5" - integrity sha512-/i1ZCLW3SDxEs5mu7HW8KL4Vq7x4/fDXY+yf/vPoDljlpvcLEOnI8y9r7om+0kYwvuTlM6DUHHafvW0221TyRQ== +web3-core-subscriptions@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.4.tgz#cfbd3fa71081a8c8c6f1a64577a1a80c5bd9826f" + integrity sha512-VJvKWaXRyxk2nFWumOR94ut9xvjzMrRtS38c4qj8WBIRSsugrZr5lqUwgndtj0qx4F+50JhnU++QEqUEAtKm3g== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.7.3" + web3-core-helpers "1.7.4" -web3-core@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.3.tgz#2ef25c4cc023997f43af9f31a03b571729ff3cda" - integrity sha512-4RNxueGyevD1XSjdHE57vz/YWRHybpcd3wfQS33fgMyHZBVLFDNwhn+4dX4BeofVlK/9/cmPAokLfBUStZMLdw== +web3-core@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.4.tgz#943fff99134baedafa7c65b4a0bbd424748429ff" + integrity sha512-L0DCPlIh9bgIED37tYbe7bsWrddoXYc897ANGvTJ6MFkSNGiMwDkTLWSgYd9Mf8qu8b4iuPqXZHMwIo4atoh7Q== dependencies: - "@types/bn.js" "^4.11.5" + "@types/bn.js" "^5.1.0" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.7.3" - web3-core-method "1.7.3" - web3-core-requestmanager "1.7.3" - web3-utils "1.7.3" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-core-requestmanager "1.7.4" + web3-utils "1.7.4" -web3-eth-abi@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.3.tgz#2a1123c7252c37100eecd0b1fb2fb2c51366071f" - integrity sha512-ZlD8DrJro0ocnbZViZpAoMX44x5aYAb73u2tMq557rMmpiluZNnhcCYF/NnVMy6UIkn7SF/qEA45GXA1ne6Tnw== +web3-eth-abi@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.4.tgz#3fee967bafd67f06b99ceaddc47ab0970f2a614a" + integrity sha512-eMZr8zgTbqyL9MCTCAvb67RbVyN5ZX7DvA0jbLOqRWCiw+KlJKTGnymKO6jPE8n5yjk4w01e165Qb11hTDwHgg== dependencies: - "@ethersproject/abi" "5.0.7" - web3-utils "1.7.3" + "@ethersproject/abi" "^5.6.3" + web3-utils "1.7.4" -web3-eth-accounts@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.3.tgz#cd1789000f13ed3c438e96b3e80ee7be8d3f1a9b" - integrity sha512-aDaWjW1oJeh0LeSGRVyEBiTe/UD2/cMY4dD6pQYa8dOhwgMtNQjxIQ7kacBBXe7ZKhjbIFZDhvXN4mjXZ82R2Q== +web3-eth-accounts@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.4.tgz#7a24a4dfe947f7e9d1bae678529e591aa146167a" + integrity sha512-Y9vYLRKP7VU7Cgq6wG1jFaG2k3/eIuiTKAG8RAuQnb6Cd9k5BRqTm5uPIiSo0AP/u11jDomZ8j7+WEgkU9+Btw== dependencies: "@ethereumjs/common" "^2.5.0" "@ethereumjs/tx" "^3.3.2" @@ -8469,85 +7508,85 @@ web3-eth-accounts@1.7.3: ethereumjs-util "^7.0.10" scrypt-js "^3.0.1" uuid "3.3.2" - web3-core "1.7.3" - web3-core-helpers "1.7.3" - web3-core-method "1.7.3" - web3-utils "1.7.3" - -web3-eth-contract@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.3.tgz#c4efc118ed7adafbc1270b633f33e696a39c7fc7" - integrity sha512-7mjkLxCNMWlQrlfM/MmNnlKRHwFk5XrZcbndoMt3KejcqDP6dPHi2PZLutEcw07n/Sk8OMpSamyF3QiGfmyRxw== - dependencies: - "@types/bn.js" "^4.11.5" - web3-core "1.7.3" - web3-core-helpers "1.7.3" - web3-core-method "1.7.3" - web3-core-promievent "1.7.3" - web3-core-subscriptions "1.7.3" - web3-eth-abi "1.7.3" - web3-utils "1.7.3" - -web3-eth-ens@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.3.tgz#ebc56a4dc7007f4f899259bbae1237d3095e2f3f" - integrity sha512-q7+hFGHIc0mBI3LwgRVcLCQmp6GItsWgUtEZ5bjwdjOnJdbjYddm7PO9RDcTDQ6LIr7hqYaY4WTRnDHZ6BEt5Q== + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-utils "1.7.4" + +web3-eth-contract@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.4.tgz#e5761cfb43d453f57be4777b2e5e7e1082078ff7" + integrity sha512-ZgSZMDVI1pE9uMQpK0T0HDT2oewHcfTCv0osEqf5qyn5KrcQDg1GT96/+S0dfqZ4HKj4lzS5O0rFyQiLPQ8LzQ== + dependencies: + "@types/bn.js" "^5.1.0" + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-core-promievent "1.7.4" + web3-core-subscriptions "1.7.4" + web3-eth-abi "1.7.4" + web3-utils "1.7.4" + +web3-eth-ens@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.4.tgz#346720305379c0a539e226141a9602f1da7bc0c8" + integrity sha512-Gw5CVU1+bFXP5RVXTCqJOmHn71X2ghNk9VcEH+9PchLr0PrKbHTA3hySpsPco1WJAyK4t8SNQVlNr3+bJ6/WZA== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.7.3" - web3-core-helpers "1.7.3" - web3-core-promievent "1.7.3" - web3-eth-abi "1.7.3" - web3-eth-contract "1.7.3" - web3-utils "1.7.3" - -web3-eth-iban@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.3.tgz#47433a73380322bba04e17b91fccd4a0e63a390a" - integrity sha512-1GPVWgajwhh7g53mmYDD1YxcftQniIixMiRfOqlnA1w0mFGrTbCoPeVaSQ3XtSf+rYehNJIZAUeDBnONVjXXmg== - dependencies: - bn.js "^4.11.9" - web3-utils "1.7.3" - -web3-eth-personal@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.3.tgz#ca2464dca356d4335aa8141cf75a6947f10f45a6" - integrity sha512-iTLz2OYzEsJj2qGE4iXC1Gw+KZN924fTAl0ESBFs2VmRhvVaM7GFqZz/wx7/XESl3GVxGxlRje3gNK0oGIoYYQ== + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-promievent "1.7.4" + web3-eth-abi "1.7.4" + web3-eth-contract "1.7.4" + web3-utils "1.7.4" + +web3-eth-iban@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.4.tgz#711fb2547fdf0f988060027331b2b6c430505753" + integrity sha512-XyrsgWlZQMv5gRcjXMsNvAoCRvV5wN7YCfFV5+tHUCqN8g9T/o4XUS20vDWD0k4HNiAcWGFqT1nrls02MGZ08w== + dependencies: + bn.js "^5.2.1" + web3-utils "1.7.4" + +web3-eth-personal@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.4.tgz#22c399794cb828a75703df8bb4b3c1331b471546" + integrity sha512-O10C1Hln5wvLQsDhlhmV58RhXo+GPZ5+W76frSsyIrkJWLtYQTCr5WxHtRC9sMD1idXLqODKKgI2DL+7xeZ0/g== dependencies: "@types/node" "^12.12.6" - web3-core "1.7.3" - web3-core-helpers "1.7.3" - web3-core-method "1.7.3" - web3-net "1.7.3" - web3-utils "1.7.3" - -web3-eth@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.3.tgz#9e92785ea18d682548b6044551abe7f2918fc0b5" - integrity sha512-BCIRMPwaMlTCbswXyGT6jj9chCh9RirbDFkPtvqozfQ73HGW7kP78TXXf9+Xdo1GjutQfxi/fQ9yPdxtDJEpDA== - dependencies: - web3-core "1.7.3" - web3-core-helpers "1.7.3" - web3-core-method "1.7.3" - web3-core-subscriptions "1.7.3" - web3-eth-abi "1.7.3" - web3-eth-accounts "1.7.3" - web3-eth-contract "1.7.3" - web3-eth-ens "1.7.3" - web3-eth-iban "1.7.3" - web3-eth-personal "1.7.3" - web3-net "1.7.3" - web3-utils "1.7.3" - -web3-net@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.3.tgz#54e35bcc829fdc40cf5001a3870b885d95069810" - integrity sha512-zAByK0Qrr71k9XW0Adtn+EOuhS9bt77vhBO6epAeQ2/VKl8rCGLAwrl3GbeEl7kWa8s/su72cjI5OetG7cYR0g== - dependencies: - web3-core "1.7.3" - web3-core-method "1.7.3" - web3-utils "1.7.3" + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-net "1.7.4" + web3-utils "1.7.4" + +web3-eth@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.4.tgz#a7c1d3ccdbba4de4a82df7e3c4db716e4a944bf2" + integrity sha512-JG0tTMv0Ijj039emXNHi07jLb0OiWSA9O24MRSk5vToTQyDNXihdF2oyq85LfHuF690lXZaAXrjhtLNlYqb7Ug== + dependencies: + web3-core "1.7.4" + web3-core-helpers "1.7.4" + web3-core-method "1.7.4" + web3-core-subscriptions "1.7.4" + web3-eth-abi "1.7.4" + web3-eth-accounts "1.7.4" + web3-eth-contract "1.7.4" + web3-eth-ens "1.7.4" + web3-eth-iban "1.7.4" + web3-eth-personal "1.7.4" + web3-net "1.7.4" + web3-utils "1.7.4" + +web3-net@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.4.tgz#3153dfd3423262dd6fbec7aae5467202c4cad431" + integrity sha512-d2Gj+DIARHvwIdmxFQ4PwAAXZVxYCR2lET0cxz4KXbE5Og3DNjJi+MoPkX+WqoUXqimu/EOd4Cd+7gefqVAFDg== + dependencies: + web3-core "1.7.4" + web3-core-method "1.7.4" + web3-utils "1.7.4" web3-providers-connex@^0.3.1: version "0.3.1" @@ -8561,47 +7600,47 @@ web3-providers-connex@^0.3.1: thor-devkit "^2.0.4" web3 "^1.7.1" -web3-providers-http@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.3.tgz#8ea5e39f6ceee0b5bc4e45403fae75cad8ff4cf7" - integrity sha512-TQJfMsDQ5Uq9zGMYlu7azx1L7EvxW+Llks3MaWn3cazzr5tnrDbGh6V17x6LN4t8tFDHWx0rYKr3mDPqyTjOZw== +web3-providers-http@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.4.tgz#8209cdcb115db5ccae1f550d1c4e3005e7538d02" + integrity sha512-AU+/S+49rcogUER99TlhW+UBMk0N2DxvN54CJ2pK7alc2TQ7+cprNPLHJu4KREe8ndV0fT6JtWUfOMyTvl+FRA== dependencies: - web3-core-helpers "1.7.3" + web3-core-helpers "1.7.4" xhr2-cookies "1.1.0" -web3-providers-ipc@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.3.tgz#a34872103a8d37a03795fa2f9b259e869287dcaa" - integrity sha512-Z4EGdLKzz6I1Bw+VcSyqVN4EJiT2uAro48Am1eRvxUi4vktGoZtge1ixiyfrRIVb6nPe7KnTFl30eQBtMqS0zA== +web3-providers-ipc@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.4.tgz#02e85e99e48f432c9d34cee7d786c3685ec9fcfa" + integrity sha512-jhArOZ235dZy8fS8090t60nTxbd1ap92ibQw5xIrAQ9m7LcZKNfmLAQUVsD+3dTFvadRMi6z1vCO7zRi84gWHw== dependencies: oboe "2.1.5" - web3-core-helpers "1.7.3" + web3-core-helpers "1.7.4" -web3-providers-ws@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.3.tgz#87564facc47387c9004a043a6686e4881ed6acfe" - integrity sha512-PpykGbkkkKtxPgv7U4ny4UhnkqSZDfLgBEvFTXuXLAngbX/qdgfYkhIuz3MiGplfL7Yh93SQw3xDjImXmn2Rgw== +web3-providers-ws@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.4.tgz#6e60bcefb456f569a3e766e386d7807a96f90595" + integrity sha512-g72X77nrcHMFU8hRzQJzfgi/072n8dHwRCoTw+WQrGp+XCQ71fsk2qIu3Tp+nlp5BPn8bRudQbPblVm2uT4myQ== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.7.3" + web3-core-helpers "1.7.4" websocket "^1.0.32" -web3-shh@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.3.tgz#84e10adf628556798244b58f73cda1447bb7075e" - integrity sha512-bQTSKkyG7GkuULdZInJ0osHjnmkHij9tAySibpev1XjYdjLiQnd0J9YGF4HjvxoG3glNROpuCyTaRLrsLwaZuw== +web3-shh@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.4.tgz#bee91cce2737c529fd347274010b548b6ea060f1" + integrity sha512-mlSZxSYcMkuMCxqhTYnZkUdahZ11h+bBv/8TlkXp/IHpEe4/Gg+KAbmfudakq3EzG/04z70XQmPgWcUPrsEJ+A== dependencies: - web3-core "1.7.3" - web3-core-method "1.7.3" - web3-core-subscriptions "1.7.3" - web3-net "1.7.3" + web3-core "1.7.4" + web3-core-method "1.7.4" + web3-core-subscriptions "1.7.4" + web3-net "1.7.4" -web3-utils@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.3.tgz#b214d05f124530d8694ad364509ac454d05f207c" - integrity sha512-g6nQgvb/bUpVUIxJE+ezVN+rYwYmlFyMvMIRSuqpi1dk6ApDD00YNArrk7sPcZnjvxOJ76813Xs2vIN2rgh4lg== +web3-utils@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.4.tgz#eb6fa3706b058602747228234453811bbee017f5" + integrity sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA== dependencies: - bn.js "^4.11.9" + bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" ethereumjs-util "^7.1.0" ethjs-unit "0.1.6" @@ -8610,17 +7649,17 @@ web3-utils@1.7.3: utf8 "3.0.0" web3@^1.7.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.3.tgz#30fe786338b2cc775881cb28c056ee5da4be65b8" - integrity sha512-UgBvQnKIXncGYzsiGacaiHtm0xzQ/JtGqcSO/ddzQHYxnNuwI72j1Pb4gskztLYihizV9qPNQYHMSCiBlStI9A== - dependencies: - web3-bzz "1.7.3" - web3-core "1.7.3" - web3-eth "1.7.3" - web3-eth-personal "1.7.3" - web3-net "1.7.3" - web3-shh "1.7.3" - web3-utils "1.7.3" + version "1.7.4" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.4.tgz#00c9aef8e13ade92fd773d845fff250535828e93" + integrity sha512-iFGK5jO32vnXM/ASaJBaI0+gVR6uHozvYdxkdhaeOCD6HIQ4iIXadbO2atVpE9oc/H8l2MovJ4LtPhG7lIBN8A== + dependencies: + web3-bzz "1.7.4" + web3-core "1.7.4" + web3-eth "1.7.4" + web3-eth-personal "1.7.4" + web3-net "1.7.4" + web3-shh "1.7.4" + web3-utils "1.7.4" webcrypto-core@^1.7.4: version "1.7.5" @@ -8641,7 +7680,7 @@ webcrypto-shim@^0.1.4: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== websocket@^1.0.32: version "1.0.34" @@ -8658,7 +7697,7 @@ websocket@^1.0.32: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -8677,20 +7716,19 @@ which-boxed-primitive@^1.0.2: which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== which-typed-array@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" - integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== + version "1.1.8" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== dependencies: - available-typed-arrays "^1.0.2" - call-bind "^1.0.0" - es-abstract "^1.18.0-next.1" - foreach "^2.0.5" - function-bind "^1.1.1" - has-symbols "^1.0.1" - is-typed-array "^1.1.3" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" which@^2.0.1, which@^2.0.2: version "2.0.2" @@ -8709,7 +7747,7 @@ wide-align@^1.1.0: wif@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" - integrity sha1-CNP1IFbGZnkplyb63g1DKudLRwQ= + integrity sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ== dependencies: bs58check "<3.0.0" @@ -8739,9 +7777,9 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@7.4.6, ws@~7.4.2: +ws@7.4.6: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== @@ -8760,12 +7798,7 @@ ws@^3.0.0: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^7.1.0: - version "7.5.7" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== - -ws@^7.4.5: +ws@^7.1.0, ws@^7.4.5: version "7.5.8" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== @@ -8775,6 +7808,11 @@ ws@^8.5.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== +ws@~8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + xhr-request-promise@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" @@ -8798,7 +7836,7 @@ xhr-request@^1.0.1, xhr-request@^1.1.0: xhr2-cookies@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= + integrity sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g== dependencies: cookiejar "^2.1.1" @@ -8812,10 +7850,15 @@ xhr@^2.0.4, xhr@^2.3.3: parse-headers "^2.0.0" xtend "^4.0.0" +xmlhttprequest-ssl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" + integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== + xmlhttprequest@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= + integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== "xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f": version "0.1.0" @@ -8841,7 +7884,7 @@ y18n@^5.0.5: yaeti@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= + integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" @@ -8896,17 +7939,7 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zalgo-promise@^1, zalgo-promise@^1.0.11: - version "1.0.48" - resolved "https://registry.yarnpkg.com/zalgo-promise/-/zalgo-promise-1.0.48.tgz#9e33eef502d5ed9f5a09fc5728c833c3e87afa2e" - integrity sha512-LLHANmdm53+MucY9aOFIggzYtUdkSBFxUsy4glTTQYNyK6B3uCPWTbfiGvSrEvLojw0mSzyFJ1/RRLv+QMNdzQ== From ab5616703ca73b976a5ab0bf4791a4582075496c Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 3 Jul 2022 16:01:00 +0300 Subject: [PATCH 568/956] operators.get undefined bug, storageLimit = 5000, import d.ts fies dix --- src/helpers/tezos.ts | 23 +++++++++++++++-------- src/helpers/ton.ts | 4 ++-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index bd97d8d72..2e15c1c26 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -104,9 +104,9 @@ export async function tezosHelperFactory({ const contractI = await Tezos.wallet.at(contract); const res = cb(contractI); if (params) { - if (!params.storageLimit) params.storageLimit = 60_000; + if (!params.storageLimit) params.storageLimit = 5_000; } else { - params = { storageLimit: 60_000 }; + params = { storageLimit: 5_000 }; } const tx = await res.send(params); await tx.confirmation(); @@ -138,12 +138,19 @@ export async function tezosHelperFactory({ ) { const owner = await getAddress(sender); const contract = await Tezos.contract.at(nft.native.contract); - const storage = await contract.storage<{ operators: BigMapAbstraction }>(); - let op = await storage.operators.get({ - owner, - operator: bridgeAddress, - token_id: nft.native.token_id, - }); + const storage = await contract.storage<{ + operators?: BigMapAbstraction; + operator?: BigMapAbstraction; + }>(); + + let op = storage.operators + ? await storage.operators.get({ + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }) + : storage.operator; + return op != undefined; } diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index bb2dd45a9..9c7afb878 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -2,8 +2,8 @@ import { BN } from "@project-serum/anchor"; import BigNumber from "bignumber.js"; import TonWeb from "tonweb"; import TonWebMnemonic from "tonweb-mnemonic"; -import { NftCollection } from "tonweb/dist/types/contract/token/nft/nft-collection"; -import { NftItem } from "tonweb/dist/types/contract/token/nft/nft-item"; +import { NftCollection } from "tonweb/dist/types/contract/token/nft/nft-collection.d"; +import { NftItem } from "tonweb/dist/types/contract/token/nft/nft-item.d"; import { Chain } from "../consts"; import { ChainNonceGet, From b3e331a20a540685f9b2191efe520b087162a31d Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 3 Jul 2022 16:40:00 +0300 Subject: [PATCH 569/956] fix torage?.operators undefined --- src/helpers/tezos.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 2e15c1c26..5d555590d 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -143,13 +143,11 @@ export async function tezosHelperFactory({ operator?: BigMapAbstraction; }>(); - let op = storage.operators - ? await storage.operators.get({ - owner, - operator: bridgeAddress, - token_id: nft.native.token_id, - }) - : storage.operator; + let op = await storage?.operators?.get({ + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }); return op != undefined; } From df4532007ec45b5369d7058084ee7b94ca6d9b60 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 3 Jul 2022 18:34:50 +0300 Subject: [PATCH 570/956] tezos trx estim for storage limit --- src/helpers/tezos.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 5d555590d..24e29f127 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -94,7 +94,9 @@ export async function tezosHelperFactory({ ) { if ("publicKeyHash" in sender) { Tezos.setSignerProvider(sender); + const contractI = await Tezos.contract.at(contract); + const res = cb(contractI); const tx = await res.send(params); await tx.confirmation(); @@ -102,11 +104,15 @@ export async function tezosHelperFactory({ } else { Tezos.setWalletProvider(sender); const contractI = await Tezos.wallet.at(contract); + const res = cb(contractI); + + const estim = await Tezos.estimate.transfer(res.toTransferParams(params)); + if (params) { - if (!params.storageLimit) params.storageLimit = 5_000; + if (!params.storageLimit) params.storageLimit = estim.storageLimit; } else { - params = { storageLimit: 5_000 }; + params = { storageLimit: estim.storageLimit }; } const tx = await res.send(params); await tx.confirmation(); From af3bed2052fb18ff6aeb478604b645adc53c76c0 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 7 Jul 2022 17:22:46 +0530 Subject: [PATCH 571/956] secret: nftList: add listing to the helper --- src/helpers/secret.ts | 53 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 44b7808ed..f971a7f2c 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -37,7 +37,15 @@ export type SecretHelper = TransferNftForeign & PreTransfer & BalanceCheck & GetFeeMargins & { XpNft: string } & GetProvider & - MintNft; + MintNft & { + nftList( + owner: string, + + viewingKey: string, + contract: string, + codeHash?: string + ): Promise[]>; + }; export type SecretContract = { contractAddress: string; @@ -145,6 +153,49 @@ export async function secretHelperFactory( return false; } }, + async nftList(owner, vk, contractAddress, codeHash) { + const auth = { + viewer: { + viewing_key: vk, + address: owner, + }, + }; + if (!codeHash) { + codeHash = await queryClient.query.compute.contractCodeHash( + contractAddress + ); + } + const contract = { + address: contractAddress, + codeHash: codeHash || "", + }; + + const { token_list } = await queryClient.query.snip721.GetOwnedTokens({ + contract, + auth, + owner, + }); + const response: NftInfo[] = []; + await Promise.all( + token_list.tokens.map(async (token) => { + const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ + contract, + auth, + token_id: token, + }); + response.push({ + collectionIdent: contractAddress, + uri: tokenInfo.all_nft_info.info?.token_uri || "", + native: { + contract: contractAddress, + contractHash: codeHash || "", + token_id: token, + }, + }); + }) + ); + return response; + }, estimateValidateTransferNft: async () => { return TRANSFER_GASL.times(gasPrice); }, From 1beb655c2202c34c2c1ba717ec29cc395b3300d6 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 7 Jul 2022 21:24:16 +0530 Subject: [PATCH 572/956] ton: fix: helper --- package.json | 1 + src/helpers/ton.ts | 11 +-- yarn.lock | 231 +++++++++++++++++++++------------------------ 3 files changed, 112 insertions(+), 131 deletions(-) diff --git a/package.json b/package.json index 0e4150d0b..18a8348f8 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", "types": "dist/index.d.ts", + "type": "commonjs", "license": "MIT", "repository": { "type": "git", diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 9c7afb878..3cfe86adc 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -2,8 +2,6 @@ import { BN } from "@project-serum/anchor"; import BigNumber from "bignumber.js"; import TonWeb from "tonweb"; import TonWebMnemonic from "tonweb-mnemonic"; -import { NftCollection } from "tonweb/dist/types/contract/token/nft/nft-collection.d"; -import { NftItem } from "tonweb/dist/types/contract/token/nft/nft-item.d"; import { Chain } from "../consts"; import { ChainNonceGet, @@ -72,9 +70,10 @@ export async function tonHelper(args: TonParams): Promise { const addr = (await rSigner.send("ton_requestAccounts", undefined))[ signer.accIdx ]; - const nftColl = new NftCollection(ton.provider, { + + const nftColl = new TonWeb.token.nft.NftCollection(ton.provider, { ownerAddress: new TonWeb.Address(addr), - nftItemCodeHex: NftItem.codeHex, + nftItemCodeHex: TonWeb.token.nft.NftItem.codeHex, }); const nftItemAddr = await nftColl.getNftItemAddressByIndex( @@ -101,9 +100,9 @@ export async function tonHelper(args: TonParams): Promise { async unfreezeWrappedNft(signer, to, nft, txFees, chainNonce) { const rSigner = signer.wallet || ton; - const nftColl = new NftCollection(ton.provider, { + const nftColl = new TonWeb.token.nft.NftCollection(ton.provider, { ownerAddress: await bridge.getAddress(), - nftItemCodeHex: NftItem.codeHex, + nftItemCodeHex: TonWeb.token.nft.NftItem.codeHex, }); const nftItemAddr = await nftColl.getNftItemAddressByIndex( diff --git a/yarn.lock b/yarn.lock index 357cc53c0..e44a64761 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1209,17 +1209,17 @@ "@octokit/types" "^6.0.3" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^12.5.0": - version "12.5.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.5.0.tgz#e10b256237c877fa6f0a21922151dc03d9c57510" - integrity sha512-VatvE5wtRkJq6hAWGTBZ62WkrdlCiy0G0u27cVOYTfAWVZi7QqTurVcjpsyc5+9hXLPRP5O/DaNEs4TgAp4Mqg== +"@octokit/openapi-types@^12.7.0": + version "12.8.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.8.0.tgz#f4708cf948724d6e8f7d878cfd91584c1c5c0523" + integrity sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg== "@octokit/plugin-paginate-rest@^2.16.8": - version "2.21.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.0.tgz#ddd425eaa09214dfdfdc9cc411fcf676b8985e65" - integrity sha512-MoGEKjvDpTOCVb5gbeiW7kZm/cRfT256UJwHEuy+y+gTUuKziyXaiOkt5rM/4nzhp8UxVgvok9Tu7dMMpUybiQ== + version "2.21.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.1.tgz#9ab7a21e9f35a6d5526a3082da3f8f43908449e4" + integrity sha512-NVNTK63yoTFp07GqISWK+uDfGH1CAPhQXS7LzsJBvaK5W+UlvG549pLZC55FK0FqANVl6q/9ra3SR5c97xF/sw== dependencies: - "@octokit/types" "^6.38.1" + "@octokit/types" "^6.38.2" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" @@ -1227,11 +1227,11 @@ integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== "@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.16.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.0.tgz#e0a774d78bb17fb9b6b9ae48d5517940f7f61e90" - integrity sha512-mvdwq+LvhR2GRDY82FgSZ52xX6wkOCpjiI3amiKbzKHd9nyKeFdXLsIQ3Go12tWRtvo+HwqoypLHDjRrgMFDQA== + version "5.16.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" + integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== dependencies: - "@octokit/types" "^6.38.0" + "@octokit/types" "^6.39.0" deprecation "^2.3.1" "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": @@ -1265,12 +1265,12 @@ "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^5.12.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.38.0", "@octokit/types@^6.38.1": - version "6.38.1" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.38.1.tgz#03d70745564954dfdae32df23d5f1578f958474f" - integrity sha512-kWMohLCIvnwApRmxRFDOqve7puiNNdtVfgwdDOm6QyJNorWOgKv2/AodCcGqx63o28kF7Dr4/nJCatrwwqhULg== +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.38.2", "@octokit/types@^6.39.0": + version "6.39.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.39.0.tgz#46ce28ca59a3d4bac0e487015949008302e78eee" + integrity sha512-Mq4N9sOAYCitTsBtDdRVrBE80lIrMBhL9Jbrw0d+j96BAzlq4V+GLHFJbHokEsVvO/9tQupQdoFdgVYhD2C8UQ== dependencies: - "@octokit/openapi-types" "^12.5.0" + "@octokit/openapi-types" "^12.7.0" "@peculiar/asn1-schema@^2.1.6": version "2.2.0" @@ -1305,9 +1305,9 @@ integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== "@project-serum/anchor@^0.25.0-beta.1": - version "0.25.0-beta.1" - resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.25.0-beta.1.tgz#7b113fb6604483d6740c8da9c6d86e9a5d5f6cf7" - integrity sha512-edesFlclgQzIluD2mC0xrGPnABBllKvbGd6MOtNZMCauUnx1Xbu073um8O6mrCeuZrz4PG9AhwAp1y5cOl3R4A== + version "0.25.0" + resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.25.0.tgz#88ee4843336005cf5a64c80636ce626f0996f503" + integrity sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A== dependencies: "@project-serum/borsh" "^0.2.5" "@solana/web3.js" "^1.36.0" @@ -1458,9 +1458,9 @@ start-server-and-test "^1.14.0" "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2": - version "1.46.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.46.0.tgz#74364b277a0d01026deaf6f97edf49c07a271405" - integrity sha512-JzuWfrmoxfgczpgA7dK7gELpLxvn1KssFridn9I/OPfFxVGgcc68U8rux/q1mPem6hmP2K8kbQ0xL3SYxlQaHg== + version "1.47.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.47.3.tgz#ec13f2cf4f9f54cc4fbd26d20be1e026c6e2279c" + integrity sha512-TQJulaN/+b0xXq5EhQAYFwVyOORxSyVJn1EiXupClZm8DY7f9EeUG6vl0FzSAgwEAwXKsgK3sVs/3px2e7H7dQ== dependencies: "@babel/runtime" "^7.12.5" "@ethersproject/sha2" "^5.5.0" @@ -1613,104 +1613,104 @@ dependencies: defer-to-connect "^2.0.0" -"@taquito/http-utils@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-13.0.0.tgz#bbad571ef07740b52c8bc56c7663fc6568b4b66c" - integrity sha512-WNCGi0HyocFkNSLekBfHqKqnGB2kQ5gCKgIXoh2UVyuHTq3W5dWJO7pMVfeVSf9nYLVnsoIIfEC/d7jY7HIYQw== +"@taquito/http-utils@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-13.0.1.tgz#b682b7161ce8011afdea1b06750ad21e15916c63" + integrity sha512-eHzd0HSL3qX6bOOSaQClm+0XmpbSNcJP69uzaBJwfXo7ntQR1bUfGLn6+1Hgsk/lJ0JxakD2PDA4aaeajHvyPw== dependencies: axios "^0.26.0" -"@taquito/local-forging@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@taquito/local-forging/-/local-forging-13.0.0.tgz#03f2dcda36bca5af0f5c9b60701ed7376ab8589a" - integrity sha512-59w1U94072FVgzAVRjADit26vHJ7lA7aC34ra9QWHVTYNul/S/+cvcGVCrRen8dt11NKytQCzkrRblh2xXFKeQ== +"@taquito/local-forging@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/local-forging/-/local-forging-13.0.1.tgz#b87d7d478457d32338cc8e5eeeca072518241595" + integrity sha512-2n1ryUzHBIOHiQYRO7ELQaurjoNhJ3KUUcX0dAnFs3xVxUBugHgDPot+T+1rNZDdLVhTS6mmK796xrWDGnO6xw== dependencies: - "@taquito/utils" "^13.0.0" + "@taquito/utils" "^13.0.1" bignumber.js "^9.0.2" -"@taquito/michel-codec@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@taquito/michel-codec/-/michel-codec-13.0.0.tgz#c6610f25739d7f6322e1ce72118a7ce0669b64df" - integrity sha512-t+1UopQO6dHzUpkrs/e3EyNtnm5wn1I8CJrj+OzYAm0ZCC2gns5d7e7Xm9nRQpU9xPFXNKqlmGUPuh5az513sA== +"@taquito/michel-codec@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/michel-codec/-/michel-codec-13.0.1.tgz#cfadbd5886724b861d82f75b6f679104573dc7bb" + integrity sha512-A9MxhDMdTTK31ty5Ke2wg4wkt7F/Y++tD8wq9YIFJzxt+MkpWX5b2i1f7yHXPsK/81YiGAi/LDamLtLCekY1LA== -"@taquito/michelson-encoder@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@taquito/michelson-encoder/-/michelson-encoder-13.0.0.tgz#48a41ceb8dea2da14c1ba5ad53617bb39de842c8" - integrity sha512-6R9U4kUlGLSK36OmSfKqU0GF+5+wwAhlqjgZhRYOdWjZ0kzeoPAAxLLC0kriZ5CZJBKr4ZSIrd64dtk4VdE/8w== +"@taquito/michelson-encoder@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/michelson-encoder/-/michelson-encoder-13.0.1.tgz#75c4650fe5839a64e42d1aac23997402c83a6ac6" + integrity sha512-U80vswMHlEDQUjvARZScIKrSZkIjxdYtDLvHu4oRZ9wTqTXSlj+t64G5QmZwTEJRQkbzfhsOOr6vL40ztL0tzw== dependencies: - "@taquito/rpc" "^13.0.0" - "@taquito/utils" "^13.0.0" + "@taquito/rpc" "^13.0.1" + "@taquito/utils" "^13.0.1" bignumber.js "^9.0.2" fast-json-stable-stringify "^2.1.0" -"@taquito/rpc@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@taquito/rpc/-/rpc-13.0.0.tgz#0917bbc9d7c7d42e5954c28bb9b0c9a7293b3fb8" - integrity sha512-g3CmrdCCEH5KiXIaAeZJ4RYYPtpitqTiv7GeDyYypOdUDQ1OBF/3c8d/Apx92bvSwbI/0I7nX46wtZHahWavmg== +"@taquito/rpc@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/rpc/-/rpc-13.0.1.tgz#bf1ad8347f9942e37af90d11ae29bd8d938f904d" + integrity sha512-f2Z0qzHB1ERLU5kewmXh3rAD84qIYthSjmAo04sWFbuaMgGW1HxMJKJ/EtL4s4VgoDUwahSwfATmVzmKg57BSw== dependencies: - "@taquito/http-utils" "^13.0.0" - "@taquito/utils" "^13.0.0" + "@taquito/http-utils" "^13.0.1" + "@taquito/utils" "^13.0.1" bignumber.js "^9.0.2" "@taquito/signer@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@taquito/signer/-/signer-13.0.0.tgz#9e7982a64bb1694520ab143c1645ed5db3bccab9" - integrity sha512-cBOlzWOz0/DEhzybTSFDXKCYyyUl5JRpErc5WTX2o8hw0VSx9LdGTtCoxQbcgR9VjLK8QmaiWsC3zDUbHT3q+w== + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/signer/-/signer-13.0.1.tgz#1b725e8438b9a383a81cc7d2fb4ea5c8ecc4f0aa" + integrity sha512-3C7DTC5u6jqA83kUGghEDEDJtwCNNmw0KIF+u6EdQ55YRxLDf8XBp8/voG3i+0HvU3MPqfg0CIvCUHbr8MO0Og== dependencies: "@stablelib/blake2b" "^1.0.1" "@stablelib/ed25519" "^1.0.2" "@stablelib/nacl" "^1.0.3" - "@taquito/taquito" "^13.0.0" - "@taquito/utils" "^13.0.0" + "@taquito/taquito" "^13.0.1" + "@taquito/utils" "^13.0.1" elliptic "^6.5.4" pbkdf2 "^3.1.2" typedarray-to-buffer "^4.0.0" -"@taquito/taquito@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-13.0.0.tgz#df08da00626e82ee83ee1f8f6c34041a92d64d3a" - integrity sha512-OhMAwDtDvoXkvZmiO1XgshtlLplQ+BGzciQe8sNuinHC2j8vV2aFxBiU/pSlc5WIU6RpIjQxaohFEaF3XZ7yrw== - dependencies: - "@taquito/http-utils" "^13.0.0" - "@taquito/local-forging" "^13.0.0" - "@taquito/michel-codec" "^13.0.0" - "@taquito/michelson-encoder" "^13.0.0" - "@taquito/rpc" "^13.0.0" - "@taquito/utils" "^13.0.0" +"@taquito/taquito@^13.0.0", "@taquito/taquito@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-13.0.1.tgz#806812b6853db555fcd614048ba36db4d14d8a57" + integrity sha512-xNtcwKsOCHSkURO9G2VhKSeI9q0qh5/OkVuYe6KM0Fo40FthXNqq205I/FTJzu5E1Q73J7cFqA7FHqUrv276gw== + dependencies: + "@taquito/http-utils" "^13.0.1" + "@taquito/local-forging" "^13.0.1" + "@taquito/michel-codec" "^13.0.1" + "@taquito/michelson-encoder" "^13.0.1" + "@taquito/rpc" "^13.0.1" + "@taquito/utils" "^13.0.1" bignumber.js "^9.0.2" rxjs "^6.6.3" "@taquito/tzip12@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@taquito/tzip12/-/tzip12-13.0.0.tgz#2f09030d45489a93b295242b43868b3d419f882a" - integrity sha512-AVUbdVNB1Sez3iS+4JN/wXsxmGLfYPdbzT9Nbu5O0GdXi/B05hU6UlMTnu0NReN9a/eRdmYKXP1CBjUbGLgkSg== - dependencies: - "@taquito/michelson-encoder" "^13.0.0" - "@taquito/taquito" "^13.0.0" - "@taquito/tzip16" "^13.0.0" - -"@taquito/tzip16@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@taquito/tzip16/-/tzip16-13.0.0.tgz#86c1cc66f26ee388d93e80bf8711cbcf9266e073" - integrity sha512-vcSKKYrJg/E6eM7UJ3aAKTVkEbb1R0jUl8CrLKtyGsePBDt4rBIMYJTvDNzJzNi69feUCfqj7gdgECy2aT4PNA== - dependencies: - "@taquito/http-utils" "^13.0.0" - "@taquito/michelson-encoder" "^13.0.0" - "@taquito/rpc" "^13.0.0" - "@taquito/taquito" "^13.0.0" - "@taquito/utils" "^13.0.0" + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/tzip12/-/tzip12-13.0.1.tgz#1b5207d1f68bd8c84a8f7a6ad6e94f2f9dc606e9" + integrity sha512-V3TPKL7sh5rj75NXjgNWCgM245LX2U/vQXA+rKebNKmHqNPcYZ7L5EmOzE5eLURkoxsuwLznCGhcL/xWQdMraA== + dependencies: + "@taquito/michelson-encoder" "^13.0.1" + "@taquito/taquito" "^13.0.1" + "@taquito/tzip16" "^13.0.1" + +"@taquito/tzip16@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/tzip16/-/tzip16-13.0.1.tgz#3c476b15d1c81e4cc89d88c76eee9601e5bd7b49" + integrity sha512-k+Vr1t2j7IqR/FuK5b3e7iGTA/VfltBwH+fdJEXssRjBH3jrWQxraR+CNkNuqkspn97dKe7TwwU4cJnqbh1sLA== + dependencies: + "@taquito/http-utils" "^13.0.1" + "@taquito/michelson-encoder" "^13.0.1" + "@taquito/rpc" "^13.0.1" + "@taquito/taquito" "^13.0.1" + "@taquito/utils" "^13.0.1" bignumber.js "^9.0.2" crypto-js "^4.1.1" -"@taquito/utils@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-13.0.0.tgz#1b39f8f2227dbdc98e4729ff8cbd7f4fdeff937a" - integrity sha512-b6uD3VOb8YSrExEH5beicDSNGuEfuH2qvJYx4FX5OI+EfXa9EfORfUNNsHzkEn/Rh3Ue3jKFbymPvkFhM95uiw== +"@taquito/utils@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-13.0.1.tgz#24a1c7d7e62043fc7dcba2838b391b28aea2992e" + integrity sha512-uRtsl4EATlVJ1UnNUiAEoibFFyexGLDLz02CBHoBrcWjqrZdj3AxA+TO63E2kWn/JmT2FM0Sqaqbm555lj4tow== dependencies: "@stablelib/blake2b" "^1.0.1" "@stablelib/ed25519" "^1.0.2" "@types/bs58check" "^2.1.0" - blakejs "^1.1.1" + blakejs "^1.2.1" bs58check "^2.1.2" buffer "^6.0.3" elliptic "^6.5.4" @@ -1801,9 +1801,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" - integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== + version "18.0.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199" + integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ== "@types/node@10.12.18": version "10.12.18" @@ -2207,9 +2207,9 @@ algo-msgpack-with-bigint@^2.1.1: integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== algosdk@^1.15.0-beta.1: - version "1.18.0" - resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.18.0.tgz#251abbb495843dbc2998426a548794e2e1ff772f" - integrity sha512-+baSG0IrcZf2Qt35HyQF7wAkOykEW2iMhghUa/tcFNu4dMcvv41AUPRrB1T/bKq6dsb4OvbCzCEHAdaztBp32w== + version "1.18.1" + resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.18.1.tgz#b9be65a713af98712f62f31188bf185c12972e28" + integrity sha512-P0mlSfMSbylMfUG2SZgxnhSE1JvQFIK4wT8O9ZvBvy1+pxs53MdAKfYkfC95cK3VqCvq616PuXM6bzI2mpQbPA== dependencies: algo-msgpack-with-bigint "^2.1.1" buffer "^6.0.2" @@ -2220,7 +2220,6 @@ algosdk@^1.15.0-beta.1: json-bigint "^1.0.0" superagent "^6.1.0" tweetnacl "^1.0.3" - url-parse "^1.5.1" ansi-colors@^4.1.1: version "4.1.3" @@ -2591,7 +2590,7 @@ blake2b@2.1.3: blake2b-wasm "^1.1.0" nanoassert "^1.0.0" -blakejs@^1.1.0, blakejs@^1.1.1: +blakejs@^1.1.0, blakejs@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== @@ -3415,9 +3414,9 @@ dotenv@^16.0.0: integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ== duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA== + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== duplexer@~0.1.1: version "0.1.2" @@ -4432,9 +4431,9 @@ global@~4.4.0: process "^0.11.10" globals@^13.6.0, globals@^13.9.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== + version "13.16.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.16.0.tgz#9be4aca28f311aaeb974ea54978ebbb5e35ce46a" + integrity sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q== dependencies: type-fest "^0.20.2" @@ -5672,9 +5671,9 @@ node-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.7: whatwg-url "^5.0.0" node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" - integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== node-hid@2.1.1: version "2.1.1" @@ -6108,9 +6107,9 @@ ps-tree@1.2.0: event-stream "=3.3.4" psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== public-encrypt@^4.0.0: version "4.0.3" @@ -6198,11 +6197,6 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -6366,11 +6360,6 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -7286,14 +7275,6 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@^1.5.1: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - url-set-query@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" From 67af14d590a0f3945f02aeb26f64eedd383bc399 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 8 Jul 2022 17:10:38 +0530 Subject: [PATCH 573/956] chains: add support for skale --- src/consts.ts | 14 ++++++++++++++ src/factory/factories.ts | 11 +++++++++++ src/factory/index.ts | 2 ++ yarn.lock | 2 +- 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 09898665d..0a45987fa 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -44,6 +44,7 @@ export enum TestNetRpcUri { GATECHAIN = "https://meteora-evm.gatenode.cc", VECHAIN = "https://sync-testnet.veblocks.net", SECRET = "https://pulsar-2.api.trivium.network:9091/", + SKALE = "https://staging-v2.skalenodes.com/v1/rapping-zuben-elakrab", // TODO: Algorand // TODO: Fuse } @@ -112,6 +113,7 @@ export type MetaMap = { 0x1b: TonMeta; 0x1c: DfinityMeta; 0x1d: Web3Meta; + 0x1e: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -142,6 +144,7 @@ export namespace Chain { export const TON = 0x1b; export const DFINITY = 0x1c; export const HEDERA = 0x1d; + export const SKALE = 0x1e; // 30 } interface ChainData { @@ -395,3 +398,14 @@ CHAIN_INFO.set(Chain.HEDERA, { nonce: Chain.HEDERA, name: "Hedera", }); + +CHAIN_INFO.set(Chain.SKALE, { + name: "Skale", + blockExplorerUrl: + "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", + constructor: web3HelperFactory, + currency: SupportedCurrency.sFUEL, + decimals: 1e18, + chainId: 1305754875840118, + nonce: Chain.SKALE, +}); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index dff96372f..42b6dce37 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -252,6 +252,17 @@ export namespace ChainFactoryConfigs { erc721Minter: "", erc721_addr: "", }, + skaleParams: { + notifier, + feeMargin, + erc721Minter: "0xdaEcC3fd26fD36E1555005c304216723b947CfdF", + erc1155Minter: "0xe95338D1ec0e338e3fC8A8cFa37d096C26AB4EBf", + erc1155_addr: "0xDb7E4534E320c1F18A2cF878FAE9eb445aa7f24C", + erc721_addr: "0xdAF7a56A174c599C75645E7C14B41abA7b96DAb8", + minter_addr: "0x5F05ae4eFE4b55758348cE116B05fb0874219AD6", + nonce: Chain.SKALE, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.SKALE), + }, godwokenParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.GODWOKEN), diff --git a/src/factory/index.ts b/src/factory/index.ts index c8913f9d6..341b59a9b 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -253,6 +253,7 @@ export interface ChainParams { gateChainParams: Web3Params; secretParams: SecretParams; hederaParams: Web3Params; + skaleParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -302,6 +303,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.VECHAIN, chainParams.vechainParams); cToP.set(Chain.SECRET, chainParams.secretParams); cToP.set(Chain.HEDERA, chainParams.hederaParams); + cToP.set(Chain.SKALE, chainParams.skaleParams); return cToP; } /** diff --git a/yarn.lock b/yarn.lock index e44a64761..03d1130c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3200,7 +3200,7 @@ crypto-browserify@3.12.0: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#e18e569d4c6f2025d905a1c65a76471ae6db69f5" + resolved "git+https://github.com/xp-network/exchange-rate#5687d35eba73b03a3b29b834107a94646577c8a6" dependencies: axios "^0.21.1" From 9e4b1134c5232d1f51981a15bc750b76d29d71f1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 11 Jul 2022 14:35:23 +0530 Subject: [PATCH 574/956] factory: skale: update contracts --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 42b6dce37..7aa623e62 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -255,11 +255,11 @@ export namespace ChainFactoryConfigs { skaleParams: { notifier, feeMargin, - erc721Minter: "0xdaEcC3fd26fD36E1555005c304216723b947CfdF", - erc1155Minter: "0xe95338D1ec0e338e3fC8A8cFa37d096C26AB4EBf", - erc1155_addr: "0xDb7E4534E320c1F18A2cF878FAE9eb445aa7f24C", - erc721_addr: "0xdAF7a56A174c599C75645E7C14B41abA7b96DAb8", - minter_addr: "0x5F05ae4eFE4b55758348cE116B05fb0874219AD6", + erc721Minter: "0xC4408617B858430F3D4C9687DA9E4271bE6Bdc11", + erc1155Minter: "0x7Bd90c2f904bF52205E15D621E98c38FD02B8C84", + erc1155_addr: "0xb91e75af0C1c4Bd1826904c94c1c3B8812957BAb", + erc721_addr: "0xb0f8BA513E7C3c668286AA4951407de090d4B72a", + minter_addr: "0xde633802b43d8C8A7149aE69bbaF99456C003B13", nonce: Chain.SKALE, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.SKALE), }, From 9fefed5fca86235fb1fd063fbc5ce6a0f9489625 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 11 Jul 2022 14:35:55 +0530 Subject: [PATCH 575/956] helpers: elrond: fix renamed signer method --- src/helpers/elrond.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index dc3fd7599..e67f18413 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -274,9 +274,8 @@ export async function elrondHelperFactory( } else if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); } else { - //@ts-ignore - stx = await (signer as ISigner).signTransaction(tx); - //stx = tx; + await (signer as ISigner).sign(tx); + stx = tx; } try { await stx.send(provider); From fd58f4726da6911b36720a0fafe8ee8f7ce7a198 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 12 Jul 2022 13:37:56 +0530 Subject: [PATCH 576/956] factory: skale: update contracts --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 7aa623e62..c61cd793f 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -255,11 +255,11 @@ export namespace ChainFactoryConfigs { skaleParams: { notifier, feeMargin, - erc721Minter: "0xC4408617B858430F3D4C9687DA9E4271bE6Bdc11", - erc1155Minter: "0x7Bd90c2f904bF52205E15D621E98c38FD02B8C84", - erc1155_addr: "0xb91e75af0C1c4Bd1826904c94c1c3B8812957BAb", - erc721_addr: "0xb0f8BA513E7C3c668286AA4951407de090d4B72a", - minter_addr: "0xde633802b43d8C8A7149aE69bbaF99456C003B13", + erc721Minter: "0x5d437362976c68D6504AD043a8dc4dcc9915A7D5", + erc1155Minter: "0x6dD7C761926608a015f7d905F7d461e717eB084e", + erc1155_addr: "0x572A456667564378506D9Da9F267A8B6175500e9", + erc721_addr: "0x25372FE786BAa07aCB62dd2d14fe3BF1C2f2100D", + minter_addr: "0xc2638a6E70A9Be5ed69596584C5d64319F64933c", nonce: Chain.SKALE, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.SKALE), }, From d49807a27810931f5ad214fee714b2440dee0165 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 12 Jul 2022 18:13:42 +0530 Subject: [PATCH 577/956] config: rpc: testnet: fix elrond rpc url --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 0a45987fa..a928b48d3 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -24,7 +24,7 @@ import { dfinityHelper, DfinityHelper, DfinityParams } from "./helpers/dfinity"; // All the supported testnet uri's are here. export enum TestNetRpcUri { - ELROND = "https://devnet-api.elrond.com", + ELROND = "https://devnet-gateway.elrond.com", HECO = "https://http-testnet.hecochain.com", BSC = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/bsc/testnet", ROPSTEN = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/eth/ropsten", From 6eb89a9ce567964ab477f9fc8d32ed7aa4371d90 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 12 Jul 2022 18:25:28 +0530 Subject: [PATCH 578/956] tsconfig: turn on declaration map --- tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tsconfig.json b/tsconfig.json index 8a950da27..4315184e8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "moduleResolution": "node", "module": "commonjs", "declaration": true, + "declarationMap": true, "inlineSourceMap": true, "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, "resolveJsonModule": true /* Include modules imported with .json extension. */, From c2041d31d4d384e3667aed34cab1a5dbedfd7219 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Tue, 12 Jul 2022 19:34:54 +0300 Subject: [PATCH 579/956] update Elrond Minting --- README.md | 61 +++++++++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 45 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 414b3f8f6..cee521a51 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,9 @@ import { Chain, AppConfigs, ChainParams, -} from "xp.network"; + +import { config } from 'dotenv'; +config();} from "xp.network"; (async () => { // Instantiate the chain factory for the @@ -88,8 +90,8 @@ import { ); // Switching between the mainnets & the testnets: - const factory: ChainFactory = mainnetFactory; - const CONFIG: Partial = mainnetConfig; + const factory: ChainFactory = mainnetFactory; // or = testnetConfig; + const CONFIG: Partial = mainnetConfig; // or = testnetConfig; })(); ``` @@ -161,9 +163,13 @@ const signer = new ethers.providers.Web3Provider(window.ethereum).getSigner(); ### 3.3 Example of getting the signer object (in the FE for Elrond):

```typescript -// ELROND provider: +// ELROND provider (injected from the browser extension): import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; const elrondSigner = ExtensionProvider.getInstance(); + +// Elrond signer from a PEM key stored in the .env file +import { UserSigner } from "@elrondnetwork/erdjs/out"; +const elrondSigner = UserSigner.fromPem(process.env.ELROND_PEM!); ```
@@ -549,20 +555,41 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); ```javascript (async () => { - const receipt = await factory.mint( - elrond, // The chain where to mint - elrondSigner, // The browser injected signer - { - // Could be an IPFS URL or Any URL that points to a Metadata - uris: [metadata.url], - // Description of your NFT. Can be an object. - attrs: description, - // A name that defines your NFT. - name: name, - // The identifier with which you want to mint the NFT. You have to own this identifier. i.e. - identifier: "XPNFT-eda5d0-c5", - } + // Deploying ESDTs: + const response = await elrond.issueESDTNft( + elrondSigner, + "Target", + "TGT", + true, // canFreeze + true, // canWipe + true // canTransferNftCreateRole ); + + // Checking whether ESDTs exist for this account + const esdts = await elrond.mintableEsdts( + elrondSigner.getAddress()) + .catch((e) => { + console.log("Failed to get Mintable ESDTs", e) + return undefined + }) + + const identifier = esdts ? esdts[0]: undefined; + + if (!identifier) { + throw new Error("No ESDT found for this address"); + } + + // Minting an NFT to an ESDT + const response = await elrond.mintNft( + elrondSigner, + { + identifier, // Your ESDT token + quantity: 1, // How many tokens you want to mint > 0 + name: "Your token name goes here", + uris: ["replace with your link(s)"], + } as any); + + console.log(response) })(); ``` diff --git a/package.json b/package.json index 18a8348f8..c2ab5e1e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "3.0.10", + "version": "3.0.13", "author": "xp-network ", "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", From cc9b782798ecf1fab10f494972dd7bb2190164cd Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Wed, 13 Jul 2022 14:40:20 +0300 Subject: [PATCH 580/956] Update README.md --- README.md | 49 ++++++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index cee521a51..e61a5e290 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,12 @@ const signer = new Wallet( | Godwoken | godwokenParams | 22 | | Gatechain | gatechainParams | 23 | | VeChain | vechainParams | 25 | +| Solana | solanaParams | 26 | +| TON | tonParams | 27 | +| DFinity | dfinityParams | 28 | +| Hedera | hederaParams | 29 | +| Skale | skaleParams | 30 | +
@@ -221,27 +227,32 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor ```javascript (async () => { - // Inner Object ================================ Chain Nonce - const bsc = await factory.inner(Chain.BSC); // 4 - const ethereum = await factory.inner(Chain.ETHEREUM); // 5 - const avax = await factory.inner(Chain.AVALANCHE); // 6 - const polygon = await factory.inner(Chain.POLYGON); // 7 - const fantom = await factory.inner(Chain.FANTOM); // 8 - const harmony = await factory.inner(Chain.HARMONY); // 12 - const gnosis = await factory.inner(Chain.XDAI); // 14 - const fuse = await factory.inner(Chain.FUSE); // 16 - const velas = await factory.inner(Chain.VELAS); // 19 - const aurora = await factory.inner(Chain.AURORA); // 21 - const godwoken = await factory.inner(Chain.GODWOKEN); // 22 - const gatechain = await factory.inner(Chain.GATECHAIN); // 23 - const vechain = await factory.inner(Chain.VECHAIN); // 25 + // Inner Object ====================================== Chain Nonce + const bsc = await factory.inner(Chain.BSC); // 4 + const ethereum = await factory.inner(Chain.ETHEREUM); // 5 + const avax = await factory.inner(Chain.AVALANCHE); // 6 + const polygon = await factory.inner(Chain.POLYGON); // 7 + const fantom = await factory.inner(Chain.FANTOM); // 8 + const harmony = await factory.inner(Chain.HARMONY); // 12 + const gnosis = await factory.inner(Chain.XDAI); // 14 + const fuse = await factory.inner(Chain.FUSE); // 16 + const velas = await factory.inner(Chain.VELAS); // 19 + const aurora = await factory.inner(Chain.AURORA); // 21 + const godwoken = await factory.inner(Chain.GODWOKEN); // 22 + const gatechain = await factory.inner(Chain.GATECHAIN); // 23 + const vechain = await factory.inner(Chain.VECHAIN); // 25 + const hedera = await factory.inner(Chain.HEDERA); // 29 + const skale = await factory.inner(Chain.SKALE); // 30 // Non-EVM chains: - // Inner Object ================================ Chain Nonce - const elrond = await factory.inner(Chain.ELROND); // 2 - const tron = await factory.inner(Chain.TRON); // 9 - const algorand = await factory.inner(Chain.ALGORAND); // 15 - const tezos = await factory.inner(Chain.TEZOS); // 18 + // Inner Object ====================================== Chain Nonce + const elrond = await factory.inner(Chain.ELROND); // 2 + const tron = await factory.inner(Chain.TRON); // 9 + const algorand = await factory.inner(Chain.ALGORAND); // 15 + const tezos = await factory.inner(Chain.TEZOS); // 18 + const solana = await factory.inner(Chain.SOLANA); // 26 + const ton = await factory.inner(Chain.TON); // 27 + const dfinity = await factory.inner(Chain.DFINITY); // 28 })(); ``` From dbe0f65c1559e2a37bec7005bdce611504767fb7 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 14 Jul 2022 10:56:31 +0300 Subject: [PATCH 581/956] add Godwoken Mainnet v1.1 --- README.md | 176 +++++++++++---------------------------- package.json | 2 +- src/factory/factories.ts | 6 +- 3 files changed, 53 insertions(+), 131 deletions(-) diff --git a/README.md b/README.md index e61a5e290..4232aeee8 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Bridging steps: - [x] [7. Transferring NFTs between chains](#7-transferring-an-nft) - [x] [Minting NFTs](#minting-nfts-on-evm-chains-elrond--tron)(optional) - [x] [Estimating the TX fee on the target chain](#estimating-the-transaction-fee-on-the-target-chain) (optional) -- [ ] ... and there's much more to come +- [ ] ... and much more to come

@@ -148,11 +148,10 @@ const signer = new Wallet( | Gatechain | gatechainParams | 23 | | VeChain | vechainParams | 25 | | Solana | solanaParams | 26 | -| TON | tonParams | 27 | +| TON | tonParams | 27 | | DFinity | dfinityParams | 28 | | Hedera | hederaParams | 29 | -| Skale | skaleParams | 30 | - +| Skale | skaleParams | 30 |

@@ -227,32 +226,33 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor ```javascript (async () => { + // EVM compatible chains: // Inner Object ====================================== Chain Nonce - const bsc = await factory.inner(Chain.BSC); // 4 - const ethereum = await factory.inner(Chain.ETHEREUM); // 5 - const avax = await factory.inner(Chain.AVALANCHE); // 6 - const polygon = await factory.inner(Chain.POLYGON); // 7 - const fantom = await factory.inner(Chain.FANTOM); // 8 - const harmony = await factory.inner(Chain.HARMONY); // 12 - const gnosis = await factory.inner(Chain.XDAI); // 14 - const fuse = await factory.inner(Chain.FUSE); // 16 - const velas = await factory.inner(Chain.VELAS); // 19 - const aurora = await factory.inner(Chain.AURORA); // 21 - const godwoken = await factory.inner(Chain.GODWOKEN); // 22 - const gatechain = await factory.inner(Chain.GATECHAIN); // 23 - const vechain = await factory.inner(Chain.VECHAIN); // 25 - const hedera = await factory.inner(Chain.HEDERA); // 29 - const skale = await factory.inner(Chain.SKALE); // 30 + const bsc = await factory.inner(Chain.BSC); // 4 + const ethereum = await factory.inner(Chain.ETHEREUM); // 5 + const avax = await factory.inner(Chain.AVALANCHE); // 6 + const polygon = await factory.inner(Chain.POLYGON); // 7 + const fantom = await factory.inner(Chain.FANTOM); // 8 + const harmony = await factory.inner(Chain.HARMONY); // 12 + const gnosis = await factory.inner(Chain.XDAI); // 14 + const fuse = await factory.inner(Chain.FUSE); // 16 + const velas = await factory.inner(Chain.VELAS); // 19 + const aurora = await factory.inner(Chain.AURORA); // 21 + const godwoken = await factory.inner(Chain.GODWOKEN); // 22 + const gatechain = await factory.inner(Chain.GATECHAIN); // 23 + const vechain = await factory.inner(Chain.VECHAIN); // 25 + const hedera = await factory.inner(Chain.HEDERA); // 29 + const skale = await factory.inner(Chain.SKALE); // 30 // Non-EVM chains: // Inner Object ====================================== Chain Nonce - const elrond = await factory.inner(Chain.ELROND); // 2 - const tron = await factory.inner(Chain.TRON); // 9 - const algorand = await factory.inner(Chain.ALGORAND); // 15 - const tezos = await factory.inner(Chain.TEZOS); // 18 - const solana = await factory.inner(Chain.SOLANA); // 26 - const ton = await factory.inner(Chain.TON); // 27 - const dfinity = await factory.inner(Chain.DFINITY); // 28 + const elrond = await factory.inner(Chain.ELROND); // 2 + const tron = await factory.inner(Chain.TRON); // 9 + const algorand = await factory.inner(Chain.ALGORAND); // 15 + const tezos = await factory.inner(Chain.TEZOS); // 18 + const solana = await factory.inner(Chain.SOLANA); // 26 + const ton = await factory.inner(Chain.TON); // 27 + const dfinity = await factory.inner(Chain.DFINITY); // 28 })(); ``` @@ -317,115 +317,37 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); ```json { - "boosterId": 10000000788939, - "id": "10002366816", - "txHash": "0x37c9b7c54ac05d5e00dd5cff06722fb67bed91ec91732875071f74bce8752e41", - "randomNumber": "0x1459a03e3d7a5510023e7385d438508d725dd19de2237c6c1d79a9883b6dc0b3", - "image": "https://assets.polkamon.com/images/Unimons_T02C03H06B04G00.jpg", - "external_url": "https://polkamon.com/polkamon/T02C03H06B04G00", - "description": "The Unifairy are the most magical and fairest of Polkamon. Their wings stretch into the realms beyond this world, enchanting those around her by her unique disposition.", - "name": "Unifairy", - "initialProbabilities": { - "horn": 0.2, - "color": 0.25, - "background": 1, - "glitter": 0.99, - "type": 0.135 - }, - "attributes": [ - { - "trait_type": "Type", - "value": "Unifairy" - }, - { - "trait_type": "Horn", - "value": "Spiral Horn" - }, - { - "trait_type": "Color", - "value": "Blue" - }, - { - "trait_type": "Background", - "value": "Mountain Range" - }, - { - "trait_type": "Opening Network", - "value": "Binance Smart Chain" - }, - { - "trait_type": "Glitter", - "value": "No" - }, - { - "trait_type": "Special", - "value": "No" - }, - { - "display_type": "date", - "trait_type": "Birthday", - "value": 1633650473 - }, - { - "display_type": "number", - "trait_type": "Booster", - "value": 10000000788939 - } - ], - "opening_network": "Binance Smart Chain", - "background_color": "FFFFFF", - "animation_url": "https://assets.polkamon.com/videos/Unimons_T02C03H06B04G00.mp4", - "code": "T02C03H06B04G00", - "uri": "https://meta.polkamon.com/meta?id=10002366816", + "uri": "https://api.alturanft.com/meta/chain-caders/", "native": { - "chainId": "4", - "tokenId": "10002366816", - "owner": "0x0d7df42014064a163DfDA404253fa9f6883b9187", - "contract": "0x85f0e02cb992aa1f9f47112f815f519ef1a59e2d", - "symbol": "PMONC", - "name": "PolkamonOfficialCollection", - "uri": "https://meta.polkamon.com/meta?id=10002366816", - "contractType": "ERC721" - } + "chainId": "4", // ChainId (4 = BSC) + "tokenId": "2639", // ID in the NFT smart contract + "contract": "0x387d38eEaaa7F1235c00aE6ee9b1462c026007f4", + "owner": "0x6449b68cc5675f6011e8DB681B142773A3157cb9", + "uri": "https://api.alturanft.com/meta/chain-caders/", + "symbol": null, + "name": "ChainCaders", // Collection Name + "contractType": "ERC1155" + }, + "collectionIdent": "0x387d38eeaaa7f1235c00ae6ee9b1462c026007f4" } ``` -### 5.3 Example of the console logged wrapped NFT from BSC on Velas +### 5.3 Example of the console logged wrapped NFT ```json { - "name": "DRVR NOT LVR", - "description": "Cliff Blank | Community Pool Drop\n\nWe would need a license to love, there would be fewer lines, fewer misunderstandings but definitely more accidents. \nThe arteries of our heart would be 4 lanes so that we could reach love in a short time. Of course, there could always be works and exits closed but at least we would have fewer surprises and we would react accordingly, choosing another exit or deciding to continue on our way.", - "decimals": 0, - "isBooleanAmount": true, - "image": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", - "artifactUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", - "wrapped": { - "contract": "0x1BFb3FbCf1ce331B7AAE03a3c0Bf3AcF685F4bD6", - "tokenId": "10", - "contractType": 721, - "origin": "14", - "original_uri": "https://ipfs.infura.io/ipfs/QmdtemgadGPgWSn9Lq1RvQn4Q2ofEpRNr7ox8oMyNWJ9ma", - "mint_with": "0x3a1d5a87c5f0c2f5c5e079b0f234d8797ee0e9b4", - "source_mint_ident": "0x1BFb3FbCf1ce331B7AAE03a3c0Bf3AcF685F4bD6" + "uri": "https://nft.xp.network/w/30576349324667796398547334318", + "native": { + "chainId": "4", // Original chainId + "tokenId": "30576349324667796398547334318", // Wrapped ID + "contract": "0x8Ae5Fa4DDb131695CDe906BE03b33ebb277DF9A4", // Original Owner + "owner": "0x6449b68cc5675f6011e8DB681B142773A3157cb9", + "uri": "https://nft.xp.network/w/30576349324667796398547334318", // Original URI + "symbol": "vr3DNFTs", // Custom collection name + "name": "Virtual Reality 3D NFTs", // Custom collection name + "contractType": "ERC721" }, - "attributes": [ - { - "trait_type": "Original Chain", - "value": "xDai" - }, - { - "trait_type": "Original Chain Nonce", - "value": "14" - }, - { - "trait_type": "Original URI", - "value": "https://ipfs.infura.io/ipfs/QmdtemgadGPgWSn9Lq1RvQn4Q2ofEpRNr7ox8oMyNWJ9ma" - } - ], - "displayUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", - "thumbnailUri": "https://ipfs.infura.io/ipfs/QmX4n4QJBsGmVuszy1fXMJHpGnpkp9BePVJNQ8Lf18yA8z", - "ipfs": false + "collectionIdent": "0x8ae5fa4ddb131695cde906be03b33ebb277df9a4" } ``` diff --git a/package.json b/package.json index c2ab5e1e9..f00f5591f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "3.0.13", + "version": "3.0.14", "author": "xp-network ", "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index c61cd793f..7e973b8cf 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -528,11 +528,11 @@ export namespace ChainFactoryConfigs { godwokenParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.GODWOKEN), - minter_addr: "0x0000000000000000000000000000000000000000", - erc721_addr: "0x0000000000000000000000000000000000000000", + minter_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0x34933A5958378e7141AA2305Cdb5cDf514896035", erc721Minter: "0x0000000000000000000000000000000000000000", erc1155Minter: "0x0000000000000000000000000000000000000000", - erc1155_addr: "", nonce: Chain.GODWOKEN, feeMargin, }, From 8f99819a0de6a62b89eb312b23f342e9e9466cff Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 14 Jul 2022 15:07:41 +0530 Subject: [PATCH 582/956] factory: chain-info: update decimals for godwoken --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index a928b48d3..cf429d366 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -336,7 +336,7 @@ CHAIN_INFO.set(Chain.GODWOKEN, { blockExplorerUrl: "https://aggron.layerview.io/tx/", constructor: web3HelperFactory, nonce: 0x16, - decimals: 1e8, + decimals: 1e18, currency: SupportedCurrency.CKB, chainId: 868455272153094, }); From af7e9d6743127c1e94438ea3dca6b9449fcc98dc Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 14 Jul 2022 17:54:09 +0530 Subject: [PATCH 583/956] helpers: secret: list-nft: return chainId inside native object --- src/helpers/secret.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index f971a7f2c..98cd3818a 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -20,6 +20,7 @@ import { export type SecretNftInfo = { contract: string; contractHash: string; + chainId: string; token_id: string; }; export type SecretMintArgs = { @@ -187,6 +188,7 @@ export async function secretHelperFactory( collectionIdent: contractAddress, uri: tokenInfo.all_nft_info.info?.token_uri || "", native: { + chainId: p.chainId, contract: contractAddress, contractHash: codeHash || "", token_id: token, From 2bbfb7782a07f890bd74e006f7acb26d0b4a20d9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 14 Jul 2022 18:03:56 +0530 Subject: [PATCH 584/956] naming: unify token_id to the convention tokenId --- src/helpers/secret.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 98cd3818a..2a2c0b0b9 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -21,7 +21,7 @@ export type SecretNftInfo = { contract: string; contractHash: string; chainId: string; - token_id: string; + tokenId: string; }; export type SecretMintArgs = { url: string; @@ -93,7 +93,7 @@ export async function secretHelperFactory( msg: { approve: { spender: p.bridge.contractAddress, - token_id: nft.native.token_id, + token_id: nft.native.tokenId, }, }, }, @@ -191,7 +191,7 @@ export async function secretHelperFactory( chainId: p.chainId, contract: contractAddress, contractHash: codeHash || "", - token_id: token, + tokenId: token, }, }); }) @@ -216,7 +216,7 @@ export async function secretHelperFactory( freeze_nft: { contract: nft.native.contract, contract_hash: nft.native.contractHash, - token_id: nft.native.token_id, + token_id: nft.native.tokenId, to, chain_nonce: chainNonce, minter: mw, @@ -246,7 +246,7 @@ export async function secretHelperFactory( withdraw_nft: { burner: nft.native.contract, burner_hash: nft.native.contractHash, - token_id: nft.native.token_id, + token_id: nft.native.tokenId, to, chain_nonce: Number(chainNonce), }, From 811ad9c668d174b977a26619c7110f6d08dd4811 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 14 Jul 2022 19:21:34 +0530 Subject: [PATCH 585/956] factory: change secret chain id to decimal --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 7e973b8cf..1cac896cb 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -303,7 +303,7 @@ export namespace ChainFactoryConfigs { codeHash: "af076a49141264ec048270318f1358c9be193893c3f829425cab53ee5eb05e5c", }, - chainId: "0x18", + chainId: "24", feeMargin, }, }; From f6805360575f8643025e63b7927f89d18c6f23d9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 17 Jul 2022 13:32:13 +0530 Subject: [PATCH 586/956] fix elrond signing issues --- src/helpers/elrond.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index e67f18413..6657e9f52 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -23,6 +23,7 @@ import { TransactionHash, TransactionPayload, U64Value, + UserSigner, WalletConnectProvider, } from "@elrondnetwork/erdjs"; import axios from "axios"; @@ -273,9 +274,12 @@ export async function elrondHelperFactory( stx = txs[0]; } else if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); - } else { - await (signer as ISigner).sign(tx); + } else if (signer instanceof UserSigner) { + await signer.sign(tx); stx = tx; + } else { + //@ts-ignore + stx = await signer.signTransaction(tx); } try { await stx.send(provider); From 0d6118234d4a9656bba1d9b55a9be38e527ddffb Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 17 Jul 2022 23:36:44 +0530 Subject: [PATCH 587/956] factory: use nft.collectionIdent for checking mintWith instead of contract --- src/factory/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 341b59a9b..144bba59f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -648,8 +648,7 @@ export function ChainFactory( checkMintWith( mintWith, await getVerifiedContracts( - //@ts-expect-error contract is checked - nft.native.contract.toLowerCase(), + nft.collectionIdent, toChain.getNonce(), fromChain.getNonce() ) From 41bea0ec23e8fbe8544c940a4e5e75feb7487d54 Mon Sep 17 00:00:00 2001 From: rupansh Date: Mon, 18 Jul 2022 20:36:06 +0530 Subject: [PATCH 588/956] factory: minor updates for sc-verify --- src/factory/index.ts | 76 +++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 33 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 144bba59f..c4314d694 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -211,11 +211,12 @@ export type ChainFactory = { */ claimableAlgorandNfts(claimer: string): Promise; - getVerifiedContracts( + getVerifiedContract( from: string, targetChain: number, - fc: number - ): Promise; + fc: number, + tokenId?: string + ): Promise; checkWhitelist( chain: Partial> & ChainNonceGet, @@ -451,13 +452,6 @@ export function ChainFactory( } } - function checkMintWith(mw: string, contracts: string[]) { - return ( - contracts.find((x) => x.toLowerCase() === mw.toLowerCase().trim()) != - undefined - ); - } - async function isWrappedNft(nft: NftInfo, fc: number) { if (fc === Chain.TEZOS) { return ( @@ -496,26 +490,42 @@ export function ChainFactory( } } - async function getVerifiedContracts( + async function getVerifiedContract( from: string, tc: number, - fc: number - ): Promise { - try { - const _from = ethers.utils.getAddress(from); - const res = await axios.get<{ data: { to: string }[] }>( - `${appConfig.scVerifyUri}/verify/list?from=${_from}&targetChain=${tc}&fromChain=${fc}` - ); - return res.data.data.map((r) => r.to); - } catch (err) { - const res = await axios.get<{ data: { to: string }[] }>( - `${appConfig.scVerifyUri}/verify/list?from=${from}&targetChain=${tc}&fromChain=${fc}` - ); - return res.data.data.map((r) => r.to); - } + fc: number, + tokenId?: string + ): Promise { + const res = await axios + .post<{ data: string }>(`${appConfig.scVerifyUri}/default/`, { + sc: from, + chain: tc, + fromChain: fc, + tokenId, + }) + .catch(() => { + return undefined; + }); + return res?.data.data; } + + async function checkMintWith( + from: string, + to: string, + targetChain: number, + fromChain: number, + tokenId?: string + ): Promise { + const res = await axios.post<{ data: "allowed" | "not allowed" }>( + `${appConfig.scVerifyUri}/verify`, + { from, to, targetChain, fromChain, tokenId } + ); + + return res.data.data == "allowed"; + } + return { - getVerifiedContracts, + getVerifiedContract, balance: (i, a) => i.balance(a), async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { type Result = ReturnType; @@ -645,14 +655,14 @@ export function ChainFactory( const mw = "contract" in nft.native && mintWith && - checkMintWith( + (await checkMintWith( + nft.collectionIdent, mintWith, - await getVerifiedContracts( - nft.collectionIdent, - toChain.getNonce(), - fromChain.getNonce() - ) - ) + toChain.getNonce(), + fromChain.getNonce(), + //@ts-expect-error tokenId is checked + "tokenId" in nft.native ? nft.native.tokenId.toString() : undefined + )) ? mintWith : "contractType" in nft.native && //@ts-ignore contractType is checked From 08e8ae6ce930aff6f37e3dc26812b956563f4a5a Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 18 Jul 2022 18:23:04 +0300 Subject: [PATCH 589/956] harmony node change, algorand claim bug fix --- src/consts.ts | 2 +- src/helpers/algorand.ts | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index cf429d366..39d8104b1 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -59,7 +59,7 @@ export enum MainNetRpcUri { FANTOM = "https://rpc.ftm.tools/", TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", - HARMONY = "https://rpc.s0.t.hmny.io", + HARMONY = "https://harmony-light.xp.network/node", XDAI = "https://gnosischain-rpc.gateway.pokt.network", FUSE = "https://rpc.fuse.io/", VELAS = "https://mainnet.velas.com/rpc", diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 48ab23c17..1f45cbe73 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -176,7 +176,12 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { async function waitTxnConfirm(txId: string) { const status = await algod.status().do(); let lastRound = status["last-round"]; - let pendingInfo = await algod.pendingTransactionInformation(txId).do(); + algod.pendingTransactionsInformation(); + let pendingInfo = (await algod + .pendingTransactionInformation(txId) + .do() + .catch(() => ({}))) as Record; + while ( !(pendingInfo["confirmed-round"] && pendingInfo["confirmed-round"] > 0) ) { From 9df572dd1f1e71842559d98b3743c784a1e3d4ec Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 19 Jul 2022 18:49:10 +0300 Subject: [PATCH 590/956] catch errors on verify sc --- src/factory/index.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index c4314d694..8da8e6113 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -516,12 +516,14 @@ export function ChainFactory( fromChain: number, tokenId?: string ): Promise { - const res = await axios.post<{ data: "allowed" | "not allowed" }>( - `${appConfig.scVerifyUri}/verify`, - { from, to, targetChain, fromChain, tokenId } - ); + const res = await axios + .post<{ data: "allowed" | "not allowed" }>( + `${appConfig.scVerifyUri}/verify`, + { from, to, targetChain, fromChain, tokenId } + ) + .catch(() => undefined); - return res.data.data == "allowed"; + return res?.data.data == "allowed"; } return { From e6e2ce6233f8f2f3cce20393d8e1c92696264168 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 20 Jul 2022 09:48:19 +0300 Subject: [PATCH 591/956] sc-verify url change, harmony node --- src/config.ts | 2 +- src/consts.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config.ts b/src/config.ts index 31f8e724b..4d5bc17e9 100644 --- a/src/config.ts +++ b/src/config.ts @@ -11,7 +11,7 @@ export namespace AppConfigs { tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", wrappedNftPrefix: "https://nft.xp.network/w/", - scVerifyUri: "https://sc-verify.xp.network", + scVerifyUri: "https://testing-sc-verify.herokuapp.com", network: "mainnet", }; }; diff --git a/src/consts.ts b/src/consts.ts index 39d8104b1..cf429d366 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -59,7 +59,7 @@ export enum MainNetRpcUri { FANTOM = "https://rpc.ftm.tools/", TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", - HARMONY = "https://harmony-light.xp.network/node", + HARMONY = "https://rpc.s0.t.hmny.io", XDAI = "https://gnosischain-rpc.gateway.pokt.network", FUSE = "https://rpc.fuse.io/", VELAS = "https://mainnet.velas.com/rpc", From 0cee7df5a3eaf23d471e930d39f638e276905e05 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 20 Jul 2022 16:20:02 +0530 Subject: [PATCH 592/956] Setup Factory for ICP --- src/consts.ts | 9 ++++++ src/factory/factories.ts | 10 ++++++ src/factory/index.ts | 3 ++ src/helpers/dfinity.ts | 68 +++++++++++++++++++++++++++++++++------- 4 files changed, 79 insertions(+), 11 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index cf429d366..86232c19f 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -409,3 +409,12 @@ CHAIN_INFO.set(Chain.SKALE, { chainId: 1305754875840118, nonce: Chain.SKALE, }); + +CHAIN_INFO.set(Chain.DFINITY, { + blockExplorerUrl: "", // TODO + constructor: dfinityHelper, + currency: SupportedCurrency.ICP, + decimals: 1e8, + name: "DFINITY", + nonce: Chain.DFINITY, +}); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 1cac896cb..d49e9db69 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -9,6 +9,8 @@ import { Driver, SimpleNet } from "@vechain/connex-driver"; import * as thor from "web3-providers-connex"; import { Framework } from "@vechain/connex-framework"; import { hethers } from "@hashgraph/hethers"; +import { HttpAgent } from "@dfinity/agent"; +import { Principal } from "@dfinity/principal"; /*const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", @@ -108,6 +110,14 @@ export namespace ChainFactoryConfigs { nonce: Chain.POLYGON, feeMargin, }, + dfinityParams: { + agent: new HttpAgent({ + host: "http://localhost:8000", + }), + bridgeContract: Principal.fromText("rrkah-fqaaa-aaaaa-aaaaq-cai"), + xpnftId: Principal.fromText("r7inp-6aaaa-aaaaa-aaabq-cai"), + notifier, + }, fantomParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), diff --git a/src/factory/index.ts b/src/factory/index.ts index 8da8e6113..9941ddfc7 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -52,6 +52,7 @@ import { ParamMap, } from "../type-utils"; import { SecretParams } from "../helpers/secret"; +import { DfinityParams } from "../helpers/dfinity"; type FullChain = TransferNftForeign< Signer, @@ -255,6 +256,7 @@ export interface ChainParams { secretParams: SecretParams; hederaParams: Web3Params; skaleParams: Web3Params; + dfinityParams: DfinityParams; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -305,6 +307,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.SECRET, chainParams.secretParams); cToP.set(Chain.HEDERA, chainParams.hederaParams); cToP.set(Chain.SKALE, chainParams.skaleParams); + cToP.set(Chain.DFINITY, chainParams.dfinityParams); return cToP; } /** diff --git a/src/helpers/dfinity.ts b/src/helpers/dfinity.ts index a04a128d2..3cbb281da 100644 --- a/src/helpers/dfinity.ts +++ b/src/helpers/dfinity.ts @@ -3,9 +3,15 @@ import { decode, encode, Nat, + Nat32, Nat64, + Nat8, + Opt, PrincipalClass, + Record, Text, + Tuple, + Vec, } from "@dfinity/candid/lib/cjs/idl"; import { AccountIdentifier, ICP, LedgerCanister } from "@dfinity/nns"; import { Principal } from "@dfinity/principal"; @@ -29,6 +35,13 @@ export type DfinityNft = { tokenId: string; }; +const ApproveRequest = Record({ + token: Text, + subaccount: Opt(Vec(Nat8)), + allowance: Nat, + spender: new PrincipalClass(), +}); + export type DfinityHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & @@ -57,6 +70,22 @@ export async function dfinityHelper( amount: ICP.fromString(amt.toFixed()) as ICP, }); } + const to32bits = (num: number) => { + let b = new ArrayBuffer(4); + new DataView(b).setUint32(0, num); + 1 << 5; + return Array.from(new Uint8Array(b)); + }; + + const tokenIdentifier = (principal: string, index: number) => { + const padding = Buffer.from("\x0Atid"); + const array = new Uint8Array([ + ...padding, + ...Principal.fromText(principal).toUint8Array(), + ...to32bits(index), + ]); + return Principal.fromUint8Array(array).toText(); + }; async function waitActionId(requestId: RequestId) { const pollStrat = polling.defaultStrategy(); @@ -135,26 +164,43 @@ export async function dfinityHelper( async preTransfer(sender, nft) { args.agent.replaceIdentity(sender); + const tid = tokenIdentifier( + nft.collectionIdent, + Number(nft.native.tokenId) + ); + const nftContract = Principal.fromText(nft.native.canisterId); const approvedQuery = await args.agent.query(nftContract, { - methodName: "getApproved", - arg: encode([Nat], [BigInt(nft.native.tokenId)]), + methodName: "getAllowances", + arg: encode([Text], [tid]), }); - if ( - "reply" in approvedQuery && - decode([new PrincipalClass()], approvedQuery.reply.arg)[0].toString() == - args.bridgeContract.toString() - ) { - // already approved - return; + if ("reply" in approvedQuery) { + let decoded: Array<[number, Principal]> = decode( + [Vec(Tuple(Nat32, new PrincipalClass()))], + approvedQuery.reply.arg + )[0] as any; + for (const item of decoded) { + if (item[0] === Number(nft.native.tokenId)) { + if (item[1].toText() === args.bridgeContract.toText()) { + return undefined; + } + } + } } const approveCall = await args.agent.call(nftContract, { methodName: "approve", arg: encode( - [new PrincipalClass(), Nat], - [args.bridgeContract, BigInt(nft.native.tokenId)] + [ApproveRequest], + [ + { + token: tid, + allowance: BigInt(1), + spender: args.bridgeContract, + subaccount: [], + }, + ] ), }); From a3777a00cc6cd587e1f22758ac0309b0a0cd41bf Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 20 Jul 2022 17:26:04 +0530 Subject: [PATCH 593/956] Gas Price: Workaround for Hedera's Missing Gas Price Method --- src/helpers/web3.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index ecd976cef..91e68b6c4 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -49,6 +49,7 @@ import { NftMintArgs } from ".."; import { ChainNonce } from "../type-utils"; import { EvNotifier } from "../notifier"; import axios from "axios"; +import { hethers } from "@hashgraph/hethers"; /** * Information required to perform NFT transfers in this chain */ @@ -88,6 +89,10 @@ export interface Approve { ): Promise; } +hethers.providers.BaseProvider.prototype.getGasPrice = async () => { + return EthBN.from("1000"); +}; + /** * Base util traits */ From 1dc0240338af48b46176ce409ea77f27ac4e6ed7 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 20 Jul 2022 17:40:09 +0530 Subject: [PATCH 594/956] factory: hedera: add contract addresses --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d49e9db69..e89c133e8 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -256,11 +256,11 @@ export namespace ChainFactoryConfigs { provider: hethers.providers.getDefaultProvider("testnet"), feeMargin, nonce: Chain.HEDERA, - minter_addr: "", - erc1155Minter: "", - erc1155_addr: "", - erc721Minter: "", - erc721_addr: "", + minter_addr: "0x000000000000000000000000000000000000f232", + erc1155Minter: "0x000000000000000000000000000000000000f20d", + erc1155_addr: "0x000000000000000000000000000000000000f224", + erc721Minter: "0x000000000000000000000000000000000000f203", + erc721_addr: "0x000000000000000000000000000000000000f21a", }, skaleParams: { notifier, From 00cf51ade1201275e4591df82a592b563e24c562 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 21 Jul 2022 15:26:49 +0300 Subject: [PATCH 595/956] use xpNft if XpNft1155 undef --- src/factory/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 8da8e6113..6b273cba8 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -668,7 +668,8 @@ export function ChainFactory( ? mintWith : "contractType" in nft.native && //@ts-ignore contractType is checked - nft.native.contractType === "ERC1155" + nft.native.contractType === "ERC1155" && + toChain.XpNft1155 ? toChain.XpNft1155 : toChain.XpNft; From 4db93fd018fd1f3397109e7adc86c064b23e537b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 24 Jul 2022 14:54:41 +0530 Subject: [PATCH 596/956] Update Dfinity Contracts --- src/factory/factories.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index e89c133e8..c06516c59 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -112,10 +112,10 @@ export namespace ChainFactoryConfigs { }, dfinityParams: { agent: new HttpAgent({ - host: "http://localhost:8000", + host: "https://nodes.xp.network/dfinity/", }), - bridgeContract: Principal.fromText("rrkah-fqaaa-aaaaa-aaaaq-cai"), - xpnftId: Principal.fromText("r7inp-6aaaa-aaaaa-aaabq-cai"), + bridgeContract: Principal.fromText("renrk-eyaaa-aaaaa-aaada-cai"), + xpnftId: Principal.fromText("qoctq-giaaa-aaaaa-aaaea-cai"), notifier, }, fantomParams: { @@ -253,7 +253,7 @@ export namespace ChainFactoryConfigs { }, hederaParams: { notifier, - provider: hethers.providers.getDefaultProvider("testnet"), + provider: hethers.providers.getDefaultProvider("previewnet"), feeMargin, nonce: Chain.HEDERA, minter_addr: "0x000000000000000000000000000000000000f232", From 59c2fc0e8c5998ad4b47c0311c2bc14dabf73ec0 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 24 Jul 2022 14:58:12 +0530 Subject: [PATCH 597/956] Helpers: Dfinity: Implement GetFeeMargins interface --- src/factory/factories.ts | 1 + src/helpers/dfinity.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index c06516c59..274ff20c2 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -117,6 +117,7 @@ export namespace ChainFactoryConfigs { bridgeContract: Principal.fromText("renrk-eyaaa-aaaaa-aaada-cai"), xpnftId: Principal.fromText("qoctq-giaaa-aaaaa-aaaea-cai"), notifier, + feeMargin, }, fantomParams: { notifier, diff --git a/src/helpers/dfinity.ts b/src/helpers/dfinity.ts index 3cbb281da..f0779ddc4 100644 --- a/src/helpers/dfinity.ts +++ b/src/helpers/dfinity.ts @@ -22,6 +22,8 @@ import { BalanceCheck, ChainNonceGet, EstimateTxFees, + FeeMargins, + GetFeeMargins, PreTransfer, TransferNftForeign, UnfreezeForeignNft, @@ -50,13 +52,15 @@ export type DfinityHelper = ChainNonceGet & PreTransfer, "preTransfer" > & - BalanceCheck; + BalanceCheck & + GetFeeMargins; export type DfinityParams = { agent: HttpAgent; bridgeContract: Principal; xpnftId: Principal; notifier: EvNotifier; + feeMargin: FeeMargins; }; export async function dfinityHelper( @@ -206,6 +210,9 @@ export async function dfinityHelper( return Buffer.from(approveCall.requestId).toString("hex"); }, + getFeeMargin() { + return args.feeMargin; + }, async balance(address) { const bal = await ledger.accountBalance({ accountIdentifier: AccountIdentifier.fromPrincipal({ From 6f22351001f2edfbb9911bb39d5995f4ccefc212 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 24 Jul 2022 14:31:08 +0300 Subject: [PATCH 598/956] Check if tokenId does not contain letters --- src/factory/index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 803ba6767..e69569962 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -2,6 +2,7 @@ import { ElrondParams } from "../helpers/elrond"; import { TronParams } from "../helpers/tron"; import { Web3Params } from "../helpers/web3"; import { Chain, CHAIN_INFO } from "../consts"; + export * from "./factories"; import { @@ -657,6 +658,10 @@ export function ChainFactory( } } + const tokenId = + //@ts-ignore + nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); + const mw = "contract" in nft.native && mintWith && @@ -665,8 +670,7 @@ export function ChainFactory( mintWith, toChain.getNonce(), fromChain.getNonce(), - //@ts-expect-error tokenId is checked - "tokenId" in nft.native ? nft.native.tokenId.toString() : undefined + tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined )) ? mintWith : "contractType" in nft.native && From d1d5b46bffcbac2c4c2a396c2bb7e000d565c5ac Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 26 Jul 2022 17:25:14 +0300 Subject: [PATCH 599/956] GetOwnedTokens - when error happens throw it --- src/helpers/secret.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 2a2c0b0b9..e3e518599 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,6 +1,7 @@ import BigNumber from "bignumber.js"; import { Bech32, SecretNetworkClient, Tx } from "secretjs"; import { Snip721MintOptions } from "secretjs/dist/extensions/snip721/types"; +import { Snip721GetTokensResponse } from "secretjs/dist/extensions/snip721/msg/GetTokens"; import { EvNotifier } from "../notifier"; import { BalanceCheck, @@ -30,6 +31,10 @@ export type SecretMintArgs = { type SecretSigner = SecretNetworkClient; +type GetOwnedTokensResponse = Snip721GetTokensResponse & { + generic_err?: { msg: string }; +}; + export type SecretHelper = TransferNftForeign & UnfreezeForeignNft & ValidateAddress & @@ -171,11 +176,15 @@ export async function secretHelperFactory( codeHash: codeHash || "", }; - const { token_list } = await queryClient.query.snip721.GetOwnedTokens({ - contract, - auth, - owner, - }); + const { token_list, generic_err } = + (await queryClient.query.snip721.GetOwnedTokens({ + contract, + auth, + owner, + })) as GetOwnedTokensResponse; + + if (generic_err) throw new Error(generic_err.msg); + const response: NftInfo[] = []; await Promise.all( token_list.tokens.map(async (token) => { From 8af769d715dd03e76a706e38cc676dfc9219df3c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 27 Jul 2022 17:37:42 +0530 Subject: [PATCH 600/956] Web3: Helper: add a method to mint erc1155 NFTs --- src/helpers/web3.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 91e68b6c4..4a58ff404 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -103,7 +103,7 @@ export type BaseWeb3Helper = BalanceCheck & * @argument signer owner of the smart contract * @argument args See [[MintArgs]] */ - MintNft & { + MintNft & { /** * * Deploy an ERC721 smart contract @@ -112,6 +112,11 @@ export type BaseWeb3Helper = BalanceCheck & * @returns Address of the deployed smart contract */ deployErc721(owner: Signer): Promise; + } & { + mintNftErc1155( + owner: Signer, + options: NftMintArgs + ): Promise; }; /** @@ -162,15 +167,20 @@ export async function baseWeb3HelperFactory( return contract.address; }, + async mintNftErc1155(owner: Signer, { contract }: NftMintArgs) { + const erc1155 = Erc1155Minter__factory.connect(contract!, owner); + const tx = await erc1155.mintNft(await owner.getAddress()); + + return tx; + }, async mintNft( owner: Signer, { contract, uris }: NftMintArgs - ): Promise { + ): Promise { const erc721 = UserNftMinter__factory.connect(contract!, owner); const txm = await erc721.mint(uris[0]); - const receipt = await txm.wait(); - return receipt.transactionHash; + return txm; }, }; } From 1192de60f20d0ec2300ecbd60a6bdc23bd93d598 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 28 Jul 2022 16:48:15 +0300 Subject: [PATCH 601/956] tezos: isApprovedForMinter fix --- src/helpers/tezos.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 24e29f127..bdd81e8fd 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -149,11 +149,16 @@ export async function tezosHelperFactory({ operator?: BigMapAbstraction; }>(); - let op = await storage?.operators?.get({ - owner, - operator: bridgeAddress, - token_id: nft.native.token_id, - }); + const storageOperator = storage.operator || storage.operators; + const args = storage.operator + ? [bridgeAddress, nft.native.token_id, owner] + : { + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }; + + const op = await storageOperator?.get(args); return op != undefined; } From 3ee3e2e78822ad287854cd3f396b3f2c9e33d78a Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 31 Jul 2022 16:36:34 +0300 Subject: [PATCH 602/956] polygon gas tracker --- src/helpers/web3.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 4a58ff404..6b7904be7 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -279,13 +279,21 @@ export async function web3HelperFactory( const txnUnderpricedPolyWorkaround = params.nonce == 7 ? async (utx: PopulatedTransaction) => { - const res = await axios.get( - "https://gasstation-mainnet.matic.network/v2" - ); - const { fast } = res.data; + const res = await axios + .get( + "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" + ) + .catch(async (e) => { + return await axios.get( + "https://gasstation-mainnet.matic.network/v2" + ); + }); + const { result } = res.data; + const fast = result["rapidgaspricegwei"] || res.data.fast; + if (fast) { const sixtyGwei = ethers.utils.parseUnits( - Math.ceil(fast.maxFee).toString(), + Math.ceil(fast.maxFee || fast).toString(), "gwei" ); utx.maxFeePerGas = sixtyGwei; @@ -584,6 +592,7 @@ export async function web3HelperFactory( _mintWith ): Promise { const gas = await provider.getGasPrice(); + return new BigNumber(gas.mul(150_000).toString()); }, validateAddress(adr) { From 8610d0e808f23140d2a432a31b6749318d746996 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 31 Jul 2022 16:39:09 +0300 Subject: [PATCH 603/956] quickfix --- src/helpers/web3.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 6b7904be7..3c444a04b 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -283,17 +283,17 @@ export async function web3HelperFactory( .get( "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" ) - .catch(async (e) => { + .catch(async () => { return await axios.get( "https://gasstation-mainnet.matic.network/v2" ); }); - const { result } = res.data; - const fast = result["rapidgaspricegwei"] || res.data.fast; + const { result, fast } = res.data; + const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; - if (fast) { + if (trackerGas) { const sixtyGwei = ethers.utils.parseUnits( - Math.ceil(fast.maxFee || fast).toString(), + Math.ceil(trackerGas).toString(), "gwei" ); utx.maxFeePerGas = sixtyGwei; From 0a41d38170db3cb976dc3aac81e4ef13093edc26 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 31 Jul 2022 18:02:09 +0300 Subject: [PATCH 604/956] tezos: catch error on estimate approve --- src/helpers/tezos.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index bdd81e8fd..5fa421bf5 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -107,7 +107,9 @@ export async function tezosHelperFactory({ const res = cb(contractI); - const estim = await Tezos.estimate.transfer(res.toTransferParams(params)); + const estim = await Tezos.estimate + .transfer(res.toTransferParams(params)) + .catch(() => ({ storageLimit: 0 })); if (params) { if (!params.storageLimit) params.storageLimit = estim.storageLimit; From 497f0a7bb7bbeb5e6c20ab93b7ae388d26446b0a Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Wed, 3 Aug 2022 10:42:29 +0300 Subject: [PATCH 605/956] Update consts.ts --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 86232c19f..f63804054 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -66,7 +66,7 @@ export enum MainNetRpcUri { TEZOS = "https://mainnet.smartpy.io", IOTEX = "https://babel-api.mainnet.iotex.io", AURORA = "https://mainnet.aurora.dev", - GODWOKEN = "https://mainnet.godwoken.io/rpc", + GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", // TODO: Algorand From f3f12301740b1df841b0a5bf72e1081c77533932 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 3 Aug 2022 13:54:38 +0300 Subject: [PATCH 606/956] secrec mainnet rpc --- src/consts.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/consts.ts b/src/consts.ts index f63804054..e22530963 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -69,6 +69,7 @@ export enum MainNetRpcUri { GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", + SECRET = "https://secret-4.api.trivium.network:26657", // TODO: Algorand } From b4becef2be387d01c39b3c439c5b502b8b41a17d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 3 Aug 2022 18:19:32 +0530 Subject: [PATCH 607/956] Hedera: Update Contracts --- src/consts.ts | 2 +- src/factory/factories.ts | 12 ++++++------ src/helpers/web3.ts | 39 +++++++++++++++++++++++++++++++-------- 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index f63804054..8fd46ab84 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -394,7 +394,7 @@ CHAIN_INFO.set(Chain.HEDERA, { blockExplorerUrl: "https://hashscan.io/#/testnet/transaction", constructor: web3HelperFactory, currency: SupportedCurrency.HBAR, - decimals: 1e18, + decimals: 1e6, nonce: Chain.HEDERA, name: "Hedera", }); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 274ff20c2..17faa7296 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -254,14 +254,14 @@ export namespace ChainFactoryConfigs { }, hederaParams: { notifier, - provider: hethers.providers.getDefaultProvider("previewnet"), + provider: hethers.providers.getDefaultProvider("testnet"), feeMargin, nonce: Chain.HEDERA, - minter_addr: "0x000000000000000000000000000000000000f232", - erc1155Minter: "0x000000000000000000000000000000000000f20d", - erc1155_addr: "0x000000000000000000000000000000000000f224", - erc721Minter: "0x000000000000000000000000000000000000f203", - erc721_addr: "0x000000000000000000000000000000000000f21a", + minter_addr: "0x0000000000000000000000000000000002d8b563", + erc1155Minter: "0x0000000000000000000000000000000002d8b535", + erc1155_addr: "0x0000000000000000000000000000000002d8b550", + erc721Minter: "0x0000000000000000000000000000000002d8b52a", + erc721_addr: "0x0000000000000000000000000000000002d8b542", }, skaleParams: { notifier, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 3c444a04b..66cd62f94 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -90,7 +90,7 @@ export interface Approve { } hethers.providers.BaseProvider.prototype.getGasPrice = async () => { - return EthBN.from("1000"); + return EthBN.from("1"); }; /** @@ -179,7 +179,7 @@ export async function baseWeb3HelperFactory( ): Promise { const erc721 = UserNftMinter__factory.connect(contract!, owner); - const txm = await erc721.mint(uris[0]); + const txm = await erc721.mint(uris[0], { gasLimit: 1000000 }); return txm; }, }; @@ -235,7 +235,10 @@ export const NFT_METHOD_MAP: NftMethodMap = { validateUnfreeze: "validateUnfreezeErc1155", umt: Erc1155Minter__factory, approved: (umt: Erc1155Minter, sender: string, minterAddr: string) => { - return umt.isApprovedForAll(sender, minterAddr); + return umt.isApprovedForAll(sender, minterAddr, { + gasLimit: "1000000", + customData: {}, + }); }, approve: async ( umt: Erc1155Minter, @@ -243,7 +246,14 @@ export const NFT_METHOD_MAP: NftMethodMap = { _tok: string, txnUp: (tx: PopulatedTransaction) => Promise ) => { - const tx = await umt.populateTransaction.setApprovalForAll(forAddr, true); + const tx = await umt.populateTransaction.setApprovalForAll( + forAddr, + true, + { + gasLimit: "1000000", + customData: {}, + } + ); await txnUp(tx); return await umt.signer.sendTransaction(tx); }, @@ -258,7 +268,15 @@ export const NFT_METHOD_MAP: NftMethodMap = { minterAddr: string, tok: string ) => { - return (await umt.getApproved(tok)) == minterAddr; + return ( + ( + await umt.getApproved(tok, { + gasLimit: "1000000", + customData: {}, + //@ts-ignore + }) + ).toLowerCase() == minterAddr.toLowerCase() + ); }, approve: async ( umt: UserNftMinter, @@ -266,7 +284,9 @@ export const NFT_METHOD_MAP: NftMethodMap = { tok: string, txnUp: (tx: PopulatedTransaction) => Promise ) => { - const tx = await umt.populateTransaction.approve(forAddr, tok); + const tx = await umt.populateTransaction.approve(forAddr, tok, { + gasLimit: "100000", + }); await txnUp(tx); return await umt.signer.sendTransaction(tx); }, @@ -517,6 +537,8 @@ export async function web3HelperFactory( await approveForMinter(id, sender); const method = NFT_METHOD_MAP[id.native.contractType].freeze; + const isHedera = params.nonce === 0x1d; + const tx = await minter .connect(sender) .populateTransaction[method]( @@ -526,7 +548,7 @@ export async function web3HelperFactory( to, mintWith, { - value: EthBN.from(txFees.toString(10)), + value: isHedera ? "150" : EthBN.from(txFees.toString(10)), gasLimit, } ); @@ -535,7 +557,8 @@ export async function web3HelperFactory( const txr = await sender.sendTransaction(tx); await notifyValidator( - txr.hash, + //@ts-ignore + isHedera ? txr["transactionId"] : txr.hash, await extractAction(txr), "Transfer", chain_nonce, From 8a6743e26cee52fbda65fffd107016f84d4a45ce Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 4 Aug 2022 15:04:51 +0530 Subject: [PATCH 608/956] Add an interface to check whether an address is smart contract --- src/helpers/chain.ts | 4 ++++ src/helpers/elrond.ts | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index d61026a46..1ebd02119 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -181,6 +181,10 @@ export async function isWrappedNft(nft: NftInfo) { ); } +export interface IsContractAddress { + isContractAddress(address: string): Promise; +} + export interface FeeMargins { min: number; max: number; diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 6657e9f52..0e937410f 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -40,6 +40,7 @@ import { EstimateTxFeesBatch, GetFeeMargins, FeeMargins, + IsContractAddress, } from "./chain"; import { Chain, @@ -207,7 +208,7 @@ export type ElrondHelper = BalanceCheck & SetESDTRoles & { XpNft: string } & GetFeeMargins & { wegldBalance(address: string): Promise; unwrapWegld(sender: ElrondSigner, amt: BigNumber): Promise; - }; + } & IsContractAddress; /** * Create an object implementing cross chain utilities for elrond @@ -561,6 +562,9 @@ export async function elrondHelperFactory( return wallet.balance.valueOf(); }, + async isContractAddress(address) { + return Address.fromString(address).isContractAddress(); + }, getFeeMargin() { return elrondParams.feeMargin; }, From abf78e55d9eae0932e8de0294a61b6cd31fddb31 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 4 Aug 2022 15:31:17 +0530 Subject: [PATCH 609/956] helpers: evm: implement IsContractAddress --- src/helpers/web3.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 66cd62f94..1fffc6a83 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -14,6 +14,7 @@ import { EstimateTxFeesBatch, FeeMargins, GetFeeMargins, + IsContractAddress, } from "./chain"; import { Signer, @@ -142,7 +143,8 @@ export type Web3Helper = BaseWeb3Helper & XpNft: string; XpNft1155: string; } & WhitelistCheck & - GetFeeMargins; + GetFeeMargins & + IsContractAddress; /** * Create an object implementing minimal utilities for a web3 chain @@ -418,6 +420,10 @@ export async function web3HelperFactory( isApprovedForMinter, preTransfer: (s, id, _fee) => approveForMinter(id, s), extractAction, + async isContractAddress(address) { + const code = await provider.getCode(address); + return code !== "0x"; + }, getNonce: () => params.nonce, async preTransferRawTxn(id, address, _value) { const isApproved = await isApprovedForMinter( From 35168f99e15af4a6c46a55132e75875290c7bd3b Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 4 Aug 2022 17:58:29 +0530 Subject: [PATCH 610/956] factory: mainnet: insert dfinity contracts --- src/factory/factories.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 17faa7296..077274e3d 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -111,9 +111,7 @@ export namespace ChainFactoryConfigs { feeMargin, }, dfinityParams: { - agent: new HttpAgent({ - host: "https://nodes.xp.network/dfinity/", - }), + agent: new HttpAgent(), bridgeContract: Principal.fromText("renrk-eyaaa-aaaaa-aaada-cai"), xpnftId: Principal.fromText("qoctq-giaaa-aaaaa-aaaea-cai"), notifier, @@ -347,6 +345,14 @@ export namespace ChainFactoryConfigs { nonce: Chain.ELROND, feeMargin, }, + dfinityParams: { + agent: new HttpAgent(), + bridgeContract: Principal.fromText("e3io4-qaaaa-aaaak-qasua-cai"), + xpnftId: Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), + umt: Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), + notifier, + feeMargin, + }, vechainParams: { notifier, feeMargin, From 7594aaf0d179927aa89f8660e0c544f40fbeaa70 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 4 Aug 2022 20:29:30 +0530 Subject: [PATCH 611/956] factory: helper: fix dfinity --- package.json | 1 + src/factory/factories.ts | 13 +- src/helpers/dfinity.ts | 54 +++++- yarn.lock | 394 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 451 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index f00f5591f..ee1f30d44 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "dependencies": { "@dfinity/agent": "^0.11.3", "@dfinity/candid": "^0.11.3", + "@dfinity/identity": "^0.12.2", "@dfinity/nns": "^0.5.0", "@dfinity/principal": "^0.11.3", "@elrondnetwork/erdjs": "9.0.3", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 077274e3d..ae9d9b86e 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -111,9 +111,12 @@ export namespace ChainFactoryConfigs { feeMargin, }, dfinityParams: { - agent: new HttpAgent(), - bridgeContract: Principal.fromText("renrk-eyaaa-aaaaa-aaada-cai"), - xpnftId: Principal.fromText("qoctq-giaaa-aaaaa-aaaea-cai"), + agent: new HttpAgent({ + host: "https://ic0.app", + }), + bridgeContract: Principal.fromText("e3io4-qaaaa-aaaak-qasua-cai"), + xpnftId: Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), + umt: Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), notifier, feeMargin, }, @@ -348,8 +351,8 @@ export namespace ChainFactoryConfigs { dfinityParams: { agent: new HttpAgent(), bridgeContract: Principal.fromText("e3io4-qaaaa-aaaak-qasua-cai"), - xpnftId: Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), - umt: Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), + xpnftId: Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), + umt: Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), notifier, feeMargin, }, diff --git a/src/helpers/dfinity.ts b/src/helpers/dfinity.ts index f0779ddc4..79fe8b3ec 100644 --- a/src/helpers/dfinity.ts +++ b/src/helpers/dfinity.ts @@ -1,4 +1,11 @@ -import { HttpAgent, Identity, polling, RequestId } from "@dfinity/agent"; +import { + HttpAgent, + Identity, + polling, + RequestId, + SubmitResponse, +} from "@dfinity/agent"; +import { IDL } from "@dfinity/candid"; import { decode, encode, @@ -24,6 +31,7 @@ import { EstimateTxFees, FeeMargins, GetFeeMargins, + MintNft, PreTransfer, TransferNftForeign, UnfreezeForeignNft, @@ -37,6 +45,26 @@ export type DfinityNft = { tokenId: string; }; +export type DfinityMintArgs = { + canisterId?: string; + uri: string; +}; + +const User = IDL.Variant({ + principal: IDL.Principal, + address: IDL.Text, +}); +export type User = { principal: Principal } | { address: AccountIdentifier }; +export interface MintRequest { + to: User; + metadata: [] | [Array]; +} + +const MintRequest = IDL.Record({ + to: User, + metadata: IDL.Opt(IDL.Vec(IDL.Nat8)), +}); + const ApproveRequest = Record({ token: Text, subaccount: Opt(Vec(Nat8)), @@ -53,7 +81,8 @@ export type DfinityHelper = ChainNonceGet & "preTransfer" > & BalanceCheck & - GetFeeMargins; + GetFeeMargins & + MintNft; export type DfinityParams = { agent: HttpAgent; @@ -61,6 +90,7 @@ export type DfinityParams = { xpnftId: Principal; notifier: EvNotifier; feeMargin: FeeMargins; + umt: Principal; }; export async function dfinityHelper( @@ -141,6 +171,26 @@ export async function dfinityHelper( return Buffer.from(freezeCall.requestId).toString("hex"); }, + async mintNft(owner, options) { + const canister = Principal.fromText( + options.canisterId ? options.canisterId : args.umt.toText() + ); + let mint = await args.agent.call(canister, { + methodName: "mintNFT", + arg: encode( + [MintRequest], + [ + { + metadata: [[...Buffer.from(options.uri)]], + to: { + principal: owner.getPrincipal(), + }, + } as MintRequest, + ] + ), + }); + return mint; + }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { args.agent.replaceIdentity(sender); diff --git a/yarn.lock b/yarn.lock index 03d1130c3..64fd9ff34 100644 --- a/yarn.lock +++ b/yarn.lock @@ -60,6 +60,13 @@ dependencies: bn.js "^5.2.0" +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + "@dfinity/agent@^0.11.3": version "0.11.3" resolved "https://registry.yarnpkg.com/@dfinity/agent/-/agent-0.11.3.tgz#3363b1dbaa10a6e5cfe25e269316e2416fd3d11d" @@ -76,6 +83,19 @@ resolved "https://registry.yarnpkg.com/@dfinity/candid/-/candid-0.11.3.tgz#aed66124751545522acf9bde7cdc22b5d9ce31df" integrity sha512-xX7xNj2lLt7SIlvy0sqNp4fpcTD/xnwEu9APj0tnIF64cnsxIiS12T1Z8jl9g80jCQ1CbRPQf4cfsOfS3Cd2OA== +"@dfinity/identity@^0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@dfinity/identity/-/identity-0.12.2.tgz#297a15cf73ffe29c9334d32946738e8b0a53837e" + integrity sha512-JebcS29x3nsUK+qdF0FNSnx4IQ1xYiFB9mHpbGT3/MFe52s40DxL4CvsaZ8zAjDnusQnTJLzqLWGM7oo0QqwyQ== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + borc "^2.1.1" + js-sha256 "^0.9.0" + secp256k1 "^4.0.2" + ts-node "^10.8.2" + tweetnacl "^1.0.1" + vitest "^0.18.0" + "@dfinity/nns@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@dfinity/nns/-/nns-0.5.0.tgz#f34244c9b79597edd78bfb8793cca7ac9771c38d" @@ -144,6 +164,11 @@ flow-copy-source "^2.0.9" flow-typed "^3.2.1" +"@esbuild/linux-loong64@0.14.53": + version "0.14.53" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.53.tgz#251b4cd6760fadb4d68a05815e6dc5e432d69cd6" + integrity sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg== + "@eslint/eslintrc@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" @@ -981,6 +1006,24 @@ dependencies: browser-headers "^0.4.1" +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@json-rpc-tools/types@^1.7.6": version "1.7.6" resolved "https://registry.yarnpkg.com/@json-rpc-tools/types/-/types-1.7.6.tgz#5abd5fde01364a130c46093b501715bcce5bdc0e" @@ -1288,7 +1331,7 @@ dependencies: tslib "^2.0.0" -"@peculiar/webcrypto@^1.0.22": +"@peculiar/webcrypto@^1.0.22", "@peculiar/webcrypto@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.0.tgz#f941bd95285a0f8a3d2af39ccda5197b80cd32bf" integrity sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg== @@ -1716,6 +1759,26 @@ elliptic "^6.5.4" typedarray-to-buffer "^4.0.0" +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + "@types/axios@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@types/axios/-/axios-0.14.0.tgz#ec2300fbe7d7dddd7eb9d3abf87999964cafce46" @@ -1747,6 +1810,18 @@ "@types/node" "*" "@types/responselike" "*" +"@types/chai-subset@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" + integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.1.tgz#e2c6e73e0bdeb2521d00756d099218e9f5d90a04" + integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ== + "@types/connect@^3.4.33": version "3.4.35" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" @@ -2166,11 +2241,21 @@ acorn-jsx@^5.3.1: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.4.1: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" @@ -2271,6 +2356,11 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -2354,6 +2444,11 @@ assert@^2.0.0: object-is "^1.0.1" util "^0.12.0" +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -2872,6 +2967,19 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== +chai@^4.3.6: + version "4.3.6" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" + integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + loupe "^2.3.1" + pathval "^1.1.1" + type-detect "^4.0.5" + chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2902,6 +3010,11 @@ charenc@0.0.2: resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== + check-more-types@2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" @@ -3160,6 +3273,11 @@ create-hmac@1.1.7, create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" @@ -3248,7 +3366,7 @@ debug@4.3.2: dependencies: ms "2.1.2" -debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1, debug@~4.3.2: +debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -3286,6 +3404,13 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -3372,6 +3497,11 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -3586,6 +3716,133 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: d "^1.0.1" ext "^1.1.2" +esbuild-android-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.53.tgz#259bc3ef1399a3cad8f4f67c40ee20779c4de675" + integrity sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA== + +esbuild-android-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.53.tgz#2158253d4e8f9fdd2a081bbb4f73b8806178841e" + integrity sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A== + +esbuild-darwin-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.53.tgz#b4681831fd8f8d06feb5048acbe90d742074cc2a" + integrity sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg== + +esbuild-darwin-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.53.tgz#d267d957852d121b261b3f76ead86e5b5463acc9" + integrity sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA== + +esbuild-freebsd-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.53.tgz#aca2af6d72b537fe66a38eb8f374fb66d4c98ca0" + integrity sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w== + +esbuild-freebsd-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.53.tgz#76282e19312d914c34343c8a7da6cc5f051580b9" + integrity sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ== + +esbuild-linux-32@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.53.tgz#1045d34cf7c5faaf2af3b29cc1573b06580c37e5" + integrity sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg== + +esbuild-linux-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.53.tgz#ab3f2ee2ebb5a6930c72d9539cb34b428808cbe4" + integrity sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ== + +esbuild-linux-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.53.tgz#1f5530412f6690949e78297122350488d3266cfe" + integrity sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw== + +esbuild-linux-arm@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.53.tgz#a44ec9b5b42007ab6c0d65a224ccc6bbd97c54cf" + integrity sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA== + +esbuild-linux-mips64le@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.53.tgz#a4d0b6b17cfdeea4e41b0b085a5f73d99311be9f" + integrity sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ== + +esbuild-linux-ppc64le@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.53.tgz#8c331822c85465434e086e3e6065863770c38139" + integrity sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA== + +esbuild-linux-riscv64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.53.tgz#36fd75543401304bea8a2d63bf8ea18aaa508e00" + integrity sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ== + +esbuild-linux-s390x@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.53.tgz#1622677ab6824123f48f75d3afc031cd41936129" + integrity sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg== + +esbuild-netbsd-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.53.tgz#e86d0efd0116658be335492ed12e66b26b4baf52" + integrity sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ== + +esbuild-openbsd-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.53.tgz#9bcbbe6f86304872c6e91f64c8eb73fc29c3588b" + integrity sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ== + +esbuild-sunos-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.53.tgz#f7a872f7460bfb7b131f7188a95fbce3d1c577e8" + integrity sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g== + +esbuild-windows-32@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.53.tgz#c5e3ca50e2d1439cc2c9fe4defa63bcd474ce709" + integrity sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg== + +esbuild-windows-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.53.tgz#ec2ab4a60c5215f092ffe1eab6d01319e88238af" + integrity sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ== + +esbuild-windows-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.53.tgz#f71d403806bdf9f4a1f9d097db9aec949bd675c8" + integrity sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ== + +esbuild@^0.14.47: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.53.tgz#20b1007f686e8584f2a01a1bec5a37aac9498ce4" + integrity sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw== + optionalDependencies: + "@esbuild/linux-loong64" "0.14.53" + esbuild-android-64 "0.14.53" + esbuild-android-arm64 "0.14.53" + esbuild-darwin-64 "0.14.53" + esbuild-darwin-arm64 "0.14.53" + esbuild-freebsd-64 "0.14.53" + esbuild-freebsd-arm64 "0.14.53" + esbuild-linux-32 "0.14.53" + esbuild-linux-64 "0.14.53" + esbuild-linux-arm "0.14.53" + esbuild-linux-arm64 "0.14.53" + esbuild-linux-mips64le "0.14.53" + esbuild-linux-ppc64le "0.14.53" + esbuild-linux-riscv64 "0.14.53" + esbuild-linux-s390x "0.14.53" + esbuild-netbsd-64 "0.14.53" + esbuild-openbsd-64 "0.14.53" + esbuild-sunos-64 "0.14.53" + esbuild-windows-32 "0.14.53" + esbuild-windows-64 "0.14.53" + esbuild-windows-arm64 "0.14.53" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -4339,6 +4596,11 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== + get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" @@ -5244,6 +5506,11 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +local-pkg@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f" + integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg== + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -5290,6 +5557,13 @@ loose-envify@^1.0.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +loupe@^2.3.1: + version "2.3.4" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" + integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== + dependencies: + get-func-name "^2.0.0" + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -5326,6 +5600,11 @@ lunr@^2.3.9: resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + map-stream@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" @@ -5613,6 +5892,11 @@ nanoassert@^1.0.0: resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" integrity sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ== +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + napi-build-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" @@ -5944,6 +6228,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + pause-stream@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" @@ -5972,6 +6261,11 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" @@ -5982,6 +6276,15 @@ platform@1.3.6: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== +postcss@^8.4.14: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prebuild-install@^6.0.0: version "6.1.4" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" @@ -6370,7 +6673,7 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.1.6: +resolve@^1.1.6, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -6420,6 +6723,13 @@ rlp@^2.0.0, rlp@^2.2.4: dependencies: bn.js "^5.2.0" +rollup@^2.75.6: + version "2.77.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.2.tgz#6b6075c55f9cc2040a5912e6e062151e42e2c4e3" + integrity sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g== + optionalDependencies: + fsevents "~2.3.2" + rpc-websockets@^7.5.0: version "7.5.0" resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.0.tgz#bbeb87572e66703ff151e50af1658f98098e2748" @@ -6717,6 +7027,11 @@ socket.io-parser@~4.2.0: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" @@ -7027,6 +7342,16 @@ tiny-secp256k1@^1.1.3: elliptic "^6.4.0" nan "^2.13.2" +tinypool@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.2.4.tgz#4d2598c4689d1a2ce267ddf3360a9c6b3925a20c" + integrity sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ== + +tinyspy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.0.tgz#0cb34587287b0432b33fe36a9bd945fe22b1eb89" + integrity sha512-FI5B2QdODQYDRjfuLF+OrJ8bjWRMCXokQPcwKm0W3IzcbUmBNv536cQc7eXGoAuXphZwgx1DFbqImwzz08Fnhw== + to-readable-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" @@ -7107,6 +7432,25 @@ tronweb@^4.1.0: semver "^5.6.0" validator "^13.7.0" +ts-node@^10.8.2: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -7131,7 +7475,7 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl@1.0.3, tweetnacl@^1.0.0, tweetnacl@^1.0.3: +tweetnacl@1.0.3, tweetnacl@^1.0.0, tweetnacl@^1.0.1, tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== @@ -7148,6 +7492,11 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -7347,6 +7696,11 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -7381,6 +7735,33 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +"vite@^2.9.12 || ^3.0.0-0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.4.tgz#c61688d6b97573e96cf5ac25f2d68597b5ce68e8" + integrity sha512-NU304nqnBeOx2MkQnskBQxVsa0pRAH5FphokTGmyy8M3oxbvw7qAXts2GORxs+h/2vKsD+osMhZ7An6yK6F1dA== + dependencies: + esbuild "^0.14.47" + postcss "^8.4.14" + resolve "^1.22.1" + rollup "^2.75.6" + optionalDependencies: + fsevents "~2.3.2" + +vitest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.18.1.tgz#33c5003fc8c4b296801897ae1a3f142f57015574" + integrity sha512-4F/1K/Vn4AvJwe7i2YblR02PT5vMKcw9KN4unDq2KD0YcSxX0B/6D6Qu9PJaXwVuxXMFTQ5ovd4+CQaW3bwofA== + dependencies: + "@types/chai" "^4.3.1" + "@types/chai-subset" "^1.3.3" + "@types/node" "*" + chai "^4.3.6" + debug "^4.3.4" + local-pkg "^0.4.2" + tinypool "^0.2.4" + tinyspy "^1.0.0" + vite "^2.9.12 || ^3.0.0-0" + vscode-oniguruma@^1.6.1: version "1.6.2" resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" @@ -7920,6 +8301,11 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From ec6049f2247262659e7eb96856e30e38ff462223 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sun, 7 Aug 2022 20:27:24 +0530 Subject: [PATCH 612/956] tezos: isApprovedForMinter: match evm api --- src/helpers/tezos.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 5fa421bf5..d296313ab 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -50,8 +50,8 @@ export type TezosHelper = TransferNftForeign< ChainNonceGet & Pick, "preTransfer"> & { isApprovedForMinter( - signer: TezosSigner, - nft: NftInfo + nft: NftInfo, + signer: TezosSigner ): Promise; } & { approveForMinter( @@ -141,8 +141,8 @@ export async function tezosHelperFactory({ } async function isApprovedForMinter( - sender: TezosSigner, - nft: NftInfo + nft: NftInfo, + sender: TezosSigner ) { const owner = await getAddress(sender); const contract = await Tezos.contract.at(nft.native.contract); @@ -170,7 +170,7 @@ export async function tezosHelperFactory({ } async function preTransfer(signer: TezosSigner, nft: NftInfo) { - if (await isApprovedForMinter(signer, nft)) { + if (await isApprovedForMinter(nft, signer)) { return; } const owner = await getAddress(signer); From baa6255425a037f3865ff49e694d6e48a08399f7 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 8 Aug 2022 19:08:25 +0530 Subject: [PATCH 613/956] Update Hedera Contracts --- src/factory/factories.ts | 12 ++++++------ src/helpers/web3.ts | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index ae9d9b86e..3d9f46da7 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -255,14 +255,14 @@ export namespace ChainFactoryConfigs { }, hederaParams: { notifier, - provider: hethers.providers.getDefaultProvider("testnet"), + provider: hethers.getDefaultProvider("testnet"), feeMargin, nonce: Chain.HEDERA, - minter_addr: "0x0000000000000000000000000000000002d8b563", - erc1155Minter: "0x0000000000000000000000000000000002d8b535", - erc1155_addr: "0x0000000000000000000000000000000002d8b550", - erc721Minter: "0x0000000000000000000000000000000002d8b52a", - erc721_addr: "0x0000000000000000000000000000000002d8b542", + erc721_addr: "0x0000000000000000000000000000000002da3c22", + erc1155_addr: "0x0000000000000000000000000000000002da3c24", + minter_addr: "0x0000000000000000000000000000000002da3c27", + erc721Minter: "0x0000000000000000000000000000000002da3c1d", + erc1155Minter: "0x0000000000000000000000000000000002da3c20", }, skaleParams: { notifier, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 1fffc6a83..e6da05d0d 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -554,7 +554,7 @@ export async function web3HelperFactory( to, mintWith, { - value: isHedera ? "150" : EthBN.from(txFees.toString(10)), + value: EthBN.from(txFees.toString(10)), gasLimit, } ); From 678c88bbae92fdb082b2281de9e7163c1374b0ba Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 8 Aug 2022 19:31:28 +0530 Subject: [PATCH 614/956] Use IDL For Dfinity --- src/consts.ts | 6 +- src/factory/index.ts | 2 +- src/helpers/{ => dfinity}/dfinity.ts | 91 +++++++------- src/helpers/dfinity/idl.js | 169 ++++++++++++++++++++++++++ src/helpers/dfinity/minter.did.d.ts | 172 +++++++++++++++++++++++++++ 5 files changed, 389 insertions(+), 51 deletions(-) rename src/helpers/{ => dfinity}/dfinity.ts (77%) create mode 100644 src/helpers/dfinity/idl.js create mode 100644 src/helpers/dfinity/minter.did.d.ts diff --git a/src/consts.ts b/src/consts.ts index 8fd46ab84..1dc30cd04 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -20,7 +20,11 @@ import { } from "./helpers/secret"; import { solanaHelper, SolanaHelper, SolanaParams } from "./helpers/solana"; import { tonHelper, TonHelper, TonParams } from "./helpers/ton"; -import { dfinityHelper, DfinityHelper, DfinityParams } from "./helpers/dfinity"; +import { + dfinityHelper, + DfinityHelper, + DfinityParams, +} from "./helpers/dfinity/dfinity"; // All the supported testnet uri's are here. export enum TestNetRpcUri { diff --git a/src/factory/index.ts b/src/factory/index.ts index e69569962..2ffb53989 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -53,7 +53,7 @@ import { ParamMap, } from "../type-utils"; import { SecretParams } from "../helpers/secret"; -import { DfinityParams } from "../helpers/dfinity"; +import { DfinityParams } from "../helpers/dfinity/dfinity"; type FullChain = TransferNftForeign< Signer, diff --git a/src/helpers/dfinity.ts b/src/helpers/dfinity/dfinity.ts similarity index 77% rename from src/helpers/dfinity.ts rename to src/helpers/dfinity/dfinity.ts index 79fe8b3ec..14a6f7a6a 100644 --- a/src/helpers/dfinity.ts +++ b/src/helpers/dfinity/dfinity.ts @@ -1,8 +1,8 @@ import { + Actor, + ActorSubclass, HttpAgent, Identity, - polling, - RequestId, SubmitResponse, } from "@dfinity/agent"; import { IDL } from "@dfinity/candid"; @@ -11,7 +11,6 @@ import { encode, Nat, Nat32, - Nat64, Nat8, Opt, PrincipalClass, @@ -23,8 +22,8 @@ import { import { AccountIdentifier, ICP, LedgerCanister } from "@dfinity/nns"; import { Principal } from "@dfinity/principal"; import BigNumber from "bignumber.js"; -import { Chain } from "../consts"; -import { EvNotifier } from "../notifier"; +import { Chain } from "../../consts"; +import { EvNotifier } from "../../notifier"; import { BalanceCheck, ChainNonceGet, @@ -36,7 +35,10 @@ import { TransferNftForeign, UnfreezeForeignNft, ValidateAddress, -} from "./chain"; +} from "../chain"; +//@ts-ignore +import { idl } from "./idl.js"; +import { _SERVICE } from "./minter.did"; export type DfinitySigner = Identity; @@ -98,6 +100,11 @@ export async function dfinityHelper( ): Promise { const ledger = LedgerCanister.create({ agent: args.agent }); + const minter: ActorSubclass<_SERVICE> = Actor.createActor(idl, { + agent: args.agent, + canisterId: args.bridgeContract, + }); + async function transferTxFee(amt: BigNumber): Promise { return await ledger.transfer({ to: AccountIdentifier.fromPrincipal({ principal: args.bridgeContract }), @@ -121,17 +128,17 @@ export async function dfinityHelper( return Principal.fromUint8Array(array).toText(); }; - async function waitActionId(requestId: RequestId) { - const pollStrat = polling.defaultStrategy(); - const resp = await polling.pollForResponse( - args.agent, - args.bridgeContract, - requestId, - pollStrat - ); + // async function waitActionId(requestId: RequestId) { + // const pollStrat = polling.defaultStrategy(); + // const resp = await polling.pollForResponse( + // args.agent, + // args.bridgeContract, + // requestId, + // pollStrat + // ); - return decode([Nat], resp)[0].toString() as string; - } + // return decode([Nat], resp)[0].toString() as string; + // } return { XpNft: args.xpnftId.toString(), @@ -151,25 +158,18 @@ export async function dfinityHelper( const txFeeBlock = await transferTxFee(txFees); - const freezeCall = await args.agent.call(args.bridgeContract, { - methodName: "freeze_nft", - arg: encode( - [Nat64, new PrincipalClass(), Nat, Nat64, Text, Text], - [ - txFeeBlock, - Principal.fromText(id.native.canisterId), - BigInt(id.native.tokenId), - chain_nonce, - to, - mintWith, - ] - ), - }); + const actionId = await minter.freeze_nft( + txFeeBlock, + Principal.fromText(id.native.canisterId), + BigInt(id.native.tokenId), + BigInt(chain_nonce), + to, + mintWith + ); - const actionId = await waitActionId(freezeCall.requestId); - await args.notifier.notifyDfinity(actionId); + await args.notifier.notifyDfinity(actionId.toString()); - return Buffer.from(freezeCall.requestId).toString("hex"); + return "NO TX RESP YET"; }, async mintNft(owner, options) { const canister = Principal.fromText( @@ -196,24 +196,17 @@ export async function dfinityHelper( const txFeeBlock = await transferTxFee(txFees); - const withdrawCall = await args.agent.call(args.bridgeContract, { - methodName: "withdraw_nft", - arg: encode( - [Nat64, new PrincipalClass(), Nat, Nat64, Text], - [ - txFeeBlock, - Principal.fromText(id.native.canisterId), - BigInt(id.native.tokenId), - nonce, - to, - ] - ), - }); + const actionId = await minter.withdraw_nft( + txFeeBlock, + Principal.fromText(id.native.canisterId), + BigInt(id.native.tokenId), + BigInt(nonce), + to + ); - const actionId = await waitActionId(withdrawCall.requestId); - await args.notifier.notifyDfinity(actionId); + await args.notifier.notifyDfinity(actionId.toString()); - return Buffer.from(withdrawCall.requestId).toString("hex"); + return "NO TX RESP YET"; }, async preTransfer(sender, nft) { args.agent.replaceIdentity(sender); diff --git a/src/helpers/dfinity/idl.js b/src/helpers/dfinity/idl.js new file mode 100644 index 000000000..fe2a3e7fc --- /dev/null +++ b/src/helpers/dfinity/idl.js @@ -0,0 +1,169 @@ +export const idlFactory = ({ IDL }) => { + const ValidateWhitelistDip721 = IDL.Record({ + dip_contract: IDL.Principal, + }); + const ValidateCleanLogs = IDL.Record({ + from_action: IDL.Nat, + to_action: IDL.Nat, + }); + const ValidateTransferNft = IDL.Record({ + to: IDL.Principal, + mint_with: IDL.Principal, + token_url: IDL.Text, + }); + const ValidateTransferNftBatch = IDL.Record({ + to: IDL.Principal, + mint_with: IDL.Vec(IDL.Principal), + token_urls: IDL.Vec(IDL.Text), + }); + const ValidateUnfreezeNft = IDL.Record({ + to: IDL.Principal, + dip_contract: IDL.Principal, + token_id: IDL.Nat, + }); + const ValidateUnfreezeNftBatch = IDL.Record({ + to: IDL.Principal, + dip_contracts: IDL.Vec(IDL.Principal), + token_ids: IDL.Vec(IDL.Nat), + }); + const Config = IDL.Record({ + event_cnt: IDL.Nat, + chain_nonce: IDL.Nat64, + group_key: IDL.Vec(IDL.Nat8), + paused: IDL.Bool, + }); + const BridgeEventCtx = IDL.Record({ + to: IDL.Text, + action_id: IDL.Nat, + tx_fee: IDL.Nat64, + chain_nonce: IDL.Nat64, + }); + const UnfreezeNftBatch = IDL.Record({ + uris: IDL.Vec(IDL.Text), + token_ids: IDL.Vec(IDL.Nat), + burner: IDL.Principal, + }); + const UnfreezeNft = IDL.Record({ + uri: IDL.Text, + token_id: IDL.Nat, + burner: IDL.Principal, + }); + const TransferNft = IDL.Record({ + dip721_contract: IDL.Principal, + token_id: IDL.Nat, + mint_with: IDL.Text, + token_data: IDL.Text, + }); + const TransferNftBatch = IDL.Record({ + dip721_contract: IDL.Principal, + token_datas: IDL.Vec(IDL.Text), + mint_with: IDL.Text, + token_ids: IDL.Vec(IDL.Nat), + }); + const BridgeEvent = IDL.Variant({ + UnfreezeNftBatch: UnfreezeNftBatch, + UnfreezeNft: UnfreezeNft, + TransferNft: TransferNft, + TransferNftBatch: TransferNftBatch, + }); + const ValidateSetGroupKey = IDL.Record({ group_key: IDL.Vec(IDL.Nat8) }); + const ValidateSetPause = IDL.Record({ pause: IDL.Bool }); + const ValidateWithdrawFees = IDL.Record({ to: IDL.Principal }); + return IDL.Service({ + add_whitelist: IDL.Func( + [IDL.Nat, ValidateWhitelistDip721, IDL.Vec(IDL.Nat8)], + [], + [] + ), + clean_logs: IDL.Func( + [IDL.Nat, ValidateCleanLogs, IDL.Vec(IDL.Nat8)], + [], + [] + ), + encode_validate_transfer_nft: IDL.Func( + [IDL.Nat, ValidateTransferNft], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_transfer_nft_batch: IDL.Func( + [IDL.Nat, ValidateTransferNftBatch], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_unfreeze_nft: IDL.Func( + [IDL.Nat, ValidateUnfreezeNft], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_unfreeze_nft_batch: IDL.Func( + [IDL.Nat, ValidateUnfreezeNftBatch], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + freeze_nft: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text, IDL.Text], + [IDL.Nat], + [] + ), + freeze_nft_batch: IDL.Func( + [ + IDL.Nat64, + IDL.Principal, + IDL.Vec(IDL.Nat), + IDL.Nat64, + IDL.Text, + IDL.Text, + ], + [IDL.Nat], + [] + ), + get_config: IDL.Func([], [Config], ["query"]), + get_event: IDL.Func( + [IDL.Nat], + [IDL.Opt(IDL.Tuple(BridgeEventCtx, BridgeEvent))], + ["query"] + ), + is_whitelisted: IDL.Func([IDL.Principal], [IDL.Bool], ["query"]), + set_group_key: IDL.Func( + [IDL.Nat, ValidateSetGroupKey, IDL.Vec(IDL.Nat8)], + [], + [] + ), + set_pause: IDL.Func([IDL.Nat, ValidateSetPause, IDL.Vec(IDL.Nat8)], [], []), + validate_transfer_nft: IDL.Func( + [IDL.Nat, ValidateTransferNft, IDL.Vec(IDL.Nat8)], + [IDL.Nat32], + [] + ), + validate_transfer_nft_batch: IDL.Func( + [IDL.Nat, ValidateTransferNftBatch, IDL.Vec(IDL.Nat8)], + [], + [] + ), + validate_unfreeze_nft: IDL.Func( + [IDL.Nat, ValidateUnfreezeNft, IDL.Vec(IDL.Nat8)], + [], + [] + ), + validate_unfreeze_nft_batch: IDL.Func( + [IDL.Nat, ValidateUnfreezeNftBatch, IDL.Vec(IDL.Nat8)], + [], + [] + ), + withdraw_fees: IDL.Func( + [IDL.Nat, ValidateWithdrawFees, IDL.Vec(IDL.Nat8)], + [IDL.Nat64], + [] + ), + withdraw_nft: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text], + [IDL.Nat], + [] + ), + withdraw_nft_batch: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Vec(IDL.Nat), IDL.Nat64, IDL.Text], + [IDL.Nat], + [] + ), + }); +}; diff --git a/src/helpers/dfinity/minter.did.d.ts b/src/helpers/dfinity/minter.did.d.ts new file mode 100644 index 000000000..d5bfeeb4b --- /dev/null +++ b/src/helpers/dfinity/minter.did.d.ts @@ -0,0 +1,172 @@ +import type { Principal } from "@dfinity/principal"; +export type BridgeEvent = + | { UnfreezeNftBatch: UnfreezeNftBatch } + | { UnfreezeNft: UnfreezeNft } + | { TransferNft: TransferNft } + | { TransferNftBatch: TransferNftBatch }; +export interface BridgeEventCtx { + to: string; + action_id: bigint; + tx_fee: bigint; + chain_nonce: bigint; +} +export interface Config { + event_cnt: bigint; + chain_nonce: bigint; + group_key: Array; + paused: boolean; +} +export interface TransferNft { + dip721_contract: Principal; + token_id: bigint; + mint_with: string; + token_data: string; +} +export interface TransferNftBatch { + dip721_contract: Principal; + token_datas: Array; + mint_with: string; + token_ids: Array; +} +export interface UnfreezeNft { + uri: string; + token_id: bigint; + burner: Principal; +} +export interface UnfreezeNftBatch { + uris: Array; + token_ids: Array; + burner: Principal; +} +export interface ValidateCleanLogs { + from_action: bigint; + to_action: bigint; +} +export interface ValidateSetGroupKey { + group_key: Array; +} +export interface ValidateSetPause { + pause: boolean; +} +export interface ValidateTransferNft { + to: Principal; + mint_with: Principal; + token_url: string; +} +export interface ValidateTransferNftBatch { + to: Principal; + mint_with: Array; + token_urls: Array; +} +export interface ValidateUnfreezeNft { + to: Principal; + dip_contract: Principal; + token_id: bigint; +} +export interface ValidateUnfreezeNftBatch { + to: Principal; + dip_contracts: Array; + token_ids: Array; +} +export interface ValidateWhitelistDip721 { + dip_contract: Principal; +} +export interface ValidateWithdrawFees { + to: Principal; +} +export interface _SERVICE { + add_whitelist: ( + arg_0: bigint, + arg_1: ValidateWhitelistDip721, + arg_2: Array + ) => Promise; + clean_logs: ( + arg_0: bigint, + arg_1: ValidateCleanLogs, + arg_2: Array + ) => Promise; + encode_validate_transfer_nft: ( + arg_0: bigint, + arg_1: ValidateTransferNft + ) => Promise>; + encode_validate_transfer_nft_batch: ( + arg_0: bigint, + arg_1: ValidateTransferNftBatch + ) => Promise>; + encode_validate_unfreeze_nft: ( + arg_0: bigint, + arg_1: ValidateUnfreezeNft + ) => Promise>; + encode_validate_unfreeze_nft_batch: ( + arg_0: bigint, + arg_1: ValidateUnfreezeNftBatch + ) => Promise>; + freeze_nft: ( + arg_0: bigint, + arg_1: Principal, + arg_2: bigint, + arg_3: bigint, + arg_4: string, + arg_5: string + ) => Promise; + freeze_nft_batch: ( + arg_0: bigint, + arg_1: Principal, + arg_2: Array, + arg_3: bigint, + arg_4: string, + arg_5: string + ) => Promise; + get_config: () => Promise; + get_event: (arg_0: bigint) => Promise<[] | [[BridgeEventCtx, BridgeEvent]]>; + is_whitelisted: (arg_0: Principal) => Promise; + set_group_key: ( + arg_0: bigint, + arg_1: ValidateSetGroupKey, + arg_2: Array + ) => Promise; + set_pause: ( + arg_0: bigint, + arg_1: ValidateSetPause, + arg_2: Array + ) => Promise; + validate_transfer_nft: ( + arg_0: bigint, + arg_1: ValidateTransferNft, + arg_2: Array + ) => Promise; + validate_transfer_nft_batch: ( + arg_0: bigint, + arg_1: ValidateTransferNftBatch, + arg_2: Array + ) => Promise; + validate_unfreeze_nft: ( + arg_0: bigint, + arg_1: ValidateUnfreezeNft, + arg_2: Array + ) => Promise; + validate_unfreeze_nft_batch: ( + arg_0: bigint, + arg_1: ValidateUnfreezeNftBatch, + arg_2: Array + ) => Promise; + withdraw_fees: ( + arg_0: bigint, + arg_1: ValidateWithdrawFees, + arg_2: Array + ) => Promise; + withdraw_nft: ( + arg_0: bigint, + arg_1: Principal, + arg_2: bigint, + arg_3: bigint, + arg_4: string + ) => Promise; + withdraw_nft_batch: ( + arg_0: bigint, + arg_1: Principal, + arg_2: Array, + arg_3: bigint, + arg_4: string + ) => Promise; +} From 2c5b323cc036be7dd674479bd390f30da2beff4e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 8 Aug 2022 20:41:25 +0530 Subject: [PATCH 615/956] Dfinity: Fix IDL Extension --- src/helpers/dfinity/dfinity.ts | 5 ++--- src/helpers/dfinity/{idl.js => idl.ts} | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) rename src/helpers/dfinity/{idl.js => idl.ts} (98%) diff --git a/src/helpers/dfinity/dfinity.ts b/src/helpers/dfinity/dfinity.ts index 14a6f7a6a..e45ac7db3 100644 --- a/src/helpers/dfinity/dfinity.ts +++ b/src/helpers/dfinity/dfinity.ts @@ -36,8 +36,7 @@ import { UnfreezeForeignNft, ValidateAddress, } from "../chain"; -//@ts-ignore -import { idl } from "./idl.js"; +import { idlFactory } from "./idl"; import { _SERVICE } from "./minter.did"; export type DfinitySigner = Identity; @@ -100,7 +99,7 @@ export async function dfinityHelper( ): Promise { const ledger = LedgerCanister.create({ agent: args.agent }); - const minter: ActorSubclass<_SERVICE> = Actor.createActor(idl, { + const minter: ActorSubclass<_SERVICE> = Actor.createActor(idlFactory, { agent: args.agent, canisterId: args.bridgeContract, }); diff --git a/src/helpers/dfinity/idl.js b/src/helpers/dfinity/idl.ts similarity index 98% rename from src/helpers/dfinity/idl.js rename to src/helpers/dfinity/idl.ts index fe2a3e7fc..b55c09e5f 100644 --- a/src/helpers/dfinity/idl.js +++ b/src/helpers/dfinity/idl.ts @@ -1,4 +1,4 @@ -export const idlFactory = ({ IDL }) => { +export const idlFactory = ({ IDL }: { IDL: any }) => { const ValidateWhitelistDip721 = IDL.Record({ dip_contract: IDL.Principal, }); From 42aad73ed92fdbcc037d3fbe0484632da632ed2a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 9 Aug 2022 21:55:31 +0530 Subject: [PATCH 616/956] Dfinity: Fix Transfer Fee --- src/helpers/dfinity/dfinity.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/helpers/dfinity/dfinity.ts b/src/helpers/dfinity/dfinity.ts index e45ac7db3..a4ae72bf3 100644 --- a/src/helpers/dfinity/dfinity.ts +++ b/src/helpers/dfinity/dfinity.ts @@ -106,8 +106,10 @@ export async function dfinityHelper( async function transferTxFee(amt: BigNumber): Promise { return await ledger.transfer({ - to: AccountIdentifier.fromPrincipal({ principal: args.bridgeContract }), - amount: ICP.fromString(amt.toFixed()) as ICP, + to: AccountIdentifier.fromPrincipal({ + principal: args.bridgeContract, + }), + amount: ICP.fromE8s(BigInt(amt.toString())), }); } const to32bits = (num: number) => { From 57cbc114ffe129e296071349d393a2c16c344833 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 10 Aug 2022 16:38:42 +0530 Subject: [PATCH 617/956] Factory: Add SFT Transfer --- src/factory/index.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 2ffb53989..8701767ef 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -124,6 +124,17 @@ export type ChainFactory = { fee?: BigNumber.Value, mintWith?: string ): Promise; + + transferSft( + fromChain: FullChainBatch, + toChain: FullChainBatch, + nft: NftInfo, + sender: SignerF, + receiver: string, + amt: bigint, + fee?: BigNumber.Value, + mintWith?: string + ): Promise; /** * Mints an NFT on the chain. * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. @@ -583,6 +594,19 @@ export function ChainFactory( return await Promise.all(result); }, estimateBatchFees, + async transferSft(from, to, nft, sender, receiver, amt, fee?, mintWith?) { + let transfers = Array(parseInt(amt.toString())).fill(nft); + const response = this.transferBatchNft( + from, + to, + transfers, + sender, + receiver, + fee, + mintWith + ); + return response; + }, async getDestinationTransaction( chain: ExtractAction & ExtractTxnStatus, targetNonce: number, From 8e76bef4f6ce77035b8ed87259a92529838714f5 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 10 Aug 2022 17:41:07 +0530 Subject: [PATCH 618/956] Fix Derp in Batch Transfer --- src/factory/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 8701767ef..d98eecc52 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -570,7 +570,7 @@ export function ChainFactory( } }) ); - wrapped.length && + unwrapped.length && result.push( from.transferNftBatchToForeign( signer, @@ -581,7 +581,7 @@ export function ChainFactory( new BigNumber(fee) ) ); - unwrapped.length && + wrapped.length && result.push( from.unfreezeWrappedNftBatch( signer, From 0e7ff8b273a6ee27bacc6f3204880140228d8b84 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 10 Aug 2022 17:44:46 +0530 Subject: [PATCH 619/956] transfer sft: reduce fee by 5 times --- src/factory/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d98eecc52..5316bcc39 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -596,13 +596,16 @@ export function ChainFactory( estimateBatchFees, async transferSft(from, to, nft, sender, receiver, amt, fee?, mintWith?) { let transfers = Array(parseInt(amt.toString())).fill(nft); + if (!fee) { + fee = await estimateBatchFees(from, to, transfers, receiver); + } const response = this.transferBatchNft( from, to, transfers, sender, receiver, - fee, + new BigNumber(fee!).div(5), mintWith ); return response; From 2d3b273814586103e0267d44122adb9724008324 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 10 Aug 2022 18:09:14 +0530 Subject: [PATCH 620/956] transfer sft: convert the fee to fixed --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 5316bcc39..0a7a6cc51 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -605,7 +605,7 @@ export function ChainFactory( transfers, sender, receiver, - new BigNumber(fee!).div(5), + new BigNumber(fee!).dividedToIntegerBy(5), mintWith ); return response; From ce242281bfbb3b45d11edc31810491fb56d20f27 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 10 Aug 2022 20:15:55 +0530 Subject: [PATCH 621/956] web3: only push customData when hedera --- src/helpers/web3.ts | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index e6da05d0d..5fa0c8fe9 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -94,6 +94,8 @@ hethers.providers.BaseProvider.prototype.getGasPrice = async () => { return EthBN.from("1"); }; +type NullableCustomData = Record | undefined; + /** * Base util traits */ @@ -214,13 +216,15 @@ type NftMethodVal = { umt: T, sender: string, minterAddr: string, - tok: string + tok: string, + customData: NullableCustomData ) => Promise; approve: ( umt: T, forAddr: string, tok: string, - txnUp: (tx: PopulatedTransaction) => Promise + txnUp: (tx: PopulatedTransaction) => Promise, + customData: NullableCustomData ) => Promise; }; @@ -236,24 +240,31 @@ export const NFT_METHOD_MAP: NftMethodMap = { freeze: "freezeErc1155", validateUnfreeze: "validateUnfreezeErc1155", umt: Erc1155Minter__factory, - approved: (umt: Erc1155Minter, sender: string, minterAddr: string) => { + approved: ( + umt: Erc1155Minter, + sender: string, + minterAddr: string, + _tok: string, + customData: NullableCustomData + ) => { return umt.isApprovedForAll(sender, minterAddr, { gasLimit: "1000000", - customData: {}, + customData, }); }, approve: async ( umt: Erc1155Minter, forAddr: string, _tok: string, - txnUp: (tx: PopulatedTransaction) => Promise + txnUp: (tx: PopulatedTransaction) => Promise, + customData: NullableCustomData ) => { const tx = await umt.populateTransaction.setApprovalForAll( forAddr, true, { gasLimit: "1000000", - customData: {}, + customData, } ); await txnUp(tx); @@ -268,13 +279,14 @@ export const NFT_METHOD_MAP: NftMethodMap = { umt: UserNftMinter, _: string, minterAddr: string, - tok: string + tok: string, + customData: NullableCustomData ) => { return ( ( await umt.getApproved(tok, { gasLimit: "1000000", - customData: {}, + customData, //@ts-ignore }) ).toLowerCase() == minterAddr.toLowerCase() @@ -378,7 +390,8 @@ export async function web3HelperFactory( erc as any, await signer.getAddress(), minter_addr, - id.native.tokenId + id.native.tokenId, + params.nonce === 0x1d ? {} : undefined ); }; @@ -396,7 +409,8 @@ export async function web3HelperFactory( erc as any, minter_addr, id.native.tokenId, - txnUnderpricedPolyWorkaround + txnUnderpricedPolyWorkaround, + params.nonce === 0x1d ? {} : undefined ); await receipt.wait(); return receipt.hash; From 0a3c7f13c0d604f33db6576ada45509db87447bb Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 11 Aug 2022 15:12:45 +0530 Subject: [PATCH 622/956] batch transfer: use xpnft1155 for minting --- src/factory/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 0a7a6cc51..38d6beb0a 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -555,6 +555,7 @@ export function ChainFactory( if (!(await to.validateAddress(receiver))) { throw Error("invalid address"); } + console.log(`Batch Minting With: ${mw || to.XpNft1155!}`); const wrapped: NftInfo[] = []; const unwrapped: NftInfo[] = []; await Promise.all( @@ -577,7 +578,7 @@ export function ChainFactory( to.getNonce(), receiver, unwrapped, - mw || to.XpNft || "", + mw || to.XpNft1155!, new BigNumber(fee) ) ); From 60e8d6899f3c5dd80f120cdc1bc6d21764ac88cf Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 11 Aug 2022 18:19:38 +0530 Subject: [PATCH 623/956] Use Fee of a Single Transfer For SFT Fee --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 38d6beb0a..02f3d9dfd 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -598,7 +598,7 @@ export function ChainFactory( async transferSft(from, to, nft, sender, receiver, amt, fee?, mintWith?) { let transfers = Array(parseInt(amt.toString())).fill(nft); if (!fee) { - fee = await estimateBatchFees(from, to, transfers, receiver); + fee = await estimateFees(from, to, transfers[0], receiver); } const response = this.transferBatchNft( from, From 50dd2997691b39dbc7e996232d65e797b6593066 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 11 Aug 2022 19:49:06 +0530 Subject: [PATCH 624/956] Handlers: Secret: Pass VK To The Validator --- src/helpers/secret.ts | 6 ++++-- src/notifier/index.ts | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index e3e518599..719297866 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -23,6 +23,7 @@ export type SecretNftInfo = { contractHash: string; chainId: string; tokenId: string; + vk: string; }; export type SecretMintArgs = { url: string; @@ -201,6 +202,7 @@ export async function secretHelperFactory( contract: contractAddress, contractHash: codeHash || "", tokenId: token, + vk, }, }); }) @@ -241,7 +243,7 @@ export async function secretHelperFactory( { waitForCommit: true, gasLimit: 150_000 } ); - await p.notifier.notifySecret(tx.transactionHash); + await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); return tx; }, @@ -270,7 +272,7 @@ export async function secretHelperFactory( { waitForCommit: true, gasLimit: 100_000 } ); - await p.notifier.notifySecret(tx.transactionHash); + await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); return tx; }, diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 83ac195ad..170fd9cb6 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -63,8 +63,8 @@ export function evNotifier(url: string) { tx_hash: txHash, }); }, - async notifySecret(txHash: string) { - await api.post("/tx/scrt", { tx_hash: txHash }); + async notifySecret(txHash: string, vk: string) { + await api.post("/tx/scrt", { tx_hash: txHash, vk: vk }); }, async notifySolana(txHash: string) { await api.post("/tx/solana", { tx_hash: txHash }); From ca266e8ba52757b11013da2120a164d582ca29ee Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 11 Aug 2022 22:55:25 +0530 Subject: [PATCH 625/956] Factory: Mint Nft: Use Correct Mint Args for Each Chain --- src/factory/index.ts | 31 +--- src/helpers/elrond.ts | 20 +-- src/helpers/tezos.ts | 14 +- src/helpers/thor.ts | 355 ------------------------------------------ src/helpers/tron.ts | 9 +- src/helpers/web3.ts | 12 +- 6 files changed, 36 insertions(+), 405 deletions(-) delete mode 100644 src/helpers/thor.ts diff --git a/src/factory/index.ts b/src/factory/index.ts index 02f3d9dfd..d6c6ac981 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -141,11 +141,11 @@ export type ChainFactory = { * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar defi wallet. * @param args: {@link NftMintArgs} Arguments to mint the nft. Contract is must for web3 and tron. Identifier is must for elrond. */ - mint( - chain: MintNft, + mint( + chain: MintNft, owner: Signer, - args: NftMintArgs - ): Promise; + args: Args + ): Promise; /** * Lists all the NFTs on the chain owner by {@param owner}. * @param chain: {@link NftUriChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. @@ -747,11 +747,11 @@ export function ChainFactory( return res; } }, - mint: async ( - chain: MintNft, + mint: async ( + chain: MintNft, owner: Signer, - args: NftMintArgs - ): Promise => { + args: Args + ): Promise => { return await chain.mintNft(owner, args); }, waitAlgorandNft: async (origin, hash, claimer) => { @@ -780,21 +780,6 @@ export function ChainFactory( isWrappedNft, }; } -/** - * The interface that defines the arguments to mint an NFT. - * @property contract is the address of the smart contract that will mint the NFT and it is mandatory for WEB3 and Tron Chains. - * @property identifier is the identifier of the NFT to mint and it is mandatory for Elrond Chain. - */ -export interface NftMintArgs { - readonly contract?: string; - readonly uris: string[]; - readonly identifier?: string; - readonly quantity?: number | undefined; - readonly name?: string; - readonly royalties?: number | undefined; - readonly hash?: string | undefined; - readonly attrs: string | undefined; -} export * from "./factories"; export * from "./cons"; diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 0e937410f..37dfce152 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -53,7 +53,6 @@ import { PreTransferRawTxn, ValidateAddress, } from ".."; -import { NftMintArgs } from ".."; import { EvNotifier } from "../notifier"; type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; @@ -101,12 +100,12 @@ export type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; */ export type NftIssueArgs = { readonly identifier: string; - readonly quantity: number | undefined; - readonly name: string; - readonly royalties: number | undefined; - readonly hash: string | undefined; - readonly attrs: string | undefined; readonly uris: Array; + readonly name: string; + readonly quantity?: number; + readonly royalties?: number; + readonly hash?: string; + readonly attrs?: string; }; /** @@ -195,7 +194,7 @@ export type ElrondHelper = BalanceCheck & TransferNftForeignBatch & UnfreezeForeignNftBatch & IssueESDTNFT & - MintNft & { + MintNft & { mintableEsdts(address: Address): Promise; } & ChainNonceGet & ValidateAddress & @@ -660,11 +659,8 @@ export async function elrondHelperFactory( const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; return Buffer.from(tickerh, "hex").toString("utf-8"); }, - async mintNft(owner: ElrondSigner, args: NftMintArgs): Promise { - const txu = unsignedMintNftTxn( - await getAddress(owner), - args as NftIssueArgs - ); + async mintNft(owner: ElrondSigner, args: NftIssueArgs): Promise { + const txu = unsignedMintNftTxn(await getAddress(owner), args); const tx = await signAndSend(owner, txu); return tx.getHash().toString(); }, diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index d296313ab..f7e76ded0 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -5,7 +5,6 @@ import { EstimateTxFees, MintNft, NftInfo, - NftMintArgs, PreTransfer, TransferNftForeign, UnfreezeForeignNft, @@ -37,12 +36,19 @@ export type TezosNftInfo = { token_id: string; }; +type TezosMintArgs = { + identifier: string; + attrs: string; + contract: string; + uri: string; +}; + export type TezosHelper = TransferNftForeign< TezosSigner, TezosNftInfo, string > & - MintNft & + MintNft & BalanceCheck & UnfreezeForeignNft & ValidateAddress & @@ -227,13 +233,13 @@ export async function tezosHelperFactory({ notifyValidator(hash); return hash; }, - async mintNft(signer, { identifier, attrs, contract, uris }) { + async mintNft(signer, { identifier, attrs, contract, uri }) { return await withContract(signer, xpnftAddress, (xpnft) => xpnft.methods.mint({ token_id: identifier, address: contract, metadata: { - uri: uris[0], + uri: uri, attrs, }, amount: 1, diff --git a/src/helpers/thor.ts b/src/helpers/thor.ts deleted file mode 100644 index 79ca3336c..000000000 --- a/src/helpers/thor.ts +++ /dev/null @@ -1,355 +0,0 @@ -/** - * Web3 Implementation for cross chain traits - * @module - */ -import BigNumber from "bignumber.js"; -import { - UnfreezeForeignNft, - BalanceCheck, - TransferNftForeign, - MintNft, - GetProvider, -} from "./chain"; -import { - Signer, - Wallet, - ethers, - VoidSigner, - providers, - Contract, - ContractFactory, -} from "@vechain/ethers"; -import { Transaction } from "@vechain/ethers/utils"; -import { TransactionResponse, Provider } from "@vechain/ethers/providers"; -import { Minter__factory, UserNftMinter__factory } from "xpnet-web3-contracts"; -import { - ChainNonceGet, - EstimateTxFees, - ExtractAction, - ExtractTxnStatus, - NftInfo, - PreTransfer, - PreTransferRawTxn, - TransactionStatus, - ValidateAddress, - WhitelistCheck, -} from ".."; -import { NftMintArgs } from ".."; -import { BigNumber as EthBN } from "ethers"; -import { EvNotifier } from "../notifier"; - -/** - * Information required to perform NFT transfers in this chain - */ -export type EthNftInfo = { - chainId: string; - tokenId: string; - owner: string; - uri: string; - contract: string; -}; - -/** - * Arguments required for minting a new nft - * - * contract: address of the sc - * token: token ID of the newly minted nft - * owner: Owner of the newly minted nft - * uri: uri of the nft - */ -export type MintArgs = { - contract: string; - uri: string; -}; - -export interface IsApproved { - isApprovedForMinter( - address: NftInfo, - sender: Sender - ): Promise; -} - -export interface Approve { - approveForMinter( - address: NftInfo, - sender: Sender - ): Promise; -} - -/** - * Base util traits - */ -export type BaseWeb3Helper = BalanceCheck & - /** - * Mint an nft in the given ERC1155 smart contract - * - * @argument signer owner of the smart contract - * @argument args See [[MintArgs]] - */ - MintNft & { - /** - * - * Deploy an ERC721 smart contract - * - * @argument owner Owner of this smart contract - * @returns Address of the deployed smart contract - */ - deployErc721(owner: Signer): Promise; - }; - -/** - * Traits implemented by this module - */ -export type Web3Helper = BaseWeb3Helper & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ChainNonceGet & - IsApproved & - Approve & - ValidateAddress & - ExtractAction & { - createWallet(privateKey: string): Wallet; - } & Pick, "preTransfer"> & - PreTransferRawTxn & - ExtractTxnStatus & - GetProvider & - WhitelistCheck; - -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -export async function baseWeb3HelperFactory( - provider: Provider -): Promise { - const w3 = provider; - - return { - async balance(address: string): Promise { - const bal = await w3.getBalance(address); - - // ethers BigNumber is not compatible with our bignumber - return new BigNumber(bal.toString()); - }, - async deployErc721(owner: Signer): Promise { - const factory = new ContractFactory( - UserNftMinter__factory.abi, - UserNftMinter__factory.bytecode, - owner - ); - const contract = await factory.deploy(); - - return contract.address; - }, - async mintNft( - owner: Signer, - { contract, uris }: NftMintArgs - ): Promise { - const erc721 = new Contract(contract!, UserNftMinter__factory.abi, owner); - - const txm = await erc721.mint(uris[0]); - const receipt = await txm.wait(); - return receipt.transactionHash; - }, - }; -} - -/** - * Create an object implementing cross chain utilities for a web3 chain - * - * @param provider An ethers.js provider object - * @param minter_addr Address of the minter smart contract - * @param minter_abi ABI of the minter smart contract - */ -export interface Web3Params { - provider: Provider; - notifier: EvNotifier; - minter_addr: string; - erc721_addr: string; - validators: string[]; - nonce: number; -} - -export async function web3HelperFactory( - params: Web3Params -): Promise { - const w3 = params.provider; - const { minter_addr, provider } = params; - const minter = new Contract(minter_addr, Minter__factory.abi, provider); - - async function notifyValidator(hash: string): Promise { - await params.notifier.notifyWeb3(params.nonce, hash); - } - - async function extractAction(txr: TransactionResponse): Promise { - const receipt = await txr.wait(); - const log = receipt.logs!.find((log) => log.address === minter.address); - if (log === undefined) { - throw Error("Couldn't extract action_id"); - } - - const evdat = minter.interface.parseLog(log); - const action_id: string = evdat.topic[0].toString(); - return action_id; - } - - const randomAction = () => - new BigNumber( - Math.floor(Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000)) - ); - - async function estimateGas( - addrs: string[], - utx: Transaction - ): Promise { - utx.from = addrs[0]; - let td = await w3.estimateGas(utx); - const fee = td.mul(addrs.length + 1).mul(await w3.getGasPrice()); - - return new BigNumber(fee.toString()); - } - - const isApprovedForMinter = async ( - id: NftInfo, - signer: Signer - ) => { - const erc = new Contract( - id.native.contract, - UserNftMinter__factory.abi, - signer - ); - const approvedAddress = await erc.getApproved(id.native.tokenId); - if (approvedAddress === minter_addr) { - return true; - } - return false; - }; - - const approveForMinter = async (id: NftInfo, sender: Signer) => { - const isApproved = await isApprovedForMinter(id, sender); - const erc = new Contract( - id.native.contract, - UserNftMinter__factory.abi, - sender - ); - if (isApproved) { - return undefined; - } - - const receipt = await erc.approve(minter_addr, id.native.tokenId); - await receipt.wait(); - return receipt.hash; - }; - - const base = await baseWeb3HelperFactory(params.provider); - - return { - ...base, - approveForMinter, - getProvider: () => provider, - isApprovedForMinter, - preTransfer: (s, id, _fee) => approveForMinter(id, s), - extractAction, - // TODO - getNonce: () => params.nonce as any, - async preTransferRawTxn(id, address, _value) { - const isApproved = await isApprovedForMinter( - id, - new VoidSigner(address, provider) - ); - - if (isApproved) { - return undefined; - } - - const erc = new Contract( - id.native.contract, - UserNftMinter__factory.abi, - new VoidSigner(address, provider) - ); - - const approvetxn = await erc.populateTransaction.approve( - minter_addr, - id.native.tokenId - ); - - return approvetxn; - }, - async extractTxnStatus(txn) { - const status = (await (await provider.getTransaction(txn)).wait()).status; - if (status === undefined) { - return TransactionStatus.PENDING; - } - if (status === 1) { - return TransactionStatus.SUCCESS; - } else if (status === 0) { - return TransactionStatus.FAILURE; - } - return TransactionStatus.UNKNOWN; - }, - createWallet(privateKey: string): Wallet { - return new Wallet(privateKey, provider); - }, - async transferNftToForeign( - sender: Signer, - chain_nonce: number, - to: string, - id: NftInfo, - txFees: BigNumber - ): Promise { - await approveForMinter(id, sender); - - const txr = await minter - .connect(sender) - .freezeErc721(id.native.contract, id.native.tokenId, chain_nonce, to, { - value: EthBN.from(txFees.toString(10)), - }); - - await notifyValidator(txr.hash); - return txr; - }, - async unfreezeWrappedNft( - sender: Signer, - to: string, - id: NftInfo, - txFees: BigNumber - ): Promise { - const res = await minter - .connect(sender) - .withdrawNft(to, id.native.tokenId, { - value: EthBN.from(txFees.toString(10)), - }); - - await notifyValidator(res.hash); - - return res; - }, - async estimateValidateTransferNft( - to: string, - nftUri: NftInfo - ): Promise { - const utx = await minter.populateTransaction.validateTransferNft( - randomAction(), - to, - nftUri.uri - ); - - return await estimateGas(params.validators, utx); - }, - async estimateValidateUnfreezeNft( - _to: string, - _nft: NftInfo - ): Promise { - // TODO - return new BigNumber(0); - }, - validateAddress(adr) { - return Promise.resolve(ethers.utils.getAddress(adr) !== undefined); - }, - isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract); - }, - }; -} diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 654fd8643..e39ba2c6f 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -13,7 +13,7 @@ import { import { TronWeb } from "tronweb"; // @ts-expect-error no types cope import TronStation from "tronstation"; -import { EthNftInfo } from "./web3"; +import { EthNftInfo, MintArgs } from "./web3"; import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; import { @@ -28,7 +28,6 @@ import { ExtractAction, ExtractTxnStatus, IsApproved, - NftMintArgs, PreTransfer, PreTransferRawTxn, TransactionStatus, @@ -53,7 +52,7 @@ export type MinterRes = { }; export type BaseTronHelper = BalanceCheck & - MintNft & { + MintNft & { /** * * Deploy an ERC721 user minter smart contract @@ -142,13 +141,13 @@ export async function baseTronHelperFactory( }; return { - async mintNft(owner: TronSender, options: NftMintArgs): Promise { + async mintNft(owner: TronSender, options: MintArgs): Promise { setSigner(owner); const erc = await provider.contract( UserNftMinter__factory.abi, options.contract ); - const res = await erc.mint(options.uris[0]).send(); + const res = await erc.mint(options.uri).send(); return res; }, async balance(address: string): Promise { diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 5fa0c8fe9..1b44c7809 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -46,7 +46,6 @@ import { ValidateAddress, WhitelistCheck, } from ".."; -import { NftMintArgs } from ".."; import { ChainNonce } from "../type-utils"; import { EvNotifier } from "../notifier"; import axios from "axios"; @@ -106,7 +105,7 @@ export type BaseWeb3Helper = BalanceCheck & * @argument signer owner of the smart contract * @argument args See [[MintArgs]] */ - MintNft & { + MintNft & { /** * * Deploy an ERC721 smart contract @@ -118,7 +117,7 @@ export type BaseWeb3Helper = BalanceCheck & } & { mintNftErc1155( owner: Signer, - options: NftMintArgs + options: MintArgs ): Promise; }; @@ -171,7 +170,7 @@ export async function baseWeb3HelperFactory( return contract.address; }, - async mintNftErc1155(owner: Signer, { contract }: NftMintArgs) { + async mintNftErc1155(owner: Signer, { contract }) { const erc1155 = Erc1155Minter__factory.connect(contract!, owner); const tx = await erc1155.mintNft(await owner.getAddress()); @@ -179,11 +178,11 @@ export async function baseWeb3HelperFactory( }, async mintNft( owner: Signer, - { contract, uris }: NftMintArgs + { contract, uri }: MintArgs ): Promise { const erc721 = UserNftMinter__factory.connect(contract!, owner); - const txm = await erc721.mint(uris[0], { gasLimit: 1000000 }); + const txm = await erc721.mint(uri, { gasLimit: 1000000 }); return txm; }, }; @@ -461,6 +460,7 @@ export async function web3HelperFactory( return approvetxn; }, + async extractTxnStatus(txn) { const status = (await (await provider.getTransaction(txn)).wait()).status; if (status === undefined) { From fe9c308dead078bc56d571b8b14e11c036ebb2c1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 11 Aug 2022 23:12:27 +0530 Subject: [PATCH 626/956] Factory: Nft List: Now this function will return fully typed NftInfo --- src/factory/index.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d6c6ac981..195e9a9da 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -151,8 +151,8 @@ export type ChainFactory = { * @param chain: {@link NftUriChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. * @param owner: Address of the owner of the NFT as a raw string. */ - nftList( - chain: ChainNonceGet, + nftList( + chain: ChainNonceGet & TransferNftForeign, owner: string ): Promise[]>; /** @@ -653,8 +653,11 @@ export function ChainFactory( helpers.delete(chainNonce); cToP.set(chainNonce, params as any); }, - async nftList(chain: ChainNonceGet, owner: string) { - let res = await nftlistRest.get<{ data: NftInfo[] }>( + async nftList( + chain: ChainNonceGet & TransferNftForeign, + owner: string + ) { + let res = await nftlistRest.get<{ data: NftInfo[] }>( `/nfts/${chain.getNonce()}/${owner}` ); From 7382eadc5e061803452eb20431e76e08b77669bd Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Sun, 14 Aug 2022 13:12:12 +0300 Subject: [PATCH 627/956] add Mainnet Secret Network --- src/consts.ts | 1 + src/factory/factories.ts | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index 1dc30cd04..a9b59a413 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -73,6 +73,7 @@ export enum MainNetRpcUri { GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", + SECRET = "https://secret-4.api.trivium.network:9091", // TODO: Algorand } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 3d9f46da7..3c9e99a91 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -567,6 +567,27 @@ export namespace ChainFactoryConfigs { nonce: Chain.GATECHAIN, feeMargin, }, + secretParams: { + notifier, + rpcUrl: MainNetRpcUri.SECRET, + bridge: { + contractAddress: "secret18f66qjjuyudmh7q6s50hwpt9y679lanjs82jkg", + codeHash: + "0x224f175c92947bbfd656d26e21b5eee40f73eac6aa6b64c328db3c55261ee6b4", + }, + xpnft: { + contractAddress: "secret16zcej6asqrtfq08u3fdjhs03zpl7lgy7q32eps", + codeHash: + "0xb7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", + }, + umt: { + contractAddress: "", + codeHash: + "", + }, + chainId: "24", + feeMargin, + }, }; }; } From 1020f3a685a13eca74c9910e672e7e672d25cead Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Sun, 14 Aug 2022 13:16:51 +0300 Subject: [PATCH 628/956] change Secret Mainnet RPC --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index a9b59a413..65db2f41a 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -73,7 +73,7 @@ export enum MainNetRpcUri { GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "https://secret-4.api.trivium.network:9091", + SECRET = "http://scrt-rpc.blockpane.com:9091/", // TODO: Algorand } From d256f2677f85c3ccd3a8205be01191ec9858e6bd Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Sun, 14 Aug 2022 13:17:46 +0300 Subject: [PATCH 629/956] fix secret codehashes --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 3c9e99a91..9e2ba7154 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -573,12 +573,12 @@ export namespace ChainFactoryConfigs { bridge: { contractAddress: "secret18f66qjjuyudmh7q6s50hwpt9y679lanjs82jkg", codeHash: - "0x224f175c92947bbfd656d26e21b5eee40f73eac6aa6b64c328db3c55261ee6b4", + "224f175c92947bbfd656d26e21b5eee40f73eac6aa6b64c328db3c55261ee6b4", }, xpnft: { contractAddress: "secret16zcej6asqrtfq08u3fdjhs03zpl7lgy7q32eps", codeHash: - "0xb7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", + "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", }, umt: { contractAddress: "", From 5b00073d902e71e9a2a71b829f3acdfc2ee2c933 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 14 Aug 2022 17:50:22 +0530 Subject: [PATCH 630/956] Factory: Nft List: Fix Type Signature for Correct Native NFT --- src/factory/index.ts | 14 ++++++-------- src/type-utils.ts | 8 ++++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 195e9a9da..f06d52e4a 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -49,6 +49,7 @@ import { HelperMap, InferChainH, InferChainParam, + InferNativeNft, InferSigner, ParamMap, } from "../type-utils"; @@ -151,10 +152,10 @@ export type ChainFactory = { * @param chain: {@link NftUriChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. * @param owner: Address of the owner of the NFT as a raw string. */ - nftList( - chain: ChainNonceGet & TransferNftForeign, + nftList( + chain: ChainNonceGet & T, owner: string - ): Promise[]>; + ): Promise>[]>; /** * Estimates the required fee for transferring an NFT. * @param fromChain: {@link FullChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. @@ -653,11 +654,8 @@ export function ChainFactory( helpers.delete(chainNonce); cToP.set(chainNonce, params as any); }, - async nftList( - chain: ChainNonceGet & TransferNftForeign, - owner: string - ) { - let res = await nftlistRest.get<{ data: NftInfo[] }>( + async nftList(chain: ChainNonceGet & T, owner: string) { + let res = await nftlistRest.get<{ data: NftInfo>[] }>( `/nfts/${chain.getNonce()}/${owner}` ); diff --git a/src/type-utils.ts b/src/type-utils.ts index c67f28cae..90d0fcf43 100644 --- a/src/type-utils.ts +++ b/src/type-utils.ts @@ -13,6 +13,14 @@ export type InferChainH = MetaMap[K][0]; export type InferSigner> = K extends TransferNftChain ? S : never; +export type InferNativeNft = K extends TransferNftChain< + any, + infer RawNft, + any +> + ? RawNft + : never; + export type ParamMap = { set(k: T, v: InferChainParam | undefined): void; get(k: T): InferChainParam | undefined; From 0ced4a1079bba57ebe0af25df29cb2c63d4696f3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 14 Aug 2022 18:17:10 +0530 Subject: [PATCH 631/956] Factory: Skale: Add Mainnet --- src/consts.ts | 13 +++++++------ src/factory/factories.ts | 14 ++++++++++++-- src/factory/index.ts | 2 +- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 65db2f41a..180d02a56 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -74,6 +74,7 @@ export enum MainNetRpcUri { GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", SECRET = "http://scrt-rpc.blockpane.com:9091/", + SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", // TODO: Algorand } @@ -143,12 +144,12 @@ export namespace Chain { export const AURORA = 0x15; // 21 export const GODWOKEN = 0x16; // 22 export const GATECHAIN = 0x17; // 23 - export const SECRET = 0x18; + export const SECRET = 0x18; // 24 export const VECHAIN = 0x19; // 25 - export const SOLANA = 0x1a; - export const TON = 0x1b; - export const DFINITY = 0x1c; - export const HEDERA = 0x1d; + export const SOLANA = 0x1a; // 26 + export const TON = 0x1b; // 27 + export const DFINITY = 0x1c; // 28 + export const HEDERA = 0x1d; // 29 export const SKALE = 0x1e; // 30 } @@ -411,7 +412,7 @@ CHAIN_INFO.set(Chain.SKALE, { constructor: web3HelperFactory, currency: SupportedCurrency.sFUEL, decimals: 1e18, - chainId: 1305754875840118, + chainId: 1564830818, nonce: Chain.SKALE, }); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 9e2ba7154..7457b7da5 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -567,6 +567,17 @@ export namespace ChainFactoryConfigs { nonce: Chain.GATECHAIN, feeMargin, }, + skaleParams: { + nonce: Chain.SKALE, + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.SKALE), + feeMargin, + erc1155_addr: "", + erc1155Minter: "", + erc721Minter: "", + erc721_addr: "", + minter_addr: "", + }, secretParams: { notifier, rpcUrl: MainNetRpcUri.SECRET, @@ -582,8 +593,7 @@ export namespace ChainFactoryConfigs { }, umt: { contractAddress: "", - codeHash: - "", + codeHash: "", }, chainId: "24", feeMargin, diff --git a/src/factory/index.ts b/src/factory/index.ts index f06d52e4a..d8659b607 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -652,7 +652,7 @@ export function ChainFactory( params: InferChainParam ) { helpers.delete(chainNonce); - cToP.set(chainNonce, params as any); + cToP.set(chainNonce, params); }, async nftList(chain: ChainNonceGet & T, owner: string) { let res = await nftlistRest.get<{ data: NftInfo>[] }>( From b063ecfbd2a6c0ec2016b236f269199dc693da25 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Sun, 14 Aug 2022 18:53:44 +0300 Subject: [PATCH 632/956] add Skale Mainnet contracts --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 7457b7da5..5b1978043 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -572,11 +572,11 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.SKALE), feeMargin, - erc1155_addr: "", - erc1155Minter: "", - erc721Minter: "", - erc721_addr: "", - minter_addr: "", + erc1155_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc1155Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc721Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + erc721_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + minter_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", }, secretParams: { notifier, From 97ebde16504f50a85a2bdccca10996757c24e83b Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Mon, 15 Aug 2022 10:29:47 +0300 Subject: [PATCH 633/956] Update consts.ts --- src/consts.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/consts.ts b/src/consts.ts index 180d02a56..c46027e70 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -49,6 +49,7 @@ export enum TestNetRpcUri { VECHAIN = "https://sync-testnet.veblocks.net", SECRET = "https://pulsar-2.api.trivium.network:9091/", SKALE = "https://staging-v2.skalenodes.com/v1/rapping-zuben-elakrab", + HEDERA = "https://http://0.testnet.hedera.com/", // TODO: Algorand // TODO: Fuse } From 3d2031df98e9a8e1d8371ab2ed116ad32d97f2d8 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 15 Aug 2022 17:12:54 +0530 Subject: [PATCH 634/956] Secret: Mainnet RPC: Use Https --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index c46027e70..b3482fa15 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -74,7 +74,7 @@ export enum MainNetRpcUri { GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "http://scrt-rpc.blockpane.com:9091/", + SECRET = "https://scrt-rpc.blockpane.com:9091/", SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", // TODO: Algorand } From 08d3274e26a56e1da6141e39cb4de22325f4a6a5 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Wed, 17 Aug 2022 10:55:25 +0300 Subject: [PATCH 635/956] preparation for NEAR L1 --- src/consts.ts | 6 ++++++ src/factory/factories.ts | 14 ++++++++++++++ src/helpers/near.ts | 9 +++++++++ 3 files changed, 29 insertions(+) create mode 100644 src/helpers/near.ts diff --git a/src/consts.ts b/src/consts.ts index 714a74a66..99105fced 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -25,6 +25,7 @@ import { DfinityHelper, DfinityParams, } from "./helpers/dfinity/dfinity"; +import { NearHelper, NearParams } from "./helpers/near"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -50,6 +51,7 @@ export enum TestNetRpcUri { SECRET = "https://pulsar-2.api.trivium.network:9091/", SKALE = "https://staging-v2.skalenodes.com/v1/rapping-zuben-elakrab", HEDERA = "https://0.testnet.hedera.com/", + NEAR = "https://rpc.testnet.near.org", // TODO: Algorand // TODO: Fuse } @@ -76,6 +78,7 @@ export enum MainNetRpcUri { VECHAIN = "https://sync-mainnet.veblocks.net", SECRET = "https://secret-4.api.trivium.network:9091", SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", + NEAR = "https://rpc.mainnet.near.org", // TODO: Algorand } @@ -88,6 +91,7 @@ type SecretMeta = [SecretHelper, SecretParams]; type SolanaMeta = [SolanaHelper, SolanaParams]; type TonMeta = [TonHelper, TonParams]; type DfinityMeta = [DfinityHelper, DfinityParams]; +type NearMeta = [NearHelper, NearParams]; // Static Assert to Ensure all values of Chain are in MetaMap type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; @@ -121,6 +125,7 @@ export type MetaMap = { 0x1c: DfinityMeta; 0x1d: Web3Meta; 0x1e: Web3Meta; + 0x1f: NearMeta; } & MetaMapAssert; export namespace Chain { @@ -152,6 +157,7 @@ export namespace Chain { export const DFINITY = 0x1c; // 28 export const HEDERA = 0x1d; // 29 export const SKALE = 0x1e; // 30 + export const NEAR = 0x1f; // 31 } interface ChainData { diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 5b1978043..7fae7c235 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -318,6 +318,13 @@ export namespace ChainFactoryConfigs { chainId: "24", feeMargin, }, + nearParams: { + networkId: "testnet", + nonce: Chain.NEAR, + rpcUrl: TestNetRpcUri.NEAR, + bridge: "xpbridge.testnet", + xpnft: "xpnft.testnet", + }, }; }; @@ -598,6 +605,13 @@ export namespace ChainFactoryConfigs { chainId: "24", feeMargin, }, + nearParams: { + networkId: "mainnet", + nonce: Chain.NEAR, + rpcUrl: MainNetRpcUri.NEAR, + bridge: "", + xpnft: "", + }, }; }; } diff --git a/src/helpers/near.ts b/src/helpers/near.ts new file mode 100644 index 000000000..74301a803 --- /dev/null +++ b/src/helpers/near.ts @@ -0,0 +1,9 @@ +export type NearParams = { + networkId: string; + nonce: string; + rpcUrl: string; + bridge: string; + xpnft: string; +}; + +export type NearHelper = any; From 778ea0aa0f61921157476b81c5f1ff1f968c1840 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Wed, 17 Aug 2022 11:12:42 +0300 Subject: [PATCH 636/956] update preparation for NEAR L1 --- src/consts.ts | 11 ++++++++++- src/helpers/near.ts | 6 +++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 99105fced..9edfb2a52 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -25,7 +25,7 @@ import { DfinityHelper, DfinityParams, } from "./helpers/dfinity/dfinity"; -import { NearHelper, NearParams } from "./helpers/near"; +import { NearHelper, NearParams, NearHelperFactory } from "./helpers/near"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -431,3 +431,12 @@ CHAIN_INFO.set(Chain.DFINITY, { name: "DFINITY", nonce: Chain.DFINITY, }); + +CHAIN_INFO.set(Chain.NEAR, { + blockExplorerUrl: "https://explorer.testnet.near.org/transactions/", + constructor: NearHelperFactory, + currency: SupportedCurrency.NEAR, + decimals: 1e8, + name: "NEAR", + nonce: Chain.NEAR, +}); diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 74301a803..ff2915a70 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -6,4 +6,8 @@ export type NearParams = { xpnft: string; }; -export type NearHelper = any; +export type NearHelper = any; // TODO + +export async function NearHelperFactory() { + // TODO +} From 4febc358c1973b7af91858f7f338db0d1d72cf4d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 17 Aug 2022 16:50:39 +0530 Subject: [PATCH 637/956] Exchange-Rate: Bump --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 64fd9ff34..a0faeae49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3318,7 +3318,7 @@ crypto-browserify@3.12.0: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#5687d35eba73b03a3b29b834107a94646577c8a6" + resolved "git+https://github.com/xp-network/exchange-rate#b3f320ecc55e5c82bd5e8d476785137aee7d9ab0" dependencies: axios "^0.21.1" From d3904d731155be4b1f52b97bc77c9af7a2ab95bd Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 17 Aug 2022 17:32:24 +0530 Subject: [PATCH 638/956] chains: evm: add moonbeam testnet --- src/consts.ts | 13 +++++++++++++ src/factory/factories.ts | 11 +++++++++++ src/factory/index.ts | 2 ++ yarn.lock | 2 +- 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 9edfb2a52..aa2395bb0 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -52,6 +52,7 @@ export enum TestNetRpcUri { SKALE = "https://staging-v2.skalenodes.com/v1/rapping-zuben-elakrab", HEDERA = "https://0.testnet.hedera.com/", NEAR = "https://rpc.testnet.near.org", + MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", // TODO: Algorand // TODO: Fuse } @@ -126,6 +127,7 @@ export type MetaMap = { 0x1d: Web3Meta; 0x1e: Web3Meta; 0x1f: NearMeta; + 0x20: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -158,6 +160,7 @@ export namespace Chain { export const HEDERA = 0x1d; // 29 export const SKALE = 0x1e; // 30 export const NEAR = 0x1f; // 31 + export const MOONBEAM = 0x20; // 32 } interface ChainData { @@ -440,3 +443,13 @@ CHAIN_INFO.set(Chain.NEAR, { name: "NEAR", nonce: Chain.NEAR, }); + +CHAIN_INFO.set(Chain.MOONBEAM, { + blockExplorerUrl: "https://moonbase.moonscan.io/", + constructor: web3HelperFactory, + currency: SupportedCurrency.GLMR, + decimals: 1e18, + name: "MoonBeam", + nonce: Chain.MOONBEAM, + chainId: 0x507, +}); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 7fae7c235..060fefcd6 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -120,6 +120,17 @@ export namespace ChainFactoryConfigs { notifier, feeMargin, }, + moonbeamParams: { + nonce: Chain.MOONBEAM, + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.MOONBEAM), + erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", + erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + erc1155_addr: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", + erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + }, fantomParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), diff --git a/src/factory/index.ts b/src/factory/index.ts index d8659b607..9dbb774ef 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -270,6 +270,8 @@ export interface ChainParams { hederaParams: Web3Params; skaleParams: Web3Params; dfinityParams: DfinityParams; + // Space for Near + moonbeamParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; diff --git a/yarn.lock b/yarn.lock index a0faeae49..8e6823d75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3318,7 +3318,7 @@ crypto-browserify@3.12.0: "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#b3f320ecc55e5c82bd5e8d476785137aee7d9ab0" + resolved "git+https://github.com/xp-network/exchange-rate#969f919deec6ee487e4c1b6213f77fe4f6f32eb1" dependencies: axios "^0.21.1" From f5dd978de4f3336e866e38e76d3980b44733f074 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 17 Aug 2022 17:37:34 +0530 Subject: [PATCH 639/956] chains: evm: add abeychain testnet --- src/consts.ts | 13 +++++++++++++ src/factory/factories.ts | 11 +++++++++++ src/factory/index.ts | 1 + 3 files changed, 25 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index aa2395bb0..3b3c6ce0a 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -53,6 +53,7 @@ export enum TestNetRpcUri { HEDERA = "https://0.testnet.hedera.com/", NEAR = "https://rpc.testnet.near.org", MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", + ABEYCHAIN = "https://testrpc.abeychain.com", // TODO: Algorand // TODO: Fuse } @@ -128,6 +129,7 @@ export type MetaMap = { 0x1e: Web3Meta; 0x1f: NearMeta; 0x20: Web3Meta; + 0x21: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -161,6 +163,7 @@ export namespace Chain { export const SKALE = 0x1e; // 30 export const NEAR = 0x1f; // 31 export const MOONBEAM = 0x20; // 32 + export const ABEYCHAIN = 0x21; // 33 } interface ChainData { @@ -453,3 +456,13 @@ CHAIN_INFO.set(Chain.MOONBEAM, { nonce: Chain.MOONBEAM, chainId: 0x507, }); + +CHAIN_INFO.set(Chain.ABEYCHAIN, { + blockExplorerUrl: "https://testnet-explorer.abeychain.com/", + constructor: web3HelperFactory, + currency: SupportedCurrency.ABEY, + decimals: 1e18, + name: "AbeyChain", + nonce: Chain.ABEYCHAIN, + chainId: 178, +}); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 060fefcd6..e75e4e34b 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -131,6 +131,17 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", }, + abeyChainParams: { + nonce: Chain.ABEYCHAIN, + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ABEYCHAIN), + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + }, fantomParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), diff --git a/src/factory/index.ts b/src/factory/index.ts index 9dbb774ef..a6d2ae43a 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -272,6 +272,7 @@ export interface ChainParams { dfinityParams: DfinityParams; // Space for Near moonbeamParams: Web3Params; + abeyChainParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; From 25f75ca6abd1774ae3791b508edb4061db23c37f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 17 Aug 2022 17:37:34 +0530 Subject: [PATCH 640/956] chains: evm: add abeychain testnet --- src/consts.ts | 13 +++++++++++++ src/factory/factories.ts | 11 +++++++++++ src/factory/index.ts | 4 ++++ 3 files changed, 28 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index aa2395bb0..3b3c6ce0a 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -53,6 +53,7 @@ export enum TestNetRpcUri { HEDERA = "https://0.testnet.hedera.com/", NEAR = "https://rpc.testnet.near.org", MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", + ABEYCHAIN = "https://testrpc.abeychain.com", // TODO: Algorand // TODO: Fuse } @@ -128,6 +129,7 @@ export type MetaMap = { 0x1e: Web3Meta; 0x1f: NearMeta; 0x20: Web3Meta; + 0x21: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -161,6 +163,7 @@ export namespace Chain { export const SKALE = 0x1e; // 30 export const NEAR = 0x1f; // 31 export const MOONBEAM = 0x20; // 32 + export const ABEYCHAIN = 0x21; // 33 } interface ChainData { @@ -453,3 +456,13 @@ CHAIN_INFO.set(Chain.MOONBEAM, { nonce: Chain.MOONBEAM, chainId: 0x507, }); + +CHAIN_INFO.set(Chain.ABEYCHAIN, { + blockExplorerUrl: "https://testnet-explorer.abeychain.com/", + constructor: web3HelperFactory, + currency: SupportedCurrency.ABEY, + decimals: 1e18, + name: "AbeyChain", + nonce: Chain.ABEYCHAIN, + chainId: 178, +}); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 060fefcd6..e75e4e34b 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -131,6 +131,17 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", }, + abeyChainParams: { + nonce: Chain.ABEYCHAIN, + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ABEYCHAIN), + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + }, fantomParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), diff --git a/src/factory/index.ts b/src/factory/index.ts index 9dbb774ef..0937cdda0 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -272,6 +272,7 @@ export interface ChainParams { dfinityParams: DfinityParams; // Space for Near moonbeamParams: Web3Params; + abeyChainParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -323,6 +324,9 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.HEDERA, chainParams.hederaParams); cToP.set(Chain.SKALE, chainParams.skaleParams); cToP.set(Chain.DFINITY, chainParams.dfinityParams); + // Space for Near + cToP.set(Chain.MOONBEAM, chainParams.moonbeamParams); + cToP.set(Chain.ABEYCHAIN, chainParams.abeyChainParams); return cToP; } /** From 3a0d87390e9e78c9aed34e8796370d2396730cbe Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 17 Aug 2022 15:58:12 +0300 Subject: [PATCH 641/956] secret: add token metaData to response: --- src/helpers/chain.ts | 1 + src/helpers/secret.ts | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 1ebd02119..f5cdc0eca 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -10,6 +10,7 @@ export type NftInfo = { readonly uri: string; readonly native: Raw; readonly collectionIdent: string; + readonly metaData?: any; }; /** diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 719297866..b22f05281 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -187,6 +187,8 @@ export async function secretHelperFactory( if (generic_err) throw new Error(generic_err.msg); const response: NftInfo[] = []; + + console.log(token_list, "token_list"); await Promise.all( token_list.tokens.map(async (token) => { const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ @@ -194,6 +196,8 @@ export async function secretHelperFactory( auth, token_id: token, }); + + console.log(tokenInfo); response.push({ collectionIdent: contractAddress, uri: tokenInfo.all_nft_info.info?.token_uri || "", @@ -204,6 +208,7 @@ export async function secretHelperFactory( tokenId: token, vk, }, + metaData: tokenInfo.all_nft_info.info?.extension, }); }) ); From a5cba28de21bfd574d86dcc3028266fb88cfe1bb Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 17 Aug 2022 16:00:24 +0300 Subject: [PATCH 642/956] remove console.log --- src/helpers/secret.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index b22f05281..5f782409a 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -188,7 +188,6 @@ export async function secretHelperFactory( const response: NftInfo[] = []; - console.log(token_list, "token_list"); await Promise.all( token_list.tokens.map(async (token) => { const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ @@ -197,7 +196,6 @@ export async function secretHelperFactory( token_id: token, }); - console.log(tokenInfo); response.push({ collectionIdent: contractAddress, uri: tokenInfo.all_nft_info.info?.token_uri || "", From 0047c84ad2e3c2686e37e222414d48aa1e1a56ba Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 17 Aug 2022 19:35:59 +0530 Subject: [PATCH 643/956] helpers: near: implement basic bridge functions --- package.json | 1 + src/consts.ts | 4 +- src/factory/index.ts | 5 ++- src/helpers/near.ts | 104 +++++++++++++++++++++++++++++++++++++++++-- yarn.lock | 78 +++++++++++++++++++++++++++++++- 5 files changed, 182 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index ee1f30d44..9233058c5 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", + "near-api-js": "^0.45.1", "secretjs": "^1.3.0-beta.1", "socket.io-client": "^4.1.3", "tonweb": "^0.0.43", diff --git a/src/consts.ts b/src/consts.ts index 3b3c6ce0a..a83ecd2c4 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -25,7 +25,7 @@ import { DfinityHelper, DfinityParams, } from "./helpers/dfinity/dfinity"; -import { NearHelper, NearParams, NearHelperFactory } from "./helpers/near"; +import { NearHelper, NearParams, nearHelperFactory } from "./helpers/near"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -440,7 +440,7 @@ CHAIN_INFO.set(Chain.DFINITY, { CHAIN_INFO.set(Chain.NEAR, { blockExplorerUrl: "https://explorer.testnet.near.org/transactions/", - constructor: NearHelperFactory, + constructor: nearHelperFactory, currency: SupportedCurrency.NEAR, decimals: 1e8, name: "NEAR", diff --git a/src/factory/index.ts b/src/factory/index.ts index 0937cdda0..a3225c8e9 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -55,6 +55,7 @@ import { } from "../type-utils"; import { SecretParams } from "../helpers/secret"; import { DfinityParams } from "../helpers/dfinity/dfinity"; +import { NearParams } from "../helpers/near"; type FullChain = TransferNftForeign< Signer, @@ -270,7 +271,7 @@ export interface ChainParams { hederaParams: Web3Params; skaleParams: Web3Params; dfinityParams: DfinityParams; - // Space for Near + nearParams: NearParams; moonbeamParams: Web3Params; abeyChainParams: Web3Params; } @@ -324,7 +325,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.HEDERA, chainParams.hederaParams); cToP.set(Chain.SKALE, chainParams.skaleParams); cToP.set(Chain.DFINITY, chainParams.dfinityParams); - // Space for Near + cToP.set(Chain.NEAR, chainParams.nearParams); cToP.set(Chain.MOONBEAM, chainParams.moonbeamParams); cToP.set(Chain.ABEYCHAIN, chainParams.abeyChainParams); return cToP; diff --git a/src/helpers/near.ts b/src/helpers/near.ts index ff2915a70..09395398a 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -1,13 +1,109 @@ +import BigNumber from "bignumber.js"; +import { + Account, + connect, + Contract, + DEFAULT_FUNCTION_CALL_GAS, +} from "near-api-js"; +import { Chain } from "../consts"; +import { + ChainNonceGet, + EstimateTxFees, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "./chain"; + export type NearParams = { networkId: string; - nonce: string; + nonce: number; rpcUrl: string; bridge: string; xpnft: string; }; +export type NearNFT = { + tokenId: string; +}; + +export type NearHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress; + +export async function nearHelperFactory({ + networkId, + bridge, + rpcUrl, +}: NearParams): Promise { + const near = await connect({ + nodeUrl: rpcUrl, + networkId, + headers: {}, + }); -export type NearHelper = any; // TODO + const getMinter = async (connection: Account) => { + return new Contract(connection, bridge, { + changeMethods: ["freeze_nft"], + viewMethods: [], + }) as any; + }; -export async function NearHelperFactory() { - // TODO + return { + async estimateValidateTransferNft(_to, _metadata, _mintWith) { + return new BigNumber(0); // TODO + }, + async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { + return new BigNumber(0); // TODO + }, + getNonce() { + return Chain.NEAR; + }, + async transferNftToForeign( + sender, + chain_nonce, + to, + id, + txFees, + mint_with, + gasLimit + ) { + const minter = await getMinter(sender); + const resp = minter.freeze_nft( + { + token_id: id.native.tokenId, + chain_nonce, + to, + amt: new BigNumber(txFees), + mint_with, + }, + gasLimit ?? DEFAULT_FUNCTION_CALL_GAS, + txFees + ); + return resp; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const minter = await getMinter(sender); + const resp = minter.withdraw_nft( + // token_id: TokenId, chain_nonce: u8, to: String, amt: u128 + { + token_id: id.native.tokenId, + chain_nonce: nonce, + to, + amt: new BigNumber(txFees), + }, + DEFAULT_FUNCTION_CALL_GAS, + txFees + ); + return resp; + }, + async validateAddress(adr) { + try { + new Account(near.connection, adr).accountId; + return true; + } catch (e) { + return false; + } + }, + }; } diff --git a/yarn.lock b/yarn.lock index 8e6823d75..6306cb86d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2710,6 +2710,11 @@ bn.js@5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz#48efc4031a9c4041b9c99c6941d903463ab62eb5" integrity sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA== +bn.js@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" @@ -2962,6 +2967,11 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +capability@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/capability/-/capability-0.2.5.tgz#51ad87353f1936ffd77f2f21c74633a4dea88801" + integrity sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg== + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -3464,11 +3474,16 @@ delimit-stream@0.1.0: resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== -depd@2.0.0: +depd@2.0.0, depd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" @@ -3628,6 +3643,15 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" +error-polyfill@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/error-polyfill/-/error-polyfill-0.1.3.tgz#df848b61ad8834f7a5db69a70b9913df86721d15" + integrity sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg== + dependencies: + capability "^0.2.5" + o3 "^1.0.3" + u3 "^0.1.1" + es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0: version "1.20.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" @@ -4901,6 +4925,17 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@^1.7.2: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + http-https@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" @@ -5877,6 +5912,11 @@ multimatch@^4.0.0: arrify "^2.0.1" minimatch "^3.0.4" +mustache@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + nan@^2.13.2: version "2.16.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" @@ -5907,6 +5947,23 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +near-api-js@^0.45.1: + version "0.45.1" + resolved "https://registry.yarnpkg.com/near-api-js/-/near-api-js-0.45.1.tgz#0f0a4b378758a2f1b32555399d7356da73d0ef27" + integrity sha512-QyPO/vjvMFlcMO1DCpsqzmnSqPIyHsjK1Qi4B5ZR1cJCIWMkqugDF/TDf8FVQ85pmlcYeYwfiTqKanKz+3IG0A== + dependencies: + bn.js "5.2.0" + borsh "^0.7.0" + bs58 "^4.0.0" + depd "^2.0.0" + error-polyfill "^0.1.3" + http-errors "^1.7.2" + js-sha256 "^0.9.0" + mustache "^4.0.0" + node-fetch "^2.6.1" + text-encoding-utf-8 "^1.0.2" + tweetnacl "^1.0.1" + negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -5947,7 +6004,7 @@ node-addon-api@^4.2.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== -node-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.7: +node-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -6018,6 +6075,13 @@ number-to-bn@1.7.0: bn.js "4.11.6" strip-hex-prefix "1.0.0" +o3@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/o3/-/o3-1.0.3.tgz#192ce877a882dfa6751f0412a865fafb2da1dac0" + integrity sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ== + dependencies: + capability "^0.2.5" + oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -7082,6 +7146,11 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + str2buf@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/str2buf/-/str2buf-1.3.0.tgz#a4172afff4310e67235178e738a2dbb573abead0" @@ -7568,6 +7637,11 @@ u2f-api@0.2.7: resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== +u3@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/u3/-/u3-0.1.1.tgz#5f52044f42ee76cd8de33148829e14528494b73b" + integrity sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w== + ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" From eb1c55bb7d6bc8b921bb22119d19cba62f97d837 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 18 Aug 2022 11:18:55 +0300 Subject: [PATCH 644/956] update indexer --- src/config.ts | 2 +- yarn.lock | 1437 +++++++++++++++++++++++++------------------------ 2 files changed, 724 insertions(+), 715 deletions(-) diff --git a/src/config.ts b/src/config.ts index 4d5bc17e9..79b4aad1e 100644 --- a/src/config.ts +++ b/src/config.ts @@ -4,7 +4,7 @@ export namespace AppConfigs { export const MainNet: () => AppConfig = () => { return { exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://indexnft.herokuapp.com", + nftListUri: "https://nft-index.xp.network/index/", nftListAuthToken: "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", txSocketUri: "https://transaction-socket.xp.network", diff --git a/yarn.lock b/yarn.lock index 6306cb86d..694ef850f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,10 +37,10 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580" - integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== dependencies: regenerator-runtime "^0.13.4" @@ -164,10 +164,10 @@ flow-copy-source "^2.0.9" flow-typed "^3.2.1" -"@esbuild/linux-loong64@0.14.53": - version "0.14.53" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.53.tgz#251b4cd6760fadb4d68a05815e6dc5e432d69cd6" - integrity sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg== +"@esbuild/linux-loong64@0.14.54": + version "0.14.54" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" + integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== "@eslint/eslintrc@^0.4.3": version "0.4.3" @@ -684,23 +684,23 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.1" -"@grpc/grpc-js@^1.5.3": - version "1.6.7" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.7.tgz#4c4fa998ff719fe859ac19fe977fdef097bb99aa" - integrity sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw== +"@grpc/grpc-js@^1.6.7": + version "1.6.10" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.10.tgz#b6584c59ef90aa76d878ac92c21785e602f247ff" + integrity sha512-XTX5z/P5kH802MDoVm/rqOil0UwYEOEjf9+NPgfmm5UINIxDzwYaXfVR6z8svCBG8Hlbu/FzkXqhP8J5xaWzSQ== dependencies: - "@grpc/proto-loader" "^0.6.4" + "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" -"@grpc/proto-loader@^0.6.4": - version "0.6.13" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.13.tgz#008f989b72a40c60c96cd4088522f09b05ac66bc" - integrity sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g== +"@grpc/proto-loader@^0.7.0": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.2.tgz#fa63178853afe1473c50cff89fe572f7c8b20154" + integrity sha512-jCdyLIT/tdQ1zhrbTQnJNK5nbDf0GoBpy5jVNywBzzMDF+Vs6uEaHnfz46dMtDxkvwrF2hzk5Z67goliceH0sA== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" long "^4.0.0" - protobufjs "^6.11.3" + protobufjs "^7.0.0" yargs "^16.2.0" "@hapi/hoek@^9.0.0": @@ -715,10 +715,10 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@hashgraph/cryptography@^1.1.0-beta.5": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@hashgraph/cryptography/-/cryptography-1.3.0.tgz#2c2f55d80c91cf63b8e297ca237dc1288c52a0f5" - integrity sha512-nyNXVNy58iFcr9DqgNdPWDVLK631mvkUYesoiJEZZ1/Pzhw0lP8nt4YnXZeflsr52sjSy0+uxJSJoHv3rTdJRQ== +"@hashgraph/cryptography@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@hashgraph/cryptography/-/cryptography-1.4.0.tgz#c97364f7352e80b2d4e6b60d40691d9b550757d9" + integrity sha512-NtDmeuwaWJKBDYZd+g/etAD56p/RPUuZGdT9jhXxiFW0YrKCaU1k4ramICbRaJg7E+RDSFJXJLarh0G72z5YDA== dependencies: bignumber.js "^9.0.2" crypto-js "^4.1.1" @@ -728,25 +728,25 @@ utf8 "^3.0.0" "@hashgraph/hethers@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@hashgraph/hethers/-/hethers-1.1.2.tgz#f665b0068b9ec5423181ce6cc2f07db096174732" - integrity sha512-DezQCwm86oQCIXfDwJI6G+/RI0YPy9a/Ho/z3CRUSY9/1gBB0ZFRSK9HUovlrj30eyNtWVeIrHsYE+ZerQI5rQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/@hashgraph/hethers/-/hethers-1.1.4.tgz#6ab8de0f7271deb5be8d91a990c4ef5ab406fd0f" + integrity sha512-yFAT6D0g7iBinY8bFRTzstB+n/7GNJRSKq2HOQugEMsUsu/rO4EoPLCBRcAKH9nsHVJC8358GyeYg8hWhZjeog== dependencies: "@ethersproject/solidity" "5.5.0" - "@hethers/abstract-provider" "1.1.1" - "@hethers/abstract-signer" "1.1.2" + "@hethers/abstract-provider" "1.1.2" + "@hethers/abstract-signer" "1.1.3" "@hethers/address" "1.1.0" "@hethers/constants" "1.1.0" - "@hethers/contracts" "1.1.1" - "@hethers/hdnode" "1.1.1" - "@hethers/json-wallets" "1.1.1" + "@hethers/contracts" "1.1.3" + "@hethers/hdnode" "1.1.3" + "@hethers/json-wallets" "1.1.3" "@hethers/logger" "1.1.0" - "@hethers/networks" "1.1.0" - "@hethers/providers" "1.1.1" + "@hethers/networks" "1.1.2" + "@hethers/providers" "1.1.3" "@hethers/signing-key" "1.1.0" - "@hethers/transactions" "1.1.1" + "@hethers/transactions" "1.1.2" "@hethers/units" "1.1.0" - "@hethers/wallet" "1.1.1" + "@hethers/wallet" "1.1.3" "@hashgraph/proto@2.1.5": version "2.1.5" @@ -756,60 +756,57 @@ long "^4.0.0" protobufjs "^6.11.2" -"@hashgraph/sdk@2.11.0-beta.1": - version "2.11.0-beta.1" - resolved "https://registry.yarnpkg.com/@hashgraph/sdk/-/sdk-2.11.0-beta.1.tgz#bc2d2dbc2c8768c78836dcaf108ec624887578d7" - integrity sha512-rpUSg0c580paop1uOvHhUFt7WGnDuvqC0iDpBr0Bp2jTOhgL12AOG5sF0RF/bEQfwAdsizgRBTT24xhmk07yhA== +"@hashgraph/proto@2.9.0": + version "2.9.0" + resolved "https://registry.yarnpkg.com/@hashgraph/proto/-/proto-2.9.0.tgz#ec2cc21a2a4e02e6b3f101dd9e09aaef9b92afc2" + integrity sha512-Ot0OVLCl9lNBpHZozN0BS4mvlpxgJ0Bkea4p+6MoQ/+sZtOCu+FMsidIVdvFZBvdNjgPXx8byYjkpmFaxiIOpQ== + dependencies: + long "^4.0.0" + protobufjs "^6.11.3" + +"@hashgraph/sdk@^2.17.1": + version "2.18.0" + resolved "https://registry.yarnpkg.com/@hashgraph/sdk/-/sdk-2.18.0.tgz#868f14eefa60f2841a32b79144eef73b6f4c0225" + integrity sha512-+ycMaHKk9HWdhMSuw5BCo450FT9CCpjIwbWpw2lpJ+QKeifORzM1wc70nAm27FkING8/azC4/FL7CLf1DelgTA== dependencies: - "@grpc/grpc-js" "^1.5.3" - "@hashgraph/cryptography" "^1.1.0-beta.5" - "@hashgraph/proto" "2.1.5" + "@ethersproject/rlp" "^5.6.1" + "@grpc/grpc-js" "^1.6.7" + "@hashgraph/cryptography" "^1.4.0" + "@hashgraph/proto" "2.9.0" + axios "^0.27.2" bignumber.js "^9.0.2" crypto-js "^4.1.1" js-base64 "^3.7.2" js-logger "^1.6.1" long "^4.0.0" - protobufjs "^6.11.2" + protobufjs "^6.11.3" utf8 "^3.0.0" -"@hethers/abstract-provider@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/abstract-provider/-/abstract-provider-1.1.1.tgz#1f1f946f5970cd56dd9a46b09dfaa0f66e8074a6" - integrity sha512-s3u4Cu2qpdWgLh7oYf/evCFk7sgZYlaaIhje6BMXFN+jOKgWWQA6MSECqHSc6h9p9eNEsKt1HmM7yWClikrzyQ== +"@hethers/abstract-provider@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hethers/abstract-provider/-/abstract-provider-1.1.2.tgz#afe926da8eb72115e6fed990ed1ea01b4148b777" + integrity sha512-NwPj1LdSYzQFgOF6ns5ZgaNGoERq0iZJ9kqqkKhGp954LdzlZx+wwAnXPd7athUCR7jIzOL27wlogYFdb5AAHQ== dependencies: "@ethersproject/bignumber" "5.5.0" "@ethersproject/bytes" "5.5.0" "@ethersproject/properties" "5.5.0" "@ethersproject/web" "5.5.0" "@hethers/logger" "1.1.0" - "@hethers/networks" "1.1.0" - "@hethers/transactions" "1.1.1" + "@hethers/networks" "1.1.2" + "@hethers/transactions" "1.1.2" -"@hethers/abstract-signer@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.1.tgz#60d95c45811bad09c5eda9236b7ba3b9935c65bb" - integrity sha512-g6NyaC/Fwj+l30MqMudKRgL/zNJUcHFdJ5ZdRJAeJaOVBRl7Za3X/2Fz9/A1YJocnhvZFBygq67fl25a+1aKYw== - dependencies: - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@hethers/abstract-provider" "1.1.1" - "@hethers/address" "1.1.0" - "@hethers/logger" "1.1.0" - "@hethers/transactions" "1.1.1" - -"@hethers/abstract-signer@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.2.tgz#f42d02b1d5763b77535ad5236174c476a4e9357d" - integrity sha512-F66cbneTByr/BlfXvXsZ1wfjxXAa1daTMV0YNWrBgsjuT/xZxyqfuEMCNeHVYSd91S7gNlGGdGcEqKcqlJpVew== +"@hethers/abstract-signer@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.3.tgz#1f2b2e0a328d64ce8f66e2cd03baa02500b65411" + integrity sha512-u9rFmHhSyxVM2IsNBYApHNekoaDIUviIkJ6VqgnQoJzokbJUL63fO+cEXayYmXCjLmilcYTOL4fbIyQK1IFRuQ== dependencies: "@ethersproject/bignumber" "5.5.0" "@ethersproject/bytes" "5.5.0" "@ethersproject/properties" "5.5.0" - "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-provider" "1.1.2" "@hethers/address" "1.1.0" "@hethers/logger" "1.1.0" - "@hethers/transactions" "1.1.1" + "@hethers/transactions" "1.1.2" "@hethers/address@1.1.0": version "1.1.0" @@ -828,26 +825,26 @@ dependencies: "@ethersproject/bignumber" "5.5.0" -"@hethers/contracts@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/contracts/-/contracts-1.1.1.tgz#5f56f2741d46b810476f7d0a39b3c1f7a4019722" - integrity sha512-72zte2dgoLBnsf5DU1YtfbWvQ9OZh6S1qdBdRCxaNBc/3p0lTuxPWcerIuLeKV/HtDKnwSU4mYIoO46FWyZ2eA== +"@hethers/contracts@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@hethers/contracts/-/contracts-1.1.3.tgz#03112b856611e46a6bca55ab744841740f23ade6" + integrity sha512-CJh2UuEyx8ruM5Fr7JbSmkSiHembnLGcpdqnPF8ev9wwSRkGugsTZ5KHaM9pJdBgLMrkL7z87xTRDaWxsZapEQ== dependencies: "@ethersproject/abi" "5.5.0" "@ethersproject/bignumber" "5.5.0" "@ethersproject/bytes" "5.5.0" "@ethersproject/properties" "5.5.0" - "@hethers/abstract-provider" "1.1.1" - "@hethers/abstract-signer" "1.1.1" + "@hethers/abstract-provider" "1.1.2" + "@hethers/abstract-signer" "1.1.3" "@hethers/address" "1.1.0" "@hethers/logger" "1.1.0" - "@hethers/providers" "1.1.1" - "@hethers/transactions" "1.1.1" + "@hethers/providers" "1.1.3" + "@hethers/transactions" "1.1.2" -"@hethers/hdnode@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/hdnode/-/hdnode-1.1.1.tgz#9c2a53f496b405ae8636dabeecf62bcd6b99c365" - integrity sha512-/yECuQAUaCGIhcDG3x81XJOH6nDwahfMpSq7B7AWl+buS7tswBF9fYwAD/G9SzgnjB9LlIaBWCJcK1/Z5sU39g== +"@hethers/hdnode@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@hethers/hdnode/-/hdnode-1.1.3.tgz#710cfd01ad7050b2202349cb1eb43f79d5ea34ba" + integrity sha512-14+CjQaHTwm3lF1KX+OzKKumlx4gXwQUanNvUeC19cZVMD1VlQmKc/n6od9V8P4I9BO8RopcHv+GyDw48XUKOA== dependencies: "@ethersproject/basex" "5.5.0" "@ethersproject/bignumber" "5.5.0" @@ -857,15 +854,15 @@ "@ethersproject/sha2" "5.5.0" "@ethersproject/strings" "5.5.0" "@ethersproject/wordlists" "5.5.0" - "@hethers/abstract-signer" "1.1.1" + "@hethers/abstract-signer" "1.1.3" "@hethers/logger" "1.1.0" "@hethers/signing-key" "1.1.0" - "@hethers/transactions" "1.1.1" + "@hethers/transactions" "1.1.2" -"@hethers/json-wallets@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/json-wallets/-/json-wallets-1.1.1.tgz#8746dada5206e9ef819056ae856fdffe20de70d9" - integrity sha512-GtEHrKex0B0u3EdTX6tYrMpYESvS1zZNraE1Q/gFyWpB/VmwEze2aUApdcEDnWiOJOvZhg5E8QOaSZeHzMS0SQ== +"@hethers/json-wallets@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@hethers/json-wallets/-/json-wallets-1.1.3.tgz#2610585c7f2d44819c65f95c6cf93c9af21f6e11" + integrity sha512-FRve8n3Hx2IQQyFpvOLsvUMw/6MUQDjkROtxQn+LLnr6KrEA5VmXeFy0av5MkwjbFw6x98DW1ZxfHyLQD9XAOw== dependencies: "@ethersproject/bytes" "5.5.0" "@ethersproject/keccak256" "5.5.0" @@ -873,11 +870,11 @@ "@ethersproject/properties" "5.5.0" "@ethersproject/random" "5.5.0" "@ethersproject/strings" "5.5.0" - "@hethers/abstract-signer" "1.1.1" + "@hethers/abstract-signer" "1.1.3" "@hethers/address" "1.1.0" - "@hethers/hdnode" "1.1.1" + "@hethers/hdnode" "1.1.3" "@hethers/logger" "1.1.0" - "@hethers/transactions" "1.1.1" + "@hethers/transactions" "1.1.2" aes-js "3.0.0" scrypt-js "3.0.1" @@ -886,18 +883,18 @@ resolved "https://registry.yarnpkg.com/@hethers/logger/-/logger-1.1.0.tgz#946017e30fd6b573f744d9bc76d005dd07e39549" integrity sha512-EZAM5kirlNobe6auj7AUS1QyNOxunm9ZglatkC0fIx+9y4tEQsrx4asu5r2SPg1fgZiJ9mk2DbaidMWuHSr3kA== -"@hethers/networks@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@hethers/networks/-/networks-1.1.0.tgz#55011e436566a0e34c8e3cab81ffd7eb16f709d0" - integrity sha512-xtS+5KHlyXND+1CbUCeMPJrqlyDk7ayhcxeAKSc7aHyHm1/wa3xI45W6tJj+AMDC8sGS5GZvAU3YrKSkUGTFdw== +"@hethers/networks@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hethers/networks/-/networks-1.1.2.tgz#cc2e7745046342b185c31bf29983dda76ebc56aa" + integrity sha512-b8GLO6Z8O7hO6OpHAnbnvFXBlUFSz3HbK/1GpoyXwfDFzQZ9EjzD6MUaiX6NCFaZ14OL/o3IrB9eJnFPpK3Nuw== dependencies: "@hethers/address" "1.1.0" "@hethers/logger" "1.1.0" -"@hethers/providers@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/providers/-/providers-1.1.1.tgz#4dd374a75aeb99a03e93859b22d6f859dede8ec4" - integrity sha512-6CdwiB7GVD7tFm7G1mLemoVKgZ8KNiQvTTEyFxqazRFW6G8unVW07S104+hq/jfVL2eMoZP0O3LZLD+ny5Jelg== +"@hethers/providers@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@hethers/providers/-/providers-1.1.3.tgz#45b89351b3aac076715bc288826c4977b841dc02" + integrity sha512-b4uuaq6MKiFhu1m8uP9aAX3n/9yQM3QbrHYbhbnYTip0pZ8yg+kPawTfqRoqz913Mj62f1Vq1GfJqclJWme0gw== dependencies: "@ethersproject/base64" "5.5.0" "@ethersproject/basex" "5.5.0" @@ -910,14 +907,14 @@ "@ethersproject/strings" "5.5.0" "@ethersproject/web" "5.5.0" "@hashgraph/proto" "2.1.5" - "@hashgraph/sdk" "2.11.0-beta.1" - "@hethers/abstract-provider" "1.1.1" - "@hethers/abstract-signer" "1.1.1" + "@hashgraph/sdk" "^2.17.1" + "@hethers/abstract-provider" "1.1.2" + "@hethers/abstract-signer" "1.1.3" "@hethers/address" "1.1.0" "@hethers/constants" "1.1.0" "@hethers/logger" "1.1.0" - "@hethers/networks" "1.1.0" - "@hethers/transactions" "1.1.1" + "@hethers/networks" "1.1.2" + "@hethers/transactions" "1.1.2" "@types/axios" "^0.14.0" axios "^0.24.0" bech32 "1.1.4" @@ -935,10 +932,10 @@ elliptic "6.5.4" hash.js "1.1.7" -"@hethers/transactions@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/transactions/-/transactions-1.1.1.tgz#9e6bfa02547bede017065647eede0d49c1e3c23e" - integrity sha512-M4EL3l/xJ3MmtWSQEm8ZpD9LJUd9LPEi106VfBEL/ns/xcTW6wRlIw+xwLHdqDibZ8/Niu8SYN18LbHp/zY6ng== +"@hethers/transactions@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hethers/transactions/-/transactions-1.1.2.tgz#bac9027a9668acab2790d1e094f32c121d8d1989" + integrity sha512-vVyuiLFp/npfPL1t1dbSLOokcsUTF+kZkbY19z8xvGrOsEuHFdCNghRyklC60T0T7Foq+qXzYvEKV52HnVLtgw== dependencies: "@ethersproject/base64" "5.5.0" "@ethersproject/bignumber" "5.5.0" @@ -958,10 +955,10 @@ "@ethersproject/bignumber" "5.5.0" "@hethers/logger" "1.1.0" -"@hethers/wallet@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/wallet/-/wallet-1.1.1.tgz#f1eddf7e4a77b821faa85392745ef404655e9f96" - integrity sha512-tg6vrjZL1t1FQziCat7zBx2IjqfFbWsQv5WwZkHPjn7Y/lFzmZuVYdh90t7/p3rquC96VGdmqYa/557qdotzRw== +"@hethers/wallet@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@hethers/wallet/-/wallet-1.1.3.tgz#bf3ec2cf53aa5a4bf7129fd79870783d01814df6" + integrity sha512-W4k2FEClW8jzNCFgbWd58U2av3hsoF/pNclpeEaASWo3aZEcmPGc1/87AwwMXBaM3lzDN/BTzLMkZY3ogIA8jQ== dependencies: "@ethersproject/bignumber" "5.5.0" "@ethersproject/bytes" "5.5.0" @@ -970,15 +967,15 @@ "@ethersproject/properties" "5.5.0" "@ethersproject/random" "5.5.0" "@ethersproject/wordlists" "5.5.0" - "@hashgraph/sdk" "2.11.0-beta.1" - "@hethers/abstract-provider" "1.1.1" - "@hethers/abstract-signer" "1.1.1" + "@hashgraph/sdk" "^2.17.1" + "@hethers/abstract-provider" "1.1.2" + "@hethers/abstract-signer" "1.1.3" "@hethers/address" "1.1.0" - "@hethers/hdnode" "1.1.1" - "@hethers/json-wallets" "1.1.1" + "@hethers/hdnode" "1.1.3" + "@hethers/json-wallets" "1.1.3" "@hethers/logger" "1.1.0" "@hethers/signing-key" "1.1.0" - "@hethers/transactions" "1.1.1" + "@hethers/transactions" "1.1.2" "@humanwhocodes/config-array@^0.5.0": version "0.5.0" @@ -1049,7 +1046,7 @@ rxjs "6" semver "^7.3.5" -"@ledgerhq/devices@^6.11.2", "@ledgerhq/devices@^6.27.1": +"@ledgerhq/devices@^6.11.2": version "6.27.1" resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-6.27.1.tgz#3b13ab1d1ba8201e9e74a08f390560483978c962" integrity sha512-jX++oy89jtv7Dp2X6gwt3MMkoajel80JFWcdc0HCouwDsV1mVJ3SQdwl/bQU0zd8HI6KebvUP95QTwbQLLK/RQ== @@ -1059,15 +1056,25 @@ rxjs "6" semver "^7.3.5" +"@ledgerhq/devices@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-7.0.0.tgz#ba743aa6d0725562e8b1bd5c4f0b7db2cf573710" + integrity sha512-vq4B33WdU0dRAJIRFWZMj6w1W1yw1i4mekCmhk7N9wPaFrtGWZ2iI9WDihsNOBooCWKQe8Jsb9eD8RVThbSlFQ== + dependencies: + "@ledgerhq/errors" "^6.10.1" + "@ledgerhq/logs" "^6.10.0" + rxjs "6" + semver "^7.3.5" + "@ledgerhq/errors@^5.34.0", "@ledgerhq/errors@^5.48.0", "@ledgerhq/errors@^5.50.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== -"@ledgerhq/errors@^6.10.0": - version "6.10.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.10.0.tgz#dda9127b65f653fbb2f74a55e8f0e550d69de6e4" - integrity sha512-fQFnl2VIXh9Yd41lGjReCeK+Q2hwxQJvLZfqHnKqWapTz68NHOv5QcI0OHuZVNEbv0xhgdLhi5b65kgYeQSUVg== +"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.10.1": + version "6.10.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.10.1.tgz#510688251b6261744c6b1cde6cfd2dfb13fc27b2" + integrity sha512-92d1zRQleR1AQ4CAXgWgDtKUms+8EwShLVUcajI+BLWvgJ1Vclmq6PsBIDEQbsm+riVu/Ji3LcHdmgFgmi0VGw== "@ledgerhq/hw-transport-node-hid-noevents@^5.51.1": version "5.51.1" @@ -1126,13 +1133,13 @@ "@ledgerhq/logs" "^5.48.0" "@ledgerhq/hw-transport-webhid@^6.11.2": - version "6.27.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.1.tgz#8fd1710d23b6bd7cbe2382dd02054dfabe788447" - integrity sha512-u74rBYlibpbyGblSn74fRs2pMM19gEAkYhfVibq0RE1GNFjxDMFC1n7Sb+93Jqmz8flyfB4UFJsxs8/l1tm2Kw== + version "6.27.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.2.tgz#e3ee2501b1353a335d7436c1f2b95821d2b2f426" + integrity sha512-ZlyNheUhcxBZqjJzhSfJfeGQvNbeyWs9866rdQjVeG1zsbTJi0+6tfRv8J248QISS8vHtG5IMSxgMg9mtux9dQ== dependencies: - "@ledgerhq/devices" "^6.27.1" - "@ledgerhq/errors" "^6.10.0" - "@ledgerhq/hw-transport" "^6.27.1" + "@ledgerhq/devices" "^7.0.0" + "@ledgerhq/errors" "^6.10.1" + "@ledgerhq/hw-transport" "^6.27.2" "@ledgerhq/logs" "^6.10.0" "@ledgerhq/hw-transport-webusb@5.48.0": @@ -1164,13 +1171,13 @@ "@ledgerhq/errors" "^5.50.0" events "^3.3.0" -"@ledgerhq/hw-transport@^6.11.2", "@ledgerhq/hw-transport@^6.27.1": - version "6.27.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.1.tgz#88072278f69c279cb6569352acd4ae2fec33ace3" - integrity sha512-hnE4/Fq1YzQI4PA1W0H8tCkI99R3UWDb3pJeZd6/Xs4Qw/q1uiQO+vNLC6KIPPhK0IajUfuI/P2jk0qWcMsuAQ== +"@ledgerhq/hw-transport@^6.11.2", "@ledgerhq/hw-transport@^6.27.2": + version "6.27.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.2.tgz#318e24b13b4bc392277d0b3b6fbc568f86b41f01" + integrity sha512-GF4pmK78rEKhZfbmunwQ131c+0MGa6L5IoYlwgFcg6CaFpUjjPiTCKUFsm4flsE0Z0Ltn9QuKoe+xEHULo7rGA== dependencies: - "@ledgerhq/devices" "^6.27.1" - "@ledgerhq/errors" "^6.10.0" + "@ledgerhq/devices" "^7.0.0" + "@ledgerhq/errors" "^6.10.1" events "^3.3.0" "@ledgerhq/logs@^5.30.0", "@ledgerhq/logs@^5.48.0", "@ledgerhq/logs@^5.50.0": @@ -1188,10 +1195,10 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.0.0.tgz#d5e38bfbdaba174805a4e649f13be9a9ed3351ae" integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== -"@noble/secp256k1@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.5.2.tgz#40399e4fba54f588fda14fc03a4499044fdcab24" - integrity sha512-5mzA40W2q55VCRuC9XzmkiEnODdY0c5a7qsK2QcOfI5/MuVQyBaWGQyE6YOEF7kDwp+tDVWGsCDVJUME+wsWWw== +"@noble/secp256k1@1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" + integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1252,17 +1259,17 @@ "@octokit/types" "^6.0.3" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^12.7.0": - version "12.8.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.8.0.tgz#f4708cf948724d6e8f7d878cfd91584c1c5c0523" - integrity sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg== +"@octokit/openapi-types@^12.11.0": + version "12.11.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== "@octokit/plugin-paginate-rest@^2.16.8": - version "2.21.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.1.tgz#9ab7a21e9f35a6d5526a3082da3f8f43908449e4" - integrity sha512-NVNTK63yoTFp07GqISWK+uDfGH1CAPhQXS7LzsJBvaK5W+UlvG549pLZC55FK0FqANVl6q/9ra3SR5c97xF/sw== + version "2.21.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" + integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== dependencies: - "@octokit/types" "^6.38.2" + "@octokit/types" "^6.40.0" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" @@ -1308,17 +1315,26 @@ "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^5.12.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.38.2", "@octokit/types@^6.39.0": - version "6.39.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.39.0.tgz#46ce28ca59a3d4bac0e487015949008302e78eee" - integrity sha512-Mq4N9sOAYCitTsBtDdRVrBE80lIrMBhL9Jbrw0d+j96BAzlq4V+GLHFJbHokEsVvO/9tQupQdoFdgVYhD2C8UQ== +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0": + version "6.41.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== dependencies: - "@octokit/openapi-types" "^12.7.0" + "@octokit/openapi-types" "^12.11.0" + +"@osmonauts/helpers@0.3.8": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@osmonauts/helpers/-/helpers-0.3.8.tgz#77a57cdd20922cd477f21de9662a403620e2c848" + integrity sha512-6xM/DGjLctziRVT2DuR7/MQ/HqfHAcqOaGF4z77Jeh3RWQ78zWiaRVxBefRQdKaqrh5LhXL6VebUdiy9IGwTTA== + dependencies: + "@babel/runtime" "^7.18.3" + long "^5.2.0" + protobufjs "^6.11.3" "@peculiar/asn1-schema@^2.1.6": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.2.0.tgz#d8a54527685c8dee518e6448137349444310ad64" - integrity sha512-1ENEJNY7Lwlua/1wvzpYP194WtjQBfFxvde2FlzfBFh/ln6wvChrtxlORhbKEnYswzn6fOC4c7HdC5izLPMTJg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.0.tgz#5368416eb336138770c692ffc2bab119ee3ae917" + integrity sha512-DtNLAG4vmDrdSJFPe7rypkcj597chNQL7u+2dBtYo5mh7VW2+im6ke+O0NVr8W1f4re4C3F71LhoMb0Yxqa48Q== dependencies: asn1js "^3.0.5" pvtsutils "^1.3.2" @@ -1458,12 +1474,7 @@ resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@sindresorhus/is@^4.0.0": +"@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0": version "4.6.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== @@ -1501,9 +1512,9 @@ start-server-and-test "^1.14.0" "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2": - version "1.47.3" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.47.3.tgz#ec13f2cf4f9f54cc4fbd26d20be1e026c6e2279c" - integrity sha512-TQJulaN/+b0xXq5EhQAYFwVyOORxSyVJn1EiXupClZm8DY7f9EeUG6vl0FzSAgwEAwXKsgK3sVs/3px2e7H7dQ== + version "1.53.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.53.0.tgz#24a6341e4026fc2b993656141361c54bec917c07" + integrity sha512-QyQDA9U5b+AiTo1ANsj9WihWWECeLv6VRpiTE7xPe5hLYANXZYecnlLglNiEzVgRg/jLvR5DrCISXhHx/mAEJw== dependencies: "@babel/runtime" "^7.12.5" "@ethersproject/sha2" "^5.5.0" @@ -1517,10 +1528,11 @@ jayson "^3.4.4" js-sha3 "^0.8.0" node-fetch "2" + react-native-url-polyfill "^1.3.0" rpc-websockets "^7.5.0" secp256k1 "^4.0.2" superstruct "^0.14.2" - tweetnacl "^1.0.0" + tweetnacl "^1.0.3" "@stablelib/binary@^1.0.1": version "1.0.1" @@ -1642,13 +1654,6 @@ "@stablelib/salsa20" "^1.0.2" "@stablelib/wipe" "^1.0.1" -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - "@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1656,6 +1661,13 @@ dependencies: defer-to-connect "^2.0.0" +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + "@taquito/http-utils@^13.0.1": version "13.0.1" resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-13.0.1.tgz#b682b7161ce8011afdea1b06750ad21e15916c63" @@ -1800,7 +1812,7 @@ dependencies: "@types/node" "*" -"@types/cacheable-request@^6.0.1": +"@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": version "6.0.2" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== @@ -1818,9 +1830,9 @@ "@types/chai" "*" "@types/chai@*", "@types/chai@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.1.tgz#e2c6e73e0bdeb2521d00756d099218e9f5d90a04" - integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ== + version "4.3.3" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" + integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== "@types/connect@^3.4.33": version "3.4.35" @@ -1829,15 +1841,6 @@ dependencies: "@types/node" "*" -"@types/express-serve-static-core@^4.17.9": - version "4.17.29" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz#2a1795ea8e9e9c91b4a4bbe475034b20c1ec711c" - integrity sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" @@ -1860,11 +1863,6 @@ dependencies: "@types/node" "*" -"@types/lodash@^4.14.159": - version "4.14.182" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" - integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== - "@types/long@^4.0.1": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" @@ -1876,9 +1874,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "18.0.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199" - integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ== + version "18.7.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.6.tgz#31743bc5772b6ac223845e18c3fc26f042713c83" + integrity sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A== "@types/node@10.12.18": version "10.12.18" @@ -1912,16 +1910,6 @@ dependencies: "@types/node" "*" -"@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - "@types/responselike@*", "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -2072,13 +2060,13 @@ uuid "2.0.1" xmlhttprequest "1.8.0" -"@walletconnect/browser-utils@^1.7.8": - version "1.7.8" - resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.8.tgz#c9e27f69d838442d69ccf53cb38ffc3c554baee2" - integrity sha512-iCL0XCWOZaABIc0lqA79Vyaybr3z26nt8mxiwvfrG8oaKUf5Y21Of4dj+wIXQ4Hhblre6SgDlU0Ffb39+1THOw== +"@walletconnect/browser-utils@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951" + integrity sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A== dependencies: "@walletconnect/safe-json" "1.0.0" - "@walletconnect/types" "^1.7.8" + "@walletconnect/types" "^1.8.0" "@walletconnect/window-getters" "1.0.0" "@walletconnect/window-metadata" "1.0.0" detect-browser "5.2.0" @@ -2094,23 +2082,23 @@ "@walletconnect/utils" "^1.6.5" "@walletconnect/client@^1.7.0": - version "1.7.8" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.7.8.tgz#62c2d7114e59495d90772ea8033831ceb29c6a78" - integrity sha512-pBroM6jZAaUM0SoXJZg5U7aPTiU3ljQAw3Xh/i2pxFDeN/oPKao7husZ5rdxS5xuGSV6YpqqRb0RxW1IeoR2Pg== + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.8.0.tgz#6f46b5499c7c861c651ff1ebe5da5b66225ca696" + integrity sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ== dependencies: - "@walletconnect/core" "^1.7.8" - "@walletconnect/iso-crypto" "^1.7.8" - "@walletconnect/types" "^1.7.8" - "@walletconnect/utils" "^1.7.8" + "@walletconnect/core" "^1.8.0" + "@walletconnect/iso-crypto" "^1.8.0" + "@walletconnect/types" "^1.8.0" + "@walletconnect/utils" "^1.8.0" -"@walletconnect/core@^1.6.5", "@walletconnect/core@^1.7.8": - version "1.7.8" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.7.8.tgz#97c52ea7d00126863cd37bf19bd3e87d4f30de1e" - integrity sha512-9xcQ0YNf9JUFb0YOX1Mpy4Yojt+6w2yQz/0aIEyj2X/s9D71NW0fTYsMcdhkLOI7mn2cqVbx2t1lRvdgqsbrSQ== +"@walletconnect/core@^1.6.5", "@walletconnect/core@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.8.0.tgz#6b2748b90c999d9d6a70e52e26a8d5e8bfeaa81e" + integrity sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw== dependencies: - "@walletconnect/socket-transport" "^1.7.8" - "@walletconnect/types" "^1.7.8" - "@walletconnect/utils" "^1.7.8" + "@walletconnect/socket-transport" "^1.8.0" + "@walletconnect/types" "^1.8.0" + "@walletconnect/utils" "^1.8.0" "@walletconnect/crypto@^1.0.2": version "1.0.2" @@ -2136,14 +2124,14 @@ resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== -"@walletconnect/iso-crypto@^1.6.5", "@walletconnect/iso-crypto@^1.7.8": - version "1.7.8" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.7.8.tgz#41f09326d129faa09beae213e78614c19d90bbd6" - integrity sha512-Qo6qDcMG0Ac+9fpWE0h/oE55NHLk6eM2vlXpWlQDN/me7RZGrkvk+LXsAkQ3UiYPEiPfq4eswcyRWC9AcrAscg== +"@walletconnect/iso-crypto@^1.6.5", "@walletconnect/iso-crypto@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451" + integrity sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ== dependencies: "@walletconnect/crypto" "^1.0.2" - "@walletconnect/types" "^1.7.8" - "@walletconnect/utils" "^1.7.8" + "@walletconnect/types" "^1.8.0" + "@walletconnect/utils" "^1.8.0" "@walletconnect/jsonrpc-types@^1.0.1": version "1.0.1" @@ -2152,7 +2140,7 @@ dependencies: keyvaluestorage-interface "^1.0.0" -"@walletconnect/jsonrpc-utils@^1.0.0": +"@walletconnect/jsonrpc-utils@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz#5bd49865eef0eae48e8b45a06731dc18691cf8c7" integrity sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ== @@ -2174,29 +2162,29 @@ resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== -"@walletconnect/socket-transport@^1.7.8": - version "1.7.8" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.7.8.tgz#a4ef50d8054293991dbfde7f9c66788030182ec3" - integrity sha512-bqEjLxfSzG79v2OT7XVOZoyUkg6g3yng0fURrdLusWs42fYHWnrSrIZDejFn8N5PiZk5R2edrggkQ7w0VUUAfw== +"@walletconnect/socket-transport@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz#9a1128a249628a0be11a0979b522fe82b44afa1b" + integrity sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ== dependencies: - "@walletconnect/types" "^1.7.8" - "@walletconnect/utils" "^1.7.8" + "@walletconnect/types" "^1.8.0" + "@walletconnect/utils" "^1.8.0" ws "7.5.3" -"@walletconnect/types@^1.6.5", "@walletconnect/types@^1.7.8": - version "1.7.8" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.7.8.tgz#ec397e6fbdc8147bccc17029edfeb41c50a5ca09" - integrity sha512-0oSZhKIrtXRJVP1jQ0EDTRtotQY6kggGjDcmm/LLQBKnOZXdPeo0sPkV/7DjT5plT3O7Cjc6JvuXt9WOY0hlCA== +"@walletconnect/types@^1.6.5", "@walletconnect/types@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" + integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== -"@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.7.8": - version "1.7.8" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.7.8.tgz#f94572bca5eb6b5f81daf8a35268f249f9c6b1ec" - integrity sha512-DSpfH6Do0TQmdrgzu+SyjVhupVjN0WEMvNWGK9K4VlSmLFpCWfme7qxzrvuxBZ47gDqs1kGWvjyJmviWqvOnAg== +"@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.8.0.tgz#2591a197c1fa7429941fe428876088fda6632060" + integrity sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA== dependencies: - "@walletconnect/browser-utils" "^1.7.8" + "@walletconnect/browser-utils" "^1.8.0" "@walletconnect/encoding" "^1.0.1" - "@walletconnect/jsonrpc-utils" "^1.0.0" - "@walletconnect/types" "^1.7.8" + "@walletconnect/jsonrpc-utils" "^1.0.3" + "@walletconnect/types" "^1.8.0" bn.js "4.11.8" js-sha3 "0.8.0" query-string "6.13.5" @@ -2228,6 +2216,11 @@ abort-controller@3.0.0: dependencies: event-target-shim "^5.0.0" +abortcontroller-polyfill@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5" + integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== + accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -2292,9 +2285,9 @@ algo-msgpack-with-bigint@^2.1.1: integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== algosdk@^1.15.0-beta.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.18.1.tgz#b9be65a713af98712f62f31188bf185c12972e28" - integrity sha512-P0mlSfMSbylMfUG2SZgxnhSE1JvQFIK4wT8O9ZvBvy1+pxs53MdAKfYkfC95cK3VqCvq616PuXM6bzI2mpQbPA== + version "1.19.0" + resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.19.0.tgz#168905e633ccedc8b8d2167d5dcd6f6ac58dafbe" + integrity sha512-odDyNSsr3RK8oDgmMLqt0PFuukeXpETAVa0TkSCPE3IeUIEslwNu5zA6cXs5ParJOcsWjQENRw+XJ9FMEDHW4w== dependencies: algo-msgpack-with-bigint "^2.1.1" buffer "^6.0.2" @@ -2305,6 +2298,9 @@ algosdk@^1.15.0-beta.1: json-bigint "^1.0.0" superagent "^6.1.0" tweetnacl "^1.0.3" + vlq "^2.0.4" + optionalDependencies: + fsevents "2.1.2" ansi-colors@^4.1.1: version "4.1.3" @@ -2484,7 +2480,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@*: +axios@*, axios@^0.27.2: version "0.27.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== @@ -2601,7 +2597,7 @@ bignumber.js@9.0.1, bignumber.js@=9.0.1: resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== -bignumber.js@9.0.2, bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2: +bignumber.js@9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== @@ -2611,6 +2607,11 @@ bignumber.js@^7.2.1: resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== +bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2: + version "9.1.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" + integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -2898,7 +2899,7 @@ buffer@6.0.3, buffer@^6.0.2, buffer@^6.0.3, buffer@~6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.0.5, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2923,18 +2924,10 @@ cacheable-lookup@^5.0.3: resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== -cacheable-request@^6.0.0: +cacheable-lookup@^6.0.4: version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - 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" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" + integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== cacheable-request@^7.0.2: version "7.0.2" @@ -3093,9 +3086,9 @@ cliui@^7.0.2: wrap-ansi "^7.0.0" clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== dependencies: mimic-response "^1.0.0" @@ -3214,7 +3207,7 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookiejar@^2.1.1, cookiejar@^2.1.2: +cookiejar@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== @@ -3288,7 +3281,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-fetch@^3.1.5: +cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -3436,12 +3429,7 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -defer-to-connect@^2.0.0: +defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== @@ -3698,9 +3686,9 @@ es-to-primitive@^1.2.1: is-symbol "^1.0.2" es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.61" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.61.tgz#311de37949ef86b6b0dcea894d1ffedb909d3269" - integrity sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA== + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== dependencies: es6-iterator "^2.0.3" es6-symbol "^3.1.3" @@ -3720,7 +3708,7 @@ es6-object-assign@^1.1.0: resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== -es6-promise@^4.0.3: +es6-promise@^4.0.3, es6-promise@^4.2.8: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== @@ -3740,132 +3728,132 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: d "^1.0.1" ext "^1.1.2" -esbuild-android-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.53.tgz#259bc3ef1399a3cad8f4f67c40ee20779c4de675" - integrity sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA== - -esbuild-android-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.53.tgz#2158253d4e8f9fdd2a081bbb4f73b8806178841e" - integrity sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A== - -esbuild-darwin-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.53.tgz#b4681831fd8f8d06feb5048acbe90d742074cc2a" - integrity sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg== - -esbuild-darwin-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.53.tgz#d267d957852d121b261b3f76ead86e5b5463acc9" - integrity sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA== - -esbuild-freebsd-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.53.tgz#aca2af6d72b537fe66a38eb8f374fb66d4c98ca0" - integrity sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w== - -esbuild-freebsd-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.53.tgz#76282e19312d914c34343c8a7da6cc5f051580b9" - integrity sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ== - -esbuild-linux-32@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.53.tgz#1045d34cf7c5faaf2af3b29cc1573b06580c37e5" - integrity sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg== - -esbuild-linux-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.53.tgz#ab3f2ee2ebb5a6930c72d9539cb34b428808cbe4" - integrity sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ== - -esbuild-linux-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.53.tgz#1f5530412f6690949e78297122350488d3266cfe" - integrity sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw== - -esbuild-linux-arm@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.53.tgz#a44ec9b5b42007ab6c0d65a224ccc6bbd97c54cf" - integrity sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA== - -esbuild-linux-mips64le@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.53.tgz#a4d0b6b17cfdeea4e41b0b085a5f73d99311be9f" - integrity sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ== - -esbuild-linux-ppc64le@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.53.tgz#8c331822c85465434e086e3e6065863770c38139" - integrity sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA== - -esbuild-linux-riscv64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.53.tgz#36fd75543401304bea8a2d63bf8ea18aaa508e00" - integrity sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ== - -esbuild-linux-s390x@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.53.tgz#1622677ab6824123f48f75d3afc031cd41936129" - integrity sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg== - -esbuild-netbsd-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.53.tgz#e86d0efd0116658be335492ed12e66b26b4baf52" - integrity sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ== - -esbuild-openbsd-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.53.tgz#9bcbbe6f86304872c6e91f64c8eb73fc29c3588b" - integrity sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ== - -esbuild-sunos-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.53.tgz#f7a872f7460bfb7b131f7188a95fbce3d1c577e8" - integrity sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g== - -esbuild-windows-32@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.53.tgz#c5e3ca50e2d1439cc2c9fe4defa63bcd474ce709" - integrity sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg== - -esbuild-windows-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.53.tgz#ec2ab4a60c5215f092ffe1eab6d01319e88238af" - integrity sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ== - -esbuild-windows-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.53.tgz#f71d403806bdf9f4a1f9d097db9aec949bd675c8" - integrity sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ== +esbuild-android-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" + integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== + +esbuild-android-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" + integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== + +esbuild-darwin-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" + integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== + +esbuild-darwin-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" + integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== + +esbuild-freebsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" + integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== + +esbuild-freebsd-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" + integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== + +esbuild-linux-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" + integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== + +esbuild-linux-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== + +esbuild-linux-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" + integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== + +esbuild-linux-arm@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" + integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== + +esbuild-linux-mips64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" + integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== + +esbuild-linux-ppc64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" + integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== + +esbuild-linux-riscv64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" + integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== + +esbuild-linux-s390x@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" + integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== + +esbuild-netbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" + integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== + +esbuild-openbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" + integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== + +esbuild-sunos-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" + integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== + +esbuild-windows-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" + integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== + +esbuild-windows-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" + integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== + +esbuild-windows-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" + integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== esbuild@^0.14.47: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.53.tgz#20b1007f686e8584f2a01a1bec5a37aac9498ce4" - integrity sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw== + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== optionalDependencies: - "@esbuild/linux-loong64" "0.14.53" - esbuild-android-64 "0.14.53" - esbuild-android-arm64 "0.14.53" - esbuild-darwin-64 "0.14.53" - esbuild-darwin-arm64 "0.14.53" - esbuild-freebsd-64 "0.14.53" - esbuild-freebsd-arm64 "0.14.53" - esbuild-linux-32 "0.14.53" - esbuild-linux-64 "0.14.53" - esbuild-linux-arm "0.14.53" - esbuild-linux-arm64 "0.14.53" - esbuild-linux-mips64le "0.14.53" - esbuild-linux-ppc64le "0.14.53" - esbuild-linux-riscv64 "0.14.53" - esbuild-linux-s390x "0.14.53" - esbuild-netbsd-64 "0.14.53" - esbuild-openbsd-64 "0.14.53" - esbuild-sunos-64 "0.14.53" - esbuild-windows-32 "0.14.53" - esbuild-windows-64 "0.14.53" - esbuild-windows-arm64 "0.14.53" + "@esbuild/linux-loong64" "0.14.54" + esbuild-android-64 "0.14.54" + esbuild-android-arm64 "0.14.54" + esbuild-darwin-64 "0.14.54" + esbuild-darwin-arm64 "0.14.54" + esbuild-freebsd-64 "0.14.54" + esbuild-freebsd-arm64 "0.14.54" + esbuild-linux-32 "0.14.54" + esbuild-linux-64 "0.14.54" + esbuild-linux-arm "0.14.54" + esbuild-linux-arm64 "0.14.54" + esbuild-linux-mips64le "0.14.54" + esbuild-linux-ppc64le "0.14.54" + esbuild-linux-riscv64 "0.14.54" + esbuild-linux-s390x "0.14.54" + esbuild-netbsd-64 "0.14.54" + esbuild-openbsd-64 "0.14.54" + esbuild-sunos-64 "0.14.54" + esbuild-windows-32 "0.14.54" + esbuild-windows-64 "0.14.54" + esbuild-windows-arm64 "0.14.54" escalade@^3.1.1: version "3.1.1" @@ -4242,9 +4230,9 @@ expo-modules-autolinking@^0.0.3: fs-extra "^9.1.0" expo-random@*: - version "12.2.0" - resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-12.2.0.tgz#a3c8a9ce84ef2c85900131d96eea6c7123285482" - integrity sha512-SihCGLmDyDOALzBN8XXpz2hCw0RSx9c4/rvjcS4Bfqhw6luHjL2rHNTLrFYrPrPRmG1jHM6dXXJe/Zm8jdu+2g== + version "12.3.0" + resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-12.3.0.tgz#4a45bcb14e285a4a9161e4a5dc82ff6c3fc2ac0c" + integrity sha512-q+AsTfGNT+Q+fb2sRrYtRkI3g5tV4H0kuYXM186aueILGO/vLn/YYFa7xFZj1IZ8LJZg2h96JDPDpsqHfRG2mQ== dependencies: base64-js "^1.3.0" @@ -4449,9 +4437,9 @@ flow-typed@^3.2.1: yargs "^15.1.0" flowgen@^1.10.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.20.0.tgz#268b49506429c5da765da5cd49ff231fa6465fe7" - integrity sha512-7ezkbL4hKBHzgVYzmwibzGcBwu4zA47I+eP4U1U0HAG4F4p7xIYLvuEmzfk5xKzBXnsr42d/ZgMM0Le84MeS2A== + version "1.20.1" + resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.20.1.tgz#336871d59a36980fbe2c3de553bd558f06a46e24" + integrity sha512-Wus3KAhsOF7CiZGkBKZawf0AJXe06Wot6UGQt7h9QS6MBtBkFgG30wTAgpy1byA3FKYb059vO341XtN8LUhenQ== dependencies: "@babel/code-frame" "^7.16.7" "@babel/highlight" "^7.16.7" @@ -4479,6 +4467,11 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== +form-data-encoder@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" + integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -4571,6 +4564,11 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" + integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== + fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -4639,13 +4637,6 @@ get-stream@^3.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -4653,7 +4644,7 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -4717,9 +4708,9 @@ global@~4.4.0: process "^0.11.10" globals@^13.6.0, globals@^13.9.0: - version "13.16.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.16.0.tgz#9be4aca28f311aaeb974ea54978ebbb5e35ce46a" - integrity sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q== + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== dependencies: type-fest "^0.20.2" @@ -4736,26 +4727,28 @@ globby@^11.0.3: slash "^3.0.0" google-protobuf@^3.20.1: - version "3.20.1" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.20.1.tgz#1b255c2b59bcda7c399df46c65206aa3c7a0ce8b" - integrity sha512-XMf1+O32FjYIV3CYu6Tuh5PNbfNEU5Xu22X+Xkdb/DUexFlCzhvv7d5Iirm4AOwn8lv4al1YvIhzGrg2j9Zfzw== - -got@9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - 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" + version "3.21.0" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.0.tgz#8dfa3fca16218618d373d414d3c1139e28034d6e" + integrity sha512-byR7MBTK4tZ5PZEb+u5ZTzpt4SfrTxv5682MjPlHN16XeqgZE2/8HOIWeiXe8JKnT9OVbtBGhbq8mtvkK8cd5g== + +got@12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" + integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== + dependencies: + "@sindresorhus/is" "^4.6.0" + "@szmarczak/http-timer" "^5.0.1" + "@types/cacheable-request" "^6.0.2" + "@types/responselike" "^1.0.0" + cacheable-lookup "^6.0.4" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + form-data-encoder "1.7.1" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^2.0.0" got@^11.8.5: version "11.8.5" @@ -4839,7 +4832,7 @@ has-symbol-support-x@^1.4.1: resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -4958,6 +4951,14 @@ http2-wrapper@^1.0.0-beta.5.2: quick-lru "^5.1.1" resolve-alpn "^1.0.0" +http2-wrapper@^2.1.10: + version "2.1.11" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef" + integrity sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -5105,9 +5106,9 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== dependencies: has "^1.0.3" @@ -5323,13 +5324,11 @@ isurl@^1.0.0-alpha5: is-object "^1.0.1" jayson@^3.4.4: - version "3.6.6" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.6.6.tgz#189984f624e398f831bd2be8e8c80eb3abf764a1" - integrity sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ== + version "3.7.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.7.0.tgz#b735b12d06d348639ae8230d7a1e2916cb078f25" + integrity sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ== dependencies: "@types/connect" "^3.4.33" - "@types/express-serve-static-core" "^4.17.9" - "@types/lodash" "^4.14.159" "@types/node" "^12.12.54" "@types/ws" "^7.4.4" JSONStream "^1.3.5" @@ -5409,11 +5408,6 @@ json-bigint@1.0.0, json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== - json-buffer@3.0.1, json-buffer@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -5459,9 +5453,9 @@ json-text-sequence@~0.1.0: delimit-stream "0.1.0" jsonc-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.1.0.tgz#73b8f0e5c940b83d03476bc2e51a20ef0932615d" + integrity sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg== jsonfile@^4.0.0: version "4.0.0" @@ -5508,17 +5502,10 @@ kefir@^3.7.3: resolved "https://registry.yarnpkg.com/kefir/-/kefir-3.8.8.tgz#235932ddfbed422acebf5d7cba503035e9ea05c5" integrity sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA== -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - keyv@^4.0.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.3.2.tgz#e839df676a0c7ee594c8835e7c1c83742558e5c2" - integrity sha512-kn8WmodVBe12lmHpA6W8OY7SNh6wVR+Z+wZESF4iF5FCazaVXGWOtnbnvX0tMQ1bO+/TmOD9LziuYMvrIIs0xw== + version "4.3.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.3.3.tgz#6c1bcda6353a9e96fc1b4e1aeb803a6e35090ba9" + integrity sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ== dependencies: compress-brotli "^1.3.8" json-buffer "3.0.1" @@ -5585,6 +5572,11 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +long@^5.0.0, long@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.0.tgz#2696dadf4b4da2ce3f6f6b89186085d94d52fd61" + integrity sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w== + loose-envify@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -5606,7 +5598,7 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: +lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== @@ -5616,6 +5608,11 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -5646,9 +5643,9 @@ map-stream@~0.1.0: integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== marked@^4.0.16: - version "4.0.17" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.17.tgz#1186193d85bb7882159cdcfc57d1dfccaffb3fe9" - integrity sha512-Wfk0ATOK5iPxM4ptrORkFemqroz0ZDxp5MWfYA7H/F+wO17NRWV5Ypxi6p3g2Xmw2bKeiYOl6oVnLHKxBA0VhA== + version "4.0.18" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.18.tgz#cd0ac54b2e5610cfb90e8fd46ccaa8292c9ed569" + integrity sha512-wbLDJ7Zh0sqA0Vdg6aqlbT+yPxqLblpAZh1mK2+AO2twQkPywvvqQNfEPVwSSRjZ7dZcdeVBIAgiO7MMp3Dszw== md5.js@^1.3.4: version "1.3.5" @@ -5736,7 +5733,7 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^1.0.0, mimic-response@^1.0.1: +mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== @@ -6035,11 +6032,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -6111,13 +6103,13 @@ object-keys@^1.1.1: integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" object.fromentries@^2.0.3: @@ -6174,16 +6166,16 @@ p-cancelable@^0.3.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -6340,10 +6332,10 @@ platform@1.3.6: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== -postcss@^8.4.14: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== +postcss@^8.4.16: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -6378,11 +6370,6 @@ prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== - prettier@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" @@ -6458,6 +6445,25 @@ protobufjs@6.11.3, protobufjs@^6.11.2, protobufjs@^6.11.3: "@types/node" ">=13.7.0" long "^4.0.0" +protobufjs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.0.0.tgz#8c678e1351fd926178fce5a4213913e8d990974f" + integrity sha512-ffNIEm+quOcYtQvHdW406v1NQmZSuqVklxsXk076BtuFnlYZfigLU+JOMrTD8TUOyqHYbRI/fSVNvgd25YeN3w== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^5.0.0" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -6621,6 +6627,13 @@ react-native-securerandom@^0.1.1: dependencies: base64-js "*" +react-native-url-polyfill@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/react-native-url-polyfill/-/react-native-url-polyfill-1.3.0.tgz#c1763de0f2a8c22cc3e959b654c8790622b6ef6a" + integrity sha512-w9JfSkvpqqlix9UjDvJjm1EjSt652zVQ6iwCIj1cVVkwXf4jQhQgTNXY6EVTwuAmUjg6BC6k9RHCBynoLFo3IQ== + dependencies: + whatwg-url-without-unicode "8.0.0-3" + readable-stream@^2.0.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -6727,7 +6740,7 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -resolve-alpn@^1.0.0: +resolve-alpn@^1.0.0, resolve-alpn@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== @@ -6746,17 +6759,10 @@ resolve@^1.1.6, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== - dependencies: - lowercase-keys "^1.0.0" - responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== dependencies: lowercase-keys "^2.0.0" @@ -6787,10 +6793,10 @@ rlp@^2.0.0, rlp@^2.2.4: dependencies: bn.js "^5.2.0" -rollup@^2.75.6: - version "2.77.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.2.tgz#6b6075c55f9cc2040a5912e6e062151e42e2c4e3" - integrity sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g== +"rollup@>=2.75.6 <2.77.0 || ~2.77.0": + version "2.77.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" + integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== optionalDependencies: fsevents "~2.3.2" @@ -6822,9 +6828,9 @@ rxjs@6, rxjs@^6.6.3, rxjs@^6.6.7: tslib "^1.9.0" rxjs@^7.1.0: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== dependencies: tslib "^2.1.0" @@ -6868,16 +6874,17 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-gyp-build "^4.2.0" secretjs@^1.3.0-beta.1: - version "1.3.0-beta.6" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.3.0-beta.6.tgz#41ed7355f926707a665679f2357ac3ed17d83e51" - integrity sha512-0dI11xiqKWnEZxVn4k1O7WHDQ1t2Qw2XZCzxVP1tBa7KdUj4aA6kTMKsZfNQh/cvrJwnsS87WtLxUNueh7AwJw== + version "1.3.0-beta.23" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.3.0-beta.23.tgz#b956d2479cc6b06c1fed3623ae19a8ba7c540f8a" + integrity sha512-zXL0t1h68it1+77+kobAq4JcIWV7EUtHfP2W2Vpc9MpAGLUeJ5XgfSNs6uO4IYq7viIEL7idTTls/7ljWBb8xw== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" "@improbable-eng/grpc-web" "0.15.0" "@improbable-eng/grpc-web-node-http-transport" "0.15.0" "@noble/hashes" "1.0.0" - "@noble/secp256k1" "1.5.2" + "@noble/secp256k1" "1.6.3" + "@osmonauts/helpers" "0.3.8" bech32 "2.0.0" bignumber.js "9.0.2" bip32 "2.0.6" @@ -7417,14 +7424,9 @@ tinypool@^0.2.4: integrity sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ== tinyspy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.0.tgz#0cb34587287b0432b33fe36a9bd945fe22b1eb89" - integrity sha512-FI5B2QdODQYDRjfuLF+OrJ8bjWRMCXokQPcwKm0W3IzcbUmBNv536cQc7eXGoAuXphZwgx1DFbqImwzz08Fnhw== - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + version "1.0.2" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d" + integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== to-regex-range@^5.0.1: version "5.0.1" @@ -7486,9 +7488,9 @@ tronstation@^1.0.1: babel-runtime "^6.26.0" tronweb@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.2.0.tgz#332aa4df1dc8f24b5260377c3127532280eb2143" - integrity sha512-zNWG9iHCfpmRHBpiC2YpRlBdtmfdG1VNJw0uMg/lxZYyFpHghf2LvGCS34Kv7HvoLH7tck/O/CZGYudKkoLF7w== + version "4.3.0" + resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.3.0.tgz#d3a088e9efb839f0d445f9dc5c79853ab33ccbfa" + integrity sha512-U+s+NBGOg+zfiXeO2kaljJCClg8y8v0McIdO3aAN3/UujDJHou6d6XVPaiMnli4ynE0XC4JHSUM+5KcYos+DiQ== dependencies: "@babel/runtime" "^7.0.0" axios "^0.26.1" @@ -7544,7 +7546,7 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl@1.0.3, tweetnacl@^1.0.0, tweetnacl@^1.0.1, tweetnacl@^1.0.3: +tweetnacl@1.0.3, tweetnacl@^1.0.1, tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== @@ -7585,9 +7587,9 @@ type@^1.0.1: integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f" - integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ== + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: version "3.1.5" @@ -7691,13 +7693,6 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== - dependencies: - prepend-http "^2.0.0" - url-set-query@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" @@ -7810,14 +7805,14 @@ verror@1.10.0: extsprintf "^1.2.0" "vite@^2.9.12 || ^3.0.0-0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.4.tgz#c61688d6b97573e96cf5ac25f2d68597b5ce68e8" - integrity sha512-NU304nqnBeOx2MkQnskBQxVsa0pRAH5FphokTGmyy8M3oxbvw7qAXts2GORxs+h/2vKsD+osMhZ7An6yK6F1dA== + version "3.0.8" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.8.tgz#aa095ad8e3e5da46d9ec7e878f262678965d6531" + integrity sha512-AOZ4eN7mrkJiOLuw8IA7piS4IdOQyQCA81GxGsAQvAZzMRi9ZwGB3TOaYsj4uLAWK46T5L4AfQ6InNGlxX30IQ== dependencies: esbuild "^0.14.47" - postcss "^8.4.14" + postcss "^8.4.16" resolve "^1.22.1" - rollup "^2.75.6" + rollup ">=2.75.6 <2.77.0 || ~2.77.0" optionalDependencies: fsevents "~2.3.2" @@ -7836,6 +7831,11 @@ vitest@^0.18.0: tinyspy "^1.0.0" vite "^2.9.12 || ^3.0.0-0" +vlq@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-2.0.4.tgz#6057b85729245b9829e3cc7755f95b228d4fe041" + integrity sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA== + vscode-oniguruma@^1.6.1: version "1.6.2" resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" @@ -7857,85 +7857,85 @@ wait-on@6.0.0: minimist "^1.2.5" rxjs "^7.1.0" -web3-bzz@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.4.tgz#9419e606e38a9777443d4ce40506ebd796e06075" - integrity sha512-w9zRhyEqTK/yi0LGRHjZMcPCfP24LBjYXI/9YxFw9VqsIZ9/G0CRCnUt12lUx0A56LRAMpF7iQ8eA73aBcO29Q== +web3-bzz@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.5.tgz#edeb262c3a6619109763077a94172513cf07cdde" + integrity sha512-Z53sY0YK/losqjJncmL4vP0zZI9r6tiXg6o7R6e1JD2Iy7FH3serQvU+qXmPjqEBzsnhf8wTG+YcBPB3RHpr0Q== dependencies: "@types/node" "^12.12.6" - got "9.6.0" + got "12.1.0" swarm-js "^0.1.40" -web3-core-helpers@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.4.tgz#f8f808928560d3e64e0c8d7bdd163aa4766bcf40" - integrity sha512-F8PH11qIkE/LpK4/h1fF/lGYgt4B6doeMi8rukeV/s4ivseZHHslv1L6aaijLX/g/j4PsFmR42byynBI/MIzFg== +web3-core-helpers@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.5.tgz#e97b3ecac787ade4b9390807a86aca78ed97872b" + integrity sha512-lDDjTks6Q6aNUO87RYrY2xub3UWTKr/RIWxpHJODEqkLxZS1dWdyliJ6aIx3031VQwsNT5HE7NvABe/t0p3iDQ== dependencies: - web3-eth-iban "1.7.4" - web3-utils "1.7.4" + web3-eth-iban "1.7.5" + web3-utils "1.7.5" -web3-core-method@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.4.tgz#3873c6405e1a0a8a1efc1d7b28de8b7550b00c15" - integrity sha512-56K7pq+8lZRkxJyzf5MHQPI9/VL3IJLoy4L/+q8HRdZJ3CkB1DkXYaXGU2PeylG1GosGiSzgIfu1ljqS7CP9xQ== +web3-core-method@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.5.tgz#ffe8883c169468f0e4d13509377f2d8876d9b7be" + integrity sha512-ApTvq1Llzlbxmy0n4L7QaE6NodIsR80VJqk8qN4kLg30SGznt/pNJFebryLI2kpyDmxSgj1TjEWzmHJBp6FhYg== dependencies: "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.7.4" - web3-core-promievent "1.7.4" - web3-core-subscriptions "1.7.4" - web3-utils "1.7.4" + web3-core-helpers "1.7.5" + web3-core-promievent "1.7.5" + web3-core-subscriptions "1.7.5" + web3-utils "1.7.5" -web3-core-promievent@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.4.tgz#80a75633fdfe21fbaae2f1e38950edb2f134868c" - integrity sha512-o4uxwXKDldN7ER7VUvDfWsqTx9nQSP1aDssi1XYXeYC2xJbVo0n+z6ryKtmcoWoRdRj7uSpVzal3nEmlr480mA== +web3-core-promievent@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.5.tgz#56a9b06a20e20a0a89d2ab7f88d44c8ae01d5b62" + integrity sha512-uZ1VRErVuhiLtHlyt3oEH/JSvAf6bWPndChHR9PG7i1Zfqm6ZVCeM91ICTPmiL8ddsGQOxASpnJk4vhApcTIww== dependencies: eventemitter3 "4.0.4" -web3-core-requestmanager@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.4.tgz#2dc8a526dab8183dca3fef54658621801b1d0469" - integrity sha512-IuXdAm65BQtPL4aI6LZJJOrKAs0SM5IK2Cqo2/lMNvVMT9Kssq6qOk68Uf7EBDH0rPuINi+ReLP+uH+0g3AnPA== +web3-core-requestmanager@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.5.tgz#be18fc99642689aeb2e016fa43fb47bb9e8c94ce" + integrity sha512-3KpfxW/wVH4mgwWEsSJGHKrtRVoijWlDxtUrm17xgtqRNZ2mFolifKnHAUKa0fY48C9CrxmcCiMIi3W4G6WYRw== dependencies: util "^0.12.0" - web3-core-helpers "1.7.4" - web3-providers-http "1.7.4" - web3-providers-ipc "1.7.4" - web3-providers-ws "1.7.4" + web3-core-helpers "1.7.5" + web3-providers-http "1.7.5" + web3-providers-ipc "1.7.5" + web3-providers-ws "1.7.5" -web3-core-subscriptions@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.4.tgz#cfbd3fa71081a8c8c6f1a64577a1a80c5bd9826f" - integrity sha512-VJvKWaXRyxk2nFWumOR94ut9xvjzMrRtS38c4qj8WBIRSsugrZr5lqUwgndtj0qx4F+50JhnU++QEqUEAtKm3g== +web3-core-subscriptions@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.5.tgz#c0e25610768ea9d9f9107b4ac74b6b6573125e00" + integrity sha512-YK6utQ7Wwjbe4XZOIA8quWGBPi1lFDS1A+jQYwxKKrCvm6BloBNc3FhvrcSYlDhLe/kOy8+2Je8i9amndgT4ww== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.7.4" + web3-core-helpers "1.7.5" -web3-core@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.4.tgz#943fff99134baedafa7c65b4a0bbd424748429ff" - integrity sha512-L0DCPlIh9bgIED37tYbe7bsWrddoXYc897ANGvTJ6MFkSNGiMwDkTLWSgYd9Mf8qu8b4iuPqXZHMwIo4atoh7Q== +web3-core@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.5.tgz#8ee2ca490230a30ca970cb9f308eb65b76405e1d" + integrity sha512-UgOWXZr1fR/3cUQJKWbfMwRxj1/N7o6RSd/dHqdXBlOD+62EjNZItFmLRg5veq5kp9YfXzrNw9bnDkXfsL+nKQ== dependencies: "@types/bn.js" "^5.1.0" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.7.4" - web3-core-method "1.7.4" - web3-core-requestmanager "1.7.4" - web3-utils "1.7.4" + web3-core-helpers "1.7.5" + web3-core-method "1.7.5" + web3-core-requestmanager "1.7.5" + web3-utils "1.7.5" -web3-eth-abi@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.4.tgz#3fee967bafd67f06b99ceaddc47ab0970f2a614a" - integrity sha512-eMZr8zgTbqyL9MCTCAvb67RbVyN5ZX7DvA0jbLOqRWCiw+KlJKTGnymKO6jPE8n5yjk4w01e165Qb11hTDwHgg== +web3-eth-abi@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.5.tgz#db9d6dbcc043a6e922252f3228686e9bbd50d7c9" + integrity sha512-qWHvF7sayxql9BD1yqK9sZRLBQ66eJzGeaU53Y1PRq2iFPrhY6NUWxQ3c3ps0rg+dyObvRbloviWpKXcS4RE/A== dependencies: "@ethersproject/abi" "^5.6.3" - web3-utils "1.7.4" + web3-utils "1.7.5" -web3-eth-accounts@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.4.tgz#7a24a4dfe947f7e9d1bae678529e591aa146167a" - integrity sha512-Y9vYLRKP7VU7Cgq6wG1jFaG2k3/eIuiTKAG8RAuQnb6Cd9k5BRqTm5uPIiSo0AP/u11jDomZ8j7+WEgkU9+Btw== +web3-eth-accounts@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.5.tgz#b37ee3aeebcc6bce3337636aeb272cbba0ece547" + integrity sha512-AzMLoTj3RGwKpyp3x3TtHrEeU4VpR99iMOD6NKrWSDumS6QEi0lCo+y7QZhdTlINw3iIA3SFIdvbAOO4NCHSDg== dependencies: "@ethereumjs/common" "^2.5.0" "@ethereumjs/tx" "^3.3.2" @@ -7944,85 +7944,85 @@ web3-eth-accounts@1.7.4: ethereumjs-util "^7.0.10" scrypt-js "^3.0.1" uuid "3.3.2" - web3-core "1.7.4" - web3-core-helpers "1.7.4" - web3-core-method "1.7.4" - web3-utils "1.7.4" + web3-core "1.7.5" + web3-core-helpers "1.7.5" + web3-core-method "1.7.5" + web3-utils "1.7.5" -web3-eth-contract@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.4.tgz#e5761cfb43d453f57be4777b2e5e7e1082078ff7" - integrity sha512-ZgSZMDVI1pE9uMQpK0T0HDT2oewHcfTCv0osEqf5qyn5KrcQDg1GT96/+S0dfqZ4HKj4lzS5O0rFyQiLPQ8LzQ== +web3-eth-contract@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.5.tgz#a032419579bcec062513a3d089ad0e89ac63d731" + integrity sha512-qab7NPJRKRlTs58ozsqK8YIEwWpxIm3vD/okSIKBGkFx5gIHWW+vGmMh5PDSfefLJM9rCd+T+Lc0LYvtME7uqg== dependencies: "@types/bn.js" "^5.1.0" - web3-core "1.7.4" - web3-core-helpers "1.7.4" - web3-core-method "1.7.4" - web3-core-promievent "1.7.4" - web3-core-subscriptions "1.7.4" - web3-eth-abi "1.7.4" - web3-utils "1.7.4" - -web3-eth-ens@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.4.tgz#346720305379c0a539e226141a9602f1da7bc0c8" - integrity sha512-Gw5CVU1+bFXP5RVXTCqJOmHn71X2ghNk9VcEH+9PchLr0PrKbHTA3hySpsPco1WJAyK4t8SNQVlNr3+bJ6/WZA== + web3-core "1.7.5" + web3-core-helpers "1.7.5" + web3-core-method "1.7.5" + web3-core-promievent "1.7.5" + web3-core-subscriptions "1.7.5" + web3-eth-abi "1.7.5" + web3-utils "1.7.5" + +web3-eth-ens@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.5.tgz#fa0e287f5e6fae20531117b7467e21b482d58cab" + integrity sha512-k1Q0msdRv/wac2egpZBIwG3n/sa/KdrVmVJvFm471gLTL4xfUizV5qJjkDVf+ikf9JyDvWJTs5eWNUUbOFIw/A== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.7.4" - web3-core-helpers "1.7.4" - web3-core-promievent "1.7.4" - web3-eth-abi "1.7.4" - web3-eth-contract "1.7.4" - web3-utils "1.7.4" - -web3-eth-iban@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.4.tgz#711fb2547fdf0f988060027331b2b6c430505753" - integrity sha512-XyrsgWlZQMv5gRcjXMsNvAoCRvV5wN7YCfFV5+tHUCqN8g9T/o4XUS20vDWD0k4HNiAcWGFqT1nrls02MGZ08w== + web3-core "1.7.5" + web3-core-helpers "1.7.5" + web3-core-promievent "1.7.5" + web3-eth-abi "1.7.5" + web3-eth-contract "1.7.5" + web3-utils "1.7.5" + +web3-eth-iban@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.5.tgz#1a50efa42cabf1b731396d38bef6a8bf92b5ee1f" + integrity sha512-mn2W5t/1IpL8OZvzAabLKT4kvwRnZSJ9K0tctndl9sDNWkfITYQibEEhUaNNA50Q5fJKgVudHI/m0gwIVTyG8Q== dependencies: bn.js "^5.2.1" - web3-utils "1.7.4" + web3-utils "1.7.5" -web3-eth-personal@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.4.tgz#22c399794cb828a75703df8bb4b3c1331b471546" - integrity sha512-O10C1Hln5wvLQsDhlhmV58RhXo+GPZ5+W76frSsyIrkJWLtYQTCr5WxHtRC9sMD1idXLqODKKgI2DL+7xeZ0/g== +web3-eth-personal@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.5.tgz#615a3ddcf97aeea93e2a4569753c033fd7a495c5" + integrity sha512-txh2P/eN8I4AOUKFi9++KKddoD0tWfCuu9Y1Kc41jSRbk6smO88Fum0KWNmYFYhSCX2qiknS1DfqsONl3igoKQ== dependencies: "@types/node" "^12.12.6" - web3-core "1.7.4" - web3-core-helpers "1.7.4" - web3-core-method "1.7.4" - web3-net "1.7.4" - web3-utils "1.7.4" - -web3-eth@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.4.tgz#a7c1d3ccdbba4de4a82df7e3c4db716e4a944bf2" - integrity sha512-JG0tTMv0Ijj039emXNHi07jLb0OiWSA9O24MRSk5vToTQyDNXihdF2oyq85LfHuF690lXZaAXrjhtLNlYqb7Ug== - dependencies: - web3-core "1.7.4" - web3-core-helpers "1.7.4" - web3-core-method "1.7.4" - web3-core-subscriptions "1.7.4" - web3-eth-abi "1.7.4" - web3-eth-accounts "1.7.4" - web3-eth-contract "1.7.4" - web3-eth-ens "1.7.4" - web3-eth-iban "1.7.4" - web3-eth-personal "1.7.4" - web3-net "1.7.4" - web3-utils "1.7.4" - -web3-net@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.4.tgz#3153dfd3423262dd6fbec7aae5467202c4cad431" - integrity sha512-d2Gj+DIARHvwIdmxFQ4PwAAXZVxYCR2lET0cxz4KXbE5Og3DNjJi+MoPkX+WqoUXqimu/EOd4Cd+7gefqVAFDg== - dependencies: - web3-core "1.7.4" - web3-core-method "1.7.4" - web3-utils "1.7.4" + web3-core "1.7.5" + web3-core-helpers "1.7.5" + web3-core-method "1.7.5" + web3-net "1.7.5" + web3-utils "1.7.5" + +web3-eth@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.5.tgz#36906f50a6c35570cbc08871a33caa83dc131c9c" + integrity sha512-BucjvqZyDWYkGlsFX+OnOBub0YutlC1KZiNGibdmvtNX0NQK+8iw1uzAoL9yTTwCSszL7lnkFe8N+HCOl9B4Dw== + dependencies: + web3-core "1.7.5" + web3-core-helpers "1.7.5" + web3-core-method "1.7.5" + web3-core-subscriptions "1.7.5" + web3-eth-abi "1.7.5" + web3-eth-accounts "1.7.5" + web3-eth-contract "1.7.5" + web3-eth-ens "1.7.5" + web3-eth-iban "1.7.5" + web3-eth-personal "1.7.5" + web3-net "1.7.5" + web3-utils "1.7.5" + +web3-net@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.5.tgz#87fbc00a9ca40515bf60c847c0092498887cfdc8" + integrity sha512-xwuCb2YWw49PmW81AJQ/G+Xi2ikRsYyZXSgyPt4LmZuKjiqg/6kSdK8lZvUi3Pi3wM+QDBXbpr73M/WEkW0KvA== + dependencies: + web3-core "1.7.5" + web3-core-method "1.7.5" + web3-utils "1.7.5" web3-providers-connex@^0.3.1: version "0.3.1" @@ -8036,45 +8036,47 @@ web3-providers-connex@^0.3.1: thor-devkit "^2.0.4" web3 "^1.7.1" -web3-providers-http@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.4.tgz#8209cdcb115db5ccae1f550d1c4e3005e7538d02" - integrity sha512-AU+/S+49rcogUER99TlhW+UBMk0N2DxvN54CJ2pK7alc2TQ7+cprNPLHJu4KREe8ndV0fT6JtWUfOMyTvl+FRA== +web3-providers-http@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.5.tgz#144bb0c29007d1b766bafb0e20f80be050c7aa80" + integrity sha512-vPgr4Kzy0M3CHtoP/Bh7qwK/D9h2fhjpoqctdMWVJseOfeTgfOphCKN0uwV8w2VpZgDPXA8aeTdBx5OjmDdStA== dependencies: - web3-core-helpers "1.7.4" - xhr2-cookies "1.1.0" + abortcontroller-polyfill "^1.7.3" + cross-fetch "^3.1.4" + es6-promise "^4.2.8" + web3-core-helpers "1.7.5" -web3-providers-ipc@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.4.tgz#02e85e99e48f432c9d34cee7d786c3685ec9fcfa" - integrity sha512-jhArOZ235dZy8fS8090t60nTxbd1ap92ibQw5xIrAQ9m7LcZKNfmLAQUVsD+3dTFvadRMi6z1vCO7zRi84gWHw== +web3-providers-ipc@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.5.tgz#5b0f9b4f7340416953b8816d2e42e3f548d47372" + integrity sha512-aNHx+RAROzO+apDEzy8Zncj78iqWBadIXtpmFDg7uiTn8i+oO+IcP1Yni7jyzkltsysVJHgHWG4kPx50ANCK3Q== dependencies: oboe "2.1.5" - web3-core-helpers "1.7.4" + web3-core-helpers "1.7.5" -web3-providers-ws@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.4.tgz#6e60bcefb456f569a3e766e386d7807a96f90595" - integrity sha512-g72X77nrcHMFU8hRzQJzfgi/072n8dHwRCoTw+WQrGp+XCQ71fsk2qIu3Tp+nlp5BPn8bRudQbPblVm2uT4myQ== +web3-providers-ws@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.5.tgz#196b9e56a4a48f9bee54def56875ea53dec7c711" + integrity sha512-9uJNVVkIGC8PmM9kNbgPth56HDMSSsxZh3ZEENdwO3LNWemaADiQYUDCsD/dMVkn0xsGLHP5dgAy4Q5msqySLg== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.7.4" + web3-core-helpers "1.7.5" websocket "^1.0.32" -web3-shh@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.4.tgz#bee91cce2737c529fd347274010b548b6ea060f1" - integrity sha512-mlSZxSYcMkuMCxqhTYnZkUdahZ11h+bBv/8TlkXp/IHpEe4/Gg+KAbmfudakq3EzG/04z70XQmPgWcUPrsEJ+A== +web3-shh@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.5.tgz#742e27f5c44bea6d7adef3a49b085e0fcd6aa621" + integrity sha512-aCIWJyLMH5H76OybU4ZpUCJ93yNOPATGhJ+KboRPU8QZDzS2CcVhtEzyl27bbvw+rSnVroMLqBgTXBB4mmKI7A== dependencies: - web3-core "1.7.4" - web3-core-method "1.7.4" - web3-core-subscriptions "1.7.4" - web3-net "1.7.4" + web3-core "1.7.5" + web3-core-method "1.7.5" + web3-core-subscriptions "1.7.5" + web3-net "1.7.5" -web3-utils@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.4.tgz#eb6fa3706b058602747228234453811bbee017f5" - integrity sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA== +web3-utils@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.5.tgz#081a952ac6e0322e25ac97b37358a43c7372ef6a" + integrity sha512-9AqNOziQky4wNQadEwEfHiBdOZqopIHzQQVzmvvv6fJwDSMhP+khqmAZC7YTiGjs0MboyZ8tWNivqSO1699XQw== dependencies: bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" @@ -8085,17 +8087,17 @@ web3-utils@1.7.4: utf8 "3.0.0" web3@^1.7.1: - version "1.7.4" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.4.tgz#00c9aef8e13ade92fd773d845fff250535828e93" - integrity sha512-iFGK5jO32vnXM/ASaJBaI0+gVR6uHozvYdxkdhaeOCD6HIQ4iIXadbO2atVpE9oc/H8l2MovJ4LtPhG7lIBN8A== - dependencies: - web3-bzz "1.7.4" - web3-core "1.7.4" - web3-eth "1.7.4" - web3-eth-personal "1.7.4" - web3-net "1.7.4" - web3-shh "1.7.4" - web3-utils "1.7.4" + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.5.tgz#4e185d2058195b5775109b3f27cdea65a34a036e" + integrity sha512-3jHZTWyXt975AOXgnZKayiSWDLpoSKk9fZtLk1hURQtt7AdSbXPT8AK9ooBCm0Dt3GYaOeNcHGaiHC3gtyqhLg== + dependencies: + web3-bzz "1.7.5" + web3-core "1.7.5" + web3-eth "1.7.5" + web3-eth-personal "1.7.5" + web3-net "1.7.5" + web3-shh "1.7.5" + web3-utils "1.7.5" webcrypto-core@^1.7.4: version "1.7.5" @@ -8118,6 +8120,11 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + websocket@^1.0.32: version "1.0.34" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" @@ -8130,6 +8137,15 @@ websocket@^1.0.32: utf-8-validate "^5.0.2" yaeti "^0.0.6" +whatwg-url-without-unicode@8.0.0-3: + version "8.0.0-3" + resolved "https://registry.yarnpkg.com/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz#ab6df4bf6caaa6c85a59f6e82c026151d4bb376b" + integrity sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig== + dependencies: + buffer "^5.4.3" + punycode "^2.1.1" + webidl-conversions "^5.0.0" + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -8235,14 +8251,14 @@ ws@^3.0.0: ultron "~1.1.0" ws@^7.1.0, ws@^7.4.5: - version "7.5.8" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" - integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.5.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" - integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== + version "8.8.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== ws@~8.2.3: version "8.2.3" @@ -8269,13 +8285,6 @@ xhr-request@^1.0.1, xhr-request@^1.1.0: url-set-query "^1.0.0" xhr "^2.0.4" -xhr2-cookies@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g== - dependencies: - cookiejar "^2.1.1" - xhr@^2.0.4, xhr@^2.3.3: version "2.6.0" resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" From 7d075f1679ca23a9d9c4d105b363d0d960f0d786 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 18 Aug 2022 11:31:46 +0300 Subject: [PATCH 645/956] @hashgraph/hethers dep fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9233058c5..dcbe12193 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "@dfinity/nns": "^0.5.0", "@dfinity/principal": "^0.11.3", "@elrondnetwork/erdjs": "9.0.3", - "@hashgraph/hethers": "^1.1.2", + "@hashgraph/hethers": "1.1.2", "@json-rpc-tools/utils": "^1.7.6", "@project-serum/anchor": "^0.25.0-beta.1", "@randlabs/myalgo-connect": "^1.1.1", From ef5668b571f569dcbc727cc9c497ddd0599e48cc Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 18 Aug 2022 15:06:44 +0530 Subject: [PATCH 646/956] Transfer Batch: Check for node status only on mainnet --- src/factory/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index a3225c8e9..5597c488f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -555,7 +555,9 @@ export function ChainFactory( async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { type Result = ReturnType; let result: Result[] = []; - await requireBridge([from.getNonce(), to.getNonce()]); + if (appConfig.network === "mainnet") { + await requireBridge([from.getNonce(), to.getNonce()]); + } if (!fee) { fee = await estimateBatchFees(from, to, nfts, receiver); From 7ccd829b925995c96095988358666b607a300f39 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 18 Aug 2022 17:57:13 +0530 Subject: [PATCH 647/956] Add Viewer Info To Freeze NFT --- src/helpers/secret.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 5f782409a..be1aeaf89 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -230,6 +230,10 @@ export async function secretHelperFactory( freeze_nft: { contract: nft.native.contract, contract_hash: nft.native.contractHash, + viewer: { + viewing_key: nft.native.vk, + address: wallet.address, + }, token_id: nft.native.tokenId, to, chain_nonce: chainNonce, From c597d90f0eca8cfb79d151889d33bd8e711de7cb Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 21 Aug 2022 14:01:34 +0300 Subject: [PATCH 648/956] xDai rpc --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index a83ecd2c4..ca264af99 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -69,7 +69,7 @@ export enum MainNetRpcUri { TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", HARMONY = "https://rpc.s0.t.hmny.io", - XDAI = "https://gnosischain-rpc.gateway.pokt.network", + XDAI = "https://gnosis.xp.network/node", FUSE = "https://rpc.fuse.io/", VELAS = "https://mainnet.velas.com/rpc", TEZOS = "https://mainnet.smartpy.io", From 2ce090bfb050b3ead53ca84ae8ee7d5845f506c2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 21 Aug 2022 19:30:48 +0530 Subject: [PATCH 649/956] factories: mainnet: dfinity: add node uri --- src/factory/factories.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index e75e4e34b..73d069c86 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -378,7 +378,9 @@ export namespace ChainFactoryConfigs { feeMargin, }, dfinityParams: { - agent: new HttpAgent(), + agent: new HttpAgent({ + host: "https://ic0.app", + }), bridgeContract: Principal.fromText("e3io4-qaaaa-aaaak-qasua-cai"), xpnftId: Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), umt: Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), From 4b7635a8e6b89e6576db2d8cff6b333fe412c0ad Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 22 Aug 2022 14:09:10 +0530 Subject: [PATCH 650/956] helpers: secret: add a method to set viewing key --- src/helpers/secret.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index be1aeaf89..d2e3801b6 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -52,6 +52,11 @@ export type SecretHelper = TransferNftForeign & contract: string, codeHash?: string ): Promise[]>; + setViewingKey( + client: SecretNetworkClient, + contract: string, + vk: string + ): Promise; }; export type SecretContract = { @@ -218,6 +223,23 @@ export async function secretHelperFactory( estimateValidateUnfreezeNft: async () => { return UNFREEZE_GASL.times(gasPrice); }, + async setViewingKey(client, contract, vk) { + const tx = await client.tx.snip721.setViewingKey( + { + contractAddress: contract, + msg: { + set_viewing_key: { + key: vk, + }, + }, + sender: client.address, + }, + { + waitForCommit: true, + } + ); + return tx; + }, preTransfer, preUnfreeze: preTransfer, transferNftToForeign: async (wallet, chainNonce, to, nft, fee, mw) => { From 471ec8e5bf1b7768fbea2990cd1115071e28edf1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 22 Aug 2022 19:25:33 +0530 Subject: [PATCH 651/956] testnet: rpc: change tezos testnet --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index ca264af99..2146c15ba 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -41,7 +41,7 @@ export enum TestNetRpcUri { HARMONY = "https://api.s0.b.hmny.io", XDAI = "https://sokol.poa.network", UNIQUE = "https://rpc-opal.unique.network/", - TEZOS = "https://hangzhounet.smartpy.io", + TEZOS = "https://ghostnet.smartpy.io", VELAS = "https://explorer.testnet.velas.com/rpc", IOTEX = "https://babel-api.testnet.iotex.io", AURORA = "https://testnet.aurora.dev/", From 32fef0382bc99b09fbc43d579aaa716d98be4ded Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 23 Aug 2022 18:59:12 +0530 Subject: [PATCH 652/956] Secret: Approval: Check if already Approved --- package.json | 2 +- src/helpers/secret.ts | 37 ++++++++ yarn.lock | 199 +++++++++++++++++++++--------------------- 3 files changed, 139 insertions(+), 99 deletions(-) diff --git a/package.json b/package.json index dcbe12193..7098f5fa0 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "^0.45.1", - "secretjs": "^1.3.0-beta.1", + "secretjs": "=1.3.0-beta.25", "socket.io-client": "^4.1.3", "tonweb": "^0.0.43", "tonweb-mnemonic": "^1.0.1", diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index d2e3801b6..ad9f7825f 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -57,6 +57,10 @@ export type SecretHelper = TransferNftForeign & contract: string, vk: string ): Promise; + isApprovedForMinter( + sender: SecretSigner, + nft: NftInfo + ): Promise; }; export type SecretContract = { @@ -91,11 +95,42 @@ export async function secretHelperFactory( // TODO const gasPrice = 1; + async function isApprovedForMinter( + sender: SecretSigner, + nft: NftInfo + ) { + const approval = await sender.query.snip721.GetTokenInfo({ + auth: { + viewer: { + address: sender.address, + viewing_key: nft.native.vk, + }, + }, + contract: { + address: nft.collectionIdent, + codeHash: nft.native.contractHash, + }, + token_id: nft.native.tokenId, + }); + for (let appr of approval.all_nft_info.access.approvals) { + if ( + (appr as any)["spender"].toLowerCase() === + p.bridge.contractAddress.toLowerCase() + ) { + return true; + } + } + return false; + } + async function preTransfer( sender: SecretSigner, nft: NftInfo ) { // TODO: check if approved + if (await isApprovedForMinter(sender, nft)) { + return undefined; + } const res = await sender.tx.compute.executeContract( { sender: sender.address, @@ -132,6 +167,7 @@ export async function secretHelperFactory( return new BigNumber(b.balance?.amount || 0); }, + isApprovedForMinter, async mintNft(signer, args) { const minter = args.contract ? args.contract : p.umt; const tx = await signer.tx.compute.executeContract( @@ -236,6 +272,7 @@ export async function secretHelperFactory( }, { waitForCommit: true, + gasLimit: 30000, } ); return tx; diff --git a/yarn.lock b/yarn.lock index 694ef850f..f3d16cb75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -684,7 +684,7 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.1" -"@grpc/grpc-js@^1.6.7": +"@grpc/grpc-js@^1.5.3": version "1.6.10" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.10.tgz#b6584c59ef90aa76d878ac92c21785e602f247ff" integrity sha512-XTX5z/P5kH802MDoVm/rqOil0UwYEOEjf9+NPgfmm5UINIxDzwYaXfVR6z8svCBG8Hlbu/FzkXqhP8J5xaWzSQ== @@ -715,7 +715,7 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@hashgraph/cryptography@^1.4.0": +"@hashgraph/cryptography@^1.1.0-beta.5": version "1.4.0" resolved "https://registry.yarnpkg.com/@hashgraph/cryptography/-/cryptography-1.4.0.tgz#c97364f7352e80b2d4e6b60d40691d9b550757d9" integrity sha512-NtDmeuwaWJKBDYZd+g/etAD56p/RPUuZGdT9jhXxiFW0YrKCaU1k4ramICbRaJg7E+RDSFJXJLarh0G72z5YDA== @@ -727,26 +727,26 @@ tweetnacl "^1.0.3" utf8 "^3.0.0" -"@hashgraph/hethers@^1.1.2": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@hashgraph/hethers/-/hethers-1.1.4.tgz#6ab8de0f7271deb5be8d91a990c4ef5ab406fd0f" - integrity sha512-yFAT6D0g7iBinY8bFRTzstB+n/7GNJRSKq2HOQugEMsUsu/rO4EoPLCBRcAKH9nsHVJC8358GyeYg8hWhZjeog== +"@hashgraph/hethers@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hashgraph/hethers/-/hethers-1.1.2.tgz#f665b0068b9ec5423181ce6cc2f07db096174732" + integrity sha512-DezQCwm86oQCIXfDwJI6G+/RI0YPy9a/Ho/z3CRUSY9/1gBB0ZFRSK9HUovlrj30eyNtWVeIrHsYE+ZerQI5rQ== dependencies: "@ethersproject/solidity" "5.5.0" - "@hethers/abstract-provider" "1.1.2" - "@hethers/abstract-signer" "1.1.3" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.2" "@hethers/address" "1.1.0" "@hethers/constants" "1.1.0" - "@hethers/contracts" "1.1.3" - "@hethers/hdnode" "1.1.3" - "@hethers/json-wallets" "1.1.3" + "@hethers/contracts" "1.1.1" + "@hethers/hdnode" "1.1.1" + "@hethers/json-wallets" "1.1.1" "@hethers/logger" "1.1.0" - "@hethers/networks" "1.1.2" - "@hethers/providers" "1.1.3" + "@hethers/networks" "1.1.0" + "@hethers/providers" "1.1.1" "@hethers/signing-key" "1.1.0" - "@hethers/transactions" "1.1.2" + "@hethers/transactions" "1.1.1" "@hethers/units" "1.1.0" - "@hethers/wallet" "1.1.3" + "@hethers/wallet" "1.1.1" "@hashgraph/proto@2.1.5": version "2.1.5" @@ -756,57 +756,60 @@ long "^4.0.0" protobufjs "^6.11.2" -"@hashgraph/proto@2.9.0": - version "2.9.0" - resolved "https://registry.yarnpkg.com/@hashgraph/proto/-/proto-2.9.0.tgz#ec2cc21a2a4e02e6b3f101dd9e09aaef9b92afc2" - integrity sha512-Ot0OVLCl9lNBpHZozN0BS4mvlpxgJ0Bkea4p+6MoQ/+sZtOCu+FMsidIVdvFZBvdNjgPXx8byYjkpmFaxiIOpQ== - dependencies: - long "^4.0.0" - protobufjs "^6.11.3" - -"@hashgraph/sdk@^2.17.1": - version "2.18.0" - resolved "https://registry.yarnpkg.com/@hashgraph/sdk/-/sdk-2.18.0.tgz#868f14eefa60f2841a32b79144eef73b6f4c0225" - integrity sha512-+ycMaHKk9HWdhMSuw5BCo450FT9CCpjIwbWpw2lpJ+QKeifORzM1wc70nAm27FkING8/azC4/FL7CLf1DelgTA== +"@hashgraph/sdk@2.11.0-beta.1": + version "2.11.0-beta.1" + resolved "https://registry.yarnpkg.com/@hashgraph/sdk/-/sdk-2.11.0-beta.1.tgz#bc2d2dbc2c8768c78836dcaf108ec624887578d7" + integrity sha512-rpUSg0c580paop1uOvHhUFt7WGnDuvqC0iDpBr0Bp2jTOhgL12AOG5sF0RF/bEQfwAdsizgRBTT24xhmk07yhA== dependencies: - "@ethersproject/rlp" "^5.6.1" - "@grpc/grpc-js" "^1.6.7" - "@hashgraph/cryptography" "^1.4.0" - "@hashgraph/proto" "2.9.0" - axios "^0.27.2" + "@grpc/grpc-js" "^1.5.3" + "@hashgraph/cryptography" "^1.1.0-beta.5" + "@hashgraph/proto" "2.1.5" bignumber.js "^9.0.2" crypto-js "^4.1.1" js-base64 "^3.7.2" js-logger "^1.6.1" long "^4.0.0" - protobufjs "^6.11.3" + protobufjs "^6.11.2" utf8 "^3.0.0" -"@hethers/abstract-provider@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@hethers/abstract-provider/-/abstract-provider-1.1.2.tgz#afe926da8eb72115e6fed990ed1ea01b4148b777" - integrity sha512-NwPj1LdSYzQFgOF6ns5ZgaNGoERq0iZJ9kqqkKhGp954LdzlZx+wwAnXPd7athUCR7jIzOL27wlogYFdb5AAHQ== +"@hethers/abstract-provider@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/abstract-provider/-/abstract-provider-1.1.1.tgz#1f1f946f5970cd56dd9a46b09dfaa0f66e8074a6" + integrity sha512-s3u4Cu2qpdWgLh7oYf/evCFk7sgZYlaaIhje6BMXFN+jOKgWWQA6MSECqHSc6h9p9eNEsKt1HmM7yWClikrzyQ== dependencies: "@ethersproject/bignumber" "5.5.0" "@ethersproject/bytes" "5.5.0" "@ethersproject/properties" "5.5.0" "@ethersproject/web" "5.5.0" "@hethers/logger" "1.1.0" - "@hethers/networks" "1.1.2" - "@hethers/transactions" "1.1.2" + "@hethers/networks" "1.1.0" + "@hethers/transactions" "1.1.1" -"@hethers/abstract-signer@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.3.tgz#1f2b2e0a328d64ce8f66e2cd03baa02500b65411" - integrity sha512-u9rFmHhSyxVM2IsNBYApHNekoaDIUviIkJ6VqgnQoJzokbJUL63fO+cEXayYmXCjLmilcYTOL4fbIyQK1IFRuQ== +"@hethers/abstract-signer@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.1.tgz#60d95c45811bad09c5eda9236b7ba3b9935c65bb" + integrity sha512-g6NyaC/Fwj+l30MqMudKRgL/zNJUcHFdJ5ZdRJAeJaOVBRl7Za3X/2Fz9/A1YJocnhvZFBygq67fl25a+1aKYw== dependencies: "@ethersproject/bignumber" "5.5.0" "@ethersproject/bytes" "5.5.0" "@ethersproject/properties" "5.5.0" - "@hethers/abstract-provider" "1.1.2" + "@hethers/abstract-provider" "1.1.1" "@hethers/address" "1.1.0" "@hethers/logger" "1.1.0" - "@hethers/transactions" "1.1.2" + "@hethers/transactions" "1.1.1" + +"@hethers/abstract-signer@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.2.tgz#f42d02b1d5763b77535ad5236174c476a4e9357d" + integrity sha512-F66cbneTByr/BlfXvXsZ1wfjxXAa1daTMV0YNWrBgsjuT/xZxyqfuEMCNeHVYSd91S7gNlGGdGcEqKcqlJpVew== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/abstract-provider" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/transactions" "1.1.1" "@hethers/address@1.1.0": version "1.1.0" @@ -825,26 +828,26 @@ dependencies: "@ethersproject/bignumber" "5.5.0" -"@hethers/contracts@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@hethers/contracts/-/contracts-1.1.3.tgz#03112b856611e46a6bca55ab744841740f23ade6" - integrity sha512-CJh2UuEyx8ruM5Fr7JbSmkSiHembnLGcpdqnPF8ev9wwSRkGugsTZ5KHaM9pJdBgLMrkL7z87xTRDaWxsZapEQ== +"@hethers/contracts@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/contracts/-/contracts-1.1.1.tgz#5f56f2741d46b810476f7d0a39b3c1f7a4019722" + integrity sha512-72zte2dgoLBnsf5DU1YtfbWvQ9OZh6S1qdBdRCxaNBc/3p0lTuxPWcerIuLeKV/HtDKnwSU4mYIoO46FWyZ2eA== dependencies: "@ethersproject/abi" "5.5.0" "@ethersproject/bignumber" "5.5.0" "@ethersproject/bytes" "5.5.0" "@ethersproject/properties" "5.5.0" - "@hethers/abstract-provider" "1.1.2" - "@hethers/abstract-signer" "1.1.3" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.1" "@hethers/address" "1.1.0" "@hethers/logger" "1.1.0" - "@hethers/providers" "1.1.3" - "@hethers/transactions" "1.1.2" + "@hethers/providers" "1.1.1" + "@hethers/transactions" "1.1.1" -"@hethers/hdnode@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@hethers/hdnode/-/hdnode-1.1.3.tgz#710cfd01ad7050b2202349cb1eb43f79d5ea34ba" - integrity sha512-14+CjQaHTwm3lF1KX+OzKKumlx4gXwQUanNvUeC19cZVMD1VlQmKc/n6od9V8P4I9BO8RopcHv+GyDw48XUKOA== +"@hethers/hdnode@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/hdnode/-/hdnode-1.1.1.tgz#9c2a53f496b405ae8636dabeecf62bcd6b99c365" + integrity sha512-/yECuQAUaCGIhcDG3x81XJOH6nDwahfMpSq7B7AWl+buS7tswBF9fYwAD/G9SzgnjB9LlIaBWCJcK1/Z5sU39g== dependencies: "@ethersproject/basex" "5.5.0" "@ethersproject/bignumber" "5.5.0" @@ -854,15 +857,15 @@ "@ethersproject/sha2" "5.5.0" "@ethersproject/strings" "5.5.0" "@ethersproject/wordlists" "5.5.0" - "@hethers/abstract-signer" "1.1.3" + "@hethers/abstract-signer" "1.1.1" "@hethers/logger" "1.1.0" "@hethers/signing-key" "1.1.0" - "@hethers/transactions" "1.1.2" + "@hethers/transactions" "1.1.1" -"@hethers/json-wallets@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@hethers/json-wallets/-/json-wallets-1.1.3.tgz#2610585c7f2d44819c65f95c6cf93c9af21f6e11" - integrity sha512-FRve8n3Hx2IQQyFpvOLsvUMw/6MUQDjkROtxQn+LLnr6KrEA5VmXeFy0av5MkwjbFw6x98DW1ZxfHyLQD9XAOw== +"@hethers/json-wallets@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/json-wallets/-/json-wallets-1.1.1.tgz#8746dada5206e9ef819056ae856fdffe20de70d9" + integrity sha512-GtEHrKex0B0u3EdTX6tYrMpYESvS1zZNraE1Q/gFyWpB/VmwEze2aUApdcEDnWiOJOvZhg5E8QOaSZeHzMS0SQ== dependencies: "@ethersproject/bytes" "5.5.0" "@ethersproject/keccak256" "5.5.0" @@ -870,11 +873,11 @@ "@ethersproject/properties" "5.5.0" "@ethersproject/random" "5.5.0" "@ethersproject/strings" "5.5.0" - "@hethers/abstract-signer" "1.1.3" + "@hethers/abstract-signer" "1.1.1" "@hethers/address" "1.1.0" - "@hethers/hdnode" "1.1.3" + "@hethers/hdnode" "1.1.1" "@hethers/logger" "1.1.0" - "@hethers/transactions" "1.1.2" + "@hethers/transactions" "1.1.1" aes-js "3.0.0" scrypt-js "3.0.1" @@ -883,18 +886,18 @@ resolved "https://registry.yarnpkg.com/@hethers/logger/-/logger-1.1.0.tgz#946017e30fd6b573f744d9bc76d005dd07e39549" integrity sha512-EZAM5kirlNobe6auj7AUS1QyNOxunm9ZglatkC0fIx+9y4tEQsrx4asu5r2SPg1fgZiJ9mk2DbaidMWuHSr3kA== -"@hethers/networks@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@hethers/networks/-/networks-1.1.2.tgz#cc2e7745046342b185c31bf29983dda76ebc56aa" - integrity sha512-b8GLO6Z8O7hO6OpHAnbnvFXBlUFSz3HbK/1GpoyXwfDFzQZ9EjzD6MUaiX6NCFaZ14OL/o3IrB9eJnFPpK3Nuw== +"@hethers/networks@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/networks/-/networks-1.1.0.tgz#55011e436566a0e34c8e3cab81ffd7eb16f709d0" + integrity sha512-xtS+5KHlyXND+1CbUCeMPJrqlyDk7ayhcxeAKSc7aHyHm1/wa3xI45W6tJj+AMDC8sGS5GZvAU3YrKSkUGTFdw== dependencies: "@hethers/address" "1.1.0" "@hethers/logger" "1.1.0" -"@hethers/providers@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@hethers/providers/-/providers-1.1.3.tgz#45b89351b3aac076715bc288826c4977b841dc02" - integrity sha512-b4uuaq6MKiFhu1m8uP9aAX3n/9yQM3QbrHYbhbnYTip0pZ8yg+kPawTfqRoqz913Mj62f1Vq1GfJqclJWme0gw== +"@hethers/providers@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/providers/-/providers-1.1.1.tgz#4dd374a75aeb99a03e93859b22d6f859dede8ec4" + integrity sha512-6CdwiB7GVD7tFm7G1mLemoVKgZ8KNiQvTTEyFxqazRFW6G8unVW07S104+hq/jfVL2eMoZP0O3LZLD+ny5Jelg== dependencies: "@ethersproject/base64" "5.5.0" "@ethersproject/basex" "5.5.0" @@ -907,14 +910,14 @@ "@ethersproject/strings" "5.5.0" "@ethersproject/web" "5.5.0" "@hashgraph/proto" "2.1.5" - "@hashgraph/sdk" "^2.17.1" - "@hethers/abstract-provider" "1.1.2" - "@hethers/abstract-signer" "1.1.3" + "@hashgraph/sdk" "2.11.0-beta.1" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.1" "@hethers/address" "1.1.0" "@hethers/constants" "1.1.0" "@hethers/logger" "1.1.0" - "@hethers/networks" "1.1.2" - "@hethers/transactions" "1.1.2" + "@hethers/networks" "1.1.0" + "@hethers/transactions" "1.1.1" "@types/axios" "^0.14.0" axios "^0.24.0" bech32 "1.1.4" @@ -932,10 +935,10 @@ elliptic "6.5.4" hash.js "1.1.7" -"@hethers/transactions@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@hethers/transactions/-/transactions-1.1.2.tgz#bac9027a9668acab2790d1e094f32c121d8d1989" - integrity sha512-vVyuiLFp/npfPL1t1dbSLOokcsUTF+kZkbY19z8xvGrOsEuHFdCNghRyklC60T0T7Foq+qXzYvEKV52HnVLtgw== +"@hethers/transactions@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/transactions/-/transactions-1.1.1.tgz#9e6bfa02547bede017065647eede0d49c1e3c23e" + integrity sha512-M4EL3l/xJ3MmtWSQEm8ZpD9LJUd9LPEi106VfBEL/ns/xcTW6wRlIw+xwLHdqDibZ8/Niu8SYN18LbHp/zY6ng== dependencies: "@ethersproject/base64" "5.5.0" "@ethersproject/bignumber" "5.5.0" @@ -955,10 +958,10 @@ "@ethersproject/bignumber" "5.5.0" "@hethers/logger" "1.1.0" -"@hethers/wallet@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@hethers/wallet/-/wallet-1.1.3.tgz#bf3ec2cf53aa5a4bf7129fd79870783d01814df6" - integrity sha512-W4k2FEClW8jzNCFgbWd58U2av3hsoF/pNclpeEaASWo3aZEcmPGc1/87AwwMXBaM3lzDN/BTzLMkZY3ogIA8jQ== +"@hethers/wallet@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/wallet/-/wallet-1.1.1.tgz#f1eddf7e4a77b821faa85392745ef404655e9f96" + integrity sha512-tg6vrjZL1t1FQziCat7zBx2IjqfFbWsQv5WwZkHPjn7Y/lFzmZuVYdh90t7/p3rquC96VGdmqYa/557qdotzRw== dependencies: "@ethersproject/bignumber" "5.5.0" "@ethersproject/bytes" "5.5.0" @@ -967,15 +970,15 @@ "@ethersproject/properties" "5.5.0" "@ethersproject/random" "5.5.0" "@ethersproject/wordlists" "5.5.0" - "@hashgraph/sdk" "^2.17.1" - "@hethers/abstract-provider" "1.1.2" - "@hethers/abstract-signer" "1.1.3" + "@hashgraph/sdk" "2.11.0-beta.1" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.1" "@hethers/address" "1.1.0" - "@hethers/hdnode" "1.1.3" - "@hethers/json-wallets" "1.1.3" + "@hethers/hdnode" "1.1.1" + "@hethers/json-wallets" "1.1.1" "@hethers/logger" "1.1.0" "@hethers/signing-key" "1.1.0" - "@hethers/transactions" "1.1.2" + "@hethers/transactions" "1.1.1" "@humanwhocodes/config-array@^0.5.0": version "0.5.0" @@ -2480,7 +2483,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@*, axios@^0.27.2: +axios@*: version "0.27.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== @@ -6873,10 +6876,10 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secretjs@^1.3.0-beta.1: - version "1.3.0-beta.23" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.3.0-beta.23.tgz#b956d2479cc6b06c1fed3623ae19a8ba7c540f8a" - integrity sha512-zXL0t1h68it1+77+kobAq4JcIWV7EUtHfP2W2Vpc9MpAGLUeJ5XgfSNs6uO4IYq7viIEL7idTTls/7ljWBb8xw== +secretjs@=1.3.0-beta.25: + version "1.3.0-beta.25" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.3.0-beta.25.tgz#d3aced17bccc6da46e68ab64f846d51bb9ea6b49" + integrity sha512-fHTMGtHGP7aEVBD1142xTb2k7547misrnCs+EKMZN+CCr+fl1PZdEVX4r3MjC+qRpQIMgwVVXJZr4EUNwN7u3A== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" From 31d017bbf84ffc5571a7ff83f8b3bc3beaeb2351 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 23 Aug 2022 16:29:50 +0300 Subject: [PATCH 653/956] secretjs version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dcbe12193..7098f5fa0 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "^0.45.1", - "secretjs": "^1.3.0-beta.1", + "secretjs": "=1.3.0-beta.25", "socket.io-client": "^4.1.3", "tonweb": "^0.0.43", "tonweb-mnemonic": "^1.0.1", From 97c921006804169e8b54b01dafe3f790b194d1bf Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 25 Aug 2022 18:31:33 +0530 Subject: [PATCH 654/956] Migrate to pnpm --- package.json | 5 + pnpm-lock.yaml | 11894 ++++++++++++++++++++++++++++++++++++++++++ src/helpers/tron.ts | 2 +- yarn.lock | 8398 ----------------------------- 4 files changed, 11900 insertions(+), 8399 deletions(-) create mode 100644 pnpm-lock.yaml delete mode 100644 yarn.lock diff --git a/package.json b/package.json index 7098f5fa0..8586653f6 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ "prepare": "husky install" }, "devDependencies": { + "@types/bn.js": "^5.1.0", + "@types/node": "^18.7.13", "@typescript-eslint/eslint-plugin": "^4.31.0", "@typescript-eslint/parser": "^4.28.3", "dotenv": "^16.0.0", @@ -37,6 +39,7 @@ "@dfinity/nns": "^0.5.0", "@dfinity/principal": "^0.11.3", "@elrondnetwork/erdjs": "9.0.3", + "@ethersproject/providers": "^5.7.0", "@hashgraph/hethers": "1.1.2", "@json-rpc-tools/utils": "^1.7.6", "@project-serum/anchor": "^0.25.0-beta.1", @@ -46,6 +49,7 @@ "@taquito/signer": "^13.0.0", "@taquito/taquito": "^13.0.0", "@taquito/tzip12": "^13.0.0", + "@taquito/utils": "^13.0.1", "@vechain/connex-driver": "^2.0.8", "@vechain/connex-framework": "^2.0.8", "@vechain/ethers": "^4.0.27-5", @@ -53,6 +57,7 @@ "algosdk": "^1.15.0-beta.1", "axios": "^0.21.1", "bignumber.js": "=9.0.1", + "bn.js": "^5.2.1", "buffer": "^6.0.3", "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", "ethers": "^5.5.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 000000000..f30ee72b7 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,11894 @@ +lockfileVersion: 5.4 + +specifiers: + "@dfinity/agent": ^0.11.3 + "@dfinity/candid": ^0.11.3 + "@dfinity/identity": ^0.12.2 + "@dfinity/nns": ^0.5.0 + "@dfinity/principal": ^0.11.3 + "@elrondnetwork/erdjs": 9.0.3 + "@ethersproject/providers": ^5.7.0 + "@hashgraph/hethers": 1.1.2 + "@json-rpc-tools/utils": ^1.7.6 + "@project-serum/anchor": ^0.25.0-beta.1 + "@randlabs/myalgo-connect": ^1.1.1 + "@solana/spl-token": ^0.2.0 + "@solana/web3.js": ^1.44.2 + "@taquito/signer": ^13.0.0 + "@taquito/taquito": ^13.0.0 + "@taquito/tzip12": ^13.0.0 + "@taquito/utils": ^13.0.1 + "@types/bn.js": ^5.1.0 + "@types/node": ^18.7.13 + "@typescript-eslint/eslint-plugin": ^4.31.0 + "@typescript-eslint/parser": ^4.28.3 + "@vechain/connex-driver": ^2.0.8 + "@vechain/connex-framework": ^2.0.8 + "@vechain/ethers": ^4.0.27-5 + "@walletconnect/client": ^1.7.0 + algosdk: ^1.15.0-beta.1 + axios: ^0.21.1 + bignumber.js: "=9.0.1" + bn.js: ^5.2.1 + buffer: ^6.0.3 + crypto-exchange-rate: git+https://github.com/xp-network/exchange-rate#master-dist + dotenv: ^16.0.0 + eslint: ^7.30.0 + eslint-config-prettier: ^8.3.0 + eslint-plugin-eslint-comments: ^3.2.0 + eslint-plugin-functional: ^3.2.1 + ethers: ^5.5.4 + google-protobuf: ^3.20.1 + husky: ^8.0.0 + js-base64: ^3.6.1 + near-api-js: ^0.45.1 + prettier: ^2.3.2 + pretty-quick: ^3.1.3 + secretjs: "=1.3.0-beta.25" + socket.io-client: ^4.1.3 + tonweb: ^0.0.43 + tonweb-mnemonic: ^1.0.1 + tronstation: ^1.0.1 + tronweb: ^4.1.0 + typedoc: ^0.22.6 + typescript: ^4.3.5 + web3-providers-connex: ^0.3.1 + xpnet-web3-contracts: git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f + +dependencies: + "@dfinity/agent": 0.11.3_urfyxkqvy2mysslkeyxo7ugw34 + "@dfinity/candid": 0.11.3 + "@dfinity/identity": 0.12.2_g4ydyf5f6qetjnajevqbsg73lu + "@dfinity/nns": 0.5.0_buffer@6.0.3 + "@dfinity/principal": 0.11.3 + "@elrondnetwork/erdjs": 9.0.3 + "@ethersproject/providers": 5.7.0 + "@hashgraph/hethers": 1.1.2 + "@json-rpc-tools/utils": 1.7.6 + "@project-serum/anchor": 0.25.0 + "@randlabs/myalgo-connect": 1.3.0 + "@solana/spl-token": 0.2.0 + "@solana/web3.js": 1.53.0 + "@taquito/signer": 13.0.1 + "@taquito/taquito": 13.0.1 + "@taquito/tzip12": 13.0.1 + "@taquito/utils": 13.0.1 + "@vechain/connex-driver": 2.0.10 + "@vechain/connex-framework": 2.0.10 + "@vechain/ethers": 4.0.27-5 + "@walletconnect/client": 1.8.0 + algosdk: 1.19.1 + axios: 0.21.4 + bignumber.js: 9.0.1 + bn.js: 5.2.1 + buffer: 6.0.3 + crypto-exchange-rate: github.com/xp-network/exchange-rate/969f919deec6ee487e4c1b6213f77fe4f6f32eb1 + ethers: 5.7.0 + google-protobuf: 3.21.0 + js-base64: 3.7.2 + near-api-js: 0.45.1 + secretjs: 1.3.0-beta.25_google-protobuf@3.21.0 + socket.io-client: 4.5.1 + tonweb: 0.0.43 + tonweb-mnemonic: 1.0.1 + tronstation: 1.0.1 + tronweb: 4.3.0 + web3-providers-connex: 0.3.1 + xpnet-web3-contracts: github.com/xp-network/XP.network-HECO-Migration/65b3d13fb814ec8d8c4ea847c5915d763c0fec6f + +devDependencies: + "@types/bn.js": 5.1.0 + "@types/node": 18.7.13 + "@typescript-eslint/eslint-plugin": 4.33.0_3ekaj7j3owlolnuhj3ykrb7u7i + "@typescript-eslint/parser": 4.33.0_hxadhbs2xogijvk7vq4t2azzbu + dotenv: 16.0.1 + eslint: 7.32.0 + eslint-config-prettier: 8.5.0_eslint@7.32.0 + eslint-plugin-eslint-comments: 3.2.0_eslint@7.32.0 + eslint-plugin-functional: 3.7.2_hxadhbs2xogijvk7vq4t2azzbu + husky: 8.0.1 + prettier: 2.7.1 + pretty-quick: 3.1.3_prettier@2.7.1 + typedoc: 0.22.18_typescript@4.7.4 + typescript: 4.7.4 + +packages: + /@babel/code-frame/7.12.11: + resolution: + { + integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==, + } + dependencies: + "@babel/highlight": 7.18.6 + dev: true + + /@babel/code-frame/7.18.6: + resolution: + { + integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/highlight": 7.18.6 + dev: false + + /@babel/helper-validator-identifier/7.18.6: + resolution: + { + integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==, + } + engines: { node: ">=6.9.0" } + + /@babel/highlight/7.18.6: + resolution: + { + integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-validator-identifier": 7.18.6 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/runtime/7.11.2: + resolution: + { + integrity: sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==, + } + dependencies: + regenerator-runtime: 0.13.9 + dev: false + + /@babel/runtime/7.18.9: + resolution: + { + integrity: sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==, + } + engines: { node: ">=6.9.0" } + dependencies: + regenerator-runtime: 0.13.9 + dev: false + + /@cosmjs/encoding/0.27.1: + resolution: + { + integrity: sha512-rayLsA0ojHeniaRfWWcqSsrE/T1rl1gl0OXVNtXlPwLJifKBeLEefGbOUiAQaT0wgJ8VNGBazVtAZBpJidfDhw==, + } + dependencies: + base64-js: 1.5.1 + bech32: 1.1.4 + readonly-date: 1.0.0 + dev: false + + /@cosmjs/math/0.27.1: + resolution: + { + integrity: sha512-cHWVjmfIjtRc7f80n7x+J5k8pe+vTVTQ0lA82tIxUgqUvgS6rogPP/TmGtTiZ4+NxWxd11DUISY6gVpr18/VNQ==, + } + dependencies: + bn.js: 5.2.1 + dev: false + + /@cspotcode/source-map-support/0.8.1: + resolution: + { + integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, + } + engines: { node: ">=12" } + dependencies: + "@jridgewell/trace-mapping": 0.3.9 + dev: false + + /@dfinity/agent/0.11.3_urfyxkqvy2mysslkeyxo7ugw34: + resolution: + { + integrity: sha512-pqiogLey6S83SG5BS93hBCtXfGRW6tkxa8Y0c9HwxOP/wRoVEuKHdTcOn7rL/HN4mDTwxkdqK4EC1Kv24S1q4Q==, + } + peerDependencies: + "@dfinity/candid": ^0.11.3 + "@dfinity/principal": ^0.11.3 + dependencies: + "@dfinity/candid": 0.11.3 + "@dfinity/principal": 0.11.3 + base64-arraybuffer: 0.2.0 + bignumber.js: 9.0.1 + borc: 2.1.2 + js-sha256: 0.9.0 + simple-cbor: 0.4.1 + dev: false + + /@dfinity/candid/0.11.3: + resolution: + { + integrity: sha512-xX7xNj2lLt7SIlvy0sqNp4fpcTD/xnwEu9APj0tnIF64cnsxIiS12T1Z8jl9g80jCQ1CbRPQf4cfsOfS3Cd2OA==, + } + dev: false + + /@dfinity/identity/0.12.2_g4ydyf5f6qetjnajevqbsg73lu: + resolution: + { + integrity: sha512-JebcS29x3nsUK+qdF0FNSnx4IQ1xYiFB9mHpbGT3/MFe52s40DxL4CvsaZ8zAjDnusQnTJLzqLWGM7oo0QqwyQ==, + } + peerDependencies: + "@dfinity/agent": ^0.12.2 + "@dfinity/principal": ^0.12.2 + dependencies: + "@dfinity/agent": 0.11.3_urfyxkqvy2mysslkeyxo7ugw34 + "@dfinity/principal": 0.11.3 + "@peculiar/webcrypto": 1.4.0 + borc: 2.1.2 + js-sha256: 0.9.0 + secp256k1: 4.0.3 + ts-node: 10.9.1_57uwcby55h6tzvkj3v5sfcgxoe + tweetnacl: 1.0.3 + vitest: 0.18.1 + transitivePeerDependencies: + - "@edge-runtime/vm" + - "@swc/core" + - "@swc/wasm" + - "@types/node" + - "@vitest/ui" + - c8 + - happy-dom + - jsdom + - less + - sass + - stylus + - supports-color + - terser + - typescript + dev: false + + /@dfinity/nns/0.5.0_buffer@6.0.3: + resolution: + { + integrity: sha512-zFZswSTRx5VsyuC6cufmHibTXLbIfzhvzitB8X4i6tpGLT/0K7gMpKR6gYsDyG/Gq+aF2Z6CxEfE/RJIGQGbSw==, + } + dependencies: + "@dfinity/agent": 0.11.3_urfyxkqvy2mysslkeyxo7ugw34 + "@dfinity/candid": 0.11.3 + "@dfinity/principal": 0.11.3 + crc: 4.1.1_buffer@6.0.3 + crc-32: 1.2.2 + google-protobuf: 3.21.0 + js-sha256: 0.9.0 + randombytes: 2.1.0 + transitivePeerDependencies: + - buffer + dev: false + + /@dfinity/principal/0.11.3: + resolution: + { + integrity: sha512-+AJGDJ+RsveybSdxuTQFr2DPNZFpPfXnyixAOFWWdElVniSwnO/SwqQChR0AWvJdy/fKqoAXK+ZzyLG0uqSetA==, + } + dev: false + + /@elrondnetwork/bls-wasm/0.3.3: + resolution: + { + integrity: sha512-neCzWRk8pZsOBeAI3+t8jgiSkqj/y4IJPOMKG4ebL1+MiOFayygmfDvfZrK57RSoMWvDfXHlhTL25DrI+EtH+w==, + } + engines: { node: ">=8.9.0" } + dependencies: + assert: 2.0.0 + perf_hooks: 0.0.1 + dev: false + + /@elrondnetwork/erdjs/9.0.3: + resolution: + { + integrity: sha512-xOBzlFXkx2avMFTrZrgKoSSJbBUlZnSobpDaMzs4hqvUYr/xAN2y+nbMFJqaLcfKxf5ALGolnbqhprHLNfWpEQ==, + } + dependencies: + "@babel/runtime": 7.11.2 + "@elrondnetwork/bls-wasm": 0.3.3 + "@elrondnetwork/hw-app-elrond": 0.3.2 + "@ledgerhq/hw-transport-u2f": 5.36.0-deprecated + "@ledgerhq/hw-transport-webhid": 6.27.2 + "@ledgerhq/hw-transport-webusb": 6.11.2 + "@walletconnect/client": 1.6.5 + abort-controller: 3.0.0 + axios: 0.24.0 + bech32: 1.1.4 + bignumber.js: 9.0.1 + bip39: 3.0.2 + blake2b: 2.1.3 + buffer: 6.0.3 + ed25519-hd-key: 1.1.2 + json-bigint: 1.0.0 + json-duplicate-key-handle: 1.0.0 + keccak: 3.0.2 + platform: 1.3.6 + protobufjs: 6.10.2 + qs: 6.10.1 + scryptsy: 2.1.0 + tweetnacl: 1.0.3 + uuid: 8.3.2 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - utf-8-validate + dev: false + + /@elrondnetwork/hw-app-elrond/0.3.2: + resolution: + { + integrity: sha512-5TGnKuFQC6g4J9ipqEH5T71TEgGPDyU68lxdiF60qwQO5W0GaYvHKJiKe9rQdra5bCM04/4klMZDAg3BKqRoTw==, + } + dependencies: + "@ledgerhq/hw-transport": 5.51.1 + "@ledgerhq/hw-transport-node-hid": 5.51.1 + bip32-path: 0.4.2 + flow-copy-source: 2.0.9 + flow-typed: 3.8.0 + transitivePeerDependencies: + - encoding + dev: false + + /@esbuild/linux-loong64/0.14.54: + resolution: + { + integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, + } + engines: { node: ">=12" } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@eslint/eslintrc/0.4.3: + resolution: + { + integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 7.3.1 + globals: 13.17.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 3.14.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@ethereumjs/common/2.6.5: + resolution: + { + integrity: sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==, + } + dependencies: + crc-32: 1.2.2 + ethereumjs-util: 7.1.5 + dev: false + + /@ethereumjs/tx/3.5.2: + resolution: + { + integrity: sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==, + } + dependencies: + "@ethereumjs/common": 2.6.5 + ethereumjs-util: 7.1.5 + dev: false + + /@ethersproject/abi/5.5.0: + resolution: + { + integrity: sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w==, + } + dependencies: + "@ethersproject/address": 5.7.0 + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/constants": 5.7.0 + "@ethersproject/hash": 5.7.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/strings": 5.7.0 + dev: false + + /@ethersproject/abi/5.7.0: + resolution: + { + integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==, + } + 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 + dev: false + + /@ethersproject/abstract-provider/5.7.0: + resolution: + { + integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==, + } + 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 + dev: false + + /@ethersproject/abstract-signer/5.7.0: + resolution: + { + integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==, + } + 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 + dev: false + + /@ethersproject/address/5.7.0: + resolution: + { + integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==, + } + 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 + dev: false + + /@ethersproject/base64/5.5.0: + resolution: + { + integrity: sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + dev: false + + /@ethersproject/base64/5.7.0: + resolution: + { + integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==, + } + dependencies: + "@ethersproject/bytes": 5.7.0 + dev: false + + /@ethersproject/basex/5.5.0: + resolution: + { + integrity: sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + "@ethersproject/properties": 5.5.0 + dev: false + + /@ethersproject/basex/5.7.0: + resolution: + { + integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==, + } + dependencies: + "@ethersproject/bytes": 5.7.0 + "@ethersproject/properties": 5.7.0 + dev: false + + /@ethersproject/bignumber/5.5.0: + resolution: + { + integrity: sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + "@ethersproject/logger": 5.7.0 + bn.js: 4.12.0 + dev: false + + /@ethersproject/bignumber/5.7.0: + resolution: + { + integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==, + } + dependencies: + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 + bn.js: 5.2.1 + dev: false + + /@ethersproject/bytes/5.5.0: + resolution: + { + integrity: sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog==, + } + dependencies: + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/bytes/5.7.0: + resolution: + { + integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==, + } + dependencies: + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/constants/5.7.0: + resolution: + { + integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==, + } + dependencies: + "@ethersproject/bignumber": 5.7.0 + dev: false + + /@ethersproject/contracts/5.7.0: + resolution: + { + integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==, + } + dependencies: + "@ethersproject/abi": 5.7.0 + "@ethersproject/abstract-provider": 5.7.0 + "@ethersproject/abstract-signer": 5.7.0 + "@ethersproject/address": 5.7.0 + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/constants": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/properties": 5.7.0 + "@ethersproject/transactions": 5.7.0 + dev: false + + /@ethersproject/hash/5.5.0: + resolution: + { + integrity: sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg==, + } + dependencies: + "@ethersproject/abstract-signer": 5.7.0 + "@ethersproject/address": 5.7.0 + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/strings": 5.5.0 + dev: false + + /@ethersproject/hash/5.7.0: + resolution: + { + integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==, + } + 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 + dev: false + + /@ethersproject/hdnode/5.7.0: + resolution: + { + integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==, + } + dependencies: + "@ethersproject/abstract-signer": 5.7.0 + "@ethersproject/basex": 5.7.0 + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/pbkdf2": 5.7.0 + "@ethersproject/properties": 5.7.0 + "@ethersproject/sha2": 5.7.0 + "@ethersproject/signing-key": 5.7.0 + "@ethersproject/strings": 5.7.0 + "@ethersproject/transactions": 5.7.0 + "@ethersproject/wordlists": 5.7.0 + dev: false + + /@ethersproject/json-wallets/5.7.0: + resolution: + { + integrity: sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==, + } + dependencies: + "@ethersproject/abstract-signer": 5.7.0 + "@ethersproject/address": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/hdnode": 5.7.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/pbkdf2": 5.7.0 + "@ethersproject/properties": 5.7.0 + "@ethersproject/random": 5.7.0 + "@ethersproject/strings": 5.7.0 + "@ethersproject/transactions": 5.7.0 + aes-js: 3.0.0 + scrypt-js: 3.0.1 + dev: false + + /@ethersproject/keccak256/5.5.0: + resolution: + { + integrity: sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + js-sha3: 0.8.0 + dev: false + + /@ethersproject/keccak256/5.7.0: + resolution: + { + integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==, + } + dependencies: + "@ethersproject/bytes": 5.7.0 + js-sha3: 0.8.0 + dev: false + + /@ethersproject/logger/5.7.0: + resolution: + { + integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==, + } + dev: false + + /@ethersproject/networks/5.7.0: + resolution: + { + integrity: sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==, + } + dependencies: + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/pbkdf2/5.5.0: + resolution: + { + integrity: sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + "@ethersproject/sha2": 5.5.0 + dev: false + + /@ethersproject/pbkdf2/5.7.0: + resolution: + { + integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==, + } + dependencies: + "@ethersproject/bytes": 5.7.0 + "@ethersproject/sha2": 5.7.0 + dev: false + + /@ethersproject/properties/5.5.0: + resolution: + { + integrity: sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA==, + } + dependencies: + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/properties/5.7.0: + resolution: + { + integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==, + } + dependencies: + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/providers/5.7.0: + resolution: + { + integrity: sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA==, + } + dependencies: + "@ethersproject/abstract-provider": 5.7.0 + "@ethersproject/abstract-signer": 5.7.0 + "@ethersproject/address": 5.7.0 + "@ethersproject/base64": 5.7.0 + "@ethersproject/basex": 5.7.0 + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/constants": 5.7.0 + "@ethersproject/hash": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/networks": 5.7.0 + "@ethersproject/properties": 5.7.0 + "@ethersproject/random": 5.7.0 + "@ethersproject/rlp": 5.7.0 + "@ethersproject/sha2": 5.7.0 + "@ethersproject/strings": 5.7.0 + "@ethersproject/transactions": 5.7.0 + "@ethersproject/web": 5.7.0 + bech32: 1.1.4 + ws: 7.4.6 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@ethersproject/random/5.5.0: + resolution: + { + integrity: sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/random/5.7.0: + resolution: + { + integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==, + } + dependencies: + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/rlp/5.7.0: + resolution: + { + integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==, + } + dependencies: + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/sha2/5.5.0: + resolution: + { + integrity: sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + "@ethersproject/logger": 5.7.0 + hash.js: 1.1.7 + dev: false + + /@ethersproject/sha2/5.7.0: + resolution: + { + integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==, + } + dependencies: + "@ethersproject/bytes": 5.7.0 + "@ethersproject/logger": 5.7.0 + hash.js: 1.1.7 + dev: false + + /@ethersproject/signing-key/5.7.0: + resolution: + { + integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==, + } + 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 + dev: false + + /@ethersproject/solidity/5.5.0: + resolution: + { + integrity: sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw==, + } + dependencies: + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/sha2": 5.7.0 + "@ethersproject/strings": 5.7.0 + dev: false + + /@ethersproject/solidity/5.7.0: + resolution: + { + integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==, + } + dependencies: + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/sha2": 5.7.0 + "@ethersproject/strings": 5.7.0 + dev: false + + /@ethersproject/strings/5.5.0: + resolution: + { + integrity: sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + "@ethersproject/constants": 5.7.0 + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/strings/5.7.0: + resolution: + { + integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==, + } + dependencies: + "@ethersproject/bytes": 5.7.0 + "@ethersproject/constants": 5.7.0 + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/transactions/5.7.0: + resolution: + { + integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==, + } + 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 + dev: false + + /@ethersproject/units/5.7.0: + resolution: + { + integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==, + } + dependencies: + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/constants": 5.7.0 + "@ethersproject/logger": 5.7.0 + dev: false + + /@ethersproject/wallet/5.7.0: + resolution: + { + integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==, + } + dependencies: + "@ethersproject/abstract-provider": 5.7.0 + "@ethersproject/abstract-signer": 5.7.0 + "@ethersproject/address": 5.7.0 + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/hash": 5.7.0 + "@ethersproject/hdnode": 5.7.0 + "@ethersproject/json-wallets": 5.7.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/properties": 5.7.0 + "@ethersproject/random": 5.7.0 + "@ethersproject/signing-key": 5.7.0 + "@ethersproject/transactions": 5.7.0 + "@ethersproject/wordlists": 5.7.0 + dev: false + + /@ethersproject/web/5.5.0: + resolution: + { + integrity: sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA==, + } + dependencies: + "@ethersproject/base64": 5.7.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/strings": 5.7.0 + dev: false + + /@ethersproject/web/5.7.0: + resolution: + { + integrity: sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==, + } + 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 + dev: false + + /@ethersproject/wordlists/5.5.0: + resolution: + { + integrity: sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + "@ethersproject/hash": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/strings": 5.5.0 + dev: false + + /@ethersproject/wordlists/5.7.0: + resolution: + { + integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==, + } + dependencies: + "@ethersproject/bytes": 5.7.0 + "@ethersproject/hash": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/properties": 5.7.0 + "@ethersproject/strings": 5.7.0 + dev: false + + /@grpc/grpc-js/1.6.10: + resolution: + { + integrity: sha512-XTX5z/P5kH802MDoVm/rqOil0UwYEOEjf9+NPgfmm5UINIxDzwYaXfVR6z8svCBG8Hlbu/FzkXqhP8J5xaWzSQ==, + } + engines: { node: ^8.13.0 || >=10.10.0 } + dependencies: + "@grpc/proto-loader": 0.7.2 + "@types/node": 18.7.13 + dev: false + + /@grpc/proto-loader/0.7.2: + resolution: + { + integrity: sha512-jCdyLIT/tdQ1zhrbTQnJNK5nbDf0GoBpy5jVNywBzzMDF+Vs6uEaHnfz46dMtDxkvwrF2hzk5Z67goliceH0sA==, + } + engines: { node: ">=6" } + hasBin: true + dependencies: + "@types/long": 4.0.2 + lodash.camelcase: 4.3.0 + long: 4.0.0 + protobufjs: 7.0.0 + yargs: 16.2.0 + dev: false + + /@hapi/hoek/9.3.0: + resolution: + { + integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==, + } + dev: false + + /@hapi/topo/5.1.0: + resolution: + { + integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==, + } + dependencies: + "@hapi/hoek": 9.3.0 + dev: false + + /@hashgraph/cryptography/1.4.0: + resolution: + { + integrity: sha512-NtDmeuwaWJKBDYZd+g/etAD56p/RPUuZGdT9jhXxiFW0YrKCaU1k4ramICbRaJg7E+RDSFJXJLarh0G72z5YDA==, + } + engines: { node: ">=12.0.0" } + peerDependencies: + expo: ^45.0.3 + expo-crypto: ^10.1.2 + expo-random: ^12.1.2 + dependencies: + bignumber.js: 9.1.0 + crypto-js: 4.1.1 + elliptic: 6.5.4 + js-base64: 3.7.2 + tweetnacl: 1.0.3 + utf8: 3.0.0 + dev: false + + /@hashgraph/hethers/1.1.2: + resolution: + { + integrity: sha512-DezQCwm86oQCIXfDwJI6G+/RI0YPy9a/Ho/z3CRUSY9/1gBB0ZFRSK9HUovlrj30eyNtWVeIrHsYE+ZerQI5rQ==, + } + dependencies: + "@ethersproject/solidity": 5.5.0 + "@hethers/abstract-provider": 1.1.1 + "@hethers/abstract-signer": 1.1.2 + "@hethers/address": 1.1.0 + "@hethers/constants": 1.1.0 + "@hethers/contracts": 1.1.1 + "@hethers/hdnode": 1.1.1 + "@hethers/json-wallets": 1.1.1 + "@hethers/logger": 1.1.0 + "@hethers/networks": 1.1.0 + "@hethers/providers": 1.1.1 + "@hethers/signing-key": 1.1.0 + "@hethers/transactions": 1.1.1 + "@hethers/units": 1.1.0 + "@hethers/wallet": 1.1.1 + transitivePeerDependencies: + - "@hashgraph/sdk" + - bufferutil + - debug + - expo + - expo-crypto + - expo-random + - utf-8-validate + dev: false + + /@hashgraph/proto/2.1.5: + resolution: + { + integrity: sha512-7iKO98T3iS+V+Ddy3Ew7+u8nzFT8MjRs6HczPE2scCjwKRhsodtYfGyOxVji+HN6WDqZmylr1VJwhNy5de/CRQ==, + } + engines: { node: ">=10.0.0" } + dependencies: + long: 4.0.0 + protobufjs: 6.11.3 + dev: false + + /@hashgraph/sdk/2.11.0-beta.1: + resolution: + { + integrity: sha512-rpUSg0c580paop1uOvHhUFt7WGnDuvqC0iDpBr0Bp2jTOhgL12AOG5sF0RF/bEQfwAdsizgRBTT24xhmk07yhA==, + } + engines: { node: ">=10.17.0" } + dependencies: + "@grpc/grpc-js": 1.6.10 + "@hashgraph/cryptography": 1.4.0 + "@hashgraph/proto": 2.1.5 + bignumber.js: 9.1.0 + crypto-js: 4.1.1 + js-base64: 3.7.2 + js-logger: 1.6.1 + long: 4.0.0 + protobufjs: 6.11.3 + utf8: 3.0.0 + transitivePeerDependencies: + - expo + - expo-crypto + - expo-random + dev: false + + /@hethers/abstract-provider/1.1.1: + resolution: + { + integrity: sha512-s3u4Cu2qpdWgLh7oYf/evCFk7sgZYlaaIhje6BMXFN+jOKgWWQA6MSECqHSc6h9p9eNEsKt1HmM7yWClikrzyQ==, + } + dependencies: + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/web": 5.5.0 + "@hethers/logger": 1.1.0 + "@hethers/networks": 1.1.0 + "@hethers/transactions": 1.1.1 + transitivePeerDependencies: + - "@hashgraph/sdk" + dev: false + + /@hethers/abstract-provider/1.1.1_jrps2nzh7bjynei3npexd236my: + resolution: + { + integrity: sha512-s3u4Cu2qpdWgLh7oYf/evCFk7sgZYlaaIhje6BMXFN+jOKgWWQA6MSECqHSc6h9p9eNEsKt1HmM7yWClikrzyQ==, + } + dependencies: + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/web": 5.5.0 + "@hethers/logger": 1.1.0 + "@hethers/networks": 1.1.0 + "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my + transitivePeerDependencies: + - "@hashgraph/sdk" + dev: false + + /@hethers/abstract-signer/1.1.1: + resolution: + { + integrity: sha512-g6NyaC/Fwj+l30MqMudKRgL/zNJUcHFdJ5ZdRJAeJaOVBRl7Za3X/2Fz9/A1YJocnhvZFBygq67fl25a+1aKYw==, + } + dependencies: + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@hethers/abstract-provider": 1.1.1 + "@hethers/address": 1.1.0 + "@hethers/logger": 1.1.0 + "@hethers/transactions": 1.1.1 + transitivePeerDependencies: + - "@hashgraph/sdk" + dev: false + + /@hethers/abstract-signer/1.1.1_jrps2nzh7bjynei3npexd236my: + resolution: + { + integrity: sha512-g6NyaC/Fwj+l30MqMudKRgL/zNJUcHFdJ5ZdRJAeJaOVBRl7Za3X/2Fz9/A1YJocnhvZFBygq67fl25a+1aKYw==, + } + dependencies: + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@hethers/abstract-provider": 1.1.1_jrps2nzh7bjynei3npexd236my + "@hethers/address": 1.1.0 + "@hethers/logger": 1.1.0 + "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my + transitivePeerDependencies: + - "@hashgraph/sdk" + dev: false + + /@hethers/abstract-signer/1.1.2: + resolution: + { + integrity: sha512-F66cbneTByr/BlfXvXsZ1wfjxXAa1daTMV0YNWrBgsjuT/xZxyqfuEMCNeHVYSd91S7gNlGGdGcEqKcqlJpVew==, + } + dependencies: + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@hethers/abstract-provider": 1.1.1 + "@hethers/address": 1.1.0 + "@hethers/logger": 1.1.0 + "@hethers/transactions": 1.1.1 + transitivePeerDependencies: + - "@hashgraph/sdk" + dev: false + + /@hethers/address/1.1.0: + resolution: + { + integrity: sha512-aqZvvLe9n0Tc72aAGgjTR9NWLV+rcL9ORq9GOh9tuQ4GeY4XLT1vcI+liXMpjvDxAgEXfsgUWPW9MsZ7DOHSmA==, + } + dependencies: + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/keccak256": 5.5.0 + "@hethers/logger": 1.1.0 + dev: false + + /@hethers/constants/1.1.0: + resolution: + { + integrity: sha512-cto4CMH5bbLdzKyIHnBVx7aW1bipi92u94PBvXD3+EEdYgWMMSFhsAhNtpRo0YNovfG6Vqi5eqs+JM71bncnGw==, + } + dependencies: + "@ethersproject/bignumber": 5.5.0 + dev: false + + /@hethers/contracts/1.1.1: + resolution: + { + integrity: sha512-72zte2dgoLBnsf5DU1YtfbWvQ9OZh6S1qdBdRCxaNBc/3p0lTuxPWcerIuLeKV/HtDKnwSU4mYIoO46FWyZ2eA==, + } + dependencies: + "@ethersproject/abi": 5.5.0 + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@hethers/abstract-provider": 1.1.1 + "@hethers/abstract-signer": 1.1.1 + "@hethers/address": 1.1.0 + "@hethers/logger": 1.1.0 + "@hethers/providers": 1.1.1 + "@hethers/transactions": 1.1.1 + transitivePeerDependencies: + - "@hashgraph/sdk" + - bufferutil + - debug + - expo + - expo-crypto + - expo-random + - utf-8-validate + dev: false + + /@hethers/hdnode/1.1.1: + resolution: + { + integrity: sha512-/yECuQAUaCGIhcDG3x81XJOH6nDwahfMpSq7B7AWl+buS7tswBF9fYwAD/G9SzgnjB9LlIaBWCJcK1/Z5sU39g==, + } + dependencies: + "@ethersproject/basex": 5.5.0 + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/pbkdf2": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/sha2": 5.5.0 + "@ethersproject/strings": 5.5.0 + "@ethersproject/wordlists": 5.5.0 + "@hethers/abstract-signer": 1.1.1 + "@hethers/logger": 1.1.0 + "@hethers/signing-key": 1.1.0 + "@hethers/transactions": 1.1.1 + transitivePeerDependencies: + - "@hashgraph/sdk" + dev: false + + /@hethers/hdnode/1.1.1_jrps2nzh7bjynei3npexd236my: + resolution: + { + integrity: sha512-/yECuQAUaCGIhcDG3x81XJOH6nDwahfMpSq7B7AWl+buS7tswBF9fYwAD/G9SzgnjB9LlIaBWCJcK1/Z5sU39g==, + } + dependencies: + "@ethersproject/basex": 5.5.0 + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/pbkdf2": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/sha2": 5.5.0 + "@ethersproject/strings": 5.5.0 + "@ethersproject/wordlists": 5.5.0 + "@hethers/abstract-signer": 1.1.1_jrps2nzh7bjynei3npexd236my + "@hethers/logger": 1.1.0 + "@hethers/signing-key": 1.1.0 + "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my + transitivePeerDependencies: + - "@hashgraph/sdk" + dev: false + + /@hethers/json-wallets/1.1.1: + resolution: + { + integrity: sha512-GtEHrKex0B0u3EdTX6tYrMpYESvS1zZNraE1Q/gFyWpB/VmwEze2aUApdcEDnWiOJOvZhg5E8QOaSZeHzMS0SQ==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + "@ethersproject/keccak256": 5.5.0 + "@ethersproject/pbkdf2": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/random": 5.5.0 + "@ethersproject/strings": 5.5.0 + "@hethers/abstract-signer": 1.1.1 + "@hethers/address": 1.1.0 + "@hethers/hdnode": 1.1.1 + "@hethers/logger": 1.1.0 + "@hethers/transactions": 1.1.1 + aes-js: 3.0.0 + scrypt-js: 3.0.1 + transitivePeerDependencies: + - "@hashgraph/sdk" + dev: false + + /@hethers/json-wallets/1.1.1_jrps2nzh7bjynei3npexd236my: + resolution: + { + integrity: sha512-GtEHrKex0B0u3EdTX6tYrMpYESvS1zZNraE1Q/gFyWpB/VmwEze2aUApdcEDnWiOJOvZhg5E8QOaSZeHzMS0SQ==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + "@ethersproject/keccak256": 5.5.0 + "@ethersproject/pbkdf2": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/random": 5.5.0 + "@ethersproject/strings": 5.5.0 + "@hethers/abstract-signer": 1.1.1_jrps2nzh7bjynei3npexd236my + "@hethers/address": 1.1.0 + "@hethers/hdnode": 1.1.1_jrps2nzh7bjynei3npexd236my + "@hethers/logger": 1.1.0 + "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my + aes-js: 3.0.0 + scrypt-js: 3.0.1 + transitivePeerDependencies: + - "@hashgraph/sdk" + dev: false + + /@hethers/logger/1.1.0: + resolution: + { + integrity: sha512-EZAM5kirlNobe6auj7AUS1QyNOxunm9ZglatkC0fIx+9y4tEQsrx4asu5r2SPg1fgZiJ9mk2DbaidMWuHSr3kA==, + } + dev: false + + /@hethers/networks/1.1.0: + resolution: + { + integrity: sha512-xtS+5KHlyXND+1CbUCeMPJrqlyDk7ayhcxeAKSc7aHyHm1/wa3xI45W6tJj+AMDC8sGS5GZvAU3YrKSkUGTFdw==, + } + dependencies: + "@hethers/address": 1.1.0 + "@hethers/logger": 1.1.0 + dev: false + + /@hethers/providers/1.1.1: + resolution: + { + integrity: sha512-6CdwiB7GVD7tFm7G1mLemoVKgZ8KNiQvTTEyFxqazRFW6G8unVW07S104+hq/jfVL2eMoZP0O3LZLD+ny5Jelg==, + } + dependencies: + "@ethersproject/base64": 5.5.0 + "@ethersproject/basex": 5.5.0 + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/hash": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/random": 5.5.0 + "@ethersproject/sha2": 5.5.0 + "@ethersproject/strings": 5.5.0 + "@ethersproject/web": 5.5.0 + "@hashgraph/proto": 2.1.5 + "@hashgraph/sdk": 2.11.0-beta.1 + "@hethers/abstract-provider": 1.1.1_jrps2nzh7bjynei3npexd236my + "@hethers/abstract-signer": 1.1.1_jrps2nzh7bjynei3npexd236my + "@hethers/address": 1.1.0 + "@hethers/constants": 1.1.0 + "@hethers/logger": 1.1.0 + "@hethers/networks": 1.1.0 + "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my + "@types/axios": 0.14.0 + axios: 0.24.0 + bech32: 1.1.4 + ws: 7.4.6 + transitivePeerDependencies: + - bufferutil + - debug + - expo + - expo-crypto + - expo-random + - utf-8-validate + dev: false + + /@hethers/signing-key/1.1.0: + resolution: + { + integrity: sha512-Xf+0a2DI3hLcnx2reFO5B7+JSwJMNc9iyb1iWtxi0h6dgrHIF5h0bdRJXSY8a19953hZ6jhDvk5RwEzDaamUqw==, + } + dependencies: + "@ethersproject/bytes": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@hethers/logger": 1.1.0 + bn.js: 4.12.0 + elliptic: 6.5.4 + hash.js: 1.1.7 + dev: false + + /@hethers/transactions/1.1.1: + resolution: + { + integrity: sha512-M4EL3l/xJ3MmtWSQEm8ZpD9LJUd9LPEi106VfBEL/ns/xcTW6wRlIw+xwLHdqDibZ8/Niu8SYN18LbHp/zY6ng==, + } + peerDependencies: + "@hashgraph/sdk": 2.11.0-beta.1 + dependencies: + "@ethersproject/base64": 5.5.0 + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/keccak256": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@hethers/address": 1.1.0 + "@hethers/constants": 1.1.0 + "@hethers/logger": 1.1.0 + "@hethers/signing-key": 1.1.0 + dev: false + + /@hethers/transactions/1.1.1_jrps2nzh7bjynei3npexd236my: + resolution: + { + integrity: sha512-M4EL3l/xJ3MmtWSQEm8ZpD9LJUd9LPEi106VfBEL/ns/xcTW6wRlIw+xwLHdqDibZ8/Niu8SYN18LbHp/zY6ng==, + } + peerDependencies: + "@hashgraph/sdk": 2.11.0-beta.1 + dependencies: + "@ethersproject/base64": 5.5.0 + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/keccak256": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@hashgraph/sdk": 2.11.0-beta.1 + "@hethers/address": 1.1.0 + "@hethers/constants": 1.1.0 + "@hethers/logger": 1.1.0 + "@hethers/signing-key": 1.1.0 + dev: false + + /@hethers/units/1.1.0: + resolution: + { + integrity: sha512-FNxIQalKF4TbgtpEicN9U0HPjlIhnXF1iNouxy1QzQVt58j+elJ6pj7d6Ht5LtwTW/UogGfx95803DZFXqrIhw==, + } + dependencies: + "@ethersproject/bignumber": 5.5.0 + "@hethers/logger": 1.1.0 + dev: false + + /@hethers/wallet/1.1.1: + resolution: + { + integrity: sha512-tg6vrjZL1t1FQziCat7zBx2IjqfFbWsQv5WwZkHPjn7Y/lFzmZuVYdh90t7/p3rquC96VGdmqYa/557qdotzRw==, + } + dependencies: + "@ethersproject/bignumber": 5.5.0 + "@ethersproject/bytes": 5.5.0 + "@ethersproject/hash": 5.5.0 + "@ethersproject/keccak256": 5.5.0 + "@ethersproject/properties": 5.5.0 + "@ethersproject/random": 5.5.0 + "@ethersproject/wordlists": 5.5.0 + "@hashgraph/sdk": 2.11.0-beta.1 + "@hethers/abstract-provider": 1.1.1_jrps2nzh7bjynei3npexd236my + "@hethers/abstract-signer": 1.1.1_jrps2nzh7bjynei3npexd236my + "@hethers/address": 1.1.0 + "@hethers/hdnode": 1.1.1_jrps2nzh7bjynei3npexd236my + "@hethers/json-wallets": 1.1.1_jrps2nzh7bjynei3npexd236my + "@hethers/logger": 1.1.0 + "@hethers/signing-key": 1.1.0 + "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my + transitivePeerDependencies: + - expo + - expo-crypto + - expo-random + dev: false + + /@humanwhocodes/config-array/0.5.0: + resolution: + { + integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==, + } + engines: { node: ">=10.10.0" } + dependencies: + "@humanwhocodes/object-schema": 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: + { + integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, + } + dev: true + + /@improbable-eng/grpc-web-node-http-transport/0.15.0_fng5pv4qmdetiqq66m6yjkaacu: + resolution: + { + integrity: sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA==, + } + peerDependencies: + "@improbable-eng/grpc-web": ">=0.13.0" + dependencies: + "@improbable-eng/grpc-web": 0.15.0_google-protobuf@3.21.0 + dev: false + + /@improbable-eng/grpc-web/0.15.0_google-protobuf@3.21.0: + resolution: + { + integrity: sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==, + } + peerDependencies: + google-protobuf: ^3.14.0 + dependencies: + browser-headers: 0.4.1 + google-protobuf: 3.21.0 + dev: false + + /@jridgewell/resolve-uri/3.1.0: + resolution: + { + integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, + } + engines: { node: ">=6.0.0" } + dev: false + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: + { + integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, + } + dev: false + + /@jridgewell/trace-mapping/0.3.9: + resolution: + { + integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, + } + dependencies: + "@jridgewell/resolve-uri": 3.1.0 + "@jridgewell/sourcemap-codec": 1.4.14 + dev: false + + /@json-rpc-tools/types/1.7.6: + resolution: + { + integrity: sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==, + } + dependencies: + keyvaluestorage-interface: 1.0.0 + dev: false + + /@json-rpc-tools/utils/1.7.6: + resolution: + { + integrity: sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw==, + } + dependencies: + "@json-rpc-tools/types": 1.7.6 + "@pedrouid/environment": 1.0.1 + dev: false + + /@ledgerhq/devices/5.51.1: + resolution: + { + integrity: sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==, + } + dependencies: + "@ledgerhq/errors": 5.50.0 + "@ledgerhq/logs": 5.50.0 + rxjs: 6.6.7 + semver: 7.3.7 + dev: false + + /@ledgerhq/devices/6.27.1: + resolution: + { + integrity: sha512-jX++oy89jtv7Dp2X6gwt3MMkoajel80JFWcdc0HCouwDsV1mVJ3SQdwl/bQU0zd8HI6KebvUP95QTwbQLLK/RQ==, + } + dependencies: + "@ledgerhq/errors": 6.10.1 + "@ledgerhq/logs": 6.10.0 + rxjs: 6.6.7 + semver: 7.3.7 + dev: false + + /@ledgerhq/devices/7.0.0: + resolution: + { + integrity: sha512-vq4B33WdU0dRAJIRFWZMj6w1W1yw1i4mekCmhk7N9wPaFrtGWZ2iI9WDihsNOBooCWKQe8Jsb9eD8RVThbSlFQ==, + } + dependencies: + "@ledgerhq/errors": 6.10.1 + "@ledgerhq/logs": 6.10.0 + rxjs: 6.6.7 + semver: 7.3.7 + dev: false + + /@ledgerhq/errors/5.50.0: + resolution: + { + integrity: sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==, + } + dev: false + + /@ledgerhq/errors/6.10.1: + resolution: + { + integrity: sha512-92d1zRQleR1AQ4CAXgWgDtKUms+8EwShLVUcajI+BLWvgJ1Vclmq6PsBIDEQbsm+riVu/Ji3LcHdmgFgmi0VGw==, + } + dev: false + + /@ledgerhq/hw-transport-node-hid-noevents/5.51.1: + resolution: + { + integrity: sha512-9wFf1L8ZQplF7XOY2sQGEeOhpmBRzrn+4X43kghZ7FBDoltrcK+s/D7S+7ffg3j2OySyP6vIIIgloXylao5Scg==, + } + dependencies: + "@ledgerhq/devices": 5.51.1 + "@ledgerhq/errors": 5.50.0 + "@ledgerhq/hw-transport": 5.51.1 + "@ledgerhq/logs": 5.50.0 + node-hid: 2.1.1 + dev: false + + /@ledgerhq/hw-transport-node-hid/5.51.1: + resolution: + { + integrity: sha512-Y2eVCCdhVs2Lfr7N2x2cNb+ogcZ24ZATO4QxaQ7LogjiPwYmzmvuXFn8zFjMSrKUCn9CtbptXcuiu0NkGsjWlw==, + } + dependencies: + "@ledgerhq/devices": 5.51.1 + "@ledgerhq/errors": 5.50.0 + "@ledgerhq/hw-transport": 5.51.1 + "@ledgerhq/hw-transport-node-hid-noevents": 5.51.1 + "@ledgerhq/logs": 5.50.0 + lodash: 4.17.21 + node-hid: 2.1.1 + usb: 1.9.2 + dev: false + + /@ledgerhq/hw-transport-u2f/5.36.0-deprecated: + resolution: + { + integrity: sha512-T/+mGHIiUK/ZQATad6DMDmobCMZ1mVST952009jKzhaE1Et2Uy2secU+QhRkx3BfEAkvwa0zSRSYCL9d20Iqjg==, + } + deprecated: "@ledgerhq/hw-transport-u2f is deprecated. Please use @ledgerhq/hw-transport-webusb or @ledgerhq/hw-transport-webhid. https://github.com/LedgerHQ/ledgerjs/blob/master/docs/migrate_webusb.md" + dependencies: + "@ledgerhq/errors": 5.50.0 + "@ledgerhq/hw-transport": 5.51.1 + "@ledgerhq/logs": 5.50.0 + u2f-api: 0.2.7 + dev: false + + /@ledgerhq/hw-transport-web-ble/5.48.0: + resolution: + { + integrity: sha512-ezgssFvxc4/UbfwIxwg9jEn0/yiND8TW6bDkaE3kAqKCa8ZYYgFtms8iRqjTOJlqcbSYkudbNhP74jtY0NxfdA==, + } + dependencies: + "@ledgerhq/devices": 5.51.1 + "@ledgerhq/errors": 5.50.0 + "@ledgerhq/hw-transport": 5.51.1 + "@ledgerhq/logs": 5.50.0 + rxjs: 6.6.7 + dev: false + + /@ledgerhq/hw-transport-webhid/5.48.0: + resolution: + { + integrity: sha512-g6TYxgPX3MqP3jQ4SJaJjlM+2SwUSk4Si/9MeKLwz5ySbiD3bSTh/Gbzv8VBCaHPO4fILujc5vW/xejJuMzR8w==, + } + dependencies: + "@ledgerhq/devices": 5.51.1 + "@ledgerhq/errors": 5.50.0 + "@ledgerhq/hw-transport": 5.51.1 + "@ledgerhq/logs": 5.50.0 + dev: false + + /@ledgerhq/hw-transport-webhid/6.27.2: + resolution: + { + integrity: sha512-ZlyNheUhcxBZqjJzhSfJfeGQvNbeyWs9866rdQjVeG1zsbTJi0+6tfRv8J248QISS8vHtG5IMSxgMg9mtux9dQ==, + } + dependencies: + "@ledgerhq/devices": 7.0.0 + "@ledgerhq/errors": 6.10.1 + "@ledgerhq/hw-transport": 6.27.2 + "@ledgerhq/logs": 6.10.0 + dev: false + + /@ledgerhq/hw-transport-webusb/5.48.0: + resolution: + { + integrity: sha512-tO+p11aRQx9q9ifmi/NCbCBKQ738lp+PROy1BWSzjCJcUEz1sKTLeRTLE2Xze25KebhuM2YR1NgkX5LN1z4upA==, + } + dependencies: + "@ledgerhq/devices": 5.51.1 + "@ledgerhq/errors": 5.50.0 + "@ledgerhq/hw-transport": 5.51.1 + "@ledgerhq/logs": 5.50.0 + dev: false + + /@ledgerhq/hw-transport-webusb/6.11.2: + resolution: + { + integrity: sha512-ReiYoypXybLQi1ekA+YQqsvbSj0wwTFH7Lg690eUkqZydjDd4lMjpZk7lDczsXp3wxTjE/mdAQ0bpNwZWmPTJw==, + } + dependencies: + "@ledgerhq/devices": 6.27.1 + "@ledgerhq/errors": 6.10.1 + "@ledgerhq/hw-transport": 6.27.2 + "@ledgerhq/logs": 6.10.0 + dev: false + + /@ledgerhq/hw-transport/5.51.1: + resolution: + { + integrity: sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==, + } + dependencies: + "@ledgerhq/devices": 5.51.1 + "@ledgerhq/errors": 5.50.0 + events: 3.3.0 + dev: false + + /@ledgerhq/hw-transport/6.27.2: + resolution: + { + integrity: sha512-GF4pmK78rEKhZfbmunwQ131c+0MGa6L5IoYlwgFcg6CaFpUjjPiTCKUFsm4flsE0Z0Ltn9QuKoe+xEHULo7rGA==, + } + dependencies: + "@ledgerhq/devices": 7.0.0 + "@ledgerhq/errors": 6.10.1 + events: 3.3.0 + dev: false + + /@ledgerhq/logs/5.50.0: + resolution: + { + integrity: sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==, + } + dev: false + + /@ledgerhq/logs/6.10.0: + resolution: + { + integrity: sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw==, + } + dev: false + + /@noble/hashes/1.0.0: + resolution: + { + integrity: sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg==, + } + dev: false + + /@noble/secp256k1/1.6.3: + resolution: + { + integrity: sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==, + } + dev: false + + /@nodelib/fs.scandir/2.1.5: + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat/2.0.5: + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } + + /@nodelib/fs.walk/1.2.8: + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: 1.13.0 + + /@octokit/auth-token/2.5.0: + resolution: + { + integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==, + } + dependencies: + "@octokit/types": 6.41.0 + dev: false + + /@octokit/core/3.6.0: + resolution: + { + integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==, + } + dependencies: + "@octokit/auth-token": 2.5.0 + "@octokit/graphql": 4.8.0 + "@octokit/request": 5.6.3 + "@octokit/request-error": 2.1.0 + "@octokit/types": 6.41.0 + before-after-hook: 2.2.2 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: false + + /@octokit/endpoint/6.0.12: + resolution: + { + integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==, + } + dependencies: + "@octokit/types": 6.41.0 + is-plain-object: 5.0.0 + universal-user-agent: 6.0.0 + dev: false + + /@octokit/graphql/4.8.0: + resolution: + { + integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==, + } + dependencies: + "@octokit/request": 5.6.3 + "@octokit/types": 6.41.0 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: false + + /@octokit/openapi-types/12.11.0: + resolution: + { + integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==, + } + dev: false + + /@octokit/plugin-paginate-rest/2.21.3_@octokit+core@3.6.0: + resolution: + { + integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==, + } + peerDependencies: + "@octokit/core": ">=2" + dependencies: + "@octokit/core": 3.6.0 + "@octokit/types": 6.41.0 + dev: false + + /@octokit/plugin-request-log/1.0.4_@octokit+core@3.6.0: + resolution: + { + integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==, + } + peerDependencies: + "@octokit/core": ">=3" + dependencies: + "@octokit/core": 3.6.0 + dev: false + + /@octokit/plugin-rest-endpoint-methods/5.16.2_@octokit+core@3.6.0: + resolution: + { + integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==, + } + peerDependencies: + "@octokit/core": ">=3" + dependencies: + "@octokit/core": 3.6.0 + "@octokit/types": 6.41.0 + deprecation: 2.3.1 + dev: false + + /@octokit/request-error/2.1.0: + resolution: + { + integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==, + } + dependencies: + "@octokit/types": 6.41.0 + deprecation: 2.3.1 + once: 1.4.0 + dev: false + + /@octokit/request/5.6.3: + resolution: + { + integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==, + } + dependencies: + "@octokit/endpoint": 6.0.12 + "@octokit/request-error": 2.1.0 + "@octokit/types": 6.41.0 + is-plain-object: 5.0.0 + node-fetch: 2.6.7 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: false + + /@octokit/rest/18.12.0: + resolution: + { + integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==, + } + dependencies: + "@octokit/core": 3.6.0 + "@octokit/plugin-paginate-rest": 2.21.3_@octokit+core@3.6.0 + "@octokit/plugin-request-log": 1.0.4_@octokit+core@3.6.0 + "@octokit/plugin-rest-endpoint-methods": 5.16.2_@octokit+core@3.6.0 + transitivePeerDependencies: + - encoding + dev: false + + /@octokit/types/6.41.0: + resolution: + { + integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==, + } + dependencies: + "@octokit/openapi-types": 12.11.0 + dev: false + + /@osmonauts/helpers/0.3.8: + resolution: + { + integrity: sha512-6xM/DGjLctziRVT2DuR7/MQ/HqfHAcqOaGF4z77Jeh3RWQ78zWiaRVxBefRQdKaqrh5LhXL6VebUdiy9IGwTTA==, + } + dependencies: + "@babel/runtime": 7.18.9 + long: 5.2.0 + protobufjs: 6.11.3 + dev: false + + /@peculiar/asn1-schema/2.3.0: + resolution: + { + integrity: sha512-DtNLAG4vmDrdSJFPe7rypkcj597chNQL7u+2dBtYo5mh7VW2+im6ke+O0NVr8W1f4re4C3F71LhoMb0Yxqa48Q==, + } + dependencies: + asn1js: 3.0.5 + pvtsutils: 1.3.2 + tslib: 2.4.0 + dev: false + + /@peculiar/json-schema/1.1.12: + resolution: + { + integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==, + } + engines: { node: ">=8.0.0" } + dependencies: + tslib: 2.4.0 + dev: false + + /@peculiar/webcrypto/1.4.0: + resolution: + { + integrity: sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg==, + } + engines: { node: ">=10.12.0" } + dependencies: + "@peculiar/asn1-schema": 2.3.0 + "@peculiar/json-schema": 1.1.12 + pvtsutils: 1.3.2 + tslib: 2.4.0 + webcrypto-core: 1.7.5 + dev: false + + /@pedrouid/environment/1.0.1: + resolution: + { + integrity: sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==, + } + dev: false + + /@project-serum/anchor/0.25.0: + resolution: + { + integrity: sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==, + } + engines: { node: ">=11" } + dependencies: + "@project-serum/borsh": 0.2.5_@solana+web3.js@1.53.0 + "@solana/web3.js": 1.53.0 + base64-js: 1.5.1 + bn.js: 5.2.1 + bs58: 4.0.1 + buffer-layout: 1.2.2 + camelcase: 5.3.1 + cross-fetch: 3.1.5 + crypto-hash: 1.3.0 + eventemitter3: 4.0.7 + js-sha256: 0.9.0 + pako: 2.0.4 + snake-case: 3.0.4 + superstruct: 0.15.5 + toml: 3.0.0 + transitivePeerDependencies: + - bufferutil + - encoding + - react-native + - utf-8-validate + dev: false + + /@project-serum/borsh/0.2.5_@solana+web3.js@1.53.0: + resolution: + { + integrity: sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==, + } + engines: { node: ">=10" } + peerDependencies: + "@solana/web3.js": ^1.2.0 + dependencies: + "@solana/web3.js": 1.53.0 + bn.js: 5.2.1 + buffer-layout: 1.2.2 + dev: false + + /@protobufjs/aspromise/1.1.2: + resolution: + { + integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, + } + dev: false + + /@protobufjs/base64/1.1.2: + resolution: + { + integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, + } + dev: false + + /@protobufjs/codegen/2.0.4: + resolution: + { + integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, + } + dev: false + + /@protobufjs/eventemitter/1.1.0: + resolution: + { + integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, + } + dev: false + + /@protobufjs/fetch/1.1.0: + resolution: + { + integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, + } + dependencies: + "@protobufjs/aspromise": 1.1.2 + "@protobufjs/inquire": 1.1.0 + dev: false + + /@protobufjs/float/1.0.2: + resolution: + { + integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, + } + dev: false + + /@protobufjs/inquire/1.1.0: + resolution: + { + integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, + } + dev: false + + /@protobufjs/path/1.1.2: + resolution: + { + integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, + } + dev: false + + /@protobufjs/pool/1.1.0: + resolution: + { + integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, + } + dev: false + + /@protobufjs/utf8/1.1.0: + resolution: + { + integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, + } + dev: false + + /@randlabs/communication-bridge/1.0.0: + resolution: + { + integrity: sha512-CuJNwtMTG1LHR1LQNWUPv+8xPUdkRY9p61wGJEp8J/N3q8djmnMySvSQlyVqLBvXsTPKmYc0ZmfXEXCpb5P5Cw==, + } + dev: false + + /@randlabs/myalgo-connect/1.3.0: + resolution: + { + integrity: sha512-ujHa/7f0g1yHNr1ZZO8d/AF7WTTEFGS76D8aDUV4DmoxUX6mVS4IzED88j0wys7TRCJbjGib2vcPg3Y8nKxsMw==, + } + dependencies: + "@randlabs/communication-bridge": 1.0.0 + dev: false + + /@sideway/address/4.1.4: + resolution: + { + integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==, + } + dependencies: + "@hapi/hoek": 9.3.0 + dev: false + + /@sideway/formula/3.0.0: + resolution: + { + integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==, + } + dev: false + + /@sideway/pinpoint/2.0.0: + resolution: + { + integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==, + } + dev: false + + /@sindresorhus/is/4.6.0: + resolution: + { + integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==, + } + engines: { node: ">=10" } + dev: false + + /@socket.io/component-emitter/3.1.0: + resolution: + { + integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==, + } + dev: false + + /@solana/buffer-layout-utils/0.2.0: + resolution: + { + integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==, + } + engines: { node: ">= 10" } + dependencies: + "@solana/buffer-layout": 4.0.0 + "@solana/web3.js": 1.53.0 + bigint-buffer: 1.1.5 + bignumber.js: 9.1.0 + transitivePeerDependencies: + - bufferutil + - encoding + - react-native + - utf-8-validate + dev: false + + /@solana/buffer-layout/4.0.0: + resolution: + { + integrity: sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==, + } + engines: { node: ">=5.10" } + dependencies: + buffer: 6.0.3 + dev: false + + /@solana/spl-token/0.2.0: + resolution: + { + integrity: sha512-RWcn31OXtdqIxmkzQfB2R+WpsJOVS6rKuvpxJFjvik2LyODd+WN58ZP3Rpjpro03fscGAkzlFuP3r42doRJgyQ==, + } + engines: { node: ">= 14" } + dependencies: + "@solana/buffer-layout": 4.0.0 + "@solana/buffer-layout-utils": 0.2.0 + "@solana/web3.js": 1.53.0 + start-server-and-test: 1.14.0 + transitivePeerDependencies: + - bufferutil + - encoding + - react-native + - supports-color + - utf-8-validate + dev: false + + /@solana/web3.js/1.53.0: + resolution: + { + integrity: sha512-QyQDA9U5b+AiTo1ANsj9WihWWECeLv6VRpiTE7xPe5hLYANXZYecnlLglNiEzVgRg/jLvR5DrCISXhHx/mAEJw==, + } + engines: { node: ">=12.20.0" } + dependencies: + "@babel/runtime": 7.18.9 + "@ethersproject/sha2": 5.7.0 + "@solana/buffer-layout": 4.0.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.1 + fast-stable-stringify: 1.0.0 + jayson: 3.7.0 + js-sha3: 0.8.0 + node-fetch: 2.6.7 + react-native-url-polyfill: 1.3.0 + rpc-websockets: 7.5.0 + secp256k1: 4.0.3 + superstruct: 0.14.2 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - react-native + - utf-8-validate + dev: false + + /@stablelib/binary/1.0.1: + resolution: + { + integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==, + } + dependencies: + "@stablelib/int": 1.0.1 + dev: false + + /@stablelib/blake2b/1.0.1: + resolution: + { + integrity: sha512-B3KyKoBAjkIFeH7romcF96i+pVFYk7K2SBQ1pZvaxV+epSBXJ+n0C66esUhyz6FF+5FbdQVm77C5fzGFcEZpKA==, + } + dependencies: + "@stablelib/binary": 1.0.1 + "@stablelib/hash": 1.0.1 + "@stablelib/wipe": 1.0.1 + dev: false + + /@stablelib/bytes/1.0.1: + resolution: + { + integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==, + } + dev: false + + /@stablelib/constant-time/1.0.1: + resolution: + { + integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==, + } + dev: false + + /@stablelib/ed25519/1.0.3: + resolution: + { + integrity: sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==, + } + dependencies: + "@stablelib/random": 1.0.2 + "@stablelib/sha512": 1.0.1 + "@stablelib/wipe": 1.0.1 + dev: false + + /@stablelib/hash/1.0.1: + resolution: + { + integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==, + } + dev: false + + /@stablelib/int/1.0.1: + resolution: + { + integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==, + } + dev: false + + /@stablelib/keyagreement/1.0.1: + resolution: + { + integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==, + } + dependencies: + "@stablelib/bytes": 1.0.1 + dev: false + + /@stablelib/nacl/1.0.4: + resolution: + { + integrity: sha512-PJ2U/MrkXSKUM8C4qFs87WeCNxri7KQwR8Cdwm9q2sweGuAtTvOJGuW0F3N+zn+ySLPJA98SYWSSpogMJ1gCmw==, + } + dependencies: + "@stablelib/poly1305": 1.0.1 + "@stablelib/random": 1.0.2 + "@stablelib/wipe": 1.0.1 + "@stablelib/x25519": 1.0.3 + "@stablelib/xsalsa20": 1.0.2 + dev: false + + /@stablelib/poly1305/1.0.1: + resolution: + { + integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==, + } + dependencies: + "@stablelib/constant-time": 1.0.1 + "@stablelib/wipe": 1.0.1 + dev: false + + /@stablelib/random/1.0.2: + resolution: + { + integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==, + } + dependencies: + "@stablelib/binary": 1.0.1 + "@stablelib/wipe": 1.0.1 + dev: false + + /@stablelib/salsa20/1.0.2: + resolution: + { + integrity: sha512-nfjKzw0KTKrrKBasEP+j7UP4I8Xudom8lVZIBCp0kQNARXq72IlSic0oabg2FC1NU68L4RdHrNJDd8bFwrphYA==, + } + dependencies: + "@stablelib/binary": 1.0.1 + "@stablelib/constant-time": 1.0.1 + "@stablelib/wipe": 1.0.1 + dev: false + + /@stablelib/sha512/1.0.1: + resolution: + { + integrity: sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==, + } + dependencies: + "@stablelib/binary": 1.0.1 + "@stablelib/hash": 1.0.1 + "@stablelib/wipe": 1.0.1 + dev: false + + /@stablelib/wipe/1.0.1: + resolution: + { + integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==, + } + dev: false + + /@stablelib/x25519/1.0.3: + resolution: + { + integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==, + } + dependencies: + "@stablelib/keyagreement": 1.0.1 + "@stablelib/random": 1.0.2 + "@stablelib/wipe": 1.0.1 + dev: false + + /@stablelib/xsalsa20/1.0.2: + resolution: + { + integrity: sha512-7XdBGbcNgBShmuhDXv1G1WPVCkjZdkb1oPMzSidO7Fve0MHntH6TjFkj5bfLI+aRE+61weO076vYpP/jmaAYog==, + } + dependencies: + "@stablelib/binary": 1.0.1 + "@stablelib/salsa20": 1.0.2 + "@stablelib/wipe": 1.0.1 + dev: false + + /@szmarczak/http-timer/4.0.6: + resolution: + { + integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==, + } + engines: { node: ">=10" } + dependencies: + defer-to-connect: 2.0.1 + dev: false + + /@szmarczak/http-timer/5.0.1: + resolution: + { + integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==, + } + engines: { node: ">=14.16" } + dependencies: + defer-to-connect: 2.0.1 + dev: false + + /@taquito/http-utils/13.0.1: + resolution: + { + integrity: sha512-eHzd0HSL3qX6bOOSaQClm+0XmpbSNcJP69uzaBJwfXo7ntQR1bUfGLn6+1Hgsk/lJ0JxakD2PDA4aaeajHvyPw==, + } + engines: { node: ">=6.0.0" } + dependencies: + axios: 0.26.1 + transitivePeerDependencies: + - debug + dev: false + + /@taquito/local-forging/13.0.1: + resolution: + { + integrity: sha512-2n1ryUzHBIOHiQYRO7ELQaurjoNhJ3KUUcX0dAnFs3xVxUBugHgDPot+T+1rNZDdLVhTS6mmK796xrWDGnO6xw==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@taquito/utils": 13.0.1 + bignumber.js: 9.1.0 + dev: false + + /@taquito/michel-codec/13.0.1: + resolution: + { + integrity: sha512-A9MxhDMdTTK31ty5Ke2wg4wkt7F/Y++tD8wq9YIFJzxt+MkpWX5b2i1f7yHXPsK/81YiGAi/LDamLtLCekY1LA==, + } + engines: { node: ">=6.0.0" } + dev: false + + /@taquito/michelson-encoder/13.0.1: + resolution: + { + integrity: sha512-U80vswMHlEDQUjvARZScIKrSZkIjxdYtDLvHu4oRZ9wTqTXSlj+t64G5QmZwTEJRQkbzfhsOOr6vL40ztL0tzw==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@taquito/rpc": 13.0.1 + "@taquito/utils": 13.0.1 + bignumber.js: 9.1.0 + fast-json-stable-stringify: 2.1.0 + transitivePeerDependencies: + - debug + dev: false + + /@taquito/rpc/13.0.1: + resolution: + { + integrity: sha512-f2Z0qzHB1ERLU5kewmXh3rAD84qIYthSjmAo04sWFbuaMgGW1HxMJKJ/EtL4s4VgoDUwahSwfATmVzmKg57BSw==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@taquito/http-utils": 13.0.1 + "@taquito/utils": 13.0.1 + bignumber.js: 9.1.0 + transitivePeerDependencies: + - debug + dev: false + + /@taquito/signer/13.0.1: + resolution: + { + integrity: sha512-3C7DTC5u6jqA83kUGghEDEDJtwCNNmw0KIF+u6EdQ55YRxLDf8XBp8/voG3i+0HvU3MPqfg0CIvCUHbr8MO0Og==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@stablelib/blake2b": 1.0.1 + "@stablelib/ed25519": 1.0.3 + "@stablelib/nacl": 1.0.4 + "@taquito/taquito": 13.0.1 + "@taquito/utils": 13.0.1 + elliptic: 6.5.4 + pbkdf2: 3.1.2 + typedarray-to-buffer: 4.0.0 + transitivePeerDependencies: + - debug + dev: false + + /@taquito/taquito/13.0.1: + resolution: + { + integrity: sha512-xNtcwKsOCHSkURO9G2VhKSeI9q0qh5/OkVuYe6KM0Fo40FthXNqq205I/FTJzu5E1Q73J7cFqA7FHqUrv276gw==, + } + engines: { node: ">=6.0.0" } + requiresBuild: true + dependencies: + "@taquito/http-utils": 13.0.1 + "@taquito/local-forging": 13.0.1 + "@taquito/michel-codec": 13.0.1 + "@taquito/michelson-encoder": 13.0.1 + "@taquito/rpc": 13.0.1 + "@taquito/utils": 13.0.1 + bignumber.js: 9.1.0 + rxjs: 6.6.7 + transitivePeerDependencies: + - debug + dev: false + + /@taquito/tzip12/13.0.1: + resolution: + { + integrity: sha512-V3TPKL7sh5rj75NXjgNWCgM245LX2U/vQXA+rKebNKmHqNPcYZ7L5EmOzE5eLURkoxsuwLznCGhcL/xWQdMraA==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@taquito/michelson-encoder": 13.0.1 + "@taquito/taquito": 13.0.1 + "@taquito/tzip16": 13.0.1 + transitivePeerDependencies: + - debug + dev: false + + /@taquito/tzip16/13.0.1: + resolution: + { + integrity: sha512-k+Vr1t2j7IqR/FuK5b3e7iGTA/VfltBwH+fdJEXssRjBH3jrWQxraR+CNkNuqkspn97dKe7TwwU4cJnqbh1sLA==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@taquito/http-utils": 13.0.1 + "@taquito/michelson-encoder": 13.0.1 + "@taquito/rpc": 13.0.1 + "@taquito/taquito": 13.0.1 + "@taquito/utils": 13.0.1 + bignumber.js: 9.1.0 + crypto-js: 4.1.1 + transitivePeerDependencies: + - debug + dev: false + + /@taquito/utils/13.0.1: + resolution: + { + integrity: sha512-uRtsl4EATlVJ1UnNUiAEoibFFyexGLDLz02CBHoBrcWjqrZdj3AxA+TO63E2kWn/JmT2FM0Sqaqbm555lj4tow==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@stablelib/blake2b": 1.0.1 + "@stablelib/ed25519": 1.0.3 + "@types/bs58check": 2.1.0 + blakejs: 1.2.1 + bs58check: 2.1.2 + buffer: 6.0.3 + elliptic: 6.5.4 + typedarray-to-buffer: 4.0.0 + dev: false + + /@tsconfig/node10/1.0.9: + resolution: + { + integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, + } + dev: false + + /@tsconfig/node12/1.0.11: + resolution: + { + integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, + } + dev: false + + /@tsconfig/node14/1.0.3: + resolution: + { + integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, + } + dev: false + + /@tsconfig/node16/1.0.3: + resolution: + { + integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==, + } + dev: false + + /@types/axios/0.14.0: + resolution: + { + integrity: sha512-KqQnQbdYE54D7oa/UmYVMZKq7CO4l8DEENzOKc4aBRwxCXSlJXGz83flFx5L7AWrOQnmuN3kVsRdt+GZPPjiVQ==, + } + deprecated: This is a stub types definition for axios (https://github.com/mzabriskie/axios). axios provides its own type definitions, so you don't need @types/axios installed! + dependencies: + axios: 0.26.1 + transitivePeerDependencies: + - debug + dev: false + + /@types/bn.js/5.1.0: + resolution: + { + integrity: sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==, + } + dependencies: + "@types/node": 18.7.13 + + /@types/bs58check/2.1.0: + resolution: + { + integrity: sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==, + } + dependencies: + "@types/node": 18.7.13 + dev: false + + /@types/cacheable-request/6.0.2: + resolution: + { + integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==, + } + dependencies: + "@types/http-cache-semantics": 4.0.1 + "@types/keyv": 3.1.4 + "@types/node": 18.7.13 + "@types/responselike": 1.0.0 + dev: false + + /@types/chai-subset/1.3.3: + resolution: + { + integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==, + } + dependencies: + "@types/chai": 4.3.3 + dev: false + + /@types/chai/4.3.3: + resolution: + { + integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==, + } + dev: false + + /@types/connect/3.4.35: + resolution: + { + integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==, + } + dependencies: + "@types/node": 18.7.13 + dev: false + + /@types/http-cache-semantics/4.0.1: + resolution: + { + integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==, + } + dev: false + + /@types/json-buffer/3.0.0: + resolution: + { + integrity: sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==, + } + dev: false + + /@types/json-schema/7.0.11: + resolution: + { + integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, + } + dev: true + + /@types/keyv/3.1.4: + resolution: + { + integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, + } + dependencies: + "@types/node": 18.7.13 + dev: false + + /@types/long/4.0.2: + resolution: + { + integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==, + } + dev: false + + /@types/minimatch/3.0.5: + resolution: + { + integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==, + } + dev: true + + /@types/node/10.12.18: + resolution: + { + integrity: sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==, + } + dev: false + + /@types/node/10.17.60: + resolution: + { + integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==, + } + dev: false + + /@types/node/11.11.6: + resolution: + { + integrity: sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==, + } + dev: false + + /@types/node/12.20.55: + resolution: + { + integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, + } + dev: false + + /@types/node/13.13.52: + resolution: + { + integrity: sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==, + } + dev: false + + /@types/node/18.7.13: + resolution: + { + integrity: sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==, + } + + /@types/pbkdf2/3.1.0: + resolution: + { + integrity: sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==, + } + dependencies: + "@types/node": 18.7.13 + dev: false + + /@types/responselike/1.0.0: + resolution: + { + integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==, + } + dependencies: + "@types/node": 18.7.13 + dev: false + + /@types/secp256k1/4.0.3: + resolution: + { + integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==, + } + dependencies: + "@types/node": 18.7.13 + dev: false + + /@types/ws/7.4.7: + resolution: + { + integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==, + } + dependencies: + "@types/node": 18.7.13 + dev: false + + /@typescript-eslint/eslint-plugin/4.33.0_3ekaj7j3owlolnuhj3ykrb7u7i: + resolution: + { + integrity: sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + peerDependencies: + "@typescript-eslint/parser": ^4.0.0 + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + dependencies: + "@typescript-eslint/experimental-utils": 4.33.0_hxadhbs2xogijvk7vq4t2azzbu + "@typescript-eslint/parser": 4.33.0_hxadhbs2xogijvk7vq4t2azzbu + "@typescript-eslint/scope-manager": 4.33.0 + debug: 4.3.4 + eslint: 7.32.0 + functional-red-black-tree: 1.0.1 + ignore: 5.2.0 + regexpp: 3.2.0 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/experimental-utils/4.33.0_hxadhbs2xogijvk7vq4t2azzbu: + resolution: + { + integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + peerDependencies: + eslint: "*" + dependencies: + "@types/json-schema": 7.0.11 + "@typescript-eslint/scope-manager": 4.33.0 + "@typescript-eslint/types": 4.33.0 + "@typescript-eslint/typescript-estree": 4.33.0_typescript@4.7.4 + eslint: 7.32.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@7.32.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/parser/4.33.0_hxadhbs2xogijvk7vq4t2azzbu: + resolution: + { + integrity: sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + dependencies: + "@typescript-eslint/scope-manager": 4.33.0 + "@typescript-eslint/types": 4.33.0 + "@typescript-eslint/typescript-estree": 4.33.0_typescript@4.7.4 + debug: 4.3.4 + eslint: 7.32.0 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/4.33.0: + resolution: + { + integrity: sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==, + } + engines: { node: ^8.10.0 || ^10.13.0 || >=11.10.1 } + dependencies: + "@typescript-eslint/types": 4.33.0 + "@typescript-eslint/visitor-keys": 4.33.0 + dev: true + + /@typescript-eslint/types/4.33.0: + resolution: + { + integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==, + } + engines: { node: ^8.10.0 || ^10.13.0 || >=11.10.1 } + dev: true + + /@typescript-eslint/typescript-estree/4.33.0_typescript@4.7.4: + resolution: + { + integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + peerDependencies: + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + dependencies: + "@typescript-eslint/types": 4.33.0 + "@typescript-eslint/visitor-keys": 4.33.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/visitor-keys/4.33.0: + resolution: + { + integrity: sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==, + } + engines: { node: ^8.10.0 || ^10.13.0 || >=11.10.1 } + dependencies: + "@typescript-eslint/types": 4.33.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /@unimodules/core/7.1.2: + resolution: + { + integrity: sha512-lY+e2TAFuebD3vshHMIRqru3X4+k7Xkba4Wa7QsDBd+ex4c4N2dHAO61E2SrGD9+TRBD8w/o7mzK6ljbqRnbyg==, + } + deprecated: "replaced by the 'expo' package, learn more: https://blog.expo.dev/whats-new-in-expo-modules-infrastructure-7a7cdda81ebc" + requiresBuild: true + dependencies: + compare-versions: 3.6.0 + dev: false + optional: true + + /@unimodules/react-native-adapter/6.3.9: + resolution: + { + integrity: sha512-i9/9Si4AQ8awls+YGAKkByFbeAsOPgUNeLoYeh2SQ3ddjxJ5ZJDtq/I74clDnpDcn8zS9pYlcDJ9fgVJa39Glw==, + } + deprecated: "replaced by the 'expo' package, learn more: https://blog.expo.dev/whats-new-in-expo-modules-infrastructure-7a7cdda81ebc" + requiresBuild: true + dependencies: + expo-modules-autolinking: 0.0.3 + invariant: 2.2.4 + dev: false + optional: true + + /@vechain/connex-driver/2.0.10: + resolution: + { + integrity: sha512-Ki/wUTG4OcPD8t0vCfwcgOJnyfHFiUlWTg/oU0CXwXC+0FeOSxtXOdAY6AyKlSETQKd7AM+PAdU6MqNBADx+Ew==, + } + dependencies: + "@vechain/connex-types": 2.0.2 + axios: 0.21.4 + bignumber.js: 7.2.1 + isomorphic-ws: 4.0.1_ws@7.5.9 + lru-cache: 5.1.1 + thor-devkit: 2.0.5 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + dev: false + + /@vechain/connex-framework/2.0.10: + resolution: + { + integrity: sha512-pgTxMUr99ZOfd5cjzOihVdnbwXP7qh+kdLSjKaWjW+9Yw2ZOdNk58AJ/Bs2POkKB836pgt+Phu65T7MRxPENpg==, + } + dependencies: + "@vechain/connex-types": 2.0.2 + bignumber.js: 7.2.1 + thor-devkit: 2.0.5 + validator-ts: 0.9.1 + dev: false + + /@vechain/connex-types/2.0.2: + resolution: + { + integrity: sha512-as905zXnVgc74mLkWkr2zMgJRJmFTMEDrRgtOPn68rqLeYCBzR7Ye1QCGbGKnPUaYGDLbGutoIW8r1y8wmGCUg==, + } + dev: false + + /@vechain/ethers/4.0.27-5: + resolution: + { + integrity: sha512-dR+rTUauPJpqHNBdEgV6Xh+o009uCRPCvN2HWYIAzZP2SvgsPHLxNUzeRbRKhNzz/HC8HjWNvECRxODF88B03Q==, + } + dependencies: + "@types/node": 10.17.60 + aes-js: 3.0.0 + bn.js: 4.12.0 + elliptic: 6.5.4 + hash.js: 1.1.3 + js-sha3: 0.5.7 + scrypt-js: 2.0.4 + setimmediate: 1.0.4 + uuid: 2.0.1 + xmlhttprequest: 1.8.0 + dev: false + + /@walletconnect/browser-utils/1.8.0: + resolution: + { + integrity: sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A==, + } + dependencies: + "@walletconnect/safe-json": 1.0.0 + "@walletconnect/types": 1.8.0 + "@walletconnect/window-getters": 1.0.0 + "@walletconnect/window-metadata": 1.0.0 + detect-browser: 5.2.0 + dev: false + + /@walletconnect/client/1.6.5: + resolution: + { + integrity: sha512-dRq1D3NEGwM2I3CpiwFsWy1rrdMKCMSfDUu3rCCXUE4zInx+pyq7IEFjYiSjtOEZzjRlUTqYwhjnYIezQZgh4w==, + } + dependencies: + "@walletconnect/core": 1.8.0 + "@walletconnect/iso-crypto": 1.8.0 + "@walletconnect/types": 1.8.0 + "@walletconnect/utils": 1.8.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/client/1.8.0: + resolution: + { + integrity: sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ==, + } + dependencies: + "@walletconnect/core": 1.8.0 + "@walletconnect/iso-crypto": 1.8.0 + "@walletconnect/types": 1.8.0 + "@walletconnect/utils": 1.8.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/core/1.8.0: + resolution: + { + integrity: sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw==, + } + dependencies: + "@walletconnect/socket-transport": 1.8.0 + "@walletconnect/types": 1.8.0 + "@walletconnect/utils": 1.8.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/crypto/1.0.2: + resolution: + { + integrity: sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ==, + } + dependencies: + "@walletconnect/encoding": 1.0.1 + "@walletconnect/environment": 1.0.0 + "@walletconnect/randombytes": 1.0.2 + aes-js: 3.1.2 + hash.js: 1.1.7 + dev: false + + /@walletconnect/encoding/1.0.1: + resolution: + { + integrity: sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA==, + } + dependencies: + is-typedarray: 1.0.0 + typedarray-to-buffer: 3.1.5 + dev: false + + /@walletconnect/environment/1.0.0: + resolution: + { + integrity: sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ==, + } + dev: false + + /@walletconnect/iso-crypto/1.8.0: + resolution: + { + integrity: sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ==, + } + dependencies: + "@walletconnect/crypto": 1.0.2 + "@walletconnect/types": 1.8.0 + "@walletconnect/utils": 1.8.0 + dev: false + + /@walletconnect/jsonrpc-types/1.0.1: + resolution: + { + integrity: sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw==, + } + dependencies: + keyvaluestorage-interface: 1.0.0 + dev: false + + /@walletconnect/jsonrpc-utils/1.0.3: + resolution: + { + integrity: sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ==, + } + dependencies: + "@walletconnect/environment": 1.0.0 + "@walletconnect/jsonrpc-types": 1.0.1 + dev: false + + /@walletconnect/randombytes/1.0.2: + resolution: + { + integrity: sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A==, + } + dependencies: + "@walletconnect/encoding": 1.0.1 + "@walletconnect/environment": 1.0.0 + randombytes: 2.1.0 + dev: false + + /@walletconnect/safe-json/1.0.0: + resolution: + { + integrity: sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==, + } + dev: false + + /@walletconnect/socket-transport/1.8.0: + resolution: + { + integrity: sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ==, + } + dependencies: + "@walletconnect/types": 1.8.0 + "@walletconnect/utils": 1.8.0 + ws: 7.5.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/types/1.8.0: + resolution: + { + integrity: sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==, + } + dev: false + + /@walletconnect/utils/1.8.0: + resolution: + { + integrity: sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA==, + } + dependencies: + "@walletconnect/browser-utils": 1.8.0 + "@walletconnect/encoding": 1.0.1 + "@walletconnect/jsonrpc-utils": 1.0.3 + "@walletconnect/types": 1.8.0 + bn.js: 4.11.8 + js-sha3: 0.8.0 + query-string: 6.13.5 + dev: false + + /@walletconnect/window-getters/1.0.0: + resolution: + { + integrity: sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==, + } + dev: false + + /@walletconnect/window-metadata/1.0.0: + resolution: + { + integrity: sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==, + } + dependencies: + "@walletconnect/window-getters": 1.0.0 + dev: false + + /JSONStream/1.3.5: + resolution: + { + integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, + } + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: false + + /abort-controller/3.0.0: + resolution: + { + integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, + } + engines: { node: ">=6.5" } + dependencies: + event-target-shim: 5.0.1 + dev: false + + /abortcontroller-polyfill/1.7.3: + resolution: + { + integrity: sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==, + } + dev: false + + /accepts/1.3.8: + resolution: + { + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, + } + engines: { node: ">= 0.6" } + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: false + + /acorn-jsx/5.3.2_acorn@7.4.1: + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 7.4.1 + dev: true + + /acorn-walk/8.2.0: + resolution: + { + integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, + } + engines: { node: ">=0.4.0" } + dev: false + + /acorn/7.4.1: + resolution: + { + integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, + } + engines: { node: ">=0.4.0" } + hasBin: true + dev: true + + /acorn/8.8.0: + resolution: + { + integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==, + } + engines: { node: ">=0.4.0" } + hasBin: true + dev: false + + /aes-js/3.0.0: + resolution: + { + integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==, + } + dev: false + + /aes-js/3.1.2: + resolution: + { + integrity: sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==, + } + dev: false + + /ajv/6.12.6: + resolution: + { + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, + } + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ajv/8.11.0: + resolution: + { + integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==, + } + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + /algo-msgpack-with-bigint/2.1.1: + resolution: + { + integrity: sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==, + } + engines: { node: ">= 10" } + dev: false + + /algosdk/1.19.1: + resolution: + { + integrity: sha512-RBp6ihU1jX6OgPRstqskZmnLN4KmG+ZstFADiy0gYOYCy2xPoyKP5sTrf5DW8JECP5IIJi0azxsWgpPQjzJYaA==, + } + dependencies: + algo-msgpack-with-bigint: 2.1.1 + buffer: 6.0.3 + hi-base32: 0.5.1 + js-sha256: 0.9.0 + js-sha3: 0.8.0 + js-sha512: 0.8.0 + json-bigint: 1.0.0 + superagent: 6.1.0 + tweetnacl: 1.0.3 + vlq: 2.0.4 + optionalDependencies: + fsevents: 2.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /ansi-colors/4.1.3: + resolution: + { + integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, + } + engines: { node: ">=6" } + dev: true + + /ansi-regex/2.1.1: + resolution: + { + integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, + } + engines: { node: ">=0.10.0" } + dev: false + + /ansi-regex/5.0.1: + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: ">=8" } + + /ansi-styles/3.2.1: + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: ">=4" } + dependencies: + color-convert: 1.9.3 + + /ansi-styles/4.3.0: + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } + dependencies: + color-convert: 2.0.1 + + /anymatch/3.1.2: + resolution: + { + integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==, + } + engines: { node: ">= 8" } + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: false + + /aproba/1.2.0: + resolution: + { + integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==, + } + dev: false + + /are-we-there-yet/1.1.7: + resolution: + { + integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==, + } + dependencies: + delegates: 1.0.0 + readable-stream: 2.3.7 + dev: false + + /arg/4.1.3: + resolution: + { + integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, + } + dev: false + + /argparse/1.0.10: + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, + } + dependencies: + sprintf-js: 1.0.3 + dev: true + + /array-differ/3.0.0: + resolution: + { + integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==, + } + engines: { node: ">=8" } + dev: true + + /array-flatten/1.1.1: + resolution: + { + integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, + } + dev: false + + /array-union/2.1.0: + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: ">=8" } + dev: true + + /array.prototype.flatmap/1.3.0: + resolution: + { + integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + es-shim-unscopables: 1.0.0 + dev: true + + /arrify/2.0.1: + resolution: + { + integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, + } + engines: { node: ">=8" } + dev: true + + /asmcrypto.js/0.22.0: + resolution: + { + integrity: sha512-usgMoyXjMbx/ZPdzTSXExhMPur2FTdz/Vo5PVx2gIaBcdAAJNOFlsdgqveM8Cff7W0v+xrf9BwjOV26JSAF9qA==, + } + dev: false + + /asn1.js/5.4.1: + resolution: + { + integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==, + } + dependencies: + bn.js: 4.12.0 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + safer-buffer: 2.1.2 + dev: false + + /asn1/0.2.6: + resolution: + { + integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==, + } + dependencies: + safer-buffer: 2.1.2 + dev: false + + /asn1js/3.0.5: + resolution: + { + integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==, + } + engines: { node: ">=12.0.0" } + dependencies: + pvtsutils: 1.3.2 + pvutils: 1.1.3 + tslib: 2.4.0 + dev: false + + /assert-plus/1.0.0: + resolution: + { + integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==, + } + engines: { node: ">=0.8" } + dev: false + + /assert/2.0.0: + resolution: + { + integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==, + } + dependencies: + es6-object-assign: 1.1.0 + is-nan: 1.3.2 + object-is: 1.1.5 + util: 0.12.4 + dev: false + + /assertion-error/1.1.0: + resolution: + { + integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, + } + dev: false + + /astral-regex/2.0.0: + resolution: + { + integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, + } + engines: { node: ">=8" } + + /async-limiter/1.0.1: + resolution: + { + integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==, + } + dev: false + + /asynckit/0.4.0: + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } + dev: false + + /at-least-node/1.0.0: + resolution: + { + integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, + } + engines: { node: ">= 4.0.0" } + dev: false + optional: true + + /available-typed-arrays/1.0.5: + resolution: + { + integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, + } + engines: { node: ">= 0.4" } + dev: false + + /aws-sign2/0.7.0: + resolution: + { + integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==, + } + dev: false + + /aws4/1.11.0: + resolution: + { + integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==, + } + dev: false + + /axios/0.21.4: + resolution: + { + integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==, + } + dependencies: + follow-redirects: 1.15.1 + transitivePeerDependencies: + - debug + dev: false + + /axios/0.21.4_debug@4.3.2: + resolution: + { + integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==, + } + dependencies: + follow-redirects: 1.15.1_debug@4.3.2 + transitivePeerDependencies: + - debug + dev: false + + /axios/0.24.0: + resolution: + { + integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==, + } + dependencies: + follow-redirects: 1.15.1 + transitivePeerDependencies: + - debug + dev: false + + /axios/0.26.1: + resolution: + { + integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==, + } + dependencies: + follow-redirects: 1.15.1 + transitivePeerDependencies: + - debug + dev: false + + /b64-lite/1.4.0: + resolution: + { + integrity: sha512-aHe97M7DXt+dkpa8fHlCcm1CnskAHrJqEfMI0KN7dwqlzml/aUe1AGt6lk51HzrSfVD67xOso84sOpr+0wIe2w==, + } + dependencies: + base-64: 0.1.0 + dev: false + + /b64u-lite/1.1.0: + resolution: + { + integrity: sha512-929qWGDVCRph7gQVTC6koHqQIpF4vtVaSbwLltFQo44B1bYUquALswZdBKFfrJCPEnsCOvWkJsPdQYZ/Ukhw8A==, + } + dependencies: + b64-lite: 1.4.0 + dev: false + + /babel-runtime/6.26.0: + resolution: + { + integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==, + } + dependencies: + core-js: 2.6.12 + regenerator-runtime: 0.11.1 + dev: false + + /backslash/0.2.0: + resolution: + { + integrity: sha512-Avs+8FUZ1HF/VFP4YWwHQZSGzRPm37ukU1JQYQWijuHhtXdOuAzcZ8PcAzfIw898a8PyBzdn+RtnKA6MzW0X2A==, + } + dev: false + + /balanced-match/1.0.2: + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } + + /base-64/0.1.0: + resolution: + { + integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==, + } + dev: false + + /base-x/3.0.9: + resolution: + { + integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==, + } + dependencies: + safe-buffer: 5.2.1 + dev: false + + /base64-arraybuffer/0.2.0: + resolution: + { + integrity: sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==, + } + engines: { node: ">= 0.6.0" } + dev: false + + /base64-js/1.5.1: + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } + dev: false + + /bcrypt-pbkdf/1.0.2: + resolution: + { + integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==, + } + dependencies: + tweetnacl: 0.14.5 + dev: false + + /bech32/1.1.4: + resolution: + { + integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==, + } + dev: false + + /bech32/2.0.0: + resolution: + { + integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==, + } + dev: false + + /before-after-hook/2.2.2: + resolution: + { + integrity: sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==, + } + dev: false + + /bigint-buffer/1.1.5: + resolution: + { + integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==, + } + engines: { node: ">= 10.0.0" } + requiresBuild: true + dependencies: + bindings: 1.5.0 + dev: false + + /bignumber.js/7.2.1: + resolution: + { + integrity: sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==, + } + dev: false + + /bignumber.js/9.0.1: + resolution: + { + integrity: sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==, + } + dev: false + + /bignumber.js/9.0.2: + resolution: + { + integrity: sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==, + } + dev: false + + /bignumber.js/9.1.0: + resolution: + { + integrity: sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==, + } + dev: false + + /binary-extensions/2.2.0: + resolution: + { + integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, + } + engines: { node: ">=8" } + dev: false + + /bindings/1.5.0: + resolution: + { + integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==, + } + dependencies: + file-uri-to-path: 1.0.0 + dev: false + + /bip32-path/0.4.2: + resolution: + { + integrity: sha512-ZBMCELjJfcNMkz5bDuJ1WrYvjlhEF5k6mQ8vUr4N7MbVRsXei7ZOg8VhhwMfNiW68NWmLkgkc6WvTickrLGprQ==, + } + dev: false + + /bip32/2.0.6: + resolution: + { + integrity: sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@types/node": 10.12.18 + bs58check: 2.1.2 + create-hash: 1.2.0 + create-hmac: 1.1.7 + tiny-secp256k1: 1.1.6 + typeforce: 1.18.0 + wif: 2.0.6 + dev: false + + /bip39/3.0.2: + resolution: + { + integrity: sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ==, + } + dependencies: + "@types/node": 11.11.6 + create-hash: 1.2.0 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + dev: false + + /bip39/3.0.4: + resolution: + { + integrity: sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==, + } + dependencies: + "@types/node": 11.11.6 + create-hash: 1.2.0 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + dev: false + + /bl/4.1.0: + resolution: + { + integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, + } + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: false + + /blake2b-wasm/1.1.7: + resolution: + { + integrity: sha512-oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA==, + } + dependencies: + nanoassert: 1.1.0 + dev: false + + /blake2b/2.1.3: + resolution: + { + integrity: sha512-pkDss4xFVbMb4270aCyGD3qLv92314Et+FsKzilCLxDz5DuZ2/1g3w4nmBbu6nKApPspnjG7JcwTjGZnduB1yg==, + } + dependencies: + blake2b-wasm: 1.1.7 + nanoassert: 1.1.0 + dev: false + + /blakejs/1.2.1: + resolution: + { + integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==, + } + dev: false + + /bluebird/3.7.2: + resolution: + { + integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, + } + dev: false + + /bn.js/4.11.6: + resolution: + { + integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==, + } + dev: false + + /bn.js/4.11.8: + resolution: + { + integrity: sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==, + } + dev: false + + /bn.js/4.12.0: + resolution: + { + integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==, + } + dev: false + + /bn.js/5.1.1: + resolution: + { + integrity: sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==, + } + dev: false + + /bn.js/5.2.0: + resolution: + { + integrity: sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==, + } + dev: false + + /bn.js/5.2.1: + resolution: + { + integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==, + } + dev: false + + /body-parser/1.20.0: + resolution: + { + integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==, + } + engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } + dependencies: + bytes: 3.1.2 + content-type: 1.0.4 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.10.3 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /borc/2.1.2: + resolution: + { + integrity: sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==, + } + engines: { node: ">=4" } + dependencies: + bignumber.js: 9.1.0 + buffer: 5.7.1 + commander: 2.20.3 + ieee754: 1.2.1 + iso-url: 0.4.7 + json-text-sequence: 0.1.1 + readable-stream: 3.6.0 + dev: false + + /borsh/0.7.0: + resolution: + { + integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==, + } + dependencies: + bn.js: 5.2.1 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + dev: false + + /brace-expansion/1.1.11: + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion/2.0.1: + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces/3.0.2: + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: ">=8" } + dependencies: + fill-range: 7.0.1 + + /brorand/1.1.0: + resolution: + { + integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==, + } + dev: false + + /browser-headers/0.4.1: + resolution: + { + integrity: sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==, + } + dev: false + + /browserify-aes/1.2.0: + resolution: + { + integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==, + } + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.4 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /browserify-cipher/1.0.1: + resolution: + { + integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==, + } + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + dev: false + + /browserify-des/1.0.2: + resolution: + { + integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==, + } + dependencies: + cipher-base: 1.0.4 + des.js: 1.0.1 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /browserify-rsa/4.1.0: + resolution: + { + integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==, + } + dependencies: + bn.js: 5.2.1 + randombytes: 2.1.0 + dev: false + + /browserify-sign/4.2.1: + resolution: + { + integrity: sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==, + } + dependencies: + bn.js: 5.2.1 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.5.4 + inherits: 2.0.4 + parse-asn1: 5.1.6 + readable-stream: 3.6.0 + safe-buffer: 5.2.1 + dev: false + + /bs58/4.0.1: + resolution: + { + integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==, + } + dependencies: + base-x: 3.0.9 + dev: false + + /bs58check/2.1.2: + resolution: + { + integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==, + } + dependencies: + bs58: 4.0.1 + create-hash: 1.2.0 + safe-buffer: 5.2.1 + dev: false + + /buffer-layout/1.2.2: + resolution: + { + integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==, + } + engines: { node: ">=4.5" } + dev: false + + /buffer-to-arraybuffer/0.0.5: + resolution: + { + integrity: sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==, + } + dev: false + + /buffer-xor/1.0.3: + resolution: + { + integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==, + } + dev: false + + /buffer/5.7.1: + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, + } + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /buffer/6.0.1: + resolution: + { + integrity: sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==, + } + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /buffer/6.0.3: + resolution: + { + integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, + } + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /bufferutil/4.0.6: + resolution: + { + integrity: sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==, + } + engines: { node: ">=6.14.2" } + requiresBuild: true + dependencies: + node-gyp-build: 4.5.0 + dev: false + + /bytes/3.1.2: + resolution: + { + integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, + } + engines: { node: ">= 0.8" } + dev: false + + /cacheable-lookup/5.0.4: + resolution: + { + integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==, + } + engines: { node: ">=10.6.0" } + dev: false + + /cacheable-lookup/6.1.0: + resolution: + { + integrity: sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==, + } + engines: { node: ">=10.6.0" } + dev: false + + /cacheable-request/7.0.2: + resolution: + { + integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==, + } + engines: { node: ">=8" } + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.0 + keyv: 4.4.1 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + dev: false + + /call-bind/1.0.2: + resolution: + { + integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, + } + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.2 + + /callsites/3.1.0: + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: ">=6" } + dev: true + + /camelcase/5.3.1: + resolution: + { + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, + } + engines: { node: ">=6" } + dev: false + + /capability/0.2.5: + resolution: + { + integrity: sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==, + } + dev: false + + /caseless/0.12.0: + resolution: + { + integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==, + } + dev: false + + /chai/4.3.6: + resolution: + { + integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==, + } + engines: { node: ">=4" } + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 3.0.1 + get-func-name: 2.0.0 + loupe: 2.3.4 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: false + + /chalk/2.4.2: + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: ">=4" } + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk/3.0.0: + resolution: + { + integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, + } + engines: { node: ">=8" } + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk/4.1.2: + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: ">=10" } + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /charenc/0.0.2: + resolution: + { + integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==, + } + dev: false + + /check-error/1.0.2: + resolution: + { + integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==, + } + dev: false + + /check-more-types/2.24.0: + resolution: + { + integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==, + } + engines: { node: ">= 0.8.0" } + dev: false + + /chokidar/3.5.3: + resolution: + { + integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, + } + engines: { node: ">= 8.10.0" } + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: false + + /chownr/1.1.4: + resolution: + { + integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, + } + dev: false + + /cids/0.7.5: + resolution: + { + integrity: sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==, + } + engines: { node: ">=4.0.0", npm: ">=3.0.0" } + deprecated: This module has been superseded by the multiformats module + dependencies: + buffer: 5.7.1 + class-is: 1.1.0 + multibase: 0.6.1 + multicodec: 1.0.4 + multihashes: 0.4.21 + dev: false + + /cipher-base/1.0.4: + resolution: + { + integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==, + } + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /class-is/1.1.0: + resolution: + { + integrity: sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==, + } + dev: false + + /cliui/6.0.0: + resolution: + { + integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==, + } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false + + /cliui/7.0.4: + resolution: + { + integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, + } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + + /clone-response/1.0.3: + resolution: + { + integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==, + } + dependencies: + mimic-response: 1.0.1 + dev: false + + /code-point-at/1.1.0: + resolution: + { + integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==, + } + engines: { node: ">=0.10.0" } + dev: false + + /color-convert/1.9.3: + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } + dependencies: + color-name: 1.1.3 + + /color-convert/2.0.1: + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } + dependencies: + color-name: 1.1.4 + + /color-name/1.1.3: + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } + + /color-name/1.1.4: + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } + + /colors/1.4.0: + resolution: + { + integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==, + } + engines: { node: ">=0.1.90" } + dev: false + + /combined-stream/1.0.8: + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: ">= 0.8" } + dependencies: + delayed-stream: 1.0.0 + dev: false + + /commander/2.20.3: + resolution: + { + integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, + } + dev: false + + /commander/6.2.1: + resolution: + { + integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==, + } + engines: { node: ">= 6" } + dev: false + + /commander/7.2.0: + resolution: + { + integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, + } + engines: { node: ">= 10" } + dev: false + optional: true + + /compare-versions/3.6.0: + resolution: + { + integrity: sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==, + } + dev: false + optional: true + + /component-emitter/1.3.0: + resolution: + { + integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==, + } + dev: false + + /compress-brotli/1.3.8: + resolution: + { + integrity: sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==, + } + engines: { node: ">= 12" } + dependencies: + "@types/json-buffer": 3.0.0 + json-buffer: 3.0.1 + dev: false + + /concat-map/0.0.1: + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } + + /console-control-strings/1.1.0: + resolution: + { + integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==, + } + dev: false + + /content-disposition/0.5.4: + resolution: + { + integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, + } + engines: { node: ">= 0.6" } + dependencies: + safe-buffer: 5.2.1 + dev: false + + /content-hash/2.5.2: + resolution: + { + integrity: sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==, + } + dependencies: + cids: 0.7.5 + multicodec: 0.5.7 + multihashes: 0.4.21 + dev: false + + /content-type/1.0.4: + resolution: + { + integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==, + } + engines: { node: ">= 0.6" } + dev: false + + /cookie-signature/1.0.6: + resolution: + { + integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, + } + dev: false + + /cookie/0.5.0: + resolution: + { + integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==, + } + engines: { node: ">= 0.6" } + dev: false + + /cookiejar/2.1.3: + resolution: + { + integrity: sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==, + } + dev: false + + /core-js/2.6.12: + resolution: + { + integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==, + } + 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. + requiresBuild: true + dev: false + + /core-util-is/1.0.2: + resolution: + { + integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==, + } + dev: false + + /core-util-is/1.0.3: + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + } + dev: false + + /cors/2.8.5: + resolution: + { + integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, + } + engines: { node: ">= 0.10" } + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: false + + /crc-32/1.2.2: + resolution: + { + integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, + } + engines: { node: ">=0.8" } + hasBin: true + dev: false + + /crc/4.1.1_buffer@6.0.3: + resolution: + { + integrity: sha512-2U3ZqJ2phJl9ANuP2q5VS53LMpNmYU9vcpmh6nutJmsqUREhtWpTRh9yYxG7sDg3xkwaEEXytSeffTxw4cgwPg==, + } + engines: { node: ">=12" } + peerDependencies: + buffer: ">=6.0.3" + dependencies: + buffer: 6.0.3 + dev: false + + /create-ecdh/4.0.4: + resolution: + { + integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==, + } + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.4 + dev: false + + /create-hash/1.2.0: + resolution: + { + integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==, + } + dependencies: + cipher-base: 1.0.4 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + dev: false + + /create-hmac/1.1.7: + resolution: + { + integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==, + } + dependencies: + cipher-base: 1.0.4 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + dev: false + + /create-require/1.1.1: + resolution: + { + integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, + } + dev: false + + /cross-fetch/3.1.5: + resolution: + { + integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==, + } + dependencies: + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + dev: false + + /cross-spawn/7.0.3: + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: ">= 8" } + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /crypt/0.0.2: + resolution: + { + integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==, + } + dev: false + + /crypto-browserify/3.12.0: + resolution: + { + integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==, + } + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.1 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + inherits: 2.0.4 + pbkdf2: 3.1.2 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + dev: false + + /crypto-hash/1.3.0: + resolution: + { + integrity: sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==, + } + engines: { node: ">=8" } + dev: false + + /crypto-js/4.1.1: + resolution: + { + integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==, + } + dev: false + + /curve25519-js/0.0.4: + resolution: + { + integrity: sha512-axn2UMEnkhyDUPWOwVKBMVIzSQy2ejH2xRGy1wq81dqRwApXfIzfbE3hIX0ZRFBIihf/KDqK158DLwESu4AK1w==, + } + dev: false + + /d/1.0.1: + resolution: + { + integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==, + } + dependencies: + es5-ext: 0.10.62 + type: 1.2.0 + dev: false + + /dashdash/1.14.1: + resolution: + { + integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==, + } + engines: { node: ">=0.10" } + dependencies: + assert-plus: 1.0.0 + dev: false + + /debug/2.6.9: + resolution: + { + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, + } + peerDependencies: + supports-color: "*" + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /debug/4.3.2: + resolution: + { + integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==, + } + engines: { node: ">=6.0" } + peerDependencies: + supports-color: "*" + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + + /debug/4.3.4: + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: ">=6.0" } + peerDependencies: + supports-color: "*" + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decamelize/1.2.0: + resolution: + { + integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, + } + engines: { node: ">=0.10.0" } + dev: false + + /decode-uri-component/0.2.0: + resolution: + { + integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==, + } + engines: { node: ">=0.10" } + dev: false + + /decompress-response/3.3.0: + resolution: + { + integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==, + } + engines: { node: ">=4" } + dependencies: + mimic-response: 1.0.1 + dev: false + + /decompress-response/4.2.1: + resolution: + { + integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==, + } + engines: { node: ">=8" } + dependencies: + mimic-response: 2.1.0 + dev: false + + /decompress-response/6.0.0: + resolution: + { + integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, + } + engines: { node: ">=10" } + dependencies: + mimic-response: 3.1.0 + dev: false + + /deep-eql/3.0.1: + resolution: + { + integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==, + } + engines: { node: ">=0.12" } + dependencies: + type-detect: 4.0.8 + dev: false + + /deep-extend/0.6.0: + resolution: + { + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, + } + engines: { node: ">=4.0.0" } + dev: false + + /deep-is/0.1.4: + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } + dev: true + + /deepmerge/4.2.2: + resolution: + { + integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==, + } + engines: { node: ">=0.10.0" } + dev: true + + /defer-to-connect/2.0.1: + resolution: + { + integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==, + } + engines: { node: ">=10" } + dev: false + + /define-properties/1.1.4: + resolution: + { + integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==, + } + engines: { node: ">= 0.4" } + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + + /delay/5.0.0: + resolution: + { + integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==, + } + engines: { node: ">=10" } + dev: false + + /delayed-stream/1.0.0: + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: ">=0.4.0" } + dev: false + + /delegates/1.0.0: + resolution: + { + integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==, + } + dev: false + + /delimit-stream/0.1.0: + resolution: + { + integrity: sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==, + } + dev: false + + /depd/1.1.2: + resolution: + { + integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, + } + engines: { node: ">= 0.6" } + dev: false + + /depd/2.0.0: + resolution: + { + integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, + } + engines: { node: ">= 0.8" } + dev: false + + /deprecation/2.3.1: + resolution: + { + integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==, + } + dev: false + + /des.js/1.0.1: + resolution: + { + integrity: sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==, + } + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: false + + /destroy/1.2.0: + resolution: + { + integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, + } + engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } + dev: false + + /detect-browser/5.2.0: + resolution: + { + integrity: sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==, + } + dev: false + + /detect-libc/1.0.3: + resolution: + { + integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, + } + engines: { node: ">=0.10" } + hasBin: true + dev: false + + /diff/4.0.2: + resolution: + { + integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, + } + engines: { node: ">=0.3.1" } + dev: false + + /diffie-hellman/5.0.3: + resolution: + { + integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==, + } + dependencies: + bn.js: 4.12.0 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + dev: false + + /dir-glob/3.0.1: + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: ">=8" } + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine/3.0.0: + resolution: + { + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, + } + engines: { node: ">=6.0.0" } + dependencies: + esutils: 2.0.3 + dev: true + + /dom-walk/0.1.2: + resolution: + { + integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==, + } + dev: false + + /dot-case/3.0.4: + resolution: + { + integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.4.0 + dev: false + + /dotenv/16.0.1: + resolution: + { + integrity: sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==, + } + engines: { node: ">=12" } + dev: true + + /duplexer/0.1.2: + resolution: + { + integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, + } + dev: false + + /duplexer3/0.1.5: + resolution: + { + integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==, + } + dev: false + + /ecc-jsbn/0.1.2: + resolution: + { + integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==, + } + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: false + + /ed25519-hd-key/1.1.2: + resolution: + { + integrity: sha512-/0y9y6N7vM6Kj5ASr9J9wcMVDTtygxSOvYX+PJiMD7VcxCx2G03V5bLRl8Dug9EgkLFsLhGqBtQWQRcElEeWTA==, + } + dependencies: + bip39: 3.0.2 + create-hmac: 1.1.7 + tweetnacl: 1.0.3 + dev: false + + /ee-first/1.1.1: + resolution: + { + integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, + } + dev: false + + /elliptic/6.5.4: + resolution: + { + integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, + } + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.3 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: false + + /emoji-regex/8.0.0: + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } + + /encodeurl/1.0.2: + resolution: + { + integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, + } + engines: { node: ">= 0.8" } + dev: false + + /end-of-stream/1.4.4: + resolution: + { + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, + } + dependencies: + once: 1.4.0 + + /engine.io-client/6.2.2: + resolution: + { + integrity: sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==, + } + dependencies: + "@socket.io/component-emitter": 3.1.0 + debug: 4.3.4 + engine.io-parser: 5.0.4 + ws: 8.2.3 + xmlhttprequest-ssl: 2.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + /engine.io-parser/5.0.4: + resolution: + { + integrity: sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==, + } + engines: { node: ">=10.0.0" } + dev: false + + /enquirer/2.3.6: + resolution: + { + integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==, + } + engines: { node: ">=8.6" } + dependencies: + ansi-colors: 4.1.3 + dev: true + + /error-polyfill/0.1.3: + resolution: + { + integrity: sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==, + } + dependencies: + capability: 0.2.5 + o3: 1.0.3 + u3: 0.1.1 + dev: false + + /es-abstract/1.20.1: + resolution: + { + integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.1.2 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.4 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.2 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 + + /es-shim-unscopables/1.0.0: + resolution: + { + integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, + } + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive/1.2.1: + resolution: + { + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, + } + engines: { node: ">= 0.4" } + dependencies: + is-callable: 1.2.4 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + /es5-ext/0.10.62: + resolution: + { + integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==, + } + engines: { node: ">=0.10" } + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 + dev: false + + /es6-iterator/2.0.3: + resolution: + { + integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==, + } + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 + dev: false + + /es6-object-assign/1.1.0: + resolution: + { + integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==, + } + dev: false + + /es6-promise/4.2.8: + resolution: + { + integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==, + } + dev: false + + /es6-promisify/5.0.0: + resolution: + { + integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==, + } + dependencies: + es6-promise: 4.2.8 + dev: false + + /es6-symbol/3.1.3: + resolution: + { + integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==, + } + dependencies: + d: 1.0.1 + ext: 1.6.0 + dev: false + + /esbuild-android-64/0.14.54: + resolution: + { + integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /esbuild-android-arm64/0.14.54: + resolution: + { + integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /esbuild-darwin-64/0.14.54: + resolution: + { + integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /esbuild-darwin-arm64/0.14.54: + resolution: + { + integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /esbuild-freebsd-64/0.14.54: + resolution: + { + integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /esbuild-freebsd-arm64/0.14.54: + resolution: + { + integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-32/0.14.54: + resolution: + { + integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-64/0.14.54: + resolution: + { + integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-arm/0.14.54: + resolution: + { + integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-arm64/0.14.54: + resolution: + { + integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-mips64le/0.14.54: + resolution: + { + integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, + } + engines: { node: ">=12" } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-ppc64le/0.14.54: + resolution: + { + integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, + } + engines: { node: ">=12" } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-riscv64/0.14.54: + resolution: + { + integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, + } + engines: { node: ">=12" } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-s390x/0.14.54: + resolution: + { + integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, + } + engines: { node: ">=12" } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-netbsd-64/0.14.54: + resolution: + { + integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + + /esbuild-openbsd-64/0.14.54: + resolution: + { + integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + + /esbuild-sunos-64/0.14.54: + resolution: + { + integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + + /esbuild-windows-32/0.14.54: + resolution: + { + integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /esbuild-windows-64/0.14.54: + resolution: + { + integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /esbuild-windows-arm64/0.14.54: + resolution: + { + integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /esbuild/0.14.54: + resolution: + { + integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==, + } + engines: { node: ">=12" } + hasBin: true + requiresBuild: true + optionalDependencies: + "@esbuild/linux-loong64": 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 + dev: false + + /escalade/3.1.1: + resolution: + { + integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, + } + engines: { node: ">=6" } + dev: false + + /escape-html/1.0.3: + resolution: + { + integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, + } + dev: false + + /escape-string-regexp/1.0.5: + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: ">=0.8.0" } + + /escape-string-regexp/4.0.0: + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: ">=10" } + dev: true + + /eslint-config-prettier/8.5.0_eslint@7.32.0: + resolution: + { + integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==, + } + hasBin: true + peerDependencies: + eslint: ">=7.0.0" + dependencies: + eslint: 7.32.0 + dev: true + + /eslint-plugin-eslint-comments/3.2.0_eslint@7.32.0: + resolution: + { + integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==, + } + engines: { node: ">=6.5.0" } + peerDependencies: + eslint: ">=4.19.1" + dependencies: + escape-string-regexp: 1.0.5 + eslint: 7.32.0 + ignore: 5.2.0 + dev: true + + /eslint-plugin-functional/3.7.2_hxadhbs2xogijvk7vq4t2azzbu: + resolution: + { + integrity: sha512-BuWPOeE0nuXYlZjObYOHnYf7G3iG+sysxw84I579MsrH+hy5XdXb2sdabmXQ5z7eFGCg2/DWNbZ/yz5GAgtcUg==, + } + engines: { node: ">=10.18.0" } + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + tsutils: ^3.0.0 + typescript: ^3.4.1 || ^4.0.0 + peerDependenciesMeta: + tsutils: + optional: true + typescript: + optional: true + dependencies: + "@typescript-eslint/experimental-utils": 4.33.0_hxadhbs2xogijvk7vq4t2azzbu + array.prototype.flatmap: 1.3.0 + deepmerge: 4.2.2 + escape-string-regexp: 4.0.0 + eslint: 7.32.0 + object.fromentries: 2.0.5 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-scope/5.1.1: + resolution: + { + integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, + } + engines: { node: ">=8.0.0" } + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-utils/2.1.0: + resolution: + { + integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==, + } + engines: { node: ">=6" } + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@7.32.0: + resolution: + { + integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, + } + engines: { node: ^10.0.0 || ^12.0.0 || >= 14.0.0 } + peerDependencies: + eslint: ">=5" + dependencies: + eslint: 7.32.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/1.3.0: + resolution: + { + integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==, + } + engines: { node: ">=4" } + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: + { + integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, + } + engines: { node: ">=10" } + dev: true + + /eslint/7.32.0: + resolution: + { + integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + hasBin: true + dependencies: + "@babel/code-frame": 7.12.11 + "@eslint/eslintrc": 0.4.3 + "@humanwhocodes/config-array": 0.5.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + enquirer: 2.3.6 + escape-string-regexp: 4.0.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.1.0 + espree: 7.3.1 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 13.17.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + progress: 2.0.3 + regexpp: 3.2.0 + semver: 7.3.7 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + table: 6.8.0 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/7.3.1: + resolution: + { + integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.2_acorn@7.4.1 + eslint-visitor-keys: 1.3.0 + dev: true + + /esprima/4.0.1: + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, + } + engines: { node: ">=4" } + hasBin: true + dev: true + + /esquery/1.4.0: + resolution: + { + integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==, + } + engines: { node: ">=0.10" } + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, + } + engines: { node: ">=4.0" } + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse/4.3.0: + resolution: + { + integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, + } + engines: { node: ">=4.0" } + dev: true + + /estraverse/5.3.0: + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + } + engines: { node: ">=4.0" } + dev: true + + /esutils/2.0.3: + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + } + engines: { node: ">=0.10.0" } + dev: true + + /etag/1.8.1: + resolution: + { + integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, + } + engines: { node: ">= 0.6" } + dev: false + + /eth-ens-namehash/2.0.8: + resolution: + { + integrity: sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==, + } + dependencies: + idna-uts46-hx: 2.3.1 + js-sha3: 0.5.7 + dev: false + + /eth-lib/0.1.29: + resolution: + { + integrity: sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==, + } + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.4 + nano-json-stream-parser: 0.1.2 + servify: 0.1.12 + ws: 3.3.3 + xhr-request-promise: 0.1.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + /eth-lib/0.2.8: + resolution: + { + integrity: sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==, + } + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.4 + xhr-request-promise: 0.1.3 + dev: false + + /ethereum-bloom-filters/1.0.10: + resolution: + { + integrity: sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==, + } + dependencies: + js-sha3: 0.8.0 + dev: false + + /ethereum-cryptography/0.1.3: + resolution: + { + integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==, + } + dependencies: + "@types/pbkdf2": 3.1.0 + "@types/secp256k1": 4.0.3 + blakejs: 1.2.1 + 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.2 + pbkdf2: 3.1.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + scrypt-js: 3.0.1 + secp256k1: 4.0.3 + setimmediate: 1.0.5 + dev: false + + /ethereumjs-util/7.1.5: + resolution: + { + integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==, + } + engines: { node: ">=10.0.0" } + dependencies: + "@types/bn.js": 5.1.0 + bn.js: 5.2.1 + create-hash: 1.2.0 + ethereum-cryptography: 0.1.3 + rlp: 2.2.7 + dev: false + + /ethers/5.7.0: + resolution: + { + integrity: sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA==, + } + dependencies: + "@ethersproject/abi": 5.7.0 + "@ethersproject/abstract-provider": 5.7.0 + "@ethersproject/abstract-signer": 5.7.0 + "@ethersproject/address": 5.7.0 + "@ethersproject/base64": 5.7.0 + "@ethersproject/basex": 5.7.0 + "@ethersproject/bignumber": 5.7.0 + "@ethersproject/bytes": 5.7.0 + "@ethersproject/constants": 5.7.0 + "@ethersproject/contracts": 5.7.0 + "@ethersproject/hash": 5.7.0 + "@ethersproject/hdnode": 5.7.0 + "@ethersproject/json-wallets": 5.7.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/logger": 5.7.0 + "@ethersproject/networks": 5.7.0 + "@ethersproject/pbkdf2": 5.7.0 + "@ethersproject/properties": 5.7.0 + "@ethersproject/providers": 5.7.0 + "@ethersproject/random": 5.7.0 + "@ethersproject/rlp": 5.7.0 + "@ethersproject/sha2": 5.7.0 + "@ethersproject/signing-key": 5.7.0 + "@ethersproject/solidity": 5.7.0 + "@ethersproject/strings": 5.7.0 + "@ethersproject/transactions": 5.7.0 + "@ethersproject/units": 5.7.0 + "@ethersproject/wallet": 5.7.0 + "@ethersproject/web": 5.7.0 + "@ethersproject/wordlists": 5.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /ethjs-unit/0.1.6: + resolution: + { + integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==, + } + engines: { node: ">=6.5.0", npm: ">=3" } + dependencies: + bn.js: 4.11.6 + number-to-bn: 1.7.0 + dev: false + + /event-stream/3.3.4: + resolution: + { + integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==, + } + dependencies: + duplexer: 0.1.2 + from: 0.1.7 + map-stream: 0.1.0 + pause-stream: 0.0.11 + split: 0.3.3 + stream-combiner: 0.0.4 + through: 2.3.8 + dev: false + + /event-target-shim/5.0.1: + resolution: + { + integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, + } + engines: { node: ">=6" } + dev: false + + /eventemitter3/3.1.2: + resolution: + { + integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==, + } + dev: false + + /eventemitter3/4.0.4: + resolution: + { + integrity: sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==, + } + dev: false + + /eventemitter3/4.0.7: + resolution: + { + integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, + } + dev: false + + /events/3.3.0: + resolution: + { + integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, + } + engines: { node: ">=0.8.x" } + dev: false + + /evp_bytestokey/1.0.3: + resolution: + { + integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==, + } + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + dev: false + + /execa/4.1.0: + resolution: + { + integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, + } + engines: { node: ">=10" } + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa/5.1.1: + resolution: + { + integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, + } + engines: { node: ">=10" } + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: false + + /expand-template/2.0.3: + resolution: + { + integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==, + } + engines: { node: ">=6" } + dev: false + + /expo-modules-autolinking/0.0.3: + resolution: + { + integrity: sha512-azkCRYj/DxbK4udDuDxA9beYzQTwpJ5a9QA0bBgha2jHtWdFGF4ZZWSY+zNA5mtU3KqzYt8jWHfoqgSvKyu1Aw==, + } + hasBin: true + dependencies: + chalk: 4.1.2 + commander: 7.2.0 + fast-glob: 3.2.11 + find-up: 5.0.0 + fs-extra: 9.1.0 + dev: false + optional: true + + /expo-random/12.3.0: + resolution: + { + integrity: sha512-q+AsTfGNT+Q+fb2sRrYtRkI3g5tV4H0kuYXM186aueILGO/vLn/YYFa7xFZj1IZ8LJZg2h96JDPDpsqHfRG2mQ==, + } + requiresBuild: true + peerDependencies: + expo: "*" + dependencies: + base64-js: 1.5.1 + dev: false + optional: true + + /express/4.18.1: + resolution: + { + integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==, + } + engines: { node: ">= 0.10.0" } + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.0 + content-disposition: 0.5.4 + content-type: 1.0.4 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.10.3 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /ext/1.6.0: + resolution: + { + integrity: sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==, + } + dependencies: + type: 2.7.2 + dev: false + + /extend/3.0.2: + resolution: + { + integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, + } + dev: false + + /extsprintf/1.3.0: + resolution: + { + integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==, + } + engines: { "0": node >=0.6.0 } + dev: false + + /eyes/0.1.8: + resolution: + { + integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==, + } + engines: { node: "> 0.1.90" } + dev: false + + /fast-deep-equal/3.1.3: + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } + + /fast-glob/3.2.11: + resolution: + { + integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==, + } + engines: { node: ">=8.6.0" } + dependencies: + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + /fast-json-stable-stringify/2.1.0: + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } + + /fast-levenshtein/2.0.6: + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + } + dev: true + + /fast-safe-stringify/2.1.1: + resolution: + { + integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, + } + dev: false + + /fast-stable-stringify/1.0.0: + resolution: + { + integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==, + } + dev: false + + /fastq/1.13.0: + resolution: + { + integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==, + } + dependencies: + reusify: 1.0.4 + + /file-entry-cache/6.0.1: + resolution: + { + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + flat-cache: 3.0.4 + dev: true + + /file-uri-to-path/1.0.0: + resolution: + { + integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==, + } + dev: false + + /fill-range/7.0.1: + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: ">=8" } + dependencies: + to-regex-range: 5.0.1 + + /finalhandler/1.2.0: + resolution: + { + integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==, + } + engines: { node: ">= 0.8" } + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /find-up/4.1.0: + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: ">=8" } + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + /find-up/5.0.0: + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + } + engines: { node: ">=10" } + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: false + optional: true + + /flat-cache/3.0.4: + resolution: + { + integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flatted/3.2.7: + resolution: + { + integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, + } + dev: true + + /flow-copy-source/2.0.9: + resolution: + { + integrity: sha512-7zX/oHSIHe8YRGiA9QIcC4SW6KF667ikdmiDfbST15up1Ona8dn7Xy0PmSrfw6ceBWDww8sRKlCLKsztStpYkQ==, + } + engines: { node: ">=8.0.0" } + hasBin: true + dependencies: + chokidar: 3.5.3 + fs-extra: 8.1.0 + glob: 7.2.3 + kefir: 3.8.8 + yargs: 15.4.1 + dev: false + + /flow-typed/3.8.0: + resolution: + { + integrity: sha512-Lgmj8K69kbTz7UjKjiuaG/UNaZpyoyCGKU9wL9wrcqw0a9GNvuRe7llueHSJThKyuOsymEmZf3TOpMUD2Fw1HQ==, + } + engines: { node: ">=10.0.0" } + hasBin: true + dependencies: + "@octokit/rest": 18.12.0 + colors: 1.4.0 + flowgen: 1.20.1 + fs-extra: 8.1.0 + glob: 7.2.3 + got: 11.8.5 + md5: 2.3.0 + mkdirp: 1.0.4 + node-stream-zip: 1.15.0 + prettier: 1.19.1 + rimraf: 3.0.2 + semver: 7.3.2 + table: 6.8.0 + which: 2.0.2 + yargs: 15.4.1 + transitivePeerDependencies: + - encoding + dev: false + + /flowgen/1.20.1: + resolution: + { + integrity: sha512-Wus3KAhsOF7CiZGkBKZawf0AJXe06Wot6UGQt7h9QS6MBtBkFgG30wTAgpy1byA3FKYb059vO341XtN8LUhenQ==, + } + hasBin: true + dependencies: + "@babel/code-frame": 7.18.6 + "@babel/highlight": 7.18.6 + commander: 6.2.1 + lodash: 4.17.21 + prettier: 2.7.1 + shelljs: 0.8.5 + typescript: 4.4.4 + typescript-compiler: 1.4.1-2 + dev: false + + /follow-redirects/1.15.1: + resolution: + { + integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==, + } + engines: { node: ">=4.0" } + peerDependencies: + debug: "*" + peerDependenciesMeta: + debug: + optional: true + dev: false + + /follow-redirects/1.15.1_debug@4.3.2: + resolution: + { + integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==, + } + engines: { node: ">=4.0" } + peerDependencies: + debug: "*" + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.2 + dev: false + + /for-each/0.3.3: + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } + dependencies: + is-callable: 1.2.4 + dev: false + + /forever-agent/0.6.1: + resolution: + { + integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==, + } + dev: false + + /form-data-encoder/1.7.1: + resolution: + { + integrity: sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==, + } + dev: false + + /form-data/2.3.3: + resolution: + { + integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==, + } + engines: { node: ">= 0.12" } + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /form-data/3.0.1: + resolution: + { + integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==, + } + engines: { node: ">= 6" } + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /formidable/1.2.6: + resolution: + { + integrity: sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==, + } + deprecated: "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau" + dev: false + + /forwarded/0.2.0: + resolution: + { + integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, + } + engines: { node: ">= 0.6" } + dev: false + + /fresh/0.5.2: + resolution: + { + integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, + } + engines: { node: ">= 0.6" } + dev: false + + /from/0.1.7: + resolution: + { + integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==, + } + dev: false + + /fs-constants/1.0.0: + resolution: + { + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, + } + dev: false + + /fs-extra/4.0.3: + resolution: + { + integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==, + } + dependencies: + graceful-fs: 4.2.10 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs-extra/8.1.0: + resolution: + { + integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, + } + engines: { node: ">=6 <7 || >=8" } + dependencies: + graceful-fs: 4.2.10 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs-extra/9.1.0: + resolution: + { + integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, + } + engines: { node: ">=10" } + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: false + optional: true + + /fs-minipass/1.2.7: + resolution: + { + integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==, + } + dependencies: + minipass: 2.9.0 + dev: false + + /fs.realpath/1.0.0: + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } + + /fsevents/2.1.2: + resolution: + { + integrity: sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + deprecated: '"Please update to latest v2.3 or v2.2"' + requiresBuild: true + dev: false + optional: true + + /fsevents/2.3.2: + resolution: + { + integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /function-bind/1.1.1: + resolution: + { + integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, + } + + /function.prototype.name/1.1.5: + resolution: + { + integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + functions-have-names: 1.2.3 + + /functional-red-black-tree/1.0.1: + resolution: + { + integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==, + } + dev: true + + /functions-have-names/1.2.3: + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } + + /gauge/2.7.4: + resolution: + { + integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==, + } + dependencies: + aproba: 1.2.0 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 1.0.2 + strip-ansi: 3.0.1 + wide-align: 1.1.5 + dev: false + + /get-caller-file/2.0.5: + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } + dev: false + + /get-func-name/2.0.0: + resolution: + { + integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==, + } + dev: false + + /get-intrinsic/1.1.2: + resolution: + { + integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==, + } + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + + /get-stream/3.0.0: + resolution: + { + integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==, + } + engines: { node: ">=4" } + dev: false + + /get-stream/5.2.0: + resolution: + { + integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, + } + engines: { node: ">=8" } + dependencies: + pump: 3.0.0 + + /get-stream/6.0.1: + resolution: + { + integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, + } + engines: { node: ">=10" } + dev: false + + /get-symbol-description/1.0.0: + resolution: + { + integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.2 + + /getpass/0.1.7: + resolution: + { + integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==, + } + dependencies: + assert-plus: 1.0.0 + dev: false + + /github-from-package/0.0.0: + resolution: + { + integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==, + } + dev: false + + /glob-parent/5.1.2: + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } + dependencies: + is-glob: 4.0.3 + + /glob/7.2.3: + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /glob/8.0.3: + resolution: + { + integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==, + } + engines: { node: ">=12" } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.0 + once: 1.4.0 + dev: true + + /global/4.4.0: + resolution: + { + integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==, + } + dependencies: + min-document: 2.19.0 + process: 0.11.10 + dev: false + + /globals/13.17.0: + resolution: + { + integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==, + } + engines: { node: ">=8" } + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.1.0: + resolution: + { + integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, + } + engines: { node: ">=10" } + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.11 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /google-protobuf/3.21.0: + resolution: + { + integrity: sha512-byR7MBTK4tZ5PZEb+u5ZTzpt4SfrTxv5682MjPlHN16XeqgZE2/8HOIWeiXe8JKnT9OVbtBGhbq8mtvkK8cd5g==, + } + dev: false + + /got/11.8.5: + resolution: + { + integrity: sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==, + } + engines: { node: ">=10.19.0" } + dependencies: + "@sindresorhus/is": 4.6.0 + "@szmarczak/http-timer": 4.0.6 + "@types/cacheable-request": 6.0.2 + "@types/responselike": 1.0.0 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.2 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + dev: false + + /got/12.1.0: + resolution: + { + integrity: sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==, + } + engines: { node: ">=14.16" } + dependencies: + "@sindresorhus/is": 4.6.0 + "@szmarczak/http-timer": 5.0.1 + "@types/cacheable-request": 6.0.2 + "@types/responselike": 1.0.0 + cacheable-lookup: 6.1.0 + cacheable-request: 7.0.2 + decompress-response: 6.0.0 + form-data-encoder: 1.7.1 + get-stream: 6.0.1 + http2-wrapper: 2.1.11 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 2.0.1 + dev: false + + /got/7.1.0: + resolution: + { + integrity: sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==, + } + engines: { node: ">=4" } + dependencies: + "@types/keyv": 3.1.4 + "@types/responselike": 1.0.0 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 3.0.0 + is-plain-obj: 1.1.0 + is-retry-allowed: 1.2.0 + is-stream: 1.1.0 + isurl: 1.0.0 + lowercase-keys: 1.0.1 + p-cancelable: 0.3.0 + p-timeout: 1.2.1 + safe-buffer: 5.2.1 + timed-out: 4.0.1 + url-parse-lax: 1.0.0 + url-to-options: 1.0.1 + dev: false + + /graceful-fs/4.2.10: + resolution: + { + integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, + } + dev: false + + /har-schema/2.0.0: + resolution: + { + integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==, + } + engines: { node: ">=4" } + dev: false + + /har-validator/5.1.5: + resolution: + { + integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==, + } + engines: { node: ">=6" } + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + dev: false + + /has-bigints/1.0.2: + resolution: + { + integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, + } + + /has-flag/3.0.0: + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: ">=4" } + + /has-flag/4.0.0: + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: ">=8" } + + /has-property-descriptors/1.0.0: + resolution: + { + integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, + } + dependencies: + get-intrinsic: 1.1.2 + + /has-symbol-support-x/1.4.2: + resolution: + { + integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==, + } + dev: false + + /has-symbols/1.0.3: + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: ">= 0.4" } + + /has-to-string-tag-x/1.4.1: + resolution: + { + integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==, + } + dependencies: + has-symbol-support-x: 1.4.2 + dev: false + + /has-tostringtag/1.0.0: + resolution: + { + integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, + } + engines: { node: ">= 0.4" } + dependencies: + has-symbols: 1.0.3 + + /has-unicode/2.0.1: + resolution: + { + integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==, + } + dev: false + + /has/1.0.3: + resolution: + { + integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, + } + engines: { node: ">= 0.4.0" } + dependencies: + function-bind: 1.1.1 + + /hash-base/3.1.0: + resolution: + { + integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==, + } + engines: { node: ">=4" } + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.0 + safe-buffer: 5.2.1 + dev: false + + /hash.js/1.1.3: + resolution: + { + integrity: sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==, + } + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: false + + /hash.js/1.1.7: + resolution: + { + integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==, + } + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: false + + /hi-base32/0.5.1: + resolution: + { + integrity: sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==, + } + dev: false + + /hmac-drbg/1.0.1: + resolution: + { + integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==, + } + dependencies: + hash.js: 1.1.3 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: false + + /http-cache-semantics/4.1.0: + resolution: + { + integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==, + } + dev: false + + /http-errors/1.8.1: + resolution: + { + integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==, + } + engines: { node: ">= 0.6" } + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + dev: false + + /http-errors/2.0.0: + resolution: + { + integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, + } + engines: { node: ">= 0.8" } + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: false + + /http-https/1.0.0: + resolution: + { + integrity: sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==, + } + dev: false + + /http-signature/1.2.0: + resolution: + { + integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==, + } + engines: { node: ">=0.8", npm: ">=1.3.7" } + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.17.0 + dev: false + + /http2-wrapper/1.0.3: + resolution: + { + integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==, + } + engines: { node: ">=10.19.0" } + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + dev: false + + /http2-wrapper/2.1.11: + resolution: + { + integrity: sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==, + } + engines: { node: ">=10.19.0" } + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + dev: false + + /human-signals/1.1.1: + resolution: + { + integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==, + } + engines: { node: ">=8.12.0" } + dev: true + + /human-signals/2.1.0: + resolution: + { + integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, + } + engines: { node: ">=10.17.0" } + dev: false + + /husky/8.0.1: + resolution: + { + integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==, + } + engines: { node: ">=14" } + hasBin: true + dev: true + + /iconv-lite/0.4.24: + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, + } + engines: { node: ">=0.10.0" } + dependencies: + safer-buffer: 2.1.2 + dev: false + + /idna-uts46-hx/2.3.1: + resolution: + { + integrity: sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==, + } + engines: { node: ">=4.0.0" } + dependencies: + punycode: 2.1.0 + dev: false + + /ieee754/1.2.1: + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } + dev: false + + /ignore/4.0.6: + resolution: + { + integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==, + } + engines: { node: ">= 4" } + dev: true + + /ignore/5.2.0: + resolution: + { + integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==, + } + engines: { node: ">= 4" } + dev: true + + /import-fresh/3.3.0: + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, + } + engines: { node: ">=6" } + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash/0.1.4: + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: ">=0.8.19" } + dev: true + + /inflight/1.0.6: + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits/2.0.4: + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } + + /ini/1.3.8: + resolution: + { + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, + } + dev: false + + /injectpromise/1.0.0: + resolution: + { + integrity: sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA==, + } + dev: false + + /internal-slot/1.0.3: + resolution: + { + integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==, + } + engines: { node: ">= 0.4" } + dependencies: + get-intrinsic: 1.1.2 + has: 1.0.3 + side-channel: 1.0.4 + + /interpret/1.4.0: + resolution: + { + integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, + } + engines: { node: ">= 0.10" } + dev: false + + /invariant/2.2.4: + resolution: + { + integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, + } + dependencies: + loose-envify: 1.4.0 + dev: false + optional: true + + /ipaddr.js/1.9.1: + resolution: + { + integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, + } + engines: { node: ">= 0.10" } + dev: false + + /is-arguments/1.1.1: + resolution: + { + integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-bigint/1.0.4: + resolution: + { + integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, + } + dependencies: + has-bigints: 1.0.2 + + /is-binary-path/2.1.0: + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } + dependencies: + binary-extensions: 2.2.0 + dev: false + + /is-boolean-object/1.1.2: + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + + /is-buffer/1.1.6: + resolution: + { + integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, + } + dev: false + + /is-callable/1.2.4: + resolution: + { + integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==, + } + engines: { node: ">= 0.4" } + + /is-core-module/2.10.0: + resolution: + { + integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==, + } + dependencies: + has: 1.0.3 + dev: false + + /is-date-object/1.0.5: + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, + } + engines: { node: ">= 0.4" } + dependencies: + has-tostringtag: 1.0.0 + + /is-extglob/2.1.1: + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } + + /is-fullwidth-code-point/1.0.0: + resolution: + { + integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==, + } + engines: { node: ">=0.10.0" } + dependencies: + number-is-nan: 1.0.1 + dev: false + + /is-fullwidth-code-point/3.0.0: + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: ">=8" } + + /is-function/1.0.2: + resolution: + { + integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==, + } + dev: false + + /is-generator-function/1.0.10: + resolution: + { + integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, + } + engines: { node: ">= 0.4" } + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-glob/4.0.3: + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } + dependencies: + is-extglob: 2.1.1 + + /is-gzip/2.0.0: + resolution: + { + integrity: sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA==, + } + engines: { node: ">=4" } + dev: false + + /is-hex-prefixed/1.0.0: + resolution: + { + integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==, + } + engines: { node: ">=6.5.0", npm: ">=3" } + dev: false + + /is-nan/1.3.2: + resolution: + { + integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + dev: false + + /is-negative-zero/2.0.2: + resolution: + { + integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, + } + engines: { node: ">= 0.4" } + + /is-number-object/1.0.7: + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, + } + engines: { node: ">= 0.4" } + dependencies: + has-tostringtag: 1.0.0 + + /is-number/7.0.0: + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } + + /is-object/1.0.2: + resolution: + { + integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==, + } + dev: false + + /is-plain-obj/1.1.0: + resolution: + { + integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, + } + engines: { node: ">=0.10.0" } + dev: false + + /is-plain-object/5.0.0: + resolution: + { + integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, + } + engines: { node: ">=0.10.0" } + dev: false + + /is-regex/1.1.4: + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + + /is-retry-allowed/1.2.0: + resolution: + { + integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==, + } + engines: { node: ">=0.10.0" } + dev: false + + /is-shared-array-buffer/1.0.2: + resolution: + { + integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, + } + dependencies: + call-bind: 1.0.2 + + /is-stream/1.1.0: + resolution: + { + integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==, + } + engines: { node: ">=0.10.0" } + dev: false + + /is-stream/2.0.1: + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: ">=8" } + + /is-string/1.0.7: + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, + } + engines: { node: ">= 0.4" } + dependencies: + has-tostringtag: 1.0.0 + + /is-symbol/1.0.4: + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: ">= 0.4" } + dependencies: + has-symbols: 1.0.3 + + /is-typed-array/1.1.9: + resolution: + { + integrity: sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==, + } + engines: { node: ">= 0.4" } + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-abstract: 1.20.1 + for-each: 0.3.3 + has-tostringtag: 1.0.0 + dev: false + + /is-typedarray/1.0.0: + resolution: + { + integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, + } + dev: false + + /is-weakref/1.0.2: + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } + dependencies: + call-bind: 1.0.2 + + /isarray/1.0.0: + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + } + dev: false + + /isexe/2.0.0: + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } + + /iso-url/0.4.7: + resolution: + { + integrity: sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==, + } + engines: { node: ">=10" } + dev: false + + /isomorphic-webcrypto/2.3.8: + resolution: + { + integrity: sha512-XddQSI0WYlSCjxtm1AI8kWQOulf7hAN3k3DclF1sxDJZqOe0pcsOt675zvWW91cZH9hYs3nlA3Ev8QK5i80SxQ==, + } + dependencies: + "@peculiar/webcrypto": 1.4.0 + asmcrypto.js: 0.22.0 + b64-lite: 1.4.0 + b64u-lite: 1.1.0 + msrcrypto: 1.5.8 + str2buf: 1.3.0 + webcrypto-shim: 0.1.7 + optionalDependencies: + "@unimodules/core": 7.1.2 + "@unimodules/react-native-adapter": 6.3.9 + expo-random: 12.3.0 + react-native-securerandom: 0.1.1 + transitivePeerDependencies: + - expo + - react-native + dev: false + + /isomorphic-ws/4.0.1_ws@7.5.9: + resolution: + { + integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==, + } + peerDependencies: + ws: "*" + dependencies: + ws: 7.5.9 + dev: false + + /isstream/0.1.2: + resolution: + { + integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, + } + dev: false + + /isurl/1.0.0: + resolution: + { + integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==, + } + engines: { node: ">= 4" } + dependencies: + has-to-string-tag-x: 1.4.1 + is-object: 1.0.2 + dev: false + + /jayson/3.7.0: + resolution: + { + integrity: sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==, + } + engines: { node: ">=8" } + hasBin: true + dependencies: + "@types/connect": 3.4.35 + "@types/node": 12.20.55 + "@types/ws": 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1_ws@7.5.9 + json-stringify-safe: 5.0.1 + lodash: 4.17.21 + uuid: 8.3.2 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /joi/17.6.0: + resolution: + { + integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==, + } + dependencies: + "@hapi/hoek": 9.3.0 + "@hapi/topo": 5.1.0 + "@sideway/address": 4.1.4 + "@sideway/formula": 3.0.0 + "@sideway/pinpoint": 2.0.0 + dev: false + + /js-base64/3.7.2: + resolution: + { + integrity: sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==, + } + dev: false + + /js-logger/1.6.1: + resolution: + { + integrity: sha512-yTgMCPXVjhmg28CuUH8CKjU+cIKL/G+zTu4Fn4lQxs8mRFH/03QTNvEFngcxfg/gRDiQAOoyCKmMTOm9ayOzXA==, + } + dev: false + + /js-sha256/0.9.0: + resolution: + { + integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==, + } + dev: false + + /js-sha3/0.5.7: + resolution: + { + integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==, + } + dev: false + + /js-sha3/0.8.0: + resolution: + { + integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==, + } + dev: false + + /js-sha512/0.8.0: + resolution: + { + integrity: sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==, + } + dev: false + + /js-tokens/4.0.0: + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } + + /js-yaml/3.14.1: + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, + } + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /jsbn/0.1.1: + resolution: + { + integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==, + } + dev: false + + /json-bigint/1.0.0: + resolution: + { + integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==, + } + dependencies: + bignumber.js: 9.1.0 + dev: false + + /json-buffer/3.0.1: + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + } + dev: false + + /json-duplicate-key-handle/1.0.0: + resolution: + { + integrity: sha512-OLIxL+UpfwUsqcLX3i6Z51ChTou/Vje+6bSeGUSubj96dF/SfjObDprLy++ZXYH07KITuEzsXS7PX7e/BGf4jw==, + } + dependencies: + backslash: 0.2.0 + dev: false + + /json-schema-traverse/0.4.1: + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } + + /json-schema-traverse/1.0.0: + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + } + + /json-schema/0.4.0: + resolution: + { + integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==, + } + dev: false + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + } + dev: true + + /json-stringify-safe/5.0.1: + resolution: + { + integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, + } + dev: false + + /json-text-sequence/0.1.1: + resolution: + { + integrity: sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w==, + } + dependencies: + delimit-stream: 0.1.0 + dev: false + + /jsonc-parser/3.1.0: + resolution: + { + integrity: sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==, + } + dev: true + + /jsonfile/4.0.0: + resolution: + { + integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, + } + optionalDependencies: + graceful-fs: 4.2.10 + dev: false + + /jsonfile/6.1.0: + resolution: + { + integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, + } + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + dev: false + optional: true + + /jsonparse/1.3.1: + resolution: + { + integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, + } + engines: { "0": node >= 0.2.0 } + dev: false + + /jsprim/1.4.2: + resolution: + { + integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==, + } + engines: { node: ">=0.6.0" } + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: false + + /keccak/3.0.2: + resolution: + { + integrity: sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==, + } + engines: { node: ">=10.0.0" } + requiresBuild: true + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.5.0 + readable-stream: 3.6.0 + dev: false + + /kefir/3.8.8: + resolution: + { + integrity: sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA==, + } + dev: false + + /keyv/4.4.1: + resolution: + { + integrity: sha512-PzByhNxfBLnSBW2MZi1DF+W5+qB/7BMpOokewqIvqS8GFtP7xHm2oeGU72Y1fhtfOv/FiEnI4+nyViYDmUChnw==, + } + dependencies: + compress-brotli: 1.3.8 + json-buffer: 3.0.1 + dev: false + + /keyvaluestorage-interface/1.0.0: + resolution: + { + integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==, + } + dev: false + + /lazy-ass/1.6.0: + resolution: + { + integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==, + } + engines: { node: "> 0.8" } + dev: false + + /levn/0.4.1: + resolution: + { + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, + } + engines: { node: ">= 0.8.0" } + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /local-pkg/0.4.2: + resolution: + { + integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==, + } + engines: { node: ">=14" } + dev: false + + /locate-path/5.0.0: + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: ">=8" } + dependencies: + p-locate: 4.1.0 + + /locate-path/6.0.0: + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: ">=10" } + dependencies: + p-locate: 5.0.0 + dev: false + optional: true + + /lodash.camelcase/4.3.0: + resolution: + { + integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, + } + dev: false + + /lodash.merge/4.6.2: + resolution: + { + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, + } + dev: true + + /lodash.truncate/4.4.2: + resolution: + { + integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, + } + + /lodash/4.17.21: + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } + dev: false + + /long/4.0.0: + resolution: + { + integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==, + } + dev: false + + /long/5.2.0: + resolution: + { + integrity: sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==, + } + dev: false + + /loose-envify/1.4.0: + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + optional: true + + /loupe/2.3.4: + resolution: + { + integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==, + } + dependencies: + get-func-name: 2.0.0 + dev: false + + /lower-case/2.0.2: + resolution: + { + integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, + } + dependencies: + tslib: 2.4.0 + dev: false + + /lowercase-keys/1.0.1: + resolution: + { + integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==, + } + engines: { node: ">=0.10.0" } + dev: false + + /lowercase-keys/2.0.0: + resolution: + { + integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==, + } + engines: { node: ">=8" } + dev: false + + /lowercase-keys/3.0.0: + resolution: + { + integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: false + + /lru-cache/5.1.1: + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + } + dependencies: + yallist: 3.1.1 + dev: false + + /lru-cache/6.0.0: + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, + } + engines: { node: ">=10" } + dependencies: + yallist: 4.0.0 + + /lunr/2.3.9: + resolution: + { + integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==, + } + dev: true + + /make-error/1.3.6: + resolution: + { + integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, + } + dev: false + + /map-stream/0.1.0: + resolution: + { + integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==, + } + dev: false + + /marked/4.0.19: + resolution: + { + integrity: sha512-rgQF/OxOiLcvgUAj1Q1tAf4Bgxn5h5JZTp04Fx4XUkVhs7B+7YA9JEWJhJpoO8eJt8MkZMwqLCNeNqj1bCREZQ==, + } + engines: { node: ">= 12" } + hasBin: true + dev: true + + /md5.js/1.3.5: + resolution: + { + integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==, + } + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /md5/2.3.0: + resolution: + { + integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==, + } + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + dev: false + + /media-typer/0.3.0: + resolution: + { + integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, + } + engines: { node: ">= 0.6" } + dev: false + + /merge-descriptors/1.0.1: + resolution: + { + integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==, + } + dev: false + + /merge-stream/2.0.0: + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } + + /merge2/1.4.1: + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } + + /methods/1.1.2: + resolution: + { + integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, + } + engines: { node: ">= 0.6" } + dev: false + + /micromatch/4.0.5: + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: ">=8.6" } + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + /miller-rabin/4.0.1: + resolution: + { + integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==, + } + hasBin: true + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + dev: false + + /mime-db/1.52.0: + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: ">= 0.6" } + dev: false + + /mime-types/2.1.35: + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: ">= 0.6" } + dependencies: + mime-db: 1.52.0 + dev: false + + /mime/1.6.0: + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, + } + engines: { node: ">=4" } + hasBin: true + dev: false + + /mime/2.6.0: + resolution: + { + integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==, + } + engines: { node: ">=4.0.0" } + hasBin: true + dev: false + + /mimic-fn/2.1.0: + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + } + engines: { node: ">=6" } + + /mimic-response/1.0.1: + resolution: + { + integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==, + } + engines: { node: ">=4" } + dev: false + + /mimic-response/2.1.0: + resolution: + { + integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==, + } + engines: { node: ">=8" } + dev: false + + /mimic-response/3.1.0: + resolution: + { + integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, + } + engines: { node: ">=10" } + dev: false + + /min-document/2.19.0: + resolution: + { + integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==, + } + dependencies: + dom-walk: 0.1.2 + dev: false + + /minimalistic-assert/1.0.1: + resolution: + { + integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, + } + dev: false + + /minimalistic-crypto-utils/1.0.1: + resolution: + { + integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==, + } + dev: false + + /minimatch/3.1.2: + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } + dependencies: + brace-expansion: 1.1.11 + + /minimatch/5.1.0: + resolution: + { + integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==, + } + engines: { node: ">=10" } + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist/1.2.6: + resolution: + { + integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==, + } + dev: false + + /minipass/2.9.0: + resolution: + { + integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==, + } + dependencies: + safe-buffer: 5.2.1 + yallist: 3.1.1 + dev: false + + /minizlib/1.3.3: + resolution: + { + integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==, + } + dependencies: + minipass: 2.9.0 + dev: false + + /miscreant/0.3.2: + resolution: + { + integrity: sha512-fL9KxsQz9BJB2KGPMHFrReioywkiomBiuaLk6EuChijK0BsJsIKJXdVomR+/bPj5mvbFD6wM0CM3bZio9g7OHA==, + } + dev: false + + /mkdirp-classic/0.5.3: + resolution: + { + integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, + } + dev: false + + /mkdirp-promise/5.0.1: + resolution: + { + integrity: sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==, + } + engines: { node: ">=4" } + deprecated: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that. + dependencies: + mkdirp: 1.0.4 + dev: false + + /mkdirp/0.5.6: + resolution: + { + integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, + } + hasBin: true + dependencies: + minimist: 1.2.6 + dev: false + + /mkdirp/1.0.4: + resolution: + { + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, + } + engines: { node: ">=10" } + hasBin: true + dev: false + + /mock-fs/4.14.0: + resolution: + { + integrity: sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==, + } + dev: false + + /mri/1.2.0: + resolution: + { + integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, + } + engines: { node: ">=4" } + dev: true + + /ms/2.0.0: + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, + } + dev: false + + /ms/2.1.2: + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } + + /ms/2.1.3: + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } + dev: false + + /msrcrypto/1.5.8: + resolution: + { + integrity: sha512-ujZ0TRuozHKKm6eGbKHfXef7f+esIhEckmThVnz7RNyiOJd7a6MXj2JGBoL9cnPDW+JMG16MoTUh5X+XXjI66Q==, + } + dev: false + + /multibase/0.6.1: + resolution: + { + integrity: sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==, + } + deprecated: This module has been superseded by the multiformats module + dependencies: + base-x: 3.0.9 + buffer: 5.7.1 + dev: false + + /multibase/0.7.0: + resolution: + { + integrity: sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==, + } + deprecated: This module has been superseded by the multiformats module + dependencies: + base-x: 3.0.9 + buffer: 5.7.1 + dev: false + + /multicodec/0.5.7: + resolution: + { + integrity: sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==, + } + deprecated: This module has been superseded by the multiformats module + dependencies: + varint: 5.0.2 + dev: false + + /multicodec/1.0.4: + resolution: + { + integrity: sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==, + } + deprecated: This module has been superseded by the multiformats module + dependencies: + buffer: 5.7.1 + varint: 5.0.2 + dev: false + + /multihashes/0.4.21: + resolution: + { + integrity: sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==, + } + dependencies: + buffer: 5.7.1 + multibase: 0.7.0 + varint: 5.0.2 + dev: false + + /multimatch/4.0.0: + resolution: + { + integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==, + } + engines: { node: ">=8" } + dependencies: + "@types/minimatch": 3.0.5 + array-differ: 3.0.0 + array-union: 2.1.0 + arrify: 2.0.1 + minimatch: 3.1.2 + dev: true + + /mustache/4.2.0: + resolution: + { + integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==, + } + hasBin: true + dev: false + + /nan/2.16.0: + resolution: + { + integrity: sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==, + } + dev: false + + /nano-json-stream-parser/0.1.2: + resolution: + { + integrity: sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==, + } + dev: false + + /nanoassert/1.1.0: + resolution: + { + integrity: sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ==, + } + dev: false + + /nanoid/3.3.4: + resolution: + { + integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + dev: false + + /napi-build-utils/1.0.2: + resolution: + { + integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==, + } + dev: false + + /natural-compare/1.4.0: + resolution: + { + integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, + } + dev: true + + /near-api-js/0.45.1: + resolution: + { + integrity: sha512-QyPO/vjvMFlcMO1DCpsqzmnSqPIyHsjK1Qi4B5ZR1cJCIWMkqugDF/TDf8FVQ85pmlcYeYwfiTqKanKz+3IG0A==, + } + dependencies: + bn.js: 5.2.0 + borsh: 0.7.0 + bs58: 4.0.1 + depd: 2.0.0 + error-polyfill: 0.1.3 + http-errors: 1.8.1 + js-sha256: 0.9.0 + mustache: 4.2.0 + node-fetch: 2.6.7 + text-encoding-utf-8: 1.0.2 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - encoding + dev: false + + /negotiator/0.6.3: + resolution: + { + integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, + } + engines: { node: ">= 0.6" } + dev: false + + /next-tick/1.1.0: + resolution: + { + integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==, + } + dev: false + + /no-case/3.0.4: + resolution: + { + integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, + } + dependencies: + lower-case: 2.0.2 + tslib: 2.4.0 + dev: false + + /node-abi/2.30.1: + resolution: + { + integrity: sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==, + } + dependencies: + semver: 5.7.1 + dev: false + + /node-addon-api/2.0.2: + resolution: + { + integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==, + } + dev: false + + /node-addon-api/3.2.1: + resolution: + { + integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==, + } + dev: false + + /node-addon-api/4.3.0: + resolution: + { + integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==, + } + dev: false + + /node-fetch/2.6.7: + resolution: + { + integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, + } + engines: { node: 4.x || >=6.0.0 } + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: false + + /node-gyp-build/4.5.0: + resolution: + { + integrity: sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==, + } + hasBin: true + dev: false + + /node-hid/2.1.1: + resolution: + { + integrity: sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw==, + } + engines: { node: ">=10" } + hasBin: true + requiresBuild: true + dependencies: + bindings: 1.5.0 + node-addon-api: 3.2.1 + prebuild-install: 6.1.4 + dev: false + + /node-stream-zip/1.15.0: + resolution: + { + integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==, + } + engines: { node: ">=0.12.0" } + dev: false + + /normalize-path/3.0.0: + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } + dev: false + + /normalize-url/6.1.0: + resolution: + { + integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==, + } + engines: { node: ">=10" } + dev: false + + /npm-run-path/4.0.1: + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + } + engines: { node: ">=8" } + dependencies: + path-key: 3.1.1 + + /npmlog/4.1.2: + resolution: + { + integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==, + } + dependencies: + are-we-there-yet: 1.1.7 + console-control-strings: 1.1.0 + gauge: 2.7.4 + set-blocking: 2.0.0 + dev: false + + /number-is-nan/1.0.1: + resolution: + { + integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==, + } + engines: { node: ">=0.10.0" } + dev: false + + /number-to-bn/1.7.0: + resolution: + { + integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==, + } + engines: { node: ">=6.5.0", npm: ">=3" } + dependencies: + bn.js: 4.11.6 + strip-hex-prefix: 1.0.0 + dev: false + + /o3/1.0.3: + resolution: + { + integrity: sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==, + } + dependencies: + capability: 0.2.5 + dev: false + + /oauth-sign/0.9.0: + resolution: + { + integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==, + } + dev: false + + /object-assign/4.1.1: + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } + dev: false + + /object-inspect/1.12.2: + resolution: + { + integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==, + } + + /object-is/1.1.5: + resolution: + { + integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + dev: false + + /object-keys/1.1.1: + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: ">= 0.4" } + + /object.assign/4.1.4: + resolution: + { + integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + /object.fromentries/2.0.5: + resolution: + { + integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /oboe/2.1.5: + resolution: + { + integrity: sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==, + } + dependencies: + http-https: 1.0.0 + dev: false + + /on-finished/2.4.1: + resolution: + { + integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, + } + engines: { node: ">= 0.8" } + dependencies: + ee-first: 1.1.1 + dev: false + + /once/1.4.0: + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } + dependencies: + wrappy: 1.0.2 + + /onetime/5.1.2: + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + } + engines: { node: ">=6" } + dependencies: + mimic-fn: 2.1.0 + + /optionator/0.9.1: + resolution: + { + integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, + } + engines: { node: ">= 0.8.0" } + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-cancelable/0.3.0: + resolution: + { + integrity: sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==, + } + engines: { node: ">=4" } + dev: false + + /p-cancelable/2.1.1: + resolution: + { + integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==, + } + engines: { node: ">=8" } + dev: false + + /p-cancelable/3.0.0: + resolution: + { + integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==, + } + engines: { node: ">=12.20" } + dev: false + + /p-finally/1.0.0: + resolution: + { + integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, + } + engines: { node: ">=4" } + dev: false + + /p-limit/2.3.0: + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: ">=6" } + dependencies: + p-try: 2.2.0 + + /p-limit/3.1.0: + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + } + engines: { node: ">=10" } + dependencies: + yocto-queue: 0.1.0 + dev: false + optional: true + + /p-locate/4.1.0: + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: ">=8" } + dependencies: + p-limit: 2.3.0 + + /p-locate/5.0.0: + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + } + engines: { node: ">=10" } + dependencies: + p-limit: 3.1.0 + dev: false + optional: true + + /p-timeout/1.2.1: + resolution: + { + integrity: sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==, + } + engines: { node: ">=4" } + dependencies: + p-finally: 1.0.0 + dev: false + + /p-try/2.2.0: + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: ">=6" } + + /pako/2.0.4: + resolution: + { + integrity: sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==, + } + dev: false + + /parent-module/1.0.1: + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: ">=6" } + dependencies: + callsites: 3.1.0 + dev: true + + /parse-asn1/5.1.6: + resolution: + { + integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==, + } + dependencies: + asn1.js: 5.4.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + pbkdf2: 3.1.2 + safe-buffer: 5.2.1 + dev: false + + /parse-headers/2.0.5: + resolution: + { + integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==, + } + dev: false + + /parseurl/1.3.3: + resolution: + { + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, + } + engines: { node: ">= 0.8" } + dev: false + + /path-exists/4.0.0: + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: ">=8" } + + /path-is-absolute/1.0.1: + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: ">=0.10.0" } + + /path-key/3.1.1: + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: ">=8" } + + /path-parse/1.0.7: + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } + dev: false + + /path-to-regexp/0.1.7: + resolution: + { + integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==, + } + dev: false + + /path-type/4.0.0: + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: ">=8" } + dev: true + + /pathval/1.1.1: + resolution: + { + integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==, + } + dev: false + + /pause-stream/0.0.11: + resolution: + { + integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==, + } + dependencies: + through: 2.3.8 + dev: false + + /pbkdf2/3.1.2: + resolution: + { + integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==, + } + engines: { node: ">=0.12" } + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + dev: false + + /perf_hooks/0.0.1: + resolution: + { + integrity: sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw==, + } + dev: false + + /performance-now/2.1.0: + resolution: + { + integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, + } + dev: false + + /picocolors/1.0.0: + resolution: + { + integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, + } + dev: false + + /picomatch/2.3.1: + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } + + /platform/1.3.6: + resolution: + { + integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==, + } + dev: false + + /postcss/8.4.16: + resolution: + { + integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==, + } + engines: { node: ^10 || ^12 || >=14 } + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + + /prebuild-install/6.1.4: + resolution: + { + integrity: sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==, + } + engines: { node: ">=6" } + hasBin: true + dependencies: + detect-libc: 1.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.6 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 2.30.1 + npmlog: 4.1.2 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 3.1.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + + /prelude-ls/1.2.1: + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: ">= 0.8.0" } + dev: true + + /prepend-http/1.0.4: + resolution: + { + integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==, + } + engines: { node: ">=0.10.0" } + dev: false + + /prettier/1.19.1: + resolution: + { + integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==, + } + engines: { node: ">=4" } + hasBin: true + dev: false + + /prettier/2.7.1: + resolution: + { + integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==, + } + engines: { node: ">=10.13.0" } + hasBin: true + + /pretty-quick/3.1.3_prettier@2.7.1: + resolution: + { + integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==, + } + engines: { node: ">=10.13" } + hasBin: true + peerDependencies: + prettier: ">=2.0.0" + dependencies: + chalk: 3.0.0 + execa: 4.1.0 + find-up: 4.1.0 + ignore: 5.2.0 + mri: 1.2.0 + multimatch: 4.0.0 + prettier: 2.7.1 + dev: true + + /process-nextick-args/2.0.1: + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, + } + dev: false + + /process/0.11.10: + resolution: + { + integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, + } + engines: { node: ">= 0.6.0" } + dev: false + + /progress/2.0.3: + resolution: + { + integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==, + } + engines: { node: ">=0.4.0" } + dev: true + + /protobufjs/6.10.2: + resolution: + { + integrity: sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==, + } + hasBin: true + requiresBuild: true + dependencies: + "@protobufjs/aspromise": 1.1.2 + "@protobufjs/base64": 1.1.2 + "@protobufjs/codegen": 2.0.4 + "@protobufjs/eventemitter": 1.1.0 + "@protobufjs/fetch": 1.1.0 + "@protobufjs/float": 1.0.2 + "@protobufjs/inquire": 1.1.0 + "@protobufjs/path": 1.1.2 + "@protobufjs/pool": 1.1.0 + "@protobufjs/utf8": 1.1.0 + "@types/long": 4.0.2 + "@types/node": 13.13.52 + long: 4.0.0 + dev: false + + /protobufjs/6.11.3: + resolution: + { + integrity: sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==, + } + hasBin: true + requiresBuild: true + dependencies: + "@protobufjs/aspromise": 1.1.2 + "@protobufjs/base64": 1.1.2 + "@protobufjs/codegen": 2.0.4 + "@protobufjs/eventemitter": 1.1.0 + "@protobufjs/fetch": 1.1.0 + "@protobufjs/float": 1.0.2 + "@protobufjs/inquire": 1.1.0 + "@protobufjs/path": 1.1.2 + "@protobufjs/pool": 1.1.0 + "@protobufjs/utf8": 1.1.0 + "@types/long": 4.0.2 + "@types/node": 18.7.13 + long: 4.0.0 + dev: false + + /protobufjs/7.0.0: + resolution: + { + integrity: sha512-ffNIEm+quOcYtQvHdW406v1NQmZSuqVklxsXk076BtuFnlYZfigLU+JOMrTD8TUOyqHYbRI/fSVNvgd25YeN3w==, + } + engines: { node: ">=12.0.0" } + requiresBuild: true + dependencies: + "@protobufjs/aspromise": 1.1.2 + "@protobufjs/base64": 1.1.2 + "@protobufjs/codegen": 2.0.4 + "@protobufjs/eventemitter": 1.1.0 + "@protobufjs/fetch": 1.1.0 + "@protobufjs/float": 1.0.2 + "@protobufjs/inquire": 1.1.0 + "@protobufjs/path": 1.1.2 + "@protobufjs/pool": 1.1.0 + "@protobufjs/utf8": 1.1.0 + "@types/long": 4.0.2 + "@types/node": 18.7.13 + long: 5.2.0 + dev: false + + /proxy-addr/2.0.7: + resolution: + { + integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, + } + engines: { node: ">= 0.10" } + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + dev: false + + /ps-tree/1.2.0: + resolution: + { + integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==, + } + engines: { node: ">= 0.10" } + hasBin: true + dependencies: + event-stream: 3.3.4 + dev: false + + /psl/1.9.0: + resolution: + { + integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, + } + dev: false + + /public-encrypt/4.0.3: + resolution: + { + integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==, + } + dependencies: + bn.js: 4.12.0 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + parse-asn1: 5.1.6 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + dev: false + + /pump/3.0.0: + resolution: + { + integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, + } + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + /punycode/2.1.0: + resolution: + { + integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==, + } + engines: { node: ">=6" } + dev: false + + /punycode/2.1.1: + resolution: + { + integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==, + } + engines: { node: ">=6" } + + /pvtsutils/1.3.2: + resolution: + { + integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==, + } + dependencies: + tslib: 2.4.0 + dev: false + + /pvutils/1.1.3: + resolution: + { + integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==, + } + engines: { node: ">=6.0.0" } + dev: false + + /qs/6.10.1: + resolution: + { + integrity: sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==, + } + engines: { node: ">=0.6" } + dependencies: + side-channel: 1.0.4 + dev: false + + /qs/6.10.3: + resolution: + { + integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==, + } + engines: { node: ">=0.6" } + dependencies: + side-channel: 1.0.4 + dev: false + + /qs/6.11.0: + resolution: + { + integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, + } + engines: { node: ">=0.6" } + dependencies: + side-channel: 1.0.4 + dev: false + + /qs/6.5.3: + resolution: + { + integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, + } + engines: { node: ">=0.6" } + dev: false + + /query-string/5.1.1: + resolution: + { + integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==, + } + engines: { node: ">=0.10.0" } + dependencies: + decode-uri-component: 0.2.0 + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: false + + /query-string/6.13.5: + resolution: + { + integrity: sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==, + } + engines: { node: ">=6" } + dependencies: + decode-uri-component: 0.2.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + dev: false + + /queue-microtask/1.2.3: + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } + + /quick-lru/5.1.1: + resolution: + { + integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==, + } + engines: { node: ">=10" } + dev: false + + /randombytes/2.1.0: + resolution: + { + integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, + } + dependencies: + safe-buffer: 5.2.1 + dev: false + + /randomfill/1.0.4: + resolution: + { + integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==, + } + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + dev: false + + /range-parser/1.2.1: + resolution: + { + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, + } + engines: { node: ">= 0.6" } + dev: false + + /raw-body/2.5.1: + resolution: + { + integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==, + } + engines: { node: ">= 0.8" } + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + + /rc/1.2.8: + resolution: + { + integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, + } + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.6 + strip-json-comments: 2.0.1 + dev: false + + /react-native-securerandom/0.1.1: + resolution: + { + integrity: sha512-CozcCx0lpBLevxiXEb86kwLRalBCHNjiGPlw3P7Fi27U6ZLdfjOCNRHD1LtBKcvPvI3TvkBXB3GOtLvqaYJLGw==, + } + requiresBuild: true + peerDependencies: + react-native: "*" + dependencies: + base64-js: 1.5.1 + dev: false + optional: true + + /react-native-url-polyfill/1.3.0: + resolution: + { + integrity: sha512-w9JfSkvpqqlix9UjDvJjm1EjSt652zVQ6iwCIj1cVVkwXf4jQhQgTNXY6EVTwuAmUjg6BC6k9RHCBynoLFo3IQ==, + } + peerDependencies: + react-native: "*" + dependencies: + whatwg-url-without-unicode: 8.0.0-3 + dev: false + + /readable-stream/2.3.7: + resolution: + { + integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==, + } + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: false + + /readable-stream/3.6.0: + resolution: + { + integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==, + } + engines: { node: ">= 6" } + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: false + + /readdirp/3.6.0: + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } + dependencies: + picomatch: 2.3.1 + dev: false + + /readonly-date/1.0.0: + resolution: + { + integrity: sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==, + } + dev: false + + /rechoir/0.6.2: + resolution: + { + integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, + } + engines: { node: ">= 0.10" } + dependencies: + resolve: 1.22.1 + dev: false + + /regenerator-runtime/0.11.1: + resolution: + { + integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==, + } + dev: false + + /regenerator-runtime/0.13.9: + resolution: + { + integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==, + } + dev: false + + /regexp.prototype.flags/1.4.3: + resolution: + { + integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + + /regexpp/3.2.0: + resolution: + { + integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, + } + engines: { node: ">=8" } + dev: true + + /request/2.88.2: + resolution: + { + integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==, + } + engines: { node: ">= 6" } + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.11.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + dev: false + + /require-directory/2.1.1: + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: ">=0.10.0" } + dev: false + + /require-from-string/2.0.2: + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: ">=0.10.0" } + + /require-main-filename/2.0.0: + resolution: + { + integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==, + } + dev: false + + /resolve-alpn/1.2.1: + resolution: + { + integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==, + } + dev: false + + /resolve-from/4.0.0: + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: ">=4" } + dev: true + + /resolve/1.22.1: + resolution: + { + integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, + } + hasBin: true + dependencies: + is-core-module: 2.10.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /responselike/2.0.1: + resolution: + { + integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==, + } + dependencies: + lowercase-keys: 2.0.0 + dev: false + + /reusify/1.0.4: + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } + + /rimraf/3.0.2: + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, + } + hasBin: true + dependencies: + glob: 7.2.3 + + /ripemd160/2.0.2: + resolution: + { + integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, + } + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + dev: false + + /rlp/2.2.7: + resolution: + { + integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==, + } + hasBin: true + dependencies: + bn.js: 5.2.1 + dev: false + + /rollup/2.77.3: + resolution: + { + integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==, + } + engines: { node: ">=10.0.0" } + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: false + + /rpc-websockets/7.5.0: + resolution: + { + integrity: sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ==, + } + dependencies: + "@babel/runtime": 7.18.9 + eventemitter3: 4.0.7 + uuid: 8.3.2 + ws: 8.8.1_22kvxa7zeyivx4jp72v2w3pkvy + optionalDependencies: + bufferutil: 4.0.6 + utf-8-validate: 5.0.9 + dev: false + + /run-parallel/1.2.0: + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } + dependencies: + queue-microtask: 1.2.3 + + /rxjs/6.6.7: + resolution: + { + integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, + } + engines: { npm: ">=2.0.0" } + dependencies: + tslib: 1.14.1 + dev: false + + /rxjs/7.5.6: + resolution: + { + integrity: sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==, + } + dependencies: + tslib: 2.4.0 + dev: false + + /safe-buffer/5.1.2: + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } + dev: false + + /safe-buffer/5.2.1: + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } + dev: false + + /safer-buffer/2.1.2: + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } + dev: false + + /scrypt-js/2.0.4: + resolution: + { + integrity: sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==, + } + dev: false + + /scrypt-js/3.0.1: + resolution: + { + integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==, + } + dev: false + + /scryptsy/2.1.0: + resolution: + { + integrity: sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==, + } + dev: false + + /secp256k1/4.0.3: + resolution: + { + integrity: sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==, + } + engines: { node: ">=10.0.0" } + requiresBuild: true + dependencies: + elliptic: 6.5.4 + node-addon-api: 2.0.2 + node-gyp-build: 4.5.0 + dev: false + + /secretjs/1.3.0-beta.25_google-protobuf@3.21.0: + resolution: + { + integrity: sha512-fHTMGtHGP7aEVBD1142xTb2k7547misrnCs+EKMZN+CCr+fl1PZdEVX4r3MjC+qRpQIMgwVVXJZr4EUNwN7u3A==, + } + dependencies: + "@cosmjs/encoding": 0.27.1 + "@cosmjs/math": 0.27.1 + "@improbable-eng/grpc-web": 0.15.0_google-protobuf@3.21.0 + "@improbable-eng/grpc-web-node-http-transport": 0.15.0_fng5pv4qmdetiqq66m6yjkaacu + "@noble/hashes": 1.0.0 + "@noble/secp256k1": 1.6.3 + "@osmonauts/helpers": 0.3.8 + bech32: 2.0.0 + bignumber.js: 9.0.2 + bip32: 2.0.6 + bip39: 3.0.4 + curve25519-js: 0.0.4 + is-gzip: 2.0.0 + miscreant: 0.3.2 + pako: 2.0.4 + protobufjs: 6.11.3 + secure-random: 1.1.2 + transitivePeerDependencies: + - google-protobuf + dev: false + + /secure-random/1.1.2: + resolution: + { + integrity: sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ==, + } + dev: false + + /semver/5.7.1: + resolution: + { + integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, + } + hasBin: true + dev: false + + /semver/7.3.2: + resolution: + { + integrity: sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==, + } + engines: { node: ">=10" } + hasBin: true + dev: false + + /semver/7.3.7: + resolution: + { + integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==, + } + engines: { node: ">=10" } + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /send/0.18.0: + resolution: + { + integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==, + } + engines: { node: ">= 0.8.0" } + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /serve-static/1.15.0: + resolution: + { + integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==, + } + engines: { node: ">= 0.8.0" } + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + dev: false + + /servify/0.1.12: + resolution: + { + integrity: sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==, + } + engines: { node: ">=6" } + dependencies: + body-parser: 1.20.0 + cors: 2.8.5 + express: 4.18.1 + request: 2.88.2 + xhr: 2.6.0 + transitivePeerDependencies: + - supports-color + dev: false + + /set-blocking/2.0.0: + resolution: + { + integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, + } + dev: false + + /setimmediate/1.0.4: + resolution: + { + integrity: sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==, + } + dev: false + + /setimmediate/1.0.5: + resolution: + { + integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, + } + dev: false + + /setprototypeof/1.2.0: + resolution: + { + integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, + } + dev: false + + /sha.js/2.4.11: + resolution: + { + integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==, + } + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /shebang-command/2.0.0: + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: ">=8" } + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex/3.0.0: + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: ">=8" } + + /shelljs/0.8.5: + resolution: + { + integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, + } + engines: { node: ">=4" } + hasBin: true + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + dev: false + + /shiki/0.10.1: + resolution: + { + integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==, + } + dependencies: + jsonc-parser: 3.1.0 + vscode-oniguruma: 1.6.2 + vscode-textmate: 5.2.0 + dev: true + + /side-channel/1.0.4: + resolution: + { + integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, + } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.2 + object-inspect: 1.12.2 + + /signal-exit/3.0.7: + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } + + /simple-cbor/0.4.1: + resolution: + { + integrity: sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==, + } + dev: false + + /simple-concat/1.0.1: + resolution: + { + integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==, + } + dev: false + + /simple-get/2.8.2: + resolution: + { + integrity: sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==, + } + dependencies: + decompress-response: 3.3.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + + /simple-get/3.1.1: + resolution: + { + integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==, + } + dependencies: + decompress-response: 4.2.1 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + + /slash/3.0.0: + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: ">=8" } + dev: true + + /slice-ansi/4.0.0: + resolution: + { + integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, + } + engines: { node: ">=10" } + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + /snake-case/3.0.4: + resolution: + { + integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==, + } + dependencies: + dot-case: 3.0.4 + tslib: 2.4.0 + dev: false + + /socket.io-client/4.5.1: + resolution: + { + integrity: sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==, + } + engines: { node: ">=10.0.0" } + dependencies: + "@socket.io/component-emitter": 3.1.0 + debug: 4.3.4 + engine.io-client: 6.2.2 + socket.io-parser: 4.2.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + /socket.io-parser/4.2.1: + resolution: + { + integrity: sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==, + } + engines: { node: ">=10.0.0" } + dependencies: + "@socket.io/component-emitter": 3.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /source-map-js/1.0.2: + resolution: + { + integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, + } + engines: { node: ">=0.10.0" } + dev: false + + /split-on-first/1.1.0: + resolution: + { + integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==, + } + engines: { node: ">=6" } + dev: false + + /split/0.3.3: + resolution: + { + integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==, + } + dependencies: + through: 2.3.8 + dev: false + + /sprintf-js/1.0.3: + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, + } + dev: true + + /sshpk/1.17.0: + resolution: + { + integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==, + } + engines: { node: ">=0.10.0" } + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: false + + /start-server-and-test/1.14.0: + resolution: + { + integrity: sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw==, + } + engines: { node: ">=6" } + hasBin: true + dependencies: + bluebird: 3.7.2 + check-more-types: 2.24.0 + debug: 4.3.2 + execa: 5.1.1 + lazy-ass: 1.6.0 + ps-tree: 1.2.0 + wait-on: 6.0.0_debug@4.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + /statuses/1.5.0: + resolution: + { + integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, + } + engines: { node: ">= 0.6" } + dev: false + + /statuses/2.0.1: + resolution: + { + integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, + } + engines: { node: ">= 0.8" } + dev: false + + /str2buf/1.3.0: + resolution: + { + integrity: sha512-xIBmHIUHYZDP4HyoXGHYNVmxlXLXDrtFHYT0eV6IOdEj3VO9ccaF1Ejl9Oq8iFjITllpT8FhaXb4KsNmw+3EuA==, + } + dev: false + + /stream-combiner/0.0.4: + resolution: + { + integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==, + } + dependencies: + duplexer: 0.1.2 + dev: false + + /strict-uri-encode/1.1.0: + resolution: + { + integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==, + } + engines: { node: ">=0.10.0" } + dev: false + + /strict-uri-encode/2.0.0: + resolution: + { + integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==, + } + engines: { node: ">=4" } + dev: false + + /string-width/1.0.2: + resolution: + { + integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==, + } + engines: { node: ">=0.10.0" } + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + dev: false + + /string-width/4.2.3: + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: ">=8" } + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string.prototype.trimend/1.0.5: + resolution: + { + integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + + /string.prototype.trimstart/1.0.5: + resolution: + { + integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + + /string_decoder/1.1.1: + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, + } + dependencies: + safe-buffer: 5.1.2 + dev: false + + /string_decoder/1.3.0: + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } + dependencies: + safe-buffer: 5.2.1 + dev: false + + /strip-ansi/3.0.1: + resolution: + { + integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, + } + engines: { node: ">=0.10.0" } + dependencies: + ansi-regex: 2.1.1 + dev: false + + /strip-ansi/6.0.1: + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: ">=8" } + dependencies: + ansi-regex: 5.0.1 + + /strip-final-newline/2.0.0: + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, + } + engines: { node: ">=6" } + + /strip-hex-prefix/1.0.0: + resolution: + { + integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==, + } + engines: { node: ">=6.5.0", npm: ">=3" } + dependencies: + is-hex-prefixed: 1.0.0 + dev: false + + /strip-json-comments/2.0.1: + resolution: + { + integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, + } + engines: { node: ">=0.10.0" } + dev: false + + /strip-json-comments/3.1.1: + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: ">=8" } + dev: true + + /superagent/6.1.0: + resolution: + { + integrity: sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==, + } + engines: { node: ">= 7.0.0" } + deprecated: Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at . + dependencies: + component-emitter: 1.3.0 + cookiejar: 2.1.3 + debug: 4.3.4 + fast-safe-stringify: 2.1.1 + form-data: 3.0.1 + formidable: 1.2.6 + methods: 1.1.2 + mime: 2.6.0 + qs: 6.11.0 + readable-stream: 3.6.0 + semver: 7.3.7 + transitivePeerDependencies: + - supports-color + dev: false + + /superstruct/0.14.2: + resolution: + { + integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==, + } + dev: false + + /superstruct/0.15.5: + resolution: + { + integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==, + } + dev: false + + /supports-color/5.5.0: + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: ">=4" } + dependencies: + has-flag: 3.0.0 + + /supports-color/7.2.0: + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: ">=8" } + dependencies: + has-flag: 4.0.0 + + /supports-preserve-symlinks-flag/1.0.0: + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } + dev: false + + /swarm-js/0.1.40: + resolution: + { + integrity: sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==, + } + dependencies: + bluebird: 3.7.2 + buffer: 5.7.1 + eth-lib: 0.1.29 + fs-extra: 4.0.3 + got: 7.1.0 + mime-types: 2.1.35 + mkdirp-promise: 5.0.1 + mock-fs: 4.14.0 + setimmediate: 1.0.5 + tar: 4.4.19 + xhr-request: 1.1.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + /table/6.8.0: + resolution: + { + integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==, + } + engines: { node: ">=10.0.0" } + dependencies: + ajv: 8.11.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /tar-fs/2.1.1: + resolution: + { + integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==, + } + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + + /tar-stream/2.2.0: + resolution: + { + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, + } + engines: { node: ">=6" } + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: false + + /tar/4.4.19: + resolution: + { + integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==, + } + engines: { node: ">=4.5" } + dependencies: + chownr: 1.1.4 + fs-minipass: 1.2.7 + minipass: 2.9.0 + minizlib: 1.3.3 + mkdirp: 0.5.6 + safe-buffer: 5.2.1 + yallist: 3.1.1 + dev: false + + /text-encoding-utf-8/1.0.2: + resolution: + { + integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==, + } + dev: false + + /text-table/0.2.0: + resolution: + { + integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, + } + dev: true + + /thor-devkit/2.0.5: + resolution: + { + integrity: sha512-82Z0/sY0+S54bhmg57r7iqoK7sJB1F5md3zWXjXXGPin3ejsR0Whw1O9wzWvE0DkTp1EiPHWFMTPtOejxaiXeA==, + } + dependencies: + "@vechain/ethers": 4.0.27-5 + bignumber.js: 7.2.1 + blakejs: 1.2.1 + elliptic: 6.5.4 + fast-json-stable-stringify: 2.1.0 + js-sha3: 0.5.7 + rlp: 2.2.7 + dev: false + + /through/2.3.8: + resolution: + { + integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, + } + dev: false + + /timed-out/4.0.1: + resolution: + { + integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==, + } + engines: { node: ">=0.10.0" } + dev: false + + /tiny-secp256k1/1.1.6: + resolution: + { + integrity: sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==, + } + engines: { node: ">=6.0.0" } + requiresBuild: true + dependencies: + bindings: 1.5.0 + bn.js: 4.12.0 + create-hmac: 1.1.7 + elliptic: 6.5.4 + nan: 2.16.0 + dev: false + + /tinypool/0.2.4: + resolution: + { + integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==, + } + engines: { node: ">=14.0.0" } + dev: false + + /tinyspy/1.0.2: + resolution: + { + integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==, + } + engines: { node: ">=14.0.0" } + dev: false + + /to-regex-range/5.0.1: + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } + dependencies: + is-number: 7.0.0 + + /toidentifier/1.0.1: + resolution: + { + integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, + } + engines: { node: ">=0.6" } + dev: false + + /toml/3.0.0: + resolution: + { + integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, + } + dev: false + + /tonweb-mnemonic/1.0.1: + resolution: + { + integrity: sha512-YQAEXQHBHb0dnNy50bwIutXwyWa6Den7+cLcXWoG7ZClcqo4bjALOr6tnIqI+hs5jab+AGSsRjilxcp8ao/CpA==, + } + engines: { node: ">=15" } + dependencies: + tweetnacl: 1.0.3 + dev: false + + /tonweb/0.0.43: + resolution: + { + integrity: sha512-wed71NUHymDNVeGFIaMVTj658CXnbr9iafLpKRk4LyvZ17FU2fIBja7m1Uc+oD/+Gf6n0Zqbhsf0b69jF/41Hw==, + } + dependencies: + "@ledgerhq/hw-transport-web-ble": 5.48.0 + "@ledgerhq/hw-transport-webhid": 5.48.0 + "@ledgerhq/hw-transport-webusb": 5.48.0 + bn.js: 5.1.1 + ethjs-unit: 0.1.6 + isomorphic-webcrypto: 2.3.8 + node-fetch: 2.6.7 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - encoding + - expo + - react-native + dev: false + + /tough-cookie/2.5.0: + resolution: + { + integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==, + } + engines: { node: ">=0.8" } + dependencies: + psl: 1.9.0 + punycode: 2.1.1 + dev: false + + /tr46/0.0.3: + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } + dev: false + + /tronstation/1.0.1: + resolution: + { + integrity: sha512-iuHjDHw/63ID5pj2PESeGLl7n7IAG6yunupKfOA2l5ekaWhZo6RSscmdwSIqBEdnXFh7Jmd2HJIzowyMFt+/zQ==, + } + dependencies: + "@babel/runtime": 7.18.9 + babel-runtime: 6.26.0 + dev: false + + /tronweb/4.3.0: + resolution: + { + integrity: sha512-U+s+NBGOg+zfiXeO2kaljJCClg8y8v0McIdO3aAN3/UujDJHou6d6XVPaiMnli4ynE0XC4JHSUM+5KcYos+DiQ==, + } + dependencies: + "@babel/runtime": 7.18.9 + axios: 0.26.1 + bignumber.js: 9.0.2 + elliptic: 6.5.4 + ethers: 5.7.0 + eventemitter3: 3.1.2 + injectpromise: 1.0.0 + lodash: 4.17.21 + semver: 5.7.1 + validator: 13.7.0 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + dev: false + + /ts-node/10.9.1_57uwcby55h6tzvkj3v5sfcgxoe: + resolution: + { + integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, + } + hasBin: true + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + dependencies: + "@cspotcode/source-map-support": 0.8.1 + "@tsconfig/node10": 1.0.9 + "@tsconfig/node12": 1.0.11 + "@tsconfig/node14": 1.0.3 + "@tsconfig/node16": 1.0.3 + "@types/node": 18.7.13 + acorn: 8.8.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.7.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: false + + /tslib/1.14.1: + resolution: + { + integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, + } + + /tslib/2.4.0: + resolution: + { + integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==, + } + dev: false + + /tsutils/3.21.0_typescript@4.7.4: + resolution: + { + integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, + } + engines: { node: ">= 6" } + peerDependencies: + typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + dependencies: + tslib: 1.14.1 + typescript: 4.7.4 + dev: true + + /tunnel-agent/0.6.0: + resolution: + { + integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, + } + dependencies: + safe-buffer: 5.2.1 + dev: false + + /tweetnacl/0.14.5: + resolution: + { + integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==, + } + dev: false + + /tweetnacl/1.0.3: + resolution: + { + integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==, + } + dev: false + + /type-check/0.4.0: + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + } + engines: { node: ">= 0.8.0" } + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect/4.0.8: + resolution: + { + integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, + } + engines: { node: ">=4" } + dev: false + + /type-fest/0.20.2: + resolution: + { + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, + } + engines: { node: ">=10" } + dev: true + + /type-is/1.6.18: + resolution: + { + integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, + } + engines: { node: ">= 0.6" } + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: false + + /type/1.2.0: + resolution: + { + integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==, + } + dev: false + + /type/2.7.2: + resolution: + { + integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==, + } + dev: false + + /typedarray-to-buffer/3.1.5: + resolution: + { + integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==, + } + dependencies: + is-typedarray: 1.0.0 + dev: false + + /typedarray-to-buffer/4.0.0: + resolution: + { + integrity: sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ==, + } + dev: false + + /typedoc/0.22.18_typescript@4.7.4: + resolution: + { + integrity: sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA==, + } + engines: { node: ">= 12.10.0" } + hasBin: true + peerDependencies: + typescript: 4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x || 4.7.x + dependencies: + glob: 8.0.3 + lunr: 2.3.9 + marked: 4.0.19 + minimatch: 5.1.0 + shiki: 0.10.1 + typescript: 4.7.4 + dev: true + + /typeforce/1.18.0: + resolution: + { + integrity: sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==, + } + dev: false + + /typescript-compiler/1.4.1-2: + resolution: + { + integrity: sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg==, + } + dev: false + + /typescript/4.4.4: + resolution: + { + integrity: sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==, + } + engines: { node: ">=4.2.0" } + hasBin: true + dev: false + + /typescript/4.7.4: + resolution: + { + integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==, + } + engines: { node: ">=4.2.0" } + hasBin: true + + /u2f-api/0.2.7: + resolution: + { + integrity: sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==, + } + dev: false + + /u3/0.1.1: + resolution: + { + integrity: sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==, + } + dev: false + + /ultron/1.1.1: + resolution: + { + integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==, + } + dev: false + + /unbox-primitive/1.0.2: + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, + } + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + /universal-user-agent/6.0.0: + resolution: + { + integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==, + } + dev: false + + /universalify/0.1.2: + resolution: + { + integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, + } + engines: { node: ">= 4.0.0" } + dev: false + + /universalify/2.0.0: + resolution: + { + integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, + } + engines: { node: ">= 10.0.0" } + dev: false + optional: true + + /unpipe/1.0.0: + resolution: + { + integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, + } + engines: { node: ">= 0.8" } + dev: false + + /uri-js/4.4.1: + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } + dependencies: + punycode: 2.1.1 + + /url-parse-lax/1.0.0: + resolution: + { + integrity: sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==, + } + engines: { node: ">=0.10.0" } + dependencies: + prepend-http: 1.0.4 + dev: false + + /url-set-query/1.0.0: + resolution: + { + integrity: sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==, + } + dev: false + + /url-to-options/1.0.1: + resolution: + { + integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==, + } + engines: { node: ">= 4" } + dev: false + + /usb/1.9.2: + resolution: + { + integrity: sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==, + } + engines: { node: ">=10.16.0" } + requiresBuild: true + dependencies: + node-addon-api: 4.3.0 + node-gyp-build: 4.5.0 + dev: false + + /utf-8-validate/5.0.9: + resolution: + { + integrity: sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==, + } + engines: { node: ">=6.14.2" } + requiresBuild: true + dependencies: + node-gyp-build: 4.5.0 + dev: false + + /utf8/3.0.0: + resolution: + { + integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==, + } + dev: false + + /util-deprecate/1.0.2: + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } + dev: false + + /util/0.12.4: + resolution: + { + integrity: sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==, + } + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.9 + safe-buffer: 5.2.1 + which-typed-array: 1.1.8 + dev: false + + /utils-merge/1.0.1: + resolution: + { + integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, + } + engines: { node: ">= 0.4.0" } + dev: false + + /uuid/2.0.1: + resolution: + { + integrity: sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==, + } + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + dev: false + + /uuid/3.3.2: + resolution: + { + integrity: sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==, + } + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: false + + /uuid/3.4.0: + resolution: + { + integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==, + } + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: false + + /uuid/8.3.2: + resolution: + { + integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, + } + hasBin: true + dev: false + + /v8-compile-cache-lib/3.0.1: + resolution: + { + integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, + } + dev: false + + /v8-compile-cache/2.3.0: + resolution: + { + integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==, + } + dev: true + + /validator-ts/0.9.1: + resolution: + { + integrity: sha512-3PCL0AzKWvG/4Y12zUgk6OVup9zQ3vXGzqUIZ69GnSapIV9lgr9VCLFReUgTe04vY6Fm4WzAL7a1HdIVyWRw8Q==, + } + dev: false + + /validator/13.7.0: + resolution: + { + integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==, + } + engines: { node: ">= 0.10" } + dev: false + + /varint/5.0.2: + resolution: + { + integrity: sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==, + } + dev: false + + /vary/1.1.2: + resolution: + { + integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, + } + engines: { node: ">= 0.8" } + dev: false + + /verror/1.10.0: + resolution: + { + integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==, + } + engines: { "0": node >=0.6.0 } + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: false + + /vite/3.0.9: + resolution: + { + integrity: sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==, + } + engines: { node: ^14.18.0 || >=16.0.0 } + hasBin: true + peerDependencies: + less: "*" + sass: "*" + stylus: "*" + terser: ^5.4.0 + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.14.54 + postcss: 8.4.16 + resolve: 1.22.1 + rollup: 2.77.3 + optionalDependencies: + fsevents: 2.3.2 + dev: false + + /vitest/0.18.1: + resolution: + { + integrity: sha512-4F/1K/Vn4AvJwe7i2YblR02PT5vMKcw9KN4unDq2KD0YcSxX0B/6D6Qu9PJaXwVuxXMFTQ5ovd4+CQaW3bwofA==, + } + engines: { node: ">=v14.16.0" } + hasBin: true + peerDependencies: + "@edge-runtime/vm": "*" + "@vitest/ui": "*" + c8: "*" + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@vitest/ui": + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + "@types/chai": 4.3.3 + "@types/chai-subset": 1.3.3 + "@types/node": 18.7.13 + chai: 4.3.6 + debug: 4.3.4 + local-pkg: 0.4.2 + tinypool: 0.2.4 + tinyspy: 1.0.2 + vite: 3.0.9 + transitivePeerDependencies: + - less + - sass + - stylus + - supports-color + - terser + dev: false + + /vlq/2.0.4: + resolution: + { + integrity: sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==, + } + dev: false + + /vscode-oniguruma/1.6.2: + resolution: + { + integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==, + } + dev: true + + /vscode-textmate/5.2.0: + resolution: + { + integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==, + } + dev: true + + /wait-on/6.0.0_debug@4.3.2: + resolution: + { + integrity: sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==, + } + engines: { node: ">=10.0.0" } + hasBin: true + dependencies: + axios: 0.21.4_debug@4.3.2 + joi: 17.6.0 + lodash: 4.17.21 + minimist: 1.2.6 + rxjs: 7.5.6 + transitivePeerDependencies: + - debug + dev: false + + /web3-bzz/1.7.5: + resolution: + { + integrity: sha512-Z53sY0YK/losqjJncmL4vP0zZI9r6tiXg6o7R6e1JD2Iy7FH3serQvU+qXmPjqEBzsnhf8wTG+YcBPB3RHpr0Q==, + } + engines: { node: ">=8.0.0" } + requiresBuild: true + dependencies: + "@types/node": 12.20.55 + got: 12.1.0 + swarm-js: 0.1.40 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + /web3-core-helpers/1.7.5: + resolution: + { + integrity: sha512-lDDjTks6Q6aNUO87RYrY2xub3UWTKr/RIWxpHJODEqkLxZS1dWdyliJ6aIx3031VQwsNT5HE7NvABe/t0p3iDQ==, + } + engines: { node: ">=8.0.0" } + dependencies: + web3-eth-iban: 1.7.5 + web3-utils: 1.7.5 + dev: false + + /web3-core-method/1.7.5: + resolution: + { + integrity: sha512-ApTvq1Llzlbxmy0n4L7QaE6NodIsR80VJqk8qN4kLg30SGznt/pNJFebryLI2kpyDmxSgj1TjEWzmHJBp6FhYg==, + } + engines: { node: ">=8.0.0" } + dependencies: + "@ethersproject/transactions": 5.7.0 + web3-core-helpers: 1.7.5 + web3-core-promievent: 1.7.5 + web3-core-subscriptions: 1.7.5 + web3-utils: 1.7.5 + dev: false + + /web3-core-promievent/1.7.5: + resolution: + { + integrity: sha512-uZ1VRErVuhiLtHlyt3oEH/JSvAf6bWPndChHR9PG7i1Zfqm6ZVCeM91ICTPmiL8ddsGQOxASpnJk4vhApcTIww==, + } + engines: { node: ">=8.0.0" } + dependencies: + eventemitter3: 4.0.4 + dev: false + + /web3-core-requestmanager/1.7.5: + resolution: + { + integrity: sha512-3KpfxW/wVH4mgwWEsSJGHKrtRVoijWlDxtUrm17xgtqRNZ2mFolifKnHAUKa0fY48C9CrxmcCiMIi3W4G6WYRw==, + } + engines: { node: ">=8.0.0" } + dependencies: + util: 0.12.4 + web3-core-helpers: 1.7.5 + web3-providers-http: 1.7.5 + web3-providers-ipc: 1.7.5 + web3-providers-ws: 1.7.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /web3-core-subscriptions/1.7.5: + resolution: + { + integrity: sha512-YK6utQ7Wwjbe4XZOIA8quWGBPi1lFDS1A+jQYwxKKrCvm6BloBNc3FhvrcSYlDhLe/kOy8+2Je8i9amndgT4ww==, + } + engines: { node: ">=8.0.0" } + dependencies: + eventemitter3: 4.0.4 + web3-core-helpers: 1.7.5 + dev: false + + /web3-core/1.7.5: + resolution: + { + integrity: sha512-UgOWXZr1fR/3cUQJKWbfMwRxj1/N7o6RSd/dHqdXBlOD+62EjNZItFmLRg5veq5kp9YfXzrNw9bnDkXfsL+nKQ==, + } + engines: { node: ">=8.0.0" } + dependencies: + "@types/bn.js": 5.1.0 + "@types/node": 12.20.55 + bignumber.js: 9.1.0 + web3-core-helpers: 1.7.5 + web3-core-method: 1.7.5 + web3-core-requestmanager: 1.7.5 + web3-utils: 1.7.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /web3-eth-abi/1.7.5: + resolution: + { + integrity: sha512-qWHvF7sayxql9BD1yqK9sZRLBQ66eJzGeaU53Y1PRq2iFPrhY6NUWxQ3c3ps0rg+dyObvRbloviWpKXcS4RE/A==, + } + engines: { node: ">=8.0.0" } + dependencies: + "@ethersproject/abi": 5.7.0 + web3-utils: 1.7.5 + dev: false + + /web3-eth-accounts/1.7.5: + resolution: + { + integrity: sha512-AzMLoTj3RGwKpyp3x3TtHrEeU4VpR99iMOD6NKrWSDumS6QEi0lCo+y7QZhdTlINw3iIA3SFIdvbAOO4NCHSDg==, + } + engines: { node: ">=8.0.0" } + dependencies: + "@ethereumjs/common": 2.6.5 + "@ethereumjs/tx": 3.5.2 + crypto-browserify: 3.12.0 + eth-lib: 0.2.8 + ethereumjs-util: 7.1.5 + scrypt-js: 3.0.1 + uuid: 3.3.2 + web3-core: 1.7.5 + web3-core-helpers: 1.7.5 + web3-core-method: 1.7.5 + web3-utils: 1.7.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /web3-eth-contract/1.7.5: + resolution: + { + integrity: sha512-qab7NPJRKRlTs58ozsqK8YIEwWpxIm3vD/okSIKBGkFx5gIHWW+vGmMh5PDSfefLJM9rCd+T+Lc0LYvtME7uqg==, + } + engines: { node: ">=8.0.0" } + dependencies: + "@types/bn.js": 5.1.0 + web3-core: 1.7.5 + web3-core-helpers: 1.7.5 + web3-core-method: 1.7.5 + web3-core-promievent: 1.7.5 + web3-core-subscriptions: 1.7.5 + web3-eth-abi: 1.7.5 + web3-utils: 1.7.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /web3-eth-ens/1.7.5: + resolution: + { + integrity: sha512-k1Q0msdRv/wac2egpZBIwG3n/sa/KdrVmVJvFm471gLTL4xfUizV5qJjkDVf+ikf9JyDvWJTs5eWNUUbOFIw/A==, + } + engines: { node: ">=8.0.0" } + dependencies: + content-hash: 2.5.2 + eth-ens-namehash: 2.0.8 + web3-core: 1.7.5 + web3-core-helpers: 1.7.5 + web3-core-promievent: 1.7.5 + web3-eth-abi: 1.7.5 + web3-eth-contract: 1.7.5 + web3-utils: 1.7.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /web3-eth-iban/1.7.5: + resolution: + { + integrity: sha512-mn2W5t/1IpL8OZvzAabLKT4kvwRnZSJ9K0tctndl9sDNWkfITYQibEEhUaNNA50Q5fJKgVudHI/m0gwIVTyG8Q==, + } + engines: { node: ">=8.0.0" } + dependencies: + bn.js: 5.2.1 + web3-utils: 1.7.5 + dev: false + + /web3-eth-personal/1.7.5: + resolution: + { + integrity: sha512-txh2P/eN8I4AOUKFi9++KKddoD0tWfCuu9Y1Kc41jSRbk6smO88Fum0KWNmYFYhSCX2qiknS1DfqsONl3igoKQ==, + } + engines: { node: ">=8.0.0" } + dependencies: + "@types/node": 12.20.55 + web3-core: 1.7.5 + web3-core-helpers: 1.7.5 + web3-core-method: 1.7.5 + web3-net: 1.7.5 + web3-utils: 1.7.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /web3-eth/1.7.5: + resolution: + { + integrity: sha512-BucjvqZyDWYkGlsFX+OnOBub0YutlC1KZiNGibdmvtNX0NQK+8iw1uzAoL9yTTwCSszL7lnkFe8N+HCOl9B4Dw==, + } + engines: { node: ">=8.0.0" } + dependencies: + web3-core: 1.7.5 + web3-core-helpers: 1.7.5 + web3-core-method: 1.7.5 + web3-core-subscriptions: 1.7.5 + web3-eth-abi: 1.7.5 + web3-eth-accounts: 1.7.5 + web3-eth-contract: 1.7.5 + web3-eth-ens: 1.7.5 + web3-eth-iban: 1.7.5 + web3-eth-personal: 1.7.5 + web3-net: 1.7.5 + web3-utils: 1.7.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /web3-net/1.7.5: + resolution: + { + integrity: sha512-xwuCb2YWw49PmW81AJQ/G+Xi2ikRsYyZXSgyPt4LmZuKjiqg/6kSdK8lZvUi3Pi3wM+QDBXbpr73M/WEkW0KvA==, + } + engines: { node: ">=8.0.0" } + dependencies: + web3-core: 1.7.5 + web3-core-method: 1.7.5 + web3-utils: 1.7.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /web3-providers-connex/0.3.1: + resolution: + { + integrity: sha512-0jnPkPszyHA9nlvB1hJ+FDT8pLixF7GzmZm0gB/j1UonuYYuYD3VtNgQ2+N4jDkkFuRd3H/sZRR+Piq0tV8aig==, + } + dependencies: + "@vechain/connex-driver": 2.0.10 + "@vechain/connex-types": 2.0.2 + ethers: 5.7.0 + eventemitter3: 4.0.7 + thor-devkit: 2.0.5 + web3: 1.7.5 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - supports-color + - utf-8-validate + dev: false + + /web3-providers-http/1.7.5: + resolution: + { + integrity: sha512-vPgr4Kzy0M3CHtoP/Bh7qwK/D9h2fhjpoqctdMWVJseOfeTgfOphCKN0uwV8w2VpZgDPXA8aeTdBx5OjmDdStA==, + } + engines: { node: ">=8.0.0" } + dependencies: + abortcontroller-polyfill: 1.7.3 + cross-fetch: 3.1.5 + es6-promise: 4.2.8 + web3-core-helpers: 1.7.5 + transitivePeerDependencies: + - encoding + dev: false + + /web3-providers-ipc/1.7.5: + resolution: + { + integrity: sha512-aNHx+RAROzO+apDEzy8Zncj78iqWBadIXtpmFDg7uiTn8i+oO+IcP1Yni7jyzkltsysVJHgHWG4kPx50ANCK3Q==, + } + engines: { node: ">=8.0.0" } + dependencies: + oboe: 2.1.5 + web3-core-helpers: 1.7.5 + dev: false + + /web3-providers-ws/1.7.5: + resolution: + { + integrity: sha512-9uJNVVkIGC8PmM9kNbgPth56HDMSSsxZh3ZEENdwO3LNWemaADiQYUDCsD/dMVkn0xsGLHP5dgAy4Q5msqySLg==, + } + engines: { node: ">=8.0.0" } + dependencies: + eventemitter3: 4.0.4 + web3-core-helpers: 1.7.5 + websocket: 1.0.34 + transitivePeerDependencies: + - supports-color + dev: false + + /web3-shh/1.7.5: + resolution: + { + integrity: sha512-aCIWJyLMH5H76OybU4ZpUCJ93yNOPATGhJ+KboRPU8QZDzS2CcVhtEzyl27bbvw+rSnVroMLqBgTXBB4mmKI7A==, + } + engines: { node: ">=8.0.0" } + requiresBuild: true + dependencies: + web3-core: 1.7.5 + web3-core-method: 1.7.5 + web3-core-subscriptions: 1.7.5 + web3-net: 1.7.5 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /web3-utils/1.7.5: + resolution: + { + integrity: sha512-9AqNOziQky4wNQadEwEfHiBdOZqopIHzQQVzmvvv6fJwDSMhP+khqmAZC7YTiGjs0MboyZ8tWNivqSO1699XQw==, + } + engines: { node: ">=8.0.0" } + dependencies: + bn.js: 5.2.1 + ethereum-bloom-filters: 1.0.10 + ethereumjs-util: 7.1.5 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + utf8: 3.0.0 + dev: false + + /web3/1.7.5: + resolution: + { + integrity: sha512-3jHZTWyXt975AOXgnZKayiSWDLpoSKk9fZtLk1hURQtt7AdSbXPT8AK9ooBCm0Dt3GYaOeNcHGaiHC3gtyqhLg==, + } + engines: { node: ">=8.0.0" } + requiresBuild: true + dependencies: + web3-bzz: 1.7.5 + web3-core: 1.7.5 + web3-eth: 1.7.5 + web3-eth-personal: 1.7.5 + web3-net: 1.7.5 + web3-shh: 1.7.5 + web3-utils: 1.7.5 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /webcrypto-core/1.7.5: + resolution: + { + integrity: sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==, + } + dependencies: + "@peculiar/asn1-schema": 2.3.0 + "@peculiar/json-schema": 1.1.12 + asn1js: 3.0.5 + pvtsutils: 1.3.2 + tslib: 2.4.0 + dev: false + + /webcrypto-shim/0.1.7: + resolution: + { + integrity: sha512-JAvAQR5mRNRxZW2jKigWMjCMkjSdmP5cColRP1U/pTg69VgHXEi1orv5vVpJ55Zc5MIaPc1aaurzd9pjv2bveg==, + } + dev: false + + /webidl-conversions/3.0.1: + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } + dev: false + + /webidl-conversions/5.0.0: + resolution: + { + integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==, + } + engines: { node: ">=8" } + dev: false + + /websocket/1.0.34: + resolution: + { + integrity: sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==, + } + engines: { node: ">=4.0.0" } + dependencies: + bufferutil: 4.0.6 + debug: 2.6.9 + es5-ext: 0.10.62 + typedarray-to-buffer: 3.1.5 + utf-8-validate: 5.0.9 + yaeti: 0.0.6 + transitivePeerDependencies: + - supports-color + dev: false + + /whatwg-url-without-unicode/8.0.0-3: + resolution: + { + integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==, + } + engines: { node: ">=10" } + dependencies: + buffer: 5.7.1 + punycode: 2.1.1 + webidl-conversions: 5.0.0 + dev: false + + /whatwg-url/5.0.0: + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: false + + /which-boxed-primitive/1.0.2: + resolution: + { + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, + } + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + + /which-module/2.0.0: + resolution: + { + integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==, + } + dev: false + + /which-typed-array/1.1.8: + resolution: + { + integrity: sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==, + } + engines: { node: ">= 0.4" } + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-abstract: 1.20.1 + for-each: 0.3.3 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.9 + dev: false + + /which/2.0.2: + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: ">= 8" } + hasBin: true + dependencies: + isexe: 2.0.0 + + /wide-align/1.1.5: + resolution: + { + integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==, + } + dependencies: + string-width: 1.0.2 + dev: false + + /wif/2.0.6: + resolution: + { + integrity: sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==, + } + dependencies: + bs58check: 2.1.2 + dev: false + + /word-wrap/1.2.3: + resolution: + { + integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, + } + engines: { node: ">=0.10.0" } + dev: true + + /wrap-ansi/6.2.0: + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, + } + engines: { node: ">=8" } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + + /wrap-ansi/7.0.0: + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: ">=10" } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + + /wrappy/1.0.2: + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } + + /ws/3.3.3: + resolution: + { + integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==, + } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dependencies: + async-limiter: 1.0.1 + safe-buffer: 5.1.2 + ultron: 1.1.1 + dev: false + + /ws/7.4.6: + resolution: + { + integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==, + } + engines: { node: ">=8.3.0" } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /ws/7.5.3: + resolution: + { + integrity: sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==, + } + engines: { node: ">=8.3.0" } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /ws/7.5.9: + resolution: + { + integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, + } + engines: { node: ">=8.3.0" } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /ws/8.2.3: + resolution: + { + integrity: sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==, + } + engines: { node: ">=10.0.0" } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /ws/8.8.1_22kvxa7zeyivx4jp72v2w3pkvy: + resolution: + { + integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==, + } + engines: { node: ">=10.0.0" } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dependencies: + bufferutil: 4.0.6 + utf-8-validate: 5.0.9 + dev: false + + /xhr-request-promise/0.1.3: + resolution: + { + integrity: sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==, + } + dependencies: + xhr-request: 1.1.0 + dev: false + + /xhr-request/1.1.0: + resolution: + { + integrity: sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==, + } + dependencies: + buffer-to-arraybuffer: 0.0.5 + object-assign: 4.1.1 + query-string: 5.1.1 + simple-get: 2.8.2 + timed-out: 4.0.1 + url-set-query: 1.0.0 + xhr: 2.6.0 + dev: false + + /xhr/2.6.0: + resolution: + { + integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==, + } + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.5 + xtend: 4.0.2 + dev: false + + /xmlhttprequest-ssl/2.0.0: + resolution: + { + integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==, + } + engines: { node: ">=0.4.0" } + dev: false + + /xmlhttprequest/1.8.0: + resolution: + { + integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==, + } + engines: { node: ">=0.4.0" } + dev: false + + /xtend/4.0.2: + resolution: + { + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, + } + engines: { node: ">=0.4" } + dev: false + + /y18n/4.0.3: + resolution: + { + integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, + } + dev: false + + /y18n/5.0.8: + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: ">=10" } + dev: false + + /yaeti/0.0.6: + resolution: + { + integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==, + } + engines: { node: ">=0.10.32" } + dev: false + + /yallist/3.1.1: + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } + dev: false + + /yallist/4.0.0: + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } + + /yargs-parser/18.1.3: + resolution: + { + integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, + } + engines: { node: ">=6" } + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: false + + /yargs-parser/20.2.9: + resolution: + { + integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, + } + engines: { node: ">=10" } + dev: false + + /yargs/15.4.1: + resolution: + { + integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==, + } + engines: { node: ">=8" } + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: false + + /yargs/16.2.0: + resolution: + { + integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, + } + engines: { node: ">=10" } + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: false + + /yn/3.1.1: + resolution: + { + integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, + } + engines: { node: ">=6" } + dev: false + + /yocto-queue/0.1.0: + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: ">=10" } + dev: false + optional: true + + github.com/xp-network/XP.network-HECO-Migration/65b3d13fb814ec8d8c4ea847c5915d763c0fec6f: + resolution: + { + tarball: https://codeload.github.com/xp-network/XP.network-HECO-Migration/tar.gz/65b3d13fb814ec8d8c4ea847c5915d763c0fec6f, + } + name: xpnet-web3-contracts + version: 0.1.0 + dependencies: + ethers: 5.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + github.com/xp-network/exchange-rate/969f919deec6ee487e4c1b6213f77fe4f6f32eb1: + resolution: + { + tarball: https://codeload.github.com/xp-network/exchange-rate/tar.gz/969f919deec6ee487e4c1b6213f77fe4f6f32eb1, + } + name: crypto-exchange-rate + version: 1.0.0 + engines: { node: ">=10" } + dependencies: + axios: 0.21.4 + transitivePeerDependencies: + - debug + dev: false diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index e39ba2c6f..9b53d47cb 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -14,7 +14,7 @@ import { TronWeb } from "tronweb"; // @ts-expect-error no types cope import TronStation from "tronstation"; import { EthNftInfo, MintArgs } from "./web3"; -import { BigNumber as EthBN } from "@ethersproject/bignumber/lib/bignumber"; +import { BigNumber as EthBN } from "ethers"; import { Minter__factory, diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index f3d16cb75..000000000 --- a/yarn.lock +++ /dev/null @@ -1,8398 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@^7.16.7": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7", "@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/runtime@7.11.2": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" - integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== - dependencies: - regenerator-runtime "^0.13.4" - -"@cosmjs/encoding@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.27.1.tgz#3cd5bc0af743485eb2578cdb08cfa84c86d610e1" - integrity sha512-rayLsA0ojHeniaRfWWcqSsrE/T1rl1gl0OXVNtXlPwLJifKBeLEefGbOUiAQaT0wgJ8VNGBazVtAZBpJidfDhw== - dependencies: - base64-js "^1.3.0" - bech32 "^1.1.4" - readonly-date "^1.0.0" - -"@cosmjs/math@0.27.1": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.27.1.tgz#be78857b008ffc6b1ed6fecaa1c4cd5bc38c07d7" - integrity sha512-cHWVjmfIjtRc7f80n7x+J5k8pe+vTVTQ0lA82tIxUgqUvgS6rogPP/TmGtTiZ4+NxWxd11DUISY6gVpr18/VNQ== - dependencies: - bn.js "^5.2.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@dfinity/agent@^0.11.3": - version "0.11.3" - resolved "https://registry.yarnpkg.com/@dfinity/agent/-/agent-0.11.3.tgz#3363b1dbaa10a6e5cfe25e269316e2416fd3d11d" - integrity sha512-pqiogLey6S83SG5BS93hBCtXfGRW6tkxa8Y0c9HwxOP/wRoVEuKHdTcOn7rL/HN4mDTwxkdqK4EC1Kv24S1q4Q== - dependencies: - base64-arraybuffer "^0.2.0" - bignumber.js "^9.0.0" - borc "^2.1.1" - js-sha256 "0.9.0" - simple-cbor "^0.4.1" - -"@dfinity/candid@^0.11.3": - version "0.11.3" - resolved "https://registry.yarnpkg.com/@dfinity/candid/-/candid-0.11.3.tgz#aed66124751545522acf9bde7cdc22b5d9ce31df" - integrity sha512-xX7xNj2lLt7SIlvy0sqNp4fpcTD/xnwEu9APj0tnIF64cnsxIiS12T1Z8jl9g80jCQ1CbRPQf4cfsOfS3Cd2OA== - -"@dfinity/identity@^0.12.2": - version "0.12.2" - resolved "https://registry.yarnpkg.com/@dfinity/identity/-/identity-0.12.2.tgz#297a15cf73ffe29c9334d32946738e8b0a53837e" - integrity sha512-JebcS29x3nsUK+qdF0FNSnx4IQ1xYiFB9mHpbGT3/MFe52s40DxL4CvsaZ8zAjDnusQnTJLzqLWGM7oo0QqwyQ== - dependencies: - "@peculiar/webcrypto" "^1.4.0" - borc "^2.1.1" - js-sha256 "^0.9.0" - secp256k1 "^4.0.2" - ts-node "^10.8.2" - tweetnacl "^1.0.1" - vitest "^0.18.0" - -"@dfinity/nns@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@dfinity/nns/-/nns-0.5.0.tgz#f34244c9b79597edd78bfb8793cca7ac9771c38d" - integrity sha512-zFZswSTRx5VsyuC6cufmHibTXLbIfzhvzitB8X4i6tpGLT/0K7gMpKR6gYsDyG/Gq+aF2Z6CxEfE/RJIGQGbSw== - dependencies: - "@dfinity/agent" "^0.11.3" - "@dfinity/candid" "^0.11.3" - "@dfinity/principal" "^0.11.3" - crc "^4.1.1" - crc-32 "^1.2.2" - google-protobuf "^3.20.1" - js-sha256 "^0.9.0" - randombytes "^2.1.0" - -"@dfinity/principal@^0.11.3": - version "0.11.3" - resolved "https://registry.yarnpkg.com/@dfinity/principal/-/principal-0.11.3.tgz#2130a7673bb8c2d404bc9842136547a91cb3edd2" - integrity sha512-+AJGDJ+RsveybSdxuTQFr2DPNZFpPfXnyixAOFWWdElVniSwnO/SwqQChR0AWvJdy/fKqoAXK+ZzyLG0uqSetA== - -"@elrondnetwork/bls-wasm@0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@elrondnetwork/bls-wasm/-/bls-wasm-0.3.3.tgz#5164a95f39727c53dba877bf43c0374bca9f01eb" - integrity sha512-neCzWRk8pZsOBeAI3+t8jgiSkqj/y4IJPOMKG4ebL1+MiOFayygmfDvfZrK57RSoMWvDfXHlhTL25DrI+EtH+w== - dependencies: - assert "^2.0.0" - perf_hooks "0.0.1" - -"@elrondnetwork/erdjs@9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-9.0.3.tgz#3909874096778d75e622d9f3a661ff690f54ec5d" - integrity sha512-xOBzlFXkx2avMFTrZrgKoSSJbBUlZnSobpDaMzs4hqvUYr/xAN2y+nbMFJqaLcfKxf5ALGolnbqhprHLNfWpEQ== - dependencies: - "@babel/runtime" "7.11.2" - "@elrondnetwork/bls-wasm" "0.3.3" - "@elrondnetwork/hw-app-elrond" "0.3.2" - "@ledgerhq/hw-transport-u2f" "^5.36.0-deprecated" - "@ledgerhq/hw-transport-webhid" "^6.11.2" - "@ledgerhq/hw-transport-webusb" "6.11.2" - "@walletconnect/client" "1.6.5" - abort-controller "3.0.0" - axios "0.24.0" - bech32 "1.1.4" - bignumber.js "9.0.1" - bip39 "3.0.2" - blake2b "2.1.3" - buffer "6.0.3" - ed25519-hd-key "1.1.2" - json-bigint "1.0.0" - json-duplicate-key-handle "1.0.0" - keccak "^3.0.1" - platform "1.3.6" - protobufjs "6.10.2" - qs "6.10.1" - scryptsy "2.1.0" - tweetnacl "1.0.3" - uuid "8.3.2" - -"@elrondnetwork/hw-app-elrond@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@elrondnetwork/hw-app-elrond/-/hw-app-elrond-0.3.2.tgz#3c01cda58a58a63e7e3caf1b36ac8d5909550fb2" - integrity sha512-5TGnKuFQC6g4J9ipqEH5T71TEgGPDyU68lxdiF60qwQO5W0GaYvHKJiKe9rQdra5bCM04/4klMZDAg3BKqRoTw== - dependencies: - "@ledgerhq/hw-transport" "^5.19.1" - "@ledgerhq/hw-transport-node-hid" "^5.19.1" - bip32-path "^0.4.2" - flow-copy-source "^2.0.9" - flow-typed "^3.2.1" - -"@esbuild/linux-loong64@0.14.54": - version "0.14.54" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" - integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== - -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== - dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4": - version "2.6.5" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" - integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.1.5" - -"@ethereumjs/tx@^3.3.2": - version "3.5.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" - integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== - dependencies: - "@ethereumjs/common" "^2.6.4" - ethereumjs-util "^7.1.5" - -"@ethersproject/abi@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" - integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== - dependencies: - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/abi@5.6.4", "@ethersproject/abi@^5.6.3": - version "5.6.4" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.4.tgz#f6e01b6ed391a505932698ecc0d9e7a99ee60362" - integrity sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg== - dependencies: - "@ethersproject/address" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/hash" "^5.6.1" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.1" - -"@ethersproject/abstract-provider@5.6.1", "@ethersproject/abstract-provider@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz#02ddce150785caf0c77fe036a0ebfcee61878c59" - integrity sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ== - dependencies: - "@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" - -"@ethersproject/abstract-signer@5.6.2", "@ethersproject/abstract-signer@^5.5.0", "@ethersproject/abstract-signer@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz#491f07fc2cbd5da258f46ec539664713950b0b33" - integrity sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ== - dependencies: - "@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" - -"@ethersproject/address@5.6.1", "@ethersproject/address@^5.5.0", "@ethersproject/address@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.1.tgz#ab57818d9aefee919c5721d28cd31fd95eff413d" - integrity sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q== - dependencies: - "@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/base64@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" - integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - -"@ethersproject/base64@5.6.1", "@ethersproject/base64@^5.5.0", "@ethersproject/base64@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.6.1.tgz#2c40d8a0310c9d1606c2c37ae3092634b41d87cb" - integrity sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw== - dependencies: - "@ethersproject/bytes" "^5.6.1" - -"@ethersproject/basex@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" - integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - -"@ethersproject/basex@5.6.1", "@ethersproject/basex@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.6.1.tgz#badbb2f1d4a6f52ce41c9064f01eab19cc4c5305" - integrity sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/properties" "^5.6.0" - -"@ethersproject/bignumber@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" - integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - bn.js "^4.11.9" - -"@ethersproject/bignumber@5.6.2", "@ethersproject/bignumber@^5.5.0", "@ethersproject/bignumber@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.6.2.tgz#72a0717d6163fab44c47bcc82e0c550ac0315d66" - integrity sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - bn.js "^5.2.1" - -"@ethersproject/bytes@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" - integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/bytes@5.6.1", "@ethersproject/bytes@^5.5.0", "@ethersproject/bytes@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.6.1.tgz#24f916e411f82a8a60412344bf4a813b917eefe7" - integrity sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g== - dependencies: - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/constants@5.6.1", "@ethersproject/constants@^5.5.0", "@ethersproject/constants@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.6.1.tgz#e2e974cac160dd101cf79fdf879d7d18e8cb1370" - integrity sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg== - dependencies: - "@ethersproject/bignumber" "^5.6.2" - -"@ethersproject/contracts@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.6.2.tgz#20b52e69ebc1b74274ff8e3d4e508de971c287bc" - integrity sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g== - dependencies: - "@ethersproject/abi" "^5.6.3" - "@ethersproject/abstract-provider" "^5.6.1" - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/address" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/transactions" "^5.6.2" - -"@ethersproject/hash@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" - integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/hash@5.6.1", "@ethersproject/hash@^5.5.0", "@ethersproject/hash@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.6.1.tgz#224572ea4de257f05b4abf8ae58b03a67e99b0f4" - integrity sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA== - dependencies: - "@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" - -"@ethersproject/hdnode@5.6.2", "@ethersproject/hdnode@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.6.2.tgz#26f3c83a3e8f1b7985c15d1db50dc2903418b2d2" - integrity sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q== - dependencies: - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/basex" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/pbkdf2" "^5.6.1" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/sha2" "^5.6.1" - "@ethersproject/signing-key" "^5.6.2" - "@ethersproject/strings" "^5.6.1" - "@ethersproject/transactions" "^5.6.2" - "@ethersproject/wordlists" "^5.6.1" - -"@ethersproject/json-wallets@5.6.1", "@ethersproject/json-wallets@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz#3f06ba555c9c0d7da46756a12ac53483fe18dd91" - integrity sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ== - dependencies: - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/address" "^5.6.1" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/hdnode" "^5.6.2" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/pbkdf2" "^5.6.1" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.1" - "@ethersproject/strings" "^5.6.1" - "@ethersproject/transactions" "^5.6.2" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" - integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - js-sha3 "0.8.0" - -"@ethersproject/keccak256@5.6.1", "@ethersproject/keccak256@^5.5.0", "@ethersproject/keccak256@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.6.1.tgz#b867167c9b50ba1b1a92bccdd4f2d6bd168a91cc" - integrity sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA== - dependencies: - "@ethersproject/bytes" "^5.6.1" - js-sha3 "0.8.0" - -"@ethersproject/logger@5.6.0", "@ethersproject/logger@^5.5.0", "@ethersproject/logger@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" - integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== - -"@ethersproject/networks@5.6.4", "@ethersproject/networks@^5.6.3": - version "5.6.4" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.6.4.tgz#51296d8fec59e9627554f5a8a9c7791248c8dc07" - integrity sha512-KShHeHPahHI2UlWdtDMn2lJETcbtaJge4k7XSjDR9h79QTd6yQJmv6Cp2ZA4JdqWnhszAOLSuJEd9C0PRw7hSQ== - dependencies: - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/pbkdf2@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" - integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - -"@ethersproject/pbkdf2@5.6.1", "@ethersproject/pbkdf2@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz#f462fe320b22c0d6b1d72a9920a3963b09eb82d1" - integrity sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/sha2" "^5.6.1" - -"@ethersproject/properties@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" - integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/properties@5.6.0", "@ethersproject/properties@^5.5.0", "@ethersproject/properties@^5.6.0": - version "5.6.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.6.0.tgz#38904651713bc6bdd5bdd1b0a4287ecda920fa04" - integrity sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg== - dependencies: - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/providers@5.6.8": - version "5.6.8" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.8.tgz#22e6c57be215ba5545d3a46cf759d265bb4e879d" - integrity sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w== - dependencies: - "@ethersproject/abstract-provider" "^5.6.1" - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/address" "^5.6.1" - "@ethersproject/base64" "^5.6.1" - "@ethersproject/basex" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/hash" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/networks" "^5.6.3" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.1" - "@ethersproject/rlp" "^5.6.1" - "@ethersproject/sha2" "^5.6.1" - "@ethersproject/strings" "^5.6.1" - "@ethersproject/transactions" "^5.6.2" - "@ethersproject/web" "^5.6.1" - bech32 "1.1.4" - ws "7.4.6" - -"@ethersproject/random@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" - integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/random@5.6.1", "@ethersproject/random@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.6.1.tgz#66915943981bcd3e11bbd43733f5c3ba5a790255" - integrity sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/rlp@5.6.1", "@ethersproject/rlp@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.6.1.tgz#df8311e6f9f24dcb03d59a2bac457a28a4fe2bd8" - integrity sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/sha2@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" - integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - hash.js "1.1.7" - -"@ethersproject/sha2@5.6.1", "@ethersproject/sha2@^5.5.0", "@ethersproject/sha2@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.6.1.tgz#211f14d3f5da5301c8972a8827770b6fd3e51656" - integrity sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - hash.js "1.1.7" - -"@ethersproject/signing-key@5.6.2", "@ethersproject/signing-key@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.6.2.tgz#8a51b111e4d62e5a62aee1da1e088d12de0614a3" - integrity sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ== - dependencies: - "@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/solidity@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" - integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/solidity@5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.6.1.tgz#5845e71182c66d32e6ec5eefd041fca091a473e2" - integrity sha512-KWqVLkUUoLBfL1iwdzUVlkNqAUIFMpbbeH0rgCfKmJp0vFtY4AsaN91gHKo9ZZLkC4UOm3cI3BmMV4N53BOq4g== - dependencies: - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/sha2" "^5.6.1" - "@ethersproject/strings" "^5.6.1" - -"@ethersproject/strings@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" - integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/strings@5.6.1", "@ethersproject/strings@^5.5.0", "@ethersproject/strings@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.6.1.tgz#dbc1b7f901db822b5cafd4ebf01ca93c373f8952" - integrity sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/transactions@5.6.2", "@ethersproject/transactions@^5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.6.2.tgz#793a774c01ced9fe7073985bb95a4b4e57a6370b" - integrity sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q== - dependencies: - "@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" - -"@ethersproject/units@5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.6.1.tgz#ecc590d16d37c8f9ef4e89e2005bda7ddc6a4e6f" - integrity sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw== - dependencies: - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/constants" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - -"@ethersproject/wallet@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.6.2.tgz#cd61429d1e934681e413f4bc847a5f2f87e3a03c" - integrity sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg== - dependencies: - "@ethersproject/abstract-provider" "^5.6.1" - "@ethersproject/abstract-signer" "^5.6.2" - "@ethersproject/address" "^5.6.1" - "@ethersproject/bignumber" "^5.6.2" - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/hash" "^5.6.1" - "@ethersproject/hdnode" "^5.6.2" - "@ethersproject/json-wallets" "^5.6.1" - "@ethersproject/keccak256" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/random" "^5.6.1" - "@ethersproject/signing-key" "^5.6.2" - "@ethersproject/transactions" "^5.6.2" - "@ethersproject/wordlists" "^5.6.1" - -"@ethersproject/web@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" - integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== - dependencies: - "@ethersproject/base64" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/web@5.6.1", "@ethersproject/web@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.6.1.tgz#6e2bd3ebadd033e6fe57d072db2b69ad2c9bdf5d" - integrity sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA== - dependencies: - "@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" - -"@ethersproject/wordlists@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" - integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/wordlists@5.6.1", "@ethersproject/wordlists@^5.6.1": - version "5.6.1" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.6.1.tgz#1e78e2740a8a21e9e99947e47979d72e130aeda1" - integrity sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw== - dependencies: - "@ethersproject/bytes" "^5.6.1" - "@ethersproject/hash" "^5.6.1" - "@ethersproject/logger" "^5.6.0" - "@ethersproject/properties" "^5.6.0" - "@ethersproject/strings" "^5.6.1" - -"@grpc/grpc-js@^1.5.3": - version "1.6.10" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.10.tgz#b6584c59ef90aa76d878ac92c21785e602f247ff" - integrity sha512-XTX5z/P5kH802MDoVm/rqOil0UwYEOEjf9+NPgfmm5UINIxDzwYaXfVR6z8svCBG8Hlbu/FzkXqhP8J5xaWzSQ== - dependencies: - "@grpc/proto-loader" "^0.7.0" - "@types/node" ">=12.12.47" - -"@grpc/proto-loader@^0.7.0": - version "0.7.2" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.2.tgz#fa63178853afe1473c50cff89fe572f7c8b20154" - integrity sha512-jCdyLIT/tdQ1zhrbTQnJNK5nbDf0GoBpy5jVNywBzzMDF+Vs6uEaHnfz46dMtDxkvwrF2hzk5Z67goliceH0sA== - dependencies: - "@types/long" "^4.0.1" - lodash.camelcase "^4.3.0" - long "^4.0.0" - protobufjs "^7.0.0" - yargs "^16.2.0" - -"@hapi/hoek@^9.0.0": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" - integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== - -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@hashgraph/cryptography@^1.1.0-beta.5": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@hashgraph/cryptography/-/cryptography-1.4.0.tgz#c97364f7352e80b2d4e6b60d40691d9b550757d9" - integrity sha512-NtDmeuwaWJKBDYZd+g/etAD56p/RPUuZGdT9jhXxiFW0YrKCaU1k4ramICbRaJg7E+RDSFJXJLarh0G72z5YDA== - dependencies: - bignumber.js "^9.0.2" - crypto-js "^4.1.1" - elliptic "^6.5.4" - js-base64 "^3.7.2" - tweetnacl "^1.0.3" - utf8 "^3.0.0" - -"@hashgraph/hethers@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@hashgraph/hethers/-/hethers-1.1.2.tgz#f665b0068b9ec5423181ce6cc2f07db096174732" - integrity sha512-DezQCwm86oQCIXfDwJI6G+/RI0YPy9a/Ho/z3CRUSY9/1gBB0ZFRSK9HUovlrj30eyNtWVeIrHsYE+ZerQI5rQ== - dependencies: - "@ethersproject/solidity" "5.5.0" - "@hethers/abstract-provider" "1.1.1" - "@hethers/abstract-signer" "1.1.2" - "@hethers/address" "1.1.0" - "@hethers/constants" "1.1.0" - "@hethers/contracts" "1.1.1" - "@hethers/hdnode" "1.1.1" - "@hethers/json-wallets" "1.1.1" - "@hethers/logger" "1.1.0" - "@hethers/networks" "1.1.0" - "@hethers/providers" "1.1.1" - "@hethers/signing-key" "1.1.0" - "@hethers/transactions" "1.1.1" - "@hethers/units" "1.1.0" - "@hethers/wallet" "1.1.1" - -"@hashgraph/proto@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@hashgraph/proto/-/proto-2.1.5.tgz#665202dc2c0fe099a5a07018bc82a409cb0933be" - integrity sha512-7iKO98T3iS+V+Ddy3Ew7+u8nzFT8MjRs6HczPE2scCjwKRhsodtYfGyOxVji+HN6WDqZmylr1VJwhNy5de/CRQ== - dependencies: - long "^4.0.0" - protobufjs "^6.11.2" - -"@hashgraph/sdk@2.11.0-beta.1": - version "2.11.0-beta.1" - resolved "https://registry.yarnpkg.com/@hashgraph/sdk/-/sdk-2.11.0-beta.1.tgz#bc2d2dbc2c8768c78836dcaf108ec624887578d7" - integrity sha512-rpUSg0c580paop1uOvHhUFt7WGnDuvqC0iDpBr0Bp2jTOhgL12AOG5sF0RF/bEQfwAdsizgRBTT24xhmk07yhA== - dependencies: - "@grpc/grpc-js" "^1.5.3" - "@hashgraph/cryptography" "^1.1.0-beta.5" - "@hashgraph/proto" "2.1.5" - bignumber.js "^9.0.2" - crypto-js "^4.1.1" - js-base64 "^3.7.2" - js-logger "^1.6.1" - long "^4.0.0" - protobufjs "^6.11.2" - utf8 "^3.0.0" - -"@hethers/abstract-provider@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/abstract-provider/-/abstract-provider-1.1.1.tgz#1f1f946f5970cd56dd9a46b09dfaa0f66e8074a6" - integrity sha512-s3u4Cu2qpdWgLh7oYf/evCFk7sgZYlaaIhje6BMXFN+jOKgWWQA6MSECqHSc6h9p9eNEsKt1HmM7yWClikrzyQ== - dependencies: - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/web" "5.5.0" - "@hethers/logger" "1.1.0" - "@hethers/networks" "1.1.0" - "@hethers/transactions" "1.1.1" - -"@hethers/abstract-signer@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.1.tgz#60d95c45811bad09c5eda9236b7ba3b9935c65bb" - integrity sha512-g6NyaC/Fwj+l30MqMudKRgL/zNJUcHFdJ5ZdRJAeJaOVBRl7Za3X/2Fz9/A1YJocnhvZFBygq67fl25a+1aKYw== - dependencies: - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@hethers/abstract-provider" "1.1.1" - "@hethers/address" "1.1.0" - "@hethers/logger" "1.1.0" - "@hethers/transactions" "1.1.1" - -"@hethers/abstract-signer@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.2.tgz#f42d02b1d5763b77535ad5236174c476a4e9357d" - integrity sha512-F66cbneTByr/BlfXvXsZ1wfjxXAa1daTMV0YNWrBgsjuT/xZxyqfuEMCNeHVYSd91S7gNlGGdGcEqKcqlJpVew== - dependencies: - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@hethers/abstract-provider" "1.1.1" - "@hethers/address" "1.1.0" - "@hethers/logger" "1.1.0" - "@hethers/transactions" "1.1.1" - -"@hethers/address@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@hethers/address/-/address-1.1.0.tgz#2b7f7d49524f211f12f27eedef68ed75cfebab53" - integrity sha512-aqZvvLe9n0Tc72aAGgjTR9NWLV+rcL9ORq9GOh9tuQ4GeY4XLT1vcI+liXMpjvDxAgEXfsgUWPW9MsZ7DOHSmA== - dependencies: - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@hethers/logger" "1.1.0" - -"@hethers/constants@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@hethers/constants/-/constants-1.1.0.tgz#7c8b31e93b2e3ae77377880f66cb9ca23f9014cf" - integrity sha512-cto4CMH5bbLdzKyIHnBVx7aW1bipi92u94PBvXD3+EEdYgWMMSFhsAhNtpRo0YNovfG6Vqi5eqs+JM71bncnGw== - dependencies: - "@ethersproject/bignumber" "5.5.0" - -"@hethers/contracts@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/contracts/-/contracts-1.1.1.tgz#5f56f2741d46b810476f7d0a39b3c1f7a4019722" - integrity sha512-72zte2dgoLBnsf5DU1YtfbWvQ9OZh6S1qdBdRCxaNBc/3p0lTuxPWcerIuLeKV/HtDKnwSU4mYIoO46FWyZ2eA== - dependencies: - "@ethersproject/abi" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@hethers/abstract-provider" "1.1.1" - "@hethers/abstract-signer" "1.1.1" - "@hethers/address" "1.1.0" - "@hethers/logger" "1.1.0" - "@hethers/providers" "1.1.1" - "@hethers/transactions" "1.1.1" - -"@hethers/hdnode@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/hdnode/-/hdnode-1.1.1.tgz#9c2a53f496b405ae8636dabeecf62bcd6b99c365" - integrity sha512-/yECuQAUaCGIhcDG3x81XJOH6nDwahfMpSq7B7AWl+buS7tswBF9fYwAD/G9SzgnjB9LlIaBWCJcK1/Z5sU39g== - dependencies: - "@ethersproject/basex" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/pbkdf2" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/sha2" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@ethersproject/wordlists" "5.5.0" - "@hethers/abstract-signer" "1.1.1" - "@hethers/logger" "1.1.0" - "@hethers/signing-key" "1.1.0" - "@hethers/transactions" "1.1.1" - -"@hethers/json-wallets@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/json-wallets/-/json-wallets-1.1.1.tgz#8746dada5206e9ef819056ae856fdffe20de70d9" - integrity sha512-GtEHrKex0B0u3EdTX6tYrMpYESvS1zZNraE1Q/gFyWpB/VmwEze2aUApdcEDnWiOJOvZhg5E8QOaSZeHzMS0SQ== - dependencies: - "@ethersproject/bytes" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/pbkdf2" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/random" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@hethers/abstract-signer" "1.1.1" - "@hethers/address" "1.1.0" - "@hethers/hdnode" "1.1.1" - "@hethers/logger" "1.1.0" - "@hethers/transactions" "1.1.1" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@hethers/logger@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@hethers/logger/-/logger-1.1.0.tgz#946017e30fd6b573f744d9bc76d005dd07e39549" - integrity sha512-EZAM5kirlNobe6auj7AUS1QyNOxunm9ZglatkC0fIx+9y4tEQsrx4asu5r2SPg1fgZiJ9mk2DbaidMWuHSr3kA== - -"@hethers/networks@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@hethers/networks/-/networks-1.1.0.tgz#55011e436566a0e34c8e3cab81ffd7eb16f709d0" - integrity sha512-xtS+5KHlyXND+1CbUCeMPJrqlyDk7ayhcxeAKSc7aHyHm1/wa3xI45W6tJj+AMDC8sGS5GZvAU3YrKSkUGTFdw== - dependencies: - "@hethers/address" "1.1.0" - "@hethers/logger" "1.1.0" - -"@hethers/providers@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/providers/-/providers-1.1.1.tgz#4dd374a75aeb99a03e93859b22d6f859dede8ec4" - integrity sha512-6CdwiB7GVD7tFm7G1mLemoVKgZ8KNiQvTTEyFxqazRFW6G8unVW07S104+hq/jfVL2eMoZP0O3LZLD+ny5Jelg== - dependencies: - "@ethersproject/base64" "5.5.0" - "@ethersproject/basex" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/hash" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/random" "5.5.0" - "@ethersproject/sha2" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@ethersproject/web" "5.5.0" - "@hashgraph/proto" "2.1.5" - "@hashgraph/sdk" "2.11.0-beta.1" - "@hethers/abstract-provider" "1.1.1" - "@hethers/abstract-signer" "1.1.1" - "@hethers/address" "1.1.0" - "@hethers/constants" "1.1.0" - "@hethers/logger" "1.1.0" - "@hethers/networks" "1.1.0" - "@hethers/transactions" "1.1.1" - "@types/axios" "^0.14.0" - axios "^0.24.0" - bech32 "1.1.4" - ws "7.4.6" - -"@hethers/signing-key@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@hethers/signing-key/-/signing-key-1.1.0.tgz#796c450d1245552db74bfb34778ff71ce18fbff9" - integrity sha512-Xf+0a2DI3hLcnx2reFO5B7+JSwJMNc9iyb1iWtxi0h6dgrHIF5h0bdRJXSY8a19953hZ6jhDvk5RwEzDaamUqw== - dependencies: - "@ethersproject/bytes" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@hethers/logger" "1.1.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.7" - -"@hethers/transactions@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/transactions/-/transactions-1.1.1.tgz#9e6bfa02547bede017065647eede0d49c1e3c23e" - integrity sha512-M4EL3l/xJ3MmtWSQEm8ZpD9LJUd9LPEi106VfBEL/ns/xcTW6wRlIw+xwLHdqDibZ8/Niu8SYN18LbHp/zY6ng== - dependencies: - "@ethersproject/base64" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@hethers/address" "1.1.0" - "@hethers/constants" "1.1.0" - "@hethers/logger" "1.1.0" - "@hethers/signing-key" "1.1.0" - -"@hethers/units@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@hethers/units/-/units-1.1.0.tgz#765cab6f4aa3fdb21687c6e4bd62a5587e98044c" - integrity sha512-FNxIQalKF4TbgtpEicN9U0HPjlIhnXF1iNouxy1QzQVt58j+elJ6pj7d6Ht5LtwTW/UogGfx95803DZFXqrIhw== - dependencies: - "@ethersproject/bignumber" "5.5.0" - "@hethers/logger" "1.1.0" - -"@hethers/wallet@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@hethers/wallet/-/wallet-1.1.1.tgz#f1eddf7e4a77b821faa85392745ef404655e9f96" - integrity sha512-tg6vrjZL1t1FQziCat7zBx2IjqfFbWsQv5WwZkHPjn7Y/lFzmZuVYdh90t7/p3rquC96VGdmqYa/557qdotzRw== - dependencies: - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/hash" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/random" "5.5.0" - "@ethersproject/wordlists" "5.5.0" - "@hashgraph/sdk" "2.11.0-beta.1" - "@hethers/abstract-provider" "1.1.1" - "@hethers/abstract-signer" "1.1.1" - "@hethers/address" "1.1.0" - "@hethers/hdnode" "1.1.1" - "@hethers/json-wallets" "1.1.1" - "@hethers/logger" "1.1.0" - "@hethers/signing-key" "1.1.0" - "@hethers/transactions" "1.1.1" - -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== - dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@improbable-eng/grpc-web-node-http-transport@0.15.0": - version "0.15.0" - resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz#5a064472ef43489cbd075a91fb831c2abeb09d68" - integrity sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA== - -"@improbable-eng/grpc-web@0.15.0": - version "0.15.0" - resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz#3e47e9fdd90381a74abd4b7d26e67422a2a04bef" - integrity sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg== - dependencies: - browser-headers "^0.4.1" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@json-rpc-tools/types@^1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@json-rpc-tools/types/-/types-1.7.6.tgz#5abd5fde01364a130c46093b501715bcce5bdc0e" - integrity sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ== - dependencies: - keyvaluestorage-interface "^1.0.0" - -"@json-rpc-tools/utils@^1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@json-rpc-tools/utils/-/utils-1.7.6.tgz#67f04987dbaa2e7adb6adff1575367b75a9a9ba1" - integrity sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw== - dependencies: - "@json-rpc-tools/types" "^1.7.6" - "@pedrouid/environment" "^1.0.1" - -"@ledgerhq/devices@^5.48.0", "@ledgerhq/devices@^5.51.1": - version "5.51.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" - integrity sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA== - dependencies: - "@ledgerhq/errors" "^5.50.0" - "@ledgerhq/logs" "^5.50.0" - rxjs "6" - semver "^7.3.5" - -"@ledgerhq/devices@^6.11.2": - version "6.27.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-6.27.1.tgz#3b13ab1d1ba8201e9e74a08f390560483978c962" - integrity sha512-jX++oy89jtv7Dp2X6gwt3MMkoajel80JFWcdc0HCouwDsV1mVJ3SQdwl/bQU0zd8HI6KebvUP95QTwbQLLK/RQ== - dependencies: - "@ledgerhq/errors" "^6.10.0" - "@ledgerhq/logs" "^6.10.0" - rxjs "6" - semver "^7.3.5" - -"@ledgerhq/devices@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-7.0.0.tgz#ba743aa6d0725562e8b1bd5c4f0b7db2cf573710" - integrity sha512-vq4B33WdU0dRAJIRFWZMj6w1W1yw1i4mekCmhk7N9wPaFrtGWZ2iI9WDihsNOBooCWKQe8Jsb9eD8RVThbSlFQ== - dependencies: - "@ledgerhq/errors" "^6.10.1" - "@ledgerhq/logs" "^6.10.0" - rxjs "6" - semver "^7.3.5" - -"@ledgerhq/errors@^5.34.0", "@ledgerhq/errors@^5.48.0", "@ledgerhq/errors@^5.50.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" - integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== - -"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.10.1": - version "6.10.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.10.1.tgz#510688251b6261744c6b1cde6cfd2dfb13fc27b2" - integrity sha512-92d1zRQleR1AQ4CAXgWgDtKUms+8EwShLVUcajI+BLWvgJ1Vclmq6PsBIDEQbsm+riVu/Ji3LcHdmgFgmi0VGw== - -"@ledgerhq/hw-transport-node-hid-noevents@^5.51.1": - version "5.51.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.51.1.tgz#71f37f812e448178ad0bcc2258982150d211c1ab" - integrity sha512-9wFf1L8ZQplF7XOY2sQGEeOhpmBRzrn+4X43kghZ7FBDoltrcK+s/D7S+7ffg3j2OySyP6vIIIgloXylao5Scg== - dependencies: - "@ledgerhq/devices" "^5.51.1" - "@ledgerhq/errors" "^5.50.0" - "@ledgerhq/hw-transport" "^5.51.1" - "@ledgerhq/logs" "^5.50.0" - node-hid "2.1.1" - -"@ledgerhq/hw-transport-node-hid@^5.19.1": - version "5.51.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.51.1.tgz#fe8eb81e18929663540698c80905952cdbe542d5" - integrity sha512-Y2eVCCdhVs2Lfr7N2x2cNb+ogcZ24ZATO4QxaQ7LogjiPwYmzmvuXFn8zFjMSrKUCn9CtbptXcuiu0NkGsjWlw== - dependencies: - "@ledgerhq/devices" "^5.51.1" - "@ledgerhq/errors" "^5.50.0" - "@ledgerhq/hw-transport" "^5.51.1" - "@ledgerhq/hw-transport-node-hid-noevents" "^5.51.1" - "@ledgerhq/logs" "^5.50.0" - lodash "^4.17.21" - node-hid "2.1.1" - usb "^1.7.0" - -"@ledgerhq/hw-transport-u2f@^5.36.0-deprecated": - version "5.36.0-deprecated" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.36.0-deprecated.tgz#66e3ed399a117a1c0110871a055dd54f5fe707fd" - integrity sha512-T/+mGHIiUK/ZQATad6DMDmobCMZ1mVST952009jKzhaE1Et2Uy2secU+QhRkx3BfEAkvwa0zSRSYCL9d20Iqjg== - dependencies: - "@ledgerhq/errors" "^5.34.0" - "@ledgerhq/hw-transport" "^5.34.0" - "@ledgerhq/logs" "^5.30.0" - u2f-api "0.2.7" - -"@ledgerhq/hw-transport-web-ble@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-web-ble/-/hw-transport-web-ble-5.48.0.tgz#41b29293c263d8ed4200037eb6da4db3bd4268a6" - integrity sha512-ezgssFvxc4/UbfwIxwg9jEn0/yiND8TW6bDkaE3kAqKCa8ZYYgFtms8iRqjTOJlqcbSYkudbNhP74jtY0NxfdA== - dependencies: - "@ledgerhq/devices" "^5.48.0" - "@ledgerhq/errors" "^5.48.0" - "@ledgerhq/hw-transport" "^5.48.0" - "@ledgerhq/logs" "^5.48.0" - rxjs "^6.6.7" - -"@ledgerhq/hw-transport-webhid@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-5.48.0.tgz#aab2cffac3d5c97b04f093e2a0cbfe311dfdeab4" - integrity sha512-g6TYxgPX3MqP3jQ4SJaJjlM+2SwUSk4Si/9MeKLwz5ySbiD3bSTh/Gbzv8VBCaHPO4fILujc5vW/xejJuMzR8w== - dependencies: - "@ledgerhq/devices" "^5.48.0" - "@ledgerhq/errors" "^5.48.0" - "@ledgerhq/hw-transport" "^5.48.0" - "@ledgerhq/logs" "^5.48.0" - -"@ledgerhq/hw-transport-webhid@^6.11.2": - version "6.27.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.2.tgz#e3ee2501b1353a335d7436c1f2b95821d2b2f426" - integrity sha512-ZlyNheUhcxBZqjJzhSfJfeGQvNbeyWs9866rdQjVeG1zsbTJi0+6tfRv8J248QISS8vHtG5IMSxgMg9mtux9dQ== - dependencies: - "@ledgerhq/devices" "^7.0.0" - "@ledgerhq/errors" "^6.10.1" - "@ledgerhq/hw-transport" "^6.27.2" - "@ledgerhq/logs" "^6.10.0" - -"@ledgerhq/hw-transport-webusb@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-5.48.0.tgz#62e5bffffba853d4e06103f7c8e9b6c87ca0f994" - integrity sha512-tO+p11aRQx9q9ifmi/NCbCBKQ738lp+PROy1BWSzjCJcUEz1sKTLeRTLE2Xze25KebhuM2YR1NgkX5LN1z4upA== - dependencies: - "@ledgerhq/devices" "^5.48.0" - "@ledgerhq/errors" "^5.48.0" - "@ledgerhq/hw-transport" "^5.48.0" - "@ledgerhq/logs" "^5.48.0" - -"@ledgerhq/hw-transport-webusb@6.11.2": - version "6.11.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-6.11.2.tgz#d190709881e50f8c271efe956705b05e46b4649d" - integrity sha512-ReiYoypXybLQi1ekA+YQqsvbSj0wwTFH7Lg690eUkqZydjDd4lMjpZk7lDczsXp3wxTjE/mdAQ0bpNwZWmPTJw== - dependencies: - "@ledgerhq/devices" "^6.11.2" - "@ledgerhq/errors" "^6.10.0" - "@ledgerhq/hw-transport" "^6.11.2" - "@ledgerhq/logs" "^6.10.0" - -"@ledgerhq/hw-transport@^5.19.1", "@ledgerhq/hw-transport@^5.34.0", "@ledgerhq/hw-transport@^5.48.0", "@ledgerhq/hw-transport@^5.51.1": - version "5.51.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz#8dd14a8e58cbee4df0c29eaeef983a79f5f22578" - integrity sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw== - dependencies: - "@ledgerhq/devices" "^5.51.1" - "@ledgerhq/errors" "^5.50.0" - events "^3.3.0" - -"@ledgerhq/hw-transport@^6.11.2", "@ledgerhq/hw-transport@^6.27.2": - version "6.27.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.2.tgz#318e24b13b4bc392277d0b3b6fbc568f86b41f01" - integrity sha512-GF4pmK78rEKhZfbmunwQ131c+0MGa6L5IoYlwgFcg6CaFpUjjPiTCKUFsm4flsE0Z0Ltn9QuKoe+xEHULo7rGA== - dependencies: - "@ledgerhq/devices" "^7.0.0" - "@ledgerhq/errors" "^6.10.1" - events "^3.3.0" - -"@ledgerhq/logs@^5.30.0", "@ledgerhq/logs@^5.48.0", "@ledgerhq/logs@^5.50.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" - integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== - -"@ledgerhq/logs@^6.10.0": - version "6.10.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.0.tgz#c012c1ecc1a0e53d50e6af381618dca5268461c1" - integrity sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw== - -"@noble/hashes@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.0.0.tgz#d5e38bfbdaba174805a4e649f13be9a9ed3351ae" - integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== - -"@noble/secp256k1@1.6.3": - version "1.6.3" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" - integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== - dependencies: - "@octokit/types" "^6.0.3" - -"@octokit/core@^3.5.1": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" - integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== - dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.3" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== - dependencies: - "@octokit/types" "^6.0.3" - is-plain-object "^5.0.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^4.5.8": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== - dependencies: - "@octokit/request" "^5.6.0" - "@octokit/types" "^6.0.3" - universal-user-agent "^6.0.0" - -"@octokit/openapi-types@^12.11.0": - version "12.11.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" - integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== - -"@octokit/plugin-paginate-rest@^2.16.8": - version "2.21.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" - integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== - dependencies: - "@octokit/types" "^6.40.0" - -"@octokit/plugin-request-log@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" - integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== - -"@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.16.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" - integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== - dependencies: - "@octokit/types" "^6.39.0" - deprecation "^2.3.1" - -"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== - dependencies: - "@octokit/types" "^6.0.3" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": - version "5.6.3" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" - integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== - dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.1.0" - "@octokit/types" "^6.16.1" - is-plain-object "^5.0.0" - node-fetch "^2.6.7" - universal-user-agent "^6.0.0" - -"@octokit/rest@^18.12.0": - version "18.12.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" - integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== - dependencies: - "@octokit/core" "^3.5.1" - "@octokit/plugin-paginate-rest" "^2.16.8" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^5.12.0" - -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0": - version "6.41.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" - integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== - dependencies: - "@octokit/openapi-types" "^12.11.0" - -"@osmonauts/helpers@0.3.8": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@osmonauts/helpers/-/helpers-0.3.8.tgz#77a57cdd20922cd477f21de9662a403620e2c848" - integrity sha512-6xM/DGjLctziRVT2DuR7/MQ/HqfHAcqOaGF4z77Jeh3RWQ78zWiaRVxBefRQdKaqrh5LhXL6VebUdiy9IGwTTA== - dependencies: - "@babel/runtime" "^7.18.3" - long "^5.2.0" - protobufjs "^6.11.3" - -"@peculiar/asn1-schema@^2.1.6": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.0.tgz#5368416eb336138770c692ffc2bab119ee3ae917" - integrity sha512-DtNLAG4vmDrdSJFPe7rypkcj597chNQL7u+2dBtYo5mh7VW2+im6ke+O0NVr8W1f4re4C3F71LhoMb0Yxqa48Q== - dependencies: - asn1js "^3.0.5" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -"@peculiar/json-schema@^1.1.12": - version "1.1.12" - resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" - integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== - dependencies: - tslib "^2.0.0" - -"@peculiar/webcrypto@^1.0.22", "@peculiar/webcrypto@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.0.tgz#f941bd95285a0f8a3d2af39ccda5197b80cd32bf" - integrity sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg== - dependencies: - "@peculiar/asn1-schema" "^2.1.6" - "@peculiar/json-schema" "^1.1.12" - pvtsutils "^1.3.2" - tslib "^2.4.0" - webcrypto-core "^1.7.4" - -"@pedrouid/environment@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" - integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== - -"@project-serum/anchor@^0.25.0-beta.1": - version "0.25.0" - resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.25.0.tgz#88ee4843336005cf5a64c80636ce626f0996f503" - integrity sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A== - dependencies: - "@project-serum/borsh" "^0.2.5" - "@solana/web3.js" "^1.36.0" - base64-js "^1.5.1" - bn.js "^5.1.2" - bs58 "^4.0.1" - buffer-layout "^1.2.2" - camelcase "^5.3.1" - cross-fetch "^3.1.5" - crypto-hash "^1.3.0" - eventemitter3 "^4.0.7" - js-sha256 "^0.9.0" - pako "^2.0.3" - snake-case "^3.0.4" - superstruct "^0.15.4" - toml "^3.0.0" - -"@project-serum/borsh@^0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@project-serum/borsh/-/borsh-0.2.5.tgz#6059287aa624ecebbfc0edd35e4c28ff987d8663" - integrity sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q== - dependencies: - bn.js "^5.1.2" - buffer-layout "^1.2.0" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@randlabs/communication-bridge@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@randlabs/communication-bridge/-/communication-bridge-1.0.0.tgz#9b1c0f440cf88ede8d58eb2ce641982ecb32bea9" - integrity sha512-CuJNwtMTG1LHR1LQNWUPv+8xPUdkRY9p61wGJEp8J/N3q8djmnMySvSQlyVqLBvXsTPKmYc0ZmfXEXCpb5P5Cw== - -"@randlabs/myalgo-connect@^1.1.1": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.2.0.tgz#4a7bd4c8898fc9f3f9c031859512b2517fbd0e8d" - integrity sha512-eUuv90M4LBrdL+A6qTrOqaICeRqmwZKW7JIfgaM6GgmfDopf8ugdK0gA2TuaCvCytA/NahEnsM5+Eup/ngUsLA== - dependencies: - "@randlabs/communication-bridge" "^1.0.0" - -"@sideway/address@^4.1.3": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" - integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" - integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - -"@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - -"@socket.io/component-emitter@~3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" - integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== - -"@solana/buffer-layout-utils@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" - integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/web3.js" "^1.32.0" - bigint-buffer "^1.1.5" - bignumber.js "^9.0.1" - -"@solana/buffer-layout@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz#75b1b11adc487234821c81dfae3119b73a5fd734" - integrity sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ== - dependencies: - buffer "~6.0.3" - -"@solana/spl-token@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.2.0.tgz#329bb6babb5de0f9c40035ddb1657f01a8347acd" - integrity sha512-RWcn31OXtdqIxmkzQfB2R+WpsJOVS6rKuvpxJFjvik2LyODd+WN58ZP3Rpjpro03fscGAkzlFuP3r42doRJgyQ== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/buffer-layout-utils" "^0.2.0" - "@solana/web3.js" "^1.32.0" - start-server-and-test "^1.14.0" - -"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2": - version "1.53.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.53.0.tgz#24a6341e4026fc2b993656141361c54bec917c07" - integrity sha512-QyQDA9U5b+AiTo1ANsj9WihWWECeLv6VRpiTE7xPe5hLYANXZYecnlLglNiEzVgRg/jLvR5DrCISXhHx/mAEJw== - dependencies: - "@babel/runtime" "^7.12.5" - "@ethersproject/sha2" "^5.5.0" - "@solana/buffer-layout" "^4.0.0" - bigint-buffer "^1.1.5" - bn.js "^5.0.0" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.1" - fast-stable-stringify "^1.0.0" - jayson "^3.4.4" - js-sha3 "^0.8.0" - node-fetch "2" - react-native-url-polyfill "^1.3.0" - rpc-websockets "^7.5.0" - secp256k1 "^4.0.2" - superstruct "^0.14.2" - tweetnacl "^1.0.3" - -"@stablelib/binary@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" - integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== - dependencies: - "@stablelib/int" "^1.0.1" - -"@stablelib/blake2b@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/blake2b/-/blake2b-1.0.1.tgz#0045a77e182c4cf3260bc9b533fc4cd5c287f8ea" - integrity sha512-B3KyKoBAjkIFeH7romcF96i+pVFYk7K2SBQ1pZvaxV+epSBXJ+n0C66esUhyz6FF+5FbdQVm77C5fzGFcEZpKA== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/bytes@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" - integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== - -"@stablelib/constant-time@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" - integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== - -"@stablelib/ed25519@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.2.tgz#937a88a2f73a71d9bdc3ea276efe8954776ae0f4" - integrity sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ== - dependencies: - "@stablelib/random" "^1.0.1" - "@stablelib/sha512" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/hash@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" - integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== - -"@stablelib/int@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" - integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== - -"@stablelib/keyagreement@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f" - integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== - dependencies: - "@stablelib/bytes" "^1.0.1" - -"@stablelib/nacl@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@stablelib/nacl/-/nacl-1.0.3.tgz#e1ad2a48c47809e475a07d35692cd41f79e39990" - integrity sha512-ZdDGRo4s6ke2rdhwwna5SAikU48AQRNqPPbJ29ZSC781SMUMPpkixKpyZG+NfYhMkFSJ0ZRlFdKW+/ksmpVHWA== - dependencies: - "@stablelib/poly1305" "^1.0.1" - "@stablelib/random" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - "@stablelib/x25519" "^1.0.2" - "@stablelib/xsalsa20" "^1.0.2" - -"@stablelib/poly1305@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc" - integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== - dependencies: - "@stablelib/constant-time" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/random@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.1.tgz#4357a00cb1249d484a9a71e6054bc7b8324a7009" - integrity sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/salsa20@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@stablelib/salsa20/-/salsa20-1.0.2.tgz#95177331f89a59d1c90f153f53265c925d4de138" - integrity sha512-nfjKzw0KTKrrKBasEP+j7UP4I8Xudom8lVZIBCp0kQNARXq72IlSic0oabg2FC1NU68L4RdHrNJDd8bFwrphYA== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/constant-time" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/sha512@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" - integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/wipe@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" - integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== - -"@stablelib/x25519@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.2.tgz#ae21e2ab668076ec2eb2b4853b82a27fab045fa1" - integrity sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw== - dependencies: - "@stablelib/keyagreement" "^1.0.1" - "@stablelib/random" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/xsalsa20@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@stablelib/xsalsa20/-/xsalsa20-1.0.2.tgz#89efc22a7ba432880ef11d876fdeba13529ccdc4" - integrity sha512-7XdBGbcNgBShmuhDXv1G1WPVCkjZdkb1oPMzSidO7Fve0MHntH6TjFkj5bfLI+aRE+61weO076vYpP/jmaAYog== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/salsa20" "^1.0.2" - "@stablelib/wipe" "^1.0.1" - -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - -"@taquito/http-utils@^13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-13.0.1.tgz#b682b7161ce8011afdea1b06750ad21e15916c63" - integrity sha512-eHzd0HSL3qX6bOOSaQClm+0XmpbSNcJP69uzaBJwfXo7ntQR1bUfGLn6+1Hgsk/lJ0JxakD2PDA4aaeajHvyPw== - dependencies: - axios "^0.26.0" - -"@taquito/local-forging@^13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@taquito/local-forging/-/local-forging-13.0.1.tgz#b87d7d478457d32338cc8e5eeeca072518241595" - integrity sha512-2n1ryUzHBIOHiQYRO7ELQaurjoNhJ3KUUcX0dAnFs3xVxUBugHgDPot+T+1rNZDdLVhTS6mmK796xrWDGnO6xw== - dependencies: - "@taquito/utils" "^13.0.1" - bignumber.js "^9.0.2" - -"@taquito/michel-codec@^13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@taquito/michel-codec/-/michel-codec-13.0.1.tgz#cfadbd5886724b861d82f75b6f679104573dc7bb" - integrity sha512-A9MxhDMdTTK31ty5Ke2wg4wkt7F/Y++tD8wq9YIFJzxt+MkpWX5b2i1f7yHXPsK/81YiGAi/LDamLtLCekY1LA== - -"@taquito/michelson-encoder@^13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@taquito/michelson-encoder/-/michelson-encoder-13.0.1.tgz#75c4650fe5839a64e42d1aac23997402c83a6ac6" - integrity sha512-U80vswMHlEDQUjvARZScIKrSZkIjxdYtDLvHu4oRZ9wTqTXSlj+t64G5QmZwTEJRQkbzfhsOOr6vL40ztL0tzw== - dependencies: - "@taquito/rpc" "^13.0.1" - "@taquito/utils" "^13.0.1" - bignumber.js "^9.0.2" - fast-json-stable-stringify "^2.1.0" - -"@taquito/rpc@^13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@taquito/rpc/-/rpc-13.0.1.tgz#bf1ad8347f9942e37af90d11ae29bd8d938f904d" - integrity sha512-f2Z0qzHB1ERLU5kewmXh3rAD84qIYthSjmAo04sWFbuaMgGW1HxMJKJ/EtL4s4VgoDUwahSwfATmVzmKg57BSw== - dependencies: - "@taquito/http-utils" "^13.0.1" - "@taquito/utils" "^13.0.1" - bignumber.js "^9.0.2" - -"@taquito/signer@^13.0.0": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@taquito/signer/-/signer-13.0.1.tgz#1b725e8438b9a383a81cc7d2fb4ea5c8ecc4f0aa" - integrity sha512-3C7DTC5u6jqA83kUGghEDEDJtwCNNmw0KIF+u6EdQ55YRxLDf8XBp8/voG3i+0HvU3MPqfg0CIvCUHbr8MO0Og== - dependencies: - "@stablelib/blake2b" "^1.0.1" - "@stablelib/ed25519" "^1.0.2" - "@stablelib/nacl" "^1.0.3" - "@taquito/taquito" "^13.0.1" - "@taquito/utils" "^13.0.1" - elliptic "^6.5.4" - pbkdf2 "^3.1.2" - typedarray-to-buffer "^4.0.0" - -"@taquito/taquito@^13.0.0", "@taquito/taquito@^13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-13.0.1.tgz#806812b6853db555fcd614048ba36db4d14d8a57" - integrity sha512-xNtcwKsOCHSkURO9G2VhKSeI9q0qh5/OkVuYe6KM0Fo40FthXNqq205I/FTJzu5E1Q73J7cFqA7FHqUrv276gw== - dependencies: - "@taquito/http-utils" "^13.0.1" - "@taquito/local-forging" "^13.0.1" - "@taquito/michel-codec" "^13.0.1" - "@taquito/michelson-encoder" "^13.0.1" - "@taquito/rpc" "^13.0.1" - "@taquito/utils" "^13.0.1" - bignumber.js "^9.0.2" - rxjs "^6.6.3" - -"@taquito/tzip12@^13.0.0": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@taquito/tzip12/-/tzip12-13.0.1.tgz#1b5207d1f68bd8c84a8f7a6ad6e94f2f9dc606e9" - integrity sha512-V3TPKL7sh5rj75NXjgNWCgM245LX2U/vQXA+rKebNKmHqNPcYZ7L5EmOzE5eLURkoxsuwLznCGhcL/xWQdMraA== - dependencies: - "@taquito/michelson-encoder" "^13.0.1" - "@taquito/taquito" "^13.0.1" - "@taquito/tzip16" "^13.0.1" - -"@taquito/tzip16@^13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@taquito/tzip16/-/tzip16-13.0.1.tgz#3c476b15d1c81e4cc89d88c76eee9601e5bd7b49" - integrity sha512-k+Vr1t2j7IqR/FuK5b3e7iGTA/VfltBwH+fdJEXssRjBH3jrWQxraR+CNkNuqkspn97dKe7TwwU4cJnqbh1sLA== - dependencies: - "@taquito/http-utils" "^13.0.1" - "@taquito/michelson-encoder" "^13.0.1" - "@taquito/rpc" "^13.0.1" - "@taquito/taquito" "^13.0.1" - "@taquito/utils" "^13.0.1" - bignumber.js "^9.0.2" - crypto-js "^4.1.1" - -"@taquito/utils@^13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-13.0.1.tgz#24a1c7d7e62043fc7dcba2838b391b28aea2992e" - integrity sha512-uRtsl4EATlVJ1UnNUiAEoibFFyexGLDLz02CBHoBrcWjqrZdj3AxA+TO63E2kWn/JmT2FM0Sqaqbm555lj4tow== - dependencies: - "@stablelib/blake2b" "^1.0.1" - "@stablelib/ed25519" "^1.0.2" - "@types/bs58check" "^2.1.0" - blakejs "^1.2.1" - bs58check "^2.1.2" - buffer "^6.0.3" - elliptic "^6.5.4" - typedarray-to-buffer "^4.0.0" - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== - -"@types/axios@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@types/axios/-/axios-0.14.0.tgz#ec2300fbe7d7dddd7eb9d3abf87999964cafce46" - integrity sha512-KqQnQbdYE54D7oa/UmYVMZKq7CO4l8DEENzOKc4aBRwxCXSlJXGz83flFx5L7AWrOQnmuN3kVsRdt+GZPPjiVQ== - dependencies: - axios "*" - -"@types/bn.js@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" - integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== - dependencies: - "@types/node" "*" - -"@types/bs58check@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/bs58check/-/bs58check-2.1.0.tgz#7d25a8b88fe7a9e315d2647335ee3c43c8fdb0c0" - integrity sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ== - dependencies: - "@types/node" "*" - -"@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" - integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" - -"@types/chai-subset@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" - integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== - dependencies: - "@types/chai" "*" - -"@types/chai@*", "@types/chai@^4.3.1": - version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" - integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== - -"@types/connect@^3.4.33": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - -"@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== - -"@types/json-buffer@~3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/json-buffer/-/json-buffer-3.0.0.tgz#85c1ff0f0948fc159810d4b5be35bf8c20875f64" - integrity sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ== - -"@types/json-schema@^7.0.7": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/keyv@*": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" - integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== - dependencies: - "@types/node" "*" - -"@types/long@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/minimatch@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "18.7.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.6.tgz#31743bc5772b6ac223845e18c3fc26f042713c83" - integrity sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A== - -"@types/node@10.12.18": - version "10.12.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" - integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== - -"@types/node@11.11.6": - version "11.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" - integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== - -"@types/node@^10.3.2": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - -"@types/node@^12.12.54", "@types/node@^12.12.6": - version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - -"@types/node@^13.7.0": - version "13.13.52" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" - integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== - -"@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== - dependencies: - "@types/node" "*" - -"@types/responselike@*", "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/secp256k1@^4.0.1": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" - integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== - dependencies: - "@types/node" "*" - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@^4.31.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" - integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== - dependencies: - "@typescript-eslint/experimental-utils" "4.33.0" - "@typescript-eslint/scope-manager" "4.33.0" - debug "^4.3.1" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.1.0" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.9.1": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" - integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== - dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/parser@^4.28.3": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" - integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== - dependencies: - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - debug "^4.3.1" - -"@typescript-eslint/scope-manager@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" - integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - -"@typescript-eslint/types@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" - integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== - -"@typescript-eslint/typescript-estree@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" - integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/visitor-keys@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" - integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== - dependencies: - "@typescript-eslint/types" "4.33.0" - eslint-visitor-keys "^2.0.0" - -"@unimodules/core@*": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@unimodules/core/-/core-7.1.2.tgz#5181b99586476a5d87afd0958f26a04714c47fa1" - integrity sha512-lY+e2TAFuebD3vshHMIRqru3X4+k7Xkba4Wa7QsDBd+ex4c4N2dHAO61E2SrGD9+TRBD8w/o7mzK6ljbqRnbyg== - dependencies: - compare-versions "^3.4.0" - -"@unimodules/react-native-adapter@*": - version "6.3.9" - resolved "https://registry.yarnpkg.com/@unimodules/react-native-adapter/-/react-native-adapter-6.3.9.tgz#2f4bef6b7532dce5bf9f236e69f96403d0243c30" - integrity sha512-i9/9Si4AQ8awls+YGAKkByFbeAsOPgUNeLoYeh2SQ3ddjxJ5ZJDtq/I74clDnpDcn8zS9pYlcDJ9fgVJa39Glw== - dependencies: - expo-modules-autolinking "^0.0.3" - invariant "^2.2.4" - -"@vechain/connex-driver@^2.0.8": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@vechain/connex-driver/-/connex-driver-2.0.10.tgz#0c29bd66e46b511a3d66f3a68a0921914bf990fd" - integrity sha512-Ki/wUTG4OcPD8t0vCfwcgOJnyfHFiUlWTg/oU0CXwXC+0FeOSxtXOdAY6AyKlSETQKd7AM+PAdU6MqNBADx+Ew== - dependencies: - "@vechain/connex-types" "^2.0.2" - axios "^0.21.1" - bignumber.js "^7.2.1" - isomorphic-ws "^4.0.1" - lru-cache "^5.1.1" - thor-devkit "^2.0.5" - ws "^7.1.0" - -"@vechain/connex-framework@^2.0.8": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@vechain/connex-framework/-/connex-framework-2.0.10.tgz#cb281ae38473d862baea061483579ad66b3d76ee" - integrity sha512-pgTxMUr99ZOfd5cjzOihVdnbwXP7qh+kdLSjKaWjW+9Yw2ZOdNk58AJ/Bs2POkKB836pgt+Phu65T7MRxPENpg== - dependencies: - "@vechain/connex-types" "^2.0.2" - bignumber.js "^7.2.1" - thor-devkit "^2.0.5" - validator-ts "^0.9.1" - -"@vechain/connex-types@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@vechain/connex-types/-/connex-types-2.0.2.tgz#089d94137ba9934daf903025647897f804f4b7c4" - integrity sha512-as905zXnVgc74mLkWkr2zMgJRJmFTMEDrRgtOPn68rqLeYCBzR7Ye1QCGbGKnPUaYGDLbGutoIW8r1y8wmGCUg== - -"@vechain/ethers@^4.0.27-5": - version "4.0.27-5" - resolved "https://registry.yarnpkg.com/@vechain/ethers/-/ethers-4.0.27-5.tgz#2e7d40294b2e14ddf4cf6f6094bbdc871e26e299" - integrity sha512-dR+rTUauPJpqHNBdEgV6Xh+o009uCRPCvN2HWYIAzZP2SvgsPHLxNUzeRbRKhNzz/HC8HjWNvECRxODF88B03Q== - dependencies: - "@types/node" "^10.3.2" - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.4" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -"@walletconnect/browser-utils@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951" - integrity sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A== - dependencies: - "@walletconnect/safe-json" "1.0.0" - "@walletconnect/types" "^1.8.0" - "@walletconnect/window-getters" "1.0.0" - "@walletconnect/window-metadata" "1.0.0" - detect-browser "5.2.0" - -"@walletconnect/client@1.6.5": - version "1.6.5" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.6.5.tgz#6616ae926abc7c87c48a2d3693f2eb697858e685" - integrity sha512-dRq1D3NEGwM2I3CpiwFsWy1rrdMKCMSfDUu3rCCXUE4zInx+pyq7IEFjYiSjtOEZzjRlUTqYwhjnYIezQZgh4w== - dependencies: - "@walletconnect/core" "^1.6.5" - "@walletconnect/iso-crypto" "^1.6.5" - "@walletconnect/types" "^1.6.5" - "@walletconnect/utils" "^1.6.5" - -"@walletconnect/client@^1.7.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.8.0.tgz#6f46b5499c7c861c651ff1ebe5da5b66225ca696" - integrity sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ== - dependencies: - "@walletconnect/core" "^1.8.0" - "@walletconnect/iso-crypto" "^1.8.0" - "@walletconnect/types" "^1.8.0" - "@walletconnect/utils" "^1.8.0" - -"@walletconnect/core@^1.6.5", "@walletconnect/core@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.8.0.tgz#6b2748b90c999d9d6a70e52e26a8d5e8bfeaa81e" - integrity sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw== - dependencies: - "@walletconnect/socket-transport" "^1.8.0" - "@walletconnect/types" "^1.8.0" - "@walletconnect/utils" "^1.8.0" - -"@walletconnect/crypto@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.2.tgz#3fcc2b2cde6f529a19eadd883dc555cd0e861992" - integrity sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ== - dependencies: - "@walletconnect/encoding" "^1.0.1" - "@walletconnect/environment" "^1.0.0" - "@walletconnect/randombytes" "^1.0.2" - aes-js "^3.1.2" - hash.js "^1.1.7" - -"@walletconnect/encoding@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.1.tgz#93c18ce9478c3d5283dbb88c41eb2864b575269a" - integrity sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA== - dependencies: - is-typedarray "1.0.0" - typedarray-to-buffer "3.1.5" - -"@walletconnect/environment@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" - integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== - -"@walletconnect/iso-crypto@^1.6.5", "@walletconnect/iso-crypto@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451" - integrity sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ== - dependencies: - "@walletconnect/crypto" "^1.0.2" - "@walletconnect/types" "^1.8.0" - "@walletconnect/utils" "^1.8.0" - -"@walletconnect/jsonrpc-types@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.1.tgz#a96b4bb2bcc8838a70e06f15c1b5ab11c47d8e95" - integrity sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw== - dependencies: - keyvaluestorage-interface "^1.0.0" - -"@walletconnect/jsonrpc-utils@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz#5bd49865eef0eae48e8b45a06731dc18691cf8c7" - integrity sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ== - dependencies: - "@walletconnect/environment" "^1.0.0" - "@walletconnect/jsonrpc-types" "^1.0.1" - -"@walletconnect/randombytes@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.2.tgz#95c644251a15e6675f58fbffc9513a01486da49c" - integrity sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A== - dependencies: - "@walletconnect/encoding" "^1.0.1" - "@walletconnect/environment" "^1.0.0" - randombytes "^2.1.0" - -"@walletconnect/safe-json@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" - integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== - -"@walletconnect/socket-transport@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz#9a1128a249628a0be11a0979b522fe82b44afa1b" - integrity sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ== - dependencies: - "@walletconnect/types" "^1.8.0" - "@walletconnect/utils" "^1.8.0" - ws "7.5.3" - -"@walletconnect/types@^1.6.5", "@walletconnect/types@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" - integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== - -"@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.8.0.tgz#2591a197c1fa7429941fe428876088fda6632060" - integrity sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA== - dependencies: - "@walletconnect/browser-utils" "^1.8.0" - "@walletconnect/encoding" "^1.0.1" - "@walletconnect/jsonrpc-utils" "^1.0.3" - "@walletconnect/types" "^1.8.0" - bn.js "4.11.8" - js-sha3 "0.8.0" - query-string "6.13.5" - -"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" - integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== - -"@walletconnect/window-metadata@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5" - integrity sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA== - dependencies: - "@walletconnect/window-getters" "^1.0.0" - -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abort-controller@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -abortcontroller-polyfill@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5" - integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.4.1: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== - -aes-js@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== - -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -algo-msgpack-with-bigint@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz#38bb717220525b3ff42232eefdcd9efb9ad405d6" - integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== - -algosdk@^1.15.0-beta.1: - version "1.19.0" - resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.19.0.tgz#168905e633ccedc8b8d2167d5dcd6f6ac58dafbe" - integrity sha512-odDyNSsr3RK8oDgmMLqt0PFuukeXpETAVa0TkSCPE3IeUIEslwNu5zA6cXs5ParJOcsWjQENRw+XJ9FMEDHW4w== - dependencies: - algo-msgpack-with-bigint "^2.1.1" - buffer "^6.0.2" - hi-base32 "^0.5.1" - js-sha256 "^0.9.0" - js-sha3 "^0.8.0" - js-sha512 "^0.8.0" - json-bigint "^1.0.0" - superagent "^6.1.0" - tweetnacl "^1.0.3" - vlq "^2.0.4" - optionalDependencies: - fsevents "2.1.2" - -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.flatmap@^1.2.4: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" - integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-shim-unscopables "^1.0.0" - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -asmcrypto.js@^0.22.0: - version "0.22.0" - resolved "https://registry.yarnpkg.com/asmcrypto.js/-/asmcrypto.js-0.22.0.tgz#38fc1440884d802c7bd37d1d23c2b26a5cd5d2d2" - integrity sha512-usgMoyXjMbx/ZPdzTSXExhMPur2FTdz/Vo5PVx2gIaBcdAAJNOFlsdgqveM8Cff7W0v+xrf9BwjOV26JSAF9qA== - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -asn1js@^3.0.1, asn1js@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" - integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== - dependencies: - pvtsutils "^1.3.2" - pvutils "^1.1.3" - tslib "^2.4.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -assert@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" - integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== - dependencies: - es6-object-assign "^1.1.0" - is-nan "^1.2.1" - object-is "^1.0.1" - util "^0.12.0" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axios@*: - version "0.27.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== - dependencies: - follow-redirects "^1.14.9" - form-data "^4.0.0" - -axios@0.24.0, axios@^0.24.0: - version "0.24.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6" - integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA== - dependencies: - follow-redirects "^1.14.4" - -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - -axios@^0.26.0, axios@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" - -b64-lite@^1.3.1, b64-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/b64-lite/-/b64-lite-1.4.0.tgz#e62442de11f1f21c60e38b74f111ac0242283d3d" - integrity sha512-aHe97M7DXt+dkpa8fHlCcm1CnskAHrJqEfMI0KN7dwqlzml/aUe1AGt6lk51HzrSfVD67xOso84sOpr+0wIe2w== - dependencies: - base-64 "^0.1.0" - -b64u-lite@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/b64u-lite/-/b64u-lite-1.1.0.tgz#a581b7df94cbd4bed7cbb19feae816654f0b1bf0" - integrity sha512-929qWGDVCRph7gQVTC6koHqQIpF4vtVaSbwLltFQo44B1bYUquALswZdBKFfrJCPEnsCOvWkJsPdQYZ/Ukhw8A== - dependencies: - b64-lite "^1.4.0" - -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -backslash@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/backslash/-/backslash-0.2.0.tgz#6c3c1fce7e7e714ccfc10fd74f0f73410677375f" - integrity sha512-Avs+8FUZ1HF/VFP4YWwHQZSGzRPm37ukU1JQYQWijuHhtXdOuAzcZ8PcAzfIw898a8PyBzdn+RtnKA6MzW0X2A== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base-64@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" - integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== - -base-x@^3.0.2, base-x@^3.0.8: - version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - dependencies: - safe-buffer "^5.0.1" - -base64-arraybuffer@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45" - integrity sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ== - -base64-js@*, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -bech32@1.1.4, bech32@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" - integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== - -bech32@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" - integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== - -before-after-hook@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" - integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== - -bigint-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" - integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== - dependencies: - bindings "^1.3.0" - -bignumber.js@9.0.1, bignumber.js@=9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" - integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== - -bignumber.js@9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" - integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== - -bignumber.js@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" - integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== - -bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2: - version "9.1.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" - integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bindings@^1.3.0, bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bip32-path@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/bip32-path/-/bip32-path-0.4.2.tgz#5db0416ad6822712f077836e2557b8697c0c7c99" - integrity sha512-ZBMCELjJfcNMkz5bDuJ1WrYvjlhEF5k6mQ8vUr4N7MbVRsXei7ZOg8VhhwMfNiW68NWmLkgkc6WvTickrLGprQ== - -bip32@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/bip32/-/bip32-2.0.6.tgz#6a81d9f98c4cd57d05150c60d8f9e75121635134" - integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA== - dependencies: - "@types/node" "10.12.18" - bs58check "^2.1.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - tiny-secp256k1 "^1.1.3" - typeforce "^1.11.5" - wif "^2.0.6" - -bip39@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.2.tgz#2baf42ff3071fc9ddd5103de92e8f80d9257ee32" - integrity sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ== - dependencies: - "@types/node" "11.11.6" - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - -bip39@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" - integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== - dependencies: - "@types/node" "11.11.6" - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -blake2b-wasm@^1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-1.1.7.tgz#e4d075da10068e5d4c3ec1fb9accc4d186c55d81" - integrity sha512-oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA== - dependencies: - nanoassert "^1.0.0" - -blake2b@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.3.tgz#f5388be424768e7c6327025dad0c3c6d83351bca" - integrity sha512-pkDss4xFVbMb4270aCyGD3qLv92314Et+FsKzilCLxDz5DuZ2/1g3w4nmBbu6nKApPspnjG7JcwTjGZnduB1yg== - dependencies: - blake2b-wasm "^1.1.0" - nanoassert "^1.0.0" - -blakejs@^1.1.0, blakejs@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" - integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== - -bluebird@3.7.2, bluebird@^3.5.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== - -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -bn.js@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz#48efc4031a9c4041b9c99c6941d903463ab62eb5" - integrity sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA== - -bn.js@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -body-parser@1.20.0, body-parser@^1.16.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.10.3" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -borc@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" - integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== - dependencies: - bignumber.js "^9.0.0" - buffer "^5.5.0" - commander "^2.15.0" - ieee754 "^1.1.13" - iso-url "~0.4.7" - json-text-sequence "~0.1.0" - readable-stream "^3.6.0" - -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-headers@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" - integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - 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" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -bs58@^4.0.0, bs58@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - dependencies: - base-x "^3.0.2" - -bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -buffer-layout@^1.2.0, buffer-layout@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" - integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== - -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.1.tgz#3cbea8c1463e5a0779e30b66d4c88c6ffa182ac2" - integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -buffer@6.0.3, buffer@^6.0.2, buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -buffer@^5.0.5, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bufferutil@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" - integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== - dependencies: - node-gyp-build "^4.3.0" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-lookup@^6.0.4: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" - integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== - -cacheable-request@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -capability@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/capability/-/capability-0.2.5.tgz#51ad87353f1936ffd77f2f21c74633a4dea88801" - integrity sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chai@^4.3.6: - version "4.3.6" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" - integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - loupe "^2.3.1" - pathval "^1.1.1" - type-detect "^4.0.5" - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== - -check-more-types@2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" - integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== - -chokidar@^3.0.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - 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" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.1, chownr@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -cids@^0.7.1: - version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" - integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - multibase "~0.6.0" - multicodec "^1.0.0" - multihashes "~0.4.15" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-response@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== - dependencies: - mimic-response "^1.0.0" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colors@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.15.0, commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -compare-versions@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - -component-emitter@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compress-brotli@^1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/compress-brotli/-/compress-brotli-1.3.8.tgz#0c0a60c97a989145314ec381e84e26682e7b38db" - integrity sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ== - dependencies: - "@types/json-buffer" "~3.0.0" - json-buffer "~3.0.1" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-hash@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" - integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== - dependencies: - cids "^0.7.1" - multicodec "^0.5.5" - multihashes "^0.4.15" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -cookiejar@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" - integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== - -core-js@^2.4.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cors@^2.8.1: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -crc-32@^1.2.0, crc-32@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" - integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== - -crc@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/crc/-/crc-4.1.1.tgz#cb926237b56739f82c8533da1b66925ed33e011f" - integrity sha512-2U3ZqJ2phJl9ANuP2q5VS53LMpNmYU9vcpmh6nutJmsqUREhtWpTRh9yYxG7sDg3xkwaEEXytSeffTxw4cgwPg== - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - 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" - -create-hmac@1.1.7, create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - 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" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-fetch@^3.1.4, cross-fetch@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== - -crypto-browserify@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": - version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#969f919deec6ee487e4c1b6213f77fe4f6f32eb1" - dependencies: - axios "^0.21.1" - -crypto-hash@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" - integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== - -crypto-js@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" - integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== - -curve25519-js@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/curve25519-js/-/curve25519-js-0.0.4.tgz#e6ad967e8cd284590d657bbfc90d8b50e49ba060" - integrity sha512-axn2UMEnkhyDUPWOwVKBMVIzSQy2ejH2xRGy1wq81dqRwApXfIzfbE3hIX0ZRFBIihf/KDqK158DLwESu4AK1w== - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -debug@2.6.9, debug@^2.2.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - -decompress-response@^3.2.0, decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== - dependencies: - mimic-response "^1.0.0" - -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - -delimit-stream@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" - integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== - -depd@2.0.0, depd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -deprecation@^2.0.0, deprecation@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-browser@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" - integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dotenv@^16.0.0: - version "16.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.1.tgz#8f8f9d94876c35dac989876a5d3a82a267fdce1d" - integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ== - -duplexer3@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" - integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== - -duplexer@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ed25519-hd-key@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.1.2.tgz#168dcf08419694be7bba3319e7d64e4a5cfe5d44" - integrity sha512-/0y9y6N7vM6Kj5ASr9J9wcMVDTtygxSOvYX+PJiMD7VcxCx2G03V5bLRl8Dug9EgkLFsLhGqBtQWQRcElEeWTA== - dependencies: - bip39 "3.0.2" - create-hmac "1.1.7" - tweetnacl "1.0.3" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - 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" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -engine.io-client@~6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.2.tgz#c6c5243167f5943dcd9c4abee1bfc634aa2cbdd0" - integrity sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.2.3" - xmlhttprequest-ssl "~2.0.0" - -engine.io-parser@~5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" - integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -error-polyfill@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/error-polyfill/-/error-polyfill-0.1.3.tgz#df848b61ad8834f7a5db69a70b9913df86721d15" - integrity sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg== - dependencies: - capability "^0.2.5" - o3 "^1.0.3" - u3 "^0.1.1" - -es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - regexp.prototype.flags "^1.4.3" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.62" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" - integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== - dependencies: - es6-iterator "^2.0.3" - es6-symbol "^3.1.3" - next-tick "^1.1.0" - -es6-iterator@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-object-assign@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== - -es6-promise@^4.0.3, es6-promise@^4.2.8: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -es6-symbol@^3.1.1, es6-symbol@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -esbuild-android-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" - integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== - -esbuild-android-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" - integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== - -esbuild-darwin-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" - integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== - -esbuild-darwin-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" - integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== - -esbuild-freebsd-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" - integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== - -esbuild-freebsd-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" - integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== - -esbuild-linux-32@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" - integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== - -esbuild-linux-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" - integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== - -esbuild-linux-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" - integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== - -esbuild-linux-arm@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" - integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== - -esbuild-linux-mips64le@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" - integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== - -esbuild-linux-ppc64le@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" - integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== - -esbuild-linux-riscv64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" - integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== - -esbuild-linux-s390x@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" - integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== - -esbuild-netbsd-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" - integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== - -esbuild-openbsd-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" - integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== - -esbuild-sunos-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" - integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== - -esbuild-windows-32@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" - integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== - -esbuild-windows-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" - integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== - -esbuild-windows-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" - integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== - -esbuild@^0.14.47: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" - integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== - optionalDependencies: - "@esbuild/linux-loong64" "0.14.54" - esbuild-android-64 "0.14.54" - esbuild-android-arm64 "0.14.54" - esbuild-darwin-64 "0.14.54" - esbuild-darwin-arm64 "0.14.54" - esbuild-freebsd-64 "0.14.54" - esbuild-freebsd-arm64 "0.14.54" - esbuild-linux-32 "0.14.54" - esbuild-linux-64 "0.14.54" - esbuild-linux-arm "0.14.54" - esbuild-linux-arm64 "0.14.54" - esbuild-linux-mips64le "0.14.54" - esbuild-linux-ppc64le "0.14.54" - esbuild-linux-riscv64 "0.14.54" - esbuild-linux-s390x "0.14.54" - esbuild-netbsd-64 "0.14.54" - esbuild-openbsd-64 "0.14.54" - esbuild-sunos-64 "0.14.54" - esbuild-windows-32 "0.14.54" - esbuild-windows-64 "0.14.54" - esbuild-windows-arm64 "0.14.54" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-config-prettier@^8.3.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== - -eslint-plugin-eslint-comments@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa" - integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ== - dependencies: - escape-string-regexp "^1.0.5" - ignore "^5.0.5" - -eslint-plugin-functional@^3.2.1: - version "3.7.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-functional/-/eslint-plugin-functional-3.7.2.tgz#c90325dddfa822fab27419375084d12158f05da1" - integrity sha512-BuWPOeE0nuXYlZjObYOHnYf7G3iG+sysxw84I579MsrH+hy5XdXb2sdabmXQ5z7eFGCg2/DWNbZ/yz5GAgtcUg== - dependencies: - "@typescript-eslint/experimental-utils" "^4.9.1" - array.prototype.flatmap "^1.2.4" - deepmerge "^4.2.2" - escape-string-regexp "^4.0.0" - object.fromentries "^2.0.3" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint@^7.30.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - enquirer "^2.3.5" - escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== - dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eth-ens-namehash@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" - integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== - dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" - -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@^0.1.26: - version "0.1.29" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" - integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - nano-json-stream-parser "^0.1.2" - servify "^0.1.12" - ws "^3.0.0" - xhr-request-promise "^0.1.2" - -ethereum-bloom-filters@^1.0.6: - version "1.0.10" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" - integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== - dependencies: - js-sha3 "^0.8.0" - -ethereum-cryptography@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" - integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== - dependencies: - "@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" - -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.5: - version "7.1.5" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" - integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== - dependencies: - "@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" - -ethers@^5.4.4, ethers@^5.5.4, ethers@^5.6.2: - version "5.6.9" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.6.9.tgz#4e12f8dfcb67b88ae7a78a9519b384c23c576a4d" - integrity sha512-lMGC2zv9HC5EC+8r429WaWu3uWJUCgUCt8xxKCFqkrFuBDZXDYIdzDUECxzjf2BMF8IVBByY1EBoGSL3RTm8RA== - dependencies: - "@ethersproject/abi" "5.6.4" - "@ethersproject/abstract-provider" "5.6.1" - "@ethersproject/abstract-signer" "5.6.2" - "@ethersproject/address" "5.6.1" - "@ethersproject/base64" "5.6.1" - "@ethersproject/basex" "5.6.1" - "@ethersproject/bignumber" "5.6.2" - "@ethersproject/bytes" "5.6.1" - "@ethersproject/constants" "5.6.1" - "@ethersproject/contracts" "5.6.2" - "@ethersproject/hash" "5.6.1" - "@ethersproject/hdnode" "5.6.2" - "@ethersproject/json-wallets" "5.6.1" - "@ethersproject/keccak256" "5.6.1" - "@ethersproject/logger" "5.6.0" - "@ethersproject/networks" "5.6.4" - "@ethersproject/pbkdf2" "5.6.1" - "@ethersproject/properties" "5.6.0" - "@ethersproject/providers" "5.6.8" - "@ethersproject/random" "5.6.1" - "@ethersproject/rlp" "5.6.1" - "@ethersproject/sha2" "5.6.1" - "@ethersproject/signing-key" "5.6.2" - "@ethersproject/solidity" "5.6.1" - "@ethersproject/strings" "5.6.1" - "@ethersproject/transactions" "5.6.2" - "@ethersproject/units" "5.6.1" - "@ethersproject/wallet" "5.6.2" - "@ethersproject/web" "5.6.1" - "@ethersproject/wordlists" "5.6.1" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -event-stream@=3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -eventemitter3@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - -eventemitter3@^4.0.4, eventemitter3@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -expand-template@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== - -expo-modules-autolinking@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.0.3.tgz#45ba8cb1798f9339347ae35e96e9cc70eafb3727" - integrity sha512-azkCRYj/DxbK4udDuDxA9beYzQTwpJ5a9QA0bBgha2jHtWdFGF4ZZWSY+zNA5mtU3KqzYt8jWHfoqgSvKyu1Aw== - dependencies: - chalk "^4.1.0" - commander "^7.2.0" - fast-glob "^3.2.5" - find-up "~5.0.0" - fs-extra "^9.1.0" - -expo-random@*: - version "12.3.0" - resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-12.3.0.tgz#4a45bcb14e285a4a9161e4a5dc82ff6c3fc2ac0c" - integrity sha512-q+AsTfGNT+Q+fb2sRrYtRkI3g5tV4H0kuYXM186aueILGO/vLn/YYFa7xFZj1IZ8LJZg2h96JDPDpsqHfRG2mQ== - dependencies: - base64-js "^1.3.0" - -express@^4.14.0: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.0" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.10.3" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== - dependencies: - type "^2.5.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.5, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-safe-stringify@^2.0.7: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" - integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== - -flow-copy-source@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/flow-copy-source/-/flow-copy-source-2.0.9.tgz#0c94ad842f2ae544d5a6b8ae720cee0b8678d742" - integrity sha512-7zX/oHSIHe8YRGiA9QIcC4SW6KF667ikdmiDfbST15up1Ona8dn7Xy0PmSrfw6ceBWDww8sRKlCLKsztStpYkQ== - dependencies: - chokidar "^3.0.0" - fs-extra "^8.1.0" - glob "^7.0.0" - kefir "^3.7.3" - yargs "^15.0.1" - -flow-typed@^3.2.1: - version "3.8.0" - resolved "https://registry.yarnpkg.com/flow-typed/-/flow-typed-3.8.0.tgz#2ed83e4723ede48a6c71135de90289c4031a19c6" - integrity sha512-Lgmj8K69kbTz7UjKjiuaG/UNaZpyoyCGKU9wL9wrcqw0a9GNvuRe7llueHSJThKyuOsymEmZf3TOpMUD2Fw1HQ== - dependencies: - "@octokit/rest" "^18.12.0" - colors "1.4.0" - flowgen "^1.10.0" - fs-extra "^8.1.0" - glob "^7.1.6" - got "^11.8.5" - md5 "^2.2.1" - mkdirp "^1.0.3" - node-stream-zip "^1.15.0" - prettier "^1.19.1" - rimraf "^3.0.2" - semver "7.3.2" - table "^6.7.3" - which "^2.0.2" - yargs "^15.1.0" - -flowgen@^1.10.0: - version "1.20.1" - resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.20.1.tgz#336871d59a36980fbe2c3de553bd558f06a46e24" - integrity sha512-Wus3KAhsOF7CiZGkBKZawf0AJXe06Wot6UGQt7h9QS6MBtBkFgG30wTAgpy1byA3FKYb059vO341XtN8LUhenQ== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/highlight" "^7.16.7" - commander "^6.1.0" - lodash "^4.17.20" - prettier "^2.5.1" - shelljs "^0.8.4" - typescript "~4.4.4" - typescript-compiler "^1.4.1-2" - -follow-redirects@^1.14.0, follow-redirects@^1.14.4, follow-redirects@^1.14.8, follow-redirects@^1.14.9: - version "1.15.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" - integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data-encoder@1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" - integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -formidable@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" - integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0, get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -global@~4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - -globals@^13.6.0, globals@^13.9.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== - dependencies: - type-fest "^0.20.2" - -globby@^11.0.3: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -google-protobuf@^3.20.1: - version "3.21.0" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.0.tgz#8dfa3fca16218618d373d414d3c1139e28034d6e" - integrity sha512-byR7MBTK4tZ5PZEb+u5ZTzpt4SfrTxv5682MjPlHN16XeqgZE2/8HOIWeiXe8JKnT9OVbtBGhbq8mtvkK8cd5g== - -got@12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" - integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== - dependencies: - "@sindresorhus/is" "^4.6.0" - "@szmarczak/http-timer" "^5.0.1" - "@types/cacheable-request" "^6.0.2" - "@types/responselike" "^1.0.0" - cacheable-lookup "^6.0.4" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - form-data-encoder "1.7.1" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^2.0.0" - -got@^11.8.5: - version "11.8.5" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" - integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -got@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hi-base32@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" - integrity sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@^1.7.2: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" - -http-https@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" - integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -http2-wrapper@^2.1.10: - version "2.1.11" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef" - integrity sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -husky@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" - integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -idna-uts46-hx@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" - integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== - dependencies: - punycode "2.1.0" - -ieee754@^1.1.13, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.0.5, ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -injectpromise@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/injectpromise/-/injectpromise-1.0.0.tgz#c621f7df2bbfc1164d714f1fb229adec2079da39" - integrity sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA== - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-core-module@^2.9.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" - integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-gzip@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-2.0.0.tgz#f4fed2bbd9f96bf2cb39e19262797fdb15aad933" - integrity sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA== - -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== - -is-nan@^1.2.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" - integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-retry-allowed@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.3, is-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" - integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - -is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -iso-url@~0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" - integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== - -isomorphic-webcrypto@2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/isomorphic-webcrypto/-/isomorphic-webcrypto-2.3.8.tgz#4a7493b486ef072b9f11b6f8fd66adde856e3eec" - integrity sha512-XddQSI0WYlSCjxtm1AI8kWQOulf7hAN3k3DclF1sxDJZqOe0pcsOt675zvWW91cZH9hYs3nlA3Ev8QK5i80SxQ== - dependencies: - "@peculiar/webcrypto" "^1.0.22" - asmcrypto.js "^0.22.0" - b64-lite "^1.3.1" - b64u-lite "^1.0.1" - msrcrypto "^1.5.6" - str2buf "^1.3.0" - webcrypto-shim "^0.1.4" - optionalDependencies: - "@unimodules/core" "*" - "@unimodules/react-native-adapter" "*" - expo-random "*" - react-native-securerandom "^0.1.1" - -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -jayson@^3.4.4: - version "3.7.0" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.7.0.tgz#b735b12d06d348639ae8230d7a1e2916cb078f25" - integrity sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - JSONStream "^1.3.5" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - lodash "^4.17.20" - uuid "^8.3.2" - ws "^7.4.5" - -joi@^17.4.0: - version "17.6.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" - integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.0" - "@sideway/pinpoint" "^2.0.0" - -js-base64@^3.6.1, js-base64@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" - integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== - -js-logger@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/js-logger/-/js-logger-1.6.1.tgz#8f09671b515e4a6f31dced8fdb8923432e2c60af" - integrity sha512-yTgMCPXVjhmg28CuUH8CKjU+cIKL/G+zTu4Fn4lQxs8mRFH/03QTNvEFngcxfg/gRDiQAOoyCKmMTOm9ayOzXA== - -js-sha256@0.9.0, js-sha256@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" - integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== - -js-sha3@0.5.7, js-sha3@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-sha512@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha512/-/js-sha512-0.8.0.tgz#dd22db8d02756faccf19f218e3ed61ec8249f7d4" - integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -json-bigint@1.0.0, json-bigint@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" - integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== - dependencies: - bignumber.js "^9.0.0" - -json-buffer@3.0.1, json-buffer@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-duplicate-key-handle@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-duplicate-key-handle/-/json-duplicate-key-handle-1.0.0.tgz#0678bd17822d23d8c0d0958b43011875fa37f363" - integrity sha512-OLIxL+UpfwUsqcLX3i6Z51ChTou/Vje+6bSeGUSubj96dF/SfjObDprLy++ZXYH07KITuEzsXS7PX7e/BGf4jw== - dependencies: - backslash "^0.2.0" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json-text-sequence@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" - integrity sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w== - dependencies: - delimit-stream "0.1.0" - -jsonc-parser@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.1.0.tgz#73b8f0e5c940b83d03476bc2e51a20ef0932615d" - integrity sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -keccak@^3.0.0, keccak@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - readable-stream "^3.6.0" - -kefir@^3.7.3: - version "3.8.8" - resolved "https://registry.yarnpkg.com/kefir/-/kefir-3.8.8.tgz#235932ddfbed422acebf5d7cba503035e9ea05c5" - integrity sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA== - -keyv@^4.0.0: - version "4.3.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.3.3.tgz#6c1bcda6353a9e96fc1b4e1aeb803a6e35090ba9" - integrity sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ== - dependencies: - compress-brotli "^1.3.8" - json-buffer "3.0.1" - -keyvaluestorage-interface@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff" - integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== - -lazy-ass@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -local-pkg@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f" - integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - -lodash@^4.17.20, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -long@^5.0.0, long@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.0.tgz#2696dadf4b4da2ce3f6f6b89186085d94d52fd61" - integrity sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loupe@^2.3.1: - version "2.3.4" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" - integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== - dependencies: - get-func-name "^2.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -lunr@^2.3.9: - version "2.3.9" - resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" - integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== - -marked@^4.0.16: - version "4.0.18" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.18.tgz#cd0ac54b2e5610cfb90e8fd46ccaa8292c9ed569" - integrity sha512-wbLDJ7Zh0sqA0Vdg6aqlbT+yPxqLblpAZh1mK2+AO2twQkPywvvqQNfEPVwSSRjZ7dZcdeVBIAgiO7MMp3Dszw== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -md5@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@^1.1.2, methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.6: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.0.1, minimatch@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - -miscreant@0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/miscreant/-/miscreant-0.3.2.tgz#a91c046566cca70bd6b5e9fbdd3f67617fa85034" - integrity sha512-fL9KxsQz9BJB2KGPMHFrReioywkiomBiuaLk6EuChijK0BsJsIKJXdVomR+/bPj5mvbFD6wM0CM3bZio9g7OHA== - -mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - -mkdirp-promise@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" - integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== - dependencies: - mkdirp "*" - -mkdirp@*, mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@^0.5.5: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mock-fs@^4.1.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" - integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== - -mri@^1.1.5: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -msrcrypto@^1.5.6: - version "1.5.8" - resolved "https://registry.yarnpkg.com/msrcrypto/-/msrcrypto-1.5.8.tgz#be419be4945bf134d8af52e9d43be7fa261f4a1c" - integrity sha512-ujZ0TRuozHKKm6eGbKHfXef7f+esIhEckmThVnz7RNyiOJd7a6MXj2JGBoL9cnPDW+JMG16MoTUh5X+XXjI66Q== - -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^0.5.5: - version "0.5.7" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" - integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== - dependencies: - varint "^5.0.0" - -multicodec@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multihashes@^0.4.15, multihashes@~0.4.15: - version "0.4.21" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - -multimatch@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" - integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== - dependencies: - "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" - -mustache@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" - integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== - -nan@^2.13.2: - version "2.16.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" - integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== - -nano-json-stream-parser@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" - integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== - -nanoassert@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" - integrity sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ== - -nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== - -napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -near-api-js@^0.45.1: - version "0.45.1" - resolved "https://registry.yarnpkg.com/near-api-js/-/near-api-js-0.45.1.tgz#0f0a4b378758a2f1b32555399d7356da73d0ef27" - integrity sha512-QyPO/vjvMFlcMO1DCpsqzmnSqPIyHsjK1Qi4B5ZR1cJCIWMkqugDF/TDf8FVQ85pmlcYeYwfiTqKanKz+3IG0A== - dependencies: - bn.js "5.2.0" - borsh "^0.7.0" - bs58 "^4.0.0" - depd "^2.0.0" - error-polyfill "^0.1.3" - http-errors "^1.7.2" - js-sha256 "^0.9.0" - mustache "^4.0.0" - node-fetch "^2.6.1" - text-encoding-utf-8 "^1.0.2" - tweetnacl "^1.0.1" - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-abi@^2.21.0: - version "2.30.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" - integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== - dependencies: - semver "^5.4.1" - -node-addon-api@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - -node-addon-api@^3.0.2: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - -node-addon-api@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" - integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== - -node-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== - -node-hid@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.1.tgz#f83c8aa0bb4e6758b5f7383542477da93f67359d" - integrity sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw== - dependencies: - bindings "^1.5.0" - node-addon-api "^3.0.2" - prebuild-install "^6.0.0" - -node-stream-zip@^1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" - integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -npm-run-path@^4.0.0, npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npmlog@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== - -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -o3@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/o3/-/o3-1.0.3.tgz#192ce877a882dfa6751f0412a865fafb2da1dac0" - integrity sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ== - dependencies: - capability "^0.2.5" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.12.0, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.2: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.fromentries@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -oboe@2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" - integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== - dependencies: - http-https "^1.0.0" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA== - dependencies: - p-finally "^1.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@2.0.4, pako@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" - integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-headers@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" - integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== - dependencies: - through "~2.3" - -pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -perf_hooks@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/perf_hooks/-/perf_hooks-0.0.1.tgz#253e7e18b71fcc0390fd3afb2cd7cf1685df040c" - integrity sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -platform@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" - integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== - -postcss@^8.4.16: - version "8.4.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" - integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prebuild-install@^6.0.0: - version "6.1.4" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" - integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== - dependencies: - detect-libc "^1.0.3" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^2.21.0" - npmlog "^4.0.1" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^3.0.3" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== - -prettier@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== - -prettier@^2.3.2, prettier@^2.5.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - -pretty-quick@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" - integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== - dependencies: - chalk "^3.0.0" - execa "^4.0.0" - find-up "^4.1.0" - ignore "^5.1.4" - mri "^1.1.5" - multimatch "^4.0.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -protobufjs@6.10.2: - version "6.10.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.10.2.tgz#b9cb6bd8ec8f87514592ba3fdfd28e93f33a469b" - integrity sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" "^13.7.0" - long "^4.0.0" - -protobufjs@6.11.3, protobufjs@^6.11.2, protobufjs@^6.11.3: - version "6.11.3" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" - integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - -protobufjs@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.0.0.tgz#8c678e1351fd926178fce5a4213913e8d990974f" - integrity sha512-ffNIEm+quOcYtQvHdW406v1NQmZSuqVklxsXk076BtuFnlYZfigLU+JOMrTD8TUOyqHYbRI/fSVNvgd25YeN3w== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^5.0.0" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -ps-tree@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" - integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== - dependencies: - event-stream "=3.3.4" - -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pvtsutils@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" - integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== - dependencies: - tslib "^2.4.0" - -pvutils@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" - integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== - -qs@6.10.1: - version "6.10.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" - integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== - dependencies: - side-channel "^1.0.4" - -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -qs@^6.9.4: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -query-string@6.13.5: - version "6.13.5" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" - integrity sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q== - dependencies: - decode-uri-component "^0.2.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-native-securerandom@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/react-native-securerandom/-/react-native-securerandom-0.1.1.tgz#f130623a412c338b0afadedbc204c5cbb8bf2070" - integrity sha512-CozcCx0lpBLevxiXEb86kwLRalBCHNjiGPlw3P7Fi27U6ZLdfjOCNRHD1LtBKcvPvI3TvkBXB3GOtLvqaYJLGw== - dependencies: - base64-js "*" - -react-native-url-polyfill@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/react-native-url-polyfill/-/react-native-url-polyfill-1.3.0.tgz#c1763de0f2a8c22cc3e959b654c8790622b6ef6a" - integrity sha512-w9JfSkvpqqlix9UjDvJjm1EjSt652zVQ6iwCIj1cVVkwXf4jQhQgTNXY6EVTwuAmUjg6BC6k9RHCBynoLFo3IQ== - dependencies: - whatwg-url-without-unicode "8.0.0-3" - -readable-stream@^2.0.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - 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" - -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -readonly-date@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/readonly-date/-/readonly-date-1.0.0.tgz#5af785464d8c7d7c40b9d738cbde8c646f97dcd9" - integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ== - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpp@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -request@^2.79.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-alpn@^1.0.0, resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^1.1.6, resolve@^1.22.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rlp@^2.0.0, rlp@^2.2.4: - version "2.2.7" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" - integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== - dependencies: - bn.js "^5.2.0" - -"rollup@>=2.75.6 <2.77.0 || ~2.77.0": - version "2.77.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" - integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== - optionalDependencies: - fsevents "~2.3.2" - -rpc-websockets@^7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.0.tgz#bbeb87572e66703ff151e50af1658f98098e2748" - integrity sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ== - dependencies: - "@babel/runtime" "^7.17.2" - eventemitter3 "^4.0.7" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rxjs@6, rxjs@^6.6.3, rxjs@^6.6.7: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -rxjs@^7.1.0: - version "7.5.6" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" - integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== - dependencies: - tslib "^2.1.0" - -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -scrypt-js@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" - integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== - -scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -scryptsy@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" - integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== - -secp256k1@^4.0.1, secp256k1@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== - dependencies: - elliptic "^6.5.4" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -secretjs@=1.3.0-beta.25: - version "1.3.0-beta.25" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.3.0-beta.25.tgz#d3aced17bccc6da46e68ab64f846d51bb9ea6b49" - integrity sha512-fHTMGtHGP7aEVBD1142xTb2k7547misrnCs+EKMZN+CCr+fl1PZdEVX4r3MjC+qRpQIMgwVVXJZr4EUNwN7u3A== - dependencies: - "@cosmjs/encoding" "0.27.1" - "@cosmjs/math" "0.27.1" - "@improbable-eng/grpc-web" "0.15.0" - "@improbable-eng/grpc-web-node-http-transport" "0.15.0" - "@noble/hashes" "1.0.0" - "@noble/secp256k1" "1.6.3" - "@osmonauts/helpers" "0.3.8" - bech32 "2.0.0" - bignumber.js "9.0.2" - bip32 "2.0.6" - bip39 "3.0.4" - curve25519-js "0.0.4" - is-gzip "2.0.0" - miscreant "0.3.2" - pako "2.0.4" - protobufjs "6.11.3" - secure-random "1.1.2" - -secure-random@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/secure-random/-/secure-random-1.1.2.tgz#ed103b460a851632d420d46448b2a900a41e7f7c" - integrity sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ== - -semver@7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -semver@^5.4.1, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -servify@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" - integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== - dependencies: - body-parser "^1.16.0" - cors "^2.8.1" - express "^4.14.0" - request "^2.79.0" - xhr "^2.3.3" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shelljs@^0.8.4: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -shiki@^0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.10.1.tgz#6f9a16205a823b56c072d0f1a0bcd0f2646bef14" - integrity sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng== - dependencies: - jsonc-parser "^3.0.0" - vscode-oniguruma "^1.6.1" - vscode-textmate "5.2.0" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-cbor@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/simple-cbor/-/simple-cbor-0.4.1.tgz#0c88312e87db52b94e0e92f6bd1cf634e86f8a22" - integrity sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^2.7.0: - version "2.8.2" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" - integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - -simple-get@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" - integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== - dependencies: - decompress-response "^4.2.0" - once "^1.3.1" - simple-concat "^1.0.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -snake-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" - integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -socket.io-client@^4.1.3: - version "4.5.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.1.tgz#cab8da71976a300d3090414e28c2203a47884d84" - integrity sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.2" - engine.io-client "~6.2.1" - socket.io-parser "~4.2.0" - -socket.io-parser@~4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" - integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== - dependencies: - through "2" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -start-server-and-test@^1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3" - integrity sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw== - dependencies: - bluebird "3.7.2" - check-more-types "2.24.0" - debug "4.3.2" - execa "5.1.1" - lazy-ass "1.6.0" - ps-tree "1.2.0" - wait-on "6.0.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.5.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -str2buf@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/str2buf/-/str2buf-1.3.0.tgz#a4172afff4310e67235178e738a2dbb573abead0" - integrity sha512-xIBmHIUHYZDP4HyoXGHYNVmxlXLXDrtFHYT0eV6IOdEj3VO9ccaF1Ejl9Oq8iFjITllpT8FhaXb4KsNmw+3EuA== - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== - dependencies: - duplexer "~0.1.1" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== - dependencies: - is-hex-prefixed "1.0.0" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -superagent@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" - integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== - dependencies: - component-emitter "^1.3.0" - cookiejar "^2.1.2" - debug "^4.1.1" - fast-safe-stringify "^2.0.7" - form-data "^3.0.0" - formidable "^1.2.2" - methods "^1.1.2" - mime "^2.4.6" - qs "^6.9.4" - readable-stream "^3.6.0" - semver "^7.3.2" - -superstruct@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" - integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== - -superstruct@^0.15.4: - version "0.15.5" - resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" - integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -swarm-js@^0.1.40: - version "0.1.40" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" - integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - eth-lib "^0.1.26" - fs-extra "^4.0.2" - got "^7.1.0" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar "^4.0.2" - xhr-request "^1.0.1" - -table@^6.0.9, table@^6.7.3: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tar-fs@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar@^4.0.2: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -thor-devkit@^2.0.4, thor-devkit@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/thor-devkit/-/thor-devkit-2.0.5.tgz#1cdd6d623f755e82aacf27290624372bfe6d1b90" - integrity sha512-82Z0/sY0+S54bhmg57r7iqoK7sJB1F5md3zWXjXXGPin3ejsR0Whw1O9wzWvE0DkTp1EiPHWFMTPtOejxaiXeA== - dependencies: - "@vechain/ethers" "^4.0.27-5" - bignumber.js "^7.2.1" - blakejs "^1.1.0" - elliptic "6.5.4" - fast-json-stable-stringify "^2.0.0" - js-sha3 "0.5.7" - rlp "^2.0.0" - -through@2, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== - -tiny-secp256k1@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz#7e224d2bee8ab8283f284e40e6b4acb74ffe047c" - integrity sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA== - dependencies: - bindings "^1.3.0" - bn.js "^4.11.8" - create-hmac "^1.1.7" - elliptic "^6.4.0" - nan "^2.13.2" - -tinypool@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.2.4.tgz#4d2598c4689d1a2ce267ddf3360a9c6b3925a20c" - integrity sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ== - -tinyspy@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d" - integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -tonweb-mnemonic@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tonweb-mnemonic/-/tonweb-mnemonic-1.0.1.tgz#bb1b8bb6220f56f8e230b8a8f9555ff5bcbd4681" - integrity sha512-YQAEXQHBHb0dnNy50bwIutXwyWa6Den7+cLcXWoG7ZClcqo4bjALOr6tnIqI+hs5jab+AGSsRjilxcp8ao/CpA== - dependencies: - tweetnacl "^1.0.3" - -tonweb@^0.0.43: - version "0.0.43" - resolved "https://registry.yarnpkg.com/tonweb/-/tonweb-0.0.43.tgz#c659dd806aaa982413ffda33762ddca204da87a9" - integrity sha512-wed71NUHymDNVeGFIaMVTj658CXnbr9iafLpKRk4LyvZ17FU2fIBja7m1Uc+oD/+Gf6n0Zqbhsf0b69jF/41Hw== - dependencies: - "@ledgerhq/hw-transport-web-ble" "5.48.0" - "@ledgerhq/hw-transport-webhid" "5.48.0" - "@ledgerhq/hw-transport-webusb" "5.48.0" - bn.js "5.1.1" - ethjs-unit "0.1.6" - isomorphic-webcrypto "2.3.8" - node-fetch "2.6.7" - tweetnacl "1.0.3" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tronstation@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tronstation/-/tronstation-1.0.1.tgz#b33224cdef5f1c7560763b185f132d9ac35ad3f3" - integrity sha512-iuHjDHw/63ID5pj2PESeGLl7n7IAG6yunupKfOA2l5ekaWhZo6RSscmdwSIqBEdnXFh7Jmd2HJIzowyMFt+/zQ== - dependencies: - "@babel/runtime" "^7.0.0" - babel-runtime "^6.26.0" - -tronweb@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.3.0.tgz#d3a088e9efb839f0d445f9dc5c79853ab33ccbfa" - integrity sha512-U+s+NBGOg+zfiXeO2kaljJCClg8y8v0McIdO3aAN3/UujDJHou6d6XVPaiMnli4ynE0XC4JHSUM+5KcYos+DiQ== - dependencies: - "@babel/runtime" "^7.0.0" - axios "^0.26.1" - bignumber.js "^9.0.1" - elliptic "^6.5.4" - ethers "^5.4.4" - eventemitter3 "^3.1.0" - injectpromise "^1.0.0" - lodash "^4.17.21" - semver "^5.6.0" - validator "^13.7.0" - -ts-node@^10.8.2: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^1.8.1, tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@1.0.3, tweetnacl@^1.0.1, tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.5.0: - version "2.7.2" - resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" - integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== - -typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray-to-buffer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-4.0.0.tgz#cdd2933c61dd3f5f02eda5d012d441f95bfeb50a" - integrity sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ== - -typedoc@^0.22.6: - version "0.22.18" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.18.tgz#1d000c33b66b88fd8cdfea14a26113a83b7e6591" - integrity sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA== - dependencies: - glob "^8.0.3" - lunr "^2.3.9" - marked "^4.0.16" - minimatch "^5.1.0" - shiki "^0.10.1" - -typeforce@^1.11.5: - version "1.18.0" - resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" - integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== - -typescript-compiler@^1.4.1-2: - version "1.4.1-2" - resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f" - integrity sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg== - -typescript@^4.3.5: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== - -typescript@~4.4.4: - version "4.4.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" - integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== - -u2f-api@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" - integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== - -u3@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/u3/-/u3-0.1.1.tgz#5f52044f42ee76cd8de33148829e14528494b73b" - integrity sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w== - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== - dependencies: - prepend-http "^1.0.1" - -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A== - -usb@^1.7.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/usb/-/usb-1.9.2.tgz#fb6b36f744ecc707a196c45a6ec72442cb6f2b73" - integrity sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg== - dependencies: - node-addon-api "^4.2.0" - node-gyp-build "^4.3.0" - -utf-8-validate@^5.0.2: - version "5.0.9" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3" - integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== - dependencies: - node-gyp-build "^4.3.0" - -utf8@3.0.0, utf8@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util@^0.12.0: - version "0.12.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" - integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - safe-buffer "^5.1.2" - which-typed-array "^1.1.2" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== - -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -uuid@8.3.2, uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -validator-ts@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/validator-ts/-/validator-ts-0.9.1.tgz#1ab8748e6ddddc63e9e5edbf7fea91a82b7a466f" - integrity sha512-3PCL0AzKWvG/4Y12zUgk6OVup9zQ3vXGzqUIZ69GnSapIV9lgr9VCLFReUgTe04vY6Fm4WzAL7a1HdIVyWRw8Q== - -validator@^13.7.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" - integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== - -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -"vite@^2.9.12 || ^3.0.0-0": - version "3.0.8" - resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.8.tgz#aa095ad8e3e5da46d9ec7e878f262678965d6531" - integrity sha512-AOZ4eN7mrkJiOLuw8IA7piS4IdOQyQCA81GxGsAQvAZzMRi9ZwGB3TOaYsj4uLAWK46T5L4AfQ6InNGlxX30IQ== - dependencies: - esbuild "^0.14.47" - postcss "^8.4.16" - resolve "^1.22.1" - rollup ">=2.75.6 <2.77.0 || ~2.77.0" - optionalDependencies: - fsevents "~2.3.2" - -vitest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.18.1.tgz#33c5003fc8c4b296801897ae1a3f142f57015574" - integrity sha512-4F/1K/Vn4AvJwe7i2YblR02PT5vMKcw9KN4unDq2KD0YcSxX0B/6D6Qu9PJaXwVuxXMFTQ5ovd4+CQaW3bwofA== - dependencies: - "@types/chai" "^4.3.1" - "@types/chai-subset" "^1.3.3" - "@types/node" "*" - chai "^4.3.6" - debug "^4.3.4" - local-pkg "^0.4.2" - tinypool "^0.2.4" - tinyspy "^1.0.0" - vite "^2.9.12 || ^3.0.0-0" - -vlq@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-2.0.4.tgz#6057b85729245b9829e3cc7755f95b228d4fe041" - integrity sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA== - -vscode-oniguruma@^1.6.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" - integrity sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA== - -vscode-textmate@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" - integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== - -wait-on@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7" - integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw== - dependencies: - axios "^0.21.1" - joi "^17.4.0" - lodash "^4.17.21" - minimist "^1.2.5" - rxjs "^7.1.0" - -web3-bzz@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.5.tgz#edeb262c3a6619109763077a94172513cf07cdde" - integrity sha512-Z53sY0YK/losqjJncmL4vP0zZI9r6tiXg6o7R6e1JD2Iy7FH3serQvU+qXmPjqEBzsnhf8wTG+YcBPB3RHpr0Q== - dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" - -web3-core-helpers@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.5.tgz#e97b3ecac787ade4b9390807a86aca78ed97872b" - integrity sha512-lDDjTks6Q6aNUO87RYrY2xub3UWTKr/RIWxpHJODEqkLxZS1dWdyliJ6aIx3031VQwsNT5HE7NvABe/t0p3iDQ== - dependencies: - web3-eth-iban "1.7.5" - web3-utils "1.7.5" - -web3-core-method@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.5.tgz#ffe8883c169468f0e4d13509377f2d8876d9b7be" - integrity sha512-ApTvq1Llzlbxmy0n4L7QaE6NodIsR80VJqk8qN4kLg30SGznt/pNJFebryLI2kpyDmxSgj1TjEWzmHJBp6FhYg== - dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.7.5" - web3-core-promievent "1.7.5" - web3-core-subscriptions "1.7.5" - web3-utils "1.7.5" - -web3-core-promievent@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.5.tgz#56a9b06a20e20a0a89d2ab7f88d44c8ae01d5b62" - integrity sha512-uZ1VRErVuhiLtHlyt3oEH/JSvAf6bWPndChHR9PG7i1Zfqm6ZVCeM91ICTPmiL8ddsGQOxASpnJk4vhApcTIww== - dependencies: - eventemitter3 "4.0.4" - -web3-core-requestmanager@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.5.tgz#be18fc99642689aeb2e016fa43fb47bb9e8c94ce" - integrity sha512-3KpfxW/wVH4mgwWEsSJGHKrtRVoijWlDxtUrm17xgtqRNZ2mFolifKnHAUKa0fY48C9CrxmcCiMIi3W4G6WYRw== - dependencies: - util "^0.12.0" - web3-core-helpers "1.7.5" - web3-providers-http "1.7.5" - web3-providers-ipc "1.7.5" - web3-providers-ws "1.7.5" - -web3-core-subscriptions@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.5.tgz#c0e25610768ea9d9f9107b4ac74b6b6573125e00" - integrity sha512-YK6utQ7Wwjbe4XZOIA8quWGBPi1lFDS1A+jQYwxKKrCvm6BloBNc3FhvrcSYlDhLe/kOy8+2Je8i9amndgT4ww== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.7.5" - -web3-core@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.5.tgz#8ee2ca490230a30ca970cb9f308eb65b76405e1d" - integrity sha512-UgOWXZr1fR/3cUQJKWbfMwRxj1/N7o6RSd/dHqdXBlOD+62EjNZItFmLRg5veq5kp9YfXzrNw9bnDkXfsL+nKQ== - dependencies: - "@types/bn.js" "^5.1.0" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.7.5" - web3-core-method "1.7.5" - web3-core-requestmanager "1.7.5" - web3-utils "1.7.5" - -web3-eth-abi@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.5.tgz#db9d6dbcc043a6e922252f3228686e9bbd50d7c9" - integrity sha512-qWHvF7sayxql9BD1yqK9sZRLBQ66eJzGeaU53Y1PRq2iFPrhY6NUWxQ3c3ps0rg+dyObvRbloviWpKXcS4RE/A== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.7.5" - -web3-eth-accounts@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.5.tgz#b37ee3aeebcc6bce3337636aeb272cbba0ece547" - integrity sha512-AzMLoTj3RGwKpyp3x3TtHrEeU4VpR99iMOD6NKrWSDumS6QEi0lCo+y7QZhdTlINw3iIA3SFIdvbAOO4NCHSDg== - dependencies: - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.2" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "3.3.2" - web3-core "1.7.5" - web3-core-helpers "1.7.5" - web3-core-method "1.7.5" - web3-utils "1.7.5" - -web3-eth-contract@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.5.tgz#a032419579bcec062513a3d089ad0e89ac63d731" - integrity sha512-qab7NPJRKRlTs58ozsqK8YIEwWpxIm3vD/okSIKBGkFx5gIHWW+vGmMh5PDSfefLJM9rCd+T+Lc0LYvtME7uqg== - dependencies: - "@types/bn.js" "^5.1.0" - web3-core "1.7.5" - web3-core-helpers "1.7.5" - web3-core-method "1.7.5" - web3-core-promievent "1.7.5" - web3-core-subscriptions "1.7.5" - web3-eth-abi "1.7.5" - web3-utils "1.7.5" - -web3-eth-ens@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.5.tgz#fa0e287f5e6fae20531117b7467e21b482d58cab" - integrity sha512-k1Q0msdRv/wac2egpZBIwG3n/sa/KdrVmVJvFm471gLTL4xfUizV5qJjkDVf+ikf9JyDvWJTs5eWNUUbOFIw/A== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.7.5" - web3-core-helpers "1.7.5" - web3-core-promievent "1.7.5" - web3-eth-abi "1.7.5" - web3-eth-contract "1.7.5" - web3-utils "1.7.5" - -web3-eth-iban@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.5.tgz#1a50efa42cabf1b731396d38bef6a8bf92b5ee1f" - integrity sha512-mn2W5t/1IpL8OZvzAabLKT4kvwRnZSJ9K0tctndl9sDNWkfITYQibEEhUaNNA50Q5fJKgVudHI/m0gwIVTyG8Q== - dependencies: - bn.js "^5.2.1" - web3-utils "1.7.5" - -web3-eth-personal@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.5.tgz#615a3ddcf97aeea93e2a4569753c033fd7a495c5" - integrity sha512-txh2P/eN8I4AOUKFi9++KKddoD0tWfCuu9Y1Kc41jSRbk6smO88Fum0KWNmYFYhSCX2qiknS1DfqsONl3igoKQ== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.7.5" - web3-core-helpers "1.7.5" - web3-core-method "1.7.5" - web3-net "1.7.5" - web3-utils "1.7.5" - -web3-eth@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.5.tgz#36906f50a6c35570cbc08871a33caa83dc131c9c" - integrity sha512-BucjvqZyDWYkGlsFX+OnOBub0YutlC1KZiNGibdmvtNX0NQK+8iw1uzAoL9yTTwCSszL7lnkFe8N+HCOl9B4Dw== - dependencies: - web3-core "1.7.5" - web3-core-helpers "1.7.5" - web3-core-method "1.7.5" - web3-core-subscriptions "1.7.5" - web3-eth-abi "1.7.5" - web3-eth-accounts "1.7.5" - web3-eth-contract "1.7.5" - web3-eth-ens "1.7.5" - web3-eth-iban "1.7.5" - web3-eth-personal "1.7.5" - web3-net "1.7.5" - web3-utils "1.7.5" - -web3-net@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.5.tgz#87fbc00a9ca40515bf60c847c0092498887cfdc8" - integrity sha512-xwuCb2YWw49PmW81AJQ/G+Xi2ikRsYyZXSgyPt4LmZuKjiqg/6kSdK8lZvUi3Pi3wM+QDBXbpr73M/WEkW0KvA== - dependencies: - web3-core "1.7.5" - web3-core-method "1.7.5" - web3-utils "1.7.5" - -web3-providers-connex@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/web3-providers-connex/-/web3-providers-connex-0.3.1.tgz#45eb139ea70c76a8bb625a964d92f61c8033adc2" - integrity sha512-0jnPkPszyHA9nlvB1hJ+FDT8pLixF7GzmZm0gB/j1UonuYYuYD3VtNgQ2+N4jDkkFuRd3H/sZRR+Piq0tV8aig== - dependencies: - "@vechain/connex-driver" "^2.0.8" - "@vechain/connex-types" "^2.0.2" - ethers "^5.6.2" - eventemitter3 "^4.0.4" - thor-devkit "^2.0.4" - web3 "^1.7.1" - -web3-providers-http@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.5.tgz#144bb0c29007d1b766bafb0e20f80be050c7aa80" - integrity sha512-vPgr4Kzy0M3CHtoP/Bh7qwK/D9h2fhjpoqctdMWVJseOfeTgfOphCKN0uwV8w2VpZgDPXA8aeTdBx5OjmDdStA== - dependencies: - abortcontroller-polyfill "^1.7.3" - cross-fetch "^3.1.4" - es6-promise "^4.2.8" - web3-core-helpers "1.7.5" - -web3-providers-ipc@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.5.tgz#5b0f9b4f7340416953b8816d2e42e3f548d47372" - integrity sha512-aNHx+RAROzO+apDEzy8Zncj78iqWBadIXtpmFDg7uiTn8i+oO+IcP1Yni7jyzkltsysVJHgHWG4kPx50ANCK3Q== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.7.5" - -web3-providers-ws@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.5.tgz#196b9e56a4a48f9bee54def56875ea53dec7c711" - integrity sha512-9uJNVVkIGC8PmM9kNbgPth56HDMSSsxZh3ZEENdwO3LNWemaADiQYUDCsD/dMVkn0xsGLHP5dgAy4Q5msqySLg== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.7.5" - websocket "^1.0.32" - -web3-shh@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.5.tgz#742e27f5c44bea6d7adef3a49b085e0fcd6aa621" - integrity sha512-aCIWJyLMH5H76OybU4ZpUCJ93yNOPATGhJ+KboRPU8QZDzS2CcVhtEzyl27bbvw+rSnVroMLqBgTXBB4mmKI7A== - dependencies: - web3-core "1.7.5" - web3-core-method "1.7.5" - web3-core-subscriptions "1.7.5" - web3-net "1.7.5" - -web3-utils@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.5.tgz#081a952ac6e0322e25ac97b37358a43c7372ef6a" - integrity sha512-9AqNOziQky4wNQadEwEfHiBdOZqopIHzQQVzmvvv6fJwDSMhP+khqmAZC7YTiGjs0MboyZ8tWNivqSO1699XQw== - dependencies: - bn.js "^5.2.1" - 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" - -web3@^1.7.1: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.5.tgz#4e185d2058195b5775109b3f27cdea65a34a036e" - integrity sha512-3jHZTWyXt975AOXgnZKayiSWDLpoSKk9fZtLk1hURQtt7AdSbXPT8AK9ooBCm0Dt3GYaOeNcHGaiHC3gtyqhLg== - dependencies: - web3-bzz "1.7.5" - web3-core "1.7.5" - web3-eth "1.7.5" - web3-eth-personal "1.7.5" - web3-net "1.7.5" - web3-shh "1.7.5" - web3-utils "1.7.5" - -webcrypto-core@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.5.tgz#c02104c953ca7107557f9c165d194c6316587ca4" - integrity sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A== - dependencies: - "@peculiar/asn1-schema" "^2.1.6" - "@peculiar/json-schema" "^1.1.12" - asn1js "^3.0.1" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -webcrypto-shim@^0.1.4: - version "0.1.7" - resolved "https://registry.yarnpkg.com/webcrypto-shim/-/webcrypto-shim-0.1.7.tgz#da8be23061a0451cf23b424d4a9b61c10f091c12" - integrity sha512-JAvAQR5mRNRxZW2jKigWMjCMkjSdmP5cColRP1U/pTg69VgHXEi1orv5vVpJ55Zc5MIaPc1aaurzd9pjv2bveg== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -websocket@^1.0.32: - version "1.0.34" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" - integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== - dependencies: - bufferutil "^4.0.1" - debug "^2.2.0" - es5-ext "^0.10.50" - typedarray-to-buffer "^3.1.5" - utf-8-validate "^5.0.2" - yaeti "^0.0.6" - -whatwg-url-without-unicode@8.0.0-3: - version "8.0.0-3" - resolved "https://registry.yarnpkg.com/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz#ab6df4bf6caaa6c85a59f6e82c026151d4bb376b" - integrity sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig== - dependencies: - buffer "^5.4.3" - punycode "^2.1.1" - webidl-conversions "^5.0.0" - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - 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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== - -which-typed-array@^1.1.2: - version "1.1.8" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" - integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.9" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -wif@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" - integrity sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ== - dependencies: - bs58check "<3.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@7.4.6: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -ws@7.5.3: - version "7.5.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" - integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== - -ws@^3.0.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -ws@^7.1.0, ws@^7.4.5: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -ws@^8.5.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== - -ws@~8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" - integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.0.1, xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr@^2.0.4, xhr@^2.3.3: - version "2.6.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xmlhttprequest-ssl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" - integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== - -xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== - -"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f": - version "0.1.0" - resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f" - dependencies: - ethers "^5.5.4" - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== - -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs@^15.0.1, yargs@^15.1.0: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.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 "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 698e970bbc7ce452ba23656ddf4e879fd64dcbde Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 26 Aug 2022 15:04:13 +0530 Subject: [PATCH 655/956] Update Tezos Contracts --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 73d069c86..20b56eca5 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -242,10 +242,10 @@ export namespace ChainFactoryConfigs { feeMargin, }, tezosParams: { - bridgeAddress: "KT195omxiopL2ZDqM3g8hRj2sSCG2pTqjNEj", + bridgeAddress: "KT1KbL9kWPM8GkMr5M38vF1eHdsNxTc4WkyQ", notifier, Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), - xpnftAddress: "KT1LZ3YqxgHy8jao5L8VBFyMUoPkxhgfLhLV", + xpnftAddress: "KT1WR4fe9wFGPgNViK5feigMGyXKG9gCX8n4", validators: [ "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", From 33470b3f2ae166d7b71fd8dba1df5f2cde132599 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 29 Aug 2022 19:27:10 +0530 Subject: [PATCH 656/956] Abeychain: Weird Hack to Fix Transaction Hash Issues --- src/helpers/web3.ts | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 1b44c7809..68e8b1fa6 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -557,8 +557,6 @@ export async function web3HelperFactory( await approveForMinter(id, sender); const method = NFT_METHOD_MAP[id.native.contractType].freeze; - const isHedera = params.nonce === 0x1d; - const tx = await minter .connect(sender) .populateTransaction[method]( @@ -574,12 +572,30 @@ export async function web3HelperFactory( ); await txnUnderpricedPolyWorkaround(tx); - const txr = await sender.sendTransaction(tx); + const txr: TransactionResponse | unknown = await sender + .sendTransaction(tx) + .catch((e) => { + if (params.nonce === 33) { + return e; + } else throw e; + }); + let txHash: string; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = txr["transactionId"]; + } + if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = txr["returnedHash"]; + } else { + //@ts-ignore checked normal evm + txHash = txr.hash; + } await notifyValidator( //@ts-ignore - isHedera ? txr["transactionId"] : txr.hash, - await extractAction(txr), + txHash, + await extractAction(await provider.getTransaction(txHash)), "Transfer", chain_nonce, txFees.toString(), @@ -589,8 +605,9 @@ export async function web3HelperFactory( id.native.tokenId, id.native.contract ); - - return txr; + return params.nonce === 33 + ? await provider.getTransaction(txHash) + : (txr as TransactionResponse); }, async unfreezeWrappedNft( sender: Signer, From 85a782ab1d1549b3923fe41c543c8929ec2e1dda Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 31 Aug 2022 18:55:34 +0300 Subject: [PATCH 657/956] optional extraFee coef parametr to tranfserNft method --- src/factory/index.ts | 22 +++++++++++++++++----- tsconfig.json | 1 + 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 5597c488f..aa893ebb0 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -114,7 +114,8 @@ export type ChainFactory = { receiver: string, fee?: BigNumber.Value, mintWith?: string, - gasLimit?: ethers.BigNumberish | undefined + gasLimit?: ethers.BigNumberish | undefined, + extraFee?: BigNumber.Value ): Promise; transferBatchNft( @@ -396,19 +397,26 @@ export function ChainFactory( fromChain: FullChain, toChain: FullChain, nft: NftInfo, - receiver: string + receiver: string, + extraFee?: BigNumber.Value ) => { const estimate = await toChain.estimateValidateTransferNft( receiver, nft as any, "" ); - const conv = await calcExchangeFees( + let conv = await calcExchangeFees( fromChain.getNonce(), toChain.getNonce(), estimate, toChain.getFeeMargin() ); + + if (extraFee) { + conv = conv.multipliedBy(extraFee).integerValue(BigNumber.ROUND_CEIL); + console.log("extra conv"); + } + return conv; }; @@ -682,7 +690,8 @@ export function ChainFactory( receiver, fee, mintWith, - gasLimit + gasLimit, + extraFee ) => { //@ts-ignore if (nft.native.contract) { @@ -723,7 +732,7 @@ export function ChainFactory( } if (!fee) { - fee = await estimateFees(fromChain, toChain, nft, receiver); + fee = await estimateFees(fromChain, toChain, nft, receiver, extraFee); console.log(new BigNumber(fee).toString()); } if (!(await toChain.validateAddress(receiver))) { @@ -733,6 +742,7 @@ export function ChainFactory( throw new Error(`Mint with is not set`); } console.log(`Minting With : ${mw}`); + if (await isWrappedNft(nft, fromChain.getNonce())) { await algoOptInCheck(nft, toChain, receiver); @@ -743,6 +753,7 @@ export function ChainFactory( new BigNumber(fee), toChain.getNonce().toString() ); + return res; } else { const res = await fromChain.transferNftToForeign( @@ -754,6 +765,7 @@ export function ChainFactory( mw, gasLimit ); + return res; } }, diff --git a/tsconfig.json b/tsconfig.json index 4315184e8..4c4df051a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,7 @@ "incremental": false, "target": "es2017", "outDir": "./dist", + //"outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs", From 5d400b3b512f758ec2f2a00dbf5995ac60062704 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 5 Sep 2022 14:16:33 +0300 Subject: [PATCH 658/956] change multiple rpcs --- src/consts.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 2146c15ba..649c15ede 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -31,10 +31,10 @@ import { NearHelper, NearParams, nearHelperFactory } from "./helpers/near"; export enum TestNetRpcUri { ELROND = "https://devnet-gateway.elrond.com", HECO = "https://http-testnet.hecochain.com", - BSC = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/bsc/testnet", - ROPSTEN = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/eth/ropsten", + BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", + ROPSTEN = "https://ropsten.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", - POLYGON = "https://speedy-nodes-nyc.moralis.io/3749d19c2c6dbb6264f47871/polygon/mumbai", + POLYGON = "https://matic-mumbai.chainstacklabs.com", FANTOM = "https://rpc.testnet.fantom.network/", TRON = "https://api.shasta.trongrid.io/", CELO = "https://alfajores-forno.celo-testnet.org", @@ -81,6 +81,8 @@ export enum MainNetRpcUri { SECRET = "https://secret-4.api.trivium.network:9091", SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", NEAR = "https://rpc.mainnet.near.org", + MOONBEAM = "https://rpc.api.moonbeam.network", + ABEYCHAIN = "https://rpc.abeychain.com", // TODO: Algorand } From 3fa1fa2a20fab3d1b75a827eaf9ab849e648c7c5 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 5 Sep 2022 18:02:12 +0530 Subject: [PATCH 659/956] Near: Fix Initial Bugs --- src/factory/factories.ts | 2 ++ src/helpers/near.ts | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 20b56eca5..466f27609 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -346,6 +346,7 @@ export namespace ChainFactoryConfigs { rpcUrl: TestNetRpcUri.NEAR, bridge: "xpbridge.testnet", xpnft: "xpnft.testnet", + feeMargin, }, }; }; @@ -635,6 +636,7 @@ export namespace ChainFactoryConfigs { rpcUrl: MainNetRpcUri.NEAR, bridge: "", xpnft: "", + feeMargin, }, }; }; diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 09395398a..2dacaa2f5 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -9,6 +9,8 @@ import { Chain } from "../consts"; import { ChainNonceGet, EstimateTxFees, + FeeMargins, + GetFeeMargins, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -20,6 +22,7 @@ export type NearParams = { rpcUrl: string; bridge: string; xpnft: string; + feeMargin: FeeMargins; }; export type NearNFT = { tokenId: string; @@ -29,12 +32,16 @@ export type NearHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & - ValidateAddress; + ValidateAddress & { + XpNft: string; + } & GetFeeMargins; export async function nearHelperFactory({ networkId, bridge, rpcUrl, + xpnft, + feeMargin, }: NearParams): Promise { const near = await connect({ nodeUrl: rpcUrl, @@ -59,6 +66,7 @@ export async function nearHelperFactory({ getNonce() { return Chain.NEAR; }, + XpNft: xpnft, async transferNftToForeign( sender, chain_nonce, @@ -82,6 +90,9 @@ export async function nearHelperFactory({ ); return resp; }, + getFeeMargin() { + return feeMargin; + }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { const minter = await getMinter(sender); const resp = minter.withdraw_nft( From 402b6d0991095ccd10eb8ef442394fb6b2d8353d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 5 Sep 2022 18:20:13 +0530 Subject: [PATCH 660/956] Skale: Change sFUEL to SKL --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 649c15ede..e43bb3c63 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -425,7 +425,7 @@ CHAIN_INFO.set(Chain.SKALE, { blockExplorerUrl: "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", constructor: web3HelperFactory, - currency: SupportedCurrency.sFUEL, + currency: SupportedCurrency.SKL, decimals: 1e18, chainId: 1564830818, nonce: Chain.SKALE, From 708a6c3e7b69d6868dd06fc558b88563cbb47e66 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 5 Sep 2022 17:09:45 +0300 Subject: [PATCH 661/956] change sfuel to skl --- src/consts.ts | 2 +- src/factory/index.ts | 1 + yarn.lock | 8386 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 8388 insertions(+), 1 deletion(-) create mode 100644 yarn.lock diff --git a/src/consts.ts b/src/consts.ts index 649c15ede..e43bb3c63 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -425,7 +425,7 @@ CHAIN_INFO.set(Chain.SKALE, { blockExplorerUrl: "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", constructor: web3HelperFactory, - currency: SupportedCurrency.sFUEL, + currency: SupportedCurrency.SKL, decimals: 1e18, chainId: 1564830818, nonce: Chain.SKALE, diff --git a/src/factory/index.ts b/src/factory/index.ts index aa893ebb0..9c3a15f17 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -405,6 +405,7 @@ export function ChainFactory( nft as any, "" ); + let conv = await calcExchangeFees( fromChain.getNonce(), toChain.getNonce(), diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..98519342c --- /dev/null +++ b/yarn.lock @@ -0,0 +1,8386 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7", "@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/runtime@7.11.2": + version "7.11.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== + dependencies: + regenerator-runtime "^0.13.4" + +"@cosmjs/encoding@0.27.1": + version "0.27.1" + resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.27.1.tgz#3cd5bc0af743485eb2578cdb08cfa84c86d610e1" + integrity sha512-rayLsA0ojHeniaRfWWcqSsrE/T1rl1gl0OXVNtXlPwLJifKBeLEefGbOUiAQaT0wgJ8VNGBazVtAZBpJidfDhw== + dependencies: + base64-js "^1.3.0" + bech32 "^1.1.4" + readonly-date "^1.0.0" + +"@cosmjs/math@0.27.1": + version "0.27.1" + resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.27.1.tgz#be78857b008ffc6b1ed6fecaa1c4cd5bc38c07d7" + integrity sha512-cHWVjmfIjtRc7f80n7x+J5k8pe+vTVTQ0lA82tIxUgqUvgS6rogPP/TmGtTiZ4+NxWxd11DUISY6gVpr18/VNQ== + dependencies: + bn.js "^5.2.0" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@dfinity/agent@^0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@dfinity/agent/-/agent-0.11.3.tgz#3363b1dbaa10a6e5cfe25e269316e2416fd3d11d" + integrity sha512-pqiogLey6S83SG5BS93hBCtXfGRW6tkxa8Y0c9HwxOP/wRoVEuKHdTcOn7rL/HN4mDTwxkdqK4EC1Kv24S1q4Q== + dependencies: + base64-arraybuffer "^0.2.0" + bignumber.js "^9.0.0" + borc "^2.1.1" + js-sha256 "0.9.0" + simple-cbor "^0.4.1" + +"@dfinity/candid@^0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@dfinity/candid/-/candid-0.11.3.tgz#aed66124751545522acf9bde7cdc22b5d9ce31df" + integrity sha512-xX7xNj2lLt7SIlvy0sqNp4fpcTD/xnwEu9APj0tnIF64cnsxIiS12T1Z8jl9g80jCQ1CbRPQf4cfsOfS3Cd2OA== + +"@dfinity/identity@^0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@dfinity/identity/-/identity-0.12.2.tgz#297a15cf73ffe29c9334d32946738e8b0a53837e" + integrity sha512-JebcS29x3nsUK+qdF0FNSnx4IQ1xYiFB9mHpbGT3/MFe52s40DxL4CvsaZ8zAjDnusQnTJLzqLWGM7oo0QqwyQ== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + borc "^2.1.1" + js-sha256 "^0.9.0" + secp256k1 "^4.0.2" + ts-node "^10.8.2" + tweetnacl "^1.0.1" + vitest "^0.18.0" + +"@dfinity/nns@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@dfinity/nns/-/nns-0.5.0.tgz#f34244c9b79597edd78bfb8793cca7ac9771c38d" + integrity sha512-zFZswSTRx5VsyuC6cufmHibTXLbIfzhvzitB8X4i6tpGLT/0K7gMpKR6gYsDyG/Gq+aF2Z6CxEfE/RJIGQGbSw== + dependencies: + "@dfinity/agent" "^0.11.3" + "@dfinity/candid" "^0.11.3" + "@dfinity/principal" "^0.11.3" + crc "^4.1.1" + crc-32 "^1.2.2" + google-protobuf "^3.20.1" + js-sha256 "^0.9.0" + randombytes "^2.1.0" + +"@dfinity/principal@^0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@dfinity/principal/-/principal-0.11.3.tgz#2130a7673bb8c2d404bc9842136547a91cb3edd2" + integrity sha512-+AJGDJ+RsveybSdxuTQFr2DPNZFpPfXnyixAOFWWdElVniSwnO/SwqQChR0AWvJdy/fKqoAXK+ZzyLG0uqSetA== + +"@elrondnetwork/bls-wasm@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@elrondnetwork/bls-wasm/-/bls-wasm-0.3.3.tgz#5164a95f39727c53dba877bf43c0374bca9f01eb" + integrity sha512-neCzWRk8pZsOBeAI3+t8jgiSkqj/y4IJPOMKG4ebL1+MiOFayygmfDvfZrK57RSoMWvDfXHlhTL25DrI+EtH+w== + dependencies: + assert "^2.0.0" + perf_hooks "0.0.1" + +"@elrondnetwork/erdjs@9.0.3": + version "9.0.3" + resolved "https://registry.yarnpkg.com/@elrondnetwork/erdjs/-/erdjs-9.0.3.tgz#3909874096778d75e622d9f3a661ff690f54ec5d" + integrity sha512-xOBzlFXkx2avMFTrZrgKoSSJbBUlZnSobpDaMzs4hqvUYr/xAN2y+nbMFJqaLcfKxf5ALGolnbqhprHLNfWpEQ== + dependencies: + "@babel/runtime" "7.11.2" + "@elrondnetwork/bls-wasm" "0.3.3" + "@elrondnetwork/hw-app-elrond" "0.3.2" + "@ledgerhq/hw-transport-u2f" "^5.36.0-deprecated" + "@ledgerhq/hw-transport-webhid" "^6.11.2" + "@ledgerhq/hw-transport-webusb" "6.11.2" + "@walletconnect/client" "1.6.5" + abort-controller "3.0.0" + axios "0.24.0" + bech32 "1.1.4" + bignumber.js "9.0.1" + bip39 "3.0.2" + blake2b "2.1.3" + buffer "6.0.3" + ed25519-hd-key "1.1.2" + json-bigint "1.0.0" + json-duplicate-key-handle "1.0.0" + keccak "^3.0.1" + platform "1.3.6" + protobufjs "6.10.2" + qs "6.10.1" + scryptsy "2.1.0" + tweetnacl "1.0.3" + uuid "8.3.2" + +"@elrondnetwork/hw-app-elrond@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@elrondnetwork/hw-app-elrond/-/hw-app-elrond-0.3.2.tgz#3c01cda58a58a63e7e3caf1b36ac8d5909550fb2" + integrity sha512-5TGnKuFQC6g4J9ipqEH5T71TEgGPDyU68lxdiF60qwQO5W0GaYvHKJiKe9rQdra5bCM04/4klMZDAg3BKqRoTw== + dependencies: + "@ledgerhq/hw-transport" "^5.19.1" + "@ledgerhq/hw-transport-node-hid" "^5.19.1" + bip32-path "^0.4.2" + flow-copy-source "^2.0.9" + flow-typed "^3.2.1" + +"@esbuild/linux-loong64@0.15.7": + version "0.15.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz#1ec4af4a16c554cbd402cc557ccdd874e3f7be53" + integrity sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw== + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" + integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.5" + +"@ethereumjs/tx@^3.3.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" + integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== + dependencies: + "@ethereumjs/common" "^2.6.4" + ethereumjs-util "^7.1.5" + +"@ethersproject/abi@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" + integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== + dependencies: + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + 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" + +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + 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" + +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.5.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + 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" + +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.5.0", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + 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" + +"@ethersproject/base64@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" + integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.5.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" + integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" + integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + bn.js "^4.11.9" + +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.5.0", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" + integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== + dependencies: + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.5.0", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.5.0", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/contracts@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + +"@ethersproject/hash@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" + integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== + dependencies: + "@ethersproject/abstract-signer" "^5.5.0" + "@ethersproject/address" "^5.5.0" + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.5.0", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + 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" + +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" + integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + js-sha3 "0.8.0" + +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.5.0", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.5.0", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@ethersproject/networks@5.7.0", "@ethersproject/networks@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.0.tgz#df72a392f1a63a57f87210515695a31a245845ad" + integrity sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/pbkdf2@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" + integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + +"@ethersproject/properties@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" + integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== + dependencies: + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.5.0", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/providers@5.7.0", "@ethersproject/providers@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.0.tgz#a885cfc7650a64385e7b03ac86fe9c2d4a9c2c63" + integrity sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" + integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/sha2@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" + integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + hash.js "1.1.7" + +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.5.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + 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" + +"@ethersproject/solidity@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" + integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== + dependencies: + "@ethersproject/bignumber" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/keccak256" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/sha2" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/strings@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" + integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/constants" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.5.0", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + 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" + +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" + integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== + dependencies: + "@ethersproject/base64" "^5.5.0" + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + +"@ethersproject/web@5.7.0", "@ethersproject/web@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.0.tgz#40850c05260edad8b54827923bbad23d96aac0bc" + integrity sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA== + 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" + +"@ethersproject/wordlists@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" + integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== + dependencies: + "@ethersproject/bytes" "^5.5.0" + "@ethersproject/hash" "^5.5.0" + "@ethersproject/logger" "^5.5.0" + "@ethersproject/properties" "^5.5.0" + "@ethersproject/strings" "^5.5.0" + +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@grpc/grpc-js@^1.5.3": + version "1.6.12" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.12.tgz#20f710d8a8c5c396b2ae9530ba6c06b984614fdf" + integrity sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw== + dependencies: + "@grpc/proto-loader" "^0.7.0" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.7.0": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.2.tgz#fa63178853afe1473c50cff89fe572f7c8b20154" + integrity sha512-jCdyLIT/tdQ1zhrbTQnJNK5nbDf0GoBpy5jVNywBzzMDF+Vs6uEaHnfz46dMtDxkvwrF2hzk5Z67goliceH0sA== + dependencies: + "@types/long" "^4.0.1" + lodash.camelcase "^4.3.0" + long "^4.0.0" + protobufjs "^7.0.0" + yargs "^16.2.0" + +"@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@hashgraph/cryptography@^1.1.0-beta.5": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@hashgraph/cryptography/-/cryptography-1.4.1.tgz#7dcba4bc867037d2f192c419ceb48e3725e09e95" + integrity sha512-Qx7fl58Upyf1C4Xdqo2DdMaELYAni3RpAr6fVux3tpGUwp0Wo+zaWseW7k2Klg+FPlmjOjL8XBCXkOr1AbHYWQ== + dependencies: + bignumber.js "^9.0.2" + crypto-js "^4.1.1" + elliptic "^6.5.4" + js-base64 "^3.7.2" + tweetnacl "^1.0.3" + utf8 "^3.0.0" + +"@hashgraph/hethers@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hashgraph/hethers/-/hethers-1.1.2.tgz#f665b0068b9ec5423181ce6cc2f07db096174732" + integrity sha512-DezQCwm86oQCIXfDwJI6G+/RI0YPy9a/Ho/z3CRUSY9/1gBB0ZFRSK9HUovlrj30eyNtWVeIrHsYE+ZerQI5rQ== + dependencies: + "@ethersproject/solidity" "5.5.0" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.2" + "@hethers/address" "1.1.0" + "@hethers/constants" "1.1.0" + "@hethers/contracts" "1.1.1" + "@hethers/hdnode" "1.1.1" + "@hethers/json-wallets" "1.1.1" + "@hethers/logger" "1.1.0" + "@hethers/networks" "1.1.0" + "@hethers/providers" "1.1.1" + "@hethers/signing-key" "1.1.0" + "@hethers/transactions" "1.1.1" + "@hethers/units" "1.1.0" + "@hethers/wallet" "1.1.1" + +"@hashgraph/proto@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@hashgraph/proto/-/proto-2.1.5.tgz#665202dc2c0fe099a5a07018bc82a409cb0933be" + integrity sha512-7iKO98T3iS+V+Ddy3Ew7+u8nzFT8MjRs6HczPE2scCjwKRhsodtYfGyOxVji+HN6WDqZmylr1VJwhNy5de/CRQ== + dependencies: + long "^4.0.0" + protobufjs "^6.11.2" + +"@hashgraph/sdk@2.11.0-beta.1": + version "2.11.0-beta.1" + resolved "https://registry.yarnpkg.com/@hashgraph/sdk/-/sdk-2.11.0-beta.1.tgz#bc2d2dbc2c8768c78836dcaf108ec624887578d7" + integrity sha512-rpUSg0c580paop1uOvHhUFt7WGnDuvqC0iDpBr0Bp2jTOhgL12AOG5sF0RF/bEQfwAdsizgRBTT24xhmk07yhA== + dependencies: + "@grpc/grpc-js" "^1.5.3" + "@hashgraph/cryptography" "^1.1.0-beta.5" + "@hashgraph/proto" "2.1.5" + bignumber.js "^9.0.2" + crypto-js "^4.1.1" + js-base64 "^3.7.2" + js-logger "^1.6.1" + long "^4.0.0" + protobufjs "^6.11.2" + utf8 "^3.0.0" + +"@hethers/abstract-provider@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/abstract-provider/-/abstract-provider-1.1.1.tgz#1f1f946f5970cd56dd9a46b09dfaa0f66e8074a6" + integrity sha512-s3u4Cu2qpdWgLh7oYf/evCFk7sgZYlaaIhje6BMXFN+jOKgWWQA6MSECqHSc6h9p9eNEsKt1HmM7yWClikrzyQ== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/web" "5.5.0" + "@hethers/logger" "1.1.0" + "@hethers/networks" "1.1.0" + "@hethers/transactions" "1.1.1" + +"@hethers/abstract-signer@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.1.tgz#60d95c45811bad09c5eda9236b7ba3b9935c65bb" + integrity sha512-g6NyaC/Fwj+l30MqMudKRgL/zNJUcHFdJ5ZdRJAeJaOVBRl7Za3X/2Fz9/A1YJocnhvZFBygq67fl25a+1aKYw== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/abstract-provider" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/transactions" "1.1.1" + +"@hethers/abstract-signer@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hethers/abstract-signer/-/abstract-signer-1.1.2.tgz#f42d02b1d5763b77535ad5236174c476a4e9357d" + integrity sha512-F66cbneTByr/BlfXvXsZ1wfjxXAa1daTMV0YNWrBgsjuT/xZxyqfuEMCNeHVYSd91S7gNlGGdGcEqKcqlJpVew== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/abstract-provider" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/transactions" "1.1.1" + +"@hethers/address@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/address/-/address-1.1.0.tgz#2b7f7d49524f211f12f27eedef68ed75cfebab53" + integrity sha512-aqZvvLe9n0Tc72aAGgjTR9NWLV+rcL9ORq9GOh9tuQ4GeY4XLT1vcI+liXMpjvDxAgEXfsgUWPW9MsZ7DOHSmA== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@hethers/logger" "1.1.0" + +"@hethers/constants@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/constants/-/constants-1.1.0.tgz#7c8b31e93b2e3ae77377880f66cb9ca23f9014cf" + integrity sha512-cto4CMH5bbLdzKyIHnBVx7aW1bipi92u94PBvXD3+EEdYgWMMSFhsAhNtpRo0YNovfG6Vqi5eqs+JM71bncnGw== + dependencies: + "@ethersproject/bignumber" "5.5.0" + +"@hethers/contracts@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/contracts/-/contracts-1.1.1.tgz#5f56f2741d46b810476f7d0a39b3c1f7a4019722" + integrity sha512-72zte2dgoLBnsf5DU1YtfbWvQ9OZh6S1qdBdRCxaNBc/3p0lTuxPWcerIuLeKV/HtDKnwSU4mYIoO46FWyZ2eA== + dependencies: + "@ethersproject/abi" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/providers" "1.1.1" + "@hethers/transactions" "1.1.1" + +"@hethers/hdnode@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/hdnode/-/hdnode-1.1.1.tgz#9c2a53f496b405ae8636dabeecf62bcd6b99c365" + integrity sha512-/yECuQAUaCGIhcDG3x81XJOH6nDwahfMpSq7B7AWl+buS7tswBF9fYwAD/G9SzgnjB9LlIaBWCJcK1/Z5sU39g== + dependencies: + "@ethersproject/basex" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/pbkdf2" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/sha2" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@ethersproject/wordlists" "5.5.0" + "@hethers/abstract-signer" "1.1.1" + "@hethers/logger" "1.1.0" + "@hethers/signing-key" "1.1.0" + "@hethers/transactions" "1.1.1" + +"@hethers/json-wallets@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/json-wallets/-/json-wallets-1.1.1.tgz#8746dada5206e9ef819056ae856fdffe20de70d9" + integrity sha512-GtEHrKex0B0u3EdTX6tYrMpYESvS1zZNraE1Q/gFyWpB/VmwEze2aUApdcEDnWiOJOvZhg5E8QOaSZeHzMS0SQ== + dependencies: + "@ethersproject/bytes" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/pbkdf2" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/random" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@hethers/abstract-signer" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/hdnode" "1.1.1" + "@hethers/logger" "1.1.0" + "@hethers/transactions" "1.1.1" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@hethers/logger@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/logger/-/logger-1.1.0.tgz#946017e30fd6b573f744d9bc76d005dd07e39549" + integrity sha512-EZAM5kirlNobe6auj7AUS1QyNOxunm9ZglatkC0fIx+9y4tEQsrx4asu5r2SPg1fgZiJ9mk2DbaidMWuHSr3kA== + +"@hethers/networks@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/networks/-/networks-1.1.0.tgz#55011e436566a0e34c8e3cab81ffd7eb16f709d0" + integrity sha512-xtS+5KHlyXND+1CbUCeMPJrqlyDk7ayhcxeAKSc7aHyHm1/wa3xI45W6tJj+AMDC8sGS5GZvAU3YrKSkUGTFdw== + dependencies: + "@hethers/address" "1.1.0" + "@hethers/logger" "1.1.0" + +"@hethers/providers@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/providers/-/providers-1.1.1.tgz#4dd374a75aeb99a03e93859b22d6f859dede8ec4" + integrity sha512-6CdwiB7GVD7tFm7G1mLemoVKgZ8KNiQvTTEyFxqazRFW6G8unVW07S104+hq/jfVL2eMoZP0O3LZLD+ny5Jelg== + dependencies: + "@ethersproject/base64" "5.5.0" + "@ethersproject/basex" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/hash" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/random" "5.5.0" + "@ethersproject/sha2" "5.5.0" + "@ethersproject/strings" "5.5.0" + "@ethersproject/web" "5.5.0" + "@hashgraph/proto" "2.1.5" + "@hashgraph/sdk" "2.11.0-beta.1" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/constants" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/networks" "1.1.0" + "@hethers/transactions" "1.1.1" + "@types/axios" "^0.14.0" + axios "^0.24.0" + bech32 "1.1.4" + ws "7.4.6" + +"@hethers/signing-key@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/signing-key/-/signing-key-1.1.0.tgz#796c450d1245552db74bfb34778ff71ce18fbff9" + integrity sha512-Xf+0a2DI3hLcnx2reFO5B7+JSwJMNc9iyb1iWtxi0h6dgrHIF5h0bdRJXSY8a19953hZ6jhDvk5RwEzDaamUqw== + dependencies: + "@ethersproject/bytes" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/logger" "1.1.0" + bn.js "^4.11.9" + elliptic "6.5.4" + hash.js "1.1.7" + +"@hethers/transactions@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/transactions/-/transactions-1.1.1.tgz#9e6bfa02547bede017065647eede0d49c1e3c23e" + integrity sha512-M4EL3l/xJ3MmtWSQEm8ZpD9LJUd9LPEi106VfBEL/ns/xcTW6wRlIw+xwLHdqDibZ8/Niu8SYN18LbHp/zY6ng== + dependencies: + "@ethersproject/base64" "5.5.0" + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@hethers/address" "1.1.0" + "@hethers/constants" "1.1.0" + "@hethers/logger" "1.1.0" + "@hethers/signing-key" "1.1.0" + +"@hethers/units@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@hethers/units/-/units-1.1.0.tgz#765cab6f4aa3fdb21687c6e4bd62a5587e98044c" + integrity sha512-FNxIQalKF4TbgtpEicN9U0HPjlIhnXF1iNouxy1QzQVt58j+elJ6pj7d6Ht5LtwTW/UogGfx95803DZFXqrIhw== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@hethers/logger" "1.1.0" + +"@hethers/wallet@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@hethers/wallet/-/wallet-1.1.1.tgz#f1eddf7e4a77b821faa85392745ef404655e9f96" + integrity sha512-tg6vrjZL1t1FQziCat7zBx2IjqfFbWsQv5WwZkHPjn7Y/lFzmZuVYdh90t7/p3rquC96VGdmqYa/557qdotzRw== + dependencies: + "@ethersproject/bignumber" "5.5.0" + "@ethersproject/bytes" "5.5.0" + "@ethersproject/hash" "5.5.0" + "@ethersproject/keccak256" "5.5.0" + "@ethersproject/properties" "5.5.0" + "@ethersproject/random" "5.5.0" + "@ethersproject/wordlists" "5.5.0" + "@hashgraph/sdk" "2.11.0-beta.1" + "@hethers/abstract-provider" "1.1.1" + "@hethers/abstract-signer" "1.1.1" + "@hethers/address" "1.1.0" + "@hethers/hdnode" "1.1.1" + "@hethers/json-wallets" "1.1.1" + "@hethers/logger" "1.1.0" + "@hethers/signing-key" "1.1.0" + "@hethers/transactions" "1.1.1" + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@improbable-eng/grpc-web-node-http-transport@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz#5a064472ef43489cbd075a91fb831c2abeb09d68" + integrity sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA== + +"@improbable-eng/grpc-web@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz#3e47e9fdd90381a74abd4b7d26e67422a2a04bef" + integrity sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg== + dependencies: + browser-headers "^0.4.1" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@json-rpc-tools/types@^1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@json-rpc-tools/types/-/types-1.7.6.tgz#5abd5fde01364a130c46093b501715bcce5bdc0e" + integrity sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ== + dependencies: + keyvaluestorage-interface "^1.0.0" + +"@json-rpc-tools/utils@^1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@json-rpc-tools/utils/-/utils-1.7.6.tgz#67f04987dbaa2e7adb6adff1575367b75a9a9ba1" + integrity sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw== + dependencies: + "@json-rpc-tools/types" "^1.7.6" + "@pedrouid/environment" "^1.0.1" + +"@ledgerhq/devices@^5.48.0", "@ledgerhq/devices@^5.51.1": + version "5.51.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" + integrity sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA== + dependencies: + "@ledgerhq/errors" "^5.50.0" + "@ledgerhq/logs" "^5.50.0" + rxjs "6" + semver "^7.3.5" + +"@ledgerhq/devices@^6.11.2": + version "6.27.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-6.27.1.tgz#3b13ab1d1ba8201e9e74a08f390560483978c962" + integrity sha512-jX++oy89jtv7Dp2X6gwt3MMkoajel80JFWcdc0HCouwDsV1mVJ3SQdwl/bQU0zd8HI6KebvUP95QTwbQLLK/RQ== + dependencies: + "@ledgerhq/errors" "^6.10.0" + "@ledgerhq/logs" "^6.10.0" + rxjs "6" + semver "^7.3.5" + +"@ledgerhq/devices@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-7.0.0.tgz#ba743aa6d0725562e8b1bd5c4f0b7db2cf573710" + integrity sha512-vq4B33WdU0dRAJIRFWZMj6w1W1yw1i4mekCmhk7N9wPaFrtGWZ2iI9WDihsNOBooCWKQe8Jsb9eD8RVThbSlFQ== + dependencies: + "@ledgerhq/errors" "^6.10.1" + "@ledgerhq/logs" "^6.10.0" + rxjs "6" + semver "^7.3.5" + +"@ledgerhq/errors@^5.34.0", "@ledgerhq/errors@^5.48.0", "@ledgerhq/errors@^5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" + integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== + +"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.10.1": + version "6.10.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.10.1.tgz#510688251b6261744c6b1cde6cfd2dfb13fc27b2" + integrity sha512-92d1zRQleR1AQ4CAXgWgDtKUms+8EwShLVUcajI+BLWvgJ1Vclmq6PsBIDEQbsm+riVu/Ji3LcHdmgFgmi0VGw== + +"@ledgerhq/hw-transport-node-hid-noevents@^5.51.1": + version "5.51.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.51.1.tgz#71f37f812e448178ad0bcc2258982150d211c1ab" + integrity sha512-9wFf1L8ZQplF7XOY2sQGEeOhpmBRzrn+4X43kghZ7FBDoltrcK+s/D7S+7ffg3j2OySyP6vIIIgloXylao5Scg== + dependencies: + "@ledgerhq/devices" "^5.51.1" + "@ledgerhq/errors" "^5.50.0" + "@ledgerhq/hw-transport" "^5.51.1" + "@ledgerhq/logs" "^5.50.0" + node-hid "2.1.1" + +"@ledgerhq/hw-transport-node-hid@^5.19.1": + version "5.51.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.51.1.tgz#fe8eb81e18929663540698c80905952cdbe542d5" + integrity sha512-Y2eVCCdhVs2Lfr7N2x2cNb+ogcZ24ZATO4QxaQ7LogjiPwYmzmvuXFn8zFjMSrKUCn9CtbptXcuiu0NkGsjWlw== + dependencies: + "@ledgerhq/devices" "^5.51.1" + "@ledgerhq/errors" "^5.50.0" + "@ledgerhq/hw-transport" "^5.51.1" + "@ledgerhq/hw-transport-node-hid-noevents" "^5.51.1" + "@ledgerhq/logs" "^5.50.0" + lodash "^4.17.21" + node-hid "2.1.1" + usb "^1.7.0" + +"@ledgerhq/hw-transport-u2f@^5.36.0-deprecated": + version "5.36.0-deprecated" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.36.0-deprecated.tgz#66e3ed399a117a1c0110871a055dd54f5fe707fd" + integrity sha512-T/+mGHIiUK/ZQATad6DMDmobCMZ1mVST952009jKzhaE1Et2Uy2secU+QhRkx3BfEAkvwa0zSRSYCL9d20Iqjg== + dependencies: + "@ledgerhq/errors" "^5.34.0" + "@ledgerhq/hw-transport" "^5.34.0" + "@ledgerhq/logs" "^5.30.0" + u2f-api "0.2.7" + +"@ledgerhq/hw-transport-web-ble@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-web-ble/-/hw-transport-web-ble-5.48.0.tgz#41b29293c263d8ed4200037eb6da4db3bd4268a6" + integrity sha512-ezgssFvxc4/UbfwIxwg9jEn0/yiND8TW6bDkaE3kAqKCa8ZYYgFtms8iRqjTOJlqcbSYkudbNhP74jtY0NxfdA== + dependencies: + "@ledgerhq/devices" "^5.48.0" + "@ledgerhq/errors" "^5.48.0" + "@ledgerhq/hw-transport" "^5.48.0" + "@ledgerhq/logs" "^5.48.0" + rxjs "^6.6.7" + +"@ledgerhq/hw-transport-webhid@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-5.48.0.tgz#aab2cffac3d5c97b04f093e2a0cbfe311dfdeab4" + integrity sha512-g6TYxgPX3MqP3jQ4SJaJjlM+2SwUSk4Si/9MeKLwz5ySbiD3bSTh/Gbzv8VBCaHPO4fILujc5vW/xejJuMzR8w== + dependencies: + "@ledgerhq/devices" "^5.48.0" + "@ledgerhq/errors" "^5.48.0" + "@ledgerhq/hw-transport" "^5.48.0" + "@ledgerhq/logs" "^5.48.0" + +"@ledgerhq/hw-transport-webhid@^6.11.2": + version "6.27.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.2.tgz#e3ee2501b1353a335d7436c1f2b95821d2b2f426" + integrity sha512-ZlyNheUhcxBZqjJzhSfJfeGQvNbeyWs9866rdQjVeG1zsbTJi0+6tfRv8J248QISS8vHtG5IMSxgMg9mtux9dQ== + dependencies: + "@ledgerhq/devices" "^7.0.0" + "@ledgerhq/errors" "^6.10.1" + "@ledgerhq/hw-transport" "^6.27.2" + "@ledgerhq/logs" "^6.10.0" + +"@ledgerhq/hw-transport-webusb@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-5.48.0.tgz#62e5bffffba853d4e06103f7c8e9b6c87ca0f994" + integrity sha512-tO+p11aRQx9q9ifmi/NCbCBKQ738lp+PROy1BWSzjCJcUEz1sKTLeRTLE2Xze25KebhuM2YR1NgkX5LN1z4upA== + dependencies: + "@ledgerhq/devices" "^5.48.0" + "@ledgerhq/errors" "^5.48.0" + "@ledgerhq/hw-transport" "^5.48.0" + "@ledgerhq/logs" "^5.48.0" + +"@ledgerhq/hw-transport-webusb@6.11.2": + version "6.11.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-6.11.2.tgz#d190709881e50f8c271efe956705b05e46b4649d" + integrity sha512-ReiYoypXybLQi1ekA+YQqsvbSj0wwTFH7Lg690eUkqZydjDd4lMjpZk7lDczsXp3wxTjE/mdAQ0bpNwZWmPTJw== + dependencies: + "@ledgerhq/devices" "^6.11.2" + "@ledgerhq/errors" "^6.10.0" + "@ledgerhq/hw-transport" "^6.11.2" + "@ledgerhq/logs" "^6.10.0" + +"@ledgerhq/hw-transport@^5.19.1", "@ledgerhq/hw-transport@^5.34.0", "@ledgerhq/hw-transport@^5.48.0", "@ledgerhq/hw-transport@^5.51.1": + version "5.51.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz#8dd14a8e58cbee4df0c29eaeef983a79f5f22578" + integrity sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw== + dependencies: + "@ledgerhq/devices" "^5.51.1" + "@ledgerhq/errors" "^5.50.0" + events "^3.3.0" + +"@ledgerhq/hw-transport@^6.11.2", "@ledgerhq/hw-transport@^6.27.2": + version "6.27.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.2.tgz#318e24b13b4bc392277d0b3b6fbc568f86b41f01" + integrity sha512-GF4pmK78rEKhZfbmunwQ131c+0MGa6L5IoYlwgFcg6CaFpUjjPiTCKUFsm4flsE0Z0Ltn9QuKoe+xEHULo7rGA== + dependencies: + "@ledgerhq/devices" "^7.0.0" + "@ledgerhq/errors" "^6.10.1" + events "^3.3.0" + +"@ledgerhq/logs@^5.30.0", "@ledgerhq/logs@^5.48.0", "@ledgerhq/logs@^5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" + integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== + +"@ledgerhq/logs@^6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.0.tgz#c012c1ecc1a0e53d50e6af381618dca5268461c1" + integrity sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw== + +"@noble/ed25519@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.0.tgz#583ac38340a479314b9e348d4572101ed9492f9d" + integrity sha512-LeAxFK0+181zQOhOUuKE8Jnd3duzYhDNd3iCLxpmzA5K+e4I1FdbrK3Ot0ZHBwZMeRD/6EojyUfTbpHZ+hkQHg== + +"@noble/hashes@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.0.0.tgz#d5e38bfbdaba174805a4e649f13be9a9ed3351ae" + integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== + +"@noble/hashes@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" + integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== + +"@noble/secp256k1@1.6.3", "@noble/secp256k1@^1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" + integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@octokit/auth-token@^2.4.4": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== + dependencies: + "@octokit/types" "^6.0.3" + +"@octokit/core@^3.5.1": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" + integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== + dependencies: + "@octokit/auth-token" "^2.4.4" + "@octokit/graphql" "^4.5.8" + "@octokit/request" "^5.6.3" + "@octokit/request-error" "^2.0.5" + "@octokit/types" "^6.0.3" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.12" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== + dependencies: + "@octokit/types" "^6.0.3" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.5.8": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" + integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== + dependencies: + "@octokit/request" "^5.6.0" + "@octokit/types" "^6.0.3" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^12.11.0": + version "12.11.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== + +"@octokit/plugin-paginate-rest@^2.16.8": + version "2.21.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" + integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== + dependencies: + "@octokit/types" "^6.40.0" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^5.12.0": + version "5.16.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" + integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== + dependencies: + "@octokit/types" "^6.39.0" + deprecation "^2.3.1" + +"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== + dependencies: + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@^18.12.0": + version "18.12.0" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== + dependencies: + "@octokit/core" "^3.5.1" + "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0": + version "6.41.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== + dependencies: + "@octokit/openapi-types" "^12.11.0" + +"@osmonauts/helpers@0.3.8": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@osmonauts/helpers/-/helpers-0.3.8.tgz#77a57cdd20922cd477f21de9662a403620e2c848" + integrity sha512-6xM/DGjLctziRVT2DuR7/MQ/HqfHAcqOaGF4z77Jeh3RWQ78zWiaRVxBefRQdKaqrh5LhXL6VebUdiy9IGwTTA== + dependencies: + "@babel/runtime" "^7.18.3" + long "^5.2.0" + protobufjs "^6.11.3" + +"@peculiar/asn1-schema@^2.1.6": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.0.tgz#5368416eb336138770c692ffc2bab119ee3ae917" + integrity sha512-DtNLAG4vmDrdSJFPe7rypkcj597chNQL7u+2dBtYo5mh7VW2+im6ke+O0NVr8W1f4re4C3F71LhoMb0Yxqa48Q== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.0.22", "@peculiar/webcrypto@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.0.tgz#f941bd95285a0f8a3d2af39ccda5197b80cd32bf" + integrity sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg== + dependencies: + "@peculiar/asn1-schema" "^2.1.6" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.2" + tslib "^2.4.0" + webcrypto-core "^1.7.4" + +"@pedrouid/environment@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" + integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== + +"@project-serum/anchor@^0.25.0-beta.1": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.25.0.tgz#88ee4843336005cf5a64c80636ce626f0996f503" + integrity sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A== + dependencies: + "@project-serum/borsh" "^0.2.5" + "@solana/web3.js" "^1.36.0" + base64-js "^1.5.1" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^5.3.1" + cross-fetch "^3.1.5" + crypto-hash "^1.3.0" + eventemitter3 "^4.0.7" + js-sha256 "^0.9.0" + pako "^2.0.3" + snake-case "^3.0.4" + superstruct "^0.15.4" + toml "^3.0.0" + +"@project-serum/borsh@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@project-serum/borsh/-/borsh-0.2.5.tgz#6059287aa624ecebbfc0edd35e4c28ff987d8663" + integrity sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@randlabs/communication-bridge@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@randlabs/communication-bridge/-/communication-bridge-1.0.0.tgz#9b1c0f440cf88ede8d58eb2ce641982ecb32bea9" + integrity sha512-CuJNwtMTG1LHR1LQNWUPv+8xPUdkRY9p61wGJEp8J/N3q8djmnMySvSQlyVqLBvXsTPKmYc0ZmfXEXCpb5P5Cw== + +"@randlabs/myalgo-connect@^1.1.1": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.3.0.tgz#d591e578b3202a7ef7888a05948cfb836e5704c2" + integrity sha512-ujHa/7f0g1yHNr1ZZO8d/AF7WTTEFGS76D8aDUV4DmoxUX6mVS4IzED88j0wys7TRCJbjGib2vcPg3Y8nKxsMw== + dependencies: + "@randlabs/communication-bridge" "^1.0.0" + +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@socket.io/component-emitter@~3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" + integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== + +"@solana/buffer-layout-utils@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" + integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/web3.js" "^1.32.0" + bigint-buffer "^1.1.5" + bignumber.js "^9.0.1" + +"@solana/buffer-layout@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz#75b1b11adc487234821c81dfae3119b73a5fd734" + integrity sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ== + dependencies: + buffer "~6.0.3" + +"@solana/spl-token@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.2.0.tgz#329bb6babb5de0f9c40035ddb1657f01a8347acd" + integrity sha512-RWcn31OXtdqIxmkzQfB2R+WpsJOVS6rKuvpxJFjvik2LyODd+WN58ZP3Rpjpro03fscGAkzlFuP3r42doRJgyQ== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/buffer-layout-utils" "^0.2.0" + "@solana/web3.js" "^1.32.0" + start-server-and-test "^1.14.0" + +"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2": + version "1.56.2" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.56.2.tgz#5212e8b147ebc216ea5a7aa99d5b555ebe41f9bd" + integrity sha512-ByWfNA8H/1EB4g0749uhkQ0zZZAQealzRmmT3UMIv3xe0DeHwnrzQUavBtAlHNMrKqLHu8kd+XtPci6zreMjjA== + dependencies: + "@babel/runtime" "^7.12.5" + "@noble/ed25519" "^1.7.0" + "@noble/hashes" "^1.1.2" + "@noble/secp256k1" "^1.6.3" + "@solana/buffer-layout" "^4.0.0" + bigint-buffer "^1.1.5" + bn.js "^5.0.0" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.1" + fast-stable-stringify "^1.0.0" + jayson "^3.4.4" + js-sha3 "^0.8.0" + node-fetch "2" + rpc-websockets "^7.5.0" + superstruct "^0.14.2" + +"@stablelib/binary@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== + dependencies: + "@stablelib/int" "^1.0.1" + +"@stablelib/blake2b@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/blake2b/-/blake2b-1.0.1.tgz#0045a77e182c4cf3260bc9b533fc4cd5c287f8ea" + integrity sha512-B3KyKoBAjkIFeH7romcF96i+pVFYk7K2SBQ1pZvaxV+epSBXJ+n0C66esUhyz6FF+5FbdQVm77C5fzGFcEZpKA== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/bytes@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" + integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== + +"@stablelib/constant-time@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" + integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== + +"@stablelib/ed25519@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996" + integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg== + dependencies: + "@stablelib/random" "^1.0.2" + "@stablelib/sha512" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hash@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" + integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== + +"@stablelib/int@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== + +"@stablelib/keyagreement@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f" + integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== + dependencies: + "@stablelib/bytes" "^1.0.1" + +"@stablelib/nacl@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@stablelib/nacl/-/nacl-1.0.4.tgz#b63e0a1b87eccb13ad91dd46b2382112acfa417e" + integrity sha512-PJ2U/MrkXSKUM8C4qFs87WeCNxri7KQwR8Cdwm9q2sweGuAtTvOJGuW0F3N+zn+ySLPJA98SYWSSpogMJ1gCmw== + dependencies: + "@stablelib/poly1305" "^1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/wipe" "^1.0.1" + "@stablelib/x25519" "^1.0.3" + "@stablelib/xsalsa20" "^1.0.2" + +"@stablelib/poly1305@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc" + integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/random@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" + integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/salsa20@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/salsa20/-/salsa20-1.0.2.tgz#95177331f89a59d1c90f153f53265c925d4de138" + integrity sha512-nfjKzw0KTKrrKBasEP+j7UP4I8Xudom8lVZIBCp0kQNARXq72IlSic0oabg2FC1NU68L4RdHrNJDd8bFwrphYA== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha512@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" + integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/wipe@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== + +"@stablelib/x25519@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" + integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== + dependencies: + "@stablelib/keyagreement" "^1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/xsalsa20@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/xsalsa20/-/xsalsa20-1.0.2.tgz#89efc22a7ba432880ef11d876fdeba13529ccdc4" + integrity sha512-7XdBGbcNgBShmuhDXv1G1WPVCkjZdkb1oPMzSidO7Fve0MHntH6TjFkj5bfLI+aRE+61weO076vYpP/jmaAYog== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/salsa20" "^1.0.2" + "@stablelib/wipe" "^1.0.1" + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + +"@taquito/http-utils@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-13.0.1.tgz#b682b7161ce8011afdea1b06750ad21e15916c63" + integrity sha512-eHzd0HSL3qX6bOOSaQClm+0XmpbSNcJP69uzaBJwfXo7ntQR1bUfGLn6+1Hgsk/lJ0JxakD2PDA4aaeajHvyPw== + dependencies: + axios "^0.26.0" + +"@taquito/local-forging@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/local-forging/-/local-forging-13.0.1.tgz#b87d7d478457d32338cc8e5eeeca072518241595" + integrity sha512-2n1ryUzHBIOHiQYRO7ELQaurjoNhJ3KUUcX0dAnFs3xVxUBugHgDPot+T+1rNZDdLVhTS6mmK796xrWDGnO6xw== + dependencies: + "@taquito/utils" "^13.0.1" + bignumber.js "^9.0.2" + +"@taquito/michel-codec@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/michel-codec/-/michel-codec-13.0.1.tgz#cfadbd5886724b861d82f75b6f679104573dc7bb" + integrity sha512-A9MxhDMdTTK31ty5Ke2wg4wkt7F/Y++tD8wq9YIFJzxt+MkpWX5b2i1f7yHXPsK/81YiGAi/LDamLtLCekY1LA== + +"@taquito/michelson-encoder@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/michelson-encoder/-/michelson-encoder-13.0.1.tgz#75c4650fe5839a64e42d1aac23997402c83a6ac6" + integrity sha512-U80vswMHlEDQUjvARZScIKrSZkIjxdYtDLvHu4oRZ9wTqTXSlj+t64G5QmZwTEJRQkbzfhsOOr6vL40ztL0tzw== + dependencies: + "@taquito/rpc" "^13.0.1" + "@taquito/utils" "^13.0.1" + bignumber.js "^9.0.2" + fast-json-stable-stringify "^2.1.0" + +"@taquito/rpc@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/rpc/-/rpc-13.0.1.tgz#bf1ad8347f9942e37af90d11ae29bd8d938f904d" + integrity sha512-f2Z0qzHB1ERLU5kewmXh3rAD84qIYthSjmAo04sWFbuaMgGW1HxMJKJ/EtL4s4VgoDUwahSwfATmVzmKg57BSw== + dependencies: + "@taquito/http-utils" "^13.0.1" + "@taquito/utils" "^13.0.1" + bignumber.js "^9.0.2" + +"@taquito/signer@^13.0.0": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/signer/-/signer-13.0.1.tgz#1b725e8438b9a383a81cc7d2fb4ea5c8ecc4f0aa" + integrity sha512-3C7DTC5u6jqA83kUGghEDEDJtwCNNmw0KIF+u6EdQ55YRxLDf8XBp8/voG3i+0HvU3MPqfg0CIvCUHbr8MO0Og== + dependencies: + "@stablelib/blake2b" "^1.0.1" + "@stablelib/ed25519" "^1.0.2" + "@stablelib/nacl" "^1.0.3" + "@taquito/taquito" "^13.0.1" + "@taquito/utils" "^13.0.1" + elliptic "^6.5.4" + pbkdf2 "^3.1.2" + typedarray-to-buffer "^4.0.0" + +"@taquito/taquito@^13.0.0", "@taquito/taquito@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-13.0.1.tgz#806812b6853db555fcd614048ba36db4d14d8a57" + integrity sha512-xNtcwKsOCHSkURO9G2VhKSeI9q0qh5/OkVuYe6KM0Fo40FthXNqq205I/FTJzu5E1Q73J7cFqA7FHqUrv276gw== + dependencies: + "@taquito/http-utils" "^13.0.1" + "@taquito/local-forging" "^13.0.1" + "@taquito/michel-codec" "^13.0.1" + "@taquito/michelson-encoder" "^13.0.1" + "@taquito/rpc" "^13.0.1" + "@taquito/utils" "^13.0.1" + bignumber.js "^9.0.2" + rxjs "^6.6.3" + +"@taquito/tzip12@^13.0.0": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/tzip12/-/tzip12-13.0.1.tgz#1b5207d1f68bd8c84a8f7a6ad6e94f2f9dc606e9" + integrity sha512-V3TPKL7sh5rj75NXjgNWCgM245LX2U/vQXA+rKebNKmHqNPcYZ7L5EmOzE5eLURkoxsuwLznCGhcL/xWQdMraA== + dependencies: + "@taquito/michelson-encoder" "^13.0.1" + "@taquito/taquito" "^13.0.1" + "@taquito/tzip16" "^13.0.1" + +"@taquito/tzip16@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/tzip16/-/tzip16-13.0.1.tgz#3c476b15d1c81e4cc89d88c76eee9601e5bd7b49" + integrity sha512-k+Vr1t2j7IqR/FuK5b3e7iGTA/VfltBwH+fdJEXssRjBH3jrWQxraR+CNkNuqkspn97dKe7TwwU4cJnqbh1sLA== + dependencies: + "@taquito/http-utils" "^13.0.1" + "@taquito/michelson-encoder" "^13.0.1" + "@taquito/rpc" "^13.0.1" + "@taquito/taquito" "^13.0.1" + "@taquito/utils" "^13.0.1" + bignumber.js "^9.0.2" + crypto-js "^4.1.1" + +"@taquito/utils@^13.0.1": + version "13.0.1" + resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-13.0.1.tgz#24a1c7d7e62043fc7dcba2838b391b28aea2992e" + integrity sha512-uRtsl4EATlVJ1UnNUiAEoibFFyexGLDLz02CBHoBrcWjqrZdj3AxA+TO63E2kWn/JmT2FM0Sqaqbm555lj4tow== + dependencies: + "@stablelib/blake2b" "^1.0.1" + "@stablelib/ed25519" "^1.0.2" + "@types/bs58check" "^2.1.0" + blakejs "^1.2.1" + bs58check "^2.1.2" + buffer "^6.0.3" + elliptic "^6.5.4" + typedarray-to-buffer "^4.0.0" + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/axios@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@types/axios/-/axios-0.14.0.tgz#ec2300fbe7d7dddd7eb9d3abf87999964cafce46" + integrity sha512-KqQnQbdYE54D7oa/UmYVMZKq7CO4l8DEENzOKc4aBRwxCXSlJXGz83flFx5L7AWrOQnmuN3kVsRdt+GZPPjiVQ== + dependencies: + axios "*" + +"@types/bn.js@^5.1.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" + integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== + dependencies: + "@types/node" "*" + +"@types/bs58check@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/bs58check/-/bs58check-2.1.0.tgz#7d25a8b88fe7a9e315d2647335ee3c43c8fdb0c0" + integrity sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ== + dependencies: + "@types/node" "*" + +"@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" + integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + +"@types/chai-subset@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" + integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw== + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^4.3.1": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" + integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== + +"@types/connect@^3.4.33": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/json-schema@^7.0.7": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/keyv@*": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/long@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^18.7.13": + version "18.7.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.15.tgz#20ae1ec80c57ee844b469f968a1cd511d4088b29" + integrity sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ== + +"@types/node@10.12.18": + version "10.12.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" + integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== + +"@types/node@11.11.6": + version "11.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" + integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== + +"@types/node@^10.3.2": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^12.12.54", "@types/node@^12.12.6": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + +"@types/node@^13.7.0": + version "13.13.52" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" + integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== + +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" + +"@types/responselike@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-3.0.0.tgz#5ecc1fc88552e5ac03de648a7796f9e125d002dc" + integrity sha512-zfgGLWx5IQOTJgQPD4UfGEhapTKUPC1ra/QCG02y3GUJWrhX05bBf/EfTh3aFj2DKi7cLo+cipXLNclD27tQXQ== + dependencies: + responselike "*" + +"@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/secp256k1@^4.0.1": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + dependencies: + "@types/node" "*" + +"@types/ws@^7.4.4": + version "7.4.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@^4.31.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== + dependencies: + "@typescript-eslint/experimental-utils" "4.33.0" + "@typescript-eslint/scope-manager" "4.33.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.9.1": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.28.3": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== + dependencies: + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +"@unimodules/core@*": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@unimodules/core/-/core-7.1.2.tgz#5181b99586476a5d87afd0958f26a04714c47fa1" + integrity sha512-lY+e2TAFuebD3vshHMIRqru3X4+k7Xkba4Wa7QsDBd+ex4c4N2dHAO61E2SrGD9+TRBD8w/o7mzK6ljbqRnbyg== + dependencies: + compare-versions "^3.4.0" + +"@unimodules/react-native-adapter@*": + version "6.3.9" + resolved "https://registry.yarnpkg.com/@unimodules/react-native-adapter/-/react-native-adapter-6.3.9.tgz#2f4bef6b7532dce5bf9f236e69f96403d0243c30" + integrity sha512-i9/9Si4AQ8awls+YGAKkByFbeAsOPgUNeLoYeh2SQ3ddjxJ5ZJDtq/I74clDnpDcn8zS9pYlcDJ9fgVJa39Glw== + dependencies: + expo-modules-autolinking "^0.0.3" + invariant "^2.2.4" + +"@vechain/connex-driver@^2.0.8": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@vechain/connex-driver/-/connex-driver-2.0.10.tgz#0c29bd66e46b511a3d66f3a68a0921914bf990fd" + integrity sha512-Ki/wUTG4OcPD8t0vCfwcgOJnyfHFiUlWTg/oU0CXwXC+0FeOSxtXOdAY6AyKlSETQKd7AM+PAdU6MqNBADx+Ew== + dependencies: + "@vechain/connex-types" "^2.0.2" + axios "^0.21.1" + bignumber.js "^7.2.1" + isomorphic-ws "^4.0.1" + lru-cache "^5.1.1" + thor-devkit "^2.0.5" + ws "^7.1.0" + +"@vechain/connex-framework@^2.0.8": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@vechain/connex-framework/-/connex-framework-2.0.10.tgz#cb281ae38473d862baea061483579ad66b3d76ee" + integrity sha512-pgTxMUr99ZOfd5cjzOihVdnbwXP7qh+kdLSjKaWjW+9Yw2ZOdNk58AJ/Bs2POkKB836pgt+Phu65T7MRxPENpg== + dependencies: + "@vechain/connex-types" "^2.0.2" + bignumber.js "^7.2.1" + thor-devkit "^2.0.5" + validator-ts "^0.9.1" + +"@vechain/connex-types@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vechain/connex-types/-/connex-types-2.0.2.tgz#089d94137ba9934daf903025647897f804f4b7c4" + integrity sha512-as905zXnVgc74mLkWkr2zMgJRJmFTMEDrRgtOPn68rqLeYCBzR7Ye1QCGbGKnPUaYGDLbGutoIW8r1y8wmGCUg== + +"@vechain/ethers@^4.0.27-5": + version "4.0.27-5" + resolved "https://registry.yarnpkg.com/@vechain/ethers/-/ethers-4.0.27-5.tgz#2e7d40294b2e14ddf4cf6f6094bbdc871e26e299" + integrity sha512-dR+rTUauPJpqHNBdEgV6Xh+o009uCRPCvN2HWYIAzZP2SvgsPHLxNUzeRbRKhNzz/HC8HjWNvECRxODF88B03Q== + dependencies: + "@types/node" "^10.3.2" + aes-js "3.0.0" + bn.js "^4.4.0" + elliptic "6.5.4" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + +"@walletconnect/browser-utils@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951" + integrity sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A== + dependencies: + "@walletconnect/safe-json" "1.0.0" + "@walletconnect/types" "^1.8.0" + "@walletconnect/window-getters" "1.0.0" + "@walletconnect/window-metadata" "1.0.0" + detect-browser "5.2.0" + +"@walletconnect/client@1.6.5": + version "1.6.5" + resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.6.5.tgz#6616ae926abc7c87c48a2d3693f2eb697858e685" + integrity sha512-dRq1D3NEGwM2I3CpiwFsWy1rrdMKCMSfDUu3rCCXUE4zInx+pyq7IEFjYiSjtOEZzjRlUTqYwhjnYIezQZgh4w== + dependencies: + "@walletconnect/core" "^1.6.5" + "@walletconnect/iso-crypto" "^1.6.5" + "@walletconnect/types" "^1.6.5" + "@walletconnect/utils" "^1.6.5" + +"@walletconnect/client@^1.7.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.8.0.tgz#6f46b5499c7c861c651ff1ebe5da5b66225ca696" + integrity sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ== + dependencies: + "@walletconnect/core" "^1.8.0" + "@walletconnect/iso-crypto" "^1.8.0" + "@walletconnect/types" "^1.8.0" + "@walletconnect/utils" "^1.8.0" + +"@walletconnect/core@^1.6.5", "@walletconnect/core@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.8.0.tgz#6b2748b90c999d9d6a70e52e26a8d5e8bfeaa81e" + integrity sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw== + dependencies: + "@walletconnect/socket-transport" "^1.8.0" + "@walletconnect/types" "^1.8.0" + "@walletconnect/utils" "^1.8.0" + +"@walletconnect/crypto@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.2.tgz#3fcc2b2cde6f529a19eadd883dc555cd0e861992" + integrity sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ== + dependencies: + "@walletconnect/encoding" "^1.0.1" + "@walletconnect/environment" "^1.0.0" + "@walletconnect/randombytes" "^1.0.2" + aes-js "^3.1.2" + hash.js "^1.1.7" + +"@walletconnect/encoding@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.1.tgz#93c18ce9478c3d5283dbb88c41eb2864b575269a" + integrity sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA== + dependencies: + is-typedarray "1.0.0" + typedarray-to-buffer "3.1.5" + +"@walletconnect/environment@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" + integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== + +"@walletconnect/iso-crypto@^1.6.5", "@walletconnect/iso-crypto@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451" + integrity sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ== + dependencies: + "@walletconnect/crypto" "^1.0.2" + "@walletconnect/types" "^1.8.0" + "@walletconnect/utils" "^1.8.0" + +"@walletconnect/jsonrpc-types@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.1.tgz#a96b4bb2bcc8838a70e06f15c1b5ab11c47d8e95" + integrity sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw== + dependencies: + keyvaluestorage-interface "^1.0.0" + +"@walletconnect/jsonrpc-utils@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz#5bd49865eef0eae48e8b45a06731dc18691cf8c7" + integrity sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ== + dependencies: + "@walletconnect/environment" "^1.0.0" + "@walletconnect/jsonrpc-types" "^1.0.1" + +"@walletconnect/randombytes@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.2.tgz#95c644251a15e6675f58fbffc9513a01486da49c" + integrity sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A== + dependencies: + "@walletconnect/encoding" "^1.0.1" + "@walletconnect/environment" "^1.0.0" + randombytes "^2.1.0" + +"@walletconnect/safe-json@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" + integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== + +"@walletconnect/socket-transport@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz#9a1128a249628a0be11a0979b522fe82b44afa1b" + integrity sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ== + dependencies: + "@walletconnect/types" "^1.8.0" + "@walletconnect/utils" "^1.8.0" + ws "7.5.3" + +"@walletconnect/types@^1.6.5", "@walletconnect/types@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" + integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== + +"@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.8.0.tgz#2591a197c1fa7429941fe428876088fda6632060" + integrity sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA== + dependencies: + "@walletconnect/browser-utils" "^1.8.0" + "@walletconnect/encoding" "^1.0.1" + "@walletconnect/jsonrpc-utils" "^1.0.3" + "@walletconnect/types" "^1.8.0" + bn.js "4.11.8" + js-sha3 "0.8.0" + query-string "6.13.5" + +"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" + integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== + +"@walletconnect/window-metadata@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5" + integrity sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA== + dependencies: + "@walletconnect/window-getters" "^1.0.0" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abort-controller@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +abortcontroller-polyfill@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5" + integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.4.1: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + +aes-js@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" + integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== + +ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +algo-msgpack-with-bigint@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz#38bb717220525b3ff42232eefdcd9efb9ad405d6" + integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== + +algosdk@^1.15.0-beta.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.19.1.tgz#81bfb8bc99bd31720c45f6e3083fa835d547375c" + integrity sha512-RBp6ihU1jX6OgPRstqskZmnLN4KmG+ZstFADiy0gYOYCy2xPoyKP5sTrf5DW8JECP5IIJi0azxsWgpPQjzJYaA== + dependencies: + algo-msgpack-with-bigint "^2.1.1" + buffer "^6.0.2" + hi-base32 "^0.5.1" + js-sha256 "^0.9.0" + js-sha3 "^0.8.0" + js-sha512 "^0.8.0" + json-bigint "^1.0.0" + superagent "^6.1.0" + tweetnacl "^1.0.3" + vlq "^2.0.4" + optionalDependencies: + fsevents "2.1.2" + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.7" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flatmap@^1.2.4: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" + integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asmcrypto.js@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/asmcrypto.js/-/asmcrypto.js-0.22.0.tgz#38fc1440884d802c7bd37d1d23c2b26a5cd5d2d2" + integrity sha512-usgMoyXjMbx/ZPdzTSXExhMPur2FTdz/Vo5PVx2gIaBcdAAJNOFlsdgqveM8Cff7W0v+xrf9BwjOV26JSAF9qA== + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== + dependencies: + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" + integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== + dependencies: + es6-object-assign "^1.1.0" + is-nan "^1.2.1" + object-is "^1.0.1" + util "^0.12.0" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axios@*: + version "0.27.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== + dependencies: + follow-redirects "^1.14.9" + form-data "^4.0.0" + +axios@0.24.0, axios@^0.24.0: + version "0.24.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6" + integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA== + dependencies: + follow-redirects "^1.14.4" + +axios@^0.21.1: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +axios@^0.26.0, axios@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" + integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== + dependencies: + follow-redirects "^1.14.8" + +b64-lite@^1.3.1, b64-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/b64-lite/-/b64-lite-1.4.0.tgz#e62442de11f1f21c60e38b74f111ac0242283d3d" + integrity sha512-aHe97M7DXt+dkpa8fHlCcm1CnskAHrJqEfMI0KN7dwqlzml/aUe1AGt6lk51HzrSfVD67xOso84sOpr+0wIe2w== + dependencies: + base-64 "^0.1.0" + +b64u-lite@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/b64u-lite/-/b64u-lite-1.1.0.tgz#a581b7df94cbd4bed7cbb19feae816654f0b1bf0" + integrity sha512-929qWGDVCRph7gQVTC6koHqQIpF4vtVaSbwLltFQo44B1bYUquALswZdBKFfrJCPEnsCOvWkJsPdQYZ/Ukhw8A== + dependencies: + b64-lite "^1.4.0" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +backslash@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/backslash/-/backslash-0.2.0.tgz#6c3c1fce7e7e714ccfc10fd74f0f73410677375f" + integrity sha512-Avs+8FUZ1HF/VFP4YWwHQZSGzRPm37ukU1JQYQWijuHhtXdOuAzcZ8PcAzfIw898a8PyBzdn+RtnKA6MzW0X2A== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-64@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" + integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== + +base-x@^3.0.2, base-x@^3.0.8: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base64-arraybuffer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45" + integrity sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ== + +base64-js@*, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +bech32@1.1.4, bech32@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== + +bech32@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" + integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== + +before-after-hook@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" + integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== + +bigint-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" + integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== + dependencies: + bindings "^1.3.0" + +bignumber.js@9.0.1, bignumber.js@=9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" + integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== + +bignumber.js@9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" + integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + +bignumber.js@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" + integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== + +bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2: + version "9.1.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" + integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.3.0, bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bip32-path@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/bip32-path/-/bip32-path-0.4.2.tgz#5db0416ad6822712f077836e2557b8697c0c7c99" + integrity sha512-ZBMCELjJfcNMkz5bDuJ1WrYvjlhEF5k6mQ8vUr4N7MbVRsXei7ZOg8VhhwMfNiW68NWmLkgkc6WvTickrLGprQ== + +bip32@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/bip32/-/bip32-2.0.6.tgz#6a81d9f98c4cd57d05150c60d8f9e75121635134" + integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA== + dependencies: + "@types/node" "10.12.18" + bs58check "^2.1.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + tiny-secp256k1 "^1.1.3" + typeforce "^1.11.5" + wif "^2.0.6" + +bip39@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.2.tgz#2baf42ff3071fc9ddd5103de92e8f80d9257ee32" + integrity sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ== + dependencies: + "@types/node" "11.11.6" + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + +bip39@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" + integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== + dependencies: + "@types/node" "11.11.6" + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blake2b-wasm@^1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-1.1.7.tgz#e4d075da10068e5d4c3ec1fb9accc4d186c55d81" + integrity sha512-oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA== + dependencies: + nanoassert "^1.0.0" + +blake2b@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.3.tgz#f5388be424768e7c6327025dad0c3c6d83351bca" + integrity sha512-pkDss4xFVbMb4270aCyGD3qLv92314Et+FsKzilCLxDz5DuZ2/1g3w4nmBbu6nKApPspnjG7JcwTjGZnduB1yg== + dependencies: + blake2b-wasm "^1.1.0" + nanoassert "^1.0.0" + +blakejs@^1.1.0, blakejs@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== + +bluebird@3.7.2, bluebird@^3.5.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== + +bn.js@4.11.8: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +bn.js@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz#48efc4031a9c4041b9c99c6941d903463ab62eb5" + integrity sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA== + +bn.js@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +body-parser@1.20.0, body-parser@^1.16.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +borc@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" + integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== + dependencies: + bignumber.js "^9.0.0" + buffer "^5.5.0" + commander "^2.15.0" + ieee754 "^1.1.13" + iso-url "~0.4.7" + json-text-sequence "~0.1.0" + readable-stream "^3.6.0" + +borsh@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" + integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== + dependencies: + bn.js "^5.2.0" + bs58 "^4.0.0" + text-encoding-utf-8 "^1.0.2" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-headers@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" + integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + 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" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +bs58@^4.0.0, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + +buffer-to-arraybuffer@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.1.tgz#3cbea8c1463e5a0779e30b66d4c88c6ffa182ac2" + integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +buffer@6.0.3, buffer@^6.0.2, buffer@^6.0.3, buffer@~6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +bufferutil@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" + integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== + dependencies: + node-gyp-build "^4.3.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-lookup@^6.0.4: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz#0330a543471c61faa4e9035db583aad753b36385" + integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== + +cacheable-request@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" + integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +capability@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/capability/-/capability-0.2.5.tgz#51ad87353f1936ffd77f2f21c74633a4dea88801" + integrity sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +chai@^4.3.6: + version "4.3.6" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" + integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + loupe "^2.3.1" + pathval "^1.1.1" + type-detect "^4.0.5" + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== + +check-more-types@2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== + +chokidar@^3.0.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + 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" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1, chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.15.0, commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +compare-versions@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + +component-emitter@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-hash@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +cookiejar@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" + integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== + +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@^2.8.1: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +crc-32@^1.2.0, crc-32@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/crc/-/crc-4.1.1.tgz#cb926237b56739f82c8533da1b66925ed33e011f" + integrity sha512-2U3ZqJ2phJl9ANuP2q5VS53LMpNmYU9vcpmh6nutJmsqUREhtWpTRh9yYxG7sDg3xkwaEEXytSeffTxw4cgwPg== + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + 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" + +create-hmac@1.1.7, create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + 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" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-fetch@^3.1.4, cross-fetch@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +crypto-browserify@3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": + version "1.0.0" + resolved "git+https://github.com/xp-network/exchange-rate#8e87b6c98ee57df76edace5f6ccfa879e952d2ac" + dependencies: + axios "^0.21.1" + +crypto-hash@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" + integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== + +crypto-js@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" + integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== + +curve25519-js@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/curve25519-js/-/curve25519-js-0.0.4.tgz#e6ad967e8cd284590d657bbfc90d8b50e49ba060" + integrity sha512-axn2UMEnkhyDUPWOwVKBMVIzSQy2ejH2xRGy1wq81dqRwApXfIzfbE3hIX0ZRFBIihf/KDqK158DLwESu4AK1w== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +debug@2.6.9, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +delimit-stream@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" + integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ== + +depd@2.0.0, depd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-browser@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" + integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dotenv@^16.0.0: + version "16.0.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.2.tgz#0b0f8652c016a3858ef795024508cddc4bffc5bf" + integrity sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA== + +duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + +duplexer@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ed25519-hd-key@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.1.2.tgz#168dcf08419694be7bba3319e7d64e4a5cfe5d44" + integrity sha512-/0y9y6N7vM6Kj5ASr9J9wcMVDTtygxSOvYX+PJiMD7VcxCx2G03V5bLRl8Dug9EgkLFsLhGqBtQWQRcElEeWTA== + dependencies: + bip39 "3.0.2" + create-hmac "1.1.7" + tweetnacl "1.0.3" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + 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" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~6.2.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.2.tgz#c6c5243167f5943dcd9c4abee1bfc634aa2cbdd0" + integrity sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + engine.io-parser "~5.0.3" + ws "~8.2.3" + xmlhttprequest-ssl "~2.0.0" + +engine.io-parser@~5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" + integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +error-polyfill@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/error-polyfill/-/error-polyfill-0.1.3.tgz#df848b61ad8834f7a5db69a70b9913df86721d15" + integrity sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg== + dependencies: + capability "^0.2.5" + o3 "^1.0.3" + u3 "^0.1.1" + +es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.2.tgz#8495a07bc56d342a3b8ea3ab01bd986700c2ccb3" + integrity sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.2" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-object-assign@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" + integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== + +es6-promise@^4.0.3, es6-promise@^4.2.8: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== + dependencies: + es6-promise "^4.0.3" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +esbuild-android-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.7.tgz#a521604d8c4c6befc7affedc897df8ccde189bea" + integrity sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w== + +esbuild-android-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.7.tgz#307b81f1088bf1e81dfe5f3d1d63a2d2a2e3e68e" + integrity sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ== + +esbuild-darwin-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz#270117b0c4ec6bcbc5cf3a297a7d11954f007e11" + integrity sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg== + +esbuild-darwin-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.7.tgz#97851eacd11dacb7719713602e3319e16202fc77" + integrity sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ== + +esbuild-freebsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.7.tgz#1de15ffaf5ae916aa925800aa6d02579960dd8c4" + integrity sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ== + +esbuild-freebsd-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.7.tgz#0f160dbf5c9a31a1d8dd87acbbcb1a04b7031594" + integrity sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q== + +esbuild-linux-32@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.7.tgz#422eb853370a5e40bdce8b39525380de11ccadec" + integrity sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg== + +esbuild-linux-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.7.tgz#f89c468453bb3194b14f19dc32e0b99612e81d2b" + integrity sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ== + +esbuild-linux-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.7.tgz#68a79d6eb5e032efb9168a0f340ccfd33d6350a1" + integrity sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw== + +esbuild-linux-arm@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.7.tgz#2b7c784d0b3339878013dfa82bf5eaf82c7ce7d3" + integrity sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ== + +esbuild-linux-mips64le@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.7.tgz#bb8330a50b14aa84673816cb63cc6c8b9beb62cc" + integrity sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw== + +esbuild-linux-ppc64le@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.7.tgz#52544e7fa992811eb996674090d0bc41f067a14b" + integrity sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw== + +esbuild-linux-riscv64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.7.tgz#a43ae60697992b957e454cbb622f7ee5297e8159" + integrity sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g== + +esbuild-linux-s390x@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.7.tgz#8c76a125dd10a84c166294d77416caaf5e1c7b64" + integrity sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ== + +esbuild-netbsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.7.tgz#19b2e75449d7d9c32b5d8a222bac2f1e0c3b08fd" + integrity sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ== + +esbuild-openbsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.7.tgz#1357b2bf72fd037d9150e751420a1fe4c8618ad7" + integrity sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ== + +esbuild-sunos-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.7.tgz#87ab2c604592a9c3c763e72969da0d72bcde91d2" + integrity sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag== + +esbuild-windows-32@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.7.tgz#c81e688c0457665a8d463a669e5bf60870323e99" + integrity sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA== + +esbuild-windows-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.7.tgz#2421d1ae34b0561a9d6767346b381961266c4eff" + integrity sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q== + +esbuild-windows-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.7.tgz#7d5e9e060a7b454cb2f57f84a3f3c23c8f30b7d2" + integrity sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw== + +esbuild@^0.15.6: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.7.tgz#8a1f1aff58671a3199dd24df95314122fc1ddee8" + integrity sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw== + optionalDependencies: + "@esbuild/linux-loong64" "0.15.7" + esbuild-android-64 "0.15.7" + esbuild-android-arm64 "0.15.7" + esbuild-darwin-64 "0.15.7" + esbuild-darwin-arm64 "0.15.7" + esbuild-freebsd-64 "0.15.7" + esbuild-freebsd-arm64 "0.15.7" + esbuild-linux-32 "0.15.7" + esbuild-linux-64 "0.15.7" + esbuild-linux-arm "0.15.7" + esbuild-linux-arm64 "0.15.7" + esbuild-linux-mips64le "0.15.7" + esbuild-linux-ppc64le "0.15.7" + esbuild-linux-riscv64 "0.15.7" + esbuild-linux-s390x "0.15.7" + esbuild-netbsd-64 "0.15.7" + esbuild-openbsd-64 "0.15.7" + esbuild-sunos-64 "0.15.7" + esbuild-windows-32 "0.15.7" + esbuild-windows-64 "0.15.7" + esbuild-windows-arm64 "0.15.7" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^8.3.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== + +eslint-plugin-eslint-comments@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa" + integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ== + dependencies: + escape-string-regexp "^1.0.5" + ignore "^5.0.5" + +eslint-plugin-functional@^3.2.1: + version "3.7.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-functional/-/eslint-plugin-functional-3.7.2.tgz#c90325dddfa822fab27419375084d12158f05da1" + integrity sha512-BuWPOeE0nuXYlZjObYOHnYf7G3iG+sysxw84I579MsrH+hy5XdXb2sdabmXQ5z7eFGCg2/DWNbZ/yz5GAgtcUg== + dependencies: + "@typescript-eslint/experimental-utils" "^4.9.1" + array.prototype.flatmap "^1.2.4" + deepmerge "^4.2.2" + escape-string-regexp "^4.0.0" + object.fromentries "^2.0.3" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@^7.30.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eth-ens-namehash@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" + integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== + dependencies: + idna-uts46-hx "^2.3.1" + js-sha3 "^0.5.7" + +eth-lib@0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + +eth-lib@^0.1.26: + version "0.1.29" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" + integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + nano-json-stream-parser "^0.1.2" + servify "^0.1.12" + ws "^3.0.0" + xhr-request-promise "^0.1.2" + +ethereum-bloom-filters@^1.0.6: + version "1.0.10" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== + dependencies: + js-sha3 "^0.8.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@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" + +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.5: + version "7.1.5" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== + dependencies: + "@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" + +ethers@^5.4.4, ethers@^5.5.4, ethers@^5.6.2: + version "5.7.0" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.0.tgz#0055da174b9e076b242b8282638bc94e04b39835" + integrity sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.0" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.0" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.0" + "@ethersproject/wordlists" "5.7.0" + +ethjs-unit@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== + dependencies: + bn.js "4.11.6" + number-to-bn "1.7.0" + +event-stream@=3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +eventemitter3@^4.0.4, eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +expo-modules-autolinking@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.0.3.tgz#45ba8cb1798f9339347ae35e96e9cc70eafb3727" + integrity sha512-azkCRYj/DxbK4udDuDxA9beYzQTwpJ5a9QA0bBgha2jHtWdFGF4ZZWSY+zNA5mtU3KqzYt8jWHfoqgSvKyu1Aw== + dependencies: + chalk "^4.1.0" + commander "^7.2.0" + fast-glob "^3.2.5" + find-up "~5.0.0" + fs-extra "^9.1.0" + +expo-random@*: + version "12.3.0" + resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-12.3.0.tgz#4a45bcb14e285a4a9161e4a5dc82ff6c3fc2ac0c" + integrity sha512-q+AsTfGNT+Q+fb2sRrYtRkI3g5tV4H0kuYXM186aueILGO/vLn/YYFa7xFZj1IZ8LJZg2h96JDPDpsqHfRG2mQ== + dependencies: + base64-js "^1.3.0" + +express@^4.14.0: + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.0" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.10.3" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.5, fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-stable-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" + integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +flow-copy-source@^2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/flow-copy-source/-/flow-copy-source-2.0.9.tgz#0c94ad842f2ae544d5a6b8ae720cee0b8678d742" + integrity sha512-7zX/oHSIHe8YRGiA9QIcC4SW6KF667ikdmiDfbST15up1Ona8dn7Xy0PmSrfw6ceBWDww8sRKlCLKsztStpYkQ== + dependencies: + chokidar "^3.0.0" + fs-extra "^8.1.0" + glob "^7.0.0" + kefir "^3.7.3" + yargs "^15.0.1" + +flow-typed@^3.2.1: + version "3.8.0" + resolved "https://registry.yarnpkg.com/flow-typed/-/flow-typed-3.8.0.tgz#2ed83e4723ede48a6c71135de90289c4031a19c6" + integrity sha512-Lgmj8K69kbTz7UjKjiuaG/UNaZpyoyCGKU9wL9wrcqw0a9GNvuRe7llueHSJThKyuOsymEmZf3TOpMUD2Fw1HQ== + dependencies: + "@octokit/rest" "^18.12.0" + colors "1.4.0" + flowgen "^1.10.0" + fs-extra "^8.1.0" + glob "^7.1.6" + got "^11.8.5" + md5 "^2.2.1" + mkdirp "^1.0.3" + node-stream-zip "^1.15.0" + prettier "^1.19.1" + rimraf "^3.0.2" + semver "7.3.2" + table "^6.7.3" + which "^2.0.2" + yargs "^15.1.0" + +flowgen@^1.10.0: + version "1.20.1" + resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.20.1.tgz#336871d59a36980fbe2c3de553bd558f06a46e24" + integrity sha512-Wus3KAhsOF7CiZGkBKZawf0AJXe06Wot6UGQt7h9QS6MBtBkFgG30wTAgpy1byA3FKYb059vO341XtN8LUhenQ== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/highlight" "^7.16.7" + commander "^6.1.0" + lodash "^4.17.20" + prettier "^2.5.1" + shelljs "^0.8.4" + typescript "~4.4.4" + typescript-compiler "^1.4.1-2" + +follow-redirects@^1.14.0, follow-redirects@^1.14.4, follow-redirects@^1.14.8, follow-redirects@^1.14.9: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data-encoder@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" + integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +formidable@^1.2.2: + version "1.2.6" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" + integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" + integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globals@^13.6.0, globals@^13.9.0: + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== + dependencies: + type-fest "^0.20.2" + +globby@^11.0.3: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +google-protobuf@^3.20.1: + version "3.21.0" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.0.tgz#8dfa3fca16218618d373d414d3c1139e28034d6e" + integrity sha512-byR7MBTK4tZ5PZEb+u5ZTzpt4SfrTxv5682MjPlHN16XeqgZE2/8HOIWeiXe8JKnT9OVbtBGhbq8mtvkK8cd5g== + +got@12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" + integrity sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig== + dependencies: + "@sindresorhus/is" "^4.6.0" + "@szmarczak/http-timer" "^5.0.1" + "@types/cacheable-request" "^6.0.2" + "@types/responselike" "^1.0.0" + cacheable-lookup "^6.0.4" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + form-data-encoder "1.7.1" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^2.0.0" + +got@^11.8.5: + version "11.8.5" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" + integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +got@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hi-base32@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" + integrity sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@^1.7.2: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + integrity sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg== + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +http2-wrapper@^2.1.10: + version "2.1.11" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef" + integrity sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +husky@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" + integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +idna-uts46-hx@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== + dependencies: + punycode "2.1.0" + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.0.5, ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +injectpromise@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/injectpromise/-/injectpromise-1.0.0.tgz#c621f7df2bbfc1164d714f1fb229adec2079da39" + integrity sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-gzip@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-2.0.0.tgz#f4fed2bbd9f96bf2cb39e19262797fdb15aad933" + integrity sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA== + +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== + +is-nan@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-retry-allowed@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + +is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +iso-url@~0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" + integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== + +isomorphic-webcrypto@2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/isomorphic-webcrypto/-/isomorphic-webcrypto-2.3.8.tgz#4a7493b486ef072b9f11b6f8fd66adde856e3eec" + integrity sha512-XddQSI0WYlSCjxtm1AI8kWQOulf7hAN3k3DclF1sxDJZqOe0pcsOt675zvWW91cZH9hYs3nlA3Ev8QK5i80SxQ== + dependencies: + "@peculiar/webcrypto" "^1.0.22" + asmcrypto.js "^0.22.0" + b64-lite "^1.3.1" + b64u-lite "^1.0.1" + msrcrypto "^1.5.6" + str2buf "^1.3.0" + webcrypto-shim "^0.1.4" + optionalDependencies: + "@unimodules/core" "*" + "@unimodules/react-native-adapter" "*" + expo-random "*" + react-native-securerandom "^0.1.1" + +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +jayson@^3.4.4: + version "3.7.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.7.0.tgz#b735b12d06d348639ae8230d7a1e2916cb078f25" + integrity sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + JSONStream "^1.3.5" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + lodash "^4.17.20" + uuid "^8.3.2" + ws "^7.4.5" + +joi@^17.4.0: + version "17.6.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" + integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + +js-base64@^3.6.1, js-base64@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" + integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== + +js-logger@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/js-logger/-/js-logger-1.6.1.tgz#8f09671b515e4a6f31dced8fdb8923432e2c60af" + integrity sha512-yTgMCPXVjhmg28CuUH8CKjU+cIKL/G+zTu4Fn4lQxs8mRFH/03QTNvEFngcxfg/gRDiQAOoyCKmMTOm9ayOzXA== + +js-sha256@0.9.0, js-sha256@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" + integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== + +js-sha3@0.5.7, js-sha3@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" + integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== + +js-sha3@0.8.0, js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-sha512@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha512/-/js-sha512-0.8.0.tgz#dd22db8d02756faccf19f218e3ed61ec8249f7d4" + integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +json-bigint@1.0.0, json-bigint@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" + integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== + dependencies: + bignumber.js "^9.0.0" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-duplicate-key-handle@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-duplicate-key-handle/-/json-duplicate-key-handle-1.0.0.tgz#0678bd17822d23d8c0d0958b43011875fa37f363" + integrity sha512-OLIxL+UpfwUsqcLX3i6Z51ChTou/Vje+6bSeGUSubj96dF/SfjObDprLy++ZXYH07KITuEzsXS7PX7e/BGf4jw== + dependencies: + backslash "^0.2.0" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json-text-sequence@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" + integrity sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w== + dependencies: + delimit-stream "0.1.0" + +jsonc-parser@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +keccak@^3.0.0, keccak@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" + integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +kefir@^3.7.3: + version "3.8.8" + resolved "https://registry.yarnpkg.com/kefir/-/kefir-3.8.8.tgz#235932ddfbed422acebf5d7cba503035e9ea05c5" + integrity sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA== + +keyv@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6" + integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA== + dependencies: + json-buffer "3.0.1" + +keyvaluestorage-interface@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff" + integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== + +lazy-ass@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +local-pkg@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f" + integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +long@^5.0.0, long@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.0.tgz#2696dadf4b4da2ce3f6f6b89186085d94d52fd61" + integrity sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w== + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loupe@^2.3.1: + version "2.3.4" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" + integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== + dependencies: + get-func-name "^2.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== + +marked@^4.0.16: + version "4.1.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.1.0.tgz#3fc6e7485f21c1ca5d6ec4a39de820e146954796" + integrity sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +md5@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@^1.1.2, methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.6: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +miscreant@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/miscreant/-/miscreant-0.3.2.tgz#a91c046566cca70bd6b5e9fbdd3f67617fa85034" + integrity sha512-fL9KxsQz9BJB2KGPMHFrReioywkiomBiuaLk6EuChijK0BsJsIKJXdVomR+/bPj5mvbFD6wM0CM3bZio9g7OHA== + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w== + dependencies: + mkdirp "*" + +mkdirp@*, mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^0.5.5: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mock-fs@^4.1.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== + +mri@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +msrcrypto@^1.5.6: + version "1.5.8" + resolved "https://registry.yarnpkg.com/msrcrypto/-/msrcrypto-1.5.8.tgz#be419be4945bf134d8af52e9d43be7fa261f4a1c" + integrity sha512-ujZ0TRuozHKKm6eGbKHfXef7f+esIhEckmThVnz7RNyiOJd7a6MXj2JGBoL9cnPDW+JMG16MoTUh5X+XXjI66Q== + +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +multimatch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +mustache@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + +nan@^2.13.2: + version "2.16.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== + +nano-json-stream-parser@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== + +nanoassert@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" + integrity sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ== + +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +near-api-js@^0.45.1: + version "0.45.1" + resolved "https://registry.yarnpkg.com/near-api-js/-/near-api-js-0.45.1.tgz#0f0a4b378758a2f1b32555399d7356da73d0ef27" + integrity sha512-QyPO/vjvMFlcMO1DCpsqzmnSqPIyHsjK1Qi4B5ZR1cJCIWMkqugDF/TDf8FVQ85pmlcYeYwfiTqKanKz+3IG0A== + dependencies: + bn.js "5.2.0" + borsh "^0.7.0" + bs58 "^4.0.0" + depd "^2.0.0" + error-polyfill "^0.1.3" + http-errors "^1.7.2" + js-sha256 "^0.9.0" + mustache "^4.0.0" + node-fetch "^2.6.1" + text-encoding-utf-8 "^1.0.2" + tweetnacl "^1.0.1" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@^2.21.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" + integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== + dependencies: + semver "^5.4.1" + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-addon-api@^3.0.2: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + +node-addon-api@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" + integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== + +node-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + +node-hid@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.1.tgz#f83c8aa0bb4e6758b5f7383542477da93f67359d" + integrity sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw== + dependencies: + bindings "^1.5.0" + node-addon-api "^3.0.2" + prebuild-install "^6.0.0" + +node-stream-zip@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" + integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + +number-to-bn@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +o3@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/o3/-/o3-1.0.3.tgz#192ce877a882dfa6751f0412a865fafb2da1dac0" + integrity sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ== + dependencies: + capability "^0.2.5" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.fromentries@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" + integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== + dependencies: + http-https "^1.0.0" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA== + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@2.0.4, pako@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" + integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-headers@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" + integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== + dependencies: + through "~2.3" + +pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +perf_hooks@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/perf_hooks/-/perf_hooks-0.0.1.tgz#253e7e18b71fcc0390fd3afb2cd7cf1685df040c" + integrity sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +platform@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" + integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== + +postcss@^8.4.16: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prebuild-install@^6.0.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" + integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^2.21.0" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== + +prettier@^1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + +prettier@^2.3.2, prettier@^2.5.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== + +pretty-quick@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" + integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== + dependencies: + chalk "^3.0.0" + execa "^4.0.0" + find-up "^4.1.0" + ignore "^5.1.4" + mri "^1.1.5" + multimatch "^4.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +protobufjs@6.10.2: + version "6.10.2" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.10.2.tgz#b9cb6bd8ec8f87514592ba3fdfd28e93f33a469b" + integrity sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" "^13.7.0" + long "^4.0.0" + +protobufjs@6.11.3, protobufjs@^6.11.2, protobufjs@^6.11.3: + version "6.11.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" + integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + +protobufjs@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.1.0.tgz#5174b5f96fad4f7dea7dd4abd594042ac360e665" + integrity sha512-rCuxKlh0UQKSMjrpIcTLbR5TtGQ52cgs1a5nUoPBAKOccdPblN67BJtjrbtudUJK6HmBvUdsmymyYOzO7lxZEA== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +ps-tree@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" + integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== + dependencies: + event-stream "=3.3.4" + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pvtsutils@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" + integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== + dependencies: + tslib "^2.4.0" + +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== + +qs@6.10.1: + version "6.10.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" + integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== + dependencies: + side-channel "^1.0.4" + +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + +qs@^6.9.4: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +query-string@6.13.5: + version "6.13.5" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" + integrity sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q== + dependencies: + decode-uri-component "^0.2.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-native-securerandom@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/react-native-securerandom/-/react-native-securerandom-0.1.1.tgz#f130623a412c338b0afadedbc204c5cbb8bf2070" + integrity sha512-CozcCx0lpBLevxiXEb86kwLRalBCHNjiGPlw3P7Fi27U6ZLdfjOCNRHD1LtBKcvPvI3TvkBXB3GOtLvqaYJLGw== + dependencies: + base64-js "*" + +readable-stream@^2.0.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + 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" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +readonly-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/readonly-date/-/readonly-date-1.0.0.tgz#5af785464d8c7d7c40b9d738cbde8c646f97dcd9" + integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ== + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +request@^2.79.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-alpn@^1.0.0, resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.1.6, resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@*: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rlp@^2.0.0, rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + +rollup@~2.78.0: + version "2.78.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" + integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== + optionalDependencies: + fsevents "~2.3.2" + +rpc-websockets@^7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.0.tgz#bbeb87572e66703ff151e50af1658f98098e2748" + integrity sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ== + dependencies: + "@babel/runtime" "^7.17.2" + eventemitter3 "^4.0.7" + uuid "^8.3.2" + ws "^8.5.0" + optionalDependencies: + bufferutil "^4.0.1" + utf-8-validate "^5.0.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@6, rxjs@^6.6.3, rxjs@^6.6.7: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +rxjs@^7.1.0: + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== + dependencies: + tslib "^2.1.0" + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scrypt-js@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" + integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== + +scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +scryptsy@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" + integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== + +secp256k1@^4.0.1, secp256k1@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +secretjs@=1.3.0-beta.25: + version "1.3.0-beta.25" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.3.0-beta.25.tgz#d3aced17bccc6da46e68ab64f846d51bb9ea6b49" + integrity sha512-fHTMGtHGP7aEVBD1142xTb2k7547misrnCs+EKMZN+CCr+fl1PZdEVX4r3MjC+qRpQIMgwVVXJZr4EUNwN7u3A== + dependencies: + "@cosmjs/encoding" "0.27.1" + "@cosmjs/math" "0.27.1" + "@improbable-eng/grpc-web" "0.15.0" + "@improbable-eng/grpc-web-node-http-transport" "0.15.0" + "@noble/hashes" "1.0.0" + "@noble/secp256k1" "1.6.3" + "@osmonauts/helpers" "0.3.8" + bech32 "2.0.0" + bignumber.js "9.0.2" + bip32 "2.0.6" + bip39 "3.0.4" + curve25519-js "0.0.4" + is-gzip "2.0.0" + miscreant "0.3.2" + pako "2.0.4" + protobufjs "6.11.3" + secure-random "1.1.2" + +secure-random@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/secure-random/-/secure-random-1.1.2.tgz#ed103b460a851632d420d46448b2a900a41e7f7c" + integrity sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ== + +semver@7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +semver@^5.4.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +servify@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== + dependencies: + body-parser "^1.16.0" + cors "^2.8.1" + express "^4.14.0" + request "^2.79.0" + xhr "^2.3.3" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +setimmediate@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" + integrity sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shelljs@^0.8.4: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shiki@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.10.1.tgz#6f9a16205a823b56c072d0f1a0bcd0f2646bef14" + integrity sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng== + dependencies: + jsonc-parser "^3.0.0" + vscode-oniguruma "^1.6.1" + vscode-textmate "5.2.0" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-cbor@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/simple-cbor/-/simple-cbor-0.4.1.tgz#0c88312e87db52b94e0e92f6bd1cf634e86f8a22" + integrity sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^2.7.0: + version "2.8.2" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.2.tgz#5708fb0919d440657326cd5fe7d2599d07705019" + integrity sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw== + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-get@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" + integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +socket.io-client@^4.1.3: + version "4.5.2" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.2.tgz#9481518c560388c980c88b01e3cf62f367f04c96" + integrity sha512-naqYfFu7CLDiQ1B7AlLhRXKX3gdeaIMfgigwavDzgJoIUYulc1qHH5+2XflTsXTPY7BlPH5rppJyUjhjrKQKLg== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.2" + engine.io-client "~6.2.1" + socket.io-parser "~4.2.0" + +socket.io-parser@~4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" + integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +start-server-and-test@^1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3" + integrity sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw== + dependencies: + bluebird "3.7.2" + check-more-types "2.24.0" + debug "4.3.2" + execa "5.1.1" + lazy-ass "1.6.0" + ps-tree "1.2.0" + wait-on "6.0.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +str2buf@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/str2buf/-/str2buf-1.3.0.tgz#a4172afff4310e67235178e738a2dbb573abead0" + integrity sha512-xIBmHIUHYZDP4HyoXGHYNVmxlXLXDrtFHYT0eV6IOdEj3VO9ccaF1Ejl9Oq8iFjITllpT8FhaXb4KsNmw+3EuA== + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== + dependencies: + duplexer "~0.1.1" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== + dependencies: + is-hex-prefixed "1.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +superagent@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" + integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== + dependencies: + component-emitter "^1.3.0" + cookiejar "^2.1.2" + debug "^4.1.1" + fast-safe-stringify "^2.0.7" + form-data "^3.0.0" + formidable "^1.2.2" + methods "^1.1.2" + mime "^2.4.6" + qs "^6.9.4" + readable-stream "^3.6.0" + semver "^7.3.2" + +superstruct@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" + integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== + +superstruct@^0.15.4: + version "0.15.5" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" + integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +swarm-js@^0.1.40: + version "0.1.40" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" + integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== + dependencies: + bluebird "^3.5.0" + buffer "^5.0.5" + eth-lib "^0.1.26" + fs-extra "^4.0.2" + got "^7.1.0" + mime-types "^2.1.16" + mkdirp-promise "^5.0.1" + mock-fs "^4.1.0" + setimmediate "^1.0.5" + tar "^4.0.2" + xhr-request "^1.0.1" + +table@^6.0.9, table@^6.7.3: + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tar-fs@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^4.0.2: + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + +text-encoding-utf-8@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" + integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thor-devkit@^2.0.4, thor-devkit@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/thor-devkit/-/thor-devkit-2.0.5.tgz#1cdd6d623f755e82aacf27290624372bfe6d1b90" + integrity sha512-82Z0/sY0+S54bhmg57r7iqoK7sJB1F5md3zWXjXXGPin3ejsR0Whw1O9wzWvE0DkTp1EiPHWFMTPtOejxaiXeA== + dependencies: + "@vechain/ethers" "^4.0.27-5" + bignumber.js "^7.2.1" + blakejs "^1.1.0" + elliptic "6.5.4" + fast-json-stable-stringify "^2.0.0" + js-sha3 "0.5.7" + rlp "^2.0.0" + +through@2, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== + +tiny-secp256k1@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz#7e224d2bee8ab8283f284e40e6b4acb74ffe047c" + integrity sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA== + dependencies: + bindings "^1.3.0" + bn.js "^4.11.8" + create-hmac "^1.1.7" + elliptic "^6.4.0" + nan "^2.13.2" + +tinypool@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.2.4.tgz#4d2598c4689d1a2ce267ddf3360a9c6b3925a20c" + integrity sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ== + +tinyspy@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d" + integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + +tonweb-mnemonic@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tonweb-mnemonic/-/tonweb-mnemonic-1.0.1.tgz#bb1b8bb6220f56f8e230b8a8f9555ff5bcbd4681" + integrity sha512-YQAEXQHBHb0dnNy50bwIutXwyWa6Den7+cLcXWoG7ZClcqo4bjALOr6tnIqI+hs5jab+AGSsRjilxcp8ao/CpA== + dependencies: + tweetnacl "^1.0.3" + +tonweb@^0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/tonweb/-/tonweb-0.0.43.tgz#c659dd806aaa982413ffda33762ddca204da87a9" + integrity sha512-wed71NUHymDNVeGFIaMVTj658CXnbr9iafLpKRk4LyvZ17FU2fIBja7m1Uc+oD/+Gf6n0Zqbhsf0b69jF/41Hw== + dependencies: + "@ledgerhq/hw-transport-web-ble" "5.48.0" + "@ledgerhq/hw-transport-webhid" "5.48.0" + "@ledgerhq/hw-transport-webusb" "5.48.0" + bn.js "5.1.1" + ethjs-unit "0.1.6" + isomorphic-webcrypto "2.3.8" + node-fetch "2.6.7" + tweetnacl "1.0.3" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tronstation@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tronstation/-/tronstation-1.0.1.tgz#b33224cdef5f1c7560763b185f132d9ac35ad3f3" + integrity sha512-iuHjDHw/63ID5pj2PESeGLl7n7IAG6yunupKfOA2l5ekaWhZo6RSscmdwSIqBEdnXFh7Jmd2HJIzowyMFt+/zQ== + dependencies: + "@babel/runtime" "^7.0.0" + babel-runtime "^6.26.0" + +tronweb@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.3.0.tgz#d3a088e9efb839f0d445f9dc5c79853ab33ccbfa" + integrity sha512-U+s+NBGOg+zfiXeO2kaljJCClg8y8v0McIdO3aAN3/UujDJHou6d6XVPaiMnli4ynE0XC4JHSUM+5KcYos+DiQ== + dependencies: + "@babel/runtime" "^7.0.0" + axios "^0.26.1" + bignumber.js "^9.0.1" + elliptic "^6.5.4" + ethers "^5.4.4" + eventemitter3 "^3.1.0" + injectpromise "^1.0.0" + lodash "^4.17.21" + semver "^5.6.0" + validator "^13.7.0" + +ts-node@^10.8.2: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@1.0.3, tweetnacl@^1.0.1, tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray-to-buffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-4.0.0.tgz#cdd2933c61dd3f5f02eda5d012d441f95bfeb50a" + integrity sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ== + +typedoc@^0.22.6: + version "0.22.18" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.18.tgz#1d000c33b66b88fd8cdfea14a26113a83b7e6591" + integrity sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA== + dependencies: + glob "^8.0.3" + lunr "^2.3.9" + marked "^4.0.16" + minimatch "^5.1.0" + shiki "^0.10.1" + +typeforce@^1.11.5: + version "1.18.0" + resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== + +typescript-compiler@^1.4.1-2: + version "1.4.1-2" + resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f" + integrity sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg== + +typescript@^4.3.5: + version "4.8.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" + integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== + +typescript@~4.4.4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.4.tgz#2cd01a1a1f160704d3101fd5a58ff0f9fcb8030c" + integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA== + +u2f-api@0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" + integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== + +u3@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/u3/-/u3-0.1.1.tgz#5f52044f42ee76cd8de33148829e14528494b73b" + integrity sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w== + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== + dependencies: + prepend-http "^1.0.1" + +url-set-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A== + +usb@^1.7.0: + version "1.9.2" + resolved "https://registry.yarnpkg.com/usb/-/usb-1.9.2.tgz#fb6b36f744ecc707a196c45a6ec72442cb6f2b73" + integrity sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg== + dependencies: + node-addon-api "^4.2.0" + node-gyp-build "^4.3.0" + +utf-8-validate@^5.0.2: + version "5.0.9" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3" + integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== + dependencies: + node-gyp-build "^4.3.0" + +utf8@3.0.0, utf8@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util@^0.12.0: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" + integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@8.3.2, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +validator-ts@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/validator-ts/-/validator-ts-0.9.1.tgz#1ab8748e6ddddc63e9e5edbf7fea91a82b7a466f" + integrity sha512-3PCL0AzKWvG/4Y12zUgk6OVup9zQ3vXGzqUIZ69GnSapIV9lgr9VCLFReUgTe04vY6Fm4WzAL7a1HdIVyWRw8Q== + +validator@^13.7.0: + version "13.7.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" + integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== + +varint@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +"vite@^2.9.12 || ^3.0.0-0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.0.tgz#3138b279072941d57e76bcf7f66f272fc6a17fe2" + integrity sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g== + dependencies: + esbuild "^0.15.6" + postcss "^8.4.16" + resolve "^1.22.1" + rollup "~2.78.0" + optionalDependencies: + fsevents "~2.3.2" + +vitest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.18.1.tgz#33c5003fc8c4b296801897ae1a3f142f57015574" + integrity sha512-4F/1K/Vn4AvJwe7i2YblR02PT5vMKcw9KN4unDq2KD0YcSxX0B/6D6Qu9PJaXwVuxXMFTQ5ovd4+CQaW3bwofA== + dependencies: + "@types/chai" "^4.3.1" + "@types/chai-subset" "^1.3.3" + "@types/node" "*" + chai "^4.3.6" + debug "^4.3.4" + local-pkg "^0.4.2" + tinypool "^0.2.4" + tinyspy "^1.0.0" + vite "^2.9.12 || ^3.0.0-0" + +vlq@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-2.0.4.tgz#6057b85729245b9829e3cc7755f95b228d4fe041" + integrity sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA== + +vscode-oniguruma@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" + integrity sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA== + +vscode-textmate@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" + integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== + +wait-on@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7" + integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw== + dependencies: + axios "^0.21.1" + joi "^17.4.0" + lodash "^4.17.21" + minimist "^1.2.5" + rxjs "^7.1.0" + +web3-bzz@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.5.tgz#edeb262c3a6619109763077a94172513cf07cdde" + integrity sha512-Z53sY0YK/losqjJncmL4vP0zZI9r6tiXg6o7R6e1JD2Iy7FH3serQvU+qXmPjqEBzsnhf8wTG+YcBPB3RHpr0Q== + dependencies: + "@types/node" "^12.12.6" + got "12.1.0" + swarm-js "^0.1.40" + +web3-core-helpers@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.5.tgz#e97b3ecac787ade4b9390807a86aca78ed97872b" + integrity sha512-lDDjTks6Q6aNUO87RYrY2xub3UWTKr/RIWxpHJODEqkLxZS1dWdyliJ6aIx3031VQwsNT5HE7NvABe/t0p3iDQ== + dependencies: + web3-eth-iban "1.7.5" + web3-utils "1.7.5" + +web3-core-method@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.5.tgz#ffe8883c169468f0e4d13509377f2d8876d9b7be" + integrity sha512-ApTvq1Llzlbxmy0n4L7QaE6NodIsR80VJqk8qN4kLg30SGznt/pNJFebryLI2kpyDmxSgj1TjEWzmHJBp6FhYg== + dependencies: + "@ethersproject/transactions" "^5.6.2" + web3-core-helpers "1.7.5" + web3-core-promievent "1.7.5" + web3-core-subscriptions "1.7.5" + web3-utils "1.7.5" + +web3-core-promievent@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.5.tgz#56a9b06a20e20a0a89d2ab7f88d44c8ae01d5b62" + integrity sha512-uZ1VRErVuhiLtHlyt3oEH/JSvAf6bWPndChHR9PG7i1Zfqm6ZVCeM91ICTPmiL8ddsGQOxASpnJk4vhApcTIww== + dependencies: + eventemitter3 "4.0.4" + +web3-core-requestmanager@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.5.tgz#be18fc99642689aeb2e016fa43fb47bb9e8c94ce" + integrity sha512-3KpfxW/wVH4mgwWEsSJGHKrtRVoijWlDxtUrm17xgtqRNZ2mFolifKnHAUKa0fY48C9CrxmcCiMIi3W4G6WYRw== + dependencies: + util "^0.12.0" + web3-core-helpers "1.7.5" + web3-providers-http "1.7.5" + web3-providers-ipc "1.7.5" + web3-providers-ws "1.7.5" + +web3-core-subscriptions@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.5.tgz#c0e25610768ea9d9f9107b4ac74b6b6573125e00" + integrity sha512-YK6utQ7Wwjbe4XZOIA8quWGBPi1lFDS1A+jQYwxKKrCvm6BloBNc3FhvrcSYlDhLe/kOy8+2Je8i9amndgT4ww== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.7.5" + +web3-core@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.5.tgz#8ee2ca490230a30ca970cb9f308eb65b76405e1d" + integrity sha512-UgOWXZr1fR/3cUQJKWbfMwRxj1/N7o6RSd/dHqdXBlOD+62EjNZItFmLRg5veq5kp9YfXzrNw9bnDkXfsL+nKQ== + dependencies: + "@types/bn.js" "^5.1.0" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.7.5" + web3-core-method "1.7.5" + web3-core-requestmanager "1.7.5" + web3-utils "1.7.5" + +web3-eth-abi@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.5.tgz#db9d6dbcc043a6e922252f3228686e9bbd50d7c9" + integrity sha512-qWHvF7sayxql9BD1yqK9sZRLBQ66eJzGeaU53Y1PRq2iFPrhY6NUWxQ3c3ps0rg+dyObvRbloviWpKXcS4RE/A== + dependencies: + "@ethersproject/abi" "^5.6.3" + web3-utils "1.7.5" + +web3-eth-accounts@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.5.tgz#b37ee3aeebcc6bce3337636aeb272cbba0ece547" + integrity sha512-AzMLoTj3RGwKpyp3x3TtHrEeU4VpR99iMOD6NKrWSDumS6QEi0lCo+y7QZhdTlINw3iIA3SFIdvbAOO4NCHSDg== + dependencies: + "@ethereumjs/common" "^2.5.0" + "@ethereumjs/tx" "^3.3.2" + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-util "^7.0.10" + scrypt-js "^3.0.1" + uuid "3.3.2" + web3-core "1.7.5" + web3-core-helpers "1.7.5" + web3-core-method "1.7.5" + web3-utils "1.7.5" + +web3-eth-contract@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.5.tgz#a032419579bcec062513a3d089ad0e89ac63d731" + integrity sha512-qab7NPJRKRlTs58ozsqK8YIEwWpxIm3vD/okSIKBGkFx5gIHWW+vGmMh5PDSfefLJM9rCd+T+Lc0LYvtME7uqg== + dependencies: + "@types/bn.js" "^5.1.0" + web3-core "1.7.5" + web3-core-helpers "1.7.5" + web3-core-method "1.7.5" + web3-core-promievent "1.7.5" + web3-core-subscriptions "1.7.5" + web3-eth-abi "1.7.5" + web3-utils "1.7.5" + +web3-eth-ens@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.5.tgz#fa0e287f5e6fae20531117b7467e21b482d58cab" + integrity sha512-k1Q0msdRv/wac2egpZBIwG3n/sa/KdrVmVJvFm471gLTL4xfUizV5qJjkDVf+ikf9JyDvWJTs5eWNUUbOFIw/A== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + web3-core "1.7.5" + web3-core-helpers "1.7.5" + web3-core-promievent "1.7.5" + web3-eth-abi "1.7.5" + web3-eth-contract "1.7.5" + web3-utils "1.7.5" + +web3-eth-iban@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.5.tgz#1a50efa42cabf1b731396d38bef6a8bf92b5ee1f" + integrity sha512-mn2W5t/1IpL8OZvzAabLKT4kvwRnZSJ9K0tctndl9sDNWkfITYQibEEhUaNNA50Q5fJKgVudHI/m0gwIVTyG8Q== + dependencies: + bn.js "^5.2.1" + web3-utils "1.7.5" + +web3-eth-personal@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.5.tgz#615a3ddcf97aeea93e2a4569753c033fd7a495c5" + integrity sha512-txh2P/eN8I4AOUKFi9++KKddoD0tWfCuu9Y1Kc41jSRbk6smO88Fum0KWNmYFYhSCX2qiknS1DfqsONl3igoKQ== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.7.5" + web3-core-helpers "1.7.5" + web3-core-method "1.7.5" + web3-net "1.7.5" + web3-utils "1.7.5" + +web3-eth@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.5.tgz#36906f50a6c35570cbc08871a33caa83dc131c9c" + integrity sha512-BucjvqZyDWYkGlsFX+OnOBub0YutlC1KZiNGibdmvtNX0NQK+8iw1uzAoL9yTTwCSszL7lnkFe8N+HCOl9B4Dw== + dependencies: + web3-core "1.7.5" + web3-core-helpers "1.7.5" + web3-core-method "1.7.5" + web3-core-subscriptions "1.7.5" + web3-eth-abi "1.7.5" + web3-eth-accounts "1.7.5" + web3-eth-contract "1.7.5" + web3-eth-ens "1.7.5" + web3-eth-iban "1.7.5" + web3-eth-personal "1.7.5" + web3-net "1.7.5" + web3-utils "1.7.5" + +web3-net@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.5.tgz#87fbc00a9ca40515bf60c847c0092498887cfdc8" + integrity sha512-xwuCb2YWw49PmW81AJQ/G+Xi2ikRsYyZXSgyPt4LmZuKjiqg/6kSdK8lZvUi3Pi3wM+QDBXbpr73M/WEkW0KvA== + dependencies: + web3-core "1.7.5" + web3-core-method "1.7.5" + web3-utils "1.7.5" + +web3-providers-connex@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/web3-providers-connex/-/web3-providers-connex-0.3.1.tgz#45eb139ea70c76a8bb625a964d92f61c8033adc2" + integrity sha512-0jnPkPszyHA9nlvB1hJ+FDT8pLixF7GzmZm0gB/j1UonuYYuYD3VtNgQ2+N4jDkkFuRd3H/sZRR+Piq0tV8aig== + dependencies: + "@vechain/connex-driver" "^2.0.8" + "@vechain/connex-types" "^2.0.2" + ethers "^5.6.2" + eventemitter3 "^4.0.4" + thor-devkit "^2.0.4" + web3 "^1.7.1" + +web3-providers-http@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.5.tgz#144bb0c29007d1b766bafb0e20f80be050c7aa80" + integrity sha512-vPgr4Kzy0M3CHtoP/Bh7qwK/D9h2fhjpoqctdMWVJseOfeTgfOphCKN0uwV8w2VpZgDPXA8aeTdBx5OjmDdStA== + dependencies: + abortcontroller-polyfill "^1.7.3" + cross-fetch "^3.1.4" + es6-promise "^4.2.8" + web3-core-helpers "1.7.5" + +web3-providers-ipc@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.5.tgz#5b0f9b4f7340416953b8816d2e42e3f548d47372" + integrity sha512-aNHx+RAROzO+apDEzy8Zncj78iqWBadIXtpmFDg7uiTn8i+oO+IcP1Yni7jyzkltsysVJHgHWG4kPx50ANCK3Q== + dependencies: + oboe "2.1.5" + web3-core-helpers "1.7.5" + +web3-providers-ws@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.5.tgz#196b9e56a4a48f9bee54def56875ea53dec7c711" + integrity sha512-9uJNVVkIGC8PmM9kNbgPth56HDMSSsxZh3ZEENdwO3LNWemaADiQYUDCsD/dMVkn0xsGLHP5dgAy4Q5msqySLg== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.7.5" + websocket "^1.0.32" + +web3-shh@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.5.tgz#742e27f5c44bea6d7adef3a49b085e0fcd6aa621" + integrity sha512-aCIWJyLMH5H76OybU4ZpUCJ93yNOPATGhJ+KboRPU8QZDzS2CcVhtEzyl27bbvw+rSnVroMLqBgTXBB4mmKI7A== + dependencies: + web3-core "1.7.5" + web3-core-method "1.7.5" + web3-core-subscriptions "1.7.5" + web3-net "1.7.5" + +web3-utils@1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.5.tgz#081a952ac6e0322e25ac97b37358a43c7372ef6a" + integrity sha512-9AqNOziQky4wNQadEwEfHiBdOZqopIHzQQVzmvvv6fJwDSMhP+khqmAZC7YTiGjs0MboyZ8tWNivqSO1699XQw== + dependencies: + bn.js "^5.2.1" + 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" + +web3@^1.7.1: + version "1.7.5" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.5.tgz#4e185d2058195b5775109b3f27cdea65a34a036e" + integrity sha512-3jHZTWyXt975AOXgnZKayiSWDLpoSKk9fZtLk1hURQtt7AdSbXPT8AK9ooBCm0Dt3GYaOeNcHGaiHC3gtyqhLg== + dependencies: + web3-bzz "1.7.5" + web3-core "1.7.5" + web3-eth "1.7.5" + web3-eth-personal "1.7.5" + web3-net "1.7.5" + web3-shh "1.7.5" + web3-utils "1.7.5" + +webcrypto-core@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.5.tgz#c02104c953ca7107557f9c165d194c6316587ca4" + integrity sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A== + dependencies: + "@peculiar/asn1-schema" "^2.1.6" + "@peculiar/json-schema" "^1.1.12" + asn1js "^3.0.1" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +webcrypto-shim@^0.1.4: + version "0.1.7" + resolved "https://registry.yarnpkg.com/webcrypto-shim/-/webcrypto-shim-0.1.7.tgz#da8be23061a0451cf23b424d4a9b61c10f091c12" + integrity sha512-JAvAQR5mRNRxZW2jKigWMjCMkjSdmP5cColRP1U/pTg69VgHXEi1orv5vVpJ55Zc5MIaPc1aaurzd9pjv2bveg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +websocket@^1.0.32: + version "1.0.34" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" + integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + 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@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + +which-typed-array@^1.1.2: + version "1.1.8" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +wif@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + integrity sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ== + dependencies: + bs58check "<3.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +ws@7.5.3: + version "7.5.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== + +ws@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@^7.1.0, ws@^7.4.5: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^8.5.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== + +ws@~8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + +xhr-request-promise@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== + dependencies: + xhr-request "^1.1.0" + +xhr-request@^1.0.1, xhr-request@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== + dependencies: + buffer-to-arraybuffer "^0.0.5" + object-assign "^4.1.1" + query-string "^5.0.1" + simple-get "^2.7.0" + timed-out "^4.0.1" + url-set-query "^1.0.0" + xhr "^2.0.4" + +xhr@^2.0.4, xhr@^2.3.3: + version "2.6.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xmlhttprequest-ssl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" + integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== + +xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== + +"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f": + version "0.1.0" + resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f" + dependencies: + ethers "^5.5.4" + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^15.0.1, yargs@^15.1.0: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.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 "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From cd9d55d8c2f73bd9288ebba23fa289a65c3d50f8 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 5 Sep 2022 18:36:55 +0300 Subject: [PATCH 662/956] web3: failed provider.getTransaction(hash) workaround --- src/helpers/web3.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 68e8b1fa6..7a037b7e8 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -365,6 +365,20 @@ export async function web3HelperFactory( ); } + async function getTransaction(hash: string) { + let trx; + let fails = 0; + while (!trx && fails < 5) { + trx = await provider.getTransaction(hash); + await new Promise((resolve) => + setTimeout(() => resolve("wait"), 4000 + fails * 2) + ); + fails++; + } + + return trx as TransactionResponse; + } + async function extractAction(txr: TransactionResponse): Promise { const receipt = await txr.wait(); const log = receipt.logs.find((log) => log.address === minter.address); @@ -595,7 +609,7 @@ export async function web3HelperFactory( await notifyValidator( //@ts-ignore txHash, - await extractAction(await provider.getTransaction(txHash)), + await extractAction(await getTransaction(txHash)), "Transfer", chain_nonce, txFees.toString(), From 23860b2894cab88dbad99b6fd135fcb32624d926 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 6 Sep 2022 12:28:02 +0300 Subject: [PATCH 663/956] increase tries to get trx --- src/helpers/web3.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 7a037b7e8..1a3267812 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -368,10 +368,10 @@ export async function web3HelperFactory( async function getTransaction(hash: string) { let trx; let fails = 0; - while (!trx && fails < 5) { + while (!trx && fails < 7) { trx = await provider.getTransaction(hash); await new Promise((resolve) => - setTimeout(() => resolve("wait"), 4000 + fails * 2) + setTimeout(() => resolve("wait"), 5000 + fails * 2) ); fails++; } From d93b63b49b790de60fdcb8d5f0e60edb75125f85 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 7 Sep 2022 18:50:30 +0300 Subject: [PATCH 664/956] add setProvider method to chainFactory --- src/factory/index.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 9c3a15f17..d258eb051 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -240,6 +240,8 @@ export type ChainFactory = { ): Promise; isWrappedNft(nft: NftInfo, fromChain: number): Promise; + + setProvider(fromChain: number, provider: any): Promise; }; /** @@ -368,6 +370,15 @@ export function ChainFactory( return helper!; }; + const setProvider = async (chain: T, provider: any) => { + const args = { + ...cToP.get(chain)!, + provider, + }; + const helper = await CHAIN_INFO.get(chain)!.constructor(args); + helpers.set(chain, helper); + }; + async function calcExchangeFees( fromChain: T, toChain: T, @@ -801,6 +812,7 @@ export function ChainFactory( return await chain.isNftWhitelisted(nft); }, isWrappedNft, + setProvider, }; } From 4189beb55be15da2dec4e6e0ec866b9bcf572dbd Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 8 Sep 2022 20:13:01 +0530 Subject: [PATCH 665/956] pnpm: delete lockfile --- pnpm-lock.yaml | 11894 ----------------------------------------------- 1 file changed, 11894 deletions(-) delete mode 100644 pnpm-lock.yaml diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index f30ee72b7..000000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,11894 +0,0 @@ -lockfileVersion: 5.4 - -specifiers: - "@dfinity/agent": ^0.11.3 - "@dfinity/candid": ^0.11.3 - "@dfinity/identity": ^0.12.2 - "@dfinity/nns": ^0.5.0 - "@dfinity/principal": ^0.11.3 - "@elrondnetwork/erdjs": 9.0.3 - "@ethersproject/providers": ^5.7.0 - "@hashgraph/hethers": 1.1.2 - "@json-rpc-tools/utils": ^1.7.6 - "@project-serum/anchor": ^0.25.0-beta.1 - "@randlabs/myalgo-connect": ^1.1.1 - "@solana/spl-token": ^0.2.0 - "@solana/web3.js": ^1.44.2 - "@taquito/signer": ^13.0.0 - "@taquito/taquito": ^13.0.0 - "@taquito/tzip12": ^13.0.0 - "@taquito/utils": ^13.0.1 - "@types/bn.js": ^5.1.0 - "@types/node": ^18.7.13 - "@typescript-eslint/eslint-plugin": ^4.31.0 - "@typescript-eslint/parser": ^4.28.3 - "@vechain/connex-driver": ^2.0.8 - "@vechain/connex-framework": ^2.0.8 - "@vechain/ethers": ^4.0.27-5 - "@walletconnect/client": ^1.7.0 - algosdk: ^1.15.0-beta.1 - axios: ^0.21.1 - bignumber.js: "=9.0.1" - bn.js: ^5.2.1 - buffer: ^6.0.3 - crypto-exchange-rate: git+https://github.com/xp-network/exchange-rate#master-dist - dotenv: ^16.0.0 - eslint: ^7.30.0 - eslint-config-prettier: ^8.3.0 - eslint-plugin-eslint-comments: ^3.2.0 - eslint-plugin-functional: ^3.2.1 - ethers: ^5.5.4 - google-protobuf: ^3.20.1 - husky: ^8.0.0 - js-base64: ^3.6.1 - near-api-js: ^0.45.1 - prettier: ^2.3.2 - pretty-quick: ^3.1.3 - secretjs: "=1.3.0-beta.25" - socket.io-client: ^4.1.3 - tonweb: ^0.0.43 - tonweb-mnemonic: ^1.0.1 - tronstation: ^1.0.1 - tronweb: ^4.1.0 - typedoc: ^0.22.6 - typescript: ^4.3.5 - web3-providers-connex: ^0.3.1 - xpnet-web3-contracts: git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f - -dependencies: - "@dfinity/agent": 0.11.3_urfyxkqvy2mysslkeyxo7ugw34 - "@dfinity/candid": 0.11.3 - "@dfinity/identity": 0.12.2_g4ydyf5f6qetjnajevqbsg73lu - "@dfinity/nns": 0.5.0_buffer@6.0.3 - "@dfinity/principal": 0.11.3 - "@elrondnetwork/erdjs": 9.0.3 - "@ethersproject/providers": 5.7.0 - "@hashgraph/hethers": 1.1.2 - "@json-rpc-tools/utils": 1.7.6 - "@project-serum/anchor": 0.25.0 - "@randlabs/myalgo-connect": 1.3.0 - "@solana/spl-token": 0.2.0 - "@solana/web3.js": 1.53.0 - "@taquito/signer": 13.0.1 - "@taquito/taquito": 13.0.1 - "@taquito/tzip12": 13.0.1 - "@taquito/utils": 13.0.1 - "@vechain/connex-driver": 2.0.10 - "@vechain/connex-framework": 2.0.10 - "@vechain/ethers": 4.0.27-5 - "@walletconnect/client": 1.8.0 - algosdk: 1.19.1 - axios: 0.21.4 - bignumber.js: 9.0.1 - bn.js: 5.2.1 - buffer: 6.0.3 - crypto-exchange-rate: github.com/xp-network/exchange-rate/969f919deec6ee487e4c1b6213f77fe4f6f32eb1 - ethers: 5.7.0 - google-protobuf: 3.21.0 - js-base64: 3.7.2 - near-api-js: 0.45.1 - secretjs: 1.3.0-beta.25_google-protobuf@3.21.0 - socket.io-client: 4.5.1 - tonweb: 0.0.43 - tonweb-mnemonic: 1.0.1 - tronstation: 1.0.1 - tronweb: 4.3.0 - web3-providers-connex: 0.3.1 - xpnet-web3-contracts: github.com/xp-network/XP.network-HECO-Migration/65b3d13fb814ec8d8c4ea847c5915d763c0fec6f - -devDependencies: - "@types/bn.js": 5.1.0 - "@types/node": 18.7.13 - "@typescript-eslint/eslint-plugin": 4.33.0_3ekaj7j3owlolnuhj3ykrb7u7i - "@typescript-eslint/parser": 4.33.0_hxadhbs2xogijvk7vq4t2azzbu - dotenv: 16.0.1 - eslint: 7.32.0 - eslint-config-prettier: 8.5.0_eslint@7.32.0 - eslint-plugin-eslint-comments: 3.2.0_eslint@7.32.0 - eslint-plugin-functional: 3.7.2_hxadhbs2xogijvk7vq4t2azzbu - husky: 8.0.1 - prettier: 2.7.1 - pretty-quick: 3.1.3_prettier@2.7.1 - typedoc: 0.22.18_typescript@4.7.4 - typescript: 4.7.4 - -packages: - /@babel/code-frame/7.12.11: - resolution: - { - integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==, - } - dependencies: - "@babel/highlight": 7.18.6 - dev: true - - /@babel/code-frame/7.18.6: - resolution: - { - integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, - } - engines: { node: ">=6.9.0" } - dependencies: - "@babel/highlight": 7.18.6 - dev: false - - /@babel/helper-validator-identifier/7.18.6: - resolution: - { - integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==, - } - engines: { node: ">=6.9.0" } - - /@babel/highlight/7.18.6: - resolution: - { - integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, - } - engines: { node: ">=6.9.0" } - dependencies: - "@babel/helper-validator-identifier": 7.18.6 - chalk: 2.4.2 - js-tokens: 4.0.0 - - /@babel/runtime/7.11.2: - resolution: - { - integrity: sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==, - } - dependencies: - regenerator-runtime: 0.13.9 - dev: false - - /@babel/runtime/7.18.9: - resolution: - { - integrity: sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==, - } - engines: { node: ">=6.9.0" } - dependencies: - regenerator-runtime: 0.13.9 - dev: false - - /@cosmjs/encoding/0.27.1: - resolution: - { - integrity: sha512-rayLsA0ojHeniaRfWWcqSsrE/T1rl1gl0OXVNtXlPwLJifKBeLEefGbOUiAQaT0wgJ8VNGBazVtAZBpJidfDhw==, - } - dependencies: - base64-js: 1.5.1 - bech32: 1.1.4 - readonly-date: 1.0.0 - dev: false - - /@cosmjs/math/0.27.1: - resolution: - { - integrity: sha512-cHWVjmfIjtRc7f80n7x+J5k8pe+vTVTQ0lA82tIxUgqUvgS6rogPP/TmGtTiZ4+NxWxd11DUISY6gVpr18/VNQ==, - } - dependencies: - bn.js: 5.2.1 - dev: false - - /@cspotcode/source-map-support/0.8.1: - resolution: - { - integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, - } - engines: { node: ">=12" } - dependencies: - "@jridgewell/trace-mapping": 0.3.9 - dev: false - - /@dfinity/agent/0.11.3_urfyxkqvy2mysslkeyxo7ugw34: - resolution: - { - integrity: sha512-pqiogLey6S83SG5BS93hBCtXfGRW6tkxa8Y0c9HwxOP/wRoVEuKHdTcOn7rL/HN4mDTwxkdqK4EC1Kv24S1q4Q==, - } - peerDependencies: - "@dfinity/candid": ^0.11.3 - "@dfinity/principal": ^0.11.3 - dependencies: - "@dfinity/candid": 0.11.3 - "@dfinity/principal": 0.11.3 - base64-arraybuffer: 0.2.0 - bignumber.js: 9.0.1 - borc: 2.1.2 - js-sha256: 0.9.0 - simple-cbor: 0.4.1 - dev: false - - /@dfinity/candid/0.11.3: - resolution: - { - integrity: sha512-xX7xNj2lLt7SIlvy0sqNp4fpcTD/xnwEu9APj0tnIF64cnsxIiS12T1Z8jl9g80jCQ1CbRPQf4cfsOfS3Cd2OA==, - } - dev: false - - /@dfinity/identity/0.12.2_g4ydyf5f6qetjnajevqbsg73lu: - resolution: - { - integrity: sha512-JebcS29x3nsUK+qdF0FNSnx4IQ1xYiFB9mHpbGT3/MFe52s40DxL4CvsaZ8zAjDnusQnTJLzqLWGM7oo0QqwyQ==, - } - peerDependencies: - "@dfinity/agent": ^0.12.2 - "@dfinity/principal": ^0.12.2 - dependencies: - "@dfinity/agent": 0.11.3_urfyxkqvy2mysslkeyxo7ugw34 - "@dfinity/principal": 0.11.3 - "@peculiar/webcrypto": 1.4.0 - borc: 2.1.2 - js-sha256: 0.9.0 - secp256k1: 4.0.3 - ts-node: 10.9.1_57uwcby55h6tzvkj3v5sfcgxoe - tweetnacl: 1.0.3 - vitest: 0.18.1 - transitivePeerDependencies: - - "@edge-runtime/vm" - - "@swc/core" - - "@swc/wasm" - - "@types/node" - - "@vitest/ui" - - c8 - - happy-dom - - jsdom - - less - - sass - - stylus - - supports-color - - terser - - typescript - dev: false - - /@dfinity/nns/0.5.0_buffer@6.0.3: - resolution: - { - integrity: sha512-zFZswSTRx5VsyuC6cufmHibTXLbIfzhvzitB8X4i6tpGLT/0K7gMpKR6gYsDyG/Gq+aF2Z6CxEfE/RJIGQGbSw==, - } - dependencies: - "@dfinity/agent": 0.11.3_urfyxkqvy2mysslkeyxo7ugw34 - "@dfinity/candid": 0.11.3 - "@dfinity/principal": 0.11.3 - crc: 4.1.1_buffer@6.0.3 - crc-32: 1.2.2 - google-protobuf: 3.21.0 - js-sha256: 0.9.0 - randombytes: 2.1.0 - transitivePeerDependencies: - - buffer - dev: false - - /@dfinity/principal/0.11.3: - resolution: - { - integrity: sha512-+AJGDJ+RsveybSdxuTQFr2DPNZFpPfXnyixAOFWWdElVniSwnO/SwqQChR0AWvJdy/fKqoAXK+ZzyLG0uqSetA==, - } - dev: false - - /@elrondnetwork/bls-wasm/0.3.3: - resolution: - { - integrity: sha512-neCzWRk8pZsOBeAI3+t8jgiSkqj/y4IJPOMKG4ebL1+MiOFayygmfDvfZrK57RSoMWvDfXHlhTL25DrI+EtH+w==, - } - engines: { node: ">=8.9.0" } - dependencies: - assert: 2.0.0 - perf_hooks: 0.0.1 - dev: false - - /@elrondnetwork/erdjs/9.0.3: - resolution: - { - integrity: sha512-xOBzlFXkx2avMFTrZrgKoSSJbBUlZnSobpDaMzs4hqvUYr/xAN2y+nbMFJqaLcfKxf5ALGolnbqhprHLNfWpEQ==, - } - dependencies: - "@babel/runtime": 7.11.2 - "@elrondnetwork/bls-wasm": 0.3.3 - "@elrondnetwork/hw-app-elrond": 0.3.2 - "@ledgerhq/hw-transport-u2f": 5.36.0-deprecated - "@ledgerhq/hw-transport-webhid": 6.27.2 - "@ledgerhq/hw-transport-webusb": 6.11.2 - "@walletconnect/client": 1.6.5 - abort-controller: 3.0.0 - axios: 0.24.0 - bech32: 1.1.4 - bignumber.js: 9.0.1 - bip39: 3.0.2 - blake2b: 2.1.3 - buffer: 6.0.3 - ed25519-hd-key: 1.1.2 - json-bigint: 1.0.0 - json-duplicate-key-handle: 1.0.0 - keccak: 3.0.2 - platform: 1.3.6 - protobufjs: 6.10.2 - qs: 6.10.1 - scryptsy: 2.1.0 - tweetnacl: 1.0.3 - uuid: 8.3.2 - transitivePeerDependencies: - - bufferutil - - debug - - encoding - - utf-8-validate - dev: false - - /@elrondnetwork/hw-app-elrond/0.3.2: - resolution: - { - integrity: sha512-5TGnKuFQC6g4J9ipqEH5T71TEgGPDyU68lxdiF60qwQO5W0GaYvHKJiKe9rQdra5bCM04/4klMZDAg3BKqRoTw==, - } - dependencies: - "@ledgerhq/hw-transport": 5.51.1 - "@ledgerhq/hw-transport-node-hid": 5.51.1 - bip32-path: 0.4.2 - flow-copy-source: 2.0.9 - flow-typed: 3.8.0 - transitivePeerDependencies: - - encoding - dev: false - - /@esbuild/linux-loong64/0.14.54: - resolution: - { - integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, - } - engines: { node: ">=12" } - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@eslint/eslintrc/0.4.3: - resolution: - { - integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 7.3.1 - globals: 13.17.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - js-yaml: 3.14.1 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@ethereumjs/common/2.6.5: - resolution: - { - integrity: sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==, - } - dependencies: - crc-32: 1.2.2 - ethereumjs-util: 7.1.5 - dev: false - - /@ethereumjs/tx/3.5.2: - resolution: - { - integrity: sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==, - } - dependencies: - "@ethereumjs/common": 2.6.5 - ethereumjs-util: 7.1.5 - dev: false - - /@ethersproject/abi/5.5.0: - resolution: - { - integrity: sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w==, - } - dependencies: - "@ethersproject/address": 5.7.0 - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/constants": 5.7.0 - "@ethersproject/hash": 5.7.0 - "@ethersproject/keccak256": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/strings": 5.7.0 - dev: false - - /@ethersproject/abi/5.7.0: - resolution: - { - integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==, - } - 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 - dev: false - - /@ethersproject/abstract-provider/5.7.0: - resolution: - { - integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==, - } - 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 - dev: false - - /@ethersproject/abstract-signer/5.7.0: - resolution: - { - integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==, - } - 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 - dev: false - - /@ethersproject/address/5.7.0: - resolution: - { - integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==, - } - 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 - dev: false - - /@ethersproject/base64/5.5.0: - resolution: - { - integrity: sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - dev: false - - /@ethersproject/base64/5.7.0: - resolution: - { - integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==, - } - dependencies: - "@ethersproject/bytes": 5.7.0 - dev: false - - /@ethersproject/basex/5.5.0: - resolution: - { - integrity: sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - "@ethersproject/properties": 5.5.0 - dev: false - - /@ethersproject/basex/5.7.0: - resolution: - { - integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==, - } - dependencies: - "@ethersproject/bytes": 5.7.0 - "@ethersproject/properties": 5.7.0 - dev: false - - /@ethersproject/bignumber/5.5.0: - resolution: - { - integrity: sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - "@ethersproject/logger": 5.7.0 - bn.js: 4.12.0 - dev: false - - /@ethersproject/bignumber/5.7.0: - resolution: - { - integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==, - } - dependencies: - "@ethersproject/bytes": 5.7.0 - "@ethersproject/logger": 5.7.0 - bn.js: 5.2.1 - dev: false - - /@ethersproject/bytes/5.5.0: - resolution: - { - integrity: sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog==, - } - dependencies: - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/bytes/5.7.0: - resolution: - { - integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==, - } - dependencies: - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/constants/5.7.0: - resolution: - { - integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==, - } - dependencies: - "@ethersproject/bignumber": 5.7.0 - dev: false - - /@ethersproject/contracts/5.7.0: - resolution: - { - integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==, - } - dependencies: - "@ethersproject/abi": 5.7.0 - "@ethersproject/abstract-provider": 5.7.0 - "@ethersproject/abstract-signer": 5.7.0 - "@ethersproject/address": 5.7.0 - "@ethersproject/bignumber": 5.7.0 - "@ethersproject/bytes": 5.7.0 - "@ethersproject/constants": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/properties": 5.7.0 - "@ethersproject/transactions": 5.7.0 - dev: false - - /@ethersproject/hash/5.5.0: - resolution: - { - integrity: sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg==, - } - dependencies: - "@ethersproject/abstract-signer": 5.7.0 - "@ethersproject/address": 5.7.0 - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/keccak256": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/strings": 5.5.0 - dev: false - - /@ethersproject/hash/5.7.0: - resolution: - { - integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==, - } - 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 - dev: false - - /@ethersproject/hdnode/5.7.0: - resolution: - { - integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==, - } - dependencies: - "@ethersproject/abstract-signer": 5.7.0 - "@ethersproject/basex": 5.7.0 - "@ethersproject/bignumber": 5.7.0 - "@ethersproject/bytes": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/pbkdf2": 5.7.0 - "@ethersproject/properties": 5.7.0 - "@ethersproject/sha2": 5.7.0 - "@ethersproject/signing-key": 5.7.0 - "@ethersproject/strings": 5.7.0 - "@ethersproject/transactions": 5.7.0 - "@ethersproject/wordlists": 5.7.0 - dev: false - - /@ethersproject/json-wallets/5.7.0: - resolution: - { - integrity: sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==, - } - dependencies: - "@ethersproject/abstract-signer": 5.7.0 - "@ethersproject/address": 5.7.0 - "@ethersproject/bytes": 5.7.0 - "@ethersproject/hdnode": 5.7.0 - "@ethersproject/keccak256": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/pbkdf2": 5.7.0 - "@ethersproject/properties": 5.7.0 - "@ethersproject/random": 5.7.0 - "@ethersproject/strings": 5.7.0 - "@ethersproject/transactions": 5.7.0 - aes-js: 3.0.0 - scrypt-js: 3.0.1 - dev: false - - /@ethersproject/keccak256/5.5.0: - resolution: - { - integrity: sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - js-sha3: 0.8.0 - dev: false - - /@ethersproject/keccak256/5.7.0: - resolution: - { - integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==, - } - dependencies: - "@ethersproject/bytes": 5.7.0 - js-sha3: 0.8.0 - dev: false - - /@ethersproject/logger/5.7.0: - resolution: - { - integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==, - } - dev: false - - /@ethersproject/networks/5.7.0: - resolution: - { - integrity: sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==, - } - dependencies: - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/pbkdf2/5.5.0: - resolution: - { - integrity: sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - "@ethersproject/sha2": 5.5.0 - dev: false - - /@ethersproject/pbkdf2/5.7.0: - resolution: - { - integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==, - } - dependencies: - "@ethersproject/bytes": 5.7.0 - "@ethersproject/sha2": 5.7.0 - dev: false - - /@ethersproject/properties/5.5.0: - resolution: - { - integrity: sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA==, - } - dependencies: - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/properties/5.7.0: - resolution: - { - integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==, - } - dependencies: - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/providers/5.7.0: - resolution: - { - integrity: sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA==, - } - dependencies: - "@ethersproject/abstract-provider": 5.7.0 - "@ethersproject/abstract-signer": 5.7.0 - "@ethersproject/address": 5.7.0 - "@ethersproject/base64": 5.7.0 - "@ethersproject/basex": 5.7.0 - "@ethersproject/bignumber": 5.7.0 - "@ethersproject/bytes": 5.7.0 - "@ethersproject/constants": 5.7.0 - "@ethersproject/hash": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/networks": 5.7.0 - "@ethersproject/properties": 5.7.0 - "@ethersproject/random": 5.7.0 - "@ethersproject/rlp": 5.7.0 - "@ethersproject/sha2": 5.7.0 - "@ethersproject/strings": 5.7.0 - "@ethersproject/transactions": 5.7.0 - "@ethersproject/web": 5.7.0 - bech32: 1.1.4 - ws: 7.4.6 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /@ethersproject/random/5.5.0: - resolution: - { - integrity: sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/random/5.7.0: - resolution: - { - integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==, - } - dependencies: - "@ethersproject/bytes": 5.7.0 - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/rlp/5.7.0: - resolution: - { - integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==, - } - dependencies: - "@ethersproject/bytes": 5.7.0 - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/sha2/5.5.0: - resolution: - { - integrity: sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - "@ethersproject/logger": 5.7.0 - hash.js: 1.1.7 - dev: false - - /@ethersproject/sha2/5.7.0: - resolution: - { - integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==, - } - dependencies: - "@ethersproject/bytes": 5.7.0 - "@ethersproject/logger": 5.7.0 - hash.js: 1.1.7 - dev: false - - /@ethersproject/signing-key/5.7.0: - resolution: - { - integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==, - } - 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 - dev: false - - /@ethersproject/solidity/5.5.0: - resolution: - { - integrity: sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw==, - } - dependencies: - "@ethersproject/bignumber": 5.7.0 - "@ethersproject/bytes": 5.7.0 - "@ethersproject/keccak256": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/sha2": 5.7.0 - "@ethersproject/strings": 5.7.0 - dev: false - - /@ethersproject/solidity/5.7.0: - resolution: - { - integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==, - } - dependencies: - "@ethersproject/bignumber": 5.7.0 - "@ethersproject/bytes": 5.7.0 - "@ethersproject/keccak256": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/sha2": 5.7.0 - "@ethersproject/strings": 5.7.0 - dev: false - - /@ethersproject/strings/5.5.0: - resolution: - { - integrity: sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - "@ethersproject/constants": 5.7.0 - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/strings/5.7.0: - resolution: - { - integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==, - } - dependencies: - "@ethersproject/bytes": 5.7.0 - "@ethersproject/constants": 5.7.0 - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/transactions/5.7.0: - resolution: - { - integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==, - } - 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 - dev: false - - /@ethersproject/units/5.7.0: - resolution: - { - integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==, - } - dependencies: - "@ethersproject/bignumber": 5.7.0 - "@ethersproject/constants": 5.7.0 - "@ethersproject/logger": 5.7.0 - dev: false - - /@ethersproject/wallet/5.7.0: - resolution: - { - integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==, - } - dependencies: - "@ethersproject/abstract-provider": 5.7.0 - "@ethersproject/abstract-signer": 5.7.0 - "@ethersproject/address": 5.7.0 - "@ethersproject/bignumber": 5.7.0 - "@ethersproject/bytes": 5.7.0 - "@ethersproject/hash": 5.7.0 - "@ethersproject/hdnode": 5.7.0 - "@ethersproject/json-wallets": 5.7.0 - "@ethersproject/keccak256": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/properties": 5.7.0 - "@ethersproject/random": 5.7.0 - "@ethersproject/signing-key": 5.7.0 - "@ethersproject/transactions": 5.7.0 - "@ethersproject/wordlists": 5.7.0 - dev: false - - /@ethersproject/web/5.5.0: - resolution: - { - integrity: sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA==, - } - dependencies: - "@ethersproject/base64": 5.7.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/strings": 5.7.0 - dev: false - - /@ethersproject/web/5.7.0: - resolution: - { - integrity: sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==, - } - 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 - dev: false - - /@ethersproject/wordlists/5.5.0: - resolution: - { - integrity: sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - "@ethersproject/hash": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/strings": 5.5.0 - dev: false - - /@ethersproject/wordlists/5.7.0: - resolution: - { - integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==, - } - dependencies: - "@ethersproject/bytes": 5.7.0 - "@ethersproject/hash": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/properties": 5.7.0 - "@ethersproject/strings": 5.7.0 - dev: false - - /@grpc/grpc-js/1.6.10: - resolution: - { - integrity: sha512-XTX5z/P5kH802MDoVm/rqOil0UwYEOEjf9+NPgfmm5UINIxDzwYaXfVR6z8svCBG8Hlbu/FzkXqhP8J5xaWzSQ==, - } - engines: { node: ^8.13.0 || >=10.10.0 } - dependencies: - "@grpc/proto-loader": 0.7.2 - "@types/node": 18.7.13 - dev: false - - /@grpc/proto-loader/0.7.2: - resolution: - { - integrity: sha512-jCdyLIT/tdQ1zhrbTQnJNK5nbDf0GoBpy5jVNywBzzMDF+Vs6uEaHnfz46dMtDxkvwrF2hzk5Z67goliceH0sA==, - } - engines: { node: ">=6" } - hasBin: true - dependencies: - "@types/long": 4.0.2 - lodash.camelcase: 4.3.0 - long: 4.0.0 - protobufjs: 7.0.0 - yargs: 16.2.0 - dev: false - - /@hapi/hoek/9.3.0: - resolution: - { - integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==, - } - dev: false - - /@hapi/topo/5.1.0: - resolution: - { - integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==, - } - dependencies: - "@hapi/hoek": 9.3.0 - dev: false - - /@hashgraph/cryptography/1.4.0: - resolution: - { - integrity: sha512-NtDmeuwaWJKBDYZd+g/etAD56p/RPUuZGdT9jhXxiFW0YrKCaU1k4ramICbRaJg7E+RDSFJXJLarh0G72z5YDA==, - } - engines: { node: ">=12.0.0" } - peerDependencies: - expo: ^45.0.3 - expo-crypto: ^10.1.2 - expo-random: ^12.1.2 - dependencies: - bignumber.js: 9.1.0 - crypto-js: 4.1.1 - elliptic: 6.5.4 - js-base64: 3.7.2 - tweetnacl: 1.0.3 - utf8: 3.0.0 - dev: false - - /@hashgraph/hethers/1.1.2: - resolution: - { - integrity: sha512-DezQCwm86oQCIXfDwJI6G+/RI0YPy9a/Ho/z3CRUSY9/1gBB0ZFRSK9HUovlrj30eyNtWVeIrHsYE+ZerQI5rQ==, - } - dependencies: - "@ethersproject/solidity": 5.5.0 - "@hethers/abstract-provider": 1.1.1 - "@hethers/abstract-signer": 1.1.2 - "@hethers/address": 1.1.0 - "@hethers/constants": 1.1.0 - "@hethers/contracts": 1.1.1 - "@hethers/hdnode": 1.1.1 - "@hethers/json-wallets": 1.1.1 - "@hethers/logger": 1.1.0 - "@hethers/networks": 1.1.0 - "@hethers/providers": 1.1.1 - "@hethers/signing-key": 1.1.0 - "@hethers/transactions": 1.1.1 - "@hethers/units": 1.1.0 - "@hethers/wallet": 1.1.1 - transitivePeerDependencies: - - "@hashgraph/sdk" - - bufferutil - - debug - - expo - - expo-crypto - - expo-random - - utf-8-validate - dev: false - - /@hashgraph/proto/2.1.5: - resolution: - { - integrity: sha512-7iKO98T3iS+V+Ddy3Ew7+u8nzFT8MjRs6HczPE2scCjwKRhsodtYfGyOxVji+HN6WDqZmylr1VJwhNy5de/CRQ==, - } - engines: { node: ">=10.0.0" } - dependencies: - long: 4.0.0 - protobufjs: 6.11.3 - dev: false - - /@hashgraph/sdk/2.11.0-beta.1: - resolution: - { - integrity: sha512-rpUSg0c580paop1uOvHhUFt7WGnDuvqC0iDpBr0Bp2jTOhgL12AOG5sF0RF/bEQfwAdsizgRBTT24xhmk07yhA==, - } - engines: { node: ">=10.17.0" } - dependencies: - "@grpc/grpc-js": 1.6.10 - "@hashgraph/cryptography": 1.4.0 - "@hashgraph/proto": 2.1.5 - bignumber.js: 9.1.0 - crypto-js: 4.1.1 - js-base64: 3.7.2 - js-logger: 1.6.1 - long: 4.0.0 - protobufjs: 6.11.3 - utf8: 3.0.0 - transitivePeerDependencies: - - expo - - expo-crypto - - expo-random - dev: false - - /@hethers/abstract-provider/1.1.1: - resolution: - { - integrity: sha512-s3u4Cu2qpdWgLh7oYf/evCFk7sgZYlaaIhje6BMXFN+jOKgWWQA6MSECqHSc6h9p9eNEsKt1HmM7yWClikrzyQ==, - } - dependencies: - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/web": 5.5.0 - "@hethers/logger": 1.1.0 - "@hethers/networks": 1.1.0 - "@hethers/transactions": 1.1.1 - transitivePeerDependencies: - - "@hashgraph/sdk" - dev: false - - /@hethers/abstract-provider/1.1.1_jrps2nzh7bjynei3npexd236my: - resolution: - { - integrity: sha512-s3u4Cu2qpdWgLh7oYf/evCFk7sgZYlaaIhje6BMXFN+jOKgWWQA6MSECqHSc6h9p9eNEsKt1HmM7yWClikrzyQ==, - } - dependencies: - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/web": 5.5.0 - "@hethers/logger": 1.1.0 - "@hethers/networks": 1.1.0 - "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my - transitivePeerDependencies: - - "@hashgraph/sdk" - dev: false - - /@hethers/abstract-signer/1.1.1: - resolution: - { - integrity: sha512-g6NyaC/Fwj+l30MqMudKRgL/zNJUcHFdJ5ZdRJAeJaOVBRl7Za3X/2Fz9/A1YJocnhvZFBygq67fl25a+1aKYw==, - } - dependencies: - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@hethers/abstract-provider": 1.1.1 - "@hethers/address": 1.1.0 - "@hethers/logger": 1.1.0 - "@hethers/transactions": 1.1.1 - transitivePeerDependencies: - - "@hashgraph/sdk" - dev: false - - /@hethers/abstract-signer/1.1.1_jrps2nzh7bjynei3npexd236my: - resolution: - { - integrity: sha512-g6NyaC/Fwj+l30MqMudKRgL/zNJUcHFdJ5ZdRJAeJaOVBRl7Za3X/2Fz9/A1YJocnhvZFBygq67fl25a+1aKYw==, - } - dependencies: - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@hethers/abstract-provider": 1.1.1_jrps2nzh7bjynei3npexd236my - "@hethers/address": 1.1.0 - "@hethers/logger": 1.1.0 - "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my - transitivePeerDependencies: - - "@hashgraph/sdk" - dev: false - - /@hethers/abstract-signer/1.1.2: - resolution: - { - integrity: sha512-F66cbneTByr/BlfXvXsZ1wfjxXAa1daTMV0YNWrBgsjuT/xZxyqfuEMCNeHVYSd91S7gNlGGdGcEqKcqlJpVew==, - } - dependencies: - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@hethers/abstract-provider": 1.1.1 - "@hethers/address": 1.1.0 - "@hethers/logger": 1.1.0 - "@hethers/transactions": 1.1.1 - transitivePeerDependencies: - - "@hashgraph/sdk" - dev: false - - /@hethers/address/1.1.0: - resolution: - { - integrity: sha512-aqZvvLe9n0Tc72aAGgjTR9NWLV+rcL9ORq9GOh9tuQ4GeY4XLT1vcI+liXMpjvDxAgEXfsgUWPW9MsZ7DOHSmA==, - } - dependencies: - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/keccak256": 5.5.0 - "@hethers/logger": 1.1.0 - dev: false - - /@hethers/constants/1.1.0: - resolution: - { - integrity: sha512-cto4CMH5bbLdzKyIHnBVx7aW1bipi92u94PBvXD3+EEdYgWMMSFhsAhNtpRo0YNovfG6Vqi5eqs+JM71bncnGw==, - } - dependencies: - "@ethersproject/bignumber": 5.5.0 - dev: false - - /@hethers/contracts/1.1.1: - resolution: - { - integrity: sha512-72zte2dgoLBnsf5DU1YtfbWvQ9OZh6S1qdBdRCxaNBc/3p0lTuxPWcerIuLeKV/HtDKnwSU4mYIoO46FWyZ2eA==, - } - dependencies: - "@ethersproject/abi": 5.5.0 - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@hethers/abstract-provider": 1.1.1 - "@hethers/abstract-signer": 1.1.1 - "@hethers/address": 1.1.0 - "@hethers/logger": 1.1.0 - "@hethers/providers": 1.1.1 - "@hethers/transactions": 1.1.1 - transitivePeerDependencies: - - "@hashgraph/sdk" - - bufferutil - - debug - - expo - - expo-crypto - - expo-random - - utf-8-validate - dev: false - - /@hethers/hdnode/1.1.1: - resolution: - { - integrity: sha512-/yECuQAUaCGIhcDG3x81XJOH6nDwahfMpSq7B7AWl+buS7tswBF9fYwAD/G9SzgnjB9LlIaBWCJcK1/Z5sU39g==, - } - dependencies: - "@ethersproject/basex": 5.5.0 - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/pbkdf2": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/sha2": 5.5.0 - "@ethersproject/strings": 5.5.0 - "@ethersproject/wordlists": 5.5.0 - "@hethers/abstract-signer": 1.1.1 - "@hethers/logger": 1.1.0 - "@hethers/signing-key": 1.1.0 - "@hethers/transactions": 1.1.1 - transitivePeerDependencies: - - "@hashgraph/sdk" - dev: false - - /@hethers/hdnode/1.1.1_jrps2nzh7bjynei3npexd236my: - resolution: - { - integrity: sha512-/yECuQAUaCGIhcDG3x81XJOH6nDwahfMpSq7B7AWl+buS7tswBF9fYwAD/G9SzgnjB9LlIaBWCJcK1/Z5sU39g==, - } - dependencies: - "@ethersproject/basex": 5.5.0 - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/pbkdf2": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/sha2": 5.5.0 - "@ethersproject/strings": 5.5.0 - "@ethersproject/wordlists": 5.5.0 - "@hethers/abstract-signer": 1.1.1_jrps2nzh7bjynei3npexd236my - "@hethers/logger": 1.1.0 - "@hethers/signing-key": 1.1.0 - "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my - transitivePeerDependencies: - - "@hashgraph/sdk" - dev: false - - /@hethers/json-wallets/1.1.1: - resolution: - { - integrity: sha512-GtEHrKex0B0u3EdTX6tYrMpYESvS1zZNraE1Q/gFyWpB/VmwEze2aUApdcEDnWiOJOvZhg5E8QOaSZeHzMS0SQ==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - "@ethersproject/keccak256": 5.5.0 - "@ethersproject/pbkdf2": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/random": 5.5.0 - "@ethersproject/strings": 5.5.0 - "@hethers/abstract-signer": 1.1.1 - "@hethers/address": 1.1.0 - "@hethers/hdnode": 1.1.1 - "@hethers/logger": 1.1.0 - "@hethers/transactions": 1.1.1 - aes-js: 3.0.0 - scrypt-js: 3.0.1 - transitivePeerDependencies: - - "@hashgraph/sdk" - dev: false - - /@hethers/json-wallets/1.1.1_jrps2nzh7bjynei3npexd236my: - resolution: - { - integrity: sha512-GtEHrKex0B0u3EdTX6tYrMpYESvS1zZNraE1Q/gFyWpB/VmwEze2aUApdcEDnWiOJOvZhg5E8QOaSZeHzMS0SQ==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - "@ethersproject/keccak256": 5.5.0 - "@ethersproject/pbkdf2": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/random": 5.5.0 - "@ethersproject/strings": 5.5.0 - "@hethers/abstract-signer": 1.1.1_jrps2nzh7bjynei3npexd236my - "@hethers/address": 1.1.0 - "@hethers/hdnode": 1.1.1_jrps2nzh7bjynei3npexd236my - "@hethers/logger": 1.1.0 - "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my - aes-js: 3.0.0 - scrypt-js: 3.0.1 - transitivePeerDependencies: - - "@hashgraph/sdk" - dev: false - - /@hethers/logger/1.1.0: - resolution: - { - integrity: sha512-EZAM5kirlNobe6auj7AUS1QyNOxunm9ZglatkC0fIx+9y4tEQsrx4asu5r2SPg1fgZiJ9mk2DbaidMWuHSr3kA==, - } - dev: false - - /@hethers/networks/1.1.0: - resolution: - { - integrity: sha512-xtS+5KHlyXND+1CbUCeMPJrqlyDk7ayhcxeAKSc7aHyHm1/wa3xI45W6tJj+AMDC8sGS5GZvAU3YrKSkUGTFdw==, - } - dependencies: - "@hethers/address": 1.1.0 - "@hethers/logger": 1.1.0 - dev: false - - /@hethers/providers/1.1.1: - resolution: - { - integrity: sha512-6CdwiB7GVD7tFm7G1mLemoVKgZ8KNiQvTTEyFxqazRFW6G8unVW07S104+hq/jfVL2eMoZP0O3LZLD+ny5Jelg==, - } - dependencies: - "@ethersproject/base64": 5.5.0 - "@ethersproject/basex": 5.5.0 - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/hash": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/random": 5.5.0 - "@ethersproject/sha2": 5.5.0 - "@ethersproject/strings": 5.5.0 - "@ethersproject/web": 5.5.0 - "@hashgraph/proto": 2.1.5 - "@hashgraph/sdk": 2.11.0-beta.1 - "@hethers/abstract-provider": 1.1.1_jrps2nzh7bjynei3npexd236my - "@hethers/abstract-signer": 1.1.1_jrps2nzh7bjynei3npexd236my - "@hethers/address": 1.1.0 - "@hethers/constants": 1.1.0 - "@hethers/logger": 1.1.0 - "@hethers/networks": 1.1.0 - "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my - "@types/axios": 0.14.0 - axios: 0.24.0 - bech32: 1.1.4 - ws: 7.4.6 - transitivePeerDependencies: - - bufferutil - - debug - - expo - - expo-crypto - - expo-random - - utf-8-validate - dev: false - - /@hethers/signing-key/1.1.0: - resolution: - { - integrity: sha512-Xf+0a2DI3hLcnx2reFO5B7+JSwJMNc9iyb1iWtxi0h6dgrHIF5h0bdRJXSY8a19953hZ6jhDvk5RwEzDaamUqw==, - } - dependencies: - "@ethersproject/bytes": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@hethers/logger": 1.1.0 - bn.js: 4.12.0 - elliptic: 6.5.4 - hash.js: 1.1.7 - dev: false - - /@hethers/transactions/1.1.1: - resolution: - { - integrity: sha512-M4EL3l/xJ3MmtWSQEm8ZpD9LJUd9LPEi106VfBEL/ns/xcTW6wRlIw+xwLHdqDibZ8/Niu8SYN18LbHp/zY6ng==, - } - peerDependencies: - "@hashgraph/sdk": 2.11.0-beta.1 - dependencies: - "@ethersproject/base64": 5.5.0 - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/keccak256": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@hethers/address": 1.1.0 - "@hethers/constants": 1.1.0 - "@hethers/logger": 1.1.0 - "@hethers/signing-key": 1.1.0 - dev: false - - /@hethers/transactions/1.1.1_jrps2nzh7bjynei3npexd236my: - resolution: - { - integrity: sha512-M4EL3l/xJ3MmtWSQEm8ZpD9LJUd9LPEi106VfBEL/ns/xcTW6wRlIw+xwLHdqDibZ8/Niu8SYN18LbHp/zY6ng==, - } - peerDependencies: - "@hashgraph/sdk": 2.11.0-beta.1 - dependencies: - "@ethersproject/base64": 5.5.0 - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/keccak256": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@hashgraph/sdk": 2.11.0-beta.1 - "@hethers/address": 1.1.0 - "@hethers/constants": 1.1.0 - "@hethers/logger": 1.1.0 - "@hethers/signing-key": 1.1.0 - dev: false - - /@hethers/units/1.1.0: - resolution: - { - integrity: sha512-FNxIQalKF4TbgtpEicN9U0HPjlIhnXF1iNouxy1QzQVt58j+elJ6pj7d6Ht5LtwTW/UogGfx95803DZFXqrIhw==, - } - dependencies: - "@ethersproject/bignumber": 5.5.0 - "@hethers/logger": 1.1.0 - dev: false - - /@hethers/wallet/1.1.1: - resolution: - { - integrity: sha512-tg6vrjZL1t1FQziCat7zBx2IjqfFbWsQv5WwZkHPjn7Y/lFzmZuVYdh90t7/p3rquC96VGdmqYa/557qdotzRw==, - } - dependencies: - "@ethersproject/bignumber": 5.5.0 - "@ethersproject/bytes": 5.5.0 - "@ethersproject/hash": 5.5.0 - "@ethersproject/keccak256": 5.5.0 - "@ethersproject/properties": 5.5.0 - "@ethersproject/random": 5.5.0 - "@ethersproject/wordlists": 5.5.0 - "@hashgraph/sdk": 2.11.0-beta.1 - "@hethers/abstract-provider": 1.1.1_jrps2nzh7bjynei3npexd236my - "@hethers/abstract-signer": 1.1.1_jrps2nzh7bjynei3npexd236my - "@hethers/address": 1.1.0 - "@hethers/hdnode": 1.1.1_jrps2nzh7bjynei3npexd236my - "@hethers/json-wallets": 1.1.1_jrps2nzh7bjynei3npexd236my - "@hethers/logger": 1.1.0 - "@hethers/signing-key": 1.1.0 - "@hethers/transactions": 1.1.1_jrps2nzh7bjynei3npexd236my - transitivePeerDependencies: - - expo - - expo-crypto - - expo-random - dev: false - - /@humanwhocodes/config-array/0.5.0: - resolution: - { - integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==, - } - engines: { node: ">=10.10.0" } - dependencies: - "@humanwhocodes/object-schema": 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/object-schema/1.2.1: - resolution: - { - integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, - } - dev: true - - /@improbable-eng/grpc-web-node-http-transport/0.15.0_fng5pv4qmdetiqq66m6yjkaacu: - resolution: - { - integrity: sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA==, - } - peerDependencies: - "@improbable-eng/grpc-web": ">=0.13.0" - dependencies: - "@improbable-eng/grpc-web": 0.15.0_google-protobuf@3.21.0 - dev: false - - /@improbable-eng/grpc-web/0.15.0_google-protobuf@3.21.0: - resolution: - { - integrity: sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==, - } - peerDependencies: - google-protobuf: ^3.14.0 - dependencies: - browser-headers: 0.4.1 - google-protobuf: 3.21.0 - dev: false - - /@jridgewell/resolve-uri/3.1.0: - resolution: - { - integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, - } - engines: { node: ">=6.0.0" } - dev: false - - /@jridgewell/sourcemap-codec/1.4.14: - resolution: - { - integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, - } - dev: false - - /@jridgewell/trace-mapping/0.3.9: - resolution: - { - integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, - } - dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 - dev: false - - /@json-rpc-tools/types/1.7.6: - resolution: - { - integrity: sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==, - } - dependencies: - keyvaluestorage-interface: 1.0.0 - dev: false - - /@json-rpc-tools/utils/1.7.6: - resolution: - { - integrity: sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw==, - } - dependencies: - "@json-rpc-tools/types": 1.7.6 - "@pedrouid/environment": 1.0.1 - dev: false - - /@ledgerhq/devices/5.51.1: - resolution: - { - integrity: sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==, - } - dependencies: - "@ledgerhq/errors": 5.50.0 - "@ledgerhq/logs": 5.50.0 - rxjs: 6.6.7 - semver: 7.3.7 - dev: false - - /@ledgerhq/devices/6.27.1: - resolution: - { - integrity: sha512-jX++oy89jtv7Dp2X6gwt3MMkoajel80JFWcdc0HCouwDsV1mVJ3SQdwl/bQU0zd8HI6KebvUP95QTwbQLLK/RQ==, - } - dependencies: - "@ledgerhq/errors": 6.10.1 - "@ledgerhq/logs": 6.10.0 - rxjs: 6.6.7 - semver: 7.3.7 - dev: false - - /@ledgerhq/devices/7.0.0: - resolution: - { - integrity: sha512-vq4B33WdU0dRAJIRFWZMj6w1W1yw1i4mekCmhk7N9wPaFrtGWZ2iI9WDihsNOBooCWKQe8Jsb9eD8RVThbSlFQ==, - } - dependencies: - "@ledgerhq/errors": 6.10.1 - "@ledgerhq/logs": 6.10.0 - rxjs: 6.6.7 - semver: 7.3.7 - dev: false - - /@ledgerhq/errors/5.50.0: - resolution: - { - integrity: sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==, - } - dev: false - - /@ledgerhq/errors/6.10.1: - resolution: - { - integrity: sha512-92d1zRQleR1AQ4CAXgWgDtKUms+8EwShLVUcajI+BLWvgJ1Vclmq6PsBIDEQbsm+riVu/Ji3LcHdmgFgmi0VGw==, - } - dev: false - - /@ledgerhq/hw-transport-node-hid-noevents/5.51.1: - resolution: - { - integrity: sha512-9wFf1L8ZQplF7XOY2sQGEeOhpmBRzrn+4X43kghZ7FBDoltrcK+s/D7S+7ffg3j2OySyP6vIIIgloXylao5Scg==, - } - dependencies: - "@ledgerhq/devices": 5.51.1 - "@ledgerhq/errors": 5.50.0 - "@ledgerhq/hw-transport": 5.51.1 - "@ledgerhq/logs": 5.50.0 - node-hid: 2.1.1 - dev: false - - /@ledgerhq/hw-transport-node-hid/5.51.1: - resolution: - { - integrity: sha512-Y2eVCCdhVs2Lfr7N2x2cNb+ogcZ24ZATO4QxaQ7LogjiPwYmzmvuXFn8zFjMSrKUCn9CtbptXcuiu0NkGsjWlw==, - } - dependencies: - "@ledgerhq/devices": 5.51.1 - "@ledgerhq/errors": 5.50.0 - "@ledgerhq/hw-transport": 5.51.1 - "@ledgerhq/hw-transport-node-hid-noevents": 5.51.1 - "@ledgerhq/logs": 5.50.0 - lodash: 4.17.21 - node-hid: 2.1.1 - usb: 1.9.2 - dev: false - - /@ledgerhq/hw-transport-u2f/5.36.0-deprecated: - resolution: - { - integrity: sha512-T/+mGHIiUK/ZQATad6DMDmobCMZ1mVST952009jKzhaE1Et2Uy2secU+QhRkx3BfEAkvwa0zSRSYCL9d20Iqjg==, - } - deprecated: "@ledgerhq/hw-transport-u2f is deprecated. Please use @ledgerhq/hw-transport-webusb or @ledgerhq/hw-transport-webhid. https://github.com/LedgerHQ/ledgerjs/blob/master/docs/migrate_webusb.md" - dependencies: - "@ledgerhq/errors": 5.50.0 - "@ledgerhq/hw-transport": 5.51.1 - "@ledgerhq/logs": 5.50.0 - u2f-api: 0.2.7 - dev: false - - /@ledgerhq/hw-transport-web-ble/5.48.0: - resolution: - { - integrity: sha512-ezgssFvxc4/UbfwIxwg9jEn0/yiND8TW6bDkaE3kAqKCa8ZYYgFtms8iRqjTOJlqcbSYkudbNhP74jtY0NxfdA==, - } - dependencies: - "@ledgerhq/devices": 5.51.1 - "@ledgerhq/errors": 5.50.0 - "@ledgerhq/hw-transport": 5.51.1 - "@ledgerhq/logs": 5.50.0 - rxjs: 6.6.7 - dev: false - - /@ledgerhq/hw-transport-webhid/5.48.0: - resolution: - { - integrity: sha512-g6TYxgPX3MqP3jQ4SJaJjlM+2SwUSk4Si/9MeKLwz5ySbiD3bSTh/Gbzv8VBCaHPO4fILujc5vW/xejJuMzR8w==, - } - dependencies: - "@ledgerhq/devices": 5.51.1 - "@ledgerhq/errors": 5.50.0 - "@ledgerhq/hw-transport": 5.51.1 - "@ledgerhq/logs": 5.50.0 - dev: false - - /@ledgerhq/hw-transport-webhid/6.27.2: - resolution: - { - integrity: sha512-ZlyNheUhcxBZqjJzhSfJfeGQvNbeyWs9866rdQjVeG1zsbTJi0+6tfRv8J248QISS8vHtG5IMSxgMg9mtux9dQ==, - } - dependencies: - "@ledgerhq/devices": 7.0.0 - "@ledgerhq/errors": 6.10.1 - "@ledgerhq/hw-transport": 6.27.2 - "@ledgerhq/logs": 6.10.0 - dev: false - - /@ledgerhq/hw-transport-webusb/5.48.0: - resolution: - { - integrity: sha512-tO+p11aRQx9q9ifmi/NCbCBKQ738lp+PROy1BWSzjCJcUEz1sKTLeRTLE2Xze25KebhuM2YR1NgkX5LN1z4upA==, - } - dependencies: - "@ledgerhq/devices": 5.51.1 - "@ledgerhq/errors": 5.50.0 - "@ledgerhq/hw-transport": 5.51.1 - "@ledgerhq/logs": 5.50.0 - dev: false - - /@ledgerhq/hw-transport-webusb/6.11.2: - resolution: - { - integrity: sha512-ReiYoypXybLQi1ekA+YQqsvbSj0wwTFH7Lg690eUkqZydjDd4lMjpZk7lDczsXp3wxTjE/mdAQ0bpNwZWmPTJw==, - } - dependencies: - "@ledgerhq/devices": 6.27.1 - "@ledgerhq/errors": 6.10.1 - "@ledgerhq/hw-transport": 6.27.2 - "@ledgerhq/logs": 6.10.0 - dev: false - - /@ledgerhq/hw-transport/5.51.1: - resolution: - { - integrity: sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==, - } - dependencies: - "@ledgerhq/devices": 5.51.1 - "@ledgerhq/errors": 5.50.0 - events: 3.3.0 - dev: false - - /@ledgerhq/hw-transport/6.27.2: - resolution: - { - integrity: sha512-GF4pmK78rEKhZfbmunwQ131c+0MGa6L5IoYlwgFcg6CaFpUjjPiTCKUFsm4flsE0Z0Ltn9QuKoe+xEHULo7rGA==, - } - dependencies: - "@ledgerhq/devices": 7.0.0 - "@ledgerhq/errors": 6.10.1 - events: 3.3.0 - dev: false - - /@ledgerhq/logs/5.50.0: - resolution: - { - integrity: sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==, - } - dev: false - - /@ledgerhq/logs/6.10.0: - resolution: - { - integrity: sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw==, - } - dev: false - - /@noble/hashes/1.0.0: - resolution: - { - integrity: sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg==, - } - dev: false - - /@noble/secp256k1/1.6.3: - resolution: - { - integrity: sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==, - } - dev: false - - /@nodelib/fs.scandir/2.1.5: - resolution: - { - integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, - } - engines: { node: ">= 8" } - dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: 1.2.0 - - /@nodelib/fs.stat/2.0.5: - resolution: - { - integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, - } - engines: { node: ">= 8" } - - /@nodelib/fs.walk/1.2.8: - resolution: - { - integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, - } - engines: { node: ">= 8" } - dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: 1.13.0 - - /@octokit/auth-token/2.5.0: - resolution: - { - integrity: sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==, - } - dependencies: - "@octokit/types": 6.41.0 - dev: false - - /@octokit/core/3.6.0: - resolution: - { - integrity: sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==, - } - dependencies: - "@octokit/auth-token": 2.5.0 - "@octokit/graphql": 4.8.0 - "@octokit/request": 5.6.3 - "@octokit/request-error": 2.1.0 - "@octokit/types": 6.41.0 - before-after-hook: 2.2.2 - universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding - dev: false - - /@octokit/endpoint/6.0.12: - resolution: - { - integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==, - } - dependencies: - "@octokit/types": 6.41.0 - is-plain-object: 5.0.0 - universal-user-agent: 6.0.0 - dev: false - - /@octokit/graphql/4.8.0: - resolution: - { - integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==, - } - dependencies: - "@octokit/request": 5.6.3 - "@octokit/types": 6.41.0 - universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding - dev: false - - /@octokit/openapi-types/12.11.0: - resolution: - { - integrity: sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==, - } - dev: false - - /@octokit/plugin-paginate-rest/2.21.3_@octokit+core@3.6.0: - resolution: - { - integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==, - } - peerDependencies: - "@octokit/core": ">=2" - dependencies: - "@octokit/core": 3.6.0 - "@octokit/types": 6.41.0 - dev: false - - /@octokit/plugin-request-log/1.0.4_@octokit+core@3.6.0: - resolution: - { - integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==, - } - peerDependencies: - "@octokit/core": ">=3" - dependencies: - "@octokit/core": 3.6.0 - dev: false - - /@octokit/plugin-rest-endpoint-methods/5.16.2_@octokit+core@3.6.0: - resolution: - { - integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==, - } - peerDependencies: - "@octokit/core": ">=3" - dependencies: - "@octokit/core": 3.6.0 - "@octokit/types": 6.41.0 - deprecation: 2.3.1 - dev: false - - /@octokit/request-error/2.1.0: - resolution: - { - integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==, - } - dependencies: - "@octokit/types": 6.41.0 - deprecation: 2.3.1 - once: 1.4.0 - dev: false - - /@octokit/request/5.6.3: - resolution: - { - integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==, - } - dependencies: - "@octokit/endpoint": 6.0.12 - "@octokit/request-error": 2.1.0 - "@octokit/types": 6.41.0 - is-plain-object: 5.0.0 - node-fetch: 2.6.7 - universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding - dev: false - - /@octokit/rest/18.12.0: - resolution: - { - integrity: sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==, - } - dependencies: - "@octokit/core": 3.6.0 - "@octokit/plugin-paginate-rest": 2.21.3_@octokit+core@3.6.0 - "@octokit/plugin-request-log": 1.0.4_@octokit+core@3.6.0 - "@octokit/plugin-rest-endpoint-methods": 5.16.2_@octokit+core@3.6.0 - transitivePeerDependencies: - - encoding - dev: false - - /@octokit/types/6.41.0: - resolution: - { - integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==, - } - dependencies: - "@octokit/openapi-types": 12.11.0 - dev: false - - /@osmonauts/helpers/0.3.8: - resolution: - { - integrity: sha512-6xM/DGjLctziRVT2DuR7/MQ/HqfHAcqOaGF4z77Jeh3RWQ78zWiaRVxBefRQdKaqrh5LhXL6VebUdiy9IGwTTA==, - } - dependencies: - "@babel/runtime": 7.18.9 - long: 5.2.0 - protobufjs: 6.11.3 - dev: false - - /@peculiar/asn1-schema/2.3.0: - resolution: - { - integrity: sha512-DtNLAG4vmDrdSJFPe7rypkcj597chNQL7u+2dBtYo5mh7VW2+im6ke+O0NVr8W1f4re4C3F71LhoMb0Yxqa48Q==, - } - dependencies: - asn1js: 3.0.5 - pvtsutils: 1.3.2 - tslib: 2.4.0 - dev: false - - /@peculiar/json-schema/1.1.12: - resolution: - { - integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==, - } - engines: { node: ">=8.0.0" } - dependencies: - tslib: 2.4.0 - dev: false - - /@peculiar/webcrypto/1.4.0: - resolution: - { - integrity: sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg==, - } - engines: { node: ">=10.12.0" } - dependencies: - "@peculiar/asn1-schema": 2.3.0 - "@peculiar/json-schema": 1.1.12 - pvtsutils: 1.3.2 - tslib: 2.4.0 - webcrypto-core: 1.7.5 - dev: false - - /@pedrouid/environment/1.0.1: - resolution: - { - integrity: sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==, - } - dev: false - - /@project-serum/anchor/0.25.0: - resolution: - { - integrity: sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==, - } - engines: { node: ">=11" } - dependencies: - "@project-serum/borsh": 0.2.5_@solana+web3.js@1.53.0 - "@solana/web3.js": 1.53.0 - base64-js: 1.5.1 - bn.js: 5.2.1 - bs58: 4.0.1 - buffer-layout: 1.2.2 - camelcase: 5.3.1 - cross-fetch: 3.1.5 - crypto-hash: 1.3.0 - eventemitter3: 4.0.7 - js-sha256: 0.9.0 - pako: 2.0.4 - snake-case: 3.0.4 - superstruct: 0.15.5 - toml: 3.0.0 - transitivePeerDependencies: - - bufferutil - - encoding - - react-native - - utf-8-validate - dev: false - - /@project-serum/borsh/0.2.5_@solana+web3.js@1.53.0: - resolution: - { - integrity: sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==, - } - engines: { node: ">=10" } - peerDependencies: - "@solana/web3.js": ^1.2.0 - dependencies: - "@solana/web3.js": 1.53.0 - bn.js: 5.2.1 - buffer-layout: 1.2.2 - dev: false - - /@protobufjs/aspromise/1.1.2: - resolution: - { - integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, - } - dev: false - - /@protobufjs/base64/1.1.2: - resolution: - { - integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, - } - dev: false - - /@protobufjs/codegen/2.0.4: - resolution: - { - integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, - } - dev: false - - /@protobufjs/eventemitter/1.1.0: - resolution: - { - integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, - } - dev: false - - /@protobufjs/fetch/1.1.0: - resolution: - { - integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, - } - dependencies: - "@protobufjs/aspromise": 1.1.2 - "@protobufjs/inquire": 1.1.0 - dev: false - - /@protobufjs/float/1.0.2: - resolution: - { - integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, - } - dev: false - - /@protobufjs/inquire/1.1.0: - resolution: - { - integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, - } - dev: false - - /@protobufjs/path/1.1.2: - resolution: - { - integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, - } - dev: false - - /@protobufjs/pool/1.1.0: - resolution: - { - integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, - } - dev: false - - /@protobufjs/utf8/1.1.0: - resolution: - { - integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, - } - dev: false - - /@randlabs/communication-bridge/1.0.0: - resolution: - { - integrity: sha512-CuJNwtMTG1LHR1LQNWUPv+8xPUdkRY9p61wGJEp8J/N3q8djmnMySvSQlyVqLBvXsTPKmYc0ZmfXEXCpb5P5Cw==, - } - dev: false - - /@randlabs/myalgo-connect/1.3.0: - resolution: - { - integrity: sha512-ujHa/7f0g1yHNr1ZZO8d/AF7WTTEFGS76D8aDUV4DmoxUX6mVS4IzED88j0wys7TRCJbjGib2vcPg3Y8nKxsMw==, - } - dependencies: - "@randlabs/communication-bridge": 1.0.0 - dev: false - - /@sideway/address/4.1.4: - resolution: - { - integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==, - } - dependencies: - "@hapi/hoek": 9.3.0 - dev: false - - /@sideway/formula/3.0.0: - resolution: - { - integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==, - } - dev: false - - /@sideway/pinpoint/2.0.0: - resolution: - { - integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==, - } - dev: false - - /@sindresorhus/is/4.6.0: - resolution: - { - integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==, - } - engines: { node: ">=10" } - dev: false - - /@socket.io/component-emitter/3.1.0: - resolution: - { - integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==, - } - dev: false - - /@solana/buffer-layout-utils/0.2.0: - resolution: - { - integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==, - } - engines: { node: ">= 10" } - dependencies: - "@solana/buffer-layout": 4.0.0 - "@solana/web3.js": 1.53.0 - bigint-buffer: 1.1.5 - bignumber.js: 9.1.0 - transitivePeerDependencies: - - bufferutil - - encoding - - react-native - - utf-8-validate - dev: false - - /@solana/buffer-layout/4.0.0: - resolution: - { - integrity: sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==, - } - engines: { node: ">=5.10" } - dependencies: - buffer: 6.0.3 - dev: false - - /@solana/spl-token/0.2.0: - resolution: - { - integrity: sha512-RWcn31OXtdqIxmkzQfB2R+WpsJOVS6rKuvpxJFjvik2LyODd+WN58ZP3Rpjpro03fscGAkzlFuP3r42doRJgyQ==, - } - engines: { node: ">= 14" } - dependencies: - "@solana/buffer-layout": 4.0.0 - "@solana/buffer-layout-utils": 0.2.0 - "@solana/web3.js": 1.53.0 - start-server-and-test: 1.14.0 - transitivePeerDependencies: - - bufferutil - - encoding - - react-native - - supports-color - - utf-8-validate - dev: false - - /@solana/web3.js/1.53.0: - resolution: - { - integrity: sha512-QyQDA9U5b+AiTo1ANsj9WihWWECeLv6VRpiTE7xPe5hLYANXZYecnlLglNiEzVgRg/jLvR5DrCISXhHx/mAEJw==, - } - engines: { node: ">=12.20.0" } - dependencies: - "@babel/runtime": 7.18.9 - "@ethersproject/sha2": 5.7.0 - "@solana/buffer-layout": 4.0.0 - bigint-buffer: 1.1.5 - bn.js: 5.2.1 - borsh: 0.7.0 - bs58: 4.0.1 - buffer: 6.0.1 - fast-stable-stringify: 1.0.0 - jayson: 3.7.0 - js-sha3: 0.8.0 - node-fetch: 2.6.7 - react-native-url-polyfill: 1.3.0 - rpc-websockets: 7.5.0 - secp256k1: 4.0.3 - superstruct: 0.14.2 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - bufferutil - - encoding - - react-native - - utf-8-validate - dev: false - - /@stablelib/binary/1.0.1: - resolution: - { - integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==, - } - dependencies: - "@stablelib/int": 1.0.1 - dev: false - - /@stablelib/blake2b/1.0.1: - resolution: - { - integrity: sha512-B3KyKoBAjkIFeH7romcF96i+pVFYk7K2SBQ1pZvaxV+epSBXJ+n0C66esUhyz6FF+5FbdQVm77C5fzGFcEZpKA==, - } - dependencies: - "@stablelib/binary": 1.0.1 - "@stablelib/hash": 1.0.1 - "@stablelib/wipe": 1.0.1 - dev: false - - /@stablelib/bytes/1.0.1: - resolution: - { - integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==, - } - dev: false - - /@stablelib/constant-time/1.0.1: - resolution: - { - integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==, - } - dev: false - - /@stablelib/ed25519/1.0.3: - resolution: - { - integrity: sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==, - } - dependencies: - "@stablelib/random": 1.0.2 - "@stablelib/sha512": 1.0.1 - "@stablelib/wipe": 1.0.1 - dev: false - - /@stablelib/hash/1.0.1: - resolution: - { - integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==, - } - dev: false - - /@stablelib/int/1.0.1: - resolution: - { - integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==, - } - dev: false - - /@stablelib/keyagreement/1.0.1: - resolution: - { - integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==, - } - dependencies: - "@stablelib/bytes": 1.0.1 - dev: false - - /@stablelib/nacl/1.0.4: - resolution: - { - integrity: sha512-PJ2U/MrkXSKUM8C4qFs87WeCNxri7KQwR8Cdwm9q2sweGuAtTvOJGuW0F3N+zn+ySLPJA98SYWSSpogMJ1gCmw==, - } - dependencies: - "@stablelib/poly1305": 1.0.1 - "@stablelib/random": 1.0.2 - "@stablelib/wipe": 1.0.1 - "@stablelib/x25519": 1.0.3 - "@stablelib/xsalsa20": 1.0.2 - dev: false - - /@stablelib/poly1305/1.0.1: - resolution: - { - integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==, - } - dependencies: - "@stablelib/constant-time": 1.0.1 - "@stablelib/wipe": 1.0.1 - dev: false - - /@stablelib/random/1.0.2: - resolution: - { - integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==, - } - dependencies: - "@stablelib/binary": 1.0.1 - "@stablelib/wipe": 1.0.1 - dev: false - - /@stablelib/salsa20/1.0.2: - resolution: - { - integrity: sha512-nfjKzw0KTKrrKBasEP+j7UP4I8Xudom8lVZIBCp0kQNARXq72IlSic0oabg2FC1NU68L4RdHrNJDd8bFwrphYA==, - } - dependencies: - "@stablelib/binary": 1.0.1 - "@stablelib/constant-time": 1.0.1 - "@stablelib/wipe": 1.0.1 - dev: false - - /@stablelib/sha512/1.0.1: - resolution: - { - integrity: sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==, - } - dependencies: - "@stablelib/binary": 1.0.1 - "@stablelib/hash": 1.0.1 - "@stablelib/wipe": 1.0.1 - dev: false - - /@stablelib/wipe/1.0.1: - resolution: - { - integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==, - } - dev: false - - /@stablelib/x25519/1.0.3: - resolution: - { - integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==, - } - dependencies: - "@stablelib/keyagreement": 1.0.1 - "@stablelib/random": 1.0.2 - "@stablelib/wipe": 1.0.1 - dev: false - - /@stablelib/xsalsa20/1.0.2: - resolution: - { - integrity: sha512-7XdBGbcNgBShmuhDXv1G1WPVCkjZdkb1oPMzSidO7Fve0MHntH6TjFkj5bfLI+aRE+61weO076vYpP/jmaAYog==, - } - dependencies: - "@stablelib/binary": 1.0.1 - "@stablelib/salsa20": 1.0.2 - "@stablelib/wipe": 1.0.1 - dev: false - - /@szmarczak/http-timer/4.0.6: - resolution: - { - integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==, - } - engines: { node: ">=10" } - dependencies: - defer-to-connect: 2.0.1 - dev: false - - /@szmarczak/http-timer/5.0.1: - resolution: - { - integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==, - } - engines: { node: ">=14.16" } - dependencies: - defer-to-connect: 2.0.1 - dev: false - - /@taquito/http-utils/13.0.1: - resolution: - { - integrity: sha512-eHzd0HSL3qX6bOOSaQClm+0XmpbSNcJP69uzaBJwfXo7ntQR1bUfGLn6+1Hgsk/lJ0JxakD2PDA4aaeajHvyPw==, - } - engines: { node: ">=6.0.0" } - dependencies: - axios: 0.26.1 - transitivePeerDependencies: - - debug - dev: false - - /@taquito/local-forging/13.0.1: - resolution: - { - integrity: sha512-2n1ryUzHBIOHiQYRO7ELQaurjoNhJ3KUUcX0dAnFs3xVxUBugHgDPot+T+1rNZDdLVhTS6mmK796xrWDGnO6xw==, - } - engines: { node: ">=6.0.0" } - dependencies: - "@taquito/utils": 13.0.1 - bignumber.js: 9.1.0 - dev: false - - /@taquito/michel-codec/13.0.1: - resolution: - { - integrity: sha512-A9MxhDMdTTK31ty5Ke2wg4wkt7F/Y++tD8wq9YIFJzxt+MkpWX5b2i1f7yHXPsK/81YiGAi/LDamLtLCekY1LA==, - } - engines: { node: ">=6.0.0" } - dev: false - - /@taquito/michelson-encoder/13.0.1: - resolution: - { - integrity: sha512-U80vswMHlEDQUjvARZScIKrSZkIjxdYtDLvHu4oRZ9wTqTXSlj+t64G5QmZwTEJRQkbzfhsOOr6vL40ztL0tzw==, - } - engines: { node: ">=6.0.0" } - dependencies: - "@taquito/rpc": 13.0.1 - "@taquito/utils": 13.0.1 - bignumber.js: 9.1.0 - fast-json-stable-stringify: 2.1.0 - transitivePeerDependencies: - - debug - dev: false - - /@taquito/rpc/13.0.1: - resolution: - { - integrity: sha512-f2Z0qzHB1ERLU5kewmXh3rAD84qIYthSjmAo04sWFbuaMgGW1HxMJKJ/EtL4s4VgoDUwahSwfATmVzmKg57BSw==, - } - engines: { node: ">=6.0.0" } - dependencies: - "@taquito/http-utils": 13.0.1 - "@taquito/utils": 13.0.1 - bignumber.js: 9.1.0 - transitivePeerDependencies: - - debug - dev: false - - /@taquito/signer/13.0.1: - resolution: - { - integrity: sha512-3C7DTC5u6jqA83kUGghEDEDJtwCNNmw0KIF+u6EdQ55YRxLDf8XBp8/voG3i+0HvU3MPqfg0CIvCUHbr8MO0Og==, - } - engines: { node: ">=6.0.0" } - dependencies: - "@stablelib/blake2b": 1.0.1 - "@stablelib/ed25519": 1.0.3 - "@stablelib/nacl": 1.0.4 - "@taquito/taquito": 13.0.1 - "@taquito/utils": 13.0.1 - elliptic: 6.5.4 - pbkdf2: 3.1.2 - typedarray-to-buffer: 4.0.0 - transitivePeerDependencies: - - debug - dev: false - - /@taquito/taquito/13.0.1: - resolution: - { - integrity: sha512-xNtcwKsOCHSkURO9G2VhKSeI9q0qh5/OkVuYe6KM0Fo40FthXNqq205I/FTJzu5E1Q73J7cFqA7FHqUrv276gw==, - } - engines: { node: ">=6.0.0" } - requiresBuild: true - dependencies: - "@taquito/http-utils": 13.0.1 - "@taquito/local-forging": 13.0.1 - "@taquito/michel-codec": 13.0.1 - "@taquito/michelson-encoder": 13.0.1 - "@taquito/rpc": 13.0.1 - "@taquito/utils": 13.0.1 - bignumber.js: 9.1.0 - rxjs: 6.6.7 - transitivePeerDependencies: - - debug - dev: false - - /@taquito/tzip12/13.0.1: - resolution: - { - integrity: sha512-V3TPKL7sh5rj75NXjgNWCgM245LX2U/vQXA+rKebNKmHqNPcYZ7L5EmOzE5eLURkoxsuwLznCGhcL/xWQdMraA==, - } - engines: { node: ">=6.0.0" } - dependencies: - "@taquito/michelson-encoder": 13.0.1 - "@taquito/taquito": 13.0.1 - "@taquito/tzip16": 13.0.1 - transitivePeerDependencies: - - debug - dev: false - - /@taquito/tzip16/13.0.1: - resolution: - { - integrity: sha512-k+Vr1t2j7IqR/FuK5b3e7iGTA/VfltBwH+fdJEXssRjBH3jrWQxraR+CNkNuqkspn97dKe7TwwU4cJnqbh1sLA==, - } - engines: { node: ">=6.0.0" } - dependencies: - "@taquito/http-utils": 13.0.1 - "@taquito/michelson-encoder": 13.0.1 - "@taquito/rpc": 13.0.1 - "@taquito/taquito": 13.0.1 - "@taquito/utils": 13.0.1 - bignumber.js: 9.1.0 - crypto-js: 4.1.1 - transitivePeerDependencies: - - debug - dev: false - - /@taquito/utils/13.0.1: - resolution: - { - integrity: sha512-uRtsl4EATlVJ1UnNUiAEoibFFyexGLDLz02CBHoBrcWjqrZdj3AxA+TO63E2kWn/JmT2FM0Sqaqbm555lj4tow==, - } - engines: { node: ">=6.0.0" } - dependencies: - "@stablelib/blake2b": 1.0.1 - "@stablelib/ed25519": 1.0.3 - "@types/bs58check": 2.1.0 - blakejs: 1.2.1 - bs58check: 2.1.2 - buffer: 6.0.3 - elliptic: 6.5.4 - typedarray-to-buffer: 4.0.0 - dev: false - - /@tsconfig/node10/1.0.9: - resolution: - { - integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, - } - dev: false - - /@tsconfig/node12/1.0.11: - resolution: - { - integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, - } - dev: false - - /@tsconfig/node14/1.0.3: - resolution: - { - integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, - } - dev: false - - /@tsconfig/node16/1.0.3: - resolution: - { - integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==, - } - dev: false - - /@types/axios/0.14.0: - resolution: - { - integrity: sha512-KqQnQbdYE54D7oa/UmYVMZKq7CO4l8DEENzOKc4aBRwxCXSlJXGz83flFx5L7AWrOQnmuN3kVsRdt+GZPPjiVQ==, - } - deprecated: This is a stub types definition for axios (https://github.com/mzabriskie/axios). axios provides its own type definitions, so you don't need @types/axios installed! - dependencies: - axios: 0.26.1 - transitivePeerDependencies: - - debug - dev: false - - /@types/bn.js/5.1.0: - resolution: - { - integrity: sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==, - } - dependencies: - "@types/node": 18.7.13 - - /@types/bs58check/2.1.0: - resolution: - { - integrity: sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==, - } - dependencies: - "@types/node": 18.7.13 - dev: false - - /@types/cacheable-request/6.0.2: - resolution: - { - integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==, - } - dependencies: - "@types/http-cache-semantics": 4.0.1 - "@types/keyv": 3.1.4 - "@types/node": 18.7.13 - "@types/responselike": 1.0.0 - dev: false - - /@types/chai-subset/1.3.3: - resolution: - { - integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==, - } - dependencies: - "@types/chai": 4.3.3 - dev: false - - /@types/chai/4.3.3: - resolution: - { - integrity: sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==, - } - dev: false - - /@types/connect/3.4.35: - resolution: - { - integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==, - } - dependencies: - "@types/node": 18.7.13 - dev: false - - /@types/http-cache-semantics/4.0.1: - resolution: - { - integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==, - } - dev: false - - /@types/json-buffer/3.0.0: - resolution: - { - integrity: sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==, - } - dev: false - - /@types/json-schema/7.0.11: - resolution: - { - integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, - } - dev: true - - /@types/keyv/3.1.4: - resolution: - { - integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, - } - dependencies: - "@types/node": 18.7.13 - dev: false - - /@types/long/4.0.2: - resolution: - { - integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==, - } - dev: false - - /@types/minimatch/3.0.5: - resolution: - { - integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==, - } - dev: true - - /@types/node/10.12.18: - resolution: - { - integrity: sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==, - } - dev: false - - /@types/node/10.17.60: - resolution: - { - integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==, - } - dev: false - - /@types/node/11.11.6: - resolution: - { - integrity: sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==, - } - dev: false - - /@types/node/12.20.55: - resolution: - { - integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, - } - dev: false - - /@types/node/13.13.52: - resolution: - { - integrity: sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==, - } - dev: false - - /@types/node/18.7.13: - resolution: - { - integrity: sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==, - } - - /@types/pbkdf2/3.1.0: - resolution: - { - integrity: sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==, - } - dependencies: - "@types/node": 18.7.13 - dev: false - - /@types/responselike/1.0.0: - resolution: - { - integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==, - } - dependencies: - "@types/node": 18.7.13 - dev: false - - /@types/secp256k1/4.0.3: - resolution: - { - integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==, - } - dependencies: - "@types/node": 18.7.13 - dev: false - - /@types/ws/7.4.7: - resolution: - { - integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==, - } - dependencies: - "@types/node": 18.7.13 - dev: false - - /@typescript-eslint/eslint-plugin/4.33.0_3ekaj7j3owlolnuhj3ykrb7u7i: - resolution: - { - integrity: sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - peerDependencies: - "@typescript-eslint/parser": ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: "*" - peerDependenciesMeta: - typescript: - optional: true - dependencies: - "@typescript-eslint/experimental-utils": 4.33.0_hxadhbs2xogijvk7vq4t2azzbu - "@typescript-eslint/parser": 4.33.0_hxadhbs2xogijvk7vq4t2azzbu - "@typescript-eslint/scope-manager": 4.33.0 - debug: 4.3.4 - eslint: 7.32.0 - functional-red-black-tree: 1.0.1 - ignore: 5.2.0 - regexpp: 3.2.0 - semver: 7.3.7 - tsutils: 3.21.0_typescript@4.7.4 - typescript: 4.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/experimental-utils/4.33.0_hxadhbs2xogijvk7vq4t2azzbu: - resolution: - { - integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - peerDependencies: - eslint: "*" - dependencies: - "@types/json-schema": 7.0.11 - "@typescript-eslint/scope-manager": 4.33.0 - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/typescript-estree": 4.33.0_typescript@4.7.4 - eslint: 7.32.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@7.32.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/parser/4.33.0_hxadhbs2xogijvk7vq4t2azzbu: - resolution: - { - integrity: sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: "*" - peerDependenciesMeta: - typescript: - optional: true - dependencies: - "@typescript-eslint/scope-manager": 4.33.0 - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/typescript-estree": 4.33.0_typescript@4.7.4 - debug: 4.3.4 - eslint: 7.32.0 - typescript: 4.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager/4.33.0: - resolution: - { - integrity: sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==, - } - engines: { node: ^8.10.0 || ^10.13.0 || >=11.10.1 } - dependencies: - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/visitor-keys": 4.33.0 - dev: true - - /@typescript-eslint/types/4.33.0: - resolution: - { - integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==, - } - engines: { node: ^8.10.0 || ^10.13.0 || >=11.10.1 } - dev: true - - /@typescript-eslint/typescript-estree/4.33.0_typescript@4.7.4: - resolution: - { - integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - peerDependencies: - typescript: "*" - peerDependenciesMeta: - typescript: - optional: true - dependencies: - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/visitor-keys": 4.33.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.7 - tsutils: 3.21.0_typescript@4.7.4 - typescript: 4.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/visitor-keys/4.33.0: - resolution: - { - integrity: sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==, - } - engines: { node: ^8.10.0 || ^10.13.0 || >=11.10.1 } - dependencies: - "@typescript-eslint/types": 4.33.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /@unimodules/core/7.1.2: - resolution: - { - integrity: sha512-lY+e2TAFuebD3vshHMIRqru3X4+k7Xkba4Wa7QsDBd+ex4c4N2dHAO61E2SrGD9+TRBD8w/o7mzK6ljbqRnbyg==, - } - deprecated: "replaced by the 'expo' package, learn more: https://blog.expo.dev/whats-new-in-expo-modules-infrastructure-7a7cdda81ebc" - requiresBuild: true - dependencies: - compare-versions: 3.6.0 - dev: false - optional: true - - /@unimodules/react-native-adapter/6.3.9: - resolution: - { - integrity: sha512-i9/9Si4AQ8awls+YGAKkByFbeAsOPgUNeLoYeh2SQ3ddjxJ5ZJDtq/I74clDnpDcn8zS9pYlcDJ9fgVJa39Glw==, - } - deprecated: "replaced by the 'expo' package, learn more: https://blog.expo.dev/whats-new-in-expo-modules-infrastructure-7a7cdda81ebc" - requiresBuild: true - dependencies: - expo-modules-autolinking: 0.0.3 - invariant: 2.2.4 - dev: false - optional: true - - /@vechain/connex-driver/2.0.10: - resolution: - { - integrity: sha512-Ki/wUTG4OcPD8t0vCfwcgOJnyfHFiUlWTg/oU0CXwXC+0FeOSxtXOdAY6AyKlSETQKd7AM+PAdU6MqNBADx+Ew==, - } - dependencies: - "@vechain/connex-types": 2.0.2 - axios: 0.21.4 - bignumber.js: 7.2.1 - isomorphic-ws: 4.0.1_ws@7.5.9 - lru-cache: 5.1.1 - thor-devkit: 2.0.5 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - dev: false - - /@vechain/connex-framework/2.0.10: - resolution: - { - integrity: sha512-pgTxMUr99ZOfd5cjzOihVdnbwXP7qh+kdLSjKaWjW+9Yw2ZOdNk58AJ/Bs2POkKB836pgt+Phu65T7MRxPENpg==, - } - dependencies: - "@vechain/connex-types": 2.0.2 - bignumber.js: 7.2.1 - thor-devkit: 2.0.5 - validator-ts: 0.9.1 - dev: false - - /@vechain/connex-types/2.0.2: - resolution: - { - integrity: sha512-as905zXnVgc74mLkWkr2zMgJRJmFTMEDrRgtOPn68rqLeYCBzR7Ye1QCGbGKnPUaYGDLbGutoIW8r1y8wmGCUg==, - } - dev: false - - /@vechain/ethers/4.0.27-5: - resolution: - { - integrity: sha512-dR+rTUauPJpqHNBdEgV6Xh+o009uCRPCvN2HWYIAzZP2SvgsPHLxNUzeRbRKhNzz/HC8HjWNvECRxODF88B03Q==, - } - dependencies: - "@types/node": 10.17.60 - aes-js: 3.0.0 - bn.js: 4.12.0 - elliptic: 6.5.4 - hash.js: 1.1.3 - js-sha3: 0.5.7 - scrypt-js: 2.0.4 - setimmediate: 1.0.4 - uuid: 2.0.1 - xmlhttprequest: 1.8.0 - dev: false - - /@walletconnect/browser-utils/1.8.0: - resolution: - { - integrity: sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A==, - } - dependencies: - "@walletconnect/safe-json": 1.0.0 - "@walletconnect/types": 1.8.0 - "@walletconnect/window-getters": 1.0.0 - "@walletconnect/window-metadata": 1.0.0 - detect-browser: 5.2.0 - dev: false - - /@walletconnect/client/1.6.5: - resolution: - { - integrity: sha512-dRq1D3NEGwM2I3CpiwFsWy1rrdMKCMSfDUu3rCCXUE4zInx+pyq7IEFjYiSjtOEZzjRlUTqYwhjnYIezQZgh4w==, - } - dependencies: - "@walletconnect/core": 1.8.0 - "@walletconnect/iso-crypto": 1.8.0 - "@walletconnect/types": 1.8.0 - "@walletconnect/utils": 1.8.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /@walletconnect/client/1.8.0: - resolution: - { - integrity: sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ==, - } - dependencies: - "@walletconnect/core": 1.8.0 - "@walletconnect/iso-crypto": 1.8.0 - "@walletconnect/types": 1.8.0 - "@walletconnect/utils": 1.8.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /@walletconnect/core/1.8.0: - resolution: - { - integrity: sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw==, - } - dependencies: - "@walletconnect/socket-transport": 1.8.0 - "@walletconnect/types": 1.8.0 - "@walletconnect/utils": 1.8.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /@walletconnect/crypto/1.0.2: - resolution: - { - integrity: sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ==, - } - dependencies: - "@walletconnect/encoding": 1.0.1 - "@walletconnect/environment": 1.0.0 - "@walletconnect/randombytes": 1.0.2 - aes-js: 3.1.2 - hash.js: 1.1.7 - dev: false - - /@walletconnect/encoding/1.0.1: - resolution: - { - integrity: sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA==, - } - dependencies: - is-typedarray: 1.0.0 - typedarray-to-buffer: 3.1.5 - dev: false - - /@walletconnect/environment/1.0.0: - resolution: - { - integrity: sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ==, - } - dev: false - - /@walletconnect/iso-crypto/1.8.0: - resolution: - { - integrity: sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ==, - } - dependencies: - "@walletconnect/crypto": 1.0.2 - "@walletconnect/types": 1.8.0 - "@walletconnect/utils": 1.8.0 - dev: false - - /@walletconnect/jsonrpc-types/1.0.1: - resolution: - { - integrity: sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw==, - } - dependencies: - keyvaluestorage-interface: 1.0.0 - dev: false - - /@walletconnect/jsonrpc-utils/1.0.3: - resolution: - { - integrity: sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ==, - } - dependencies: - "@walletconnect/environment": 1.0.0 - "@walletconnect/jsonrpc-types": 1.0.1 - dev: false - - /@walletconnect/randombytes/1.0.2: - resolution: - { - integrity: sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A==, - } - dependencies: - "@walletconnect/encoding": 1.0.1 - "@walletconnect/environment": 1.0.0 - randombytes: 2.1.0 - dev: false - - /@walletconnect/safe-json/1.0.0: - resolution: - { - integrity: sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==, - } - dev: false - - /@walletconnect/socket-transport/1.8.0: - resolution: - { - integrity: sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ==, - } - dependencies: - "@walletconnect/types": 1.8.0 - "@walletconnect/utils": 1.8.0 - ws: 7.5.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /@walletconnect/types/1.8.0: - resolution: - { - integrity: sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==, - } - dev: false - - /@walletconnect/utils/1.8.0: - resolution: - { - integrity: sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA==, - } - dependencies: - "@walletconnect/browser-utils": 1.8.0 - "@walletconnect/encoding": 1.0.1 - "@walletconnect/jsonrpc-utils": 1.0.3 - "@walletconnect/types": 1.8.0 - bn.js: 4.11.8 - js-sha3: 0.8.0 - query-string: 6.13.5 - dev: false - - /@walletconnect/window-getters/1.0.0: - resolution: - { - integrity: sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==, - } - dev: false - - /@walletconnect/window-metadata/1.0.0: - resolution: - { - integrity: sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==, - } - dependencies: - "@walletconnect/window-getters": 1.0.0 - dev: false - - /JSONStream/1.3.5: - resolution: - { - integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, - } - hasBin: true - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: false - - /abort-controller/3.0.0: - resolution: - { - integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, - } - engines: { node: ">=6.5" } - dependencies: - event-target-shim: 5.0.1 - dev: false - - /abortcontroller-polyfill/1.7.3: - resolution: - { - integrity: sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==, - } - dev: false - - /accepts/1.3.8: - resolution: - { - integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, - } - engines: { node: ">= 0.6" } - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - dev: false - - /acorn-jsx/5.3.2_acorn@7.4.1: - resolution: - { - integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, - } - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 7.4.1 - dev: true - - /acorn-walk/8.2.0: - resolution: - { - integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, - } - engines: { node: ">=0.4.0" } - dev: false - - /acorn/7.4.1: - resolution: - { - integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, - } - engines: { node: ">=0.4.0" } - hasBin: true - dev: true - - /acorn/8.8.0: - resolution: - { - integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==, - } - engines: { node: ">=0.4.0" } - hasBin: true - dev: false - - /aes-js/3.0.0: - resolution: - { - integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==, - } - dev: false - - /aes-js/3.1.2: - resolution: - { - integrity: sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==, - } - dev: false - - /ajv/6.12.6: - resolution: - { - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, - } - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - /ajv/8.11.0: - resolution: - { - integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==, - } - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - /algo-msgpack-with-bigint/2.1.1: - resolution: - { - integrity: sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==, - } - engines: { node: ">= 10" } - dev: false - - /algosdk/1.19.1: - resolution: - { - integrity: sha512-RBp6ihU1jX6OgPRstqskZmnLN4KmG+ZstFADiy0gYOYCy2xPoyKP5sTrf5DW8JECP5IIJi0azxsWgpPQjzJYaA==, - } - dependencies: - algo-msgpack-with-bigint: 2.1.1 - buffer: 6.0.3 - hi-base32: 0.5.1 - js-sha256: 0.9.0 - js-sha3: 0.8.0 - js-sha512: 0.8.0 - json-bigint: 1.0.0 - superagent: 6.1.0 - tweetnacl: 1.0.3 - vlq: 2.0.4 - optionalDependencies: - fsevents: 2.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /ansi-colors/4.1.3: - resolution: - { - integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, - } - engines: { node: ">=6" } - dev: true - - /ansi-regex/2.1.1: - resolution: - { - integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, - } - engines: { node: ">=0.10.0" } - dev: false - - /ansi-regex/5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, - } - engines: { node: ">=8" } - - /ansi-styles/3.2.1: - resolution: - { - integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, - } - engines: { node: ">=4" } - dependencies: - color-convert: 1.9.3 - - /ansi-styles/4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, - } - engines: { node: ">=8" } - dependencies: - color-convert: 2.0.1 - - /anymatch/3.1.2: - resolution: - { - integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==, - } - engines: { node: ">= 8" } - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: false - - /aproba/1.2.0: - resolution: - { - integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==, - } - dev: false - - /are-we-there-yet/1.1.7: - resolution: - { - integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==, - } - dependencies: - delegates: 1.0.0 - readable-stream: 2.3.7 - dev: false - - /arg/4.1.3: - resolution: - { - integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, - } - dev: false - - /argparse/1.0.10: - resolution: - { - integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, - } - dependencies: - sprintf-js: 1.0.3 - dev: true - - /array-differ/3.0.0: - resolution: - { - integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==, - } - engines: { node: ">=8" } - dev: true - - /array-flatten/1.1.1: - resolution: - { - integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, - } - dev: false - - /array-union/2.1.0: - resolution: - { - integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, - } - engines: { node: ">=8" } - dev: true - - /array.prototype.flatmap/1.3.0: - resolution: - { - integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - es-shim-unscopables: 1.0.0 - dev: true - - /arrify/2.0.1: - resolution: - { - integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, - } - engines: { node: ">=8" } - dev: true - - /asmcrypto.js/0.22.0: - resolution: - { - integrity: sha512-usgMoyXjMbx/ZPdzTSXExhMPur2FTdz/Vo5PVx2gIaBcdAAJNOFlsdgqveM8Cff7W0v+xrf9BwjOV26JSAF9qA==, - } - dev: false - - /asn1.js/5.4.1: - resolution: - { - integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==, - } - dependencies: - bn.js: 4.12.0 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - safer-buffer: 2.1.2 - dev: false - - /asn1/0.2.6: - resolution: - { - integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==, - } - dependencies: - safer-buffer: 2.1.2 - dev: false - - /asn1js/3.0.5: - resolution: - { - integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==, - } - engines: { node: ">=12.0.0" } - dependencies: - pvtsutils: 1.3.2 - pvutils: 1.1.3 - tslib: 2.4.0 - dev: false - - /assert-plus/1.0.0: - resolution: - { - integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==, - } - engines: { node: ">=0.8" } - dev: false - - /assert/2.0.0: - resolution: - { - integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==, - } - dependencies: - es6-object-assign: 1.1.0 - is-nan: 1.3.2 - object-is: 1.1.5 - util: 0.12.4 - dev: false - - /assertion-error/1.1.0: - resolution: - { - integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, - } - dev: false - - /astral-regex/2.0.0: - resolution: - { - integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, - } - engines: { node: ">=8" } - - /async-limiter/1.0.1: - resolution: - { - integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==, - } - dev: false - - /asynckit/0.4.0: - resolution: - { - integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, - } - dev: false - - /at-least-node/1.0.0: - resolution: - { - integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, - } - engines: { node: ">= 4.0.0" } - dev: false - optional: true - - /available-typed-arrays/1.0.5: - resolution: - { - integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, - } - engines: { node: ">= 0.4" } - dev: false - - /aws-sign2/0.7.0: - resolution: - { - integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==, - } - dev: false - - /aws4/1.11.0: - resolution: - { - integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==, - } - dev: false - - /axios/0.21.4: - resolution: - { - integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==, - } - dependencies: - follow-redirects: 1.15.1 - transitivePeerDependencies: - - debug - dev: false - - /axios/0.21.4_debug@4.3.2: - resolution: - { - integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==, - } - dependencies: - follow-redirects: 1.15.1_debug@4.3.2 - transitivePeerDependencies: - - debug - dev: false - - /axios/0.24.0: - resolution: - { - integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==, - } - dependencies: - follow-redirects: 1.15.1 - transitivePeerDependencies: - - debug - dev: false - - /axios/0.26.1: - resolution: - { - integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==, - } - dependencies: - follow-redirects: 1.15.1 - transitivePeerDependencies: - - debug - dev: false - - /b64-lite/1.4.0: - resolution: - { - integrity: sha512-aHe97M7DXt+dkpa8fHlCcm1CnskAHrJqEfMI0KN7dwqlzml/aUe1AGt6lk51HzrSfVD67xOso84sOpr+0wIe2w==, - } - dependencies: - base-64: 0.1.0 - dev: false - - /b64u-lite/1.1.0: - resolution: - { - integrity: sha512-929qWGDVCRph7gQVTC6koHqQIpF4vtVaSbwLltFQo44B1bYUquALswZdBKFfrJCPEnsCOvWkJsPdQYZ/Ukhw8A==, - } - dependencies: - b64-lite: 1.4.0 - dev: false - - /babel-runtime/6.26.0: - resolution: - { - integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==, - } - dependencies: - core-js: 2.6.12 - regenerator-runtime: 0.11.1 - dev: false - - /backslash/0.2.0: - resolution: - { - integrity: sha512-Avs+8FUZ1HF/VFP4YWwHQZSGzRPm37ukU1JQYQWijuHhtXdOuAzcZ8PcAzfIw898a8PyBzdn+RtnKA6MzW0X2A==, - } - dev: false - - /balanced-match/1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, - } - - /base-64/0.1.0: - resolution: - { - integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==, - } - dev: false - - /base-x/3.0.9: - resolution: - { - integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==, - } - dependencies: - safe-buffer: 5.2.1 - dev: false - - /base64-arraybuffer/0.2.0: - resolution: - { - integrity: sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==, - } - engines: { node: ">= 0.6.0" } - dev: false - - /base64-js/1.5.1: - resolution: - { - integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, - } - dev: false - - /bcrypt-pbkdf/1.0.2: - resolution: - { - integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==, - } - dependencies: - tweetnacl: 0.14.5 - dev: false - - /bech32/1.1.4: - resolution: - { - integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==, - } - dev: false - - /bech32/2.0.0: - resolution: - { - integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==, - } - dev: false - - /before-after-hook/2.2.2: - resolution: - { - integrity: sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==, - } - dev: false - - /bigint-buffer/1.1.5: - resolution: - { - integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==, - } - engines: { node: ">= 10.0.0" } - requiresBuild: true - dependencies: - bindings: 1.5.0 - dev: false - - /bignumber.js/7.2.1: - resolution: - { - integrity: sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==, - } - dev: false - - /bignumber.js/9.0.1: - resolution: - { - integrity: sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==, - } - dev: false - - /bignumber.js/9.0.2: - resolution: - { - integrity: sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==, - } - dev: false - - /bignumber.js/9.1.0: - resolution: - { - integrity: sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==, - } - dev: false - - /binary-extensions/2.2.0: - resolution: - { - integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, - } - engines: { node: ">=8" } - dev: false - - /bindings/1.5.0: - resolution: - { - integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==, - } - dependencies: - file-uri-to-path: 1.0.0 - dev: false - - /bip32-path/0.4.2: - resolution: - { - integrity: sha512-ZBMCELjJfcNMkz5bDuJ1WrYvjlhEF5k6mQ8vUr4N7MbVRsXei7ZOg8VhhwMfNiW68NWmLkgkc6WvTickrLGprQ==, - } - dev: false - - /bip32/2.0.6: - resolution: - { - integrity: sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==, - } - engines: { node: ">=6.0.0" } - dependencies: - "@types/node": 10.12.18 - bs58check: 2.1.2 - create-hash: 1.2.0 - create-hmac: 1.1.7 - tiny-secp256k1: 1.1.6 - typeforce: 1.18.0 - wif: 2.0.6 - dev: false - - /bip39/3.0.2: - resolution: - { - integrity: sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ==, - } - dependencies: - "@types/node": 11.11.6 - create-hash: 1.2.0 - pbkdf2: 3.1.2 - randombytes: 2.1.0 - dev: false - - /bip39/3.0.4: - resolution: - { - integrity: sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==, - } - dependencies: - "@types/node": 11.11.6 - create-hash: 1.2.0 - pbkdf2: 3.1.2 - randombytes: 2.1.0 - dev: false - - /bl/4.1.0: - resolution: - { - integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, - } - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: false - - /blake2b-wasm/1.1.7: - resolution: - { - integrity: sha512-oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA==, - } - dependencies: - nanoassert: 1.1.0 - dev: false - - /blake2b/2.1.3: - resolution: - { - integrity: sha512-pkDss4xFVbMb4270aCyGD3qLv92314Et+FsKzilCLxDz5DuZ2/1g3w4nmBbu6nKApPspnjG7JcwTjGZnduB1yg==, - } - dependencies: - blake2b-wasm: 1.1.7 - nanoassert: 1.1.0 - dev: false - - /blakejs/1.2.1: - resolution: - { - integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==, - } - dev: false - - /bluebird/3.7.2: - resolution: - { - integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, - } - dev: false - - /bn.js/4.11.6: - resolution: - { - integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==, - } - dev: false - - /bn.js/4.11.8: - resolution: - { - integrity: sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==, - } - dev: false - - /bn.js/4.12.0: - resolution: - { - integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==, - } - dev: false - - /bn.js/5.1.1: - resolution: - { - integrity: sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==, - } - dev: false - - /bn.js/5.2.0: - resolution: - { - integrity: sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==, - } - dev: false - - /bn.js/5.2.1: - resolution: - { - integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==, - } - dev: false - - /body-parser/1.20.0: - resolution: - { - integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==, - } - engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } - dependencies: - bytes: 3.1.2 - content-type: 1.0.4 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.10.3 - raw-body: 2.5.1 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /borc/2.1.2: - resolution: - { - integrity: sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==, - } - engines: { node: ">=4" } - dependencies: - bignumber.js: 9.1.0 - buffer: 5.7.1 - commander: 2.20.3 - ieee754: 1.2.1 - iso-url: 0.4.7 - json-text-sequence: 0.1.1 - readable-stream: 3.6.0 - dev: false - - /borsh/0.7.0: - resolution: - { - integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==, - } - dependencies: - bn.js: 5.2.1 - bs58: 4.0.1 - text-encoding-utf-8: 1.0.2 - dev: false - - /brace-expansion/1.1.11: - resolution: - { - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, - } - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - /brace-expansion/2.0.1: - resolution: - { - integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, - } - dependencies: - balanced-match: 1.0.2 - dev: true - - /braces/3.0.2: - resolution: - { - integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, - } - engines: { node: ">=8" } - dependencies: - fill-range: 7.0.1 - - /brorand/1.1.0: - resolution: - { - integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==, - } - dev: false - - /browser-headers/0.4.1: - resolution: - { - integrity: sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==, - } - dev: false - - /browserify-aes/1.2.0: - resolution: - { - integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==, - } - dependencies: - buffer-xor: 1.0.3 - cipher-base: 1.0.4 - create-hash: 1.2.0 - evp_bytestokey: 1.0.3 - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: false - - /browserify-cipher/1.0.1: - resolution: - { - integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==, - } - dependencies: - browserify-aes: 1.2.0 - browserify-des: 1.0.2 - evp_bytestokey: 1.0.3 - dev: false - - /browserify-des/1.0.2: - resolution: - { - integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==, - } - dependencies: - cipher-base: 1.0.4 - des.js: 1.0.1 - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: false - - /browserify-rsa/4.1.0: - resolution: - { - integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==, - } - dependencies: - bn.js: 5.2.1 - randombytes: 2.1.0 - dev: false - - /browserify-sign/4.2.1: - resolution: - { - integrity: sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==, - } - dependencies: - bn.js: 5.2.1 - browserify-rsa: 4.1.0 - create-hash: 1.2.0 - create-hmac: 1.1.7 - elliptic: 6.5.4 - inherits: 2.0.4 - parse-asn1: 5.1.6 - readable-stream: 3.6.0 - safe-buffer: 5.2.1 - dev: false - - /bs58/4.0.1: - resolution: - { - integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==, - } - dependencies: - base-x: 3.0.9 - dev: false - - /bs58check/2.1.2: - resolution: - { - integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==, - } - dependencies: - bs58: 4.0.1 - create-hash: 1.2.0 - safe-buffer: 5.2.1 - dev: false - - /buffer-layout/1.2.2: - resolution: - { - integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==, - } - engines: { node: ">=4.5" } - dev: false - - /buffer-to-arraybuffer/0.0.5: - resolution: - { - integrity: sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==, - } - dev: false - - /buffer-xor/1.0.3: - resolution: - { - integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==, - } - dev: false - - /buffer/5.7.1: - resolution: - { - integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, - } - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - - /buffer/6.0.1: - resolution: - { - integrity: sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==, - } - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - - /buffer/6.0.3: - resolution: - { - integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, - } - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - - /bufferutil/4.0.6: - resolution: - { - integrity: sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==, - } - engines: { node: ">=6.14.2" } - requiresBuild: true - dependencies: - node-gyp-build: 4.5.0 - dev: false - - /bytes/3.1.2: - resolution: - { - integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, - } - engines: { node: ">= 0.8" } - dev: false - - /cacheable-lookup/5.0.4: - resolution: - { - integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==, - } - engines: { node: ">=10.6.0" } - dev: false - - /cacheable-lookup/6.1.0: - resolution: - { - integrity: sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==, - } - engines: { node: ">=10.6.0" } - dev: false - - /cacheable-request/7.0.2: - resolution: - { - integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==, - } - engines: { node: ">=8" } - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.0 - keyv: 4.4.1 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - dev: false - - /call-bind/1.0.2: - resolution: - { - integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, - } - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.1.2 - - /callsites/3.1.0: - resolution: - { - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, - } - engines: { node: ">=6" } - dev: true - - /camelcase/5.3.1: - resolution: - { - integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, - } - engines: { node: ">=6" } - dev: false - - /capability/0.2.5: - resolution: - { - integrity: sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==, - } - dev: false - - /caseless/0.12.0: - resolution: - { - integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==, - } - dev: false - - /chai/4.3.6: - resolution: - { - integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==, - } - engines: { node: ">=4" } - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.2 - deep-eql: 3.0.1 - get-func-name: 2.0.0 - loupe: 2.3.4 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: false - - /chalk/2.4.2: - resolution: - { - integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, - } - engines: { node: ">=4" } - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - /chalk/3.0.0: - resolution: - { - integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, - } - engines: { node: ">=8" } - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /chalk/4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, - } - engines: { node: ">=10" } - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - /charenc/0.0.2: - resolution: - { - integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==, - } - dev: false - - /check-error/1.0.2: - resolution: - { - integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==, - } - dev: false - - /check-more-types/2.24.0: - resolution: - { - integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==, - } - engines: { node: ">= 0.8.0" } - dev: false - - /chokidar/3.5.3: - resolution: - { - integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, - } - engines: { node: ">= 8.10.0" } - dependencies: - anymatch: 3.1.2 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.2 - dev: false - - /chownr/1.1.4: - resolution: - { - integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, - } - dev: false - - /cids/0.7.5: - resolution: - { - integrity: sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==, - } - engines: { node: ">=4.0.0", npm: ">=3.0.0" } - deprecated: This module has been superseded by the multiformats module - dependencies: - buffer: 5.7.1 - class-is: 1.1.0 - multibase: 0.6.1 - multicodec: 1.0.4 - multihashes: 0.4.21 - dev: false - - /cipher-base/1.0.4: - resolution: - { - integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==, - } - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: false - - /class-is/1.1.0: - resolution: - { - integrity: sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==, - } - dev: false - - /cliui/6.0.0: - resolution: - { - integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==, - } - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - dev: false - - /cliui/7.0.4: - resolution: - { - integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, - } - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: false - - /clone-response/1.0.3: - resolution: - { - integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==, - } - dependencies: - mimic-response: 1.0.1 - dev: false - - /code-point-at/1.1.0: - resolution: - { - integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==, - } - engines: { node: ">=0.10.0" } - dev: false - - /color-convert/1.9.3: - resolution: - { - integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, - } - dependencies: - color-name: 1.1.3 - - /color-convert/2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, - } - engines: { node: ">=7.0.0" } - dependencies: - color-name: 1.1.4 - - /color-name/1.1.3: - resolution: - { - integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, - } - - /color-name/1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, - } - - /colors/1.4.0: - resolution: - { - integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==, - } - engines: { node: ">=0.1.90" } - dev: false - - /combined-stream/1.0.8: - resolution: - { - integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, - } - engines: { node: ">= 0.8" } - dependencies: - delayed-stream: 1.0.0 - dev: false - - /commander/2.20.3: - resolution: - { - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, - } - dev: false - - /commander/6.2.1: - resolution: - { - integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==, - } - engines: { node: ">= 6" } - dev: false - - /commander/7.2.0: - resolution: - { - integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, - } - engines: { node: ">= 10" } - dev: false - optional: true - - /compare-versions/3.6.0: - resolution: - { - integrity: sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==, - } - dev: false - optional: true - - /component-emitter/1.3.0: - resolution: - { - integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==, - } - dev: false - - /compress-brotli/1.3.8: - resolution: - { - integrity: sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==, - } - engines: { node: ">= 12" } - dependencies: - "@types/json-buffer": 3.0.0 - json-buffer: 3.0.1 - dev: false - - /concat-map/0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, - } - - /console-control-strings/1.1.0: - resolution: - { - integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==, - } - dev: false - - /content-disposition/0.5.4: - resolution: - { - integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, - } - engines: { node: ">= 0.6" } - dependencies: - safe-buffer: 5.2.1 - dev: false - - /content-hash/2.5.2: - resolution: - { - integrity: sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==, - } - dependencies: - cids: 0.7.5 - multicodec: 0.5.7 - multihashes: 0.4.21 - dev: false - - /content-type/1.0.4: - resolution: - { - integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==, - } - engines: { node: ">= 0.6" } - dev: false - - /cookie-signature/1.0.6: - resolution: - { - integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, - } - dev: false - - /cookie/0.5.0: - resolution: - { - integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==, - } - engines: { node: ">= 0.6" } - dev: false - - /cookiejar/2.1.3: - resolution: - { - integrity: sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==, - } - dev: false - - /core-js/2.6.12: - resolution: - { - integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==, - } - 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. - requiresBuild: true - dev: false - - /core-util-is/1.0.2: - resolution: - { - integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==, - } - dev: false - - /core-util-is/1.0.3: - resolution: - { - integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, - } - dev: false - - /cors/2.8.5: - resolution: - { - integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, - } - engines: { node: ">= 0.10" } - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - dev: false - - /crc-32/1.2.2: - resolution: - { - integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, - } - engines: { node: ">=0.8" } - hasBin: true - dev: false - - /crc/4.1.1_buffer@6.0.3: - resolution: - { - integrity: sha512-2U3ZqJ2phJl9ANuP2q5VS53LMpNmYU9vcpmh6nutJmsqUREhtWpTRh9yYxG7sDg3xkwaEEXytSeffTxw4cgwPg==, - } - engines: { node: ">=12" } - peerDependencies: - buffer: ">=6.0.3" - dependencies: - buffer: 6.0.3 - dev: false - - /create-ecdh/4.0.4: - resolution: - { - integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==, - } - dependencies: - bn.js: 4.12.0 - elliptic: 6.5.4 - dev: false - - /create-hash/1.2.0: - resolution: - { - integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==, - } - dependencies: - cipher-base: 1.0.4 - inherits: 2.0.4 - md5.js: 1.3.5 - ripemd160: 2.0.2 - sha.js: 2.4.11 - dev: false - - /create-hmac/1.1.7: - resolution: - { - integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==, - } - dependencies: - cipher-base: 1.0.4 - create-hash: 1.2.0 - inherits: 2.0.4 - ripemd160: 2.0.2 - safe-buffer: 5.2.1 - sha.js: 2.4.11 - dev: false - - /create-require/1.1.1: - resolution: - { - integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, - } - dev: false - - /cross-fetch/3.1.5: - resolution: - { - integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==, - } - dependencies: - node-fetch: 2.6.7 - transitivePeerDependencies: - - encoding - dev: false - - /cross-spawn/7.0.3: - resolution: - { - integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, - } - engines: { node: ">= 8" } - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - /crypt/0.0.2: - resolution: - { - integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==, - } - dev: false - - /crypto-browserify/3.12.0: - resolution: - { - integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==, - } - dependencies: - browserify-cipher: 1.0.1 - browserify-sign: 4.2.1 - create-ecdh: 4.0.4 - create-hash: 1.2.0 - create-hmac: 1.1.7 - diffie-hellman: 5.0.3 - inherits: 2.0.4 - pbkdf2: 3.1.2 - public-encrypt: 4.0.3 - randombytes: 2.1.0 - randomfill: 1.0.4 - dev: false - - /crypto-hash/1.3.0: - resolution: - { - integrity: sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==, - } - engines: { node: ">=8" } - dev: false - - /crypto-js/4.1.1: - resolution: - { - integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==, - } - dev: false - - /curve25519-js/0.0.4: - resolution: - { - integrity: sha512-axn2UMEnkhyDUPWOwVKBMVIzSQy2ejH2xRGy1wq81dqRwApXfIzfbE3hIX0ZRFBIihf/KDqK158DLwESu4AK1w==, - } - dev: false - - /d/1.0.1: - resolution: - { - integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==, - } - dependencies: - es5-ext: 0.10.62 - type: 1.2.0 - dev: false - - /dashdash/1.14.1: - resolution: - { - integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==, - } - engines: { node: ">=0.10" } - dependencies: - assert-plus: 1.0.0 - dev: false - - /debug/2.6.9: - resolution: - { - integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, - } - peerDependencies: - supports-color: "*" - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 - dev: false - - /debug/4.3.2: - resolution: - { - integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==, - } - engines: { node: ">=6.0" } - peerDependencies: - supports-color: "*" - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: false - - /debug/4.3.4: - resolution: - { - integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, - } - engines: { node: ">=6.0" } - peerDependencies: - supports-color: "*" - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /decamelize/1.2.0: - resolution: - { - integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, - } - engines: { node: ">=0.10.0" } - dev: false - - /decode-uri-component/0.2.0: - resolution: - { - integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==, - } - engines: { node: ">=0.10" } - dev: false - - /decompress-response/3.3.0: - resolution: - { - integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==, - } - engines: { node: ">=4" } - dependencies: - mimic-response: 1.0.1 - dev: false - - /decompress-response/4.2.1: - resolution: - { - integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==, - } - engines: { node: ">=8" } - dependencies: - mimic-response: 2.1.0 - dev: false - - /decompress-response/6.0.0: - resolution: - { - integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, - } - engines: { node: ">=10" } - dependencies: - mimic-response: 3.1.0 - dev: false - - /deep-eql/3.0.1: - resolution: - { - integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==, - } - engines: { node: ">=0.12" } - dependencies: - type-detect: 4.0.8 - dev: false - - /deep-extend/0.6.0: - resolution: - { - integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, - } - engines: { node: ">=4.0.0" } - dev: false - - /deep-is/0.1.4: - resolution: - { - integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, - } - dev: true - - /deepmerge/4.2.2: - resolution: - { - integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==, - } - engines: { node: ">=0.10.0" } - dev: true - - /defer-to-connect/2.0.1: - resolution: - { - integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==, - } - engines: { node: ">=10" } - dev: false - - /define-properties/1.1.4: - resolution: - { - integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==, - } - engines: { node: ">= 0.4" } - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - - /delay/5.0.0: - resolution: - { - integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==, - } - engines: { node: ">=10" } - dev: false - - /delayed-stream/1.0.0: - resolution: - { - integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, - } - engines: { node: ">=0.4.0" } - dev: false - - /delegates/1.0.0: - resolution: - { - integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==, - } - dev: false - - /delimit-stream/0.1.0: - resolution: - { - integrity: sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==, - } - dev: false - - /depd/1.1.2: - resolution: - { - integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, - } - engines: { node: ">= 0.6" } - dev: false - - /depd/2.0.0: - resolution: - { - integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, - } - engines: { node: ">= 0.8" } - dev: false - - /deprecation/2.3.1: - resolution: - { - integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==, - } - dev: false - - /des.js/1.0.1: - resolution: - { - integrity: sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==, - } - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - dev: false - - /destroy/1.2.0: - resolution: - { - integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, - } - engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } - dev: false - - /detect-browser/5.2.0: - resolution: - { - integrity: sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==, - } - dev: false - - /detect-libc/1.0.3: - resolution: - { - integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, - } - engines: { node: ">=0.10" } - hasBin: true - dev: false - - /diff/4.0.2: - resolution: - { - integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, - } - engines: { node: ">=0.3.1" } - dev: false - - /diffie-hellman/5.0.3: - resolution: - { - integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==, - } - dependencies: - bn.js: 4.12.0 - miller-rabin: 4.0.1 - randombytes: 2.1.0 - dev: false - - /dir-glob/3.0.1: - resolution: - { - integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, - } - engines: { node: ">=8" } - dependencies: - path-type: 4.0.0 - dev: true - - /doctrine/3.0.0: - resolution: - { - integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, - } - engines: { node: ">=6.0.0" } - dependencies: - esutils: 2.0.3 - dev: true - - /dom-walk/0.1.2: - resolution: - { - integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==, - } - dev: false - - /dot-case/3.0.4: - resolution: - { - integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, - } - dependencies: - no-case: 3.0.4 - tslib: 2.4.0 - dev: false - - /dotenv/16.0.1: - resolution: - { - integrity: sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==, - } - engines: { node: ">=12" } - dev: true - - /duplexer/0.1.2: - resolution: - { - integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, - } - dev: false - - /duplexer3/0.1.5: - resolution: - { - integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==, - } - dev: false - - /ecc-jsbn/0.1.2: - resolution: - { - integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==, - } - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - dev: false - - /ed25519-hd-key/1.1.2: - resolution: - { - integrity: sha512-/0y9y6N7vM6Kj5ASr9J9wcMVDTtygxSOvYX+PJiMD7VcxCx2G03V5bLRl8Dug9EgkLFsLhGqBtQWQRcElEeWTA==, - } - dependencies: - bip39: 3.0.2 - create-hmac: 1.1.7 - tweetnacl: 1.0.3 - dev: false - - /ee-first/1.1.1: - resolution: - { - integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, - } - dev: false - - /elliptic/6.5.4: - resolution: - { - integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, - } - dependencies: - bn.js: 4.12.0 - brorand: 1.1.0 - hash.js: 1.1.3 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - dev: false - - /emoji-regex/8.0.0: - resolution: - { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, - } - - /encodeurl/1.0.2: - resolution: - { - integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, - } - engines: { node: ">= 0.8" } - dev: false - - /end-of-stream/1.4.4: - resolution: - { - integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, - } - dependencies: - once: 1.4.0 - - /engine.io-client/6.2.2: - resolution: - { - integrity: sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ==, - } - dependencies: - "@socket.io/component-emitter": 3.1.0 - debug: 4.3.4 - engine.io-parser: 5.0.4 - ws: 8.2.3 - xmlhttprequest-ssl: 2.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - - /engine.io-parser/5.0.4: - resolution: - { - integrity: sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==, - } - engines: { node: ">=10.0.0" } - dev: false - - /enquirer/2.3.6: - resolution: - { - integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==, - } - engines: { node: ">=8.6" } - dependencies: - ansi-colors: 4.1.3 - dev: true - - /error-polyfill/0.1.3: - resolution: - { - integrity: sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==, - } - dependencies: - capability: 0.2.5 - o3: 1.0.3 - u3: 0.1.1 - dev: false - - /es-abstract/1.20.1: - resolution: - { - integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - es-to-primitive: 1.2.1 - function-bind: 1.1.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.1.2 - get-symbol-description: 1.0.0 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-symbols: 1.0.3 - internal-slot: 1.0.3 - is-callable: 1.2.4 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-weakref: 1.0.2 - object-inspect: 1.12.2 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.4.3 - string.prototype.trimend: 1.0.5 - string.prototype.trimstart: 1.0.5 - unbox-primitive: 1.0.2 - - /es-shim-unscopables/1.0.0: - resolution: - { - integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, - } - dependencies: - has: 1.0.3 - dev: true - - /es-to-primitive/1.2.1: - resolution: - { - integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, - } - engines: { node: ">= 0.4" } - dependencies: - is-callable: 1.2.4 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - - /es5-ext/0.10.62: - resolution: - { - integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==, - } - engines: { node: ">=0.10" } - requiresBuild: true - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - next-tick: 1.1.0 - dev: false - - /es6-iterator/2.0.3: - resolution: - { - integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==, - } - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-symbol: 3.1.3 - dev: false - - /es6-object-assign/1.1.0: - resolution: - { - integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==, - } - dev: false - - /es6-promise/4.2.8: - resolution: - { - integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==, - } - dev: false - - /es6-promisify/5.0.0: - resolution: - { - integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==, - } - dependencies: - es6-promise: 4.2.8 - dev: false - - /es6-symbol/3.1.3: - resolution: - { - integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==, - } - dependencies: - d: 1.0.1 - ext: 1.6.0 - dev: false - - /esbuild-android-64/0.14.54: - resolution: - { - integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /esbuild-android-arm64/0.14.54: - resolution: - { - integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /esbuild-darwin-64/0.14.54: - resolution: - { - integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /esbuild-darwin-arm64/0.14.54: - resolution: - { - integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /esbuild-freebsd-64/0.14.54: - resolution: - { - integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-freebsd-arm64/0.14.54: - resolution: - { - integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-32/0.14.54: - resolution: - { - integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, - } - engines: { node: ">=12" } - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-64/0.14.54: - resolution: - { - integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-arm/0.14.54: - resolution: - { - integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, - } - engines: { node: ">=12" } - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-arm64/0.14.54: - resolution: - { - integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-mips64le/0.14.54: - resolution: - { - integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, - } - engines: { node: ">=12" } - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-ppc64le/0.14.54: - resolution: - { - integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, - } - engines: { node: ">=12" } - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-riscv64/0.14.54: - resolution: - { - integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, - } - engines: { node: ">=12" } - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-s390x/0.14.54: - resolution: - { - integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, - } - engines: { node: ">=12" } - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-netbsd-64/0.14.54: - resolution: - { - integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-openbsd-64/0.14.54: - resolution: - { - integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-sunos-64/0.14.54: - resolution: - { - integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true - - /esbuild-windows-32/0.14.54: - resolution: - { - integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, - } - engines: { node: ">=12" } - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /esbuild-windows-64/0.14.54: - resolution: - { - integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /esbuild-windows-arm64/0.14.54: - resolution: - { - integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /esbuild/0.14.54: - resolution: - { - integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==, - } - engines: { node: ">=12" } - hasBin: true - requiresBuild: true - optionalDependencies: - "@esbuild/linux-loong64": 0.14.54 - esbuild-android-64: 0.14.54 - esbuild-android-arm64: 0.14.54 - esbuild-darwin-64: 0.14.54 - esbuild-darwin-arm64: 0.14.54 - esbuild-freebsd-64: 0.14.54 - esbuild-freebsd-arm64: 0.14.54 - esbuild-linux-32: 0.14.54 - esbuild-linux-64: 0.14.54 - esbuild-linux-arm: 0.14.54 - esbuild-linux-arm64: 0.14.54 - esbuild-linux-mips64le: 0.14.54 - esbuild-linux-ppc64le: 0.14.54 - esbuild-linux-riscv64: 0.14.54 - esbuild-linux-s390x: 0.14.54 - esbuild-netbsd-64: 0.14.54 - esbuild-openbsd-64: 0.14.54 - esbuild-sunos-64: 0.14.54 - esbuild-windows-32: 0.14.54 - esbuild-windows-64: 0.14.54 - esbuild-windows-arm64: 0.14.54 - dev: false - - /escalade/3.1.1: - resolution: - { - integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, - } - engines: { node: ">=6" } - dev: false - - /escape-html/1.0.3: - resolution: - { - integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, - } - dev: false - - /escape-string-regexp/1.0.5: - resolution: - { - integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, - } - engines: { node: ">=0.8.0" } - - /escape-string-regexp/4.0.0: - resolution: - { - integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, - } - engines: { node: ">=10" } - dev: true - - /eslint-config-prettier/8.5.0_eslint@7.32.0: - resolution: - { - integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==, - } - hasBin: true - peerDependencies: - eslint: ">=7.0.0" - dependencies: - eslint: 7.32.0 - dev: true - - /eslint-plugin-eslint-comments/3.2.0_eslint@7.32.0: - resolution: - { - integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==, - } - engines: { node: ">=6.5.0" } - peerDependencies: - eslint: ">=4.19.1" - dependencies: - escape-string-regexp: 1.0.5 - eslint: 7.32.0 - ignore: 5.2.0 - dev: true - - /eslint-plugin-functional/3.7.2_hxadhbs2xogijvk7vq4t2azzbu: - resolution: - { - integrity: sha512-BuWPOeE0nuXYlZjObYOHnYf7G3iG+sysxw84I579MsrH+hy5XdXb2sdabmXQ5z7eFGCg2/DWNbZ/yz5GAgtcUg==, - } - engines: { node: ">=10.18.0" } - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - tsutils: ^3.0.0 - typescript: ^3.4.1 || ^4.0.0 - peerDependenciesMeta: - tsutils: - optional: true - typescript: - optional: true - dependencies: - "@typescript-eslint/experimental-utils": 4.33.0_hxadhbs2xogijvk7vq4t2azzbu - array.prototype.flatmap: 1.3.0 - deepmerge: 4.2.2 - escape-string-regexp: 4.0.0 - eslint: 7.32.0 - object.fromentries: 2.0.5 - typescript: 4.7.4 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-scope/5.1.1: - resolution: - { - integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, - } - engines: { node: ">=8.0.0" } - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-utils/2.1.0: - resolution: - { - integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==, - } - engines: { node: ">=6" } - dependencies: - eslint-visitor-keys: 1.3.0 - dev: true - - /eslint-utils/3.0.0_eslint@7.32.0: - resolution: - { - integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, - } - engines: { node: ^10.0.0 || ^12.0.0 || >= 14.0.0 } - peerDependencies: - eslint: ">=5" - dependencies: - eslint: 7.32.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys/1.3.0: - resolution: - { - integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==, - } - engines: { node: ">=4" } - dev: true - - /eslint-visitor-keys/2.1.0: - resolution: - { - integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, - } - engines: { node: ">=10" } - dev: true - - /eslint/7.32.0: - resolution: - { - integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - hasBin: true - dependencies: - "@babel/code-frame": 7.12.11 - "@eslint/eslintrc": 0.4.3 - "@humanwhocodes/config-array": 0.5.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - enquirer: 2.3.6 - escape-string-regexp: 4.0.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - eslint-visitor-keys: 2.1.0 - espree: 7.3.1 - esquery: 1.4.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 - globals: 13.17.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 3.14.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - progress: 2.0.3 - regexpp: 3.2.0 - semver: 7.3.7 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - table: 6.8.0 - text-table: 0.2.0 - v8-compile-cache: 2.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /espree/7.3.1: - resolution: - { - integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2_acorn@7.4.1 - eslint-visitor-keys: 1.3.0 - dev: true - - /esprima/4.0.1: - resolution: - { - integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, - } - engines: { node: ">=4" } - hasBin: true - dev: true - - /esquery/1.4.0: - resolution: - { - integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==, - } - engines: { node: ">=0.10" } - dependencies: - estraverse: 5.3.0 - dev: true - - /esrecurse/4.3.0: - resolution: - { - integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, - } - engines: { node: ">=4.0" } - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse/4.3.0: - resolution: - { - integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, - } - engines: { node: ">=4.0" } - dev: true - - /estraverse/5.3.0: - resolution: - { - integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, - } - engines: { node: ">=4.0" } - dev: true - - /esutils/2.0.3: - resolution: - { - integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, - } - engines: { node: ">=0.10.0" } - dev: true - - /etag/1.8.1: - resolution: - { - integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, - } - engines: { node: ">= 0.6" } - dev: false - - /eth-ens-namehash/2.0.8: - resolution: - { - integrity: sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==, - } - dependencies: - idna-uts46-hx: 2.3.1 - js-sha3: 0.5.7 - dev: false - - /eth-lib/0.1.29: - resolution: - { - integrity: sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==, - } - dependencies: - bn.js: 4.12.0 - elliptic: 6.5.4 - nano-json-stream-parser: 0.1.2 - servify: 0.1.12 - ws: 3.3.3 - xhr-request-promise: 0.1.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - - /eth-lib/0.2.8: - resolution: - { - integrity: sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==, - } - dependencies: - bn.js: 4.12.0 - elliptic: 6.5.4 - xhr-request-promise: 0.1.3 - dev: false - - /ethereum-bloom-filters/1.0.10: - resolution: - { - integrity: sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==, - } - dependencies: - js-sha3: 0.8.0 - dev: false - - /ethereum-cryptography/0.1.3: - resolution: - { - integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==, - } - dependencies: - "@types/pbkdf2": 3.1.0 - "@types/secp256k1": 4.0.3 - blakejs: 1.2.1 - 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.2 - pbkdf2: 3.1.2 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - scrypt-js: 3.0.1 - secp256k1: 4.0.3 - setimmediate: 1.0.5 - dev: false - - /ethereumjs-util/7.1.5: - resolution: - { - integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==, - } - engines: { node: ">=10.0.0" } - dependencies: - "@types/bn.js": 5.1.0 - bn.js: 5.2.1 - create-hash: 1.2.0 - ethereum-cryptography: 0.1.3 - rlp: 2.2.7 - dev: false - - /ethers/5.7.0: - resolution: - { - integrity: sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA==, - } - dependencies: - "@ethersproject/abi": 5.7.0 - "@ethersproject/abstract-provider": 5.7.0 - "@ethersproject/abstract-signer": 5.7.0 - "@ethersproject/address": 5.7.0 - "@ethersproject/base64": 5.7.0 - "@ethersproject/basex": 5.7.0 - "@ethersproject/bignumber": 5.7.0 - "@ethersproject/bytes": 5.7.0 - "@ethersproject/constants": 5.7.0 - "@ethersproject/contracts": 5.7.0 - "@ethersproject/hash": 5.7.0 - "@ethersproject/hdnode": 5.7.0 - "@ethersproject/json-wallets": 5.7.0 - "@ethersproject/keccak256": 5.7.0 - "@ethersproject/logger": 5.7.0 - "@ethersproject/networks": 5.7.0 - "@ethersproject/pbkdf2": 5.7.0 - "@ethersproject/properties": 5.7.0 - "@ethersproject/providers": 5.7.0 - "@ethersproject/random": 5.7.0 - "@ethersproject/rlp": 5.7.0 - "@ethersproject/sha2": 5.7.0 - "@ethersproject/signing-key": 5.7.0 - "@ethersproject/solidity": 5.7.0 - "@ethersproject/strings": 5.7.0 - "@ethersproject/transactions": 5.7.0 - "@ethersproject/units": 5.7.0 - "@ethersproject/wallet": 5.7.0 - "@ethersproject/web": 5.7.0 - "@ethersproject/wordlists": 5.7.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /ethjs-unit/0.1.6: - resolution: - { - integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==, - } - engines: { node: ">=6.5.0", npm: ">=3" } - dependencies: - bn.js: 4.11.6 - number-to-bn: 1.7.0 - dev: false - - /event-stream/3.3.4: - resolution: - { - integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==, - } - dependencies: - duplexer: 0.1.2 - from: 0.1.7 - map-stream: 0.1.0 - pause-stream: 0.0.11 - split: 0.3.3 - stream-combiner: 0.0.4 - through: 2.3.8 - dev: false - - /event-target-shim/5.0.1: - resolution: - { - integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, - } - engines: { node: ">=6" } - dev: false - - /eventemitter3/3.1.2: - resolution: - { - integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==, - } - dev: false - - /eventemitter3/4.0.4: - resolution: - { - integrity: sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==, - } - dev: false - - /eventemitter3/4.0.7: - resolution: - { - integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, - } - dev: false - - /events/3.3.0: - resolution: - { - integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, - } - engines: { node: ">=0.8.x" } - dev: false - - /evp_bytestokey/1.0.3: - resolution: - { - integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==, - } - dependencies: - md5.js: 1.3.5 - safe-buffer: 5.2.1 - dev: false - - /execa/4.1.0: - resolution: - { - integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, - } - engines: { node: ">=10" } - dependencies: - cross-spawn: 7.0.3 - get-stream: 5.2.0 - human-signals: 1.1.1 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /execa/5.1.1: - resolution: - { - integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, - } - engines: { node: ">=10" } - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: false - - /expand-template/2.0.3: - resolution: - { - integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==, - } - engines: { node: ">=6" } - dev: false - - /expo-modules-autolinking/0.0.3: - resolution: - { - integrity: sha512-azkCRYj/DxbK4udDuDxA9beYzQTwpJ5a9QA0bBgha2jHtWdFGF4ZZWSY+zNA5mtU3KqzYt8jWHfoqgSvKyu1Aw==, - } - hasBin: true - dependencies: - chalk: 4.1.2 - commander: 7.2.0 - fast-glob: 3.2.11 - find-up: 5.0.0 - fs-extra: 9.1.0 - dev: false - optional: true - - /expo-random/12.3.0: - resolution: - { - integrity: sha512-q+AsTfGNT+Q+fb2sRrYtRkI3g5tV4H0kuYXM186aueILGO/vLn/YYFa7xFZj1IZ8LJZg2h96JDPDpsqHfRG2mQ==, - } - requiresBuild: true - peerDependencies: - expo: "*" - dependencies: - base64-js: 1.5.1 - dev: false - optional: true - - /express/4.18.1: - resolution: - { - integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==, - } - engines: { node: ">= 0.10.0" } - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.0 - content-disposition: 0.5.4 - content-type: 1.0.4 - cookie: 0.5.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.10.3 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /ext/1.6.0: - resolution: - { - integrity: sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==, - } - dependencies: - type: 2.7.2 - dev: false - - /extend/3.0.2: - resolution: - { - integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, - } - dev: false - - /extsprintf/1.3.0: - resolution: - { - integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==, - } - engines: { "0": node >=0.6.0 } - dev: false - - /eyes/0.1.8: - resolution: - { - integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==, - } - engines: { node: "> 0.1.90" } - dev: false - - /fast-deep-equal/3.1.3: - resolution: - { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, - } - - /fast-glob/3.2.11: - resolution: - { - integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==, - } - engines: { node: ">=8.6.0" } - dependencies: - "@nodelib/fs.stat": 2.0.5 - "@nodelib/fs.walk": 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - - /fast-json-stable-stringify/2.1.0: - resolution: - { - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, - } - - /fast-levenshtein/2.0.6: - resolution: - { - integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, - } - dev: true - - /fast-safe-stringify/2.1.1: - resolution: - { - integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, - } - dev: false - - /fast-stable-stringify/1.0.0: - resolution: - { - integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==, - } - dev: false - - /fastq/1.13.0: - resolution: - { - integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==, - } - dependencies: - reusify: 1.0.4 - - /file-entry-cache/6.0.1: - resolution: - { - integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - dependencies: - flat-cache: 3.0.4 - dev: true - - /file-uri-to-path/1.0.0: - resolution: - { - integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==, - } - dev: false - - /fill-range/7.0.1: - resolution: - { - integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, - } - engines: { node: ">=8" } - dependencies: - to-regex-range: 5.0.1 - - /finalhandler/1.2.0: - resolution: - { - integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==, - } - engines: { node: ">= 0.8" } - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /find-up/4.1.0: - resolution: - { - integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, - } - engines: { node: ">=8" } - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - /find-up/5.0.0: - resolution: - { - integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, - } - engines: { node: ">=10" } - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: false - optional: true - - /flat-cache/3.0.4: - resolution: - { - integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 - dev: true - - /flatted/3.2.7: - resolution: - { - integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, - } - dev: true - - /flow-copy-source/2.0.9: - resolution: - { - integrity: sha512-7zX/oHSIHe8YRGiA9QIcC4SW6KF667ikdmiDfbST15up1Ona8dn7Xy0PmSrfw6ceBWDww8sRKlCLKsztStpYkQ==, - } - engines: { node: ">=8.0.0" } - hasBin: true - dependencies: - chokidar: 3.5.3 - fs-extra: 8.1.0 - glob: 7.2.3 - kefir: 3.8.8 - yargs: 15.4.1 - dev: false - - /flow-typed/3.8.0: - resolution: - { - integrity: sha512-Lgmj8K69kbTz7UjKjiuaG/UNaZpyoyCGKU9wL9wrcqw0a9GNvuRe7llueHSJThKyuOsymEmZf3TOpMUD2Fw1HQ==, - } - engines: { node: ">=10.0.0" } - hasBin: true - dependencies: - "@octokit/rest": 18.12.0 - colors: 1.4.0 - flowgen: 1.20.1 - fs-extra: 8.1.0 - glob: 7.2.3 - got: 11.8.5 - md5: 2.3.0 - mkdirp: 1.0.4 - node-stream-zip: 1.15.0 - prettier: 1.19.1 - rimraf: 3.0.2 - semver: 7.3.2 - table: 6.8.0 - which: 2.0.2 - yargs: 15.4.1 - transitivePeerDependencies: - - encoding - dev: false - - /flowgen/1.20.1: - resolution: - { - integrity: sha512-Wus3KAhsOF7CiZGkBKZawf0AJXe06Wot6UGQt7h9QS6MBtBkFgG30wTAgpy1byA3FKYb059vO341XtN8LUhenQ==, - } - hasBin: true - dependencies: - "@babel/code-frame": 7.18.6 - "@babel/highlight": 7.18.6 - commander: 6.2.1 - lodash: 4.17.21 - prettier: 2.7.1 - shelljs: 0.8.5 - typescript: 4.4.4 - typescript-compiler: 1.4.1-2 - dev: false - - /follow-redirects/1.15.1: - resolution: - { - integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==, - } - engines: { node: ">=4.0" } - peerDependencies: - debug: "*" - peerDependenciesMeta: - debug: - optional: true - dev: false - - /follow-redirects/1.15.1_debug@4.3.2: - resolution: - { - integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==, - } - engines: { node: ">=4.0" } - peerDependencies: - debug: "*" - peerDependenciesMeta: - debug: - optional: true - dependencies: - debug: 4.3.2 - dev: false - - /for-each/0.3.3: - resolution: - { - integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, - } - dependencies: - is-callable: 1.2.4 - dev: false - - /forever-agent/0.6.1: - resolution: - { - integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==, - } - dev: false - - /form-data-encoder/1.7.1: - resolution: - { - integrity: sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==, - } - dev: false - - /form-data/2.3.3: - resolution: - { - integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==, - } - engines: { node: ">= 0.12" } - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /form-data/3.0.1: - resolution: - { - integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==, - } - engines: { node: ">= 6" } - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /formidable/1.2.6: - resolution: - { - integrity: sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==, - } - deprecated: "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau" - dev: false - - /forwarded/0.2.0: - resolution: - { - integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, - } - engines: { node: ">= 0.6" } - dev: false - - /fresh/0.5.2: - resolution: - { - integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, - } - engines: { node: ">= 0.6" } - dev: false - - /from/0.1.7: - resolution: - { - integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==, - } - dev: false - - /fs-constants/1.0.0: - resolution: - { - integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, - } - dev: false - - /fs-extra/4.0.3: - resolution: - { - integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==, - } - dependencies: - graceful-fs: 4.2.10 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: false - - /fs-extra/8.1.0: - resolution: - { - integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, - } - engines: { node: ">=6 <7 || >=8" } - dependencies: - graceful-fs: 4.2.10 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: false - - /fs-extra/9.1.0: - resolution: - { - integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, - } - engines: { node: ">=10" } - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.10 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: false - optional: true - - /fs-minipass/1.2.7: - resolution: - { - integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==, - } - dependencies: - minipass: 2.9.0 - dev: false - - /fs.realpath/1.0.0: - resolution: - { - integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, - } - - /fsevents/2.1.2: - resolution: - { - integrity: sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==, - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } - os: [darwin] - deprecated: '"Please update to latest v2.3 or v2.2"' - requiresBuild: true - dev: false - optional: true - - /fsevents/2.3.2: - resolution: - { - integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /function-bind/1.1.1: - resolution: - { - integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, - } - - /function.prototype.name/1.1.5: - resolution: - { - integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - functions-have-names: 1.2.3 - - /functional-red-black-tree/1.0.1: - resolution: - { - integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==, - } - dev: true - - /functions-have-names/1.2.3: - resolution: - { - integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, - } - - /gauge/2.7.4: - resolution: - { - integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==, - } - dependencies: - aproba: 1.2.0 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 1.0.2 - strip-ansi: 3.0.1 - wide-align: 1.1.5 - dev: false - - /get-caller-file/2.0.5: - resolution: - { - integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, - } - engines: { node: 6.* || 8.* || >= 10.* } - dev: false - - /get-func-name/2.0.0: - resolution: - { - integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==, - } - dev: false - - /get-intrinsic/1.1.2: - resolution: - { - integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==, - } - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - - /get-stream/3.0.0: - resolution: - { - integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==, - } - engines: { node: ">=4" } - dev: false - - /get-stream/5.2.0: - resolution: - { - integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, - } - engines: { node: ">=8" } - dependencies: - pump: 3.0.0 - - /get-stream/6.0.1: - resolution: - { - integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, - } - engines: { node: ">=10" } - dev: false - - /get-symbol-description/1.0.0: - resolution: - { - integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.2 - - /getpass/0.1.7: - resolution: - { - integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==, - } - dependencies: - assert-plus: 1.0.0 - dev: false - - /github-from-package/0.0.0: - resolution: - { - integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==, - } - dev: false - - /glob-parent/5.1.2: - resolution: - { - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, - } - engines: { node: ">= 6" } - dependencies: - is-glob: 4.0.3 - - /glob/7.2.3: - resolution: - { - integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, - } - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - /glob/8.0.3: - resolution: - { - integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==, - } - engines: { node: ">=12" } - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.0 - once: 1.4.0 - dev: true - - /global/4.4.0: - resolution: - { - integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==, - } - dependencies: - min-document: 2.19.0 - process: 0.11.10 - dev: false - - /globals/13.17.0: - resolution: - { - integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==, - } - engines: { node: ">=8" } - dependencies: - type-fest: 0.20.2 - dev: true - - /globby/11.1.0: - resolution: - { - integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, - } - engines: { node: ">=10" } - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.11 - ignore: 5.2.0 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /google-protobuf/3.21.0: - resolution: - { - integrity: sha512-byR7MBTK4tZ5PZEb+u5ZTzpt4SfrTxv5682MjPlHN16XeqgZE2/8HOIWeiXe8JKnT9OVbtBGhbq8mtvkK8cd5g==, - } - dev: false - - /got/11.8.5: - resolution: - { - integrity: sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==, - } - engines: { node: ">=10.19.0" } - dependencies: - "@sindresorhus/is": 4.6.0 - "@szmarczak/http-timer": 4.0.6 - "@types/cacheable-request": 6.0.2 - "@types/responselike": 1.0.0 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.2 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.1 - dev: false - - /got/12.1.0: - resolution: - { - integrity: sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==, - } - engines: { node: ">=14.16" } - dependencies: - "@sindresorhus/is": 4.6.0 - "@szmarczak/http-timer": 5.0.1 - "@types/cacheable-request": 6.0.2 - "@types/responselike": 1.0.0 - cacheable-lookup: 6.1.0 - cacheable-request: 7.0.2 - decompress-response: 6.0.0 - form-data-encoder: 1.7.1 - get-stream: 6.0.1 - http2-wrapper: 2.1.11 - lowercase-keys: 3.0.0 - p-cancelable: 3.0.0 - responselike: 2.0.1 - dev: false - - /got/7.1.0: - resolution: - { - integrity: sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==, - } - engines: { node: ">=4" } - dependencies: - "@types/keyv": 3.1.4 - "@types/responselike": 1.0.0 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 3.0.0 - is-plain-obj: 1.1.0 - is-retry-allowed: 1.2.0 - is-stream: 1.1.0 - isurl: 1.0.0 - lowercase-keys: 1.0.1 - p-cancelable: 0.3.0 - p-timeout: 1.2.1 - safe-buffer: 5.2.1 - timed-out: 4.0.1 - url-parse-lax: 1.0.0 - url-to-options: 1.0.1 - dev: false - - /graceful-fs/4.2.10: - resolution: - { - integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, - } - dev: false - - /har-schema/2.0.0: - resolution: - { - integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==, - } - engines: { node: ">=4" } - dev: false - - /har-validator/5.1.5: - resolution: - { - integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==, - } - engines: { node: ">=6" } - deprecated: this library is no longer supported - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - dev: false - - /has-bigints/1.0.2: - resolution: - { - integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, - } - - /has-flag/3.0.0: - resolution: - { - integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, - } - engines: { node: ">=4" } - - /has-flag/4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, - } - engines: { node: ">=8" } - - /has-property-descriptors/1.0.0: - resolution: - { - integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, - } - dependencies: - get-intrinsic: 1.1.2 - - /has-symbol-support-x/1.4.2: - resolution: - { - integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==, - } - dev: false - - /has-symbols/1.0.3: - resolution: - { - integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, - } - engines: { node: ">= 0.4" } - - /has-to-string-tag-x/1.4.1: - resolution: - { - integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==, - } - dependencies: - has-symbol-support-x: 1.4.2 - dev: false - - /has-tostringtag/1.0.0: - resolution: - { - integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, - } - engines: { node: ">= 0.4" } - dependencies: - has-symbols: 1.0.3 - - /has-unicode/2.0.1: - resolution: - { - integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==, - } - dev: false - - /has/1.0.3: - resolution: - { - integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, - } - engines: { node: ">= 0.4.0" } - dependencies: - function-bind: 1.1.1 - - /hash-base/3.1.0: - resolution: - { - integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==, - } - engines: { node: ">=4" } - dependencies: - inherits: 2.0.4 - readable-stream: 3.6.0 - safe-buffer: 5.2.1 - dev: false - - /hash.js/1.1.3: - resolution: - { - integrity: sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==, - } - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - dev: false - - /hash.js/1.1.7: - resolution: - { - integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==, - } - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - dev: false - - /hi-base32/0.5.1: - resolution: - { - integrity: sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==, - } - dev: false - - /hmac-drbg/1.0.1: - resolution: - { - integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==, - } - dependencies: - hash.js: 1.1.3 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - dev: false - - /http-cache-semantics/4.1.0: - resolution: - { - integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==, - } - dev: false - - /http-errors/1.8.1: - resolution: - { - integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==, - } - engines: { node: ">= 0.6" } - dependencies: - depd: 1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 1.5.0 - toidentifier: 1.0.1 - dev: false - - /http-errors/2.0.0: - resolution: - { - integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, - } - engines: { node: ">= 0.8" } - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - dev: false - - /http-https/1.0.0: - resolution: - { - integrity: sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==, - } - dev: false - - /http-signature/1.2.0: - resolution: - { - integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==, - } - engines: { node: ">=0.8", npm: ">=1.3.7" } - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.2 - sshpk: 1.17.0 - dev: false - - /http2-wrapper/1.0.3: - resolution: - { - integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==, - } - engines: { node: ">=10.19.0" } - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - dev: false - - /http2-wrapper/2.1.11: - resolution: - { - integrity: sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==, - } - engines: { node: ">=10.19.0" } - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - dev: false - - /human-signals/1.1.1: - resolution: - { - integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==, - } - engines: { node: ">=8.12.0" } - dev: true - - /human-signals/2.1.0: - resolution: - { - integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, - } - engines: { node: ">=10.17.0" } - dev: false - - /husky/8.0.1: - resolution: - { - integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==, - } - engines: { node: ">=14" } - hasBin: true - dev: true - - /iconv-lite/0.4.24: - resolution: - { - integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, - } - engines: { node: ">=0.10.0" } - dependencies: - safer-buffer: 2.1.2 - dev: false - - /idna-uts46-hx/2.3.1: - resolution: - { - integrity: sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==, - } - engines: { node: ">=4.0.0" } - dependencies: - punycode: 2.1.0 - dev: false - - /ieee754/1.2.1: - resolution: - { - integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, - } - dev: false - - /ignore/4.0.6: - resolution: - { - integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==, - } - engines: { node: ">= 4" } - dev: true - - /ignore/5.2.0: - resolution: - { - integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==, - } - engines: { node: ">= 4" } - dev: true - - /import-fresh/3.3.0: - resolution: - { - integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, - } - engines: { node: ">=6" } - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /imurmurhash/0.1.4: - resolution: - { - integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, - } - engines: { node: ">=0.8.19" } - dev: true - - /inflight/1.0.6: - resolution: - { - integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, - } - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - /inherits/2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, - } - - /ini/1.3.8: - resolution: - { - integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, - } - dev: false - - /injectpromise/1.0.0: - resolution: - { - integrity: sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA==, - } - dev: false - - /internal-slot/1.0.3: - resolution: - { - integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==, - } - engines: { node: ">= 0.4" } - dependencies: - get-intrinsic: 1.1.2 - has: 1.0.3 - side-channel: 1.0.4 - - /interpret/1.4.0: - resolution: - { - integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, - } - engines: { node: ">= 0.10" } - dev: false - - /invariant/2.2.4: - resolution: - { - integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, - } - dependencies: - loose-envify: 1.4.0 - dev: false - optional: true - - /ipaddr.js/1.9.1: - resolution: - { - integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, - } - engines: { node: ">= 0.10" } - dev: false - - /is-arguments/1.1.1: - resolution: - { - integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - dev: false - - /is-bigint/1.0.4: - resolution: - { - integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, - } - dependencies: - has-bigints: 1.0.2 - - /is-binary-path/2.1.0: - resolution: - { - integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, - } - engines: { node: ">=8" } - dependencies: - binary-extensions: 2.2.0 - dev: false - - /is-boolean-object/1.1.2: - resolution: - { - integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - - /is-buffer/1.1.6: - resolution: - { - integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, - } - dev: false - - /is-callable/1.2.4: - resolution: - { - integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==, - } - engines: { node: ">= 0.4" } - - /is-core-module/2.10.0: - resolution: - { - integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==, - } - dependencies: - has: 1.0.3 - dev: false - - /is-date-object/1.0.5: - resolution: - { - integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, - } - engines: { node: ">= 0.4" } - dependencies: - has-tostringtag: 1.0.0 - - /is-extglob/2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, - } - engines: { node: ">=0.10.0" } - - /is-fullwidth-code-point/1.0.0: - resolution: - { - integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==, - } - engines: { node: ">=0.10.0" } - dependencies: - number-is-nan: 1.0.1 - dev: false - - /is-fullwidth-code-point/3.0.0: - resolution: - { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, - } - engines: { node: ">=8" } - - /is-function/1.0.2: - resolution: - { - integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==, - } - dev: false - - /is-generator-function/1.0.10: - resolution: - { - integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, - } - engines: { node: ">= 0.4" } - dependencies: - has-tostringtag: 1.0.0 - dev: false - - /is-glob/4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, - } - engines: { node: ">=0.10.0" } - dependencies: - is-extglob: 2.1.1 - - /is-gzip/2.0.0: - resolution: - { - integrity: sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA==, - } - engines: { node: ">=4" } - dev: false - - /is-hex-prefixed/1.0.0: - resolution: - { - integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==, - } - engines: { node: ">=6.5.0", npm: ">=3" } - dev: false - - /is-nan/1.3.2: - resolution: - { - integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - dev: false - - /is-negative-zero/2.0.2: - resolution: - { - integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, - } - engines: { node: ">= 0.4" } - - /is-number-object/1.0.7: - resolution: - { - integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, - } - engines: { node: ">= 0.4" } - dependencies: - has-tostringtag: 1.0.0 - - /is-number/7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, - } - engines: { node: ">=0.12.0" } - - /is-object/1.0.2: - resolution: - { - integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==, - } - dev: false - - /is-plain-obj/1.1.0: - resolution: - { - integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, - } - engines: { node: ">=0.10.0" } - dev: false - - /is-plain-object/5.0.0: - resolution: - { - integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, - } - engines: { node: ">=0.10.0" } - dev: false - - /is-regex/1.1.4: - resolution: - { - integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - - /is-retry-allowed/1.2.0: - resolution: - { - integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==, - } - engines: { node: ">=0.10.0" } - dev: false - - /is-shared-array-buffer/1.0.2: - resolution: - { - integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, - } - dependencies: - call-bind: 1.0.2 - - /is-stream/1.1.0: - resolution: - { - integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==, - } - engines: { node: ">=0.10.0" } - dev: false - - /is-stream/2.0.1: - resolution: - { - integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, - } - engines: { node: ">=8" } - - /is-string/1.0.7: - resolution: - { - integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, - } - engines: { node: ">= 0.4" } - dependencies: - has-tostringtag: 1.0.0 - - /is-symbol/1.0.4: - resolution: - { - integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, - } - engines: { node: ">= 0.4" } - dependencies: - has-symbols: 1.0.3 - - /is-typed-array/1.1.9: - resolution: - { - integrity: sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==, - } - engines: { node: ">= 0.4" } - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-abstract: 1.20.1 - for-each: 0.3.3 - has-tostringtag: 1.0.0 - dev: false - - /is-typedarray/1.0.0: - resolution: - { - integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, - } - dev: false - - /is-weakref/1.0.2: - resolution: - { - integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, - } - dependencies: - call-bind: 1.0.2 - - /isarray/1.0.0: - resolution: - { - integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, - } - dev: false - - /isexe/2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, - } - - /iso-url/0.4.7: - resolution: - { - integrity: sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==, - } - engines: { node: ">=10" } - dev: false - - /isomorphic-webcrypto/2.3.8: - resolution: - { - integrity: sha512-XddQSI0WYlSCjxtm1AI8kWQOulf7hAN3k3DclF1sxDJZqOe0pcsOt675zvWW91cZH9hYs3nlA3Ev8QK5i80SxQ==, - } - dependencies: - "@peculiar/webcrypto": 1.4.0 - asmcrypto.js: 0.22.0 - b64-lite: 1.4.0 - b64u-lite: 1.1.0 - msrcrypto: 1.5.8 - str2buf: 1.3.0 - webcrypto-shim: 0.1.7 - optionalDependencies: - "@unimodules/core": 7.1.2 - "@unimodules/react-native-adapter": 6.3.9 - expo-random: 12.3.0 - react-native-securerandom: 0.1.1 - transitivePeerDependencies: - - expo - - react-native - dev: false - - /isomorphic-ws/4.0.1_ws@7.5.9: - resolution: - { - integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==, - } - peerDependencies: - ws: "*" - dependencies: - ws: 7.5.9 - dev: false - - /isstream/0.1.2: - resolution: - { - integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, - } - dev: false - - /isurl/1.0.0: - resolution: - { - integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==, - } - engines: { node: ">= 4" } - dependencies: - has-to-string-tag-x: 1.4.1 - is-object: 1.0.2 - dev: false - - /jayson/3.7.0: - resolution: - { - integrity: sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==, - } - engines: { node: ">=8" } - hasBin: true - dependencies: - "@types/connect": 3.4.35 - "@types/node": 12.20.55 - "@types/ws": 7.4.7 - JSONStream: 1.3.5 - commander: 2.20.3 - delay: 5.0.0 - es6-promisify: 5.0.0 - eyes: 0.1.8 - isomorphic-ws: 4.0.1_ws@7.5.9 - json-stringify-safe: 5.0.1 - lodash: 4.17.21 - uuid: 8.3.2 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /joi/17.6.0: - resolution: - { - integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==, - } - dependencies: - "@hapi/hoek": 9.3.0 - "@hapi/topo": 5.1.0 - "@sideway/address": 4.1.4 - "@sideway/formula": 3.0.0 - "@sideway/pinpoint": 2.0.0 - dev: false - - /js-base64/3.7.2: - resolution: - { - integrity: sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==, - } - dev: false - - /js-logger/1.6.1: - resolution: - { - integrity: sha512-yTgMCPXVjhmg28CuUH8CKjU+cIKL/G+zTu4Fn4lQxs8mRFH/03QTNvEFngcxfg/gRDiQAOoyCKmMTOm9ayOzXA==, - } - dev: false - - /js-sha256/0.9.0: - resolution: - { - integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==, - } - dev: false - - /js-sha3/0.5.7: - resolution: - { - integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==, - } - dev: false - - /js-sha3/0.8.0: - resolution: - { - integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==, - } - dev: false - - /js-sha512/0.8.0: - resolution: - { - integrity: sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==, - } - dev: false - - /js-tokens/4.0.0: - resolution: - { - integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, - } - - /js-yaml/3.14.1: - resolution: - { - integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, - } - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: true - - /jsbn/0.1.1: - resolution: - { - integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==, - } - dev: false - - /json-bigint/1.0.0: - resolution: - { - integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==, - } - dependencies: - bignumber.js: 9.1.0 - dev: false - - /json-buffer/3.0.1: - resolution: - { - integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, - } - dev: false - - /json-duplicate-key-handle/1.0.0: - resolution: - { - integrity: sha512-OLIxL+UpfwUsqcLX3i6Z51ChTou/Vje+6bSeGUSubj96dF/SfjObDprLy++ZXYH07KITuEzsXS7PX7e/BGf4jw==, - } - dependencies: - backslash: 0.2.0 - dev: false - - /json-schema-traverse/0.4.1: - resolution: - { - integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, - } - - /json-schema-traverse/1.0.0: - resolution: - { - integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, - } - - /json-schema/0.4.0: - resolution: - { - integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==, - } - dev: false - - /json-stable-stringify-without-jsonify/1.0.1: - resolution: - { - integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, - } - dev: true - - /json-stringify-safe/5.0.1: - resolution: - { - integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, - } - dev: false - - /json-text-sequence/0.1.1: - resolution: - { - integrity: sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w==, - } - dependencies: - delimit-stream: 0.1.0 - dev: false - - /jsonc-parser/3.1.0: - resolution: - { - integrity: sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==, - } - dev: true - - /jsonfile/4.0.0: - resolution: - { - integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, - } - optionalDependencies: - graceful-fs: 4.2.10 - dev: false - - /jsonfile/6.1.0: - resolution: - { - integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, - } - dependencies: - universalify: 2.0.0 - optionalDependencies: - graceful-fs: 4.2.10 - dev: false - optional: true - - /jsonparse/1.3.1: - resolution: - { - integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, - } - engines: { "0": node >= 0.2.0 } - dev: false - - /jsprim/1.4.2: - resolution: - { - integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==, - } - engines: { node: ">=0.6.0" } - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - dev: false - - /keccak/3.0.2: - resolution: - { - integrity: sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==, - } - engines: { node: ">=10.0.0" } - requiresBuild: true - dependencies: - node-addon-api: 2.0.2 - node-gyp-build: 4.5.0 - readable-stream: 3.6.0 - dev: false - - /kefir/3.8.8: - resolution: - { - integrity: sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA==, - } - dev: false - - /keyv/4.4.1: - resolution: - { - integrity: sha512-PzByhNxfBLnSBW2MZi1DF+W5+qB/7BMpOokewqIvqS8GFtP7xHm2oeGU72Y1fhtfOv/FiEnI4+nyViYDmUChnw==, - } - dependencies: - compress-brotli: 1.3.8 - json-buffer: 3.0.1 - dev: false - - /keyvaluestorage-interface/1.0.0: - resolution: - { - integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==, - } - dev: false - - /lazy-ass/1.6.0: - resolution: - { - integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==, - } - engines: { node: "> 0.8" } - dev: false - - /levn/0.4.1: - resolution: - { - integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, - } - engines: { node: ">= 0.8.0" } - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /local-pkg/0.4.2: - resolution: - { - integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==, - } - engines: { node: ">=14" } - dev: false - - /locate-path/5.0.0: - resolution: - { - integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, - } - engines: { node: ">=8" } - dependencies: - p-locate: 4.1.0 - - /locate-path/6.0.0: - resolution: - { - integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, - } - engines: { node: ">=10" } - dependencies: - p-locate: 5.0.0 - dev: false - optional: true - - /lodash.camelcase/4.3.0: - resolution: - { - integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, - } - dev: false - - /lodash.merge/4.6.2: - resolution: - { - integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, - } - dev: true - - /lodash.truncate/4.4.2: - resolution: - { - integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, - } - - /lodash/4.17.21: - resolution: - { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, - } - dev: false - - /long/4.0.0: - resolution: - { - integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==, - } - dev: false - - /long/5.2.0: - resolution: - { - integrity: sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==, - } - dev: false - - /loose-envify/1.4.0: - resolution: - { - integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, - } - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: false - optional: true - - /loupe/2.3.4: - resolution: - { - integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==, - } - dependencies: - get-func-name: 2.0.0 - dev: false - - /lower-case/2.0.2: - resolution: - { - integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, - } - dependencies: - tslib: 2.4.0 - dev: false - - /lowercase-keys/1.0.1: - resolution: - { - integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==, - } - engines: { node: ">=0.10.0" } - dev: false - - /lowercase-keys/2.0.0: - resolution: - { - integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==, - } - engines: { node: ">=8" } - dev: false - - /lowercase-keys/3.0.0: - resolution: - { - integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - dev: false - - /lru-cache/5.1.1: - resolution: - { - integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, - } - dependencies: - yallist: 3.1.1 - dev: false - - /lru-cache/6.0.0: - resolution: - { - integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, - } - engines: { node: ">=10" } - dependencies: - yallist: 4.0.0 - - /lunr/2.3.9: - resolution: - { - integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==, - } - dev: true - - /make-error/1.3.6: - resolution: - { - integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, - } - dev: false - - /map-stream/0.1.0: - resolution: - { - integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==, - } - dev: false - - /marked/4.0.19: - resolution: - { - integrity: sha512-rgQF/OxOiLcvgUAj1Q1tAf4Bgxn5h5JZTp04Fx4XUkVhs7B+7YA9JEWJhJpoO8eJt8MkZMwqLCNeNqj1bCREZQ==, - } - engines: { node: ">= 12" } - hasBin: true - dev: true - - /md5.js/1.3.5: - resolution: - { - integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==, - } - dependencies: - hash-base: 3.1.0 - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: false - - /md5/2.3.0: - resolution: - { - integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==, - } - dependencies: - charenc: 0.0.2 - crypt: 0.0.2 - is-buffer: 1.1.6 - dev: false - - /media-typer/0.3.0: - resolution: - { - integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, - } - engines: { node: ">= 0.6" } - dev: false - - /merge-descriptors/1.0.1: - resolution: - { - integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==, - } - dev: false - - /merge-stream/2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, - } - - /merge2/1.4.1: - resolution: - { - integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, - } - engines: { node: ">= 8" } - - /methods/1.1.2: - resolution: - { - integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, - } - engines: { node: ">= 0.6" } - dev: false - - /micromatch/4.0.5: - resolution: - { - integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, - } - engines: { node: ">=8.6" } - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - - /miller-rabin/4.0.1: - resolution: - { - integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==, - } - hasBin: true - dependencies: - bn.js: 4.12.0 - brorand: 1.1.0 - dev: false - - /mime-db/1.52.0: - resolution: - { - integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, - } - engines: { node: ">= 0.6" } - dev: false - - /mime-types/2.1.35: - resolution: - { - integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, - } - engines: { node: ">= 0.6" } - dependencies: - mime-db: 1.52.0 - dev: false - - /mime/1.6.0: - resolution: - { - integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, - } - engines: { node: ">=4" } - hasBin: true - dev: false - - /mime/2.6.0: - resolution: - { - integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==, - } - engines: { node: ">=4.0.0" } - hasBin: true - dev: false - - /mimic-fn/2.1.0: - resolution: - { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, - } - engines: { node: ">=6" } - - /mimic-response/1.0.1: - resolution: - { - integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==, - } - engines: { node: ">=4" } - dev: false - - /mimic-response/2.1.0: - resolution: - { - integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==, - } - engines: { node: ">=8" } - dev: false - - /mimic-response/3.1.0: - resolution: - { - integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, - } - engines: { node: ">=10" } - dev: false - - /min-document/2.19.0: - resolution: - { - integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==, - } - dependencies: - dom-walk: 0.1.2 - dev: false - - /minimalistic-assert/1.0.1: - resolution: - { - integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, - } - dev: false - - /minimalistic-crypto-utils/1.0.1: - resolution: - { - integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==, - } - dev: false - - /minimatch/3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, - } - dependencies: - brace-expansion: 1.1.11 - - /minimatch/5.1.0: - resolution: - { - integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==, - } - engines: { node: ">=10" } - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimist/1.2.6: - resolution: - { - integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==, - } - dev: false - - /minipass/2.9.0: - resolution: - { - integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==, - } - dependencies: - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: false - - /minizlib/1.3.3: - resolution: - { - integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==, - } - dependencies: - minipass: 2.9.0 - dev: false - - /miscreant/0.3.2: - resolution: - { - integrity: sha512-fL9KxsQz9BJB2KGPMHFrReioywkiomBiuaLk6EuChijK0BsJsIKJXdVomR+/bPj5mvbFD6wM0CM3bZio9g7OHA==, - } - dev: false - - /mkdirp-classic/0.5.3: - resolution: - { - integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, - } - dev: false - - /mkdirp-promise/5.0.1: - resolution: - { - integrity: sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==, - } - engines: { node: ">=4" } - deprecated: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that. - dependencies: - mkdirp: 1.0.4 - dev: false - - /mkdirp/0.5.6: - resolution: - { - integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, - } - hasBin: true - dependencies: - minimist: 1.2.6 - dev: false - - /mkdirp/1.0.4: - resolution: - { - integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, - } - engines: { node: ">=10" } - hasBin: true - dev: false - - /mock-fs/4.14.0: - resolution: - { - integrity: sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==, - } - dev: false - - /mri/1.2.0: - resolution: - { - integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, - } - engines: { node: ">=4" } - dev: true - - /ms/2.0.0: - resolution: - { - integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, - } - dev: false - - /ms/2.1.2: - resolution: - { - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, - } - - /ms/2.1.3: - resolution: - { - integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, - } - dev: false - - /msrcrypto/1.5.8: - resolution: - { - integrity: sha512-ujZ0TRuozHKKm6eGbKHfXef7f+esIhEckmThVnz7RNyiOJd7a6MXj2JGBoL9cnPDW+JMG16MoTUh5X+XXjI66Q==, - } - dev: false - - /multibase/0.6.1: - resolution: - { - integrity: sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==, - } - deprecated: This module has been superseded by the multiformats module - dependencies: - base-x: 3.0.9 - buffer: 5.7.1 - dev: false - - /multibase/0.7.0: - resolution: - { - integrity: sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==, - } - deprecated: This module has been superseded by the multiformats module - dependencies: - base-x: 3.0.9 - buffer: 5.7.1 - dev: false - - /multicodec/0.5.7: - resolution: - { - integrity: sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==, - } - deprecated: This module has been superseded by the multiformats module - dependencies: - varint: 5.0.2 - dev: false - - /multicodec/1.0.4: - resolution: - { - integrity: sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==, - } - deprecated: This module has been superseded by the multiformats module - dependencies: - buffer: 5.7.1 - varint: 5.0.2 - dev: false - - /multihashes/0.4.21: - resolution: - { - integrity: sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==, - } - dependencies: - buffer: 5.7.1 - multibase: 0.7.0 - varint: 5.0.2 - dev: false - - /multimatch/4.0.0: - resolution: - { - integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==, - } - engines: { node: ">=8" } - dependencies: - "@types/minimatch": 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.1.2 - dev: true - - /mustache/4.2.0: - resolution: - { - integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==, - } - hasBin: true - dev: false - - /nan/2.16.0: - resolution: - { - integrity: sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==, - } - dev: false - - /nano-json-stream-parser/0.1.2: - resolution: - { - integrity: sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==, - } - dev: false - - /nanoassert/1.1.0: - resolution: - { - integrity: sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ==, - } - dev: false - - /nanoid/3.3.4: - resolution: - { - integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, - } - engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } - hasBin: true - dev: false - - /napi-build-utils/1.0.2: - resolution: - { - integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==, - } - dev: false - - /natural-compare/1.4.0: - resolution: - { - integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, - } - dev: true - - /near-api-js/0.45.1: - resolution: - { - integrity: sha512-QyPO/vjvMFlcMO1DCpsqzmnSqPIyHsjK1Qi4B5ZR1cJCIWMkqugDF/TDf8FVQ85pmlcYeYwfiTqKanKz+3IG0A==, - } - dependencies: - bn.js: 5.2.0 - borsh: 0.7.0 - bs58: 4.0.1 - depd: 2.0.0 - error-polyfill: 0.1.3 - http-errors: 1.8.1 - js-sha256: 0.9.0 - mustache: 4.2.0 - node-fetch: 2.6.7 - text-encoding-utf-8: 1.0.2 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - encoding - dev: false - - /negotiator/0.6.3: - resolution: - { - integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, - } - engines: { node: ">= 0.6" } - dev: false - - /next-tick/1.1.0: - resolution: - { - integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==, - } - dev: false - - /no-case/3.0.4: - resolution: - { - integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, - } - dependencies: - lower-case: 2.0.2 - tslib: 2.4.0 - dev: false - - /node-abi/2.30.1: - resolution: - { - integrity: sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==, - } - dependencies: - semver: 5.7.1 - dev: false - - /node-addon-api/2.0.2: - resolution: - { - integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==, - } - dev: false - - /node-addon-api/3.2.1: - resolution: - { - integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==, - } - dev: false - - /node-addon-api/4.3.0: - resolution: - { - integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==, - } - dev: false - - /node-fetch/2.6.7: - resolution: - { - integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, - } - engines: { node: 4.x || >=6.0.0 } - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: false - - /node-gyp-build/4.5.0: - resolution: - { - integrity: sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==, - } - hasBin: true - dev: false - - /node-hid/2.1.1: - resolution: - { - integrity: sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw==, - } - engines: { node: ">=10" } - hasBin: true - requiresBuild: true - dependencies: - bindings: 1.5.0 - node-addon-api: 3.2.1 - prebuild-install: 6.1.4 - dev: false - - /node-stream-zip/1.15.0: - resolution: - { - integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==, - } - engines: { node: ">=0.12.0" } - dev: false - - /normalize-path/3.0.0: - resolution: - { - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, - } - engines: { node: ">=0.10.0" } - dev: false - - /normalize-url/6.1.0: - resolution: - { - integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==, - } - engines: { node: ">=10" } - dev: false - - /npm-run-path/4.0.1: - resolution: - { - integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, - } - engines: { node: ">=8" } - dependencies: - path-key: 3.1.1 - - /npmlog/4.1.2: - resolution: - { - integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==, - } - dependencies: - are-we-there-yet: 1.1.7 - console-control-strings: 1.1.0 - gauge: 2.7.4 - set-blocking: 2.0.0 - dev: false - - /number-is-nan/1.0.1: - resolution: - { - integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==, - } - engines: { node: ">=0.10.0" } - dev: false - - /number-to-bn/1.7.0: - resolution: - { - integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==, - } - engines: { node: ">=6.5.0", npm: ">=3" } - dependencies: - bn.js: 4.11.6 - strip-hex-prefix: 1.0.0 - dev: false - - /o3/1.0.3: - resolution: - { - integrity: sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==, - } - dependencies: - capability: 0.2.5 - dev: false - - /oauth-sign/0.9.0: - resolution: - { - integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==, - } - dev: false - - /object-assign/4.1.1: - resolution: - { - integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, - } - engines: { node: ">=0.10.0" } - dev: false - - /object-inspect/1.12.2: - resolution: - { - integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==, - } - - /object-is/1.1.5: - resolution: - { - integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - dev: false - - /object-keys/1.1.1: - resolution: - { - integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, - } - engines: { node: ">= 0.4" } - - /object.assign/4.1.4: - resolution: - { - integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - has-symbols: 1.0.3 - object-keys: 1.1.1 - - /object.fromentries/2.0.5: - resolution: - { - integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - dev: true - - /oboe/2.1.5: - resolution: - { - integrity: sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==, - } - dependencies: - http-https: 1.0.0 - dev: false - - /on-finished/2.4.1: - resolution: - { - integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, - } - engines: { node: ">= 0.8" } - dependencies: - ee-first: 1.1.1 - dev: false - - /once/1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, - } - dependencies: - wrappy: 1.0.2 - - /onetime/5.1.2: - resolution: - { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, - } - engines: { node: ">=6" } - dependencies: - mimic-fn: 2.1.0 - - /optionator/0.9.1: - resolution: - { - integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, - } - engines: { node: ">= 0.8.0" } - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 - dev: true - - /p-cancelable/0.3.0: - resolution: - { - integrity: sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==, - } - engines: { node: ">=4" } - dev: false - - /p-cancelable/2.1.1: - resolution: - { - integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==, - } - engines: { node: ">=8" } - dev: false - - /p-cancelable/3.0.0: - resolution: - { - integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==, - } - engines: { node: ">=12.20" } - dev: false - - /p-finally/1.0.0: - resolution: - { - integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, - } - engines: { node: ">=4" } - dev: false - - /p-limit/2.3.0: - resolution: - { - integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, - } - engines: { node: ">=6" } - dependencies: - p-try: 2.2.0 - - /p-limit/3.1.0: - resolution: - { - integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, - } - engines: { node: ">=10" } - dependencies: - yocto-queue: 0.1.0 - dev: false - optional: true - - /p-locate/4.1.0: - resolution: - { - integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, - } - engines: { node: ">=8" } - dependencies: - p-limit: 2.3.0 - - /p-locate/5.0.0: - resolution: - { - integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, - } - engines: { node: ">=10" } - dependencies: - p-limit: 3.1.0 - dev: false - optional: true - - /p-timeout/1.2.1: - resolution: - { - integrity: sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==, - } - engines: { node: ">=4" } - dependencies: - p-finally: 1.0.0 - dev: false - - /p-try/2.2.0: - resolution: - { - integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, - } - engines: { node: ">=6" } - - /pako/2.0.4: - resolution: - { - integrity: sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==, - } - dev: false - - /parent-module/1.0.1: - resolution: - { - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, - } - engines: { node: ">=6" } - dependencies: - callsites: 3.1.0 - dev: true - - /parse-asn1/5.1.6: - resolution: - { - integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==, - } - dependencies: - asn1.js: 5.4.1 - browserify-aes: 1.2.0 - evp_bytestokey: 1.0.3 - pbkdf2: 3.1.2 - safe-buffer: 5.2.1 - dev: false - - /parse-headers/2.0.5: - resolution: - { - integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==, - } - dev: false - - /parseurl/1.3.3: - resolution: - { - integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, - } - engines: { node: ">= 0.8" } - dev: false - - /path-exists/4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, - } - engines: { node: ">=8" } - - /path-is-absolute/1.0.1: - resolution: - { - integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, - } - engines: { node: ">=0.10.0" } - - /path-key/3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, - } - engines: { node: ">=8" } - - /path-parse/1.0.7: - resolution: - { - integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, - } - dev: false - - /path-to-regexp/0.1.7: - resolution: - { - integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==, - } - dev: false - - /path-type/4.0.0: - resolution: - { - integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, - } - engines: { node: ">=8" } - dev: true - - /pathval/1.1.1: - resolution: - { - integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==, - } - dev: false - - /pause-stream/0.0.11: - resolution: - { - integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==, - } - dependencies: - through: 2.3.8 - dev: false - - /pbkdf2/3.1.2: - resolution: - { - integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==, - } - engines: { node: ">=0.12" } - dependencies: - create-hash: 1.2.0 - create-hmac: 1.1.7 - ripemd160: 2.0.2 - safe-buffer: 5.2.1 - sha.js: 2.4.11 - dev: false - - /perf_hooks/0.0.1: - resolution: - { - integrity: sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw==, - } - dev: false - - /performance-now/2.1.0: - resolution: - { - integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, - } - dev: false - - /picocolors/1.0.0: - resolution: - { - integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, - } - dev: false - - /picomatch/2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, - } - engines: { node: ">=8.6" } - - /platform/1.3.6: - resolution: - { - integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==, - } - dev: false - - /postcss/8.4.16: - resolution: - { - integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==, - } - engines: { node: ^10 || ^12 || >=14 } - dependencies: - nanoid: 3.3.4 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: false - - /prebuild-install/6.1.4: - resolution: - { - integrity: sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==, - } - engines: { node: ">=6" } - hasBin: true - dependencies: - detect-libc: 1.0.3 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.6 - mkdirp-classic: 0.5.3 - napi-build-utils: 1.0.2 - node-abi: 2.30.1 - npmlog: 4.1.2 - pump: 3.0.0 - rc: 1.2.8 - simple-get: 3.1.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - dev: false - - /prelude-ls/1.2.1: - resolution: - { - integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, - } - engines: { node: ">= 0.8.0" } - dev: true - - /prepend-http/1.0.4: - resolution: - { - integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==, - } - engines: { node: ">=0.10.0" } - dev: false - - /prettier/1.19.1: - resolution: - { - integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==, - } - engines: { node: ">=4" } - hasBin: true - dev: false - - /prettier/2.7.1: - resolution: - { - integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==, - } - engines: { node: ">=10.13.0" } - hasBin: true - - /pretty-quick/3.1.3_prettier@2.7.1: - resolution: - { - integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==, - } - engines: { node: ">=10.13" } - hasBin: true - peerDependencies: - prettier: ">=2.0.0" - dependencies: - chalk: 3.0.0 - execa: 4.1.0 - find-up: 4.1.0 - ignore: 5.2.0 - mri: 1.2.0 - multimatch: 4.0.0 - prettier: 2.7.1 - dev: true - - /process-nextick-args/2.0.1: - resolution: - { - integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, - } - dev: false - - /process/0.11.10: - resolution: - { - integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, - } - engines: { node: ">= 0.6.0" } - dev: false - - /progress/2.0.3: - resolution: - { - integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==, - } - engines: { node: ">=0.4.0" } - dev: true - - /protobufjs/6.10.2: - resolution: - { - integrity: sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==, - } - hasBin: true - requiresBuild: true - dependencies: - "@protobufjs/aspromise": 1.1.2 - "@protobufjs/base64": 1.1.2 - "@protobufjs/codegen": 2.0.4 - "@protobufjs/eventemitter": 1.1.0 - "@protobufjs/fetch": 1.1.0 - "@protobufjs/float": 1.0.2 - "@protobufjs/inquire": 1.1.0 - "@protobufjs/path": 1.1.2 - "@protobufjs/pool": 1.1.0 - "@protobufjs/utf8": 1.1.0 - "@types/long": 4.0.2 - "@types/node": 13.13.52 - long: 4.0.0 - dev: false - - /protobufjs/6.11.3: - resolution: - { - integrity: sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==, - } - hasBin: true - requiresBuild: true - dependencies: - "@protobufjs/aspromise": 1.1.2 - "@protobufjs/base64": 1.1.2 - "@protobufjs/codegen": 2.0.4 - "@protobufjs/eventemitter": 1.1.0 - "@protobufjs/fetch": 1.1.0 - "@protobufjs/float": 1.0.2 - "@protobufjs/inquire": 1.1.0 - "@protobufjs/path": 1.1.2 - "@protobufjs/pool": 1.1.0 - "@protobufjs/utf8": 1.1.0 - "@types/long": 4.0.2 - "@types/node": 18.7.13 - long: 4.0.0 - dev: false - - /protobufjs/7.0.0: - resolution: - { - integrity: sha512-ffNIEm+quOcYtQvHdW406v1NQmZSuqVklxsXk076BtuFnlYZfigLU+JOMrTD8TUOyqHYbRI/fSVNvgd25YeN3w==, - } - engines: { node: ">=12.0.0" } - requiresBuild: true - dependencies: - "@protobufjs/aspromise": 1.1.2 - "@protobufjs/base64": 1.1.2 - "@protobufjs/codegen": 2.0.4 - "@protobufjs/eventemitter": 1.1.0 - "@protobufjs/fetch": 1.1.0 - "@protobufjs/float": 1.0.2 - "@protobufjs/inquire": 1.1.0 - "@protobufjs/path": 1.1.2 - "@protobufjs/pool": 1.1.0 - "@protobufjs/utf8": 1.1.0 - "@types/long": 4.0.2 - "@types/node": 18.7.13 - long: 5.2.0 - dev: false - - /proxy-addr/2.0.7: - resolution: - { - integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, - } - engines: { node: ">= 0.10" } - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - dev: false - - /ps-tree/1.2.0: - resolution: - { - integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==, - } - engines: { node: ">= 0.10" } - hasBin: true - dependencies: - event-stream: 3.3.4 - dev: false - - /psl/1.9.0: - resolution: - { - integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, - } - dev: false - - /public-encrypt/4.0.3: - resolution: - { - integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==, - } - dependencies: - bn.js: 4.12.0 - browserify-rsa: 4.1.0 - create-hash: 1.2.0 - parse-asn1: 5.1.6 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - dev: false - - /pump/3.0.0: - resolution: - { - integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, - } - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - - /punycode/2.1.0: - resolution: - { - integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==, - } - engines: { node: ">=6" } - dev: false - - /punycode/2.1.1: - resolution: - { - integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==, - } - engines: { node: ">=6" } - - /pvtsutils/1.3.2: - resolution: - { - integrity: sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==, - } - dependencies: - tslib: 2.4.0 - dev: false - - /pvutils/1.1.3: - resolution: - { - integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==, - } - engines: { node: ">=6.0.0" } - dev: false - - /qs/6.10.1: - resolution: - { - integrity: sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==, - } - engines: { node: ">=0.6" } - dependencies: - side-channel: 1.0.4 - dev: false - - /qs/6.10.3: - resolution: - { - integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==, - } - engines: { node: ">=0.6" } - dependencies: - side-channel: 1.0.4 - dev: false - - /qs/6.11.0: - resolution: - { - integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, - } - engines: { node: ">=0.6" } - dependencies: - side-channel: 1.0.4 - dev: false - - /qs/6.5.3: - resolution: - { - integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, - } - engines: { node: ">=0.6" } - dev: false - - /query-string/5.1.1: - resolution: - { - integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==, - } - engines: { node: ">=0.10.0" } - dependencies: - decode-uri-component: 0.2.0 - object-assign: 4.1.1 - strict-uri-encode: 1.1.0 - dev: false - - /query-string/6.13.5: - resolution: - { - integrity: sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==, - } - engines: { node: ">=6" } - dependencies: - decode-uri-component: 0.2.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - dev: false - - /queue-microtask/1.2.3: - resolution: - { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, - } - - /quick-lru/5.1.1: - resolution: - { - integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==, - } - engines: { node: ">=10" } - dev: false - - /randombytes/2.1.0: - resolution: - { - integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, - } - dependencies: - safe-buffer: 5.2.1 - dev: false - - /randomfill/1.0.4: - resolution: - { - integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==, - } - dependencies: - randombytes: 2.1.0 - safe-buffer: 5.2.1 - dev: false - - /range-parser/1.2.1: - resolution: - { - integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, - } - engines: { node: ">= 0.6" } - dev: false - - /raw-body/2.5.1: - resolution: - { - integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==, - } - engines: { node: ">= 0.8" } - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - dev: false - - /rc/1.2.8: - resolution: - { - integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, - } - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.6 - strip-json-comments: 2.0.1 - dev: false - - /react-native-securerandom/0.1.1: - resolution: - { - integrity: sha512-CozcCx0lpBLevxiXEb86kwLRalBCHNjiGPlw3P7Fi27U6ZLdfjOCNRHD1LtBKcvPvI3TvkBXB3GOtLvqaYJLGw==, - } - requiresBuild: true - peerDependencies: - react-native: "*" - dependencies: - base64-js: 1.5.1 - dev: false - optional: true - - /react-native-url-polyfill/1.3.0: - resolution: - { - integrity: sha512-w9JfSkvpqqlix9UjDvJjm1EjSt652zVQ6iwCIj1cVVkwXf4jQhQgTNXY6EVTwuAmUjg6BC6k9RHCBynoLFo3IQ==, - } - peerDependencies: - react-native: "*" - dependencies: - whatwg-url-without-unicode: 8.0.0-3 - dev: false - - /readable-stream/2.3.7: - resolution: - { - integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==, - } - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: false - - /readable-stream/3.6.0: - resolution: - { - integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==, - } - engines: { node: ">= 6" } - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: false - - /readdirp/3.6.0: - resolution: - { - integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, - } - engines: { node: ">=8.10.0" } - dependencies: - picomatch: 2.3.1 - dev: false - - /readonly-date/1.0.0: - resolution: - { - integrity: sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==, - } - dev: false - - /rechoir/0.6.2: - resolution: - { - integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, - } - engines: { node: ">= 0.10" } - dependencies: - resolve: 1.22.1 - dev: false - - /regenerator-runtime/0.11.1: - resolution: - { - integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==, - } - dev: false - - /regenerator-runtime/0.13.9: - resolution: - { - integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==, - } - dev: false - - /regexp.prototype.flags/1.4.3: - resolution: - { - integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, - } - engines: { node: ">= 0.4" } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - functions-have-names: 1.2.3 - - /regexpp/3.2.0: - resolution: - { - integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, - } - engines: { node: ">=8" } - dev: true - - /request/2.88.2: - resolution: - { - integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==, - } - engines: { node: ">= 6" } - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 - dependencies: - aws-sign2: 0.7.0 - aws4: 1.11.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - har-validator: 5.1.5 - http-signature: 1.2.0 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - oauth-sign: 0.9.0 - performance-now: 2.1.0 - qs: 6.5.3 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 3.4.0 - dev: false - - /require-directory/2.1.1: - resolution: - { - integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, - } - engines: { node: ">=0.10.0" } - dev: false - - /require-from-string/2.0.2: - resolution: - { - integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, - } - engines: { node: ">=0.10.0" } - - /require-main-filename/2.0.0: - resolution: - { - integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==, - } - dev: false - - /resolve-alpn/1.2.1: - resolution: - { - integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==, - } - dev: false - - /resolve-from/4.0.0: - resolution: - { - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, - } - engines: { node: ">=4" } - dev: true - - /resolve/1.22.1: - resolution: - { - integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, - } - hasBin: true - dependencies: - is-core-module: 2.10.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: false - - /responselike/2.0.1: - resolution: - { - integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==, - } - dependencies: - lowercase-keys: 2.0.0 - dev: false - - /reusify/1.0.4: - resolution: - { - integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, - } - engines: { iojs: ">=1.0.0", node: ">=0.10.0" } - - /rimraf/3.0.2: - resolution: - { - integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, - } - hasBin: true - dependencies: - glob: 7.2.3 - - /ripemd160/2.0.2: - resolution: - { - integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, - } - dependencies: - hash-base: 3.1.0 - inherits: 2.0.4 - dev: false - - /rlp/2.2.7: - resolution: - { - integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==, - } - hasBin: true - dependencies: - bn.js: 5.2.1 - dev: false - - /rollup/2.77.3: - resolution: - { - integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==, - } - engines: { node: ">=10.0.0" } - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: false - - /rpc-websockets/7.5.0: - resolution: - { - integrity: sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ==, - } - dependencies: - "@babel/runtime": 7.18.9 - eventemitter3: 4.0.7 - uuid: 8.3.2 - ws: 8.8.1_22kvxa7zeyivx4jp72v2w3pkvy - optionalDependencies: - bufferutil: 4.0.6 - utf-8-validate: 5.0.9 - dev: false - - /run-parallel/1.2.0: - resolution: - { - integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, - } - dependencies: - queue-microtask: 1.2.3 - - /rxjs/6.6.7: - resolution: - { - integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, - } - engines: { npm: ">=2.0.0" } - dependencies: - tslib: 1.14.1 - dev: false - - /rxjs/7.5.6: - resolution: - { - integrity: sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==, - } - dependencies: - tslib: 2.4.0 - dev: false - - /safe-buffer/5.1.2: - resolution: - { - integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, - } - dev: false - - /safe-buffer/5.2.1: - resolution: - { - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, - } - dev: false - - /safer-buffer/2.1.2: - resolution: - { - integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, - } - dev: false - - /scrypt-js/2.0.4: - resolution: - { - integrity: sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==, - } - dev: false - - /scrypt-js/3.0.1: - resolution: - { - integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==, - } - dev: false - - /scryptsy/2.1.0: - resolution: - { - integrity: sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==, - } - dev: false - - /secp256k1/4.0.3: - resolution: - { - integrity: sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==, - } - engines: { node: ">=10.0.0" } - requiresBuild: true - dependencies: - elliptic: 6.5.4 - node-addon-api: 2.0.2 - node-gyp-build: 4.5.0 - dev: false - - /secretjs/1.3.0-beta.25_google-protobuf@3.21.0: - resolution: - { - integrity: sha512-fHTMGtHGP7aEVBD1142xTb2k7547misrnCs+EKMZN+CCr+fl1PZdEVX4r3MjC+qRpQIMgwVVXJZr4EUNwN7u3A==, - } - dependencies: - "@cosmjs/encoding": 0.27.1 - "@cosmjs/math": 0.27.1 - "@improbable-eng/grpc-web": 0.15.0_google-protobuf@3.21.0 - "@improbable-eng/grpc-web-node-http-transport": 0.15.0_fng5pv4qmdetiqq66m6yjkaacu - "@noble/hashes": 1.0.0 - "@noble/secp256k1": 1.6.3 - "@osmonauts/helpers": 0.3.8 - bech32: 2.0.0 - bignumber.js: 9.0.2 - bip32: 2.0.6 - bip39: 3.0.4 - curve25519-js: 0.0.4 - is-gzip: 2.0.0 - miscreant: 0.3.2 - pako: 2.0.4 - protobufjs: 6.11.3 - secure-random: 1.1.2 - transitivePeerDependencies: - - google-protobuf - dev: false - - /secure-random/1.1.2: - resolution: - { - integrity: sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ==, - } - dev: false - - /semver/5.7.1: - resolution: - { - integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, - } - hasBin: true - dev: false - - /semver/7.3.2: - resolution: - { - integrity: sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==, - } - engines: { node: ">=10" } - hasBin: true - dev: false - - /semver/7.3.7: - resolution: - { - integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==, - } - engines: { node: ">=10" } - hasBin: true - dependencies: - lru-cache: 6.0.0 - - /send/0.18.0: - resolution: - { - integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==, - } - engines: { node: ">= 0.8.0" } - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: false - - /serve-static/1.15.0: - resolution: - { - integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==, - } - engines: { node: ">= 0.8.0" } - dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color - dev: false - - /servify/0.1.12: - resolution: - { - integrity: sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==, - } - engines: { node: ">=6" } - dependencies: - body-parser: 1.20.0 - cors: 2.8.5 - express: 4.18.1 - request: 2.88.2 - xhr: 2.6.0 - transitivePeerDependencies: - - supports-color - dev: false - - /set-blocking/2.0.0: - resolution: - { - integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, - } - dev: false - - /setimmediate/1.0.4: - resolution: - { - integrity: sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==, - } - dev: false - - /setimmediate/1.0.5: - resolution: - { - integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, - } - dev: false - - /setprototypeof/1.2.0: - resolution: - { - integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, - } - dev: false - - /sha.js/2.4.11: - resolution: - { - integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==, - } - hasBin: true - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: false - - /shebang-command/2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, - } - engines: { node: ">=8" } - dependencies: - shebang-regex: 3.0.0 - - /shebang-regex/3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, - } - engines: { node: ">=8" } - - /shelljs/0.8.5: - resolution: - { - integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, - } - engines: { node: ">=4" } - hasBin: true - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - dev: false - - /shiki/0.10.1: - resolution: - { - integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==, - } - dependencies: - jsonc-parser: 3.1.0 - vscode-oniguruma: 1.6.2 - vscode-textmate: 5.2.0 - dev: true - - /side-channel/1.0.4: - resolution: - { - integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, - } - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.1.2 - object-inspect: 1.12.2 - - /signal-exit/3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, - } - - /simple-cbor/0.4.1: - resolution: - { - integrity: sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==, - } - dev: false - - /simple-concat/1.0.1: - resolution: - { - integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==, - } - dev: false - - /simple-get/2.8.2: - resolution: - { - integrity: sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==, - } - dependencies: - decompress-response: 3.3.0 - once: 1.4.0 - simple-concat: 1.0.1 - dev: false - - /simple-get/3.1.1: - resolution: - { - integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==, - } - dependencies: - decompress-response: 4.2.1 - once: 1.4.0 - simple-concat: 1.0.1 - dev: false - - /slash/3.0.0: - resolution: - { - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, - } - engines: { node: ">=8" } - dev: true - - /slice-ansi/4.0.0: - resolution: - { - integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, - } - engines: { node: ">=10" } - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - - /snake-case/3.0.4: - resolution: - { - integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==, - } - dependencies: - dot-case: 3.0.4 - tslib: 2.4.0 - dev: false - - /socket.io-client/4.5.1: - resolution: - { - integrity: sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==, - } - engines: { node: ">=10.0.0" } - dependencies: - "@socket.io/component-emitter": 3.1.0 - debug: 4.3.4 - engine.io-client: 6.2.2 - socket.io-parser: 4.2.1 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - - /socket.io-parser/4.2.1: - resolution: - { - integrity: sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==, - } - engines: { node: ">=10.0.0" } - dependencies: - "@socket.io/component-emitter": 3.1.0 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - - /source-map-js/1.0.2: - resolution: - { - integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, - } - engines: { node: ">=0.10.0" } - dev: false - - /split-on-first/1.1.0: - resolution: - { - integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==, - } - engines: { node: ">=6" } - dev: false - - /split/0.3.3: - resolution: - { - integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==, - } - dependencies: - through: 2.3.8 - dev: false - - /sprintf-js/1.0.3: - resolution: - { - integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, - } - dev: true - - /sshpk/1.17.0: - resolution: - { - integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==, - } - engines: { node: ">=0.10.0" } - hasBin: true - dependencies: - asn1: 0.2.6 - assert-plus: 1.0.0 - bcrypt-pbkdf: 1.0.2 - dashdash: 1.14.1 - ecc-jsbn: 0.1.2 - getpass: 0.1.7 - jsbn: 0.1.1 - safer-buffer: 2.1.2 - tweetnacl: 0.14.5 - dev: false - - /start-server-and-test/1.14.0: - resolution: - { - integrity: sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw==, - } - engines: { node: ">=6" } - hasBin: true - dependencies: - bluebird: 3.7.2 - check-more-types: 2.24.0 - debug: 4.3.2 - execa: 5.1.1 - lazy-ass: 1.6.0 - ps-tree: 1.2.0 - wait-on: 6.0.0_debug@4.3.2 - transitivePeerDependencies: - - supports-color - dev: false - - /statuses/1.5.0: - resolution: - { - integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, - } - engines: { node: ">= 0.6" } - dev: false - - /statuses/2.0.1: - resolution: - { - integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, - } - engines: { node: ">= 0.8" } - dev: false - - /str2buf/1.3.0: - resolution: - { - integrity: sha512-xIBmHIUHYZDP4HyoXGHYNVmxlXLXDrtFHYT0eV6IOdEj3VO9ccaF1Ejl9Oq8iFjITllpT8FhaXb4KsNmw+3EuA==, - } - dev: false - - /stream-combiner/0.0.4: - resolution: - { - integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==, - } - dependencies: - duplexer: 0.1.2 - dev: false - - /strict-uri-encode/1.1.0: - resolution: - { - integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==, - } - engines: { node: ">=0.10.0" } - dev: false - - /strict-uri-encode/2.0.0: - resolution: - { - integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==, - } - engines: { node: ">=4" } - dev: false - - /string-width/1.0.2: - resolution: - { - integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==, - } - engines: { node: ">=0.10.0" } - dependencies: - code-point-at: 1.1.0 - is-fullwidth-code-point: 1.0.0 - strip-ansi: 3.0.1 - dev: false - - /string-width/4.2.3: - resolution: - { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, - } - engines: { node: ">=8" } - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - /string.prototype.trimend/1.0.5: - resolution: - { - integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==, - } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - - /string.prototype.trimstart/1.0.5: - resolution: - { - integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==, - } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - - /string_decoder/1.1.1: - resolution: - { - integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, - } - dependencies: - safe-buffer: 5.1.2 - dev: false - - /string_decoder/1.3.0: - resolution: - { - integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, - } - dependencies: - safe-buffer: 5.2.1 - dev: false - - /strip-ansi/3.0.1: - resolution: - { - integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, - } - engines: { node: ">=0.10.0" } - dependencies: - ansi-regex: 2.1.1 - dev: false - - /strip-ansi/6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, - } - engines: { node: ">=8" } - dependencies: - ansi-regex: 5.0.1 - - /strip-final-newline/2.0.0: - resolution: - { - integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, - } - engines: { node: ">=6" } - - /strip-hex-prefix/1.0.0: - resolution: - { - integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==, - } - engines: { node: ">=6.5.0", npm: ">=3" } - dependencies: - is-hex-prefixed: 1.0.0 - dev: false - - /strip-json-comments/2.0.1: - resolution: - { - integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, - } - engines: { node: ">=0.10.0" } - dev: false - - /strip-json-comments/3.1.1: - resolution: - { - integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, - } - engines: { node: ">=8" } - dev: true - - /superagent/6.1.0: - resolution: - { - integrity: sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==, - } - engines: { node: ">= 7.0.0" } - deprecated: Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at . - dependencies: - component-emitter: 1.3.0 - cookiejar: 2.1.3 - debug: 4.3.4 - fast-safe-stringify: 2.1.1 - form-data: 3.0.1 - formidable: 1.2.6 - methods: 1.1.2 - mime: 2.6.0 - qs: 6.11.0 - readable-stream: 3.6.0 - semver: 7.3.7 - transitivePeerDependencies: - - supports-color - dev: false - - /superstruct/0.14.2: - resolution: - { - integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==, - } - dev: false - - /superstruct/0.15.5: - resolution: - { - integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==, - } - dev: false - - /supports-color/5.5.0: - resolution: - { - integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, - } - engines: { node: ">=4" } - dependencies: - has-flag: 3.0.0 - - /supports-color/7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, - } - engines: { node: ">=8" } - dependencies: - has-flag: 4.0.0 - - /supports-preserve-symlinks-flag/1.0.0: - resolution: - { - integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, - } - engines: { node: ">= 0.4" } - dev: false - - /swarm-js/0.1.40: - resolution: - { - integrity: sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==, - } - dependencies: - bluebird: 3.7.2 - buffer: 5.7.1 - eth-lib: 0.1.29 - fs-extra: 4.0.3 - got: 7.1.0 - mime-types: 2.1.35 - mkdirp-promise: 5.0.1 - mock-fs: 4.14.0 - setimmediate: 1.0.5 - tar: 4.4.19 - xhr-request: 1.1.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - - /table/6.8.0: - resolution: - { - integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==, - } - engines: { node: ">=10.0.0" } - dependencies: - ajv: 8.11.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - /tar-fs/2.1.1: - resolution: - { - integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==, - } - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 2.2.0 - dev: false - - /tar-stream/2.2.0: - resolution: - { - integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, - } - engines: { node: ">=6" } - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: false - - /tar/4.4.19: - resolution: - { - integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==, - } - engines: { node: ">=4.5" } - dependencies: - chownr: 1.1.4 - fs-minipass: 1.2.7 - minipass: 2.9.0 - minizlib: 1.3.3 - mkdirp: 0.5.6 - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: false - - /text-encoding-utf-8/1.0.2: - resolution: - { - integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==, - } - dev: false - - /text-table/0.2.0: - resolution: - { - integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, - } - dev: true - - /thor-devkit/2.0.5: - resolution: - { - integrity: sha512-82Z0/sY0+S54bhmg57r7iqoK7sJB1F5md3zWXjXXGPin3ejsR0Whw1O9wzWvE0DkTp1EiPHWFMTPtOejxaiXeA==, - } - dependencies: - "@vechain/ethers": 4.0.27-5 - bignumber.js: 7.2.1 - blakejs: 1.2.1 - elliptic: 6.5.4 - fast-json-stable-stringify: 2.1.0 - js-sha3: 0.5.7 - rlp: 2.2.7 - dev: false - - /through/2.3.8: - resolution: - { - integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, - } - dev: false - - /timed-out/4.0.1: - resolution: - { - integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==, - } - engines: { node: ">=0.10.0" } - dev: false - - /tiny-secp256k1/1.1.6: - resolution: - { - integrity: sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==, - } - engines: { node: ">=6.0.0" } - requiresBuild: true - dependencies: - bindings: 1.5.0 - bn.js: 4.12.0 - create-hmac: 1.1.7 - elliptic: 6.5.4 - nan: 2.16.0 - dev: false - - /tinypool/0.2.4: - resolution: - { - integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==, - } - engines: { node: ">=14.0.0" } - dev: false - - /tinyspy/1.0.2: - resolution: - { - integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==, - } - engines: { node: ">=14.0.0" } - dev: false - - /to-regex-range/5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, - } - engines: { node: ">=8.0" } - dependencies: - is-number: 7.0.0 - - /toidentifier/1.0.1: - resolution: - { - integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, - } - engines: { node: ">=0.6" } - dev: false - - /toml/3.0.0: - resolution: - { - integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, - } - dev: false - - /tonweb-mnemonic/1.0.1: - resolution: - { - integrity: sha512-YQAEXQHBHb0dnNy50bwIutXwyWa6Den7+cLcXWoG7ZClcqo4bjALOr6tnIqI+hs5jab+AGSsRjilxcp8ao/CpA==, - } - engines: { node: ">=15" } - dependencies: - tweetnacl: 1.0.3 - dev: false - - /tonweb/0.0.43: - resolution: - { - integrity: sha512-wed71NUHymDNVeGFIaMVTj658CXnbr9iafLpKRk4LyvZ17FU2fIBja7m1Uc+oD/+Gf6n0Zqbhsf0b69jF/41Hw==, - } - dependencies: - "@ledgerhq/hw-transport-web-ble": 5.48.0 - "@ledgerhq/hw-transport-webhid": 5.48.0 - "@ledgerhq/hw-transport-webusb": 5.48.0 - bn.js: 5.1.1 - ethjs-unit: 0.1.6 - isomorphic-webcrypto: 2.3.8 - node-fetch: 2.6.7 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - encoding - - expo - - react-native - dev: false - - /tough-cookie/2.5.0: - resolution: - { - integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==, - } - engines: { node: ">=0.8" } - dependencies: - psl: 1.9.0 - punycode: 2.1.1 - dev: false - - /tr46/0.0.3: - resolution: - { - integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, - } - dev: false - - /tronstation/1.0.1: - resolution: - { - integrity: sha512-iuHjDHw/63ID5pj2PESeGLl7n7IAG6yunupKfOA2l5ekaWhZo6RSscmdwSIqBEdnXFh7Jmd2HJIzowyMFt+/zQ==, - } - dependencies: - "@babel/runtime": 7.18.9 - babel-runtime: 6.26.0 - dev: false - - /tronweb/4.3.0: - resolution: - { - integrity: sha512-U+s+NBGOg+zfiXeO2kaljJCClg8y8v0McIdO3aAN3/UujDJHou6d6XVPaiMnli4ynE0XC4JHSUM+5KcYos+DiQ==, - } - dependencies: - "@babel/runtime": 7.18.9 - axios: 0.26.1 - bignumber.js: 9.0.2 - elliptic: 6.5.4 - ethers: 5.7.0 - eventemitter3: 3.1.2 - injectpromise: 1.0.0 - lodash: 4.17.21 - semver: 5.7.1 - validator: 13.7.0 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - dev: false - - /ts-node/10.9.1_57uwcby55h6tzvkj3v5sfcgxoe: - resolution: - { - integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, - } - hasBin: true - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - dependencies: - "@cspotcode/source-map-support": 0.8.1 - "@tsconfig/node10": 1.0.9 - "@tsconfig/node12": 1.0.11 - "@tsconfig/node14": 1.0.3 - "@tsconfig/node16": 1.0.3 - "@types/node": 18.7.13 - acorn: 8.8.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.7.4 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: false - - /tslib/1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, - } - - /tslib/2.4.0: - resolution: - { - integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==, - } - dev: false - - /tsutils/3.21.0_typescript@4.7.4: - resolution: - { - integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, - } - engines: { node: ">= 6" } - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - dependencies: - tslib: 1.14.1 - typescript: 4.7.4 - dev: true - - /tunnel-agent/0.6.0: - resolution: - { - integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, - } - dependencies: - safe-buffer: 5.2.1 - dev: false - - /tweetnacl/0.14.5: - resolution: - { - integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==, - } - dev: false - - /tweetnacl/1.0.3: - resolution: - { - integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==, - } - dev: false - - /type-check/0.4.0: - resolution: - { - integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, - } - engines: { node: ">= 0.8.0" } - dependencies: - prelude-ls: 1.2.1 - dev: true - - /type-detect/4.0.8: - resolution: - { - integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, - } - engines: { node: ">=4" } - dev: false - - /type-fest/0.20.2: - resolution: - { - integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, - } - engines: { node: ">=10" } - dev: true - - /type-is/1.6.18: - resolution: - { - integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, - } - engines: { node: ">= 0.6" } - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - dev: false - - /type/1.2.0: - resolution: - { - integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==, - } - dev: false - - /type/2.7.2: - resolution: - { - integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==, - } - dev: false - - /typedarray-to-buffer/3.1.5: - resolution: - { - integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==, - } - dependencies: - is-typedarray: 1.0.0 - dev: false - - /typedarray-to-buffer/4.0.0: - resolution: - { - integrity: sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ==, - } - dev: false - - /typedoc/0.22.18_typescript@4.7.4: - resolution: - { - integrity: sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA==, - } - engines: { node: ">= 12.10.0" } - hasBin: true - peerDependencies: - typescript: 4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x || 4.7.x - dependencies: - glob: 8.0.3 - lunr: 2.3.9 - marked: 4.0.19 - minimatch: 5.1.0 - shiki: 0.10.1 - typescript: 4.7.4 - dev: true - - /typeforce/1.18.0: - resolution: - { - integrity: sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==, - } - dev: false - - /typescript-compiler/1.4.1-2: - resolution: - { - integrity: sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg==, - } - dev: false - - /typescript/4.4.4: - resolution: - { - integrity: sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==, - } - engines: { node: ">=4.2.0" } - hasBin: true - dev: false - - /typescript/4.7.4: - resolution: - { - integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==, - } - engines: { node: ">=4.2.0" } - hasBin: true - - /u2f-api/0.2.7: - resolution: - { - integrity: sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==, - } - dev: false - - /u3/0.1.1: - resolution: - { - integrity: sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==, - } - dev: false - - /ultron/1.1.1: - resolution: - { - integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==, - } - dev: false - - /unbox-primitive/1.0.2: - resolution: - { - integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, - } - dependencies: - call-bind: 1.0.2 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - - /universal-user-agent/6.0.0: - resolution: - { - integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==, - } - dev: false - - /universalify/0.1.2: - resolution: - { - integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, - } - engines: { node: ">= 4.0.0" } - dev: false - - /universalify/2.0.0: - resolution: - { - integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, - } - engines: { node: ">= 10.0.0" } - dev: false - optional: true - - /unpipe/1.0.0: - resolution: - { - integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, - } - engines: { node: ">= 0.8" } - dev: false - - /uri-js/4.4.1: - resolution: - { - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, - } - dependencies: - punycode: 2.1.1 - - /url-parse-lax/1.0.0: - resolution: - { - integrity: sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==, - } - engines: { node: ">=0.10.0" } - dependencies: - prepend-http: 1.0.4 - dev: false - - /url-set-query/1.0.0: - resolution: - { - integrity: sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==, - } - dev: false - - /url-to-options/1.0.1: - resolution: - { - integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==, - } - engines: { node: ">= 4" } - dev: false - - /usb/1.9.2: - resolution: - { - integrity: sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==, - } - engines: { node: ">=10.16.0" } - requiresBuild: true - dependencies: - node-addon-api: 4.3.0 - node-gyp-build: 4.5.0 - dev: false - - /utf-8-validate/5.0.9: - resolution: - { - integrity: sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==, - } - engines: { node: ">=6.14.2" } - requiresBuild: true - dependencies: - node-gyp-build: 4.5.0 - dev: false - - /utf8/3.0.0: - resolution: - { - integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==, - } - dev: false - - /util-deprecate/1.0.2: - resolution: - { - integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, - } - dev: false - - /util/0.12.4: - resolution: - { - integrity: sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==, - } - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.9 - safe-buffer: 5.2.1 - which-typed-array: 1.1.8 - dev: false - - /utils-merge/1.0.1: - resolution: - { - integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, - } - engines: { node: ">= 0.4.0" } - dev: false - - /uuid/2.0.1: - resolution: - { - integrity: sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==, - } - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - dev: false - - /uuid/3.3.2: - resolution: - { - integrity: sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==, - } - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: false - - /uuid/3.4.0: - resolution: - { - integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==, - } - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: false - - /uuid/8.3.2: - resolution: - { - integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, - } - hasBin: true - dev: false - - /v8-compile-cache-lib/3.0.1: - resolution: - { - integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, - } - dev: false - - /v8-compile-cache/2.3.0: - resolution: - { - integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==, - } - dev: true - - /validator-ts/0.9.1: - resolution: - { - integrity: sha512-3PCL0AzKWvG/4Y12zUgk6OVup9zQ3vXGzqUIZ69GnSapIV9lgr9VCLFReUgTe04vY6Fm4WzAL7a1HdIVyWRw8Q==, - } - dev: false - - /validator/13.7.0: - resolution: - { - integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==, - } - engines: { node: ">= 0.10" } - dev: false - - /varint/5.0.2: - resolution: - { - integrity: sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==, - } - dev: false - - /vary/1.1.2: - resolution: - { - integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, - } - engines: { node: ">= 0.8" } - dev: false - - /verror/1.10.0: - resolution: - { - integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==, - } - engines: { "0": node >=0.6.0 } - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.3.0 - dev: false - - /vite/3.0.9: - resolution: - { - integrity: sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==, - } - engines: { node: ^14.18.0 || >=16.0.0 } - hasBin: true - peerDependencies: - less: "*" - sass: "*" - stylus: "*" - terser: ^5.4.0 - peerDependenciesMeta: - less: - optional: true - sass: - optional: true - stylus: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.14.54 - postcss: 8.4.16 - resolve: 1.22.1 - rollup: 2.77.3 - optionalDependencies: - fsevents: 2.3.2 - dev: false - - /vitest/0.18.1: - resolution: - { - integrity: sha512-4F/1K/Vn4AvJwe7i2YblR02PT5vMKcw9KN4unDq2KD0YcSxX0B/6D6Qu9PJaXwVuxXMFTQ5ovd4+CQaW3bwofA==, - } - engines: { node: ">=v14.16.0" } - hasBin: true - peerDependencies: - "@edge-runtime/vm": "*" - "@vitest/ui": "*" - c8: "*" - happy-dom: "*" - jsdom: "*" - peerDependenciesMeta: - "@edge-runtime/vm": - optional: true - "@vitest/ui": - optional: true - c8: - optional: true - happy-dom: - optional: true - jsdom: - optional: true - dependencies: - "@types/chai": 4.3.3 - "@types/chai-subset": 1.3.3 - "@types/node": 18.7.13 - chai: 4.3.6 - debug: 4.3.4 - local-pkg: 0.4.2 - tinypool: 0.2.4 - tinyspy: 1.0.2 - vite: 3.0.9 - transitivePeerDependencies: - - less - - sass - - stylus - - supports-color - - terser - dev: false - - /vlq/2.0.4: - resolution: - { - integrity: sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==, - } - dev: false - - /vscode-oniguruma/1.6.2: - resolution: - { - integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==, - } - dev: true - - /vscode-textmate/5.2.0: - resolution: - { - integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==, - } - dev: true - - /wait-on/6.0.0_debug@4.3.2: - resolution: - { - integrity: sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==, - } - engines: { node: ">=10.0.0" } - hasBin: true - dependencies: - axios: 0.21.4_debug@4.3.2 - joi: 17.6.0 - lodash: 4.17.21 - minimist: 1.2.6 - rxjs: 7.5.6 - transitivePeerDependencies: - - debug - dev: false - - /web3-bzz/1.7.5: - resolution: - { - integrity: sha512-Z53sY0YK/losqjJncmL4vP0zZI9r6tiXg6o7R6e1JD2Iy7FH3serQvU+qXmPjqEBzsnhf8wTG+YcBPB3RHpr0Q==, - } - engines: { node: ">=8.0.0" } - requiresBuild: true - dependencies: - "@types/node": 12.20.55 - got: 12.1.0 - swarm-js: 0.1.40 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - - /web3-core-helpers/1.7.5: - resolution: - { - integrity: sha512-lDDjTks6Q6aNUO87RYrY2xub3UWTKr/RIWxpHJODEqkLxZS1dWdyliJ6aIx3031VQwsNT5HE7NvABe/t0p3iDQ==, - } - engines: { node: ">=8.0.0" } - dependencies: - web3-eth-iban: 1.7.5 - web3-utils: 1.7.5 - dev: false - - /web3-core-method/1.7.5: - resolution: - { - integrity: sha512-ApTvq1Llzlbxmy0n4L7QaE6NodIsR80VJqk8qN4kLg30SGznt/pNJFebryLI2kpyDmxSgj1TjEWzmHJBp6FhYg==, - } - engines: { node: ">=8.0.0" } - dependencies: - "@ethersproject/transactions": 5.7.0 - web3-core-helpers: 1.7.5 - web3-core-promievent: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-utils: 1.7.5 - dev: false - - /web3-core-promievent/1.7.5: - resolution: - { - integrity: sha512-uZ1VRErVuhiLtHlyt3oEH/JSvAf6bWPndChHR9PG7i1Zfqm6ZVCeM91ICTPmiL8ddsGQOxASpnJk4vhApcTIww==, - } - engines: { node: ">=8.0.0" } - dependencies: - eventemitter3: 4.0.4 - dev: false - - /web3-core-requestmanager/1.7.5: - resolution: - { - integrity: sha512-3KpfxW/wVH4mgwWEsSJGHKrtRVoijWlDxtUrm17xgtqRNZ2mFolifKnHAUKa0fY48C9CrxmcCiMIi3W4G6WYRw==, - } - engines: { node: ">=8.0.0" } - dependencies: - util: 0.12.4 - web3-core-helpers: 1.7.5 - web3-providers-http: 1.7.5 - web3-providers-ipc: 1.7.5 - web3-providers-ws: 1.7.5 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /web3-core-subscriptions/1.7.5: - resolution: - { - integrity: sha512-YK6utQ7Wwjbe4XZOIA8quWGBPi1lFDS1A+jQYwxKKrCvm6BloBNc3FhvrcSYlDhLe/kOy8+2Je8i9amndgT4ww==, - } - engines: { node: ">=8.0.0" } - dependencies: - eventemitter3: 4.0.4 - web3-core-helpers: 1.7.5 - dev: false - - /web3-core/1.7.5: - resolution: - { - integrity: sha512-UgOWXZr1fR/3cUQJKWbfMwRxj1/N7o6RSd/dHqdXBlOD+62EjNZItFmLRg5veq5kp9YfXzrNw9bnDkXfsL+nKQ==, - } - engines: { node: ">=8.0.0" } - dependencies: - "@types/bn.js": 5.1.0 - "@types/node": 12.20.55 - bignumber.js: 9.1.0 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-core-requestmanager: 1.7.5 - web3-utils: 1.7.5 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /web3-eth-abi/1.7.5: - resolution: - { - integrity: sha512-qWHvF7sayxql9BD1yqK9sZRLBQ66eJzGeaU53Y1PRq2iFPrhY6NUWxQ3c3ps0rg+dyObvRbloviWpKXcS4RE/A==, - } - engines: { node: ">=8.0.0" } - dependencies: - "@ethersproject/abi": 5.7.0 - web3-utils: 1.7.5 - dev: false - - /web3-eth-accounts/1.7.5: - resolution: - { - integrity: sha512-AzMLoTj3RGwKpyp3x3TtHrEeU4VpR99iMOD6NKrWSDumS6QEi0lCo+y7QZhdTlINw3iIA3SFIdvbAOO4NCHSDg==, - } - engines: { node: ">=8.0.0" } - dependencies: - "@ethereumjs/common": 2.6.5 - "@ethereumjs/tx": 3.5.2 - crypto-browserify: 3.12.0 - eth-lib: 0.2.8 - ethereumjs-util: 7.1.5 - scrypt-js: 3.0.1 - uuid: 3.3.2 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-utils: 1.7.5 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /web3-eth-contract/1.7.5: - resolution: - { - integrity: sha512-qab7NPJRKRlTs58ozsqK8YIEwWpxIm3vD/okSIKBGkFx5gIHWW+vGmMh5PDSfefLJM9rCd+T+Lc0LYvtME7uqg==, - } - engines: { node: ">=8.0.0" } - dependencies: - "@types/bn.js": 5.1.0 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-core-promievent: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-eth-abi: 1.7.5 - web3-utils: 1.7.5 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /web3-eth-ens/1.7.5: - resolution: - { - integrity: sha512-k1Q0msdRv/wac2egpZBIwG3n/sa/KdrVmVJvFm471gLTL4xfUizV5qJjkDVf+ikf9JyDvWJTs5eWNUUbOFIw/A==, - } - engines: { node: ">=8.0.0" } - dependencies: - content-hash: 2.5.2 - eth-ens-namehash: 2.0.8 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-promievent: 1.7.5 - web3-eth-abi: 1.7.5 - web3-eth-contract: 1.7.5 - web3-utils: 1.7.5 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /web3-eth-iban/1.7.5: - resolution: - { - integrity: sha512-mn2W5t/1IpL8OZvzAabLKT4kvwRnZSJ9K0tctndl9sDNWkfITYQibEEhUaNNA50Q5fJKgVudHI/m0gwIVTyG8Q==, - } - engines: { node: ">=8.0.0" } - dependencies: - bn.js: 5.2.1 - web3-utils: 1.7.5 - dev: false - - /web3-eth-personal/1.7.5: - resolution: - { - integrity: sha512-txh2P/eN8I4AOUKFi9++KKddoD0tWfCuu9Y1Kc41jSRbk6smO88Fum0KWNmYFYhSCX2qiknS1DfqsONl3igoKQ==, - } - engines: { node: ">=8.0.0" } - dependencies: - "@types/node": 12.20.55 - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-net: 1.7.5 - web3-utils: 1.7.5 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /web3-eth/1.7.5: - resolution: - { - integrity: sha512-BucjvqZyDWYkGlsFX+OnOBub0YutlC1KZiNGibdmvtNX0NQK+8iw1uzAoL9yTTwCSszL7lnkFe8N+HCOl9B4Dw==, - } - engines: { node: ">=8.0.0" } - dependencies: - web3-core: 1.7.5 - web3-core-helpers: 1.7.5 - web3-core-method: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-eth-abi: 1.7.5 - web3-eth-accounts: 1.7.5 - web3-eth-contract: 1.7.5 - web3-eth-ens: 1.7.5 - web3-eth-iban: 1.7.5 - web3-eth-personal: 1.7.5 - web3-net: 1.7.5 - web3-utils: 1.7.5 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /web3-net/1.7.5: - resolution: - { - integrity: sha512-xwuCb2YWw49PmW81AJQ/G+Xi2ikRsYyZXSgyPt4LmZuKjiqg/6kSdK8lZvUi3Pi3wM+QDBXbpr73M/WEkW0KvA==, - } - engines: { node: ">=8.0.0" } - dependencies: - web3-core: 1.7.5 - web3-core-method: 1.7.5 - web3-utils: 1.7.5 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /web3-providers-connex/0.3.1: - resolution: - { - integrity: sha512-0jnPkPszyHA9nlvB1hJ+FDT8pLixF7GzmZm0gB/j1UonuYYuYD3VtNgQ2+N4jDkkFuRd3H/sZRR+Piq0tV8aig==, - } - dependencies: - "@vechain/connex-driver": 2.0.10 - "@vechain/connex-types": 2.0.2 - ethers: 5.7.0 - eventemitter3: 4.0.7 - thor-devkit: 2.0.5 - web3: 1.7.5 - transitivePeerDependencies: - - bufferutil - - debug - - encoding - - supports-color - - utf-8-validate - dev: false - - /web3-providers-http/1.7.5: - resolution: - { - integrity: sha512-vPgr4Kzy0M3CHtoP/Bh7qwK/D9h2fhjpoqctdMWVJseOfeTgfOphCKN0uwV8w2VpZgDPXA8aeTdBx5OjmDdStA==, - } - engines: { node: ">=8.0.0" } - dependencies: - abortcontroller-polyfill: 1.7.3 - cross-fetch: 3.1.5 - es6-promise: 4.2.8 - web3-core-helpers: 1.7.5 - transitivePeerDependencies: - - encoding - dev: false - - /web3-providers-ipc/1.7.5: - resolution: - { - integrity: sha512-aNHx+RAROzO+apDEzy8Zncj78iqWBadIXtpmFDg7uiTn8i+oO+IcP1Yni7jyzkltsysVJHgHWG4kPx50ANCK3Q==, - } - engines: { node: ">=8.0.0" } - dependencies: - oboe: 2.1.5 - web3-core-helpers: 1.7.5 - dev: false - - /web3-providers-ws/1.7.5: - resolution: - { - integrity: sha512-9uJNVVkIGC8PmM9kNbgPth56HDMSSsxZh3ZEENdwO3LNWemaADiQYUDCsD/dMVkn0xsGLHP5dgAy4Q5msqySLg==, - } - engines: { node: ">=8.0.0" } - dependencies: - eventemitter3: 4.0.4 - web3-core-helpers: 1.7.5 - websocket: 1.0.34 - transitivePeerDependencies: - - supports-color - dev: false - - /web3-shh/1.7.5: - resolution: - { - integrity: sha512-aCIWJyLMH5H76OybU4ZpUCJ93yNOPATGhJ+KboRPU8QZDzS2CcVhtEzyl27bbvw+rSnVroMLqBgTXBB4mmKI7A==, - } - engines: { node: ">=8.0.0" } - requiresBuild: true - dependencies: - web3-core: 1.7.5 - web3-core-method: 1.7.5 - web3-core-subscriptions: 1.7.5 - web3-net: 1.7.5 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /web3-utils/1.7.5: - resolution: - { - integrity: sha512-9AqNOziQky4wNQadEwEfHiBdOZqopIHzQQVzmvvv6fJwDSMhP+khqmAZC7YTiGjs0MboyZ8tWNivqSO1699XQw==, - } - engines: { node: ">=8.0.0" } - dependencies: - bn.js: 5.2.1 - ethereum-bloom-filters: 1.0.10 - ethereumjs-util: 7.1.5 - ethjs-unit: 0.1.6 - number-to-bn: 1.7.0 - randombytes: 2.1.0 - utf8: 3.0.0 - dev: false - - /web3/1.7.5: - resolution: - { - integrity: sha512-3jHZTWyXt975AOXgnZKayiSWDLpoSKk9fZtLk1hURQtt7AdSbXPT8AK9ooBCm0Dt3GYaOeNcHGaiHC3gtyqhLg==, - } - engines: { node: ">=8.0.0" } - requiresBuild: true - dependencies: - web3-bzz: 1.7.5 - web3-core: 1.7.5 - web3-eth: 1.7.5 - web3-eth-personal: 1.7.5 - web3-net: 1.7.5 - web3-shh: 1.7.5 - web3-utils: 1.7.5 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - dev: false - - /webcrypto-core/1.7.5: - resolution: - { - integrity: sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==, - } - dependencies: - "@peculiar/asn1-schema": 2.3.0 - "@peculiar/json-schema": 1.1.12 - asn1js: 3.0.5 - pvtsutils: 1.3.2 - tslib: 2.4.0 - dev: false - - /webcrypto-shim/0.1.7: - resolution: - { - integrity: sha512-JAvAQR5mRNRxZW2jKigWMjCMkjSdmP5cColRP1U/pTg69VgHXEi1orv5vVpJ55Zc5MIaPc1aaurzd9pjv2bveg==, - } - dev: false - - /webidl-conversions/3.0.1: - resolution: - { - integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, - } - dev: false - - /webidl-conversions/5.0.0: - resolution: - { - integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==, - } - engines: { node: ">=8" } - dev: false - - /websocket/1.0.34: - resolution: - { - integrity: sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==, - } - engines: { node: ">=4.0.0" } - dependencies: - bufferutil: 4.0.6 - debug: 2.6.9 - es5-ext: 0.10.62 - typedarray-to-buffer: 3.1.5 - utf-8-validate: 5.0.9 - yaeti: 0.0.6 - transitivePeerDependencies: - - supports-color - dev: false - - /whatwg-url-without-unicode/8.0.0-3: - resolution: - { - integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==, - } - engines: { node: ">=10" } - dependencies: - buffer: 5.7.1 - punycode: 2.1.1 - webidl-conversions: 5.0.0 - dev: false - - /whatwg-url/5.0.0: - resolution: - { - integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, - } - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - dev: false - - /which-boxed-primitive/1.0.2: - resolution: - { - integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, - } - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - - /which-module/2.0.0: - resolution: - { - integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==, - } - dev: false - - /which-typed-array/1.1.8: - resolution: - { - integrity: sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==, - } - engines: { node: ">= 0.4" } - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-abstract: 1.20.1 - for-each: 0.3.3 - has-tostringtag: 1.0.0 - is-typed-array: 1.1.9 - dev: false - - /which/2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, - } - engines: { node: ">= 8" } - hasBin: true - dependencies: - isexe: 2.0.0 - - /wide-align/1.1.5: - resolution: - { - integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==, - } - dependencies: - string-width: 1.0.2 - dev: false - - /wif/2.0.6: - resolution: - { - integrity: sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==, - } - dependencies: - bs58check: 2.1.2 - dev: false - - /word-wrap/1.2.3: - resolution: - { - integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, - } - engines: { node: ">=0.10.0" } - dev: true - - /wrap-ansi/6.2.0: - resolution: - { - integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, - } - engines: { node: ">=8" } - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: false - - /wrap-ansi/7.0.0: - resolution: - { - integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, - } - engines: { node: ">=10" } - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: false - - /wrappy/1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, - } - - /ws/3.3.3: - resolution: - { - integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==, - } - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dependencies: - async-limiter: 1.0.1 - safe-buffer: 5.1.2 - ultron: 1.1.1 - dev: false - - /ws/7.4.6: - resolution: - { - integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==, - } - engines: { node: ">=8.3.0" } - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - - /ws/7.5.3: - resolution: - { - integrity: sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==, - } - engines: { node: ">=8.3.0" } - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - - /ws/7.5.9: - resolution: - { - integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, - } - engines: { node: ">=8.3.0" } - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - - /ws/8.2.3: - resolution: - { - integrity: sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==, - } - engines: { node: ">=10.0.0" } - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - - /ws/8.8.1_22kvxa7zeyivx4jp72v2w3pkvy: - resolution: - { - integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==, - } - engines: { node: ">=10.0.0" } - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dependencies: - bufferutil: 4.0.6 - utf-8-validate: 5.0.9 - dev: false - - /xhr-request-promise/0.1.3: - resolution: - { - integrity: sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==, - } - dependencies: - xhr-request: 1.1.0 - dev: false - - /xhr-request/1.1.0: - resolution: - { - integrity: sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==, - } - dependencies: - buffer-to-arraybuffer: 0.0.5 - object-assign: 4.1.1 - query-string: 5.1.1 - simple-get: 2.8.2 - timed-out: 4.0.1 - url-set-query: 1.0.0 - xhr: 2.6.0 - dev: false - - /xhr/2.6.0: - resolution: - { - integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==, - } - dependencies: - global: 4.4.0 - is-function: 1.0.2 - parse-headers: 2.0.5 - xtend: 4.0.2 - dev: false - - /xmlhttprequest-ssl/2.0.0: - resolution: - { - integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==, - } - engines: { node: ">=0.4.0" } - dev: false - - /xmlhttprequest/1.8.0: - resolution: - { - integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==, - } - engines: { node: ">=0.4.0" } - dev: false - - /xtend/4.0.2: - resolution: - { - integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, - } - engines: { node: ">=0.4" } - dev: false - - /y18n/4.0.3: - resolution: - { - integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, - } - dev: false - - /y18n/5.0.8: - resolution: - { - integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, - } - engines: { node: ">=10" } - dev: false - - /yaeti/0.0.6: - resolution: - { - integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==, - } - engines: { node: ">=0.10.32" } - dev: false - - /yallist/3.1.1: - resolution: - { - integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, - } - dev: false - - /yallist/4.0.0: - resolution: - { - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, - } - - /yargs-parser/18.1.3: - resolution: - { - integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, - } - engines: { node: ">=6" } - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - dev: false - - /yargs-parser/20.2.9: - resolution: - { - integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, - } - engines: { node: ">=10" } - dev: false - - /yargs/15.4.1: - resolution: - { - integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==, - } - engines: { node: ">=8" } - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.0 - y18n: 4.0.3 - yargs-parser: 18.1.3 - dev: false - - /yargs/16.2.0: - resolution: - { - integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, - } - engines: { node: ">=10" } - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: false - - /yn/3.1.1: - resolution: - { - integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, - } - engines: { node: ">=6" } - dev: false - - /yocto-queue/0.1.0: - resolution: - { - integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, - } - engines: { node: ">=10" } - dev: false - optional: true - - github.com/xp-network/XP.network-HECO-Migration/65b3d13fb814ec8d8c4ea847c5915d763c0fec6f: - resolution: - { - tarball: https://codeload.github.com/xp-network/XP.network-HECO-Migration/tar.gz/65b3d13fb814ec8d8c4ea847c5915d763c0fec6f, - } - name: xpnet-web3-contracts - version: 0.1.0 - dependencies: - ethers: 5.7.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - github.com/xp-network/exchange-rate/969f919deec6ee487e4c1b6213f77fe4f6f32eb1: - resolution: - { - tarball: https://codeload.github.com/xp-network/exchange-rate/tar.gz/969f919deec6ee487e4c1b6213f77fe4f6f32eb1, - } - name: crypto-exchange-rate - version: 1.0.0 - engines: { node: ">=10" } - dependencies: - axios: 0.21.4 - transitivePeerDependencies: - - debug - dev: false From aa28e38844014af75f7ebd6816d2f8b7c8432c3e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 8 Sep 2022 20:35:40 +0530 Subject: [PATCH 666/956] Aptos: Prepare Handler --- package.json | 1 + src/consts.ts | 5 +++ src/helpers/aptos.ts | 82 ++++++++++++++++++++++++++++++++++++++++++++ yarn.lock | 42 +++++++++++++++++++++-- 4 files changed, 128 insertions(+), 2 deletions(-) create mode 100644 src/helpers/aptos.ts diff --git a/package.json b/package.json index 8586653f6..cf171acb8 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "@vechain/ethers": "^4.0.27-5", "@walletconnect/client": "^1.7.0", "algosdk": "^1.15.0-beta.1", + "aptos": "^1.3.11", "axios": "^0.21.1", "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", diff --git a/src/consts.ts b/src/consts.ts index e43bb3c63..d50ec3b23 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -26,6 +26,7 @@ import { DfinityParams, } from "./helpers/dfinity/dfinity"; import { NearHelper, NearParams, nearHelperFactory } from "./helpers/near"; +import { AptosHelper, AptosParams } from "./helpers/aptos"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -54,6 +55,7 @@ export enum TestNetRpcUri { NEAR = "https://rpc.testnet.near.org", MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", ABEYCHAIN = "https://testrpc.abeychain.com", + APTOS = "https://fullnode.devnet.aptoslabs.com", // TODO: Algorand // TODO: Fuse } @@ -96,6 +98,7 @@ type SolanaMeta = [SolanaHelper, SolanaParams]; type TonMeta = [TonHelper, TonParams]; type DfinityMeta = [DfinityHelper, DfinityParams]; type NearMeta = [NearHelper, NearParams]; +type AptosMeta = [AptosHelper, AptosParams]; // Static Assert to Ensure all values of Chain are in MetaMap type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; @@ -132,6 +135,7 @@ export type MetaMap = { 0x1f: NearMeta; 0x20: Web3Meta; 0x21: Web3Meta; + 0x22: AptosMeta; } & MetaMapAssert; export namespace Chain { @@ -166,6 +170,7 @@ export namespace Chain { export const NEAR = 0x1f; // 31 export const MOONBEAM = 0x20; // 32 export const ABEYCHAIN = 0x21; // 33 + export const APTOS = 0x22; // 34 } interface ChainData { diff --git a/src/helpers/aptos.ts b/src/helpers/aptos.ts new file mode 100644 index 000000000..57a772950 --- /dev/null +++ b/src/helpers/aptos.ts @@ -0,0 +1,82 @@ +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "./chain"; + +import { AptosAccount, AptosClient } from "aptos"; + +import { Chain } from "../consts"; +import BigNumber from "bignumber.js"; + +export type AptosNFT = { + collection_creator: string; + collection_name: string; + token_name: string; + property_version: number; +}; + +export type AptosHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + XpNft: string; + } & GetFeeMargins; + +export type AptosParams = { + feeMargin: FeeMargins; + rpcUrl: string; + xpnft: string; + bridge: string; +}; + +export async function aptosHelper({ + feeMargin, + rpcUrl, + xpnft, +}: AptosParams): Promise { + const client = new AptosClient(rpcUrl); + + return { + getNonce() { + return Chain.APTOS; + }, + getFeeMargin() { + return feeMargin; + }, + async validateAddress(adr) { + try { + await client.getAccount(adr); + return true; + } catch (e) { + return false; + } + }, + XpNft: xpnft, + async estimateValidateTransferNft(_to, _metadata, _mintWith) { + return new BigNumber(0); + }, + async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { + return new BigNumber(0); + }, + async transferNftToForeign( + _sender, + _chain_nonce, + _to, + _id, + _txFees, + _mintWith, + _gasLimit? + ) { + throw new Error("Method not implemented."); + }, + async unfreezeWrappedNft(_sender, _to, _id, _txFees, _nonce) { + throw new Error("Method not implemented."); + }, + }; +} diff --git a/yarn.lock b/yarn.lock index 98519342c..ab1c7482d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1204,7 +1204,7 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.0.0.tgz#d5e38bfbdaba174805a4e649f13be9a9ed3351ae" integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== -"@noble/hashes@^1.1.2": +"@noble/hashes@^1.1.2", "@noble/hashes@~1.1.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== @@ -1471,6 +1471,19 @@ dependencies: "@randlabs/communication-bridge" "^1.0.0" +"@scure/base@~1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" + integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== + +"@scure/bip39@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.0.tgz#92f11d095bae025f166bef3defcc5bf4945d419a" + integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== + dependencies: + "@noble/hashes" "~1.1.1" + "@scure/base" "~1.1.0" + "@sideway/address@^4.1.3": version "4.1.4" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" @@ -2359,6 +2372,18 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +aptos@^1.3.11: + version "1.3.11" + resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.3.11.tgz#6063113c734e18909b0d7f7233a99cc574153fd4" + integrity sha512-IaiXvKGFrL7/dg931KjOU6ny59lCV724NyNNJF/L4zigTsV0+EIGGAyaJBOvWedPr43qrY6CKiEdkDjXsOQJSA== + dependencies: + "@scure/bip39" "^1.1.0" + axios "^0.27.2" + ed25519-hd-key "^1.2.0" + js-sha3 "^0.8.0" + tweetnacl "^1.0.3" + typescript-memoize "^1.1.0" + are-we-there-yet@~1.1.2: version "1.1.7" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" @@ -2495,7 +2520,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@*: +axios@*, axios@^0.27.2: version "0.27.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== @@ -3580,6 +3605,14 @@ ed25519-hd-key@1.1.2: create-hmac "1.1.7" tweetnacl "1.0.3" +ed25519-hd-key@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.3.0.tgz#e0bd2be4c07e15c753d5ed3aca30744e321b7c78" + integrity sha512-IWwAyiiuJQhgu3L8NaHb68eJxTu2pgCwxIBdgpLJdKpYZM46+AXePSVTr7fkNKaUOfOL4IrjEUaQvyVRIDP7fg== + dependencies: + create-hmac "1.1.7" + tweetnacl "1.0.3" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -7629,6 +7662,11 @@ typescript-compiler@^1.4.1-2: resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f" integrity sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg== +typescript-memoize@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/typescript-memoize/-/typescript-memoize-1.1.0.tgz#4a8f512d06fc995167c703a3592219901db8bc79" + integrity sha512-LQPKVXK8QrBBkL/zclE6YgSWn0I8ew5m0Lf+XL00IwMhlotqRLlzHV+BRrljVQIc+NohUAuQP7mg4HQwrx5Xbg== + typescript@^4.3.5: version "4.8.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" From 830c18f88a71b2969bc24460a64fc8eddd4088e9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 12 Sep 2022 19:04:47 +0530 Subject: [PATCH 667/956] near: fixes and contract updates --- src/factory/factories.ts | 4 +- src/helpers/aptos.ts | 82 ---------------------------------------- src/helpers/near.ts | 28 +++++++++----- 3 files changed, 21 insertions(+), 93 deletions(-) delete mode 100644 src/helpers/aptos.ts diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 466f27609..bb2a2b3ea 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -344,8 +344,8 @@ export namespace ChainFactoryConfigs { networkId: "testnet", nonce: Chain.NEAR, rpcUrl: TestNetRpcUri.NEAR, - bridge: "xpbridge.testnet", - xpnft: "xpnft.testnet", + bridge: "xp_minter.testnet", + xpnft: "xp_nft.testnet", feeMargin, }, }; diff --git a/src/helpers/aptos.ts b/src/helpers/aptos.ts deleted file mode 100644 index 57a772950..000000000 --- a/src/helpers/aptos.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from "./chain"; - -import { AptosAccount, AptosClient } from "aptos"; - -import { Chain } from "../consts"; -import BigNumber from "bignumber.js"; - -export type AptosNFT = { - collection_creator: string; - collection_name: string; - token_name: string; - property_version: number; -}; - -export type AptosHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - XpNft: string; - } & GetFeeMargins; - -export type AptosParams = { - feeMargin: FeeMargins; - rpcUrl: string; - xpnft: string; - bridge: string; -}; - -export async function aptosHelper({ - feeMargin, - rpcUrl, - xpnft, -}: AptosParams): Promise { - const client = new AptosClient(rpcUrl); - - return { - getNonce() { - return Chain.APTOS; - }, - getFeeMargin() { - return feeMargin; - }, - async validateAddress(adr) { - try { - await client.getAccount(adr); - return true; - } catch (e) { - return false; - } - }, - XpNft: xpnft, - async estimateValidateTransferNft(_to, _metadata, _mintWith) { - return new BigNumber(0); - }, - async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { - return new BigNumber(0); - }, - async transferNftToForeign( - _sender, - _chain_nonce, - _to, - _id, - _txFees, - _mintWith, - _gasLimit? - ) { - throw new Error("Method not implemented."); - }, - async unfreezeWrappedNft(_sender, _to, _id, _txFees, _nonce) { - throw new Error("Method not implemented."); - }, - }; -} diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 2dacaa2f5..c20399cf0 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -1,9 +1,12 @@ import BigNumber from "bignumber.js"; +import { BN } from "bn.js"; + import { Account, connect, Contract, DEFAULT_FUNCTION_CALL_GAS, + Near, } from "near-api-js"; import { Chain } from "../consts"; import { @@ -11,6 +14,7 @@ import { EstimateTxFees, FeeMargins, GetFeeMargins, + GetProvider, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -34,7 +38,8 @@ export type NearHelper = ChainNonceGet & EstimateTxFees & ValidateAddress & { XpNft: string; - } & GetFeeMargins; + } & GetFeeMargins & + GetProvider; export async function nearHelperFactory({ networkId, @@ -51,7 +56,7 @@ export async function nearHelperFactory({ const getMinter = async (connection: Account) => { return new Contract(connection, bridge, { - changeMethods: ["freeze_nft"], + changeMethods: ["freeze_nft", "withdraw_nft"], viewMethods: [], }) as any; }; @@ -93,18 +98,23 @@ export async function nearHelperFactory({ getFeeMargin() { return feeMargin; }, + getProvider() { + return near; + }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { const minter = await getMinter(sender); const resp = minter.withdraw_nft( // token_id: TokenId, chain_nonce: u8, to: String, amt: u128 { - token_id: id.native.tokenId, - chain_nonce: nonce, - to, - amt: new BigNumber(txFees), - }, - DEFAULT_FUNCTION_CALL_GAS, - txFees + args: { + token_id: id.native.tokenId, + chain_nonce: parseInt(nonce), + to, + amt: parseInt(txFees.toString()), + }, + gas: DEFAULT_FUNCTION_CALL_GAS, + amount: new BN(txFees.toString()), + } ); return resp; }, From e786bb50f9ecaff043d68cbc2a59e2a689820ca1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 12 Sep 2022 19:06:31 +0530 Subject: [PATCH 668/956] aptos: import bridgeclient --- src/helpers/aptos/bridge_client.ts | 214 ++++++++++++++++++++++++ src/helpers/aptos/bridge_client_abis.ts | 20 +++ src/helpers/aptos/index.ts | 94 +++++++++++ 3 files changed, 328 insertions(+) create mode 100644 src/helpers/aptos/bridge_client.ts create mode 100644 src/helpers/aptos/bridge_client_abis.ts create mode 100644 src/helpers/aptos/index.ts diff --git a/src/helpers/aptos/bridge_client.ts b/src/helpers/aptos/bridge_client.ts new file mode 100644 index 000000000..9d11f9ef1 --- /dev/null +++ b/src/helpers/aptos/bridge_client.ts @@ -0,0 +1,214 @@ +import { + AptosAccount, + AptosClient, + HexString, + MaybeHexString, + TransactionBuilderABI, +} from "aptos"; +import { BRIDGE_ABIS } from "./bridge_client_abis"; + +interface BridgeData { + group_key: string; + paused: boolean; + consumed_actions: any; + frozen_nfts: any; +} + +export class BridgeClient { + aptosClient: AptosClient; + transactionBuilder: TransactionBuilderABI; + + constructor(aptosClient: AptosClient) { + this.aptosClient = aptosClient; + this.transactionBuilder = new TransactionBuilderABI( + BRIDGE_ABIS.map((abi) => new HexString(abi).toUint8Array()) + ); + } + + async initialize( + account: AptosAccount, + groupKey: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::initialize", + [], + [groupKey] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async pause( + account: AptosAccount, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::pause", + [], + [actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async unpause( + account: AptosAccount, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::unpause", + [], + [actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateTransferNft( + account: AptosAccount, + bridgeAdmin: HexString, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string = "0", + _actionId: number | bigint, + _signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_transfer_nft", + [], + [ + bridgeAdmin.toString(), + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + ] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async withdrawNft( + account: AptosAccount, + bridgeAdmin: HexString, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string = "0" + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::withdraw_nft", + [], + [ + bridgeAdmin.toString(), + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + ] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateBurnNft( + account: AptosAccount, + bridgeAdmin: HexString, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string = "0", + _actionId: number | bigint, + _signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_burn_nft", + [], + [ + bridgeAdmin.toString(), + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + ] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async freezeNft( + account: AptosAccount, + bridgeAdmin: HexString, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string = "0" + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::freeze_nft", + [], + [ + bridgeAdmin.toString(), + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + ] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateUnfreezeNft( + account: AptosAccount, + bridgeAdmin: HexString, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string = "0", + _actionId: number | bigint, + _signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_unfreeze_nft", + [], + [ + bridgeAdmin.toString(), + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + ] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async updateGroupKey( + account: AptosAccount, + groupKey: Uint8Array, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::update_group_key", + [], + [groupKey, actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async getBridgeData(creator: MaybeHexString) { + const resources = await this.aptosClient.getAccountResources(creator); + const accountResource = resources.find( + (r) => + r.type == + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::Bridge" + ); + return accountResource?.data as BridgeData; + } +} diff --git a/src/helpers/aptos/bridge_client_abis.ts b/src/helpers/aptos/bridge_client_abis.ts new file mode 100644 index 000000000..5b81885e7 --- /dev/null +++ b/src/helpers/aptos/bridge_client_abis.ts @@ -0,0 +1,20 @@ +export const BRIDGE_ABIS = [ + // ../build/aptos-bridge/abis/bridge/initialize.abi + "010a696e697469616c697a658ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000010967726f75705f6b65790601", + // ../build/aptos-bridge/abis/bridge/pause.abi + "010570617573658ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/unpause.abi + "0107756e70617573658ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/update_group_key.abi + "01107570646174655f67726f75705f6b65798ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi + "011576616c69646174655f7472616e736665725f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi + "010c77697468647261775f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000050c6272696467655f61646d696e0412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02", + // ../build/aptos-bridge/abis/bridge/validate_burn_nft.abi + "011176616c69646174655f6275726e5f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/freeze_nft.abi + "010a667265657a655f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000050c6272696467655f61646d696e0412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02", + // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi + "011576616c69646174655f756e667265657a655f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts new file mode 100644 index 000000000..ddce3595d --- /dev/null +++ b/src/helpers/aptos/index.ts @@ -0,0 +1,94 @@ +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "../chain"; + +import { AptosAccount, AptosClient, HexString } from "aptos"; + +import { Chain } from "../../consts"; +import BigNumber from "bignumber.js"; +import { BridgeClient } from "./bridge_client"; + +export type AptosNFT = { + collection_creator: string; + collection_name: string; + token_name: string; + property_version: number; +}; + +export type AptosHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + XpNft: string; + } & GetFeeMargins; + +export type AptosParams = { + feeMargin: FeeMargins; + rpcUrl: string; + xpnft: string; + bridge: string; +}; + +export async function aptosHelper({ + feeMargin, + rpcUrl, + xpnft, + bridge, +}: AptosParams): Promise { + const client = new AptosClient(rpcUrl); + + const bridgeClient = new BridgeClient(client); + + return { + getNonce() { + return Chain.APTOS; + }, + getFeeMargin() { + return feeMargin; + }, + async validateAddress(adr) { + try { + await client.getAccount(adr); + return true; + } catch (e) { + return false; + } + }, + XpNft: xpnft, + async estimateValidateTransferNft(_to, _metadata, _mintWith) { + return new BigNumber(0); + }, + async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { + return new BigNumber(0); + }, + async transferNftToForeign( + sender, + _chain_nonce, + _to, + id, + _txFees, + _mintWith, + _gasLimit? + ) { + const receipt = await bridgeClient.freezeNft( + sender, + HexString.ensure(bridge), + HexString.ensure(id.native.collection_creator), + id.native.collection_name, + id.native.token_name, + id.native.property_version.toString() + ); + return receipt; + }, + async unfreezeWrappedNft(_sender, _to, _id, _txFees, _nonce) { + throw new Error("Method not implemented."); + }, + }; +} From c3fc6dda33b8e177915d2ca689cd3be21dac3c9d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 13 Sep 2022 16:20:04 +0530 Subject: [PATCH 669/956] near: migrate to underlying contract implementation --- package.json | 2 +- src/factory/factories.ts | 2 +- src/helpers/near.ts | 71 ++++++++++++++++++---------------------- yarn.lock | 23 +++++-------- 4 files changed, 42 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index cf171acb8..66130d712 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", - "near-api-js": "^0.45.1", + "near-api-js": "1.0.0", "secretjs": "=1.3.0-beta.25", "socket.io-client": "^4.1.3", "tonweb": "^0.0.43", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index bb2a2b3ea..cc18f2859 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -345,7 +345,7 @@ export namespace ChainFactoryConfigs { nonce: Chain.NEAR, rpcUrl: TestNetRpcUri.NEAR, bridge: "xp_minter.testnet", - xpnft: "xp_nft.testnet", + xpnft: "xp_nft12.testnet", feeMargin, }, }; diff --git a/src/helpers/near.ts b/src/helpers/near.ts index c20399cf0..cf71d250b 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -1,13 +1,11 @@ import BigNumber from "bignumber.js"; -import { BN } from "bn.js"; +import BN from "bn.js"; +import { Account, connect, DEFAULT_FUNCTION_CALL_GAS, Near } from "near-api-js"; import { - Account, - connect, - Contract, - DEFAULT_FUNCTION_CALL_GAS, - Near, -} from "near-api-js"; + FinalExecutionOutcome, + getTransactionLastResult, +} from "near-api-js/lib/providers"; import { Chain } from "../consts"; import { ChainNonceGet, @@ -20,6 +18,8 @@ import { ValidateAddress, } from "./chain"; +type NearTxResult = [FinalExecutionOutcome, any]; + export type NearParams = { networkId: string; nonce: number; @@ -33,14 +33,13 @@ export type NearNFT = { }; export type NearHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & + TransferNftForeign & + UnfreezeForeignNft & EstimateTxFees & ValidateAddress & { XpNft: string; } & GetFeeMargins & GetProvider; - export async function nearHelperFactory({ networkId, bridge, @@ -54,13 +53,6 @@ export async function nearHelperFactory({ headers: {}, }); - const getMinter = async (connection: Account) => { - return new Contract(connection, bridge, { - changeMethods: ["freeze_nft", "withdraw_nft"], - viewMethods: [], - }) as any; - }; - return { async estimateValidateTransferNft(_to, _metadata, _mintWith) { return new BigNumber(0); // TODO @@ -81,19 +73,20 @@ export async function nearHelperFactory({ mint_with, gasLimit ) { - const minter = await getMinter(sender); - const resp = minter.freeze_nft( - { + const result = await sender.functionCall({ + contractId: bridge, + args: { token_id: id.native.tokenId, chain_nonce, to, amt: new BigNumber(txFees), mint_with, }, - gasLimit ?? DEFAULT_FUNCTION_CALL_GAS, - txFees - ); - return resp; + methodName: "freeze_nft", + attachedDeposit: new BN(txFees.toString()), + gas: new BN(gasLimit?.toString() ?? DEFAULT_FUNCTION_CALL_GAS), + }); + return [result, getTransactionLastResult(result)]; }, getFeeMargin() { return feeMargin; @@ -102,25 +95,23 @@ export async function nearHelperFactory({ return near; }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - const minter = await getMinter(sender); - const resp = minter.withdraw_nft( - // token_id: TokenId, chain_nonce: u8, to: String, amt: u128 - { - args: { - token_id: id.native.tokenId, - chain_nonce: parseInt(nonce), - to, - amt: parseInt(txFees.toString()), - }, - gas: DEFAULT_FUNCTION_CALL_GAS, - amount: new BN(txFees.toString()), - } - ); - return resp; + const result = await sender.functionCall({ + contractId: bridge, + args: { + token_id: id.native.tokenId, + chain_nonce: parseInt(nonce), + to, + amt: parseInt(txFees.toString()), + }, + methodName: "withdraw_nft", + attachedDeposit: new BN(txFees.toString()), + gas: DEFAULT_FUNCTION_CALL_GAS, + }); + return [result, getTransactionLastResult(result)]; }, async validateAddress(adr) { try { - new Account(near.connection, adr).accountId; + await new Account(near.connection, adr).getAccountBalance(); return true; } catch (e) { return false; diff --git a/yarn.lock b/yarn.lock index ab1c7482d..a5eb1d5d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2751,21 +2751,16 @@ bn.js@5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz#48efc4031a9c4041b9c99c6941d903463ab62eb5" integrity sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA== -bn.js@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +bn.js@5.2.1, bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - body-parser@1.20.0, body-parser@^1.16.0: version "1.20.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" @@ -5983,12 +5978,12 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -near-api-js@^0.45.1: - version "0.45.1" - resolved "https://registry.yarnpkg.com/near-api-js/-/near-api-js-0.45.1.tgz#0f0a4b378758a2f1b32555399d7356da73d0ef27" - integrity sha512-QyPO/vjvMFlcMO1DCpsqzmnSqPIyHsjK1Qi4B5ZR1cJCIWMkqugDF/TDf8FVQ85pmlcYeYwfiTqKanKz+3IG0A== +near-api-js@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/near-api-js/-/near-api-js-1.0.0.tgz#7aebc8e538071114ed242e6cce3b8fa956267691" + integrity sha512-OYItaQIYlKK27FG5PrqqtkTI8Vv9TEOCi7gXePYigS4o6WofXciAXNjr4sihDJ8Vzi6s7+eEkf3zTNP3042FBw== dependencies: - bn.js "5.2.0" + bn.js "5.2.1" borsh "^0.7.0" bs58 "^4.0.0" depd "^2.0.0" From 676241c034d9bfeef5629ad8a12b6c94d0737c88 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 13 Sep 2022 18:35:00 +0300 Subject: [PATCH 670/956] Abeychain hash field option --- src/helpers/web3.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 1a3267812..f710747b7 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -600,7 +600,7 @@ export async function web3HelperFactory( } if (params.nonce === 33) { //@ts-ignore checked abeychain - txHash = txr["returnedHash"]; + txHash = txr["returnedHash"] || txr.hash; } else { //@ts-ignore checked normal evm txHash = txr.hash; From 543081f207209edf96a374e08f710847bb4ffdb2 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 14 Sep 2022 11:57:25 +0300 Subject: [PATCH 671/956] add chain types, add method getDefaultContract and some default minting restrictions --- src/consts.ts | 49 +++++++++++++++++++++++++++++++++++++++++++- src/factory/cons.ts | 35 +++++++++++++++++++++++++++++++ src/factory/index.ts | 19 ++++++++--------- 3 files changed, 91 insertions(+), 12 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index d50ec3b23..d66093f7a 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -181,12 +181,27 @@ interface ChainData { blockExplorerUrl: string; chainId?: number; currency: SupportedCurrency; + type: string; } type ChainInfo = { set(k: T, v: ChainData | undefined): void; get(k: T): ChainData | undefined; -}; +} & Map>; + +export enum ChainType { + EVM = "EVM", + ELROND = "ELROND", + TRON = "TRON", + TEZOS = "TEZOS", + ALGORAND = "ALGORAND", + SECRET = "SECRET", + DFINITY = "DFINITY", + SOLANA = "SOLANA", + TON = "TON", + NEAR = "NEAR", + HEDERA = "HEDERA", +} export const CHAIN_INFO: ChainInfo = new Map(); CHAIN_INFO.set(Chain.ELROND, { @@ -196,6 +211,7 @@ CHAIN_INFO.set(Chain.ELROND, { constructor: elrondHelperFactory, blockExplorerUrl: "https://devnet-explorer.elrond.com/transactions/", currency: SupportedCurrency.EGLD, + type: ChainType.ELROND, }); CHAIN_INFO.set(Chain.HECO, { name: "HECO", @@ -205,6 +221,7 @@ CHAIN_INFO.set(Chain.HECO, { blockExplorerUrl: "https://testnet.hecoinfo.com/tx", constructor: web3HelperFactory, currency: SupportedCurrency.HT, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.BSC, { name: "BSC", @@ -214,6 +231,7 @@ CHAIN_INFO.set(Chain.BSC, { blockExplorerUrl: "https://testnet.bscscan.com/tx", constructor: web3HelperFactory, currency: SupportedCurrency.BNB, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.ETHEREUM, { name: "Ethereum", @@ -223,6 +241,7 @@ CHAIN_INFO.set(Chain.ETHEREUM, { decimals: 1e18, blockExplorerUrl: "https://ropsten.etherscan.io/tx", constructor: web3HelperFactory, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.AVALANCHE, { name: "Avalanche", @@ -232,6 +251,7 @@ CHAIN_INFO.set(Chain.AVALANCHE, { blockExplorerUrl: "https://cchain.explorer.avax-test.network/tx", constructor: web3HelperFactory, currency: SupportedCurrency.AVAX, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.POLYGON, { name: "Polygon", @@ -241,6 +261,7 @@ CHAIN_INFO.set(Chain.POLYGON, { blockExplorerUrl: "https://mumbai.polygonscan.com/tx", constructor: web3HelperFactory, currency: SupportedCurrency.MATIC, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.FANTOM, { name: "Fantom", @@ -250,6 +271,7 @@ CHAIN_INFO.set(Chain.FANTOM, { blockExplorerUrl: "https://explorer.testnet.fantom.network/transactions", constructor: web3HelperFactory, currency: SupportedCurrency.FTM, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.TRON, { name: "Tron", @@ -258,6 +280,7 @@ CHAIN_INFO.set(Chain.TRON, { blockExplorerUrl: "https://shasta.tronscan.org/#/transaction", constructor: tronHelperFactory, currency: SupportedCurrency.TRX, + type: ChainType.TRON, }); CHAIN_INFO.set(Chain.CELO, { name: "Celo", @@ -267,6 +290,7 @@ CHAIN_INFO.set(Chain.CELO, { blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", constructor: web3HelperFactory, currency: SupportedCurrency.CELO, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.HARMONY, { name: "Harmony", @@ -276,6 +300,7 @@ CHAIN_INFO.set(Chain.HARMONY, { blockExplorerUrl: "https://explorer.pops.one/tx", constructor: web3HelperFactory, currency: SupportedCurrency.ONE, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.ONT, { name: "Ontology", @@ -285,6 +310,7 @@ CHAIN_INFO.set(Chain.ONT, { blockExplorerUrl: "https://explorer.pops.one/tx", constructor: web3HelperFactory, currency: SupportedCurrency.ONT, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.XDAI, { name: "xDai", @@ -294,6 +320,7 @@ CHAIN_INFO.set(Chain.XDAI, { blockExplorerUrl: "https://blockscout.com/xdai/mainnet/", constructor: web3HelperFactory, currency: SupportedCurrency.XDAI, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.ALGORAND, { name: "Algorand", @@ -303,6 +330,7 @@ CHAIN_INFO.set(Chain.ALGORAND, { blockExplorerUrl: "https://algoexplorer.io/tx", currency: SupportedCurrency.ALGO, constructor: (p) => Promise.resolve(algorandHelper(p)), + type: ChainType.ALGORAND, }); CHAIN_INFO.set(Chain.FUSE, { name: "FUSE", @@ -312,6 +340,7 @@ CHAIN_INFO.set(Chain.FUSE, { blockExplorerUrl: "https://explorer.fuse.io/tx", currency: SupportedCurrency.FUSE, constructor: web3HelperFactory, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.UNIQUE, { name: "Unique", @@ -321,6 +350,7 @@ CHAIN_INFO.set(Chain.UNIQUE, { blockExplorerUrl: "CANT FIND", constructor: web3HelperFactory, currency: SupportedCurrency.OPL, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.TEZOS, { name: "Tezos", @@ -329,6 +359,7 @@ CHAIN_INFO.set(Chain.TEZOS, { constructor: tezosHelperFactory, currency: SupportedCurrency.XTZ, blockExplorerUrl: "https://tezblock.io/transaction", + type: ChainType.TEZOS, }); CHAIN_INFO.set(Chain.VELAS, { name: "Velas", @@ -338,6 +369,7 @@ CHAIN_INFO.set(Chain.VELAS, { constructor: web3HelperFactory, currency: SupportedCurrency.VLX, chainId: 111, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.AURORA, { name: "Aurora", @@ -347,6 +379,7 @@ CHAIN_INFO.set(Chain.AURORA, { constructor: web3HelperFactory, currency: SupportedCurrency.AURORA, chainId: 1313161554, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.IOTEX, { name: "IoTeX", @@ -356,6 +389,7 @@ CHAIN_INFO.set(Chain.IOTEX, { constructor: web3HelperFactory, currency: SupportedCurrency.IOTX, chainId: 4689, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.GODWOKEN, { name: "GodWoken", @@ -365,6 +399,7 @@ CHAIN_INFO.set(Chain.GODWOKEN, { decimals: 1e18, currency: SupportedCurrency.CKB, chainId: 868455272153094, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.GATECHAIN, { name: "GateChain", @@ -374,6 +409,7 @@ CHAIN_INFO.set(Chain.GATECHAIN, { decimals: 1e18, currency: SupportedCurrency.GT, chainId: 85, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.VECHAIN, { name: "VeChain", @@ -383,6 +419,7 @@ CHAIN_INFO.set(Chain.VECHAIN, { currency: SupportedCurrency.VET, decimals: 1e18, chainId: 39, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.SECRET, { name: "Secret", @@ -391,6 +428,7 @@ CHAIN_INFO.set(Chain.SECRET, { nonce: Chain.SECRET, currency: SupportedCurrency.SCRT, decimals: 1e6, + type: ChainType.SECRET, }); CHAIN_INFO.set(Chain.SOLANA, { name: "Solana", @@ -399,6 +437,7 @@ CHAIN_INFO.set(Chain.SOLANA, { nonce: Chain.SOLANA, currency: SupportedCurrency.SOL, decimals: 1e9, + type: ChainType.SOLANA, }); CHAIN_INFO.set(Chain.TON, { name: "TON", @@ -407,6 +446,7 @@ CHAIN_INFO.set(Chain.TON, { nonce: Chain.TON, currency: SupportedCurrency.TON, decimals: 1e9, + type: ChainType.TON, }); CHAIN_INFO.set(Chain.DFINITY, { name: "DFINITY", @@ -415,6 +455,7 @@ CHAIN_INFO.set(Chain.DFINITY, { nonce: Chain.DFINITY, currency: SupportedCurrency.ICP, decimals: 1e8, + type: ChainType.DFINITY, }); CHAIN_INFO.set(Chain.HEDERA, { blockExplorerUrl: "https://hashscan.io/#/testnet/transaction", @@ -423,6 +464,7 @@ CHAIN_INFO.set(Chain.HEDERA, { decimals: 1e6, nonce: Chain.HEDERA, name: "Hedera", + type: ChainType.HEDERA, }); CHAIN_INFO.set(Chain.SKALE, { @@ -434,6 +476,7 @@ CHAIN_INFO.set(Chain.SKALE, { decimals: 1e18, chainId: 1564830818, nonce: Chain.SKALE, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.DFINITY, { @@ -443,6 +486,7 @@ CHAIN_INFO.set(Chain.DFINITY, { decimals: 1e8, name: "DFINITY", nonce: Chain.DFINITY, + type: ChainType.DFINITY, }); CHAIN_INFO.set(Chain.NEAR, { @@ -452,6 +496,7 @@ CHAIN_INFO.set(Chain.NEAR, { decimals: 1e8, name: "NEAR", nonce: Chain.NEAR, + type: ChainType.NEAR, }); CHAIN_INFO.set(Chain.MOONBEAM, { @@ -462,6 +507,7 @@ CHAIN_INFO.set(Chain.MOONBEAM, { name: "MoonBeam", nonce: Chain.MOONBEAM, chainId: 0x507, + type: ChainType.EVM, }); CHAIN_INFO.set(Chain.ABEYCHAIN, { @@ -472,4 +518,5 @@ CHAIN_INFO.set(Chain.ABEYCHAIN, { name: "AbeyChain", nonce: Chain.ABEYCHAIN, chainId: 178, + type: ChainType.EVM, }); diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 05e08343e..99d155001 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -6,6 +6,10 @@ import { NetworkModel, } from "crypto-exchange-rate"; +import { NftInfo, FullChain } from ".."; + +import { CHAIN_INFO, ChainType } from "../consts"; + export function exchangeRateRepo( baseUrl: string ): ExchangeRateRepo & BatchExchangeRateRepo { @@ -18,3 +22,34 @@ export function exchangeRateRepo( ) ); } + +export function getDefaultContract( + nft: NftInfo, + fromChain: FullChain, + toChain: FullChain +): string | undefined { + const from = fromChain.getNonce(); + const to = toChain.getNonce(); + + const fromType = CHAIN_INFO.get(from)?.type; + const toType = CHAIN_INFO.get(to)?.type; + + if (fromType === ChainType.EVM && toType === ChainType.EVM) { + return undefined; + } + + if (fromType === ChainType.ELROND && toType === ChainType.EVM) { + return undefined; + } + + if (fromType === ChainType.EVM && toType === ChainType.ELROND) { + return undefined; + } + + return "contractType" in nft.native && + //@ts-ignore contractType is checked + nft.native.contractType === "ERC1155" && + toChain.XpNft1155 + ? toChain.XpNft1155 + : toChain.XpNft; +} diff --git a/src/factory/index.ts b/src/factory/index.ts index d258eb051..4cf063f23 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -21,7 +21,7 @@ import { import BigNumber from "bignumber.js"; import axios from "axios"; -import { exchangeRateRepo } from "./cons"; +import { exchangeRateRepo, getDefaultContract } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { bridgeHeartbeat } from "../heartbeat"; import { ethers, utils } from "ethers"; @@ -57,7 +57,7 @@ import { SecretParams } from "../helpers/secret"; import { DfinityParams } from "../helpers/dfinity/dfinity"; import { NearParams } from "../helpers/near"; -type FullChain = TransferNftForeign< +export type FullChain = TransferNftForeign< Signer, RawNft, Resp @@ -732,12 +732,7 @@ export function ChainFactory( tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined )) ? mintWith - : "contractType" in nft.native && - //@ts-ignore contractType is checked - nft.native.contractType === "ERC1155" && - toChain.XpNft1155 - ? toChain.XpNft1155 - : toChain.XpNft; + : getDefaultContract(nft, fromChain, toChain); if (appConfig.network === "mainnet") { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); @@ -750,9 +745,7 @@ export function ChainFactory( if (!(await toChain.validateAddress(receiver))) { throw Error("invalid address"); } - if (mw === undefined) { - throw new Error(`Mint with is not set`); - } + console.log(`Minting With : ${mw}`); if (await isWrappedNft(nft, fromChain.getNonce())) { @@ -768,6 +761,10 @@ export function ChainFactory( return res; } else { + if (mw === undefined) { + throw new Error(`Mint with is not set`); + } + const res = await fromChain.transferNftToForeign( sender, toChain.getNonce(), From bef622950d9bcc27222f7bf31d156f60fd01ee16 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 14 Sep 2022 12:34:24 +0300 Subject: [PATCH 672/956] allow mint default in testing bucket --- src/factory/cons.ts | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 99d155001..49df3623c 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -34,6 +34,21 @@ export function getDefaultContract( const fromType = CHAIN_INFO.get(from)?.type; const toType = CHAIN_INFO.get(to)?.type; + const contract = + "contractType" in nft.native && + //@ts-ignore contractType is checked + nft.native.contractType === "ERC1155" && + toChain.XpNft1155 + ? toChain.XpNft1155 + : toChain.XpNft; + + if ( + typeof window !== "undefined" && + /(testing\.bridge)/.test(window.location.origin) + ) { + return contract; + } + if (fromType === ChainType.EVM && toType === ChainType.EVM) { return undefined; } @@ -46,10 +61,5 @@ export function getDefaultContract( return undefined; } - return "contractType" in nft.native && - //@ts-ignore contractType is checked - nft.native.contractType === "ERC1155" && - toChain.XpNft1155 - ? toChain.XpNft1155 - : toChain.XpNft; + return contract; } From acb71cf06fc9bf84444a3a5eea06e1c2daa640f3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 13 Sep 2022 21:16:28 +0530 Subject: [PATCH 673/956] near: implement notifier --- src/helpers/near.ts | 5 +++++ src/notifier/index.ts | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/helpers/near.ts b/src/helpers/near.ts index cf71d250b..05e90b26b 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -7,6 +7,7 @@ import { getTransactionLastResult, } from "near-api-js/lib/providers"; import { Chain } from "../consts"; +import { EvNotifier } from "../notifier"; import { ChainNonceGet, EstimateTxFees, @@ -27,6 +28,7 @@ export type NearParams = { bridge: string; xpnft: string; feeMargin: FeeMargins; + notifier: EvNotifier; }; export type NearNFT = { tokenId: string; @@ -46,6 +48,7 @@ export async function nearHelperFactory({ rpcUrl, xpnft, feeMargin, + notifier, }: NearParams): Promise { const near = await connect({ nodeUrl: rpcUrl, @@ -86,6 +89,7 @@ export async function nearHelperFactory({ attachedDeposit: new BN(txFees.toString()), gas: new BN(gasLimit?.toString() ?? DEFAULT_FUNCTION_CALL_GAS), }); + await notifier.notifyNear(result.transaction.hash); return [result, getTransactionLastResult(result)]; }, getFeeMargin() { @@ -107,6 +111,7 @@ export async function nearHelperFactory({ attachedDeposit: new BN(txFees.toString()), gas: DEFAULT_FUNCTION_CALL_GAS, }); + await notifier.notifyNear(result.transaction.hash); return [result, getTransactionLastResult(result)]; }, async validateAddress(adr) { diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 170fd9cb6..47821644f 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -69,6 +69,9 @@ export function evNotifier(url: string) { async notifySolana(txHash: string) { await api.post("/tx/solana", { tx_hash: txHash }); }, + async notifyNear(txHash: string) { + await api.post("/tx/near", { tx_hash: txHash }); + }, async notifyDfinity(actionId: string) { await api.post("/tx/dfinity", { action_id: actionId }); }, From a70d40483aa056d9731e97271784c976faf8c5b3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 13 Sep 2022 23:33:31 +0530 Subject: [PATCH 674/956] clean type garbage --- src/type-utils.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/type-utils.ts b/src/type-utils.ts index 90d0fcf43..df8dad30f 100644 --- a/src/type-utils.ts +++ b/src/type-utils.ts @@ -10,8 +10,13 @@ export type ChainNonce = keyof MetaMap; export type InferChainParam = MetaMap[K][1]; export type InferChainH = MetaMap[K][0]; -export type InferSigner> = - K extends TransferNftChain ? S : never; +export type InferSigner = K extends TransferNftChain< + infer S, + unknown, + unknown +> + ? S + : never; export type InferNativeNft = K extends TransferNftChain< any, From eaff98fe6d4378cc449faa9cb61db1924ef6c6f3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 13 Sep 2022 23:34:05 +0530 Subject: [PATCH 675/956] factory: near: mainnet: add notifier --- src/factory/factories.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index cc18f2859..faffb1f5a 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -637,6 +637,7 @@ export namespace ChainFactoryConfigs { bridge: "", xpnft: "", feeMargin, + notifier, }, }; }; From 5abde6f9fd985c9ecf9bb6c2fc2ed0dbfa87f366 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 15 Sep 2022 13:40:48 +0300 Subject: [PATCH 676/956] allow mint in default in testnet --- src/consts.ts | 4 ++++ src/factory/cons.ts | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index d66093f7a..f80e1c326 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -179,9 +179,13 @@ interface ChainData { decimals: number; constructor: (p: InferChainParam) => Promise>; blockExplorerUrl: string; + tnBlockExplorerUrl?: string; chainId?: number; + tnChainId?: number; currency: SupportedCurrency; type: string; + blockExplorerUrlAddr?: string; + tnBlockExplorerUrlAddr?: string; } type ChainInfo = { diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 49df3623c..c7f2794d0 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -44,7 +44,8 @@ export function getDefaultContract( if ( typeof window !== "undefined" && - /(testing\.bridge)/.test(window.location.origin) + (/(testing\.bridge)/.test(window.location.origin) || + /testnet/.test(window.location.pathname)) ) { return contract; } From 4fea756b5add30546e434eae24745f942d8911c2 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 15 Sep 2022 17:03:02 +0530 Subject: [PATCH 677/956] ton: use nft's address directly --- src/helpers/ton.ts | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 3cfe86adc..e4c8e89e1 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -15,7 +15,7 @@ import { BridgeContract } from "./ton-bridge"; export type TonSigner = { wallet?: TonWallet; accIdx: number }; export type TonNft = { - nftId: number; + nftItemAddr: string; }; export type TonHelper = ChainNonceGet & @@ -23,7 +23,7 @@ export type TonHelper = ChainNonceGet & UnfreezeForeignNft & EstimateTxFees & ValidateAddress & { XpNft: string } & { - tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonWallet; + tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; }; export type TonParams = { @@ -48,6 +48,7 @@ type TonWallet = { export async function tonHelper(args: TonParams): Promise { const bridge = new BridgeContract(args.tonweb.provider, { + address: args.bridgeAddr, burner: args.burnerAddr, }); @@ -67,18 +68,7 @@ export async function tonHelper(args: TonParams): Promise { }, async transferNftToForeign(signer, chainNonce, to, nft, txFees, mintWith) { const rSigner = signer.wallet || ton; - const addr = (await rSigner.send("ton_requestAccounts", undefined))[ - signer.accIdx - ]; - const nftColl = new TonWeb.token.nft.NftCollection(ton.provider, { - ownerAddress: new TonWeb.Address(addr), - nftItemCodeHex: TonWeb.token.nft.NftItem.codeHex, - }); - - const nftItemAddr = await nftColl.getNftItemAddressByIndex( - nft.native.nftId - ); const txFeesFull = new BN(txFees.toString(10)); const nftFee = TonWeb.utils.toNano("0.05"); const payload = await bridge.createFreezeBody({ @@ -90,7 +80,7 @@ export async function tonHelper(args: TonParams): Promise { await rSigner.send("ton_sendTransaction", { value: nftFee.toString(10), - to: nftItemAddr.toString(true, true, true), + to: nft.native.nftItemAddr, data: Buffer.from(await payload.getRepr()).toString("base64"), }); @@ -100,15 +90,6 @@ export async function tonHelper(args: TonParams): Promise { async unfreezeWrappedNft(signer, to, nft, txFees, chainNonce) { const rSigner = signer.wallet || ton; - const nftColl = new TonWeb.token.nft.NftCollection(ton.provider, { - ownerAddress: await bridge.getAddress(), - nftItemCodeHex: TonWeb.token.nft.NftItem.codeHex, - }); - - const nftItemAddr = await nftColl.getNftItemAddressByIndex( - nft.native.nftId - ); - const txFeesFull = new BN(txFees.toString(10)); const nftFee = TonWeb.utils.toNano("0.05"); const payload = await bridge.createWithdrawBody({ @@ -119,19 +100,20 @@ export async function tonHelper(args: TonParams): Promise { await rSigner.send("ton_sendTransaction", { value: nftFee.toString(10), - to: nftItemAddr.toString(true, true, true), + to: nft.native.nftItemAddr, data: Buffer.from(await payload.getRepr()).toString("base64"), }); // TODO: tx hash return ""; }, - tonKpWrapper(kp: TonWebMnemonic.KeyPair): TonWallet { + tonKpWrapper(kp: TonWebMnemonic.KeyPair): TonSigner { const wallet = new TonWeb.Wallets.all.v3R2(ton.provider, { publicKey: kp.publicKey, wc: 0, }); - return { + + const wWallet: TonWallet = { async send(method, params) { switch (method) { case "ton_getBalance": @@ -152,6 +134,11 @@ export async function tonHelper(args: TonParams): Promise { } }, }; + + return { + wallet: wWallet, + accIdx: 0, + }; }, }; } From 572895c6b3cac60be397bbbba71e0dd966e6158d Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 15 Sep 2022 15:51:57 +0300 Subject: [PATCH 678/956] add: Moonbeam Mainnet contracts --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index faffb1f5a..c22f29223 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -610,6 +610,17 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", minter_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", }, + moonbeamParams: { + nonce: Chain.MOONBEAM, + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.MOONBEAM), + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + }, secretParams: { notifier, rpcUrl: MainNetRpcUri.SECRET, From c5d9510d021475cf1927f813c4d3d79326147014 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 15 Sep 2022 19:50:25 +0530 Subject: [PATCH 679/956] ton-bridge: set forward_amount to 0 --- src/config.ts | 2 +- src/helpers/ton-bridge.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config.ts b/src/config.ts index 79b4aad1e..2deef4e01 100644 --- a/src/config.ts +++ b/src/config.ts @@ -11,7 +11,7 @@ export namespace AppConfigs { tronScanUri: "https://apilist.tronscan.org/api/", heartbeatUri: "https://xpheartbeat.herokuapp.com", wrappedNftPrefix: "https://nft.xp.network/w/", - scVerifyUri: "https://testing-sc-verify.herokuapp.com", + scVerifyUri: "https://sc-verify.xp.network", network: "mainnet", }; }; diff --git a/src/helpers/ton-bridge.ts b/src/helpers/ton-bridge.ts index 5d161cacf..3d7a1eafb 100644 --- a/src/helpers/ton-bridge.ts +++ b/src/helpers/ton-bridge.ts @@ -70,7 +70,7 @@ export class BridgeContract extends Contract { cell.bits.writeAddress(new TonWeb.Address(this.options.burner)); // target address cell.bits.writeAddress(await this.getAddress()); // bridge as response address cell.bits.writeBit(false); // null custom_payload - cell.bits.writeCoins(params.txFees); // forward amount + cell.bits.writeCoins(new BN(0)); // forward amount cell.bits.writeBit(false); // forward_payload in this slice, not separate cell const msg = new Cell(); From fd583c638c3f2289d80db6010358becb7c0d989d Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 15 Sep 2022 20:10:09 +0530 Subject: [PATCH 680/956] ton: unfreezeWrappedNfT: send txFeesFull --- src/helpers/ton.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index e4c8e89e1..e9647150c 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -70,7 +70,7 @@ export async function tonHelper(args: TonParams): Promise { const rSigner = signer.wallet || ton; const txFeesFull = new BN(txFees.toString(10)); - const nftFee = TonWeb.utils.toNano("0.05"); + const nftFee = TonWeb.utils.toNano("0.07"); const payload = await bridge.createFreezeBody({ amount: txFeesFull.sub(nftFee), to: Buffer.from(to), @@ -79,7 +79,7 @@ export async function tonHelper(args: TonParams): Promise { }); await rSigner.send("ton_sendTransaction", { - value: nftFee.toString(10), + value: txFeesFull.toString(10), to: nft.native.nftItemAddr, data: Buffer.from(await payload.getRepr()).toString("base64"), }); @@ -99,7 +99,7 @@ export async function tonHelper(args: TonParams): Promise { }); await rSigner.send("ton_sendTransaction", { - value: nftFee.toString(10), + value: txFeesFull.toString(10), to: nft.native.nftItemAddr, data: Buffer.from(await payload.getRepr()).toString("base64"), }); From a8725234449ea5a03b9262814d56570737b148da Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 15 Sep 2022 15:51:39 +0530 Subject: [PATCH 681/956] aptos: update aptos client and abi --- src/helpers/aptos/bridge_client.ts | 130 +++++++++++++++++++----- src/helpers/aptos/bridge_client_abis.ts | 12 ++- src/helpers/aptos/index.ts | 30 ++++-- 3 files changed, 139 insertions(+), 33 deletions(-) diff --git a/src/helpers/aptos/bridge_client.ts b/src/helpers/aptos/bridge_client.ts index 9d11f9ef1..21e793d4d 100644 --- a/src/helpers/aptos/bridge_client.ts +++ b/src/helpers/aptos/bridge_client.ts @@ -66,25 +66,91 @@ export class BridgeClient { return this.aptosClient.generateSignSubmitTransaction(account, payload); } - async validateTransferNft( + async validateWhitelist( account: AptosAccount, - bridgeAdmin: HexString, collectionCreator: HexString, collectionName: string, - tokenName: string, - propertyVersion: string = "0", - _actionId: number | bigint, - _signature: Uint8Array + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_whitelist", + [], + [collectionCreator.toString(), collectionName, actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateBlacklist( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_blacklist", + [], + [collectionCreator.toString(), collectionName, actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateWithdrawFees( + account: AptosAccount, + to: HexString, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_withdraw_fees", + [], + [to.toString(), actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateTransferNft( + account: AptosAccount, + collection: string, + name: string, + description: string, + maximum: number | bigint, + uri: string, + royaltyPayeeAddress: HexString, + royaltyPointsDenominator: number | bigint, + royaltyPointsNumerator: number | bigint, + mutateSetting: boolean[], + propertyKeys: string[], + propertyValues: number[][], + propertyTypes: string[], + to: HexString, + actionId: number | bigint, + signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_transfer_nft", [], [ - bridgeAdmin.toString(), - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, + collection, + name, + description, + maximum, + uri, + royaltyPayeeAddress.toString(), + royaltyPointsDenominator, + royaltyPointsNumerator, + mutateSetting, + propertyKeys, + propertyValues, + propertyValues, + propertyTypes, + to.toString(), + actionId, + signature, ] ); @@ -97,7 +163,11 @@ export class BridgeClient { collectionCreator: HexString, collectionName: string, tokenName: string, - propertyVersion: string = "0" + propertyVersion: string, + price: number | bigint, + chainNonce: number | bigint, + to: string, + mintWith: string ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::withdraw_nft", @@ -108,6 +178,10 @@ export class BridgeClient { collectionName, tokenName, propertyVersion, + price, + chainNonce, + to, + mintWith, ] ); @@ -116,23 +190,23 @@ export class BridgeClient { async validateBurnNft( account: AptosAccount, - bridgeAdmin: HexString, collectionCreator: HexString, collectionName: string, tokenName: string, - propertyVersion: string = "0", - _actionId: number | bigint, - _signature: Uint8Array + propertyVersion: string, + actionId: number | bigint, + signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_burn_nft", [], [ - bridgeAdmin.toString(), collectionCreator.toString(), collectionName, tokenName, propertyVersion, + actionId, + signature, ] ); @@ -145,7 +219,11 @@ export class BridgeClient { collectionCreator: HexString, collectionName: string, tokenName: string, - propertyVersion: string = "0" + propertyVersion: string, + price: number | bigint, + chainNonce: number | bigint, + to: string, + mintWith: string ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::freeze_nft", @@ -156,6 +234,10 @@ export class BridgeClient { collectionName, tokenName, propertyVersion, + price, + chainNonce, + to, + mintWith, ] ); @@ -164,23 +246,25 @@ export class BridgeClient { async validateUnfreezeNft( account: AptosAccount, - bridgeAdmin: HexString, collectionCreator: HexString, collectionName: string, tokenName: string, - propertyVersion: string = "0", - _actionId: number | bigint, - _signature: Uint8Array + propertyVersion: string, + to: HexString, + actionId: number | bigint, + signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_unfreeze_nft", [], [ - bridgeAdmin.toString(), collectionCreator.toString(), collectionName, tokenName, propertyVersion, + to.toString(), + actionId, + signature, ] ); diff --git a/src/helpers/aptos/bridge_client_abis.ts b/src/helpers/aptos/bridge_client_abis.ts index 5b81885e7..d79a5b338 100644 --- a/src/helpers/aptos/bridge_client_abis.ts +++ b/src/helpers/aptos/bridge_client_abis.ts @@ -7,14 +7,20 @@ export const BRIDGE_ABIS = [ "0107756e70617573658ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000209616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/update_group_key.abi "01107570646174655f67726f75705f6b65798ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi + "011276616c69646174655f77686974656c6973748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi + "011276616c69646174655f626c61636b6c6973748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi + "011676616c69646174655f77697468647261775f666565738ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi "011576616c69646174655f7472616e736665725f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi - "010c77697468647261775f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000050c6272696467655f61646d696e0412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02", + "010c77697468647261775f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000090c6272696467655f61646d696e0412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", // ../build/aptos-bridge/abis/bridge/validate_burn_nft.abi - "011176616c69646174655f6275726e5f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", + "011176616c69646174655f6275726e5f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/freeze_nft.abi - "010a667265657a655f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000050c6272696467655f61646d696e0412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02", + "010a667265657a655f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000090c6272696467655f61646d696e0412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi "011576616c69646174655f756e667265657a655f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", ]; diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts index ddce3595d..4e8cc85a3 100644 --- a/src/helpers/aptos/index.ts +++ b/src/helpers/aptos/index.ts @@ -70,11 +70,11 @@ export async function aptosHelper({ }, async transferNftToForeign( sender, - _chain_nonce, - _to, + chain_nonce, + to, id, - _txFees, - _mintWith, + txFees, + mintWith, _gasLimit? ) { const receipt = await bridgeClient.freezeNft( @@ -83,12 +83,28 @@ export async function aptosHelper({ HexString.ensure(id.native.collection_creator), id.native.collection_name, id.native.token_name, - id.native.property_version.toString() + id.native.property_version.toString(), + BigInt(txFees.toString()), + chain_nonce, + to, + mintWith ); return receipt; }, - async unfreezeWrappedNft(_sender, _to, _id, _txFees, _nonce) { - throw new Error("Method not implemented."); + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const receipt = await bridgeClient.withdrawNft( + sender, + HexString.ensure(bridge), + HexString.ensure(id.native.collection_creator), + id.native.collection_name, + id.native.token_name, + id.native.property_version.toString(), + BigInt(txFees.toString()), + parseInt(nonce), + to, + id.native.collection_creator + ); + return receipt; }, }; } From cc5418583e80b355a817ccae0b5f4b696d79277e Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 18 Sep 2022 12:09:08 +0300 Subject: [PATCH 682/956] reject default mint with Tezos --- src/factory/cons.ts | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index c7f2794d0..3e99ac0b4 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -28,6 +28,10 @@ export function getDefaultContract( fromChain: FullChain, toChain: FullChain ): string | undefined { + const defaultMintError = new Error( + `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` + ); + const from = fromChain.getNonce(); const to = toChain.getNonce(); @@ -44,22 +48,28 @@ export function getDefaultContract( if ( typeof window !== "undefined" && - (/(testing\.bridge)/.test(window.location.origin) || + (/(allowDefaultMint=true)/.test(window.location.search) || /testnet/.test(window.location.pathname)) ) { return contract; } if (fromType === ChainType.EVM && toType === ChainType.EVM) { - return undefined; + throw defaultMintError; } - if (fromType === ChainType.ELROND && toType === ChainType.EVM) { - return undefined; + if ( + (fromType === ChainType.EVM && toType === ChainType.ELROND) || + (fromType === ChainType.ELROND && toType === ChainType.EVM) + ) { + throw defaultMintError; } - if (fromType === ChainType.EVM && toType === ChainType.ELROND) { - return undefined; + if ( + (fromType === ChainType.EVM && toType === ChainType.TEZOS) || + (fromType === ChainType.TEZOS && toType === ChainType.EVM) + ) { + throw defaultMintError; } return contract; From e854de0352db411a048c8e7bb4645c0840c81a13 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 18 Sep 2022 18:45:54 +0300 Subject: [PATCH 683/956] add headers to sc-verify, remove EVM to EVM rejection --- src/factory/cons.ts | 9 +++++++-- src/factory/index.ts | 25 +++++++++++++++++-------- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 3e99ac0b4..74f9713cd 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -10,6 +10,11 @@ import { NftInfo, FullChain } from ".."; import { CHAIN_INFO, ChainType } from "../consts"; +export const _headers = { + "Content-Type": "application/json", + Accept: "*/*", +}; + export function exchangeRateRepo( baseUrl: string ): ExchangeRateRepo & BatchExchangeRateRepo { @@ -54,9 +59,9 @@ export function getDefaultContract( return contract; } - if (fromType === ChainType.EVM && toType === ChainType.EVM) { + /*if (fromType === ChainType.EVM && toType === ChainType.EVM) { throw defaultMintError; - } + }*/ if ( (fromType === ChainType.EVM && toType === ChainType.ELROND) || diff --git a/src/factory/index.ts b/src/factory/index.ts index 4cf063f23..84b146667 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -21,7 +21,7 @@ import { import BigNumber from "bignumber.js"; import axios from "axios"; -import { exchangeRateRepo, getDefaultContract } from "./cons"; +import { exchangeRateRepo, getDefaultContract, _headers } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { bridgeHeartbeat } from "../heartbeat"; import { ethers, utils } from "ethers"; @@ -540,12 +540,18 @@ export function ChainFactory( tokenId?: string ): Promise { const res = await axios - .post<{ data: string }>(`${appConfig.scVerifyUri}/default/`, { - sc: from, - chain: tc, - fromChain: fc, - tokenId, - }) + .post<{ data: string }>( + `${appConfig.scVerifyUri}/default/`, + { + sc: from, + chain: tc, + fromChain: fc, + tokenId, + }, + { + headers: _headers, + } + ) .catch(() => { return undefined; }); @@ -562,7 +568,10 @@ export function ChainFactory( const res = await axios .post<{ data: "allowed" | "not allowed" }>( `${appConfig.scVerifyUri}/verify`, - { from, to, targetChain, fromChain, tokenId } + { from, to, targetChain, fromChain, tokenId }, + { + headers: _headers, + } ) .catch(() => undefined); From 4b150994117ffa26ff509ad8cac921b3e136fc74 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Mon, 19 Sep 2022 11:42:39 +0300 Subject: [PATCH 684/956] add Mainnet Abeychain --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index c22f29223..2a4d73977 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -621,6 +621,17 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", }, + abeyChainParams: { + nonce: Chain.ABEYCHAIN, + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ABEYCHAIN), + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + }, secretParams: { notifier, rpcUrl: MainNetRpcUri.SECRET, From 1d0cc45930f6cc68a48ce46256fa90c0fe10dde2 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 20 Sep 2022 14:26:57 +0300 Subject: [PATCH 685/956] Vechain <-> EVM default mint rejection --- src/factory/cons.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 74f9713cd..5e75bf2ea 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -8,7 +8,7 @@ import { import { NftInfo, FullChain } from ".."; -import { CHAIN_INFO, ChainType } from "../consts"; +import { CHAIN_INFO, ChainType, Chain } from "../consts"; export const _headers = { "Content-Type": "application/json", @@ -59,9 +59,12 @@ export function getDefaultContract( return contract; } - /*if (fromType === ChainType.EVM && toType === ChainType.EVM) { + if ( + (from === Chain.VECHAIN && toType === ChainType.EVM) || + (to === Chain.VECHAIN && fromType === ChainType.EVM) + ) { throw defaultMintError; - }*/ + } if ( (fromType === ChainType.EVM && toType === ChainType.ELROND) || From d830194ffef52af7a84ef5825ada27142f981ab2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 20 Sep 2022 03:02:46 +0530 Subject: [PATCH 686/956] near: update contract address --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 2a4d73977..de0c85d43 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -344,8 +344,8 @@ export namespace ChainFactoryConfigs { networkId: "testnet", nonce: Chain.NEAR, rpcUrl: TestNetRpcUri.NEAR, - bridge: "xp_minter.testnet", - xpnft: "xp_nft12.testnet", + bridge: "xp_bridge_1.testnet", + xpnft: "xp_nft_1.testnet", feeMargin, }, }; From 9bde0f20f5e492108f429f46dec66c4a5535211d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 20 Sep 2022 17:03:47 +0530 Subject: [PATCH 687/956] near: pass notifier, readonly params --- src/factory/factories.ts | 1 + src/helpers/near.ts | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index de0c85d43..3ed195c54 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -347,6 +347,7 @@ export namespace ChainFactoryConfigs { bridge: "xp_bridge_1.testnet", xpnft: "xp_nft_1.testnet", feeMargin, + notifier, }, }; }; diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 05e90b26b..614e67f74 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -22,13 +22,13 @@ import { type NearTxResult = [FinalExecutionOutcome, any]; export type NearParams = { - networkId: string; - nonce: number; - rpcUrl: string; - bridge: string; - xpnft: string; - feeMargin: FeeMargins; - notifier: EvNotifier; + readonly networkId: string; + readonly nonce: number; + readonly rpcUrl: string; + readonly bridge: string; + readonly xpnft: string; + readonly feeMargin: FeeMargins; + readonly notifier: EvNotifier; }; export type NearNFT = { tokenId: string; From 415c554ebd5efd1cf672b63ce78046f46f8fe59d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 20 Sep 2022 17:19:28 +0530 Subject: [PATCH 688/956] near: pass nft id as argument --- src/helpers/near.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 614e67f74..992f9be79 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -32,6 +32,7 @@ export type NearParams = { }; export type NearNFT = { tokenId: string; + contract: string; }; export type NearHelper = ChainNonceGet & @@ -84,6 +85,7 @@ export async function nearHelperFactory({ to, amt: new BigNumber(txFees), mint_with, + token_contract: id.native.contract, }, methodName: "freeze_nft", attachedDeposit: new BN(txFees.toString()), @@ -106,6 +108,7 @@ export async function nearHelperFactory({ chain_nonce: parseInt(nonce), to, amt: parseInt(txFees.toString()), + token_contract: id.native.contract, }, methodName: "withdraw_nft", attachedDeposit: new BN(txFees.toString()), From 6bdc536d4b42704d81b354c763641b205098a51e Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 21 Sep 2022 12:33:49 +0300 Subject: [PATCH 689/956] get mintWith only for transfer type events --- src/factory/index.ts | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 84b146667..e34cbc1f0 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -730,19 +730,6 @@ export function ChainFactory( //@ts-ignore nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); - const mw = - "contract" in nft.native && - mintWith && - (await checkMintWith( - nft.collectionIdent, - mintWith, - toChain.getNonce(), - fromChain.getNonce(), - tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined - )) - ? mintWith - : getDefaultContract(nft, fromChain, toChain); - if (appConfig.network === "mainnet") { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); } @@ -755,8 +742,6 @@ export function ChainFactory( throw Error("invalid address"); } - console.log(`Minting With : ${mw}`); - if (await isWrappedNft(nft, fromChain.getNonce())) { await algoOptInCheck(nft, toChain, receiver); @@ -770,6 +755,21 @@ export function ChainFactory( return res; } else { + const mw = + "contract" in nft.native && + mintWith && + (await checkMintWith( + nft.collectionIdent, + mintWith, + toChain.getNonce(), + fromChain.getNonce(), + tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined + )) + ? mintWith + : getDefaultContract(nft, fromChain, toChain); + + console.log(`Minting With : ${mw}`); + if (mw === undefined) { throw new Error(`Mint with is not set`); } From 964e10733e9023ff4ed6f63a1089edc6e22d008e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 23 Sep 2022 13:42:44 +0530 Subject: [PATCH 690/956] factory: testnet: skale: update testnet --- src/consts.ts | 2 +- src/factory/factories.ts | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index f80e1c326..457bba182 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -50,7 +50,7 @@ export enum TestNetRpcUri { GATECHAIN = "https://meteora-evm.gatenode.cc", VECHAIN = "https://sync-testnet.veblocks.net", SECRET = "https://pulsar-2.api.trivium.network:9091/", - SKALE = "https://staging-v2.skalenodes.com/v1/rapping-zuben-elakrab", + SKALE = "https://staging-v2.skalenodes.com/v1/actual-secret-cebalrai", HEDERA = "https://0.testnet.hedera.com/", NEAR = "https://rpc.testnet.near.org", MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 3ed195c54..6e7631e46 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -287,15 +287,15 @@ export namespace ChainFactoryConfigs { erc1155Minter: "0x0000000000000000000000000000000002da3c20", }, skaleParams: { - notifier, - feeMargin, - erc721Minter: "0x5d437362976c68D6504AD043a8dc4dcc9915A7D5", - erc1155Minter: "0x6dD7C761926608a015f7d905F7d461e717eB084e", - erc1155_addr: "0x572A456667564378506D9Da9F267A8B6175500e9", - erc721_addr: "0x25372FE786BAa07aCB62dd2d14fe3BF1C2f2100D", - minter_addr: "0xc2638a6E70A9Be5ed69596584C5d64319F64933c", nonce: Chain.SKALE, + notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.SKALE), + feeMargin, + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", }, godwokenParams: { notifier, From 9de9de721a611edba6b0cc2f158f8ba78a152d6d Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 25 Sep 2022 12:26:56 +0300 Subject: [PATCH 691/956] upgrade secretjs to 1.4.0 --- package.json | 2 +- yarn.lock | 30 ++++++++++++++++++++++++------ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 66130d712..4c952acbb 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "1.0.0", - "secretjs": "=1.3.0-beta.25", + "secretjs": "^1.4.0", "socket.io-client": "^4.1.3", "tonweb": "^0.0.43", "tonweb-mnemonic": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index a5eb1d5d5..f9904e734 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,13 +37,20 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.18.3": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259" + integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== + dependencies: + regenerator-runtime "^0.13.4" + "@cosmjs/encoding@0.27.1": version "0.27.1" resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.27.1.tgz#3cd5bc0af743485eb2578cdb08cfa84c86d610e1" @@ -1894,7 +1901,7 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^18.7.13": +"@types/node@*", "@types/node@>=12.12.47", "@types/node@^18.7.13": version "18.7.15" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.15.tgz#20ae1ec80c57ee844b469f968a1cd511d4088b29" integrity sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ== @@ -1909,6 +1916,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== +"@types/node@>=13.7.0": + version "18.7.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.20.tgz#d9442de7b5cb166476340b4271b15300fe058a39" + integrity sha512-adzY4vLLr5Uivmx8+zfSJ5fbdgKxX8UMtjtl+17n0B1q1Nz8JEmE151vefMdpD+1gyh+77weN4qEhej/O7budQ== + "@types/node@^10.3.2": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -2625,6 +2637,11 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== +big-integer@1.6.51: + version "1.6.51" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + bigint-buffer@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" @@ -6906,10 +6923,10 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secretjs@=1.3.0-beta.25: - version "1.3.0-beta.25" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.3.0-beta.25.tgz#d3aced17bccc6da46e68ab64f846d51bb9ea6b49" - integrity sha512-fHTMGtHGP7aEVBD1142xTb2k7547misrnCs+EKMZN+CCr+fl1PZdEVX4r3MjC+qRpQIMgwVVXJZr4EUNwN7u3A== +secretjs@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.4.0.tgz#2d439df0134d9593ac71591994b31ae0b8a45260" + integrity sha512-GfQkNbxlmskU74zt90LlxudlpG8rm5eRt+6VqufUucxpYHCN8aT9xG6/KhtYrzh+46reTnTeiBiPpIv/c0SfpQ== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" @@ -6919,6 +6936,7 @@ secretjs@=1.3.0-beta.25: "@noble/secp256k1" "1.6.3" "@osmonauts/helpers" "0.3.8" bech32 "2.0.0" + big-integer "1.6.51" bignumber.js "9.0.2" bip32 "2.0.6" bip39 "3.0.4" From d602b6f2053ba2c5f29d00c3c6db44476a8a66e5 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 3 Oct 2022 17:38:10 +0530 Subject: [PATCH 692/956] helper: dfinity: add nft listing --- src/helpers/dfinity/dfinity.ts | 74 +++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/src/helpers/dfinity/dfinity.ts b/src/helpers/dfinity/dfinity.ts index a4ae72bf3..67a48ee0c 100644 --- a/src/helpers/dfinity/dfinity.ts +++ b/src/helpers/dfinity/dfinity.ts @@ -31,6 +31,7 @@ import { FeeMargins, GetFeeMargins, MintNft, + NftInfo, PreTransfer, TransferNftForeign, UnfreezeForeignNft, @@ -51,6 +52,25 @@ export type DfinityMintArgs = { uri: string; }; +const Metadata = IDL.Variant({ + fungible: IDL.Record({ + decimals: IDL.Nat8, + metadata: IDL.Opt(IDL.Vec(IDL.Nat8)), + name: IDL.Text, + symbol: IDL.Text, + }), + nonfungible: IDL.Record({ metadata: IDL.Opt(IDL.Vec(IDL.Nat8)) }), +}); +const CommonError = IDL.Variant({ + InvalidToken: IDL.Text, + Other: IDL.Text, +}); + +const Result_Bearer = IDL.Variant({ + ok: IDL.Text, + err: CommonError, +}); + const User = IDL.Variant({ principal: IDL.Principal, address: IDL.Text, @@ -83,7 +103,9 @@ export type DfinityHelper = ChainNonceGet & > & BalanceCheck & GetFeeMargins & - MintNft; + MintNft & { + nftList(owner: string, contract: string): Promise[]>; + }; export type DfinityParams = { agent: HttpAgent; @@ -182,7 +204,7 @@ export async function dfinityHelper( [MintRequest], [ { - metadata: [[...Buffer.from(options.uri)]], + metadata: [...Buffer.from(options.uri)], to: { principal: owner.getPrincipal(), }, @@ -209,6 +231,54 @@ export async function dfinityHelper( return "NO TX RESP YET"; }, + /// owner = principal of owner + async nftList(owner, contract) { + let aid = AccountIdentifier.fromPrincipal({ + principal: Principal.fromText(owner), + }); + let tokens: NftInfo[] = []; + const response = await args.agent.query(contract, { + methodName: "getTokens", + arg: encode([], []), + }); + if ("reply" in response) { + let decoded = decode( + [IDL.Vec(IDL.Tuple(Nat32, Metadata))], + response.reply.arg + )[0] as any[]; + await Promise.all( + decoded.map(async (e) => { + let [tokenId, metadata]: [number, any] = e; + let tid = tokenIdentifier(contract, tokenId); + const ownerQuery = await args.agent.query(contract, { + methodName: "bearer", + arg: encode([Text], [tid]), + }); + if ("reply" in ownerQuery) { + const response = decode( + [Result_Bearer], + ownerQuery.reply.arg + )[0] as Record; + if ("ok" in response) { + if (response.ok === aid.toHex()) { + tokens.push({ + collectionIdent: contract, + native: { + canisterId: contract, + tokenId: tokenId.toString(), + }, + uri: Buffer.from( + metadata["nonfungible"]["metadata"] + ).toString("utf-8"), + }); + } + } + } + }) + ); + } + return tokens; + }, async preTransfer(sender, nft) { args.agent.replaceIdentity(sender); From bf5eed1d47021b2fc70e42156a28c45b73b5509c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 7 Oct 2022 18:54:11 +0530 Subject: [PATCH 693/956] helpers: near: add minting functionality --- src/helpers/near.ts | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 992f9be79..6c39e30ca 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -14,6 +14,7 @@ import { FeeMargins, GetFeeMargins, GetProvider, + MintNft, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -35,9 +36,31 @@ export type NearNFT = { contract: string; }; +export type Metadata = { + title?: string; + description?: string; + media?: string; + mediaHash: Uint8Array | null; + issued_at: string | null; + expires_at: string | null; + starts_at: string | null; + updated_at: string | null; + extra?: string; + reference: string | null; + referenceHash: Uint8Array | null; +}; + +export interface NearMintArgs { + contract: string; + token_id: string; + token_owner_id: string; + metadata: Metadata; +} + export type NearHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & + MintNft & EstimateTxFees & ValidateAddress & { XpNft: string; @@ -67,6 +90,19 @@ export async function nearHelperFactory({ getNonce() { return Chain.NEAR; }, + async mintNft(owner, options) { + const result = await owner.functionCall({ + contractId: options.contract, + methodName: "nft_mint", + args: { + token_id: options.token_id, + token_owner_id: options.token_owner_id, + token_metadata: options.metadata, + }, + attachedDeposit: new BN("10000000000000000000000"), // 0.01 Near + }); + return [result, getTransactionLastResult(result)]; + }, XpNft: xpnft, async transferNftToForeign( sender, From 64f38dc2728691a17d54a313f90e05206010f402 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 7 Oct 2022 19:24:37 +0530 Subject: [PATCH 694/956] helpers: near: add approvals functionality --- src/helpers/near.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 6c39e30ca..9447b6b44 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -15,6 +15,8 @@ import { GetFeeMargins, GetProvider, MintNft, + NftInfo, + PreTransfer, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -62,6 +64,7 @@ export type NearHelper = ChainNonceGet & UnfreezeForeignNft & MintNft & EstimateTxFees & + Pick, "preTransfer"> & ValidateAddress & { XpNft: string; } & GetFeeMargins & @@ -80,6 +83,25 @@ export async function nearHelperFactory({ headers: {}, }); + const isApproved = async ( + account: Account, + nft: NftInfo + ): Promise => { + const { tokenId: token_id, contract } = nft.native; + const result = await account.functionCall({ + args: { + token_id, + approved_account_id: bridge, + approval_id: null, + }, + contractId: contract, + methodName: "nft_is_approved", + }); + const res = getTransactionLastResult(result) as boolean; + console.log(res); + return res; + }; + return { async estimateValidateTransferNft(_to, _metadata, _mintWith) { return new BigNumber(0); // TODO @@ -103,6 +125,26 @@ export async function nearHelperFactory({ }); return [result, getTransactionLastResult(result)]; }, + async preTransfer(sender, nft, _fee) { + if (await isApproved(sender, nft)) { + return undefined; + } + const result = await sender + .functionCall({ + contractId: nft.native.contract, + methodName: "nft_approve", + args: { + token_id: nft.native.tokenId, + account_id: bridge, + msg: "Approval for NFT Transfer via XP Network Multichain NFT Bridge", + }, + attachedDeposit: new BN("1000000000000000000000"), // 0.001 Near + }) + .catch((e) => { + return e["transaction_outcome"]["id"]; + }); + return result; + }, XpNft: xpnft, async transferNftToForeign( sender, From 121e70c9ec8721e3940bc8740c687e2039bd898c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 7 Oct 2022 21:56:43 +0530 Subject: [PATCH 695/956] helpers: secret: move metadata into native from generic interface --- src/helpers/chain.ts | 1 - src/helpers/secret.ts | 8 ++++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index f5cdc0eca..1ebd02119 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -10,7 +10,6 @@ export type NftInfo = { readonly uri: string; readonly native: Raw; readonly collectionIdent: string; - readonly metaData?: any; }; /** diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index ad9f7825f..0921c31fc 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,6 +1,9 @@ import BigNumber from "bignumber.js"; import { Bech32, SecretNetworkClient, Tx } from "secretjs"; -import { Snip721MintOptions } from "secretjs/dist/extensions/snip721/types"; +import { + Extension, + Snip721MintOptions, +} from "secretjs/dist/extensions/snip721/types"; import { Snip721GetTokensResponse } from "secretjs/dist/extensions/snip721/msg/GetTokens"; import { EvNotifier } from "../notifier"; import { @@ -24,6 +27,7 @@ export type SecretNftInfo = { chainId: string; tokenId: string; vk: string; + metadata: Extension | undefined; }; export type SecretMintArgs = { url: string; @@ -246,8 +250,8 @@ export async function secretHelperFactory( contractHash: codeHash || "", tokenId: token, vk, + metadata: tokenInfo.all_nft_info.info?.extension, }, - metaData: tokenInfo.all_nft_info.info?.extension, }); }) ); From 18d5d71dbaa61344a78960f1edc460eb1cffb716 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 7 Oct 2022 23:17:19 +0530 Subject: [PATCH 696/956] typescript: remove useless ts-ignores --- src/factory/factories.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 6e7631e46..af6b9bdcb 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -33,7 +33,6 @@ const testnet_middleware_uri = "https://testnet-notifier.xp.network/notify-test/"; export namespace ChainFactoryConfigs { - //@ts-ignore export const TestNet: () => Promise> = async () => { const feeMargin = { min: 1, max: 5 }; const notifier = evNotifier(testnet_middleware_uri); @@ -42,7 +41,6 @@ export namespace ChainFactoryConfigs { const net = new SimpleNet(TestNetRpcUri.VECHAIN); const driver = await Driver.connect(net); const provider = thor.ethers.modifyProvider( - //@ts-ignore new ethers.providers.Web3Provider( new thor.ConnexProvider({ connex: new Framework(driver) }) ) @@ -277,7 +275,7 @@ export namespace ChainFactoryConfigs { }, hederaParams: { notifier, - provider: hethers.getDefaultProvider("testnet"), + provider: hethers.getDefaultProvider("testnet") as any, feeMargin, nonce: Chain.HEDERA, erc721_addr: "0x0000000000000000000000000000000002da3c22", @@ -360,7 +358,6 @@ export namespace ChainFactoryConfigs { const net = new SimpleNet(MainNetRpcUri.VECHAIN); const driver = await Driver.connect(net); const provider = thor.ethers.modifyProvider( - //@ts-ignore new ethers.providers.Web3Provider( new thor.ConnexProvider({ connex: new Framework(driver) }) ) From 2421c52157ea99bf23b3d77fe4e312efe7cf8bfa Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 9 Oct 2022 15:52:50 +0530 Subject: [PATCH 697/956] near: add a list method --- src/factory/index.ts | 6 +----- src/helpers/near.ts | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index e34cbc1f0..73f521b03 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -716,11 +716,7 @@ export function ChainFactory( ) => { //@ts-ignore if (nft.native.contract) { - if ( - fromChain.getNonce() !== 9 && - fromChain.getNonce() !== 18 && - fromChain.getNonce() !== 24 - ) { + if (![9, 18, 24, 31].includes(fromChain.getNonce())) { //@ts-ignore checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); } diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 9447b6b44..240242f2d 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -67,6 +67,7 @@ export type NearHelper = ChainNonceGet & Pick, "preTransfer"> & ValidateAddress & { XpNft: string; + nftList(owner: Account, contract: string): Promise[]>; } & GetFeeMargins & GetProvider; export async function nearHelperFactory({ @@ -98,7 +99,6 @@ export async function nearHelperFactory({ methodName: "nft_is_approved", }); const res = getTransactionLastResult(result) as boolean; - console.log(res); return res; }; @@ -125,6 +125,25 @@ export async function nearHelperFactory({ }); return [result, getTransactionLastResult(result)]; }, + async nftList(owner, contract) { + const result = await owner.functionCall({ + contractId: contract, + methodName: "nft_tokens_for_owner", + args: { account_id: owner.accountId }, + }); + const res = getTransactionLastResult(result) as any[]; + + return res.map((r) => { + return { + native: { + tokenId: r.token_id, + contract, + }, + collectionIdent: contract, + uri: r.metadata.extra || r.metadata.media, + }; + }); + }, async preTransfer(sender, nft, _fee) { if (await isApproved(sender, nft)) { return undefined; From 46156c8ff4e6b1522c7109d6bb64096106e7af33 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 9 Oct 2022 16:46:41 +0530 Subject: [PATCH 698/956] dfinity: fix metadata decoding --- src/helpers/dfinity/dfinity.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/dfinity/dfinity.ts b/src/helpers/dfinity/dfinity.ts index 67a48ee0c..d6a16633a 100644 --- a/src/helpers/dfinity/dfinity.ts +++ b/src/helpers/dfinity/dfinity.ts @@ -204,7 +204,7 @@ export async function dfinityHelper( [MintRequest], [ { - metadata: [...Buffer.from(options.uri)], + metadata: [[...Buffer.from(options.uri)]], to: { principal: owner.getPrincipal(), }, @@ -268,7 +268,7 @@ export async function dfinityHelper( tokenId: tokenId.toString(), }, uri: Buffer.from( - metadata["nonfungible"]["metadata"] + metadata["nonfungible"]["metadata"][0] ?? [] ).toString("utf-8"), }); } From dda4391a5f56e49fb1b1e469c0a7b57788c2d2a9 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 9 Oct 2022 15:05:58 +0300 Subject: [PATCH 699/956] add getTokenURI method to Algorand, Elrond, Tezos, Tron and EVM --- src/helpers/algorand.ts | 15 +++++++++++++-- src/helpers/chain.ts | 4 ++++ src/helpers/elrond.ts | 18 ++++++++++++++++-- src/helpers/tezos.ts | 22 ++++++++++++++++++++-- src/helpers/tron.ts | 15 ++++++++++++++- src/helpers/web3.ts | 11 ++++++++++- 6 files changed, 77 insertions(+), 8 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index 1f45cbe73..c33c58d18 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -16,7 +16,7 @@ import { } from ".."; import MyAlgoConnect from "@randlabs/myalgo-connect"; import { EvNotifier } from "../notifier"; -import { BalanceCheck, FeeMargins, GetFeeMargins } from "./chain"; +import { BalanceCheck, FeeMargins, GetFeeMargins, GetTokenURI } from "./chain"; type TxResp = { txId: string; @@ -139,7 +139,8 @@ export type AlgorandHelper = ChainNonceGet & PreTransfer, "preTransfer" > & { XpNft: string } & GetFeeMargins & - BalanceCheck; + BalanceCheck & + GetTokenURI; export type AlgorandParams = { algodApiKey: string; @@ -468,6 +469,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { .catch(() => undefined); if (assetRes == undefined) return []; const assetInfo = assetRes.asset; + const bal = await indexer .lookupAssetBalances(nftId) .currencyGreaterThan(0) @@ -550,5 +552,14 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { ledger: "any", }; }, + async getTokenURI(contract, tokenId) { + if (algosdk.isValidAddress(contract) && tokenId) { + const res = await indexer.lookupAssetByID(+tokenId).do(); + console.log(res); + + return ""; + } + return ""; + }, }; } diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 1ebd02119..47e74b970 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -133,6 +133,10 @@ export interface ExtractTxnStatus { extractTxnStatus(txn: string): Promise; } +export interface GetTokenURI { + getTokenURI(contract: string, tokenId: string): Promise; +} + export interface TransferNftForeignBatch { transferNftBatchToForeign( sender: Signer, diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 37dfce152..4aaffdecb 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -26,7 +26,7 @@ import { UserSigner, WalletConnectProvider, } from "@elrondnetwork/erdjs"; -import axios from "axios"; +import axios, { AxiosError, AxiosResponse } from "axios"; import BigNumber from "bignumber.js"; import { BalanceCheck, @@ -41,6 +41,7 @@ import { GetFeeMargins, FeeMargins, IsContractAddress, + GetTokenURI, } from "./chain"; import { Chain, @@ -54,6 +55,7 @@ import { ValidateAddress, } from ".."; import { EvNotifier } from "../notifier"; +import { Base64 } from "js-base64"; type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; @@ -207,7 +209,8 @@ export type ElrondHelper = BalanceCheck & SetESDTRoles & { XpNft: string } & GetFeeMargins & { wegldBalance(address: string): Promise; unwrapWegld(sender: ElrondSigner, amt: BigNumber): Promise; - } & IsContractAddress; + } & IsContractAddress & + GetTokenURI; /** * Create an object implementing cross chain utilities for elrond @@ -852,6 +855,17 @@ export async function elrondHelperFactory( return false; } }, + async getTokenURI(_, tokenId) { + if (tokenId) { + const res = await axios(`https://api.elrond.com/nfts/${tokenId}`).catch( + () => ({ data: null }) + ); + if (res.data?.uris) { + return Base64.decode(res.data?.uris[1]); + } + } + return ""; + }, }; } diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index f7e76ded0..c738cb575 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -27,7 +27,12 @@ import { import * as utils from "@taquito/utils"; import BigNumber from "bignumber.js"; import { EvNotifier } from "../notifier"; -import { FeeMargins, GetFeeMargins, WhitelistCheck } from "./chain"; +import { + FeeMargins, + GetFeeMargins, + WhitelistCheck, + GetTokenURI, +} from "./chain"; type TezosSigner = WalletProvider | Signer; @@ -67,7 +72,8 @@ export type TezosHelper = TransferNftForeign< } & { XpNft: string; } & GetFeeMargins & - WhitelistCheck; + WhitelistCheck & + GetTokenURI; export type TezosParams = { Tezos: TezosToolkit; @@ -275,5 +281,17 @@ export async function tezosHelperFactory({ return whitelisted == 2; }, + async getTokenURI(contract, tokenId) { + if (utils.validateAddress(contract) && tokenId) { + const _contract = await Tezos.contract.at(contract); + + const storage = (await _contract.storage()) as any; + const tokenStorage = await storage.token_metadata.get(tokenId); + if (tokenStorage) { + return utils.bytes2Char(tokenStorage.token_info?.get("")); + } + } + return ""; + }, }; } diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 9b53d47cb..0db67b6aa 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -33,6 +33,7 @@ import { TransactionStatus, ValidateAddress, WhitelistCheck, + GetTokenURI, } from ".."; import { ChainNonceGet, NftInfo } from ".."; import { EvNotifier } from "../notifier"; @@ -94,7 +95,8 @@ export type TronHelper = BaseTronHelper & WhitelistCheck & { XpNft: string; XpNft1155: string; - } & GetFeeMargins; + } & GetFeeMargins & + GetTokenURI; export async function baseTronHelperFactory( provider: TronWeb @@ -465,5 +467,16 @@ export async function tronHelperFactory( from: tronParams.provider.defaultAddress.base58, }); }, + // const minter = await provider.contract(Minter__factory.abi, minter_addr); + async getTokenURI(contract, tokenId) { + if (provider.isAddress(contract) && tokenId) { + const _contract = await provider.contract( + UserNftMinter__factory.abi, + contract + ); + return await _contract.tokenURI(tokenId).catch(() => ""); + } + return ""; + }, }; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index f710747b7..1456ee131 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -39,6 +39,7 @@ import { EstimateTxFees, ExtractAction, ExtractTxnStatus, + GetTokenURI, NftInfo, PreTransfer, PreTransferRawTxn, @@ -145,7 +146,8 @@ export type Web3Helper = BaseWeb3Helper & XpNft1155: string; } & WhitelistCheck & GetFeeMargins & - IsContractAddress; + IsContractAddress & + GetTokenURI; /** * Create an object implementing minimal utilities for a web3 chain @@ -487,6 +489,13 @@ export async function web3HelperFactory( } return TransactionStatus.UNKNOWN; }, + async getTokenURI(contract, tokenId) { + if (ethers.utils.isAddress(contract) && tokenId) { + const erc721 = UserNftMinter__factory.connect(contract!, provider); + return await erc721.tokenURI(tokenId).catch(() => ""); + } + return ""; + }, async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { const tx = await minter .connect(signer) From 587141b44fc1512301d9f3022648611164549f3e Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 9 Oct 2022 22:03:12 +0300 Subject: [PATCH 700/956] fix axios imports --- src/helpers/elrond.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 4aaffdecb..e497ee961 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -26,7 +26,7 @@ import { UserSigner, WalletConnectProvider, } from "@elrondnetwork/erdjs"; -import axios, { AxiosError, AxiosResponse } from "axios"; +import axios from "axios"; import BigNumber from "bignumber.js"; import { BalanceCheck, From 73638382797ec081c981451e88dea0d5834736d4 Mon Sep 17 00:00:00 2001 From: Yura Dukhno <91468889+YuraDXPNetwork@users.noreply.github.com> Date: Tue, 11 Oct 2022 12:13:20 +0300 Subject: [PATCH 701/956] Update cons.ts --- src/factory/cons.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 5e75bf2ea..3a25e2ea3 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -79,6 +79,10 @@ export function getDefaultContract( ) { throw defaultMintError; } + + if (fromType === ChainType.TRON) { + throw defaultMintError; + } return contract; } From 010b80c9fc7ef512b93d37bb44fe86730e98b5f3 Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Thu, 13 Oct 2022 10:22:13 +0300 Subject: [PATCH 702/956] deployed smart contractrs moonbeam mainnet changed --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index af6b9bdcb..9d4a0932f 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -613,11 +613,11 @@ export namespace ChainFactoryConfigs { notifier, feeMargin, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.MOONBEAM), - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc721Minter: "", + erc1155Minter: "", + erc1155_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", + erc721_addr: "0xfD3Ce0a10D4731b136a7C9e3f8a37edA1EFbf77f", + minter_addr: "0xBA3Cc81cfc54a4ce99638b5da1F17b15476E7231", }, abeyChainParams: { nonce: Chain.ABEYCHAIN, From e0bcaa1f9cd2940d743a1d8a1eb7876d2a796e96 Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Thu, 13 Oct 2022 14:00:10 +0300 Subject: [PATCH 703/956] add aptos to testnet and chaininfo --- src/consts.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 457bba182..6d01582a5 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -5,6 +5,7 @@ import { } from "./helpers/elrond"; import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; + import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; import { AlgorandParams, @@ -26,7 +27,7 @@ import { DfinityParams, } from "./helpers/dfinity/dfinity"; import { NearHelper, NearParams, nearHelperFactory } from "./helpers/near"; -import { AptosHelper, AptosParams } from "./helpers/aptos"; +import { aptosHelper, AptosHelper, AptosParams } from "./helpers/aptos"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -205,6 +206,7 @@ export enum ChainType { TON = "TON", NEAR = "NEAR", HEDERA = "HEDERA", + APTOS = "APTOS", } export const CHAIN_INFO: ChainInfo = new Map(); @@ -524,3 +526,12 @@ CHAIN_INFO.set(Chain.ABEYCHAIN, { chainId: 178, type: ChainType.EVM, }); +CHAIN_INFO.set(Chain.APTOS, { + blockExplorerUrl: "https://explorer.aptoslabs.com/", + constructor: aptosHelper, + currency: SupportedCurrency.APTOS, + decimals: 1e18, + name: "Aptos", + nonce: Chain.APTOS, + type: ChainType.APTOS, +}); From efee21024c8a2926a4c87b1f008a261125c78165 Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Thu, 13 Oct 2022 14:10:16 +0300 Subject: [PATCH 704/956] add aptos to testnet and chaininfo --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 6d01582a5..cd634f1b2 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -529,7 +529,7 @@ CHAIN_INFO.set(Chain.ABEYCHAIN, { CHAIN_INFO.set(Chain.APTOS, { blockExplorerUrl: "https://explorer.aptoslabs.com/", constructor: aptosHelper, - currency: SupportedCurrency.APTOS, + currency: SupportedCurrency.APT, decimals: 1e18, name: "Aptos", nonce: Chain.APTOS, From b17ce1abca592bb85d0d591fa4e4d42b61f47a89 Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Thu, 13 Oct 2022 14:30:43 +0300 Subject: [PATCH 705/956] add aptos to testnet and chaininfo --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index cd634f1b2..6d01582a5 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -529,7 +529,7 @@ CHAIN_INFO.set(Chain.ABEYCHAIN, { CHAIN_INFO.set(Chain.APTOS, { blockExplorerUrl: "https://explorer.aptoslabs.com/", constructor: aptosHelper, - currency: SupportedCurrency.APT, + currency: SupportedCurrency.APTOS, decimals: 1e18, name: "Aptos", nonce: Chain.APTOS, From 32f3a35db85120b1ba82e900fb2b178f223a65eb Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 13 Oct 2022 18:53:44 +0530 Subject: [PATCH 706/956] exchange-rate: bump --- package.json | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 4c952acbb..24c81ff22 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#168cdfdef984ef482909d78c365f9b39aede0366", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/yarn.lock b/yarn.lock index f9904e734..0d19b2531 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3363,9 +3363,9 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#168cdfdef984ef482909d78c365f9b39aede0366": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#8e87b6c98ee57df76edace5f6ccfa879e952d2ac" + resolved "git+https://github.com/xp-network/exchange-rate#168cdfdef984ef482909d78c365f9b39aede0366" dependencies: axios "^0.21.1" From bd5012633ad169154a7817ede0ecf0e109a9e99c Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 13 Oct 2022 18:59:42 +0300 Subject: [PATCH 707/956] fix getTokenURI for algo and elrond --- src/helpers/algorand.ts | 10 +++++----- src/helpers/elrond.ts | 15 ++++++++++----- src/helpers/tron.ts | 3 ++- tsconfig.json | 2 +- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index c33c58d18..c71f38deb 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -552,12 +552,12 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { ledger: "any", }; }, - async getTokenURI(contract, tokenId) { - if (algosdk.isValidAddress(contract) && tokenId) { + async getTokenURI(_, tokenId) { + if (tokenId) { const res = await indexer.lookupAssetByID(+tokenId).do(); - console.log(res); - - return ""; + if (res?.asset?.params) { + return res.asset.params.url as string; + } } return ""; }, diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index e497ee961..d848b6426 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -857,11 +857,16 @@ export async function elrondHelperFactory( }, async getTokenURI(_, tokenId) { if (tokenId) { - const res = await axios(`https://api.elrond.com/nfts/${tokenId}`).catch( - () => ({ data: null }) - ); - if (res.data?.uris) { - return Base64.decode(res.data?.uris[1]); + const url = `https://api.elrond.com/nfts/${tokenId}`; + const res = await axios(url).catch(() => ({ data: null })); + + if (res.data?.metadata) { + return url; + } + + const uri = res.data?.uris[1] || res.data?.uris[0]; + if (uri) { + return Base64.decode(uri); } } return ""; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 0db67b6aa..7b618d899 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -469,12 +469,13 @@ export async function tronHelperFactory( }, // const minter = await provider.contract(Minter__factory.abi, minter_addr); async getTokenURI(contract, tokenId) { + return ""; if (provider.isAddress(contract) && tokenId) { const _contract = await provider.contract( UserNftMinter__factory.abi, contract ); - return await _contract.tokenURI(tokenId).catch(() => ""); + return await _contract.tokenURI(+tokenId).call(); } return ""; }, diff --git a/tsconfig.json b/tsconfig.json index 4c4df051a..bd2807a16 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "incremental": false, "target": "es2017", "outDir": "./dist", - //"outDir": "../bridge-interface/node_modules/xp.network/dist", + //"outDir": "../w-nft-api/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs", From d3bb21798f3a9a3567998e3382cd2924a7483fba Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 18 Oct 2022 11:17:42 +0300 Subject: [PATCH 708/956] add dfinityUserNftsByContract --- package.json | 1 + src/helpers/dfinity/dfinity.ts | 31 +++++++++++++++++ yarn.lock | 62 ++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) diff --git a/package.json b/package.json index 24c81ff22..48f1e93a5 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@hashgraph/hethers": "1.1.2", "@json-rpc-tools/utils": "^1.7.6", "@project-serum/anchor": "^0.25.0-beta.1", + "@psychedelic/dab-js": "^1.4.13", "@randlabs/myalgo-connect": "^1.1.1", "@solana/spl-token": "^0.2.0", "@solana/web3.js": "^1.44.2", diff --git a/src/helpers/dfinity/dfinity.ts b/src/helpers/dfinity/dfinity.ts index d6a16633a..b3c8fa76b 100644 --- a/src/helpers/dfinity/dfinity.ts +++ b/src/helpers/dfinity/dfinity.ts @@ -24,6 +24,8 @@ import { Principal } from "@dfinity/principal"; import BigNumber from "bignumber.js"; import { Chain } from "../../consts"; import { EvNotifier } from "../../notifier"; +import { getNFTActor } from "@psychedelic/dab-js"; + import { BalanceCheck, ChainNonceGet, @@ -105,6 +107,10 @@ export type DfinityHelper = ChainNonceGet & GetFeeMargins & MintNft & { nftList(owner: string, contract: string): Promise[]>; + dfinityUserNftsByContract( + principalContract: string, + contractId: string + ): Promise[]>; }; export type DfinityParams = { @@ -231,6 +237,7 @@ export async function dfinityHelper( return "NO TX RESP YET"; }, + /// owner = principal of owner async nftList(owner, contract) { let aid = AccountIdentifier.fromPrincipal({ @@ -279,6 +286,30 @@ export async function dfinityHelper( } return tokens; }, + async dfinityUserNftsByContract(principalContract, canisterId) { + try { + const NFTActor = getNFTActor({ + canisterId, + agent: args.agent as any, + standard: "EXT", + }); + let nfts = await NFTActor.getUserTokens( + Principal.fromText(principalContract) as any + ); + return nfts.map((n) => { + return { + collectionIdent: n.canister, + native: { + canisterId: n.canister, + tokenId: n.index.toString(), + }, + uri: n.url, + }; + }); + } catch { + return []; + } + }, async preTransfer(sender, nft) { args.agent.replaceIdentity(sender); diff --git a/yarn.lock b/yarn.lock index 0d19b2531..f532c2be1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -74,6 +74,19 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@dfinity/agent@0.9.3": + version "0.9.3" + resolved "https://registry.yarnpkg.com/@dfinity/agent/-/agent-0.9.3.tgz#e49f07d6749e534c4c30aa2df2bba59e3fa9570f" + integrity sha512-vR0t5Uf+srbUHTdGunJxek3a4jCmBKU+B2yYEX0/aSGQfJmEf5X5snuNcnrIDOCfHeK7uxmOqs65BdI8Lhn4fg== + dependencies: + base64-arraybuffer "^0.2.0" + bignumber.js "^9.0.0" + borc "^2.1.1" + buffer "^6.0.3" + buffer-pipe "^0.0.4" + js-sha256 "0.9.0" + simple-cbor "^0.4.1" + "@dfinity/agent@^0.11.3": version "0.11.3" resolved "https://registry.yarnpkg.com/@dfinity/agent/-/agent-0.11.3.tgz#3363b1dbaa10a6e5cfe25e269316e2416fd3d11d" @@ -85,11 +98,29 @@ js-sha256 "0.9.0" simple-cbor "^0.4.1" +"@dfinity/candid@0.9.3": + version "0.9.3" + resolved "https://registry.yarnpkg.com/@dfinity/candid/-/candid-0.9.3.tgz#96b2a5339da634ccc5546a0560f48f5ceef70dfe" + integrity sha512-VMovKFrExqN0mwcn1/aut4Ou4cA9IA2+QrBjV+Ro4eVCpVvGpVRqn4jizlV9QnJjcuEBG1yImIG5RKMdZ2ejQQ== + dependencies: + buffer "^6.0.3" + buffer-pipe "^0.0.4" + "@dfinity/candid@^0.11.3": version "0.11.3" resolved "https://registry.yarnpkg.com/@dfinity/candid/-/candid-0.11.3.tgz#aed66124751545522acf9bde7cdc22b5d9ce31df" integrity sha512-xX7xNj2lLt7SIlvy0sqNp4fpcTD/xnwEu9APj0tnIF64cnsxIiS12T1Z8jl9g80jCQ1CbRPQf4cfsOfS3Cd2OA== +"@dfinity/identity@0.9.3": + version "0.9.3" + resolved "https://registry.yarnpkg.com/@dfinity/identity/-/identity-0.9.3.tgz#7d65d1ee7655d9028034bf22a92c21eea8b24028" + integrity sha512-8mEpkLqGW74QMsVJzuewwN0tO1fdShAT+vyfQM08VOX/u4IHckH8zZ+qGTeXKaGzuwiJRa5WZT2U7L32LDfJJg== + dependencies: + borc "^2.1.1" + buffer "^6.0.3" + buffer-pipe "0.0.4" + tweetnacl "^1.0.1" + "@dfinity/identity@^0.12.2": version "0.12.2" resolved "https://registry.yarnpkg.com/@dfinity/identity/-/identity-0.12.2.tgz#297a15cf73ffe29c9334d32946738e8b0a53837e" @@ -117,6 +148,11 @@ js-sha256 "^0.9.0" randombytes "^2.1.0" +"@dfinity/principal@0.9.3": + version "0.9.3" + resolved "https://registry.yarnpkg.com/@dfinity/principal/-/principal-0.9.3.tgz#52e4980bac8dd35e7a6bb2564bea89df97383e06" + integrity sha512-DSL3b/gGm+f57+3XkFjlK4DigtKXe9MVO8UYXDQWkVIhy0UF1KYjRNGs6awc1GTQoOTxeQ8UTFwXuvnEvJ1hpQ== + "@dfinity/principal@^0.11.3": version "0.11.3" resolved "https://registry.yarnpkg.com/@dfinity/principal/-/principal-0.11.3.tgz#2130a7673bb8c2d404bc9842136547a91cb3edd2" @@ -1466,6 +1502,20 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== +"@psychedelic/dab-js@^1.4.13": + version "1.4.13" + resolved "https://npm.pkg.github.com/download/@Psychedelic/dab-js/1.4.13/4ac9f8e0add1727b37bc1edc622bbba3a2c6cd20#4ac9f8e0add1727b37bc1edc622bbba3a2c6cd20" + integrity sha512-/qE1ls1m2B5GS0j5ScpvIzmCG+/RcGKlZ3qgbn0UaTsgu3MwUPUaK/oqHnhNEj4MKwMsk7lSnxOYLdTmH1bm8A== + dependencies: + "@dfinity/agent" "0.9.3" + "@dfinity/candid" "0.9.3" + "@dfinity/identity" "0.9.3" + "@dfinity/principal" "0.9.3" + axios "^0.24.0" + buffer-crc32 "^0.2.13" + cross-fetch "^3.1.4" + crypto-js "^4.1.1" + "@randlabs/communication-bridge@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@randlabs/communication-bridge/-/communication-bridge-1.0.0.tgz#9b1c0f440cf88ede8d58eb2ce641982ecb32bea9" @@ -2920,11 +2970,23 @@ bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2: create-hash "^1.1.0" safe-buffer "^5.1.2" +buffer-crc32@^0.2.13: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + buffer-layout@^1.2.0, buffer-layout@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== +buffer-pipe@0.0.4, buffer-pipe@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/buffer-pipe/-/buffer-pipe-0.0.4.tgz#e7f2ea95beb60fb692fc1dd1c878e894397a974d" + integrity sha512-8cHio1V6wgX+LIX6+af4tCn0+Ljl2vQd9JZdZ8vDJZdDf8x5p2DneKaq1dWxSswJG+sK4Inok9aqoqILG5kQVQ== + dependencies: + safe-buffer "^5.1.2" + buffer-to-arraybuffer@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" From b7a021cc439462152970f17879a7620479d33304 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky <89206037+AlexXPnetwork@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:07:46 +0300 Subject: [PATCH 709/956] Update release.yml add @psychedelic --- .github/workflows/release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2b5c668a9..d30a52d94 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,8 +19,11 @@ jobs: uses: actions/setup-node@v2.4.0 with: node-version: 16.x + registry-url: 'https://npm.pkg.github.com' + scope: '@psychedelic' # cache: yarn # cache-dependency-path: yarn.lock + - name: dep run: yarn From 003cc9262724843db09ce185628bde85753476cc Mon Sep 17 00:00:00 2001 From: Alex Moshinsky <89206037+AlexXPnetwork@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:22:18 +0300 Subject: [PATCH 710/956] Update release.yml --- .github/workflows/release.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d30a52d94..aa1eeab82 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,8 +19,6 @@ jobs: uses: actions/setup-node@v2.4.0 with: node-version: 16.x - registry-url: 'https://npm.pkg.github.com' - scope: '@psychedelic' # cache: yarn # cache-dependency-path: yarn.lock From 94778284d203895f3a5d7f0a31098aea83561b4a Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 18 Oct 2022 12:45:57 +0300 Subject: [PATCH 711/956] remove @psychedelic/dab-js --- package.json | 1 - src/helpers/dfinity/dfinity.ts | 20 +---------- yarn.lock | 62 ---------------------------------- 3 files changed, 1 insertion(+), 82 deletions(-) diff --git a/package.json b/package.json index 48f1e93a5..24c81ff22 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ "@hashgraph/hethers": "1.1.2", "@json-rpc-tools/utils": "^1.7.6", "@project-serum/anchor": "^0.25.0-beta.1", - "@psychedelic/dab-js": "^1.4.13", "@randlabs/myalgo-connect": "^1.1.1", "@solana/spl-token": "^0.2.0", "@solana/web3.js": "^1.44.2", diff --git a/src/helpers/dfinity/dfinity.ts b/src/helpers/dfinity/dfinity.ts index b3c8fa76b..29b6fc68e 100644 --- a/src/helpers/dfinity/dfinity.ts +++ b/src/helpers/dfinity/dfinity.ts @@ -24,7 +24,6 @@ import { Principal } from "@dfinity/principal"; import BigNumber from "bignumber.js"; import { Chain } from "../../consts"; import { EvNotifier } from "../../notifier"; -import { getNFTActor } from "@psychedelic/dab-js"; import { BalanceCheck, @@ -288,24 +287,7 @@ export async function dfinityHelper( }, async dfinityUserNftsByContract(principalContract, canisterId) { try { - const NFTActor = getNFTActor({ - canisterId, - agent: args.agent as any, - standard: "EXT", - }); - let nfts = await NFTActor.getUserTokens( - Principal.fromText(principalContract) as any - ); - return nfts.map((n) => { - return { - collectionIdent: n.canister, - native: { - canisterId: n.canister, - tokenId: n.index.toString(), - }, - uri: n.url, - }; - }); + return [] } catch { return []; } diff --git a/yarn.lock b/yarn.lock index f532c2be1..0d19b2531 100644 --- a/yarn.lock +++ b/yarn.lock @@ -74,19 +74,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@dfinity/agent@0.9.3": - version "0.9.3" - resolved "https://registry.yarnpkg.com/@dfinity/agent/-/agent-0.9.3.tgz#e49f07d6749e534c4c30aa2df2bba59e3fa9570f" - integrity sha512-vR0t5Uf+srbUHTdGunJxek3a4jCmBKU+B2yYEX0/aSGQfJmEf5X5snuNcnrIDOCfHeK7uxmOqs65BdI8Lhn4fg== - dependencies: - base64-arraybuffer "^0.2.0" - bignumber.js "^9.0.0" - borc "^2.1.1" - buffer "^6.0.3" - buffer-pipe "^0.0.4" - js-sha256 "0.9.0" - simple-cbor "^0.4.1" - "@dfinity/agent@^0.11.3": version "0.11.3" resolved "https://registry.yarnpkg.com/@dfinity/agent/-/agent-0.11.3.tgz#3363b1dbaa10a6e5cfe25e269316e2416fd3d11d" @@ -98,29 +85,11 @@ js-sha256 "0.9.0" simple-cbor "^0.4.1" -"@dfinity/candid@0.9.3": - version "0.9.3" - resolved "https://registry.yarnpkg.com/@dfinity/candid/-/candid-0.9.3.tgz#96b2a5339da634ccc5546a0560f48f5ceef70dfe" - integrity sha512-VMovKFrExqN0mwcn1/aut4Ou4cA9IA2+QrBjV+Ro4eVCpVvGpVRqn4jizlV9QnJjcuEBG1yImIG5RKMdZ2ejQQ== - dependencies: - buffer "^6.0.3" - buffer-pipe "^0.0.4" - "@dfinity/candid@^0.11.3": version "0.11.3" resolved "https://registry.yarnpkg.com/@dfinity/candid/-/candid-0.11.3.tgz#aed66124751545522acf9bde7cdc22b5d9ce31df" integrity sha512-xX7xNj2lLt7SIlvy0sqNp4fpcTD/xnwEu9APj0tnIF64cnsxIiS12T1Z8jl9g80jCQ1CbRPQf4cfsOfS3Cd2OA== -"@dfinity/identity@0.9.3": - version "0.9.3" - resolved "https://registry.yarnpkg.com/@dfinity/identity/-/identity-0.9.3.tgz#7d65d1ee7655d9028034bf22a92c21eea8b24028" - integrity sha512-8mEpkLqGW74QMsVJzuewwN0tO1fdShAT+vyfQM08VOX/u4IHckH8zZ+qGTeXKaGzuwiJRa5WZT2U7L32LDfJJg== - dependencies: - borc "^2.1.1" - buffer "^6.0.3" - buffer-pipe "0.0.4" - tweetnacl "^1.0.1" - "@dfinity/identity@^0.12.2": version "0.12.2" resolved "https://registry.yarnpkg.com/@dfinity/identity/-/identity-0.12.2.tgz#297a15cf73ffe29c9334d32946738e8b0a53837e" @@ -148,11 +117,6 @@ js-sha256 "^0.9.0" randombytes "^2.1.0" -"@dfinity/principal@0.9.3": - version "0.9.3" - resolved "https://registry.yarnpkg.com/@dfinity/principal/-/principal-0.9.3.tgz#52e4980bac8dd35e7a6bb2564bea89df97383e06" - integrity sha512-DSL3b/gGm+f57+3XkFjlK4DigtKXe9MVO8UYXDQWkVIhy0UF1KYjRNGs6awc1GTQoOTxeQ8UTFwXuvnEvJ1hpQ== - "@dfinity/principal@^0.11.3": version "0.11.3" resolved "https://registry.yarnpkg.com/@dfinity/principal/-/principal-0.11.3.tgz#2130a7673bb8c2d404bc9842136547a91cb3edd2" @@ -1502,20 +1466,6 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@psychedelic/dab-js@^1.4.13": - version "1.4.13" - resolved "https://npm.pkg.github.com/download/@Psychedelic/dab-js/1.4.13/4ac9f8e0add1727b37bc1edc622bbba3a2c6cd20#4ac9f8e0add1727b37bc1edc622bbba3a2c6cd20" - integrity sha512-/qE1ls1m2B5GS0j5ScpvIzmCG+/RcGKlZ3qgbn0UaTsgu3MwUPUaK/oqHnhNEj4MKwMsk7lSnxOYLdTmH1bm8A== - dependencies: - "@dfinity/agent" "0.9.3" - "@dfinity/candid" "0.9.3" - "@dfinity/identity" "0.9.3" - "@dfinity/principal" "0.9.3" - axios "^0.24.0" - buffer-crc32 "^0.2.13" - cross-fetch "^3.1.4" - crypto-js "^4.1.1" - "@randlabs/communication-bridge@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@randlabs/communication-bridge/-/communication-bridge-1.0.0.tgz#9b1c0f440cf88ede8d58eb2ce641982ecb32bea9" @@ -2970,23 +2920,11 @@ bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2: create-hash "^1.1.0" safe-buffer "^5.1.2" -buffer-crc32@^0.2.13: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - buffer-layout@^1.2.0, buffer-layout@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== -buffer-pipe@0.0.4, buffer-pipe@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/buffer-pipe/-/buffer-pipe-0.0.4.tgz#e7f2ea95beb60fb692fc1dd1c878e894397a974d" - integrity sha512-8cHio1V6wgX+LIX6+af4tCn0+Ljl2vQd9JZdZ8vDJZdDf8x5p2DneKaq1dWxSswJG+sK4Inok9aqoqILG5kQVQ== - dependencies: - safe-buffer "^5.1.2" - buffer-to-arraybuffer@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" From 9aa1968729559be5bdb1fda86a0fbd3b56a916dd Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 18 Oct 2022 12:48:32 +0300 Subject: [PATCH 712/956] remove @psychedelic/dab-js --- src/helpers/dfinity/dfinity.ts | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/helpers/dfinity/dfinity.ts b/src/helpers/dfinity/dfinity.ts index 29b6fc68e..960aff574 100644 --- a/src/helpers/dfinity/dfinity.ts +++ b/src/helpers/dfinity/dfinity.ts @@ -106,10 +106,6 @@ export type DfinityHelper = ChainNonceGet & GetFeeMargins & MintNft & { nftList(owner: string, contract: string): Promise[]>; - dfinityUserNftsByContract( - principalContract: string, - contractId: string - ): Promise[]>; }; export type DfinityParams = { @@ -285,13 +281,6 @@ export async function dfinityHelper( } return tokens; }, - async dfinityUserNftsByContract(principalContract, canisterId) { - try { - return [] - } catch { - return []; - } - }, async preTransfer(sender, nft) { args.agent.replaceIdentity(sender); From e37b33a76d2ac6096b80679a6e82110e5ee489d0 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 18 Oct 2022 13:52:40 +0300 Subject: [PATCH 713/956] update abeyChain mainnet address --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 9d4a0932f..25927926e 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -624,11 +624,11 @@ export namespace ChainFactoryConfigs { notifier, feeMargin, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ABEYCHAIN), - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc721Minter: "0xBb5e9896cEe600DaC470775B6f235Db105E861BD", + erc1155Minter: "0x35c3c3959d19A310Fc052545fCC29200dc440CdA", + erc1155_addr: "0xF9DfD29ddEDEa3224f9c7E12c7Bbe37101341786", + erc721_addr: "0x55B1D1891ABb21A5d245d149B49007b55Bd3746D", + minter_addr: "0x4ceDb46481d7118E1D292C318E37510E5919bBe6", }, secretParams: { notifier, From f9aef65dbd7aeb2a5509f21a5d21d99e9078f932 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Thu, 20 Oct 2022 11:23:59 +0300 Subject: [PATCH 714/956] update consts testnet from ropsten to goerli --- src/consts.ts | 4 ++-- src/factory/factories.ts | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 6d01582a5..7f1c13750 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -34,7 +34,7 @@ export enum TestNetRpcUri { ELROND = "https://devnet-gateway.elrond.com", HECO = "https://http-testnet.hecochain.com", BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", - ROPSTEN = "https://ropsten.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", + ROPSTEN = "https://ethereum-goerli-rpc.allthatnode.com", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-mumbai.chainstacklabs.com", FANTOM = "https://rpc.testnet.fantom.network/", @@ -245,7 +245,7 @@ CHAIN_INFO.set(Chain.ETHEREUM, { currency: SupportedCurrency.ETH, chainId: 3, decimals: 1e18, - blockExplorerUrl: "https://ropsten.etherscan.io/tx", + blockExplorerUrl: "https://goerli.etherscan.io/tx", constructor: web3HelperFactory, type: ChainType.EVM, }); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 25927926e..cc08918ec 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -187,11 +187,11 @@ export namespace ChainFactoryConfigs { ropstenParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), - minter_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - erc721_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc1155Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - erc1155_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", - erc721Minter: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", nonce: Chain.ETHEREUM, feeMargin, }, From 7e8c10ba3f45f02af293abb6208b7a419d313ed8 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Thu, 20 Oct 2022 11:42:17 +0300 Subject: [PATCH 715/956] chain id change at ethereum testnet from 3 to 5 --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 7f1c13750..a8ceb14a6 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -243,7 +243,7 @@ CHAIN_INFO.set(Chain.ETHEREUM, { name: "Ethereum", nonce: 5, currency: SupportedCurrency.ETH, - chainId: 3, + chainId: 5, decimals: 1e18, blockExplorerUrl: "https://goerli.etherscan.io/tx", constructor: web3HelperFactory, From 5b76a8f7d66b40e7e9c29c7120aa869a8bd220f4 Mon Sep 17 00:00:00 2001 From: rupansh Date: Sat, 22 Oct 2022 22:29:35 +0530 Subject: [PATCH 716/956] ton: fetch txnHash --- package.json | 2 +- src/helpers/ton-bridge.ts | 18 +++--------------- src/helpers/ton.ts | 29 ++++++++++++++++++----------- yarn.lock | 8 ++++---- 4 files changed, 26 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index 24c81ff22..012979a53 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "near-api-js": "1.0.0", "secretjs": "^1.4.0", "socket.io-client": "^4.1.3", - "tonweb": "^0.0.43", + "tonweb": "^0.0.57", "tonweb-mnemonic": "^1.0.1", "tronstation": "^1.0.1", "tronweb": "^4.1.0", diff --git a/src/helpers/ton-bridge.ts b/src/helpers/ton-bridge.ts index 3d7a1eafb..53cfdb783 100644 --- a/src/helpers/ton-bridge.ts +++ b/src/helpers/ton-bridge.ts @@ -39,20 +39,6 @@ export class BridgeContract extends Contract { constructor(provider: HttpProvider, options: BridgeOptions) { super(provider, options); - this.methods.seqno = () => { - return { - call: async () => { - const address = await this.getAddress(); - let n = null; - try { - n = (await provider.call2(address.toString(), "seqno")).toNumber(); - } catch (e) { - console.log(e); - } - return n; - }, - }; - }; this.methods.getPublicKey = this.getPublicKey; this.methods.isInitialized = this.isInitialized; this.methods.getActionId = this.getActionId; @@ -71,11 +57,13 @@ export class BridgeContract extends Contract { cell.bits.writeAddress(await this.getAddress()); // bridge as response address cell.bits.writeBit(false); // null custom_payload cell.bits.writeCoins(new BN(0)); // forward amount - cell.bits.writeBit(false); // forward_payload in this slice, not separate cell + cell.bits.writeBit(true); // forward_payload in this slice, not separate cell const msg = new Cell(); msg.bits.writeUint(params.chainNonce, 8); + msg.bits.writeUint(params.to.length, 16); msg.bits.writeBytes(params.to); + msg.bits.writeBytes(new Uint8Array(12)); cell.refs[0] = msg; return cell; diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index e9647150c..86eaf1aba 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -53,6 +53,8 @@ export async function tonHelper(args: TonParams): Promise { }); const ton = args.tonweb as TonWeb & TonWallet; + ton.provider.sendBoc = (b) => + ton.provider.send("sendBocReturnHash", { boc: b }); return { getNonce: () => Chain.TON, @@ -78,11 +80,13 @@ export async function tonHelper(args: TonParams): Promise { mintWith: Buffer.from(mintWith), }); - await rSigner.send("ton_sendTransaction", { - value: txFeesFull.toString(10), - to: nft.native.nftItemAddr, - data: Buffer.from(await payload.getRepr()).toString("base64"), - }); + console.log( + await rSigner.send("ton_sendTransaction", { + value: txFeesFull.toString(10), + to: nft.native.nftItemAddr, + data: TonWeb.utils.bytesToBase64(await payload.getRepr()), + }) + ); // TODO: Tx hash return ""; @@ -98,11 +102,14 @@ export async function tonHelper(args: TonParams): Promise { txFees: txFeesFull.sub(nftFee), }); - await rSigner.send("ton_sendTransaction", { - value: txFeesFull.toString(10), - to: nft.native.nftItemAddr, - data: Buffer.from(await payload.getRepr()).toString("base64"), - }); + console.log( + "txHash:", + await rSigner.send("ton_sendTransaction", { + value: txFeesFull.toString(10), + to: nft.native.nftItemAddr, + data: TonWeb.utils.bytesToBase64(await payload.getRepr()), + }) + ); // TODO: tx hash return ""; @@ -128,7 +135,7 @@ export async function tonHelper(args: TonParams): Promise { amount: new BN(params!.value), seqno: (await wallet.methods.seqno().call()) || 0, sendMode: 3, - payload: Buffer.from(params!.data, "base64"), + payload: TonWeb.utils.base64ToBytes(params!.data), }) .send(); } diff --git a/yarn.lock b/yarn.lock index 0d19b2531..9f1f12c28 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7503,10 +7503,10 @@ tonweb-mnemonic@^1.0.1: dependencies: tweetnacl "^1.0.3" -tonweb@^0.0.43: - version "0.0.43" - resolved "https://registry.yarnpkg.com/tonweb/-/tonweb-0.0.43.tgz#c659dd806aaa982413ffda33762ddca204da87a9" - integrity sha512-wed71NUHymDNVeGFIaMVTj658CXnbr9iafLpKRk4LyvZ17FU2fIBja7m1Uc+oD/+Gf6n0Zqbhsf0b69jF/41Hw== +tonweb@^0.0.57: + version "0.0.57" + resolved "https://registry.yarnpkg.com/tonweb/-/tonweb-0.0.57.tgz#f18c44525690d74b81cd248453d5769c872a068a" + integrity sha512-/kqRn3/H1nw2bJ68uOtvwkOj6/9EgYaYpMYAXs93I2pLdJZxVKNwTuZ7weGKVmrn9tOt/nCNooq3OAZDSAVUSg== dependencies: "@ledgerhq/hw-transport-web-ble" "5.48.0" "@ledgerhq/hw-transport-webhid" "5.48.0" From 76c956ec7b2f41ff8952afa8716215a6b84d2e0b Mon Sep 17 00:00:00 2001 From: rupansh Date: Sat, 22 Oct 2022 23:42:50 +0530 Subject: [PATCH 717/956] ton fixes --- src/helpers/ton.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 86eaf1aba..50ce9c62f 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -2,6 +2,7 @@ import { BN } from "@project-serum/anchor"; import BigNumber from "bignumber.js"; import TonWeb from "tonweb"; import TonWebMnemonic from "tonweb-mnemonic"; +import type { Cell } from "tonweb/dist/types/boc/cell"; import { Chain } from "../consts"; import { ChainNonceGet, @@ -35,7 +36,7 @@ export type TonParams = { type MethodMap = { ton_requestAccounts: [undefined, string]; - ton_sendTransaction: [{ value: string; to: string; data: string }, unknown]; + ton_sendTransaction: [{ value: string; to: string; data: Cell }, unknown]; ton_getBalance: [undefined, string]; }; @@ -84,20 +85,20 @@ export async function tonHelper(args: TonParams): Promise { await rSigner.send("ton_sendTransaction", { value: txFeesFull.toString(10), to: nft.native.nftItemAddr, - data: TonWeb.utils.bytesToBase64(await payload.getRepr()), + data: payload, }) ); // TODO: Tx hash return ""; }, - async unfreezeWrappedNft(signer, to, nft, txFees, chainNonce) { + async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { const rSigner = signer.wallet || ton; - const txFeesFull = new BN(txFees.toString(10)); + const txFeesFull = TonWeb.utils.toNano("0.08"); const nftFee = TonWeb.utils.toNano("0.05"); const payload = await bridge.createWithdrawBody({ - to: Buffer.from(to), + to: new Uint8Array(Buffer.from(to)), chainNonce: parseInt(chainNonce), txFees: txFeesFull.sub(nftFee), }); @@ -107,7 +108,7 @@ export async function tonHelper(args: TonParams): Promise { await rSigner.send("ton_sendTransaction", { value: txFeesFull.toString(10), to: nft.native.nftItemAddr, - data: TonWeb.utils.bytesToBase64(await payload.getRepr()), + data: payload, }) ); @@ -135,7 +136,7 @@ export async function tonHelper(args: TonParams): Promise { amount: new BN(params!.value), seqno: (await wallet.methods.seqno().call()) || 0, sendMode: 3, - payload: TonWeb.utils.base64ToBytes(params!.data), + payload: params!.data, }) .send(); } From 628645d4bc6d0172c565655ebfb3b4ec8c34ff1e Mon Sep 17 00:00:00 2001 From: rupansh Date: Sat, 22 Oct 2022 23:45:59 +0530 Subject: [PATCH 718/956] ton: enable notifier --- src/helpers/ton.ts | 39 +++++++++++++++++++-------------------- src/notifier/index.ts | 3 +++ 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 50ce9c62f..ff06dc91b 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -4,6 +4,7 @@ import TonWeb from "tonweb"; import TonWebMnemonic from "tonweb-mnemonic"; import type { Cell } from "tonweb/dist/types/boc/cell"; import { Chain } from "../consts"; +import { EvNotifier } from "../notifier"; import { ChainNonceGet, EstimateTxFees, @@ -29,6 +30,7 @@ export type TonHelper = ChainNonceGet & export type TonParams = { tonweb: TonWeb; + notifier: EvNotifier; bridgeAddr: string; burnerAddr: string; xpnftAddr: string; @@ -81,16 +83,15 @@ export async function tonHelper(args: TonParams): Promise { mintWith: Buffer.from(mintWith), }); - console.log( - await rSigner.send("ton_sendTransaction", { - value: txFeesFull.toString(10), - to: nft.native.nftItemAddr, - data: payload, - }) - ); + const res = (await rSigner.send("ton_sendTransaction", { + value: txFeesFull.toString(10), + to: nft.native.nftItemAddr, + data: payload, + })) as { hash: string }; - // TODO: Tx hash - return ""; + await args.notifier.notifyTon(res.hash); + + return res.hash; }, async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { const rSigner = signer.wallet || ton; @@ -103,17 +104,15 @@ export async function tonHelper(args: TonParams): Promise { txFees: txFeesFull.sub(nftFee), }); - console.log( - "txHash:", - await rSigner.send("ton_sendTransaction", { - value: txFeesFull.toString(10), - to: nft.native.nftItemAddr, - data: payload, - }) - ); - - // TODO: tx hash - return ""; + const res = (await rSigner.send("ton_sendTransaction", { + value: txFeesFull.toString(10), + to: nft.native.nftItemAddr, + data: payload, + })) as { hash: string }; + + await args.notifier.notifyTon(res.hash); + + return res.hash; }, tonKpWrapper(kp: TonWebMnemonic.KeyPair): TonSigner { const wallet = new TonWeb.Wallets.all.v3R2(ton.provider, { diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 47821644f..ed97b5200 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -75,5 +75,8 @@ export function evNotifier(url: string) { async notifyDfinity(actionId: string) { await api.post("/tx/dfinity", { action_id: actionId }); }, + async notifyTon(txHash: string) { + await api.post("/tx/ton", { tx_hash: txHash }); + }, }; } From 701ccd1392a850b7086b4c529540191adf48334c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 24 Oct 2022 13:35:39 +0530 Subject: [PATCH 719/956] networks: setup staging --- src/config.ts | 15 ++++++++++ src/consts.ts | 1 + src/factory/factories.ts | 60 ++++++++++++++++++++++++++++++++++++++++ src/factory/index.ts | 4 ++- 4 files changed, 79 insertions(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 2deef4e01..e8ca17542 100644 --- a/src/config.ts +++ b/src/config.ts @@ -29,4 +29,19 @@ export namespace AppConfigs { network: "testnet", }; }; + + export const Staging: () => AppConfig = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://tools.xp.network/index", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", + txSocketUri: "https://bridge1.xp.network/tx-socket", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com", + wrappedNftPrefix: "https://staging-nft.xp.network/w/", + scVerifyUri: "https://bridge1.xp.network/sc-verify", + network: "staging", + }; + }; } diff --git a/src/consts.ts b/src/consts.ts index a8ceb14a6..f57bbfcbc 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -86,6 +86,7 @@ export enum MainNetRpcUri { NEAR = "https://rpc.mainnet.near.org", MOONBEAM = "https://rpc.api.moonbeam.network", ABEYCHAIN = "https://rpc.abeychain.com", + TON = "https://toncenter.com/api/v2/jsonRPC", // TODO: Algorand } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index cc08918ec..89de44602 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -11,6 +11,9 @@ import { Framework } from "@vechain/connex-framework"; import { hethers } from "@hashgraph/hethers"; import { HttpAgent } from "@dfinity/agent"; import { Principal } from "@dfinity/principal"; +import TonWeb from "tonweb"; +import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; +import { FeeMargins } from "../helpers/chain"; /*const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", @@ -350,6 +353,63 @@ export namespace ChainFactoryConfigs { }; }; + export const Staging: () => Promise> = async () => { + const feeMargin: FeeMargins = { min: 1, max: 5 }; + const notifier = evNotifier("https://bridge1.xp.network/notifier"); + + return { + tonParams: { + bridgeAddr: "kQDa3qh1bl8VTWH8sqSvy3Ecc3-GvAxFRz_OBktNgADywx7K", + burnerAddr: "kQDpiiIGbDsQj1adgHtBmRyWBk_a78Td-86bIZWOSukYD6IH", + notifier, + tonweb: new TonWeb(new HttpProvider(MainNetRpcUri.TON)), + xpnftAddr: "EQAns6QsHVgQFGrbLScBt3aztOOUDj5SO_J7x-N4SDTzqIRb", + }, + secretParams: { + bridge: { + contractAddress: "secret1t0g8tvc0tyvpwdsdc5zepa9j2ptr3vfte26qhu", + codeHash: + "684afe616d92b29c097c5f00365d07c005e99c90ff1227507a0284b601a2cc5e", + }, + xpnft: { + contractAddress: "secret1ggvqzks96k7hawhdx3harrtnffhttrrq2qxmdg", + codeHash: + "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", + }, + notifier, + rpcUrl: MainNetRpcUri.SECRET, + umt: { + contractAddress: "", + codeHash: "", + }, + chainId: "24", + feeMargin, + }, + abeyChainParams: { + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ABEYCHAIN), + erc1155_addr: "0x8776073043eef8929F4a9cBa8Aacc6B59A21BA52", + erc1155Minter: "0x5Ed657a379e06CBAc1Ba1a9cF6D28e71c66B0c83", + erc721_addr: "0x3C8C51809Ee58E9D3BA37e37112843e41DcBD7B7", + erc721Minter: "0xD580913Ef2c8CA4Ca90D4bE6851ACa004cf586D8", + minter_addr: "0x14db0f56042Fa87F3b3921E871f87248f4C56A71", + nonce: Chain.ABEYCHAIN, + }, + moonbeamParams: { + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.MOONBEAM), + erc1155_addr: "0x55B1D1891ABb21A5d245d149B49007b55Bd3746D", + erc721_addr: "0x4ceDb46481d7118E1D292C318E37510E5919bBe6", + erc1155Minter: "0xF9DfD29ddEDEa3224f9c7E12c7Bbe37101341786", + erc721Minter: "0x35c3c3959d19A310Fc052545fCC29200dc440CdA", + minter_addr: "0x8B7f2bC31976230E374B93DF88D6eCD14f7B5D7F", + nonce: Chain.MOONBEAM, + }, + }; + }; + export const MainNet: () => Promise> = async () => { const feeMargin = { min: 1, max: 5 }; const notifier = evNotifier(middleware_uri); diff --git a/src/factory/index.ts b/src/factory/index.ts index 73f521b03..4034d13f9 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -56,6 +56,7 @@ import { import { SecretParams } from "../helpers/secret"; import { DfinityParams } from "../helpers/dfinity/dfinity"; import { NearParams } from "../helpers/near"; +import { TonParams } from "../helpers/ton"; export type FullChain = TransferNftForeign< Signer, @@ -277,6 +278,7 @@ export interface ChainParams { nearParams: NearParams; moonbeamParams: Web3Params; abeyChainParams: Web3Params; + tonParams: TonParams; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -297,7 +299,7 @@ export interface AppConfig { tronScanUri: string; wrappedNftPrefix: string; scVerifyUri: string; - network: "testnet" | "mainnet"; + network: "testnet" | "mainnet" | "staging"; } function mapNonceToParams(chainParams: Partial): ParamMap { From f9ee63066793c801a4f8428ee1feb14dbf4c705c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 24 Oct 2022 14:27:25 +0530 Subject: [PATCH 720/956] factory: elrond: testnet: update contracts --- src/factory/factories.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 89de44602..d9784e331 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -53,11 +53,11 @@ export namespace ChainFactoryConfigs { elrondParams: { node_uri: TestNetRpcUri.ELROND, minter_address: - "erd1qqqqqqqqqqqqqpgqnd6nmq4vh8e3xrxqrxgpwfldgp3sje83k4as3lusln", + "erd1qqqqqqqqqqqqqpgqy2nx5z4cpr90de4sga2v2yx62fph3lg8g6vskt0k2f", esdt_swap_address: - "erd1qqqqqqqqqqqqqpgq62h6fe5myaajkeva09whewaw8u2hsuexk4as29tzn9", - esdt_nft: "XPNFT-fc0a99", - esdt_swap: "WEGLD-2d1d69", + "erd1qqqqqqqqqqqqqpgqc854pa9ruzgs5f8rdzzc02xgq8kqku3ng6vs59vmf8", + esdt_nft: "XPNFT-af3fde", + esdt_swap: "WEGLD-708f9b", notifier, nonce: 2, feeMargin, From f10dca460547f817ff7398c366fe050c3fbb48c0 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 24 Oct 2022 15:07:00 +0530 Subject: [PATCH 721/956] factory: ton: fix ton issues --- src/factory/factories.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d9784e331..f9f9b1789 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -12,9 +12,10 @@ import { hethers } from "@hashgraph/hethers"; import { HttpAgent } from "@dfinity/agent"; import { Principal } from "@dfinity/principal"; import TonWeb from "tonweb"; -import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; import { FeeMargins } from "../helpers/chain"; +const { HttpProvider } = TonWeb; + /*const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", "0x837b2eb764860b442c971f98f505e7c5f419edd7", From 200370e58093619aa83f4e51e3f170de806b206a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 24 Oct 2022 15:36:18 +0530 Subject: [PATCH 722/956] factory: staging: add polygon --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index f9f9b1789..544167099 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -408,6 +408,17 @@ export namespace ChainFactoryConfigs { minter_addr: "0x8B7f2bC31976230E374B93DF88D6eCD14f7B5D7F", nonce: Chain.MOONBEAM, }, + polygonParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), + erc721Minter: "0x88B830293D4B25dBDAF97A88dc188Fbf1d41F5C8", + erc1155Minter: "0xCb83A7Db754F2586DB00384E4dd317D9Dd86913c", + erc721_addr: "0x2d6907df316D5960e9064412a71810A7c9D8f4c7", + erc1155_addr: "0xb35fF4cC9311324bb8DED72331498994f764Fe0f", + minter_addr: "0x8BD036a8a60b39cbAd5CBbf30E04dbe91FbeFc94", + nonce: Chain.POLYGON, + feeMargin, + }, }; }; From b04f6c2a2d40731f2835d69f6d1b7f648e85f5ba Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 24 Oct 2022 15:54:02 +0530 Subject: [PATCH 723/956] factory: ton: add to CHAIN_INFO and ctop --- src/consts.ts | 9 +++++++++ src/factory/index.ts | 1 + 2 files changed, 10 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index f57bbfcbc..2cfcb567d 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -536,3 +536,12 @@ CHAIN_INFO.set(Chain.APTOS, { nonce: Chain.APTOS, type: ChainType.APTOS, }); +CHAIN_INFO.set(Chain.TON, { + name: "TON", + constructor: tonHelper, + currency: SupportedCurrency.TON, + decimals: 1e9, + nonce: Chain.TON, + type: ChainType.TON, + blockExplorerUrl: "https://testnet.tonscan.org/tx/", +}); diff --git a/src/factory/index.ts b/src/factory/index.ts index 4034d13f9..198bd9e94 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -333,6 +333,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.NEAR, chainParams.nearParams); cToP.set(Chain.MOONBEAM, chainParams.moonbeamParams); cToP.set(Chain.ABEYCHAIN, chainParams.abeyChainParams); + cToP.set(Chain.TON, chainParams.tonParams); return cToP; } /** From 916608b4d0754a2c37c831b1448a39569acf95fb Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 24 Oct 2022 16:16:52 +0530 Subject: [PATCH 724/956] helpers: ton: implement GetFeeMargins --- src/factory/factories.ts | 1 + src/helpers/ton.ts | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 544167099..d7428bf6b 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -365,6 +365,7 @@ export namespace ChainFactoryConfigs { notifier, tonweb: new TonWeb(new HttpProvider(MainNetRpcUri.TON)), xpnftAddr: "EQAns6QsHVgQFGrbLScBt3aztOOUDj5SO_J7x-N4SDTzqIRb", + feeMargin, }, secretParams: { bridge: { diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index ff06dc91b..7ec383f46 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -8,6 +8,8 @@ import { EvNotifier } from "../notifier"; import { ChainNonceGet, EstimateTxFees, + FeeMargins, + GetFeeMargins, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -26,7 +28,7 @@ export type TonHelper = ChainNonceGet & EstimateTxFees & ValidateAddress & { XpNft: string } & { tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; - }; + } & GetFeeMargins; export type TonParams = { tonweb: TonWeb; @@ -34,6 +36,7 @@ export type TonParams = { bridgeAddr: string; burnerAddr: string; xpnftAddr: string; + feeMargin: FeeMargins; }; type MethodMap = { @@ -71,6 +74,9 @@ export async function tonHelper(args: TonParams): Promise { async validateAddress(adr) { return TonWeb.Address.isValid(adr); }, + getFeeMargin() { + return args.feeMargin; + }, async transferNftToForeign(signer, chainNonce, to, nft, txFees, mintWith) { const rSigner = signer.wallet || ton; From 627016fe5769d36cb3b79208824da9c6c5392d98 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 25 Oct 2022 14:35:14 +0530 Subject: [PATCH 725/956] chains: info: migrate from skl to sFUEL --- package.json | 2 +- src/consts.ts | 2 +- yarn.lock | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 012979a53..1f04bff7e 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#168cdfdef984ef482909d78c365f9b39aede0366", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/src/consts.ts b/src/consts.ts index 2cfcb567d..6eef60aee 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -479,7 +479,7 @@ CHAIN_INFO.set(Chain.SKALE, { blockExplorerUrl: "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", constructor: web3HelperFactory, - currency: SupportedCurrency.SKL, + currency: SupportedCurrency.sFUEL, decimals: 1e18, chainId: 1564830818, nonce: Chain.SKALE, diff --git a/yarn.lock b/yarn.lock index 9f1f12c28..5bb4c6041 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3369,6 +3369,12 @@ crypto-browserify@3.12.0: dependencies: axios "^0.21.1" +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": + version "1.0.0" + resolved "git+https://github.com/xp-network/exchange-rate#583871f2db1ef1e80d54cfcadd253cad9fef7085" + dependencies: + axios "^0.21.1" + crypto-hash@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" From 630e1cd39d417257697df1879cfb547b6e6a7f1f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 25 Oct 2022 17:49:47 +0530 Subject: [PATCH 726/956] Revert "chains: info: migrate from skl to sFUEL" This reverts commit 627016fe5769d36cb3b79208824da9c6c5392d98. --- package.json | 2 +- src/consts.ts | 2 +- yarn.lock | 6 ------ 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 1f04bff7e..012979a53 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#168cdfdef984ef482909d78c365f9b39aede0366", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/src/consts.ts b/src/consts.ts index 6eef60aee..2cfcb567d 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -479,7 +479,7 @@ CHAIN_INFO.set(Chain.SKALE, { blockExplorerUrl: "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", constructor: web3HelperFactory, - currency: SupportedCurrency.sFUEL, + currency: SupportedCurrency.SKL, decimals: 1e18, chainId: 1564830818, nonce: Chain.SKALE, diff --git a/yarn.lock b/yarn.lock index 5bb4c6041..9f1f12c28 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3369,12 +3369,6 @@ crypto-browserify@3.12.0: dependencies: axios "^0.21.1" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": - version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#583871f2db1ef1e80d54cfcadd253cad9fef7085" - dependencies: - axios "^0.21.1" - crypto-hash@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" From 9f72c92eaec74e55c85d210d9c06b92b98ef7c90 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 25 Oct 2022 18:31:35 +0300 Subject: [PATCH 727/956] add timeout 10s to ton to confim --- src/factory/factories.ts | 9 ++++++--- src/helpers/ton.ts | 2 ++ src/helpers/tron.ts | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d7428bf6b..816600416 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -14,8 +14,6 @@ import { Principal } from "@dfinity/principal"; import TonWeb from "tonweb"; import { FeeMargins } from "../helpers/chain"; -const { HttpProvider } = TonWeb; - /*const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", "0x837b2eb764860b442c971f98f505e7c5f419edd7", @@ -363,7 +361,12 @@ export namespace ChainFactoryConfigs { bridgeAddr: "kQDa3qh1bl8VTWH8sqSvy3Ecc3-GvAxFRz_OBktNgADywx7K", burnerAddr: "kQDpiiIGbDsQj1adgHtBmRyWBk_a78Td-86bIZWOSukYD6IH", notifier, - tonweb: new TonWeb(new HttpProvider(MainNetRpcUri.TON)), + tonweb: new TonWeb( + new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + }) + ), xpnftAddr: "EQAns6QsHVgQFGrbLScBt3aztOOUDj5SO_J7x-N4SDTzqIRb", feeMargin, }, diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 7ec383f46..149cbc86f 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -95,6 +95,7 @@ export async function tonHelper(args: TonParams): Promise { data: payload, })) as { hash: string }; + await new Promise((r) => setTimeout(r, 10000)); await args.notifier.notifyTon(res.hash); return res.hash; @@ -116,6 +117,7 @@ export async function tonHelper(args: TonParams): Promise { data: payload, })) as { hash: string }; + await new Promise((r) => setTimeout(r, 10000)); await args.notifier.notifyTon(res.hash); return res.hash; diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 7b618d899..08b2315c1 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -252,7 +252,7 @@ export async function tronHelperFactory( } async function extractAction(hash: string): Promise { - await new Promise((r) => setTimeout(r, 6000)); + await new Promise((r) => setTimeout(r, 10000)); // eslint-disable-next-line @typescript-eslint/no-explicit-any const getEv: (retries?: number) => Promise = async (retries = 0) => { From 31c1fdb3383b4075c32be9d691fae57ac4b3345e Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Wed, 26 Oct 2022 22:48:01 +0300 Subject: [PATCH 728/956] update secert rpc and staging ton bridge address --- src/consts.ts | 2 +- src/factory/factories.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 2cfcb567d..9b5e11fb9 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -81,7 +81,7 @@ export enum MainNetRpcUri { GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "https://secret-4.api.trivium.network:9091", + SECRET = "https://grpc.mainnet.secretsaturn.net", SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", NEAR = "https://rpc.mainnet.near.org", MOONBEAM = "https://rpc.api.moonbeam.network", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 816600416..eebc5a376 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -358,8 +358,8 @@ export namespace ChainFactoryConfigs { return { tonParams: { - bridgeAddr: "kQDa3qh1bl8VTWH8sqSvy3Ecc3-GvAxFRz_OBktNgADywx7K", - burnerAddr: "kQDpiiIGbDsQj1adgHtBmRyWBk_a78Td-86bIZWOSukYD6IH", + bridgeAddr: "kQBsDRwwjJP5AN70Xs4NSMuEh5kmJMn4rqR8gIompeEllkFa", + burnerAddr: "kQB-CnHaI9uLkAlqXolHomnStisOjvvA4nFc_2fWTxKuGrsG", notifier, tonweb: new TonWeb( new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { @@ -367,7 +367,7 @@ export namespace ChainFactoryConfigs { "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", }) ), - xpnftAddr: "EQAns6QsHVgQFGrbLScBt3aztOOUDj5SO_J7x-N4SDTzqIRb", + xpnftAddr: "EQCXli05m77eazNjRkIoQq5u-WT6X3DLJCTpr1leikjyc4c_", feeMargin, }, secretParams: { From 8cb21d2875286f6ac0017ac4ddf12cdfa15cfd93 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Thu, 27 Oct 2022 16:46:16 +0300 Subject: [PATCH 729/956] update staging ton params --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index eebc5a376..7a7d4025d 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -358,8 +358,8 @@ export namespace ChainFactoryConfigs { return { tonParams: { - bridgeAddr: "kQBsDRwwjJP5AN70Xs4NSMuEh5kmJMn4rqR8gIompeEllkFa", - burnerAddr: "kQB-CnHaI9uLkAlqXolHomnStisOjvvA4nFc_2fWTxKuGrsG", + bridgeAddr: "kQDF-xoZP2TABGNcAhksY-NeI6ReLQEBLaOxwBU9NrPzlHtW", + burnerAddr: "kQA7KtuofEMDDXj-G38YKjrqpNYGtNuSQlMwQTTBoy3J3gbw", notifier, tonweb: new TonWeb( new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { @@ -367,7 +367,7 @@ export namespace ChainFactoryConfigs { "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", }) ), - xpnftAddr: "EQCXli05m77eazNjRkIoQq5u-WT6X3DLJCTpr1leikjyc4c_", + xpnftAddr: "EQBD8K8bbKaYjN-0KCyPMWUgqHH1uHfUXjujW_lEedbqXaj-", feeMargin, }, secretParams: { From 81a4cfb4c6b7741e95ed0d03bebc98e67dc96157 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Thu, 27 Oct 2022 19:39:59 +0300 Subject: [PATCH 730/956] update staging ton params --- src/factory/factories.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 7a7d4025d..a3ecbf722 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -358,8 +358,8 @@ export namespace ChainFactoryConfigs { return { tonParams: { - bridgeAddr: "kQDF-xoZP2TABGNcAhksY-NeI6ReLQEBLaOxwBU9NrPzlHtW", - burnerAddr: "kQA7KtuofEMDDXj-G38YKjrqpNYGtNuSQlMwQTTBoy3J3gbw", + bridgeAddr: "kQD3Fic8toRl0SIMswto8wmy5H41CDZUGAIyIK95Al5BBUiX", + burnerAddr: "kQBCnW4TO466p7YzKGZebnsylUSHTyxTKuwMDXo5JEQbIEOF", notifier, tonweb: new TonWeb( new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { @@ -367,7 +367,7 @@ export namespace ChainFactoryConfigs { "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", }) ), - xpnftAddr: "EQBD8K8bbKaYjN-0KCyPMWUgqHH1uHfUXjujW_lEedbqXaj-", + xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", feeMargin, }, secretParams: { From 77d7cd62461dbf18dc16191b952626d91158132f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 27 Oct 2022 14:44:38 +0530 Subject: [PATCH 731/956] chains: hedera: setup approval for hedera --- package.json | 2 +- src/factory/factories.ts | 4 +- src/helpers/hedera/hts_abi.ts | 2947 +++++++++++++++++++++++++++++++++ src/helpers/web3.ts | 57 +- yarn.lock | 6 + 5 files changed, 3010 insertions(+), 6 deletions(-) create mode 100644 src/helpers/hedera/hts_abi.ts diff --git a/package.json b/package.json index 012979a53..1f04bff7e 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#168cdfdef984ef482909d78c365f9b39aede0366", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index a3ecbf722..5bfcc80a8 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -280,8 +280,8 @@ export namespace ChainFactoryConfigs { provider: hethers.getDefaultProvider("testnet") as any, feeMargin, nonce: Chain.HEDERA, - erc721_addr: "0x0000000000000000000000000000000002da3c22", - erc1155_addr: "0x0000000000000000000000000000000002da3c24", + erc721_addr: "0x0000000000000000000000000000000002e72d50", + erc1155_addr: "0x0000000000000000000000000000000002e72d50", minter_addr: "0x0000000000000000000000000000000002da3c27", erc721Minter: "0x0000000000000000000000000000000002da3c1d", erc1155Minter: "0x0000000000000000000000000000000002da3c20", diff --git a/src/helpers/hedera/hts_abi.ts b/src/helpers/hedera/hts_abi.ts new file mode 100644 index 000000000..7b1d2a374 --- /dev/null +++ b/src/helpers/hedera/hts_abi.ts @@ -0,0 +1,2947 @@ +export const HEDERA_TOKEN_SERVICE_ABI = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "approved", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "approveNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "associateToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address[]", + name: "tokens", + type: "address[]", + }, + ], + name: "associateTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint64", + name: "amount", + type: "uint64", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + name: "burnToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint64", + name: "newTotalSupply", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + internalType: "uint64", + name: "initialTotalSupply", + type: "uint64", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + ], + name: "createFungibleToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + internalType: "uint64", + name: "initialTotalSupply", + type: "uint64", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + ], + name: "createFungibleTokenWithCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + ], + name: "createNonFungibleToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + ], + name: "createNonFungibleTokenWithCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "accountID", + type: "address", + }, + { + internalType: "int64", + name: "amount", + type: "int64", + }, + ], + internalType: "struct IHederaTokenService.AccountAmount[]", + name: "transfers", + type: "tuple[]", + }, + { + components: [ + { + internalType: "address", + name: "senderAccountID", + type: "address", + }, + { + internalType: "address", + name: "receiverAccountID", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + internalType: "struct IHederaTokenService.NftTransfer[]", + name: "nftTransfers", + type: "tuple[]", + }, + ], + internalType: "struct IHederaTokenService.TokenTransferList[]", + name: "tokenTransfers", + type: "tuple[]", + }, + ], + name: "cryptoTransfer", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "deleteToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "dissociateToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address[]", + name: "tokens", + type: "address[]", + }, + ], + name: "dissociateTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "freezeToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "getApproved", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "approved", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getFungibleTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.FungibleTokenInfo", + name: "fungibleTokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + name: "getNonFungibleTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + { + internalType: "address", + name: "ownerId", + type: "address", + }, + { + internalType: "int64", + name: "creationTime", + type: "int64", + }, + { + internalType: "bytes", + name: "metadata", + type: "bytes", + }, + { + internalType: "address", + name: "spenderId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.NonFungibleTokenInfo", + name: "nonFungibleTokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenDefaultFreezeStatus", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "defaultFreezeStatus", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenDefaultKycStatus", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenExpiryInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + ], + name: "getTokenKey", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenType", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "int32", + name: "tokenType", + type: "int32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "isApprovedForAll", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isFrozen", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "frozen", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "kycGranted", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "isToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "isToken", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint64", + name: "amount", + type: "uint64", + }, + { + internalType: "bytes[]", + name: "metadata", + type: "bytes[]", + }, + ], + name: "mintToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint64", + name: "newTotalSupply", + type: "uint64", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "pauseToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + name: "setApprovalForAll", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "transferFromNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + name: "transferNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address[]", + name: "sender", + type: "address[]", + }, + { + internalType: "address[]", + name: "receiver", + type: "address[]", + }, + { + internalType: "int64[]", + name: "serialNumber", + type: "int64[]", + }, + ], + name: "transferNFTs", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int64", + name: "amount", + type: "int64", + }, + ], + name: "transferToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address[]", + name: "accountId", + type: "address[]", + }, + { + internalType: "int64[]", + name: "amount", + type: "int64[]", + }, + ], + name: "transferTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "unfreezeToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "unpauseToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + name: "updateTokenExpiryInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "tokenInfo", + type: "tuple", + }, + ], + name: "updateTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "keys", + type: "tuple[]", + }, + ], + name: "updateTokenKeys", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + ], + name: "wipeTokenAccount", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + name: "wipeTokenAccountNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 1456ee131..21457dc30 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -35,6 +35,7 @@ import { UserNftMinter, } from "xpnet-web3-contracts"; import { + Chain, ChainNonceGet, EstimateTxFees, ExtractAction, @@ -50,7 +51,8 @@ import { import { ChainNonce } from "../type-utils"; import { EvNotifier } from "../notifier"; import axios from "axios"; -import { hethers } from "@hashgraph/hethers"; +import { ContractFactory, hethers } from "@hashgraph/hethers"; +import { HEDERA_TOKEN_SERVICE_ABI } from "./hedera/hts_abi"; /** * Information required to perform NFT transfers in this chain */ @@ -431,6 +433,51 @@ export async function web3HelperFactory( return receipt.hash; }; + const isApprovedForHedera = async ( + id: NftInfo, + signer: Signer + ) => { + const htsFactory = new ContractFactory( + HEDERA_TOKEN_SERVICE_ABI, + "0x", + signer as any + ); + const hts = htsFactory.attach("0x0000000000000000000000000000000000000167"); + const [, approvedAddress] = await hts.getApproved( + id.native.contract, + id.native.tokenId + ); + const toApprove = id.uri.includes("xp.network") + ? params.erc721_addr + : params.minter_addr; + return approvedAddress === toApprove; + }; + + const approveForHedera = async (id: NftInfo, sender: Signer) => { + if (params.nonce !== Chain.HEDERA) + throw new Error(`Used Hedera Specific Function for Non Hedera Chain`); + + if (await isApprovedForHedera(id, sender)) return undefined; + + const htsFactory = new ContractFactory( + HEDERA_TOKEN_SERVICE_ABI, + "0x", + sender as any + ); + const hts = htsFactory.attach("0x0000000000000000000000000000000000000167"); + + const toApprove = id.uri.includes("xp.network") + ? params.erc721_addr + : params.minter_addr; + + const receipt = await hts.functions.approveNFT( + id.native.contract, + toApprove, + id.native.tokenId + ); + return receipt; + }; + const base = await baseWeb3HelperFactory(params.provider); return { @@ -446,8 +493,12 @@ export async function web3HelperFactory( getFeeMargin() { return params.feeMargin; }, - isApprovedForMinter, - preTransfer: (s, id, _fee) => approveForMinter(id, s), + isApprovedForMinter: + params.nonce === Chain.HEDERA ? isApprovedForHedera : isApprovedForMinter, + preTransfer: (s, id, _fee) => + params.nonce === Chain.HEDERA + ? approveForHedera(id, s) + : approveForMinter(id, s), extractAction, async isContractAddress(address) { const code = await provider.getCode(address); diff --git a/yarn.lock b/yarn.lock index 9f1f12c28..bd04b1273 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3369,6 +3369,12 @@ crypto-browserify@3.12.0: dependencies: axios "^0.21.1" +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": + version "1.0.0" + resolved "git+https://github.com/xp-network/exchange-rate#83c1506548400d824af5666ded33eaf55f499f80" + dependencies: + axios "^0.21.1" + crypto-hash@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" From 03bf7b5c85c540c7f8105d8833911dedc887dcf4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 28 Oct 2022 16:39:38 +0530 Subject: [PATCH 732/956] factory: hedera: add listing and claiming functionality for transferred NFTs --- src/factory/factories.ts | 4 +- src/factory/index.ts | 73 ++++- src/helpers/hedera/hts_abi.ts | 542 ++++++++++++++++++++++++++++++++++ 3 files changed, 609 insertions(+), 10 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 5bfcc80a8..dad9b0ea5 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -280,8 +280,8 @@ export namespace ChainFactoryConfigs { provider: hethers.getDefaultProvider("testnet") as any, feeMargin, nonce: Chain.HEDERA, - erc721_addr: "0x0000000000000000000000000000000002e72d50", - erc1155_addr: "0x0000000000000000000000000000000002e72d50", + erc721_addr: "0x0000000000000000000000000000000002e7f488", + erc1155_addr: "0x0000000000000000000000000000000002e7f488", minter_addr: "0x0000000000000000000000000000000002da3c27", erc721Minter: "0x0000000000000000000000000000000002da3c1d", erc1155Minter: "0x0000000000000000000000000000000002da3c20", diff --git a/src/factory/index.ts b/src/factory/index.ts index 198bd9e94..8cb59ed1f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -21,13 +21,13 @@ import { import BigNumber from "bignumber.js"; import axios from "axios"; -import { exchangeRateRepo, getDefaultContract, _headers } from "./cons"; +import { _headers, exchangeRateRepo, getDefaultContract } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { bridgeHeartbeat } from "../heartbeat"; import { ethers, utils } from "ethers"; import { - AlgorandParams, AlgorandHelper, + AlgorandParams, AlgoSignerH, algoSignerWrapper, ClaimNftInfo, @@ -57,6 +57,12 @@ import { SecretParams } from "../helpers/secret"; import { DfinityParams } from "../helpers/dfinity/dfinity"; import { NearParams } from "../helpers/near"; import { TonParams } from "../helpers/ton"; +import { ContractFactory, Wallet } from "@hashgraph/hethers"; +import { + HEDERA_PROXY_ABI, + HEDERA_PROXY_BC, + HEDERA_TOKEN_SERVICE_ABI, +} from "../helpers/hedera/hts_abi"; export type FullChain = TransferNftForeign< Signer, @@ -75,7 +81,6 @@ type FullChainBatch = FullChain & /** * A type representing a chain factory. - * */ export type ChainFactory = { /** @@ -129,6 +134,17 @@ export type ChainFactory = { mintWith?: string ): Promise; + claimHederaNFT( + serialNumber: ethers.BigNumberish, + contractAddress: string, + sender: Wallet + ): Promise; + + listHederaClaimableNFT( + mintWith: string, + sender: Wallet + ): Promise; + transferSft( fromChain: FullChainBatch, toChain: FullChainBatch, @@ -180,7 +196,6 @@ export type ChainFactory = { receiver: string ): Promise; /** - * * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. * @param params : New Params to be set. */ @@ -193,7 +208,6 @@ export type ChainFactory = { key: string ): Promise>>; /** - * * Get transaction in the destination chain * WARN: use claimAlgorandNft instead for algorand. * @@ -209,10 +223,8 @@ export type ChainFactory = { hash: Txn ): Promise<[string, TransactionStatus]>; /** - * * Claim an algorand nft * - * * @param originChain chain from which the nft was transferred * @param txn Transaction Hash of the original * @param claimer the account which can claim the nft @@ -223,7 +235,6 @@ export type ChainFactory = { claimer: AlgoSignerH ): Promise; /** - * * @param claimer: the account which can claim the nfts */ claimableAlgorandNfts(claimer: string): Promise; @@ -793,6 +804,52 @@ export function ChainFactory( ): Promise => { return await chain.mintNft(owner, args); }, + /** + * Claim a transferred NFT + * @param serialNumber The Serial Number of the claimable NFTs + * @param contractAddress The MintWith HTS Proxy Contract used in the transfer + * @param sender wallet of the sender + * @returns txn response of the claimer + */ + async claimHederaNFT(serialNumber, contractAddress, sender) { + const htscf = new ContractFactory( + HEDERA_PROXY_ABI, + HEDERA_PROXY_BC, + sender + ); + const hts_contract = htscf.attach(contractAddress); + const cf = new ContractFactory(HEDERA_TOKEN_SERVICE_ABI, "0x", sender); + const contract = cf.attach("0x0000000000000000000000000000000000000167"); + ( + await contract.associateToken( + await sender.getAddress(), + await hts_contract.htsToken({ gasLimit: 1000000 }), + { gasLimit: 1000000 } + ) + ).wait(); + + const res = await hts_contract.functions.claimNft(serialNumber, { + gasLimit: 1000000, + }); + return res; + }, + /** + * Returns all the claimable NFTs of the contract + * @param htsContract the address of the HTS Proxy contract that was used as mintWith in the transfer + * @param sender wallet of the sender + * @returns array of tokens that were minted + */ + async listHederaClaimableNFT(htsContract, sender) { + const cf = new ContractFactory(HEDERA_PROXY_ABI, HEDERA_PROXY_BC, sender); + const contract = cf.attach(htsContract); + const tokens = await contract.functions.getClaimableNfts( + await sender.getAddress(), + { + gasLimit: 1000000, + } + ); + return tokens[0]; + }, waitAlgorandNft: async (origin, hash, claimer) => { const action = await origin.extractAction(hash); diff --git a/src/helpers/hedera/hts_abi.ts b/src/helpers/hedera/hts_abi.ts index 7b1d2a374..c16daf529 100644 --- a/src/helpers/hedera/hts_abi.ts +++ b/src/helpers/hedera/hts_abi.ts @@ -2945,3 +2945,545 @@ export const HEDERA_TOKEN_SERVICE_ABI = [ type: "function", }, ]; + +export const HEDERA_PROXY_ABI = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_EXPIRY", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "MAX_INT", + outputs: [ + { + internalType: "int64", + name: "", + type: "int64", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "baseUri", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "uint256", + name: "serialNum", + type: "uint256", + }, + ], + name: "burnFor", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int64", + name: "serialNum", + type: "int64", + }, + ], + name: "claimNft", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "claimer", + type: "address", + }, + ], + name: "getClaimableNfts", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenExpiryInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "htsToken", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "string", + name: "baseURI_", + type: "string", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "kycGranted", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "id", + type: "uint256", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "pauseToken", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "unpauseToken", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + name: "updateTokenExpiryInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "tokenInfo", + type: "tuple", + }, + ], + name: "updateTokenInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; +export const HEDERA_PROXY_BC = + "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61473980620004e56000396000f3fe60806040526004361061012a5760003560e01c80637c41ad2c116100ab578063a6487c531161006f578063a6487c53146103f4578063af99c63314610410578063d614cdb81461044d578063f2c31ff41461048b578063f2fde38b146104c9578063fa59a780146104f25761012a565b80637c41ad2c146102fb5780638da5cb5b146103385780638f8d7f991461036357806394d008ef146103a05780639abc8320146103c95761012a565b806351761bcc116100f257806351761bcc14610228578063593d6e82146102535780635de4c002146102905780636c0360eb146102b9578063715018a6146102e45761012a565b8063098d32281461012f5780630bc14a691461015a57806318370d34146101855780631dd319cb146101c25780633b3bff0f146101eb575b600080fd5b34801561013b57600080fd5b5061014461052f565b6040516101519190613d79565b60405180910390f35b34801561016657600080fd5b5061016f610537565b60405161017c9190613bb5565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190613012565b61055d565b6040516101b99190613d35565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190613066565b610675565b005b3480156101f757600080fd5b50610212600480360381019061020d9190612f71565b61088d565b60405161021f9190613d35565b60405180910390f35b34801561023457600080fd5b5061023d6109a2565b60405161024a9190613e81565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190612fd6565b6109a9565b6040516102879190613d35565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b2919061328e565b610ac1565b005b3480156102c557600080fd5b506102ce610be4565b6040516102db9190613dbd565b60405180910390f35b3480156102f057600080fd5b506102f9610c0c565b005b34801561030757600080fd5b50610322600480360381019061031d9190612f71565b610c20565b60405161032f9190613d35565b60405180910390f35b34801561034457600080fd5b5061034d610d35565b60405161035a9190613bb5565b60405180910390f35b34801561036f57600080fd5b5061038a60048036038101906103859190612f9a565b610d5e565b6040516103979190613d79565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906130a2565b610e76565b005b3480156103d557600080fd5b506103de61118b565b6040516103eb9190613dbd565b60405180910390f35b61040e600480360381019061040991906132b7565b611219565b005b34801561041c57600080fd5b5061043760048036038101906104329190612f9a565b6114f8565b6040516104449190613d79565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190612f71565b611610565b604051610482929190613d50565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad9190612f9a565b611740565b6040516104c0929190613d94565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190612f71565b611865565b005b3480156104fe57600080fd5b5061051960048036038101906105149190612f71565b6118e9565b6040516105269190613d13565b60405180910390f35b63ffffffff81565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610596929190613c67565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516106009190613ad0565b6000604051808303816000865af19150503d806000811461063d576040519150601f19603f3d011682016040523d82523d6000602084013e610642565b606091505b509150915081610653576015610668565b80806020019051810190610667919061310e565b5b60030b9250505092915050565b61067d611939565b60006106ad600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168430856119b7565b9050601660030b81146106bf82611ad5565b6040516020016106cf9190613b93565b6040516020818303038152906040529061071f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107169190613dbd565b60405180910390fd5b506000600167ffffffffffffffff811115610763577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156107915781602001602082028036833780820191505090505b50905082816000815181106107cf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b81525050610811600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083611c82565b5080925050601660030b821461082683611ad5565b6040516020016108369190613b2d565b60405160208183030381529060405290610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d9190613dbd565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b856040516024016108c49190613bb5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161092e9190613ad0565b6000604051808303816000865af19150503d806000811461096b576040519150601f19603f3d011682016040523d82523d6000602084013e610970565b606091505b509150915081610981576015610996565b80806020019051810190610995919061310e565b5b60030b92505050919050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b86866040516024016109e2929190613c3e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610a4c9190613ad0565b6000604051808303816000865af19150503d8060008114610a89576040519150601f19603f3d011682016040523d82523d6000602084013e610a8e565b606091505b509150915081610a9f576015610ab4565b80806020019051810190610ab3919061310e565b5b60030b9250505092915050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610b218267ffffffffffffffff1682611daa90919063ffffffff16565b610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613ddf565b60405180910390fd5b6000610b6c3384611dc4565b9050601660030b8114610b7e82611ad5565b604051602001610b8e9190613b93565b60405160208183030381529060405290610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd59190613dbd565b60405180910390fd5b50505050565b60606003604051602001610bf89190613b0b565b604051602081830303815290604052905090565b610c14611939565b610c1e6000611e01565b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b85604051602401610c579190613bb5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610cc19190613ad0565b6000604051808303816000865af19150503d8060008114610cfe576040519150601f19603f3d011682016040523d82523d6000602084013e610d03565b606091505b509150915081610d14576015610d29565b80806020019051810190610d28919061310e565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b8686604051602401610d97929190613bd0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e019190613ad0565b6000604051808303816000865af19150503d8060008114610e3e576040519150601f19603f3d011682016040523d82523d6000602084013e610e43565b606091505b509150915081610e54576015610e69565b80806020019051810190610e68919061310e565b5b60030b9250505092915050565b610e7e611939565b6000600167ffffffffffffffff811115610ec1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610ef457816020015b6060815260200190600190039081610edf5790505b5090506003610f0285611ad5565b604051602001610f13929190613ae7565b60405160208183030381529060405281600081518110610f5c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250600080610f98600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085611ec5565b9250509150601660030b8214610fad83611ad5565b604051602001610fbd9190613b4f565b6040516020818303038152906040529061100d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110049190613dbd565b60405180910390fd5b50600061105b888360008151811061104e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151611dc4565b905060b860030b81141561110f57611105826000815181106110a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061206390919063ffffffff16565b5050505050611185565b601660030b811461111f84611ad5565b60405160200161112f9190613b93565b6040516020818303038152906040529061117f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111769190613dbd565b60405180910390fd5b50505050505b50505050565b6003805461119890614272565b80601f01602080910402602001604051908101604052809291908181526020018280546111c490614272565b80156112115780601f106111e657610100808354040283529160200191611211565b820191906000526020600020905b8154815290600101906020018083116111f457829003601f168201915b505050505081565b600460149054906101000a900460ff1615611269576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126090613e3f565b60405180910390fd5b6001600460146101000a81548160ff021916908315150217905550806003908051906020019061129a92919061272b565b506000600167ffffffffffffffff8111156112de577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561131757816020015b6113046127b1565b8152602001906001900390816112fc5790505b509050611327600460013061207d565b81600081518110611361577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506113746127d1565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e0018190525061142430627864506120b4565b81610100018190525060008061143983612112565b91509150601660030b821461144d83611ad5565b60405160200161145d9190613b71565b604051602081830303815290604052906114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a49190613dbd565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611531929190613bd0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161159b9190613ad0565b6000604051808303816000865af19150503d80600081146115d8576040519150601f19603f3d011682016040523d82523d6000602084013e6115dd565b606091505b5091509150816115ee576015611603565b80806020019051810190611602919061310e565b5b60030b9250505092915050565b600061161a612840565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b8660405160240161164f9190613bb5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516116b99190613ad0565b6000604051808303816000865af19150503d80600081146116f6576040519150601f19603f3d011682016040523d82523d6000602084013e6116fb565b606091505b5091509150611708612840565b826117155760158161172a565b8180602001905181019061172991906131af565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b878760405160240161177a929190613bd0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516117e49190613ad0565b6000604051808303816000865af19150503d8060008114611821576040519150601f19603f3d011682016040523d82523d6000602084013e611826565b606091505b509150915081611839576015600061184e565b8080602001905181019061184d9190613173565b5b8160030b9150809450819550505050509250929050565b61186d611939565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d490613dff565b60405180910390fd5b6118e681611e01565b50565b6060611932600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061228a565b9050919050565b6119416122ab565b73ffffffffffffffffffffffffffffffffffffffff1661195f610d35565b73ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac90613e1f565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b888888886040516024016119f49493929190613bf9565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a5e9190613ad0565b6000604051808303816000865af19150503d8060008114611a9b576040519150601f19603f3d011682016040523d82523d6000602084013e611aa0565b606091505b509150915081611ab1576015611ac6565b80806020019051810190611ac5919061310e565b5b60030b92505050949350505050565b60606000821415611b1d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611c7d565b600082905060005b60008214611b4f578080611b38906142d5565b915050600a82611b489190614129565b9150611b25565b60008167ffffffffffffffff811115611b91577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611bc35781602001600182028036833780820191505090505b5090505b60008514611c7657600182611bdc919061415a565b9150600a85611beb919061431e565b6030611bf791906140d3565b60f81b818381518110611c33577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611c6f9190614129565b9450611bc7565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b888888604051602401611cbe93929190613cd5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d289190613ad0565b6000604051808303816000865af19150503d8060008114611d65576040519150601f19603f3d011682016040523d82523d6000602084013e611d6a565b606091505b509150915081611d7d5760156000611d92565b80806020019051810190611d9191906131eb565b5b8160030b915080945081955050505050935093915050565b6000611dbc836000018360001b6122b3565b905092915050565b600080611df5600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163086866119b7565b90508091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b898989604051602401611f0393929190613c97565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611f6d9190613ad0565b6000604051808303816000865af19150503d8060008114611faa576040519150601f19603f3d011682016040523d82523d6000602084013e611faf565b606091505b50915091508161203157601560008067ffffffffffffffff811115611ffd577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561202b5781602001602082028036833780820191505090505b50612046565b808060200190518101906120459190613227565b5b8260030b9250809550819650829750505050505093509350939050565b6000612075836000018360001b612439565b905092915050565b6120856127b1565b6040518060400160405280612099866124a9565b81526020016120a88585612536565b81525090509392505050565b6120bc612840565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff16148015612144575060008161010001516040015163ffffffff16145b1561216a576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b886040516024016121a09190613e5f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161220a9190613ad0565b60006040518083038185875af1925050503d8060008114612247576040519150601f19603f3d011682016040523d82523d6000602084013e61224c565b606091505b50915091508161225f5760156000612274565b808060200190518101906122739190613137565b5b8160030b91508095508196505050505050915091565b6060600061229a836000016126ac565b905060608190508092505050919050565b600033905090565b6000808360010160008481526020019081526020016000205490506000811461242d5760006001826122e5919061415a565b90506000600186600001805490506122fd919061415a565b90508181146123b8576000866000018281548110612344577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015490508087600001848154811061238e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806123f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612433565b60009150505b92915050565b60006124458383612708565b61249e5782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506124a3565b600090505b92915050565b6000600260008360068111156124e8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612520577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b61253e612883565b60016004811115612578577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8360048111156125b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156125f45781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126a6565b60048081111561262d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612666577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156126a55781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156126fc57602002820191906000526020600020905b8154815260200190600101908083116126e8575b50505050509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b82805461273790614272565b90600052602060002090601f01602090048101928261275957600085556127a0565b82601f1061277257805160ff19168380011785556127a0565b828001600101855582156127a0579182015b8281111561279f578251825591602001919060010190612784565b5b5090506127ad91906128e0565b5090565b6040518060400160405280600081526020016127cb612883565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b81526020016000151581526020016060815260200161283a612840565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156128f95760008160009055506001016128e1565b5090565b600061291061290b84613ec1565b613e9c565b9050808382526020820190508285602086028201111561292f57600080fd5b60005b8581101561295f57816129458882612bc6565b845260208401935060208301925050600181019050612932565b5050509392505050565b600061297c61297784613eed565b613e9c565b9050808382526020820190508285602086028201111561299b57600080fd5b60005b858110156129e557813567ffffffffffffffff8111156129bd57600080fd5b8086016129ca8982612eb9565b8552602085019450602084019350505060018101905061299e565b5050509392505050565b6000612a026129fd84613f19565b613e9c565b905082815260208101848484011115612a1a57600080fd5b612a25848285614230565b509392505050565b6000612a40612a3b84613f4a565b613e9c565b905082815260208101848484011115612a5857600080fd5b612a63848285614230565b509392505050565b600081359050612a7a8161464b565b92915050565b600081519050612a8f8161464b565b92915050565b600081519050612aa481614662565b92915050565b600082601f830112612abb57600080fd5b8151612acb8482602086016128fd565b91505092915050565b600082601f830112612ae557600080fd5b8135612af5848260208601612969565b91505092915050565b600081359050612b0d81614679565b92915050565b600081519050612b2281614679565b92915050565b60008083601f840112612b3a57600080fd5b8235905067ffffffffffffffff811115612b5357600080fd5b602083019150836001820283011115612b6b57600080fd5b9250929050565b600082601f830112612b8357600080fd5b8135612b938482602086016129ef565b91505092915050565b600081519050612bab81614690565b92915050565b600081359050612bc0816146a7565b92915050565b600081519050612bd5816146a7565b92915050565b600082601f830112612bec57600080fd5b8135612bfc848260208601612a2d565b91505092915050565b600060608284031215612c1757600080fd5b612c216060613e9c565b90506000612c3184828501612f32565b6000830152506020612c4584828501612a6b565b6020830152506040612c5984828501612f32565b60408301525092915050565b600060608284031215612c7757600080fd5b612c816060613e9c565b90506000612c9184828501612f47565b6000830152506020612ca584828501612a80565b6020830152506040612cb984828501612f47565b60408301525092915050565b60006101608284031215612cd857600080fd5b612ce3610120613e9c565b9050600082013567ffffffffffffffff811115612cff57600080fd5b612d0b84828501612bdb565b600083015250602082013567ffffffffffffffff811115612d2b57600080fd5b612d3784828501612bdb565b6020830152506040612d4b84828501612a6b565b604083015250606082013567ffffffffffffffff811115612d6b57600080fd5b612d7784828501612bdb565b6060830152506080612d8b84828501612afe565b60808301525060a0612d9f84828501612bb1565b60a08301525060c0612db384828501612afe565b60c08301525060e082013567ffffffffffffffff811115612dd357600080fd5b612ddf84828501612ad4565b60e083015250610100612df484828501612c05565b6101008301525092915050565b600060a08284031215612e1357600080fd5b612e1d60a0613e9c565b90506000612e2d84828501612afe565b6000830152506020612e4184828501612a6b565b602083015250604082013567ffffffffffffffff811115612e6157600080fd5b612e6d84828501612b72565b604083015250606082013567ffffffffffffffff811115612e8d57600080fd5b612e9984828501612b72565b6060830152506080612ead84828501612a6b565b60808301525092915050565b600060408284031215612ecb57600080fd5b612ed56040613e9c565b90506000612ee584828501612f1d565b600083015250602082013567ffffffffffffffff811115612f0557600080fd5b612f1184828501612e01565b60208301525092915050565b600081359050612f2c816146be565b92915050565b600081359050612f41816146d5565b92915050565b600081519050612f56816146d5565b92915050565b600081519050612f6b816146ec565b92915050565b600060208284031215612f8357600080fd5b6000612f9184828501612a6b565b91505092915050565b60008060408385031215612fad57600080fd5b6000612fbb85828601612a6b565b9250506020612fcc85828601612a6b565b9150509250929050565b60008060808385031215612fe957600080fd5b6000612ff785828601612a6b565b925050602061300885828601612c05565b9150509250929050565b6000806040838503121561302557600080fd5b600061303385828601612a6b565b925050602083013567ffffffffffffffff81111561305057600080fd5b61305c85828601612cc5565b9150509250929050565b6000806040838503121561307957600080fd5b600061308785828601612a6b565b925050602061309885828601612f1d565b9150509250929050565b600080600080606085870312156130b857600080fd5b60006130c687828801612a6b565b94505060206130d787828801612f1d565b935050604085013567ffffffffffffffff8111156130f457600080fd5b61310087828801612b28565b925092505092959194509250565b60006020828403121561312057600080fd5b600061312e84828501612b9c565b91505092915050565b6000806040838503121561314a57600080fd5b600061315885828601612b9c565b925050602061316985828601612a95565b9150509250929050565b6000806040838503121561318657600080fd5b600061319485828601612b9c565b92505060206131a585828601612b13565b9150509250929050565b600080608083850312156131c257600080fd5b60006131d085828601612b9c565b92505060206131e185828601612c65565b9150509250929050565b600080604083850312156131fe57600080fd5b600061320c85828601612b9c565b925050602061321d85828601612f5c565b9150509250929050565b60008060006060848603121561323c57600080fd5b600061324a86828701612b9c565b935050602061325b86828701612f5c565b925050604084015167ffffffffffffffff81111561327857600080fd5b61328486828701612aaa565b9150509250925092565b6000602082840312156132a057600080fd5b60006132ae84828501612bb1565b91505092915050565b6000806000606084860312156132cc57600080fd5b600084013567ffffffffffffffff8111156132e657600080fd5b6132f286828701612bdb565b935050602084013567ffffffffffffffff81111561330f57600080fd5b61331b86828701612bdb565b925050604084013567ffffffffffffffff81111561333857600080fd5b61334486828701612bdb565b9150509250925092565b600061335a8383613588565b905092915050565b600061336e8383613601565b60208301905092915050565b60006133868383613a57565b905092915050565b600061339a8383613a94565b60208301905092915050565b6133af8161418e565b82525050565b6133be8161418e565b82525050565b60006133cf82613fd0565b6133d98185614046565b9350836020820285016133eb85613f7b565b8060005b858110156134275784840389528151613408858261334e565b945061341383614012565b925060208a019950506001810190506133ef565b50829750879550505050505092915050565b600061344482613fdb565b61344e8185614057565b935061345983613f8b565b8060005b8381101561348a5781516134718882613362565b975061347c8361401f565b92505060018101905061345d565b5085935050505092915050565b60006134a282613fe6565b6134ac8185614068565b9350836020820285016134be85613f9b565b8060005b858110156134fa57848403895281516134db858261337a565b94506134e68361402c565b925060208a019950506001810190506134c2565b50829750879550505050505092915050565b600061351782613ff1565b6135218185614079565b935061352c83613fab565b8060005b8381101561355d578151613544888261338e565b975061354f83614039565b925050600181019050613530565b5085935050505092915050565b613573816141b2565b82525050565b613582816141b2565b82525050565b600061359382613ffc565b61359d818561408a565b93506135ad81856020860161423f565b6135b68161440b565b840191505092915050565b60006135cc82613ffc565b6135d6818561409b565b93506135e681856020860161423f565b80840191505092915050565b6135fb816141be565b82525050565b61360a816141d5565b82525050565b613619816141d5565b82525050565b600061362a82614007565b61363481856140a6565b935061364481856020860161423f565b61364d8161440b565b840191505092915050565b600061366382614007565b61366d81856140b7565b935061367d81856020860161423f565b6136868161440b565b840191505092915050565b600061369c82614007565b6136a681856140c8565b93506136b681856020860161423f565b80840191505092915050565b600081546136cf81614272565b6136d981866140c8565b945060018216600081146136f4576001811461370557613738565b60ff19831686528186019350613738565b61370e85613fbb565b60005b8381101561373057815481890152600182019150602081019050613711565b838801955050505b50505092915050565b600061374e6015836140b7565b91506137598261441c565b602082019050919050565b60006137716026836140b7565b915061377c82614445565b604082019050919050565b60006137946023836140c8565b915061379f82614494565b602382019050919050565b60006137b76023836140c8565b91506137c2826144e3565b602382019050919050565b60006137da6025836140c8565b91506137e582614532565b602582019050919050565b60006137fd6020836140b7565b915061380882614581565b602082019050919050565b60006138206013836140b7565b915061382b826145aa565b602082019050919050565b60006138436004836140c8565b915061384e826145d3565b600482019050919050565b60006138666027836140c8565b9150613871826145fc565b602782019050919050565b6060820160008201516138926000850182613aa3565b5060208201516138a560208501826133a6565b5060408201516138b86040850182613aa3565b50505050565b6060820160008201516138d46000850182613aa3565b5060208201516138e760208501826133a6565b5060408201516138fa6040850182613aa3565b50505050565b600061016083016000830151848203600086015261391e828261361f565b91505060208301518482036020860152613938828261361f565b915050604083015161394d60408601826133a6565b5060608301518482036060860152613965828261361f565b915050608083015161397a608086018261356a565b5060a083015161398d60a0860182613601565b5060c08301516139a060c086018261356a565b5060e083015184820360e08601526139b88282613497565b9150506101008301516139cf61010086018261387c565b508091505092915050565b600060a0830160008301516139f2600086018261356a565b506020830151613a0560208601826133a6565b5060408301518482036040860152613a1d8282613588565b91505060608301518482036060860152613a378282613588565b9150506080830151613a4c60808601826133a6565b508091505092915050565b6000604083016000830151613a6f6000860182613a94565b5060208301518482036020860152613a8782826139da565b9150508091505092915050565b613a9d81614202565b82525050565b613aac8161420c565b82525050565b613abb8161420c565b82525050565b613aca8161421c565b82525050565b6000613adc82846135c1565b915081905092915050565b6000613af382856136c2565b9150613aff8284613691565b91508190509392505050565b6000613b1782846136c2565b9150613b2282613836565b915081905092915050565b6000613b3882613787565b9150613b448284613691565b915081905092915050565b6000613b5a826137aa565b9150613b668284613691565b915081905092915050565b6000613b7c826137cd565b9150613b888284613691565b915081905092915050565b6000613b9e82613859565b9150613baa8284613691565b915081905092915050565b6000602082019050613bca60008301846133b5565b92915050565b6000604082019050613be560008301856133b5565b613bf260208301846133b5565b9392505050565b6000608082019050613c0e60008301876133b5565b613c1b60208301866133b5565b613c2860408301856133b5565b613c356060830184613610565b95945050505050565b6000608082019050613c5360008301856133b5565b613c6060208301846138be565b9392505050565b6000604082019050613c7c60008301856133b5565b8181036020830152613c8e8184613900565b90509392505050565b6000606082019050613cac60008301866133b5565b613cb96020830185613ac1565b8181036040830152613ccb81846133c4565b9050949350505050565b6000606082019050613cea60008301866133b5565b613cf76020830185613ac1565b8181036040830152613d098184613439565b9050949350505050565b60006020820190508181036000830152613d2d818461350c565b905092915050565b6000602082019050613d4a60008301846135f2565b92915050565b6000608082019050613d6560008301856135f2565b613d7260208301846138be565b9392505050565b6000602082019050613d8e6000830184613610565b92915050565b6000604082019050613da96000830185613610565b613db66020830184613579565b9392505050565b60006020820190508181036000830152613dd78184613658565b905092915050565b60006020820190508181036000830152613df881613741565b9050919050565b60006020820190508181036000830152613e1881613764565b9050919050565b60006020820190508181036000830152613e38816137f0565b9050919050565b60006020820190508181036000830152613e5881613813565b9050919050565b60006020820190508181036000830152613e798184613900565b905092915050565b6000602082019050613e966000830184613ab2565b92915050565b6000613ea6613eb7565b9050613eb282826142a4565b919050565b6000604051905090565b600067ffffffffffffffff821115613edc57613edb6143dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613f0857613f076143dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613f3457613f336143dc565b5b613f3d8261440b565b9050602081019050919050565b600067ffffffffffffffff821115613f6557613f646143dc565b5b613f6e8261440b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006140de82614202565b91506140e983614202565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561411e5761411d61434f565b5b828201905092915050565b600061413482614202565b915061413f83614202565b92508261414f5761414e61437e565b5b828204905092915050565b600061416582614202565b915061417083614202565b9250828210156141835761418261434f565b5b828203905092915050565b6000614199826141e2565b9050919050565b60006141ab826141e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561425d578082015181840152602081019050614242565b8381111561426c576000848401525b50505050565b6000600282049050600182168061428a57607f821691505b6020821081141561429e5761429d6143ad565b5b50919050565b6142ad8261440b565b810181811067ffffffffffffffff821117156142cc576142cb6143dc565b5b80604052505050565b60006142e082614202565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156143135761431261434f565b5b600182019050919050565b600061432982614202565b915061433483614202565b9250826143445761434361437e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b6146548161418e565b811461465f57600080fd5b50565b61466b816141a0565b811461467657600080fd5b50565b614682816141b2565b811461468d57600080fd5b50565b614699816141c8565b81146146a457600080fd5b50565b6146b0816141d5565b81146146bb57600080fd5b50565b6146c781614202565b81146146d257600080fd5b50565b6146de8161420c565b81146146e957600080fd5b50565b6146f58161421c565b811461470057600080fd5b5056fea26469706673582212201facf4bc0632b69447b95b238968dc2293cab79b1aba6e400d06a4f168a4be9764736f6c63430008040033"; From 86bae350c1d896df7bd3dc483cfb142ad428b1ad Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 30 Oct 2022 16:45:16 +0200 Subject: [PATCH 733/956] udpate secrtjs package --- package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 1f04bff7e..b1ddb60dc 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "1.0.0", - "secretjs": "^1.4.0", + "secretjs": "^1.4.5", "socket.io-client": "^4.1.3", "tonweb": "^0.0.57", "tonweb-mnemonic": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index bd04b1273..e28474fc5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3363,12 +3363,6 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#168cdfdef984ef482909d78c365f9b39aede0366": - version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#168cdfdef984ef482909d78c365f9b39aede0366" - dependencies: - axios "^0.21.1" - "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#83c1506548400d824af5666ded33eaf55f499f80" @@ -4784,6 +4778,11 @@ globby@^11.0.3: merge2 "^1.4.1" slash "^3.0.0" +google-protobuf@^3.14.0: + version "3.21.2" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" + integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== + google-protobuf@^3.20.1: version "3.21.0" resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.0.tgz#8dfa3fca16218618d373d414d3c1139e28034d6e" @@ -6929,10 +6928,10 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secretjs@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.4.0.tgz#2d439df0134d9593ac71591994b31ae0b8a45260" - integrity sha512-GfQkNbxlmskU74zt90LlxudlpG8rm5eRt+6VqufUucxpYHCN8aT9xG6/KhtYrzh+46reTnTeiBiPpIv/c0SfpQ== +secretjs@^1.4.5: + version "1.4.5" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.4.5.tgz#c94098faace9932c5a39cc4622a7510daac44274" + integrity sha512-WbHzcDTL8VW8WwVMAPXZAMj6QutXBe1gjLhyjOT3lAQX5zU1TKh2h8EpAxNrM0BfLPMPRC24qtngrrkVrdW2CA== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" @@ -6947,6 +6946,7 @@ secretjs@^1.4.0: bip32 "2.0.6" bip39 "3.0.4" curve25519-js "0.0.4" + google-protobuf "^3.14.0" is-gzip "2.0.0" miscreant "0.3.2" pako "2.0.4" From a2a785d3e6c14e1e836511f5993643e874e8d9b0 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 30 Oct 2022 19:52:13 +0200 Subject: [PATCH 734/956] change gas fee secret network from 30k to 130k to set view key --- src/helpers/secret.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 0921c31fc..3c083f7f3 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -276,7 +276,7 @@ export async function secretHelperFactory( }, { waitForCommit: true, - gasLimit: 30000, + gasLimit: 130000, } ); return tx; From fe21379b23a3fbc7fbad6097f1d5e31a4a09ca64 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 31 Oct 2022 12:19:57 +0530 Subject: [PATCH 735/956] testnet: ethereum: new contracts! --- src/consts.ts | 2 +- src/factory/cons.ts | 18 +++++++++--------- src/factory/factories.ts | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 9b5e11fb9..2cfcb567d 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -81,7 +81,7 @@ export enum MainNetRpcUri { GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "https://grpc.mainnet.secretsaturn.net", + SECRET = "https://secret-4.api.trivium.network:9091", SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", NEAR = "https://rpc.mainnet.near.org", MOONBEAM = "https://rpc.api.moonbeam.network", diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 3a25e2ea3..0cd9bcf68 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -33,9 +33,9 @@ export function getDefaultContract( fromChain: FullChain, toChain: FullChain ): string | undefined { - const defaultMintError = new Error( - `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` - ); + // const defaultMintError = new Error( + // `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` + // ); const from = fromChain.getNonce(); const to = toChain.getNonce(); @@ -63,25 +63,25 @@ export function getDefaultContract( (from === Chain.VECHAIN && toType === ChainType.EVM) || (to === Chain.VECHAIN && fromType === ChainType.EVM) ) { - throw defaultMintError; + // throw defaultMintError; } if ( (fromType === ChainType.EVM && toType === ChainType.ELROND) || (fromType === ChainType.ELROND && toType === ChainType.EVM) ) { - throw defaultMintError; + // throw defaultMintError; } if ( (fromType === ChainType.EVM && toType === ChainType.TEZOS) || (fromType === ChainType.TEZOS && toType === ChainType.EVM) ) { - throw defaultMintError; + // throw defaultMintError; } - - if (fromType === ChainType.TRON) { - throw defaultMintError; + + if (fromType === ChainType.TRON) { + // throw defaultMintError; } return contract; diff --git a/src/factory/factories.ts b/src/factory/factories.ts index dad9b0ea5..07cc7bd94 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -189,11 +189,11 @@ export namespace ChainFactoryConfigs { ropstenParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + erc721_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", + erc1155Minter: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", + erc721Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + minter_addr: "0x04a5f9158829Cae5a0a549954AdEaBD47BbB3d2d", nonce: Chain.ETHEREUM, feeMargin, }, From 47fc47a05df492c7d9fe673c56cc6f6493f869e0 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 31 Oct 2022 15:54:07 +0200 Subject: [PATCH 736/956] update aptos --- src/consts.ts | 1 + src/helpers/aptos/bridge_client.ts | 80 +++++++++++++++++-------- src/helpers/aptos/bridge_client_abis.ts | 24 ++++---- 3 files changed, 69 insertions(+), 36 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 2cfcb567d..8aa3131ec 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -87,6 +87,7 @@ export enum MainNetRpcUri { MOONBEAM = "https://rpc.api.moonbeam.network", ABEYCHAIN = "https://rpc.abeychain.com", TON = "https://toncenter.com/api/v2/jsonRPC", + APTOS = "https://fullnode.mainnet.aptoslabs.com/", // TODO: Algorand } diff --git a/src/helpers/aptos/bridge_client.ts b/src/helpers/aptos/bridge_client.ts index 21e793d4d..5cf05d6dc 100644 --- a/src/helpers/aptos/bridge_client.ts +++ b/src/helpers/aptos/bridge_client.ts @@ -8,21 +8,34 @@ import { import { BRIDGE_ABIS } from "./bridge_client_abis"; interface BridgeData { + action_cnt: string; + burning_nfts: { + handle: string; + }; + consumed_actions: { + handle: string; + }; group_key: string; paused: boolean; - consumed_actions: any; - frozen_nfts: any; + frozen_nfts: { + handle: string; + }; + whitelist: { + handle: string; + }; } export class BridgeClient { aptosClient: AptosClient; transactionBuilder: TransactionBuilderABI; + address: string; - constructor(aptosClient: AptosClient) { + constructor(aptosClient: AptosClient, address: string) { this.aptosClient = aptosClient; this.transactionBuilder = new TransactionBuilderABI( BRIDGE_ABIS.map((abi) => new HexString(abi).toUint8Array()) ); + this.address = address; } async initialize( @@ -30,7 +43,7 @@ export class BridgeClient { groupKey: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::initialize", + `${this.getAddress()}::bridge::initialize`, [], [groupKey] ); @@ -44,7 +57,7 @@ export class BridgeClient { signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::pause", + `${this.getAddress()}::bridge::pause`, [], [actionId, signature] ); @@ -58,7 +71,7 @@ export class BridgeClient { signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::unpause", + `${this.getAddress()}::bridge::unpause`, [], [actionId, signature] ); @@ -74,7 +87,7 @@ export class BridgeClient { signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_whitelist", + `${this.getAddress()}::bridge::validate_whitelist`, [], [collectionCreator.toString(), collectionName, actionId, signature] ); @@ -90,7 +103,7 @@ export class BridgeClient { signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_blacklist", + `${this.getAddress()}::bridge::validate_blacklist`, [], [collectionCreator.toString(), collectionName, actionId, signature] ); @@ -105,7 +118,7 @@ export class BridgeClient { signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_withdraw_fees", + `${this.getAddress()}::bridge::validate_withdraw_fees`, [], [to.toString(), actionId, signature] ); @@ -132,7 +145,7 @@ export class BridgeClient { signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_transfer_nft", + `${this.getAddress()}::bridge::validate_transfer_nft`, [], [ collection, @@ -146,7 +159,6 @@ export class BridgeClient { mutateSetting, propertyKeys, propertyValues, - propertyValues, propertyTypes, to.toString(), actionId, @@ -170,7 +182,7 @@ export class BridgeClient { mintWith: string ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::withdraw_nft", + `${this.getAddress()}::bridge::withdraw_nft`, [], [ bridgeAdmin.toString(), @@ -198,7 +210,7 @@ export class BridgeClient { signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_burn_nft", + `${this.getAddress()}::bridge::validate_burn_nft`, [], [ collectionCreator.toString(), @@ -215,21 +227,19 @@ export class BridgeClient { async freezeNft( account: AptosAccount, - bridgeAdmin: HexString, collectionCreator: HexString, collectionName: string, tokenName: string, - propertyVersion: string, + propertyVersion: number | bigint, price: number | bigint, chainNonce: number | bigint, to: string, mintWith: string ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::freeze_nft", + `${this.getAddress()}::bridge::freeze_nft`, [], [ - bridgeAdmin.toString(), collectionCreator.toString(), collectionName, tokenName, @@ -255,7 +265,7 @@ export class BridgeClient { signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::validate_unfreeze_nft", + `${this.getAddress()}::bridge::validate_unfreeze_nft`, [], [ collectionCreator.toString(), @@ -278,7 +288,7 @@ export class BridgeClient { signature: Uint8Array ): Promise { const payload = this.transactionBuilder.buildTransactionPayload( - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::update_group_key", + `${this.getAddress()}::bridge::update_group_key`, [], [groupKey, actionId, signature] ); @@ -286,13 +296,35 @@ export class BridgeClient { return this.aptosClient.generateSignSubmitTransaction(account, payload); } - async getBridgeData(creator: MaybeHexString) { - const resources = await this.aptosClient.getAccountResources(creator); + async getBridgeData() { + const resources = await this.aptosClient.getAccountResources( + this.getAddress() + ); const accountResource = resources.find( - (r) => - r.type == - "0x8ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0::bridge::Bridge" + (r) => r.type == `${this.getAddress()}::bridge::Bridge` ); return accountResource?.data as BridgeData; } + + getAddress() { + return this.address; + } + + async isWhitelist(collectionCreator: MaybeHexString, collectionName: string) { + const data = await this.getBridgeData(); + const { handle } = data.whitelist; + try { + const res = await this.aptosClient.getTableItem(handle, { + key_type: `${this.getAddress()}::bridge::CollectionId`, + value_type: "bool", + key: { + creator: collectionCreator.toString(), + name: collectionName, + }, + }); + return res; + } catch (e: any) { + return false; + } + } } diff --git a/src/helpers/aptos/bridge_client_abis.ts b/src/helpers/aptos/bridge_client_abis.ts index d79a5b338..b0a21f8c6 100644 --- a/src/helpers/aptos/bridge_client_abis.ts +++ b/src/helpers/aptos/bridge_client_abis.ts @@ -1,26 +1,26 @@ export const BRIDGE_ABIS = [ // ../build/aptos-bridge/abis/bridge/initialize.abi - "010a696e697469616c697a658ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000010967726f75705f6b65790601", + "010a696e697469616c697a65f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000010967726f75705f6b65790601", // ../build/aptos-bridge/abis/bridge/pause.abi - "010570617573658ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01057061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/unpause.abi - "0107756e70617573658ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000209616374696f6e5f696403097369676e61747572650601", + "0107756e7061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/update_group_key.abi - "01107570646174655f67726f75705f6b65798ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b6579f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi - "011276616c69646174655f77686974656c6973748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f77686974656c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi - "011276616c69646174655f626c61636b6c6973748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f626c61636b6c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi - "011676616c69646174655f77697468647261775f666565738ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f66656573f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi - "011576616c69646174655f7472616e736665725f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi - "010c77697468647261775f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000090c6272696467655f61646d696e0412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010c77697468647261775f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", // ../build/aptos-bridge/abis/bridge/validate_burn_nft.abi - "011176616c69646174655f6275726e5f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", + "011176616c69646174655f6275726e5f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", // ../build/aptos-bridge/abis/bridge/freeze_nft.abi - "010a667265657a655f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a0066272696467650000090c6272696467655f61646d696e0412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010a667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi - "011576616c69646174655f756e667265657a655f6e66748ee4020133974b38ff869ba398faf8679a111a7e20bc9ff8d8c666a7d28f97a00662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f756e667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", ]; From 87efc765b7b5618c9f19d41113d51c7b6b02f79a Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 31 Oct 2022 16:28:46 +0200 Subject: [PATCH 737/956] fixes --- package.json | 2 +- src/helpers/aptos/index.ts | 5 ++-- yarn.lock | 57 ++++++++++++++++---------------------- 3 files changed, 27 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index b1ddb60dc..8bcad8996 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@vechain/ethers": "^4.0.27-5", "@walletconnect/client": "^1.7.0", "algosdk": "^1.15.0-beta.1", - "aptos": "^1.3.11", + "aptos": "^1.3.16", "axios": "^0.21.1", "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts index 4e8cc85a3..327c0cd3d 100644 --- a/src/helpers/aptos/index.ts +++ b/src/helpers/aptos/index.ts @@ -44,7 +44,7 @@ export async function aptosHelper({ }: AptosParams): Promise { const client = new AptosClient(rpcUrl); - const bridgeClient = new BridgeClient(client); + const bridgeClient = new BridgeClient(client, bridge); return { getNonce() { @@ -79,11 +79,10 @@ export async function aptosHelper({ ) { const receipt = await bridgeClient.freezeNft( sender, - HexString.ensure(bridge), HexString.ensure(id.native.collection_creator), id.native.collection_name, id.native.token_name, - id.native.property_version.toString(), + id.native.property_version, BigInt(txFees.toString()), chain_nonce, to, diff --git a/yarn.lock b/yarn.lock index e28474fc5..15ef642c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1211,6 +1211,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.0.0.tgz#d5e38bfbdaba174805a4e649f13be9a9ed3351ae" integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== +"@noble/hashes@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111" + integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== + "@noble/hashes@^1.1.2", "@noble/hashes@~1.1.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" @@ -1483,7 +1488,7 @@ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== -"@scure/bip39@^1.1.0": +"@scure/bip39@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.0.tgz#92f11d095bae025f166bef3defcc5bf4945d419a" integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== @@ -2384,17 +2389,16 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -aptos@^1.3.11: - version "1.3.11" - resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.3.11.tgz#6063113c734e18909b0d7f7233a99cc574153fd4" - integrity sha512-IaiXvKGFrL7/dg931KjOU6ny59lCV724NyNNJF/L4zigTsV0+EIGGAyaJBOvWedPr43qrY6CKiEdkDjXsOQJSA== +aptos@^1.3.16: + version "1.3.16" + resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.3.16.tgz#fb4d072c4975beece9c0ee4104ff2dd069fcc1ec" + integrity sha512-LxI4XctQ5VeL+HokjwuGPwsb1fcydLIn4agFXyhn7hSYosTLNRxQ3UIixyP4Fmv6qPBjQVu8hELVSlThQk/EjA== dependencies: - "@scure/bip39" "^1.1.0" - axios "^0.27.2" - ed25519-hd-key "^1.2.0" - js-sha3 "^0.8.0" - tweetnacl "^1.0.3" - typescript-memoize "^1.1.0" + "@noble/hashes" "1.1.3" + "@scure/bip39" "1.1.0" + axios "0.27.2" + form-data "4.0.0" + tweetnacl "1.0.3" are-we-there-yet@~1.1.2: version "1.1.7" @@ -2532,7 +2536,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@*, axios@^0.27.2: +axios@*, axios@0.27.2: version "0.27.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== @@ -3617,14 +3621,6 @@ ed25519-hd-key@1.1.2: create-hmac "1.1.7" tweetnacl "1.0.3" -ed25519-hd-key@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.3.0.tgz#e0bd2be4c07e15c753d5ed3aca30744e321b7c78" - integrity sha512-IWwAyiiuJQhgu3L8NaHb68eJxTu2pgCwxIBdgpLJdKpYZM46+AXePSVTr7fkNKaUOfOL4IrjEUaQvyVRIDP7fg== - dependencies: - create-hmac "1.1.7" - tweetnacl "1.0.3" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -4524,19 +4520,19 @@ form-data-encoder@1.7.1: resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.1.tgz#ac80660e4f87ee0d3d3c3638b7da8278ddb8ec96" integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== +form-data@4.0.0, form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -7681,11 +7677,6 @@ typescript-compiler@^1.4.1-2: resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f" integrity sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg== -typescript-memoize@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/typescript-memoize/-/typescript-memoize-1.1.0.tgz#4a8f512d06fc995167c703a3592219901db8bc79" - integrity sha512-LQPKVXK8QrBBkL/zclE6YgSWn0I8ew5m0Lf+XL00IwMhlotqRLlzHV+BRrljVQIc+NohUAuQP7mg4HQwrx5Xbg== - typescript@^4.3.5: version "4.8.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" From 5a4c0a92d5841bf727dec2623c355d8ac0db2ae8 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 31 Oct 2022 16:59:25 +0200 Subject: [PATCH 738/956] add aptos to factory --- src/factory/factories.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 07cc7bd94..bf8be00aa 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -423,6 +423,14 @@ export namespace ChainFactoryConfigs { nonce: Chain.POLYGON, feeMargin, }, + aptosParams: { + rpcUrl: MainNetRpcUri.APTOS, + bridge: + "0xf1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d", + XpNft: "XPNFT", + feeMargin, + notifier, + }, }; }; From 9ff7a8d6f1ed69746731f7f88c7b2327c50e5517 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 31 Oct 2022 17:15:20 +0200 Subject: [PATCH 739/956] add aptos params --- src/factory/factories.ts | 5 +++-- src/factory/index.ts | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index bf8be00aa..a1e8fc797 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -427,9 +427,10 @@ export namespace ChainFactoryConfigs { rpcUrl: MainNetRpcUri.APTOS, bridge: "0xf1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d", - XpNft: "XPNFT", - feeMargin, + xpnft: "XPNFT", notifier, + feeMargin, + nonce: Chain.APTOS, }, }; }; diff --git a/src/factory/index.ts b/src/factory/index.ts index 8cb59ed1f..c1c10f201 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -63,6 +63,7 @@ import { HEDERA_PROXY_BC, HEDERA_TOKEN_SERVICE_ABI, } from "../helpers/hedera/hts_abi"; +import { AptosParams } from "../helpers/aptos"; export type FullChain = TransferNftForeign< Signer, @@ -290,6 +291,7 @@ export interface ChainParams { moonbeamParams: Web3Params; abeyChainParams: Web3Params; tonParams: TonParams; + aptosParams: AptosParams; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -345,6 +347,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.MOONBEAM, chainParams.moonbeamParams); cToP.set(Chain.ABEYCHAIN, chainParams.abeyChainParams); cToP.set(Chain.TON, chainParams.tonParams); + cToP.set(Chain.APTOS, chainParams.aptosParams); return cToP; } /** From 800e5653914128277804378b3303890498fababe Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 1 Nov 2022 17:51:58 +0530 Subject: [PATCH 740/956] bridge: minter: add an erc20 supported minter --- package.json | 2 +- src/helpers/web3.ts | 6 +- src/helpers/web3_erc20.ts | 466 ++++++++++++++++++++++++++++++++++++++ yarn.lock | 4 +- 4 files changed, 473 insertions(+), 5 deletions(-) create mode 100644 src/helpers/web3_erc20.ts diff --git a/package.json b/package.json index 8bcad8996..40119869e 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,6 @@ "tronstation": "^1.0.1", "tronweb": "^4.1.0", "web3-providers-connex": "^0.3.1", - "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f" + "xpnet-web3-contracts": "git+https://github.com/xp-network/XP.network-HECO-Migration#aa9473ea3b0f748bba54f5755abcfd17e3548237" } } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 21457dc30..6a3b1ea57 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -81,14 +81,16 @@ export type MintArgs = { export interface IsApproved { isApprovedForMinter( address: NftInfo, - sender: Sender + sender: Sender, + txFee: BigNumber ): Promise; } export interface Approve { approveForMinter( address: NftInfo, - sender: Sender + sender: Sender, + txFee: BigNumber ): Promise; } diff --git a/src/helpers/web3_erc20.ts b/src/helpers/web3_erc20.ts new file mode 100644 index 000000000..d9077db42 --- /dev/null +++ b/src/helpers/web3_erc20.ts @@ -0,0 +1,466 @@ +/** + * Web3 Implementation for cross chain traits + * @module + */ +import BigNumber from "bignumber.js"; +import { + BigNumber as EthBN, + ContractTransaction, + ethers, + PopulatedTransaction, + Signer, + VoidSigner, + Wallet, +} from "ethers"; +import { Provider, TransactionResponse } from "@ethersproject/providers"; +import { + Erc1155Minter__factory, + MinterERC20__factory, + UserNftMinter__factory, + PaymentToken__factory, +} from "xpnet-web3-contracts"; +import { + BaseWeb3Helper, + EthNftInfo, + MintArgs, + NFT_METHOD_MAP, + NftInfo, + TransactionStatus, + Web3Helper, + Web3Params, +} from ".."; +import axios from "axios"; + +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +export async function baseWeb3HelperFactory( + provider: Provider +): Promise { + const w3 = provider; + + return { + async balance(address: string): Promise { + const bal = await w3.getBalance(address); + + // ethers BigNumber is not compatible with our bignumber + return new BigNumber(bal.toString()); + }, + async deployErc721(owner: Signer): Promise { + const factory = new UserNftMinter__factory(owner); + const contract = await factory.deploy(); + + return contract.address; + }, + async mintNftErc1155(owner: Signer, { contract }) { + const erc1155 = Erc1155Minter__factory.connect(contract!, owner); + const tx = await erc1155.mintNft(await owner.getAddress()); + + return tx; + }, + async mintNft( + owner: Signer, + { contract, uri }: MintArgs + ): Promise { + const erc721 = UserNftMinter__factory.connect(contract!, owner); + + const txm = await erc721.mint(uri, { gasLimit: 1000000 }); + return txm; + }, + }; +} + +export type Web3ERC20Params = Web3Params & { + paymentTokenAddress: string; +}; + +export async function web3ERC20HelperFactory( + params: Web3ERC20Params +): Promise { + const txnUnderpricedPolyWorkaround = + params.nonce == 7 + ? async (utx: PopulatedTransaction) => { + const res = await axios + .get( + "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" + ) + .catch(async () => { + return await axios.get( + "https://gasstation-mainnet.matic.network/v2" + ); + }); + const { result, fast } = res.data; + const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; + + if (trackerGas) { + const sixtyGwei = ethers.utils.parseUnits( + Math.ceil(trackerGas).toString(), + "gwei" + ); + utx.maxFeePerGas = sixtyGwei; + utx.maxPriorityFeePerGas = sixtyGwei; + } + } + : () => Promise.resolve(); + const w3 = params.provider; + const { minter_addr, provider } = params; + const minter = MinterERC20__factory.connect(minter_addr, provider); + + async function notifyValidator( + fromHash: string, + actionId?: string, + type?: string, + toChain?: number, + txFees?: string, + senderAddress?: string, + targetAddress?: string, + nftUri?: string, + tokenId?: string, + contract?: string + ): Promise { + await params.notifier.notifyWeb3( + params.nonce, + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ); + } + + async function getTransaction(hash: string) { + let trx; + let fails = 0; + while (!trx && fails < 7) { + trx = await provider.getTransaction(hash); + await new Promise((resolve) => + setTimeout(() => resolve("wait"), 5000 + fails * 2) + ); + fails++; + } + + return trx as TransactionResponse; + } + + async function extractAction(txr: TransactionResponse): Promise { + const receipt = await txr.wait(); + const log = receipt.logs.find((log) => log.address === minter.address); + if (log === undefined) { + throw Error("Couldn't extract action_id"); + } + + const evdat = minter.interface.parseLog(log); + const action_id: string = evdat.args[0].toString(); + return action_id; + } + + const isApprovedForMinter = async ( + id: NftInfo, + signer: Signer, + _txFees: BigNumber + ) => { + const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + signer + ); + return await NFT_METHOD_MAP[id.native.contractType].approved( + erc as any, + await signer.getAddress(), + minter_addr, + id.native.tokenId, + params.nonce === 0x1d ? {} : undefined + ); + }; + + const approveForMinter = async ( + id: NftInfo, + sender: Signer, + txFees: BigNumber + ) => { + const isApproved = await isApprovedForMinter(id, sender, txFees); + if (isApproved) { + return undefined; + } + const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + sender + ); + + const receipt = await NFT_METHOD_MAP[id.native.contractType].approve( + erc as any, + minter_addr, + id.native.tokenId, + txnUnderpricedPolyWorkaround, + params.nonce === 0x1d ? {} : undefined + ); + await receipt.wait(); + + const erc20 = PaymentToken__factory.connect( + params.paymentTokenAddress, + sender + ); + const approval = await erc20.approve( + minter_addr, + EthBN.from(txFees.toString()) + ); + + return approval.hash; + }; + + const base = await baseWeb3HelperFactory(params.provider); + + return { + ...base, + XpNft: params.erc721_addr, + XpNft1155: params.erc1155_addr, + approveForMinter, + getProvider: () => provider, + async estimateValidateUnfreezeNft(_to, _id, _mW) { + const gas = await provider.getGasPrice(); + return new BigNumber(gas.mul(150_000).toString()); + }, + getFeeMargin() { + return params.feeMargin; + }, + isApprovedForMinter, + preTransfer: (s, id, _fee) => approveForMinter(id, s, _fee), + extractAction, + async isContractAddress(address) { + const code = await provider.getCode(address); + return code !== "0x"; + }, + getNonce: () => params.nonce, + async preTransferRawTxn(id, address, _value) { + const isApproved = await isApprovedForMinter( + id, + new VoidSigner(address, provider), + _value! + ); + + if (isApproved) { + return undefined; + } + + const erc = UserNftMinter__factory.connect( + id.native.contract, + new VoidSigner(address, provider) + ); + + const approvetxn = await erc.populateTransaction.approve( + minter_addr, + id.native.tokenId + ); + + return approvetxn; + }, + + async extractTxnStatus(txn) { + const status = (await (await provider.getTransaction(txn)).wait()).status; + if (status === undefined) { + return TransactionStatus.PENDING; + } + if (status === 1) { + return TransactionStatus.SUCCESS; + } else if (status === 0) { + return TransactionStatus.FAILURE; + } + return TransactionStatus.UNKNOWN; + }, + async getTokenURI(contract, tokenId) { + if (ethers.utils.isAddress(contract) && tokenId) { + const erc721 = UserNftMinter__factory.connect(contract!, provider); + return await erc721.tokenURI(tokenId).catch(() => ""); + } + return ""; + }, + async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { + const tx = await minter + .connect(signer) + .populateTransaction.withdrawNftBatch( + to, + chainNonce, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + nfts[0].native.contract, + EthBN.from(txFees.toString()) + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + + // await notifyValidator( + // res.hash, + // await extractAction(res), + // "Unfreeze", + // chainNonce.toString(), + // txFees.toString(), + // await signer.getAddress(), + // to, + // res.data + // ); + await notifyValidator(res.hash); + + return res; + }, + async transferNftBatchToForeign( + signer, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const tx = await minter + .connect(signer) + .populateTransaction.freezeErc1155Batch( + nfts[0].native.contract, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + chainNonce, + to, + mintWith, + EthBN.from(txFees.toString()) + ); + await txnUnderpricedPolyWorkaround(tx); + + const res = await signer.sendTransaction(tx); + + await notifyValidator(res.hash); + + return res; + }, + async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { + const gasPrice = await w3.getGasPrice(); + const gas = 40_000 + 60_000 * nfts.length; + return new BigNumber(gasPrice.mul(gas).toString()); + }, + async estimateValidateUnfreezeNftBatch(_to, nfts) { + const gasPrice = await w3.getGasPrice(); + const gas = 40_000 + 60_000 * nfts.length; + return new BigNumber(gasPrice.mul(gas).toString()); + }, + createWallet(privateKey: string): Wallet { + return new Wallet(privateKey, provider); + }, + async transferNftToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: NftInfo, + txFees: BigNumber, + mintWith: string, + gasLimit: ethers.BigNumberish | undefined = undefined + ): Promise { + await approveForMinter(id, sender, txFees); + const method = NFT_METHOD_MAP[id.native.contractType].freeze; + + const tx = await minter + .connect(sender) + .populateTransaction[method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + EthBN.from(txFees.toString()), + { + gasLimit, + } + ); + await txnUnderpricedPolyWorkaround(tx); + + const txr: TransactionResponse | unknown = await sender + .sendTransaction(tx) + .catch((e) => { + if (params.nonce === 33) { + return e; + } else throw e; + }); + let txHash: string; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = txr["transactionId"]; + } + if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = txr["returnedHash"] || txr.hash; + } else { + //@ts-ignore checked normal evm + txHash = txr.hash; + } + + await notifyValidator( + //@ts-ignore + txHash, + await extractAction(await getTransaction(txHash)), + "Transfer", + chain_nonce, + txFees.toString(), + await sender.getAddress(), + to, + id.uri, + id.native.tokenId, + id.native.contract + ); + return params.nonce === 33 + ? await provider.getTransaction(txHash) + : (txr as TransactionResponse); + }, + async unfreezeWrappedNft( + sender: Signer, + to: string, + id: NftInfo, + txFees: BigNumber, + nonce + ): Promise { + const txn = await minter + .connect(sender) + .populateTransaction.withdrawNft( + to, + nonce, + id.native.tokenId, + id.native.contract, + EthBN.from(txFees.toString()) + ); + + await txnUnderpricedPolyWorkaround(txn); + const res = await sender.sendTransaction(txn); + + await notifyValidator( + res.hash, + await extractAction(res), + "Unfreeze", + Number(nonce), + txFees.toString(), + await sender.getAddress(), + to, + id.uri, + id.native.tokenId, + id.native.contract + ); + + return res; + }, + async estimateValidateTransferNft( + _to: string, + _nftUri: NftInfo, + _mintWith + ): Promise { + const gas = await provider.getGasPrice(); + + return new BigNumber(gas.mul(150_000).toString()); + }, + validateAddress(adr) { + return Promise.resolve(ethers.utils.isAddress(adr)); + }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract); + }, + }; +} diff --git a/yarn.lock b/yarn.lock index 15ef642c9..b945539ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8344,9 +8344,9 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== -"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f": +"xpnet-web3-contracts@git+https://github.com/xp-network/XP.network-HECO-Migration#aa9473ea3b0f748bba54f5755abcfd17e3548237": version "0.1.0" - resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#65b3d13fb814ec8d8c4ea847c5915d763c0fec6f" + resolved "git+https://github.com/xp-network/XP.network-HECO-Migration#aa9473ea3b0f748bba54f5755abcfd17e3548237" dependencies: ethers "^5.5.4" From 0ee043a0527fa7cb4a3e073335e50b391f5bbb90 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 2 Nov 2022 15:15:19 +0530 Subject: [PATCH 741/956] web3: helper: dont need hedera specific implementation for approval --- src/factory/factories.ts | 4 +- src/helpers/web3.ts | 116 +++++++++++++-------------------------- 2 files changed, 40 insertions(+), 80 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index a1e8fc797..128774ef7 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -280,8 +280,8 @@ export namespace ChainFactoryConfigs { provider: hethers.getDefaultProvider("testnet") as any, feeMargin, nonce: Chain.HEDERA, - erc721_addr: "0x0000000000000000000000000000000002e7f488", - erc1155_addr: "0x0000000000000000000000000000000002e7f488", + erc721_addr: "0x0000000000000000000000000000000002e86793", + erc1155_addr: "0x0000000000000000000000000000000002e86793", minter_addr: "0x0000000000000000000000000000000002da3c27", erc721Minter: "0x0000000000000000000000000000000002da3c1d", erc1155Minter: "0x0000000000000000000000000000000002da3c20", diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 6a3b1ea57..fb6b8d88a 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -4,38 +4,37 @@ */ import BigNumber from "bignumber.js"; import { - UnfreezeForeignNft, BalanceCheck, - TransferNftForeign, - MintNft, - GetProvider, - TransferNftForeignBatch, - UnfreezeForeignNftBatch, EstimateTxFeesBatch, FeeMargins, GetFeeMargins, + GetProvider, IsContractAddress, + MintNft, + TransferNftForeign, + TransferNftForeignBatch, + UnfreezeForeignNft, + UnfreezeForeignNftBatch, } from "./chain"; import { - Signer, BigNumber as EthBN, - PopulatedTransaction, - Wallet, + ContractTransaction, ethers, - VoidSigner, + PopulatedTransaction, providers, - ContractTransaction, + Signer, + VoidSigner, + Wallet, } from "ethers"; -import { TransactionResponse, Provider } from "@ethersproject/providers"; +import { Provider, TransactionResponse } from "@ethersproject/providers"; import { - Minter__factory, - UserNftMinter__factory, - Erc1155Minter__factory, Erc1155Minter, + Erc1155Minter__factory, + Minter__factory, UserNftMinter, + UserNftMinter__factory, } from "xpnet-web3-contracts"; import { - Chain, ChainNonceGet, EstimateTxFees, ExtractAction, @@ -51,8 +50,7 @@ import { import { ChainNonce } from "../type-utils"; import { EvNotifier } from "../notifier"; import axios from "axios"; -import { ContractFactory, hethers } from "@hashgraph/hethers"; -import { HEDERA_TOKEN_SERVICE_ABI } from "./hedera/hts_abi"; +import { hethers, utils } from "@hashgraph/hethers"; /** * Information required to perform NFT transfers in this chain */ @@ -109,10 +107,8 @@ export type BaseWeb3Helper = BalanceCheck & * * @argument signer owner of the smart contract * @argument args See [[MintArgs]] - */ - MintNft & { + */ MintNft & { /** - * * Deploy an ERC721 smart contract * * @argument owner Owner of this smart contract @@ -304,7 +300,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { txnUp: (tx: PopulatedTransaction) => Promise ) => { const tx = await umt.populateTransaction.approve(forAddr, tok, { - gasLimit: "100000", + gasLimit: "1000000", }); await txnUp(tx); return await umt.signer.sendTransaction(tx); @@ -405,10 +401,16 @@ export async function web3HelperFactory( id.native.contract, signer ); + const toApprove = + params.nonce !== 0x1d + ? minter_addr + : id.native.uri.includes("herokuapp.com") + ? params.erc721_addr + : params.minter_addr; return await NFT_METHOD_MAP[id.native.contractType].approved( erc as any, await signer.getAddress(), - minter_addr, + toApprove, id.native.tokenId, params.nonce === 0x1d ? {} : undefined ); @@ -424,9 +426,16 @@ export async function web3HelperFactory( sender ); + const toApprove = + params.nonce !== 0x1d + ? minter_addr + : id.native.uri.includes("herokuapp.com") + ? params.erc721_addr + : params.minter_addr; + const receipt = await NFT_METHOD_MAP[id.native.contractType].approve( erc as any, - minter_addr, + toApprove, id.native.tokenId, txnUnderpricedPolyWorkaround, params.nonce === 0x1d ? {} : undefined @@ -435,51 +444,6 @@ export async function web3HelperFactory( return receipt.hash; }; - const isApprovedForHedera = async ( - id: NftInfo, - signer: Signer - ) => { - const htsFactory = new ContractFactory( - HEDERA_TOKEN_SERVICE_ABI, - "0x", - signer as any - ); - const hts = htsFactory.attach("0x0000000000000000000000000000000000000167"); - const [, approvedAddress] = await hts.getApproved( - id.native.contract, - id.native.tokenId - ); - const toApprove = id.uri.includes("xp.network") - ? params.erc721_addr - : params.minter_addr; - return approvedAddress === toApprove; - }; - - const approveForHedera = async (id: NftInfo, sender: Signer) => { - if (params.nonce !== Chain.HEDERA) - throw new Error(`Used Hedera Specific Function for Non Hedera Chain`); - - if (await isApprovedForHedera(id, sender)) return undefined; - - const htsFactory = new ContractFactory( - HEDERA_TOKEN_SERVICE_ABI, - "0x", - sender as any - ); - const hts = htsFactory.attach("0x0000000000000000000000000000000000000167"); - - const toApprove = id.uri.includes("xp.network") - ? params.erc721_addr - : params.minter_addr; - - const receipt = await hts.functions.approveNFT( - id.native.contract, - toApprove, - id.native.tokenId - ); - return receipt; - }; - const base = await baseWeb3HelperFactory(params.provider); return { @@ -495,12 +459,8 @@ export async function web3HelperFactory( getFeeMargin() { return params.feeMargin; }, - isApprovedForMinter: - params.nonce === Chain.HEDERA ? isApprovedForHedera : isApprovedForMinter, - preTransfer: (s, id, _fee) => - params.nonce === Chain.HEDERA - ? approveForHedera(id, s) - : approveForMinter(id, s), + isApprovedForMinter, + preTransfer: (s, id, _fee) => approveForMinter(id, s), extractAction, async isContractAddress(address) { const code = await provider.getCode(address); @@ -628,7 +588,7 @@ export async function web3HelperFactory( id: NftInfo, txFees: BigNumber, mintWith: string, - gasLimit: ethers.BigNumberish | undefined = undefined + _gasLimit: ethers.BigNumberish | undefined = undefined ): Promise { await approveForMinter(id, sender); const method = NFT_METHOD_MAP[id.native.contractType].freeze; @@ -642,8 +602,8 @@ export async function web3HelperFactory( to, mintWith, { - value: EthBN.from(txFees.toString(10)), - gasLimit, + value: utils.parseHbar("0.00000001"), + gasLimit: "100000", } ); await txnUnderpricedPolyWorkaround(tx); From 7ce116c967359622b3082ab0c7c353965f382d23 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 2 Nov 2022 15:21:18 +0530 Subject: [PATCH 742/956] web3: helper: convert to token identifier before sending the transaction for hedera (0x1d) --- src/helpers/web3.ts | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index fb6b8d88a..07eda0f8f 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -50,7 +50,7 @@ import { import { ChainNonce } from "../type-utils"; import { EvNotifier } from "../notifier"; import axios from "axios"; -import { hethers, utils } from "@hashgraph/hethers"; +import { hethers } from "@hashgraph/hethers"; /** * Information required to perform NFT transfers in this chain */ @@ -588,11 +588,19 @@ export async function web3HelperFactory( id: NftInfo, txFees: BigNumber, mintWith: string, - _gasLimit: ethers.BigNumberish | undefined = undefined + gasLimit: ethers.BigNumberish | undefined = undefined ): Promise { await approveForMinter(id, sender); const method = NFT_METHOD_MAP[id.native.contractType].freeze; + // Chain is Hedera + if (params.nonce === 0x1d) { + id.native.tokenId = ethers.utils.solidityPack( + ["uint160", "int96"], + [EthBN.from(id.collectionIdent), id.native.tokenId] + ); + } + const tx = await minter .connect(sender) .populateTransaction[method]( @@ -602,8 +610,8 @@ export async function web3HelperFactory( to, mintWith, { - value: utils.parseHbar("0.00000001"), - gasLimit: "100000", + value: EthBN.from(txFees.toString()), + gasLimit, } ); await txnUnderpricedPolyWorkaround(tx); @@ -652,6 +660,16 @@ export async function web3HelperFactory( txFees: BigNumber, nonce ): Promise { + await approveForMinter(id, sender); + + // Chain is Hedera + if (params.nonce === 0x1d) { + id.native.tokenId = ethers.utils.solidityPack( + ["uint160", "int96"], + [EthBN.from(id.collectionIdent), id.native.tokenId] + ); + } + const txn = await minter .connect(sender) .populateTransaction.withdrawNft( From 786d95aada8e39517b96cc210009676f68121dc7 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 2 Nov 2022 19:07:34 +0530 Subject: [PATCH 743/956] web3: hedera: make hedera work --- src/factory/factories.ts | 6 +++--- src/helpers/web3.ts | 30 ++++++++++-------------------- 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 128774ef7..5d80bfb7a 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -280,9 +280,9 @@ export namespace ChainFactoryConfigs { provider: hethers.getDefaultProvider("testnet") as any, feeMargin, nonce: Chain.HEDERA, - erc721_addr: "0x0000000000000000000000000000000002e86793", - erc1155_addr: "0x0000000000000000000000000000000002e86793", - minter_addr: "0x0000000000000000000000000000000002da3c27", + erc721_addr: "0x0000000000000000000000000000000002e87622", + erc1155_addr: "0x0000000000000000000000000000000002e87622", + minter_addr: "0x0000000000000000000000000000000002e86d67", erc721Minter: "0x0000000000000000000000000000000002da3c1d", erc1155Minter: "0x0000000000000000000000000000000002da3c20", }, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 07eda0f8f..317f87a3b 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -367,6 +367,7 @@ export async function web3HelperFactory( ); } + //@ts-ignore async function getTransaction(hash: string) { let trx; let fails = 0; @@ -405,8 +406,8 @@ export async function web3HelperFactory( params.nonce !== 0x1d ? minter_addr : id.native.uri.includes("herokuapp.com") - ? params.erc721_addr - : params.minter_addr; + ? params.minter_addr + : params.erc721_addr; return await NFT_METHOD_MAP[id.native.contractType].approved( erc as any, await signer.getAddress(), @@ -430,8 +431,8 @@ export async function web3HelperFactory( params.nonce !== 0x1d ? minter_addr : id.native.uri.includes("herokuapp.com") - ? params.erc721_addr - : params.minter_addr; + ? params.minter_addr + : params.erc721_addr; const receipt = await NFT_METHOD_MAP[id.native.contractType].approve( erc as any, @@ -597,8 +598,9 @@ export async function web3HelperFactory( if (params.nonce === 0x1d) { id.native.tokenId = ethers.utils.solidityPack( ["uint160", "int96"], - [EthBN.from(id.collectionIdent), id.native.tokenId] + [id.collectionIdent, id.native.tokenId] ); + id.native.contract = params.erc721_addr; } const tx = await minter @@ -627,8 +629,7 @@ export async function web3HelperFactory( if (params.nonce === 0x1d) { //@ts-ignore checked hedera txHash = txr["transactionId"]; - } - if (params.nonce === 33) { + } else if (params.nonce === 33) { //@ts-ignore checked abeychain txHash = txr["returnedHash"] || txr.hash; } else { @@ -638,20 +639,9 @@ export async function web3HelperFactory( await notifyValidator( //@ts-ignore - txHash, - await extractAction(await getTransaction(txHash)), - "Transfer", - chain_nonce, - txFees.toString(), - await sender.getAddress(), - to, - id.uri, - id.native.tokenId, - id.native.contract + txHash ); - return params.nonce === 33 - ? await provider.getTransaction(txHash) - : (txr as TransactionResponse); + return provider.getTransaction(txHash); }, async unfreezeWrappedNft( sender: Signer, From 0746e5969ec572a68353792cd33da7911ce815d1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 2 Nov 2022 21:08:52 +0530 Subject: [PATCH 744/956] defaultContract: throw on default mint with --- src/factory/cons.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 0cd9bcf68..d3c83eccd 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -33,9 +33,9 @@ export function getDefaultContract( fromChain: FullChain, toChain: FullChain ): string | undefined { - // const defaultMintError = new Error( - // `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` - // ); + const defaultMintError = new Error( + `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` + ); const from = fromChain.getNonce(); const to = toChain.getNonce(); @@ -63,25 +63,25 @@ export function getDefaultContract( (from === Chain.VECHAIN && toType === ChainType.EVM) || (to === Chain.VECHAIN && fromType === ChainType.EVM) ) { - // throw defaultMintError; + throw defaultMintError; } if ( (fromType === ChainType.EVM && toType === ChainType.ELROND) || (fromType === ChainType.ELROND && toType === ChainType.EVM) ) { - // throw defaultMintError; + throw defaultMintError; } if ( (fromType === ChainType.EVM && toType === ChainType.TEZOS) || (fromType === ChainType.TEZOS && toType === ChainType.EVM) ) { - // throw defaultMintError; + throw defaultMintError; } if (fromType === ChainType.TRON) { - // throw defaultMintError; + throw defaultMintError; } return contract; From 8892215e5735d3d2e80d211c9d0d2892a44c6d95 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Wed, 2 Nov 2022 23:16:53 +0200 Subject: [PATCH 745/956] add elrond to staging --- src/factory/factories.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 5d80bfb7a..0df18e3e6 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -370,6 +370,18 @@ export namespace ChainFactoryConfigs { xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", feeMargin, }, + elrondParams: { + node_uri: MainNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgqacac9ux4uz0pjg8ck2sf0ugxre0feczzvcas2tsatn", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqjlnfddgj2dl4kz3x4n55yhfv7v06mxhzvcas2ec5ps", + esdt_nft: "XPNFT-976581", + esdt_swap: "WEGLD-8c393e", + notifier, + nonce: Chain.ELROND, + feeMargin, + }, secretParams: { bridge: { contractAddress: "secret1t0g8tvc0tyvpwdsdc5zepa9j2ptr3vfte26qhu", From ffce61b1be55f5416082e007a8dbe9993e9cdde0 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 3 Nov 2022 10:48:47 +0200 Subject: [PATCH 746/956] TON: add TonHub extension support --- package.json | 1 + src/helpers/ton.ts | 137 ++++++++++++++++++++++++++++++++++++++++----- tsconfig.json | 2 +- yarn.lock | 117 +++++++++++++++++++++++++++++++++++++- 4 files changed, 242 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 40119869e..7c6dbd143 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,7 @@ "near-api-js": "1.0.0", "secretjs": "^1.4.5", "socket.io-client": "^4.1.3", + "ton-x": "^2.0.0", "tonweb": "^0.0.57", "tonweb-mnemonic": "^1.0.1", "tronstation": "^1.0.1", diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 149cbc86f..8e823c6fa 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -3,6 +3,7 @@ import BigNumber from "bignumber.js"; import TonWeb from "tonweb"; import TonWebMnemonic from "tonweb-mnemonic"; import type { Cell } from "tonweb/dist/types/boc/cell"; +import { Cell as CellF } from "ton"; import { Chain } from "../consts"; import { EvNotifier } from "../notifier"; import { @@ -13,21 +14,40 @@ import { TransferNftForeign, UnfreezeForeignNft, ValidateAddress, + BalanceCheck, } from "./chain"; import { BridgeContract } from "./ton-bridge"; -export type TonSigner = { wallet?: TonWallet; accIdx: number }; +import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; +import { fromUint8Array } from "js-base64"; +import axios from "ton/node_modules/axios"; + +export type TonSigner = { + wallet?: TonWallet; + accIdx: number; +}; + +export type TonHub = { + wallet: TonhubConnector; + config: { + seed: string; + appPublicKey: string; + address: string; + }; +}; export type TonNft = { nftItemAddr: string; }; export type TonHelper = ChainNonceGet & + BalanceCheck & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & ValidateAddress & { XpNft: string } & { tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; + tonHubWrapper: (args: TonHub) => TonSigner; } & GetFeeMargins; export type TonParams = { @@ -45,11 +65,18 @@ type MethodMap = { ton_getBalance: [undefined, string]; }; +type ResponseUnionType = + | TonhubTransactionResponse + | { + hash: string; + }; + type TonWallet = { send( method: M, params: MethodMap[M][0] ): Promise; + handleResponse(res: ResponseUnionType): Promise; }; export async function tonHelper(args: TonParams): Promise { @@ -62,9 +89,47 @@ export async function tonHelper(args: TonParams): Promise { ton.provider.sendBoc = (b) => ton.provider.send("sendBocReturnHash", { boc: b }); + async function waitTonTrx(exBodyMsg: string, address: string) { + console.log(exBodyMsg, "TON:exBodyMsg"); + + let body: string = ""; + + const noTrx = setTimeout(() => { + throw new Error("waitTonTrx timeout"); + }, 60 * 1000 * 20); + + while (!body) { + console.log("TON:tring to find the trx..."); + await new Promise((r) => setTimeout(r, 10 * 1000)); + //get last 20 trx of address + const trxs = await ton.provider.getTransactions(address, 20); + //find body of the trx + body = trxs.find( + (trx: any) => trx["in_msg"]["msg_data"].body === exBodyMsg + )?.data; + } + + clearTimeout(noTrx); + + const dict = CellF.fromBoc(Buffer.from(body, "base64"))[0].hash(); + + const exHash = dict.toString("base64"); + + const trxArr = await axios( + `https://toncenter.com/api/index/getTransactionByHash?tx_hash=${encodeURIComponent( + exHash + )}&include_msg_body=true` + ); + + return trxArr.data[0]["in_msg"].hash; + } + return { getNonce: () => Chain.TON, XpNft: args.xpnftAddr, + async balance(address: string) { + return new BigNumber(await ton.getBalance(address)); + }, async estimateValidateTransferNft() { return new BigNumber(0); // TODO }, @@ -82,6 +147,7 @@ export async function tonHelper(args: TonParams): Promise { const txFeesFull = new BN(txFees.toString(10)); const nftFee = TonWeb.utils.toNano("0.07"); + const payload = await bridge.createFreezeBody({ amount: txFeesFull.sub(nftFee), to: Buffer.from(to), @@ -89,16 +155,19 @@ export async function tonHelper(args: TonParams): Promise { mintWith: Buffer.from(mintWith), }); - const res = (await rSigner.send("ton_sendTransaction", { - value: txFeesFull.toString(10), - to: nft.native.nftItemAddr, - data: payload, - })) as { hash: string }; + const res = (await rSigner + .send("ton_sendTransaction", { + value: txFeesFull.toString(10), + to: nft.native.nftItemAddr, + data: payload, + }) + .catch((e) => console.log(e, "error"))) as ResponseUnionType; + + const hash = await rSigner.handleResponse(res); - await new Promise((r) => setTimeout(r, 10000)); - await args.notifier.notifyTon(res.hash); + await args.notifier.notifyTon(hash); - return res.hash; + return hash; }, async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { const rSigner = signer.wallet || ton; @@ -115,12 +184,47 @@ export async function tonHelper(args: TonParams): Promise { value: txFeesFull.toString(10), to: nft.native.nftItemAddr, data: payload, - })) as { hash: string }; + })) as ResponseUnionType; + + const hash = await rSigner.handleResponse(res); + + await args.notifier.notifyTon(hash); + + return hash; + }, + tonHubWrapper(args: TonHub) { + const tonHub: TonWallet = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + return await args.wallet.requestTransaction({ + seed: args.config.seed, + appPublicKey: args.config.appPublicKey, + to: params!.to, + value: new BN(params!.value).toString(), + timeout: 5 * 60 * 1000, + text: `ton_sendTransaction to ${params!.to}`, + payload: fromUint8Array(await params!.data.toBoc(false)), + }); + + default: + return null; + } + }, - await new Promise((r) => setTimeout(r, 10000)); - await args.notifier.notifyTon(res.hash); + async handleResponse(res: TonhubTransactionResponse) { + if (res.type === "success" && res.response != undefined) { + return await waitTonTrx(res.response, args.config.address); + } else { + throw new Error(`TonHub:${res.type}`); + } + }, + }; - return res.hash; + return { + wallet: tonHub, + accIdx: 0, + }; }, tonKpWrapper(kp: TonWebMnemonic.KeyPair): TonSigner { const wallet = new TonWeb.Wallets.all.v3R2(ton.provider, { @@ -148,6 +252,9 @@ export async function tonHelper(args: TonParams): Promise { .send(); } }, + async handleResponse(res: { hash: string }) { + return res.hash; + }, }; return { @@ -157,3 +264,7 @@ export async function tonHelper(args: TonParams): Promise { }, }; } + +/** + * te6cckECAwEAARQAAZyePa86ljKS+MMbRkLZsLh935o2RzbAvKlW+XvT97HV6u6HnL6mzcE5OdFdHqB6cwLsoEhZpIqx073kjFPfO1YDKamjF2Nin6kAAAAFAAMBAc1iABROzGm51PmIt7opuWJmE0PhVJBiM8nYvb81g6py4r62IR4aMAAAAAAAAAAAAAAAAAAAX8w9FAAAAAAAAAAAgB7ixOeW0Iy6JEGWYW0eYTZcj8ahBsqDAEZEFe8gS8ggoQflyiAQAgCuBwAqMHg0N0JmMGRhZTZlOTJlNDlhM2M5NWU1YjBjNzE0MjI4OTFENWNkNEZFMHgyZDY5MDdkZjMxNkQ1OTYwZTkwNjQ0MTJhNzE4MTBBN2M5RDhmNGM3p4Mu7w== + */ diff --git a/tsconfig.json b/tsconfig.json index bd2807a16..4c4df051a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "incremental": false, "target": "es2017", "outDir": "./dist", - //"outDir": "../w-nft-api/node_modules/xp.network/dist", + //"outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs", diff --git a/yarn.lock b/yarn.lock index b945539ec..766409f7c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1483,6 +1483,11 @@ dependencies: "@randlabs/communication-bridge" "^1.0.0" +"@scarf/scarf@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@scarf/scarf/-/scarf-1.1.1.tgz#d8b9f20037b3a37dbf8dcdc4b3b72f9285bfce35" + integrity sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ== + "@scure/base@~1.1.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" @@ -2536,7 +2541,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@*, axios@0.27.2: +axios@*, axios@0.27.2, axios@^0.27.0: version "0.27.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== @@ -2558,6 +2563,13 @@ axios@^0.21.1: dependencies: follow-redirects "^1.14.0" +axios@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.25.0.tgz#349cfbb31331a9b4453190791760a8d35b093e0a" + integrity sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g== + dependencies: + follow-redirects "^1.14.7" + axios@^0.26.0, axios@^0.26.1: version "0.26.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" @@ -2772,6 +2784,11 @@ bn.js@5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz#48efc4031a9c4041b9c99c6941d903463ab62eb5" integrity sha512-IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA== +bn.js@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + bn.js@5.2.1, bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" @@ -3403,6 +3420,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +dataloader@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.1.0.tgz#c69c538235e85e7ac6c6c444bae8ecabf5de9df7" + integrity sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ== + debug@2.6.9, debug@^2.2.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -4503,6 +4525,11 @@ follow-redirects@^1.14.0, follow-redirects@^1.14.4, follow-redirects@^1.14.8, fo resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== +follow-redirects@^1.14.7: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -4557,6 +4584,11 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fp-ts@^2.11.1, fp-ts@^2.12.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.13.1.tgz#1bf2b24136cca154846af16752dc29e8fa506f2a" + integrity sha512-0eu5ULPS2c/jsa1lGFneEFFEdTbembJv8e4QKXeVJ3lm/5hyve06dlKZrpxmMwJt6rYen7sxmHHK2CLaXvWuWQ== + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -5113,6 +5145,18 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" +io-ts-reporters@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/io-ts-reporters/-/io-ts-reporters-2.0.1.tgz#0154545aefd115f0f175a41743ed7327d19b1c34" + integrity sha512-RVpLstYBsmTGgCW9wJ5KVyN/eRnRUDp87Flt4D1O3aJ7oAnd8csq8aXuu7ZeNK8qEDKmjUl9oUuzfwikaNAMKQ== + dependencies: + "@scarf/scarf" "^1.1.1" + +io-ts@^2.2.16: + version "2.2.19" + resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-2.2.19.tgz#4ba5e120472a0a07ff693fdb3d7075ea1c1b77c3" + integrity sha512-ED0GQwvKRr5C2jqOOJCkuJW2clnbzqFexQ8V7Qsb+VB36S1Mk/OKH7k0FjSe4mjKy9qBRA3OqgVGyFMUEKIubw== + ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -5541,6 +5585,11 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" +jssha@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16" + integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q== + keccak@^3.0.0, keccak@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" @@ -7382,6 +7431,11 @@ swarm-js@^0.1.40: tar "^4.0.2" xhr-request "^1.0.1" +symbol.inspect@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/symbol.inspect/-/symbol.inspect-1.0.1.tgz#e13125b8038c4996eb0dfa1567332ad4dcd0763f" + integrity sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ== + table@^6.0.9, table@^6.7.3: version "6.8.0" resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" @@ -7427,6 +7481,11 @@ tar@^4.0.2: safe-buffer "^5.2.1" yallist "^3.1.1" +teslabot@^1.3.0, teslabot@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/teslabot/-/teslabot-1.5.0.tgz#70f544516699ca5f696d8ae94f3d12cd495d5cd6" + integrity sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg== + text-encoding-utf-8@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" @@ -7498,6 +7557,62 @@ toml@^3.0.0: resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== +ton-crypto-primitives@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ton-crypto-primitives/-/ton-crypto-primitives-2.0.0.tgz#e85cd68c0d523f6bdf3f306201a76e51b7e9312e" + integrity sha512-K+qKjpS0h9sPW6oExcpxnzuQ7nEgHEiDKwIqE/jWD25o8iFGe3FWj1gKxFNbKE9wwYKc5IV8FwrU+raF0KO5nQ== + dependencies: + jssha "3.2.0" + +ton-crypto@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ton-crypto/-/ton-crypto-2.1.0.tgz#10b1de64a9cd92bde5a8a6678f952f49335c7e9a" + integrity sha512-PZnmCOShfgq9tCRM8E7hG8nCkpkOyZvDLPXmZN92ZEBrfTT0NKKf0imndkxG5DkgWMjc6IKfgpnEaJDH9qN6ZQ== + dependencies: + jssha "3.2.0" + ton-crypto-primitives "2.0.0" + tweetnacl "1.0.3" + +ton-crypto@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ton-crypto/-/ton-crypto-3.2.0.tgz#cf8cd5410d8f04b04b359f80415b11efb312c60e" + integrity sha512-fltdBNQ45gARMuGMEOjPZWPJ5eSql8p3CA0Dj7tPv5lhU5ziT8SxXLAzDraR9HJ8YpjBHLVvYyhMLRiEwxgtMQ== + dependencies: + jssha "3.2.0" + ton-crypto-primitives "2.0.0" + tweetnacl "1.0.3" + +ton-x@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ton-x/-/ton-x-2.0.0.tgz#c29587698969a747acb80fe8e9d35acbd5562f1c" + integrity sha512-APzTmKydNVre2IaDuC8gxmVK/TcJpA5jUER+OrwxKDwRWckzFFzElxVHu6AGilljRHYd45At4QDoHTfsBkUuZA== + dependencies: + "@types/bn.js" "^5.1.0" + axios "^0.27.0" + bn.js "^5.2.0" + fp-ts "^2.12.0" + io-ts "^2.2.16" + teslabot "^1.5.0" + ton "9.8.0" + ton-crypto "^3.0.0" + +ton@9.8.0: + version "9.8.0" + resolved "https://registry.yarnpkg.com/ton/-/ton-9.8.0.tgz#28bc72276ebcacf9dff24f617505c55ccaa614ef" + integrity sha512-aH/7ODiEulPRZracSfQ4KeaV6iDmzjn14+YMsZ9x0sNlzhtP4blMIFXPJFp4BOc4INb5vTrfA0u+JtOoXlBO0A== + dependencies: + axios "^0.25.0" + bn.js "5.2.0" + dataloader "^2.0.0" + ethjs-unit "0.1.6" + fp-ts "^2.11.1" + io-ts "^2.2.16" + io-ts-reporters "^2.0.0" + symbol.inspect "1.0.1" + teslabot "^1.3.0" + ton-crypto "2.1.0" + tweetnacl "1.0.3" + tonweb-mnemonic@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tonweb-mnemonic/-/tonweb-mnemonic-1.0.1.tgz#bb1b8bb6220f56f8e230b8a8f9555ff5bcbd4681" From ff9fa5866700ca139f5f87ee8241ec3b9bb9029b Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 3 Nov 2022 15:28:20 +0200 Subject: [PATCH 747/956] TON:add approve method --- src/helpers/ton.ts | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 8e823c6fa..73a2e18e9 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -16,6 +16,9 @@ import { ValidateAddress, BalanceCheck, } from "./chain"; + +import { PreTransfer } from ".."; + import { BridgeContract } from "./ton-bridge"; import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; @@ -42,6 +45,7 @@ export type TonNft = { export type TonHelper = ChainNonceGet & BalanceCheck & + PreTransfer & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & @@ -114,7 +118,8 @@ export async function tonHelper(args: TonParams): Promise { const dict = CellF.fromBoc(Buffer.from(body, "base64"))[0].hash(); const exHash = dict.toString("base64"); - + console.log(exHash, "exHash"); + await new Promise((r) => setTimeout(r, 6 * 1000)); const trxArr = await axios( `https://toncenter.com/api/index/getTransactionByHash?tx_hash=${encodeURIComponent( exHash @@ -125,6 +130,8 @@ export async function tonHelper(args: TonParams): Promise { } return { + preTransfer: () => Promise.resolve(true), + preUnfreeze: () => Promise.resolve(true), getNonce: () => Chain.TON, XpNft: args.xpnftAddr, async balance(address: string) { @@ -154,7 +161,7 @@ export async function tonHelper(args: TonParams): Promise { chainNonce, mintWith: Buffer.from(mintWith), }); - + console.log("TON:transferNftToForeign"); const res = (await rSigner .send("ton_sendTransaction", { value: txFeesFull.toString(10), @@ -179,7 +186,7 @@ export async function tonHelper(args: TonParams): Promise { chainNonce: parseInt(chainNonce), txFees: txFeesFull.sub(nftFee), }); - + console.log("TON:unfreezeWrappedNft"); const res = (await rSigner.send("ton_sendTransaction", { value: txFeesFull.toString(10), to: nft.native.nftItemAddr, @@ -192,6 +199,9 @@ export async function tonHelper(args: TonParams): Promise { return hash; }, + /* tonWalletWrapper() { + + },*/ tonHubWrapper(args: TonHub) { const tonHub: TonWallet = { async send(method, params) { @@ -264,7 +274,3 @@ export async function tonHelper(args: TonParams): Promise { }, }; } - -/** - * te6cckECAwEAARQAAZyePa86ljKS+MMbRkLZsLh935o2RzbAvKlW+XvT97HV6u6HnL6mzcE5OdFdHqB6cwLsoEhZpIqx073kjFPfO1YDKamjF2Nin6kAAAAFAAMBAc1iABROzGm51PmIt7opuWJmE0PhVJBiM8nYvb81g6py4r62IR4aMAAAAAAAAAAAAAAAAAAAX8w9FAAAAAAAAAAAgB7ixOeW0Iy6JEGWYW0eYTZcj8ahBsqDAEZEFe8gS8ggoQflyiAQAgCuBwAqMHg0N0JmMGRhZTZlOTJlNDlhM2M5NWU1YjBjNzE0MjI4OTFENWNkNEZFMHgyZDY5MDdkZjMxNkQ1OTYwZTkwNjQ0MTJhNzE4MTBBN2M5RDhmNGM3p4Mu7w== - */ From 028182ac01bee707947b33a2bfc2c2b481a06c1c Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 3 Nov 2022 20:10:48 +0200 Subject: [PATCH 748/956] TON: TonWallet support --- src/helpers/ton.ts | 130 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 102 insertions(+), 28 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 73a2e18e9..4e892804d 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -30,12 +30,18 @@ export type TonSigner = { accIdx: number; }; -export type TonHub = { - wallet: TonhubConnector; +export type TonWalletProvider = { + isTonWallet: boolean; + send(method: string, params?: any[]): Promise; + on(eventName: string, handler: (...data: any[]) => any): void; +}; + +export type TonArgs = { + wallet: TonhubConnector & TonWalletProvider; config: { - seed: string; - appPublicKey: string; - address: string; + seed?: string; + appPublicKey?: string; + address?: string; }; }; @@ -51,7 +57,8 @@ export type TonHelper = ChainNonceGet & EstimateTxFees & ValidateAddress & { XpNft: string } & { tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; - tonHubWrapper: (args: TonHub) => TonSigner; + tonHubWrapper: (args: TonArgs) => TonSigner; + tonWalletWrapper: (args: TonArgs) => TonSigner; } & GetFeeMargins; export type TonParams = { @@ -69,11 +76,10 @@ type MethodMap = { ton_getBalance: [undefined, string]; }; -type ResponseUnionType = - | TonhubTransactionResponse - | { - hash: string; - }; +type ResponseUnionType = boolean & + TonhubTransactionResponse & { + hash: string; + }; type TonWallet = { send( @@ -93,7 +99,11 @@ export async function tonHelper(args: TonParams): Promise { ton.provider.sendBoc = (b) => ton.provider.send("sendBocReturnHash", { boc: b }); - async function waitTonTrx(exBodyMsg: string, address: string) { + async function waitTonTrx( + exBodyMsg: string, + address: string, + msgType: "in_msg" | "out_msgs" + ) { console.log(exBodyMsg, "TON:exBodyMsg"); let body: string = ""; @@ -108,9 +118,13 @@ export async function tonHelper(args: TonParams): Promise { //get last 20 trx of address const trxs = await ton.provider.getTransactions(address, 20); //find body of the trx - body = trxs.find( - (trx: any) => trx["in_msg"]["msg_data"].body === exBodyMsg - )?.data; + body = trxs.find((trx: any) => { + const messages = trx[msgType]; + const message = Array.isArray(messages) + ? messages[0]["msg_data"].body + : messages["msg_data"].body; + return message === exBodyMsg; + })?.data; } clearTimeout(noTrx); @@ -161,14 +175,14 @@ export async function tonHelper(args: TonParams): Promise { chainNonce, mintWith: Buffer.from(mintWith), }); + console.log("TON:transferNftToForeign"); - const res = (await rSigner - .send("ton_sendTransaction", { - value: txFeesFull.toString(10), - to: nft.native.nftItemAddr, - data: payload, - }) - .catch((e) => console.log(e, "error"))) as ResponseUnionType; + console.log(rSigner); + const res = (await rSigner.send("ton_sendTransaction", { + value: txFeesFull.toString(10), + to: nft.native.nftItemAddr, + data: payload, + })) as ResponseUnionType; const hash = await rSigner.handleResponse(res); @@ -199,17 +213,46 @@ export async function tonHelper(args: TonParams): Promise { return hash; }, - /* tonWalletWrapper() { + tonWalletWrapper(args: TonArgs) { + let payload: string = ""; + const tonHub: TonWallet = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + payload = fromUint8Array(await params!.data.toBoc(false)); + return await args.wallet.send("ton_sendTransaction", [ + { + to: params!.to, + value: new BN(params!.value).toString(), + dataType: "boc", + data: payload, + }, + ]); + default: + return null; + } + }, + + async handleResponse(res: boolean) { + return ( + res && (await waitTonTrx(payload, args.config.address!, "out_msgs")) + ); + }, + }; - },*/ - tonHubWrapper(args: TonHub) { + return { + wallet: tonHub, + accIdx: 0, + }; + }, + tonHubWrapper(args: TonArgs) { const tonHub: TonWallet = { async send(method, params) { switch (method) { case "ton_sendTransaction": return await args.wallet.requestTransaction({ - seed: args.config.seed, - appPublicKey: args.config.appPublicKey, + seed: args.config.seed!, + appPublicKey: args.config.appPublicKey!, to: params!.to, value: new BN(params!.value).toString(), timeout: 5 * 60 * 1000, @@ -224,7 +267,11 @@ export async function tonHelper(args: TonParams): Promise { async handleResponse(res: TonhubTransactionResponse) { if (res.type === "success" && res.response != undefined) { - return await waitTonTrx(res.response, args.config.address); + return await waitTonTrx( + res.response, + args.config.address!, + "in_msg" + ); } else { throw new Error(`TonHub:${res.type}`); } @@ -274,3 +321,30 @@ export async function tonHelper(args: TonParams): Promise { }, }; } + +/** + * + * const ton = new TonWeb( + new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + }) + ); + + const trxs = await ton.provider.getTransactions( + "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", + 20 + ); + + console.log(trxs); + + let data = new Cell(); + console.log(data); + const dict = Cell.fromBoc( + Buffer.from( + "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", + "base64" + ) + )[0].hash(); + console.log("Hash: " + dict.toString("base64")); + */ From 1134d6b332668f6eda1166711409414bce3a3856 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 3 Nov 2022 23:43:38 +0530 Subject: [PATCH 749/956] hedera: bridge: make unfreeze work --- src/factory/factories.ts | 4 +- src/factory/index.ts | 36 +++++++++------- src/helpers/chain.ts | 3 +- src/helpers/hedera/hts_abi.ts | 78 ++++++++++++++++++++++++++++++++++- src/helpers/web3.ts | 30 ++++++++------ 5 files changed, 119 insertions(+), 32 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 0df18e3e6..1b9cfe4e9 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -280,8 +280,8 @@ export namespace ChainFactoryConfigs { provider: hethers.getDefaultProvider("testnet") as any, feeMargin, nonce: Chain.HEDERA, - erc721_addr: "0x0000000000000000000000000000000002e87622", - erc1155_addr: "0x0000000000000000000000000000000002e87622", + erc721_addr: "0x0000000000000000000000000000000002e88e04", + erc1155_addr: "0x0000000000000000000000000000000002e88e04", minter_addr: "0x0000000000000000000000000000000002e86d67", erc721Minter: "0x0000000000000000000000000000000002da3c1d", erc1155Minter: "0x0000000000000000000000000000000002da3c20", diff --git a/src/factory/index.ts b/src/factory/index.ts index c1c10f201..53381ca8c 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -137,12 +137,14 @@ export type ChainFactory = { claimHederaNFT( serialNumber: ethers.BigNumberish, - contractAddress: string, + proxyAddress: string, + htsToken: string, sender: Wallet ): Promise; listHederaClaimableNFT( - mintWith: string, + proxyContract: string, + htsToken: string, sender: Wallet ): Promise; @@ -763,7 +765,8 @@ export function ChainFactory( receiver, nft, new BigNumber(fee), - toChain.getNonce().toString() + toChain.getNonce().toString(), + gasLimit ); return res; @@ -814,7 +817,7 @@ export function ChainFactory( * @param sender wallet of the sender * @returns txn response of the claimer */ - async claimHederaNFT(serialNumber, contractAddress, sender) { + async claimHederaNFT(serialNumber, contractAddress, htsToken, sender) { const htscf = new ContractFactory( HEDERA_PROXY_ABI, HEDERA_PROXY_BC, @@ -824,29 +827,32 @@ export function ChainFactory( const cf = new ContractFactory(HEDERA_TOKEN_SERVICE_ABI, "0x", sender); const contract = cf.attach("0x0000000000000000000000000000000000000167"); ( - await contract.associateToken( - await sender.getAddress(), - await hts_contract.htsToken({ gasLimit: 1000000 }), - { gasLimit: 1000000 } - ) + await contract.associateToken(await sender.getAddress(), htsToken, { + gasLimit: 1000000, + }) ).wait(); - const res = await hts_contract.functions.claimNft(serialNumber, { - gasLimit: 1000000, - }); + const res = await hts_contract.functions.claimNft( + serialNumber, + htsToken, + { + gasLimit: 1000000, + } + ); return res; }, /** * Returns all the claimable NFTs of the contract - * @param htsContract the address of the HTS Proxy contract that was used as mintWith in the transfer + * @param proxyContract the address of the HTS Proxy contract that was used as mintWith in the transfer * @param sender wallet of the sender * @returns array of tokens that were minted */ - async listHederaClaimableNFT(htsContract, sender) { + async listHederaClaimableNFT(proxyContract, htsToken, sender) { const cf = new ContractFactory(HEDERA_PROXY_ABI, HEDERA_PROXY_BC, sender); - const contract = cf.attach(htsContract); + const contract = cf.attach(proxyContract); const tokens = await contract.functions.getClaimableNfts( await sender.getAddress(), + htsToken, { gasLimit: 1000000, } diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 47e74b970..d4ae84f27 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -66,7 +66,8 @@ export interface UnfreezeForeignNft { to: string, id: NftInfo, txFees: BigNumber, - nonce: string + nonce: string, + gasLimit: ethers.BigNumberish | undefined ): Promise; } diff --git a/src/helpers/hedera/hts_abi.ts b/src/helpers/hedera/hts_abi.ts index c16daf529..d3d8f2ab9 100644 --- a/src/helpers/hedera/hts_abi.ts +++ b/src/helpers/hedera/hts_abi.ts @@ -3043,12 +3043,41 @@ export const HEDERA_PROXY_ABI = [ name: "serialNum", type: "int64", }, + { + internalType: "address", + name: "token", + type: "address", + }, ], name: "claimNft", outputs: [], stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "uint256", + name: "data", + type: "uint256", + }, + ], + name: "decodeHts", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "int64", + name: "", + type: "int64", + }, + ], + stateMutability: "pure", + type: "function", + }, { inputs: [ { @@ -3056,6 +3085,11 @@ export const HEDERA_PROXY_ABI = [ name: "claimer", type: "address", }, + { + internalType: "address", + name: "token", + type: "address", + }, ], name: "getClaimableNfts", outputs: [ @@ -3284,6 +3318,48 @@ export const HEDERA_PROXY_ABI = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_serialNum", + type: "uint256", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "tokenURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, { inputs: [ { @@ -3486,4 +3562,4 @@ export const HEDERA_PROXY_ABI = [ }, ]; export const HEDERA_PROXY_BC = - "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61473980620004e56000396000f3fe60806040526004361061012a5760003560e01c80637c41ad2c116100ab578063a6487c531161006f578063a6487c53146103f4578063af99c63314610410578063d614cdb81461044d578063f2c31ff41461048b578063f2fde38b146104c9578063fa59a780146104f25761012a565b80637c41ad2c146102fb5780638da5cb5b146103385780638f8d7f991461036357806394d008ef146103a05780639abc8320146103c95761012a565b806351761bcc116100f257806351761bcc14610228578063593d6e82146102535780635de4c002146102905780636c0360eb146102b9578063715018a6146102e45761012a565b8063098d32281461012f5780630bc14a691461015a57806318370d34146101855780631dd319cb146101c25780633b3bff0f146101eb575b600080fd5b34801561013b57600080fd5b5061014461052f565b6040516101519190613d79565b60405180910390f35b34801561016657600080fd5b5061016f610537565b60405161017c9190613bb5565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190613012565b61055d565b6040516101b99190613d35565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190613066565b610675565b005b3480156101f757600080fd5b50610212600480360381019061020d9190612f71565b61088d565b60405161021f9190613d35565b60405180910390f35b34801561023457600080fd5b5061023d6109a2565b60405161024a9190613e81565b60405180910390f35b34801561025f57600080fd5b5061027a60048036038101906102759190612fd6565b6109a9565b6040516102879190613d35565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b2919061328e565b610ac1565b005b3480156102c557600080fd5b506102ce610be4565b6040516102db9190613dbd565b60405180910390f35b3480156102f057600080fd5b506102f9610c0c565b005b34801561030757600080fd5b50610322600480360381019061031d9190612f71565b610c20565b60405161032f9190613d35565b60405180910390f35b34801561034457600080fd5b5061034d610d35565b60405161035a9190613bb5565b60405180910390f35b34801561036f57600080fd5b5061038a60048036038101906103859190612f9a565b610d5e565b6040516103979190613d79565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906130a2565b610e76565b005b3480156103d557600080fd5b506103de61118b565b6040516103eb9190613dbd565b60405180910390f35b61040e600480360381019061040991906132b7565b611219565b005b34801561041c57600080fd5b5061043760048036038101906104329190612f9a565b6114f8565b6040516104449190613d79565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190612f71565b611610565b604051610482929190613d50565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad9190612f9a565b611740565b6040516104c0929190613d94565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190612f71565b611865565b005b3480156104fe57600080fd5b5061051960048036038101906105149190612f71565b6118e9565b6040516105269190613d13565b60405180910390f35b63ffffffff81565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610596929190613c67565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516106009190613ad0565b6000604051808303816000865af19150503d806000811461063d576040519150601f19603f3d011682016040523d82523d6000602084013e610642565b606091505b509150915081610653576015610668565b80806020019051810190610667919061310e565b5b60030b9250505092915050565b61067d611939565b60006106ad600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168430856119b7565b9050601660030b81146106bf82611ad5565b6040516020016106cf9190613b93565b6040516020818303038152906040529061071f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107169190613dbd565b60405180910390fd5b506000600167ffffffffffffffff811115610763577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156107915781602001602082028036833780820191505090505b50905082816000815181106107cf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b81525050610811600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083611c82565b5080925050601660030b821461082683611ad5565b6040516020016108369190613b2d565b60405160208183030381529060405290610886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087d9190613dbd565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b856040516024016108c49190613bb5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161092e9190613ad0565b6000604051808303816000865af19150503d806000811461096b576040519150601f19603f3d011682016040523d82523d6000602084013e610970565b606091505b509150915081610981576015610996565b80806020019051810190610995919061310e565b5b60030b92505050919050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b86866040516024016109e2929190613c3e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610a4c9190613ad0565b6000604051808303816000865af19150503d8060008114610a89576040519150601f19603f3d011682016040523d82523d6000602084013e610a8e565b606091505b509150915081610a9f576015610ab4565b80806020019051810190610ab3919061310e565b5b60030b9250505092915050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610b218267ffffffffffffffff1682611daa90919063ffffffff16565b610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613ddf565b60405180910390fd5b6000610b6c3384611dc4565b9050601660030b8114610b7e82611ad5565b604051602001610b8e9190613b93565b60405160208183030381529060405290610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd59190613dbd565b60405180910390fd5b50505050565b60606003604051602001610bf89190613b0b565b604051602081830303815290604052905090565b610c14611939565b610c1e6000611e01565b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b85604051602401610c579190613bb5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610cc19190613ad0565b6000604051808303816000865af19150503d8060008114610cfe576040519150601f19603f3d011682016040523d82523d6000602084013e610d03565b606091505b509150915081610d14576015610d29565b80806020019051810190610d28919061310e565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b8686604051602401610d97929190613bd0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e019190613ad0565b6000604051808303816000865af19150503d8060008114610e3e576040519150601f19603f3d011682016040523d82523d6000602084013e610e43565b606091505b509150915081610e54576015610e69565b80806020019051810190610e68919061310e565b5b60030b9250505092915050565b610e7e611939565b6000600167ffffffffffffffff811115610ec1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610ef457816020015b6060815260200190600190039081610edf5790505b5090506003610f0285611ad5565b604051602001610f13929190613ae7565b60405160208183030381529060405281600081518110610f5c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250600080610f98600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085611ec5565b9250509150601660030b8214610fad83611ad5565b604051602001610fbd9190613b4f565b6040516020818303038152906040529061100d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110049190613dbd565b60405180910390fd5b50600061105b888360008151811061104e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151611dc4565b905060b860030b81141561110f57611105826000815181106110a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061206390919063ffffffff16565b5050505050611185565b601660030b811461111f84611ad5565b60405160200161112f9190613b93565b6040516020818303038152906040529061117f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111769190613dbd565b60405180910390fd5b50505050505b50505050565b6003805461119890614272565b80601f01602080910402602001604051908101604052809291908181526020018280546111c490614272565b80156112115780601f106111e657610100808354040283529160200191611211565b820191906000526020600020905b8154815290600101906020018083116111f457829003601f168201915b505050505081565b600460149054906101000a900460ff1615611269576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126090613e3f565b60405180910390fd5b6001600460146101000a81548160ff021916908315150217905550806003908051906020019061129a92919061272b565b506000600167ffffffffffffffff8111156112de577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561131757816020015b6113046127b1565b8152602001906001900390816112fc5790505b509050611327600460013061207d565b81600081518110611361577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506113746127d1565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e0018190525061142430627864506120b4565b81610100018190525060008061143983612112565b91509150601660030b821461144d83611ad5565b60405160200161145d9190613b71565b604051602081830303815290604052906114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a49190613dbd565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611531929190613bd0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161159b9190613ad0565b6000604051808303816000865af19150503d80600081146115d8576040519150601f19603f3d011682016040523d82523d6000602084013e6115dd565b606091505b5091509150816115ee576015611603565b80806020019051810190611602919061310e565b5b60030b9250505092915050565b600061161a612840565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b8660405160240161164f9190613bb5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516116b99190613ad0565b6000604051808303816000865af19150503d80600081146116f6576040519150601f19603f3d011682016040523d82523d6000602084013e6116fb565b606091505b5091509150611708612840565b826117155760158161172a565b8180602001905181019061172991906131af565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b878760405160240161177a929190613bd0565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516117e49190613ad0565b6000604051808303816000865af19150503d8060008114611821576040519150601f19603f3d011682016040523d82523d6000602084013e611826565b606091505b509150915081611839576015600061184e565b8080602001905181019061184d9190613173565b5b8160030b9150809450819550505050509250929050565b61186d611939565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d490613dff565b60405180910390fd5b6118e681611e01565b50565b6060611932600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061228a565b9050919050565b6119416122ab565b73ffffffffffffffffffffffffffffffffffffffff1661195f610d35565b73ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac90613e1f565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b888888886040516024016119f49493929190613bf9565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a5e9190613ad0565b6000604051808303816000865af19150503d8060008114611a9b576040519150601f19603f3d011682016040523d82523d6000602084013e611aa0565b606091505b509150915081611ab1576015611ac6565b80806020019051810190611ac5919061310e565b5b60030b92505050949350505050565b60606000821415611b1d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611c7d565b600082905060005b60008214611b4f578080611b38906142d5565b915050600a82611b489190614129565b9150611b25565b60008167ffffffffffffffff811115611b91577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611bc35781602001600182028036833780820191505090505b5090505b60008514611c7657600182611bdc919061415a565b9150600a85611beb919061431e565b6030611bf791906140d3565b60f81b818381518110611c33577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611c6f9190614129565b9450611bc7565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b888888604051602401611cbe93929190613cd5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d289190613ad0565b6000604051808303816000865af19150503d8060008114611d65576040519150601f19603f3d011682016040523d82523d6000602084013e611d6a565b606091505b509150915081611d7d5760156000611d92565b80806020019051810190611d9191906131eb565b5b8160030b915080945081955050505050935093915050565b6000611dbc836000018360001b6122b3565b905092915050565b600080611df5600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163086866119b7565b90508091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b898989604051602401611f0393929190613c97565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611f6d9190613ad0565b6000604051808303816000865af19150503d8060008114611faa576040519150601f19603f3d011682016040523d82523d6000602084013e611faf565b606091505b50915091508161203157601560008067ffffffffffffffff811115611ffd577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561202b5781602001602082028036833780820191505090505b50612046565b808060200190518101906120459190613227565b5b8260030b9250809550819650829750505050505093509350939050565b6000612075836000018360001b612439565b905092915050565b6120856127b1565b6040518060400160405280612099866124a9565b81526020016120a88585612536565b81525090509392505050565b6120bc612840565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff16148015612144575060008161010001516040015163ffffffff16145b1561216a576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b886040516024016121a09190613e5f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161220a9190613ad0565b60006040518083038185875af1925050503d8060008114612247576040519150601f19603f3d011682016040523d82523d6000602084013e61224c565b606091505b50915091508161225f5760156000612274565b808060200190518101906122739190613137565b5b8160030b91508095508196505050505050915091565b6060600061229a836000016126ac565b905060608190508092505050919050565b600033905090565b6000808360010160008481526020019081526020016000205490506000811461242d5760006001826122e5919061415a565b90506000600186600001805490506122fd919061415a565b90508181146123b8576000866000018281548110612344577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015490508087600001848154811061238e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806123f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612433565b60009150505b92915050565b60006124458383612708565b61249e5782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506124a3565b600090505b92915050565b6000600260008360068111156124e8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612520577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b61253e612883565b60016004811115612578577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8360048111156125b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156125f45781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126a6565b60048081111561262d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612666577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156126a55781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156126fc57602002820191906000526020600020905b8154815260200190600101908083116126e8575b50505050509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b82805461273790614272565b90600052602060002090601f01602090048101928261275957600085556127a0565b82601f1061277257805160ff19168380011785556127a0565b828001600101855582156127a0579182015b8281111561279f578251825591602001919060010190612784565b5b5090506127ad91906128e0565b5090565b6040518060400160405280600081526020016127cb612883565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b81526020016000151581526020016060815260200161283a612840565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156128f95760008160009055506001016128e1565b5090565b600061291061290b84613ec1565b613e9c565b9050808382526020820190508285602086028201111561292f57600080fd5b60005b8581101561295f57816129458882612bc6565b845260208401935060208301925050600181019050612932565b5050509392505050565b600061297c61297784613eed565b613e9c565b9050808382526020820190508285602086028201111561299b57600080fd5b60005b858110156129e557813567ffffffffffffffff8111156129bd57600080fd5b8086016129ca8982612eb9565b8552602085019450602084019350505060018101905061299e565b5050509392505050565b6000612a026129fd84613f19565b613e9c565b905082815260208101848484011115612a1a57600080fd5b612a25848285614230565b509392505050565b6000612a40612a3b84613f4a565b613e9c565b905082815260208101848484011115612a5857600080fd5b612a63848285614230565b509392505050565b600081359050612a7a8161464b565b92915050565b600081519050612a8f8161464b565b92915050565b600081519050612aa481614662565b92915050565b600082601f830112612abb57600080fd5b8151612acb8482602086016128fd565b91505092915050565b600082601f830112612ae557600080fd5b8135612af5848260208601612969565b91505092915050565b600081359050612b0d81614679565b92915050565b600081519050612b2281614679565b92915050565b60008083601f840112612b3a57600080fd5b8235905067ffffffffffffffff811115612b5357600080fd5b602083019150836001820283011115612b6b57600080fd5b9250929050565b600082601f830112612b8357600080fd5b8135612b938482602086016129ef565b91505092915050565b600081519050612bab81614690565b92915050565b600081359050612bc0816146a7565b92915050565b600081519050612bd5816146a7565b92915050565b600082601f830112612bec57600080fd5b8135612bfc848260208601612a2d565b91505092915050565b600060608284031215612c1757600080fd5b612c216060613e9c565b90506000612c3184828501612f32565b6000830152506020612c4584828501612a6b565b6020830152506040612c5984828501612f32565b60408301525092915050565b600060608284031215612c7757600080fd5b612c816060613e9c565b90506000612c9184828501612f47565b6000830152506020612ca584828501612a80565b6020830152506040612cb984828501612f47565b60408301525092915050565b60006101608284031215612cd857600080fd5b612ce3610120613e9c565b9050600082013567ffffffffffffffff811115612cff57600080fd5b612d0b84828501612bdb565b600083015250602082013567ffffffffffffffff811115612d2b57600080fd5b612d3784828501612bdb565b6020830152506040612d4b84828501612a6b565b604083015250606082013567ffffffffffffffff811115612d6b57600080fd5b612d7784828501612bdb565b6060830152506080612d8b84828501612afe565b60808301525060a0612d9f84828501612bb1565b60a08301525060c0612db384828501612afe565b60c08301525060e082013567ffffffffffffffff811115612dd357600080fd5b612ddf84828501612ad4565b60e083015250610100612df484828501612c05565b6101008301525092915050565b600060a08284031215612e1357600080fd5b612e1d60a0613e9c565b90506000612e2d84828501612afe565b6000830152506020612e4184828501612a6b565b602083015250604082013567ffffffffffffffff811115612e6157600080fd5b612e6d84828501612b72565b604083015250606082013567ffffffffffffffff811115612e8d57600080fd5b612e9984828501612b72565b6060830152506080612ead84828501612a6b565b60808301525092915050565b600060408284031215612ecb57600080fd5b612ed56040613e9c565b90506000612ee584828501612f1d565b600083015250602082013567ffffffffffffffff811115612f0557600080fd5b612f1184828501612e01565b60208301525092915050565b600081359050612f2c816146be565b92915050565b600081359050612f41816146d5565b92915050565b600081519050612f56816146d5565b92915050565b600081519050612f6b816146ec565b92915050565b600060208284031215612f8357600080fd5b6000612f9184828501612a6b565b91505092915050565b60008060408385031215612fad57600080fd5b6000612fbb85828601612a6b565b9250506020612fcc85828601612a6b565b9150509250929050565b60008060808385031215612fe957600080fd5b6000612ff785828601612a6b565b925050602061300885828601612c05565b9150509250929050565b6000806040838503121561302557600080fd5b600061303385828601612a6b565b925050602083013567ffffffffffffffff81111561305057600080fd5b61305c85828601612cc5565b9150509250929050565b6000806040838503121561307957600080fd5b600061308785828601612a6b565b925050602061309885828601612f1d565b9150509250929050565b600080600080606085870312156130b857600080fd5b60006130c687828801612a6b565b94505060206130d787828801612f1d565b935050604085013567ffffffffffffffff8111156130f457600080fd5b61310087828801612b28565b925092505092959194509250565b60006020828403121561312057600080fd5b600061312e84828501612b9c565b91505092915050565b6000806040838503121561314a57600080fd5b600061315885828601612b9c565b925050602061316985828601612a95565b9150509250929050565b6000806040838503121561318657600080fd5b600061319485828601612b9c565b92505060206131a585828601612b13565b9150509250929050565b600080608083850312156131c257600080fd5b60006131d085828601612b9c565b92505060206131e185828601612c65565b9150509250929050565b600080604083850312156131fe57600080fd5b600061320c85828601612b9c565b925050602061321d85828601612f5c565b9150509250929050565b60008060006060848603121561323c57600080fd5b600061324a86828701612b9c565b935050602061325b86828701612f5c565b925050604084015167ffffffffffffffff81111561327857600080fd5b61328486828701612aaa565b9150509250925092565b6000602082840312156132a057600080fd5b60006132ae84828501612bb1565b91505092915050565b6000806000606084860312156132cc57600080fd5b600084013567ffffffffffffffff8111156132e657600080fd5b6132f286828701612bdb565b935050602084013567ffffffffffffffff81111561330f57600080fd5b61331b86828701612bdb565b925050604084013567ffffffffffffffff81111561333857600080fd5b61334486828701612bdb565b9150509250925092565b600061335a8383613588565b905092915050565b600061336e8383613601565b60208301905092915050565b60006133868383613a57565b905092915050565b600061339a8383613a94565b60208301905092915050565b6133af8161418e565b82525050565b6133be8161418e565b82525050565b60006133cf82613fd0565b6133d98185614046565b9350836020820285016133eb85613f7b565b8060005b858110156134275784840389528151613408858261334e565b945061341383614012565b925060208a019950506001810190506133ef565b50829750879550505050505092915050565b600061344482613fdb565b61344e8185614057565b935061345983613f8b565b8060005b8381101561348a5781516134718882613362565b975061347c8361401f565b92505060018101905061345d565b5085935050505092915050565b60006134a282613fe6565b6134ac8185614068565b9350836020820285016134be85613f9b565b8060005b858110156134fa57848403895281516134db858261337a565b94506134e68361402c565b925060208a019950506001810190506134c2565b50829750879550505050505092915050565b600061351782613ff1565b6135218185614079565b935061352c83613fab565b8060005b8381101561355d578151613544888261338e565b975061354f83614039565b925050600181019050613530565b5085935050505092915050565b613573816141b2565b82525050565b613582816141b2565b82525050565b600061359382613ffc565b61359d818561408a565b93506135ad81856020860161423f565b6135b68161440b565b840191505092915050565b60006135cc82613ffc565b6135d6818561409b565b93506135e681856020860161423f565b80840191505092915050565b6135fb816141be565b82525050565b61360a816141d5565b82525050565b613619816141d5565b82525050565b600061362a82614007565b61363481856140a6565b935061364481856020860161423f565b61364d8161440b565b840191505092915050565b600061366382614007565b61366d81856140b7565b935061367d81856020860161423f565b6136868161440b565b840191505092915050565b600061369c82614007565b6136a681856140c8565b93506136b681856020860161423f565b80840191505092915050565b600081546136cf81614272565b6136d981866140c8565b945060018216600081146136f4576001811461370557613738565b60ff19831686528186019350613738565b61370e85613fbb565b60005b8381101561373057815481890152600182019150602081019050613711565b838801955050505b50505092915050565b600061374e6015836140b7565b91506137598261441c565b602082019050919050565b60006137716026836140b7565b915061377c82614445565b604082019050919050565b60006137946023836140c8565b915061379f82614494565b602382019050919050565b60006137b76023836140c8565b91506137c2826144e3565b602382019050919050565b60006137da6025836140c8565b91506137e582614532565b602582019050919050565b60006137fd6020836140b7565b915061380882614581565b602082019050919050565b60006138206013836140b7565b915061382b826145aa565b602082019050919050565b60006138436004836140c8565b915061384e826145d3565b600482019050919050565b60006138666027836140c8565b9150613871826145fc565b602782019050919050565b6060820160008201516138926000850182613aa3565b5060208201516138a560208501826133a6565b5060408201516138b86040850182613aa3565b50505050565b6060820160008201516138d46000850182613aa3565b5060208201516138e760208501826133a6565b5060408201516138fa6040850182613aa3565b50505050565b600061016083016000830151848203600086015261391e828261361f565b91505060208301518482036020860152613938828261361f565b915050604083015161394d60408601826133a6565b5060608301518482036060860152613965828261361f565b915050608083015161397a608086018261356a565b5060a083015161398d60a0860182613601565b5060c08301516139a060c086018261356a565b5060e083015184820360e08601526139b88282613497565b9150506101008301516139cf61010086018261387c565b508091505092915050565b600060a0830160008301516139f2600086018261356a565b506020830151613a0560208601826133a6565b5060408301518482036040860152613a1d8282613588565b91505060608301518482036060860152613a378282613588565b9150506080830151613a4c60808601826133a6565b508091505092915050565b6000604083016000830151613a6f6000860182613a94565b5060208301518482036020860152613a8782826139da565b9150508091505092915050565b613a9d81614202565b82525050565b613aac8161420c565b82525050565b613abb8161420c565b82525050565b613aca8161421c565b82525050565b6000613adc82846135c1565b915081905092915050565b6000613af382856136c2565b9150613aff8284613691565b91508190509392505050565b6000613b1782846136c2565b9150613b2282613836565b915081905092915050565b6000613b3882613787565b9150613b448284613691565b915081905092915050565b6000613b5a826137aa565b9150613b668284613691565b915081905092915050565b6000613b7c826137cd565b9150613b888284613691565b915081905092915050565b6000613b9e82613859565b9150613baa8284613691565b915081905092915050565b6000602082019050613bca60008301846133b5565b92915050565b6000604082019050613be560008301856133b5565b613bf260208301846133b5565b9392505050565b6000608082019050613c0e60008301876133b5565b613c1b60208301866133b5565b613c2860408301856133b5565b613c356060830184613610565b95945050505050565b6000608082019050613c5360008301856133b5565b613c6060208301846138be565b9392505050565b6000604082019050613c7c60008301856133b5565b8181036020830152613c8e8184613900565b90509392505050565b6000606082019050613cac60008301866133b5565b613cb96020830185613ac1565b8181036040830152613ccb81846133c4565b9050949350505050565b6000606082019050613cea60008301866133b5565b613cf76020830185613ac1565b8181036040830152613d098184613439565b9050949350505050565b60006020820190508181036000830152613d2d818461350c565b905092915050565b6000602082019050613d4a60008301846135f2565b92915050565b6000608082019050613d6560008301856135f2565b613d7260208301846138be565b9392505050565b6000602082019050613d8e6000830184613610565b92915050565b6000604082019050613da96000830185613610565b613db66020830184613579565b9392505050565b60006020820190508181036000830152613dd78184613658565b905092915050565b60006020820190508181036000830152613df881613741565b9050919050565b60006020820190508181036000830152613e1881613764565b9050919050565b60006020820190508181036000830152613e38816137f0565b9050919050565b60006020820190508181036000830152613e5881613813565b9050919050565b60006020820190508181036000830152613e798184613900565b905092915050565b6000602082019050613e966000830184613ab2565b92915050565b6000613ea6613eb7565b9050613eb282826142a4565b919050565b6000604051905090565b600067ffffffffffffffff821115613edc57613edb6143dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613f0857613f076143dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613f3457613f336143dc565b5b613f3d8261440b565b9050602081019050919050565b600067ffffffffffffffff821115613f6557613f646143dc565b5b613f6e8261440b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006140de82614202565b91506140e983614202565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561411e5761411d61434f565b5b828201905092915050565b600061413482614202565b915061413f83614202565b92508261414f5761414e61437e565b5b828204905092915050565b600061416582614202565b915061417083614202565b9250828210156141835761418261434f565b5b828203905092915050565b6000614199826141e2565b9050919050565b60006141ab826141e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561425d578082015181840152602081019050614242565b8381111561426c576000848401525b50505050565b6000600282049050600182168061428a57607f821691505b6020821081141561429e5761429d6143ad565b5b50919050565b6142ad8261440b565b810181811067ffffffffffffffff821117156142cc576142cb6143dc565b5b80604052505050565b60006142e082614202565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156143135761431261434f565b5b600182019050919050565b600061432982614202565b915061433483614202565b9250826143445761434361437e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b6146548161418e565b811461465f57600080fd5b50565b61466b816141a0565b811461467657600080fd5b50565b614682816141b2565b811461468d57600080fd5b50565b614699816141c8565b81146146a457600080fd5b50565b6146b0816141d5565b81146146bb57600080fd5b50565b6146c781614202565b81146146d257600080fd5b50565b6146de8161420c565b81146146e957600080fd5b50565b6146f58161421c565b811461470057600080fd5b5056fea26469706673582212201facf4bc0632b69447b95b238968dc2293cab79b1aba6e400d06a4f168a4be9764736f6c63430008040033"; + "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 317f87a3b..fc84f33ad 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -648,7 +648,8 @@ export async function web3HelperFactory( to: string, id: NftInfo, txFees: BigNumber, - nonce + nonce, + gasLimit = undefined ): Promise { await approveForMinter(id, sender); @@ -658,6 +659,7 @@ export async function web3HelperFactory( ["uint160", "int96"], [EthBN.from(id.collectionIdent), id.native.tokenId] ); + id.native.contract = params.erc721_addr; } const txn = await minter @@ -669,24 +671,26 @@ export async function web3HelperFactory( id.native.contract, { value: EthBN.from(txFees.toString(10)), + gasLimit, } ); await txnUnderpricedPolyWorkaround(txn); const res = await sender.sendTransaction(txn); - await notifyValidator( - res.hash, - await extractAction(res), - "Unfreeze", - Number(nonce), - txFees.toString(), - await sender.getAddress(), - to, - id.uri, - id.native.tokenId, - id.native.contract - ); + let txHash: string; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = txr["transactionId"]; + } else if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = txr["returnedHash"] || txr.hash; + } else { + //@ts-ignore checked normal evm + txHash = txr.hash; + } + + await notifyValidator(txHash); return res; }, From 70f47b532ba9098252734c9c33b09f3dbf5f4bb9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 4 Nov 2022 13:55:19 +0530 Subject: [PATCH 750/956] web3: erc20: setup skale for erc20 payment method --- src/consts.ts | 6 ++++-- src/factory/factories.ts | 12 +++++++----- src/factory/index.ts | 3 ++- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 8aa3131ec..4f18281d9 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -28,6 +28,7 @@ import { } from "./helpers/dfinity/dfinity"; import { NearHelper, NearParams, nearHelperFactory } from "./helpers/near"; import { aptosHelper, AptosHelper, AptosParams } from "./helpers/aptos"; +import { web3ERC20HelperFactory, Web3ERC20Params } from "./helpers/web3_erc20"; // All the supported testnet uri's are here. export enum TestNetRpcUri { @@ -101,6 +102,7 @@ type SolanaMeta = [SolanaHelper, SolanaParams]; type TonMeta = [TonHelper, TonParams]; type DfinityMeta = [DfinityHelper, DfinityParams]; type NearMeta = [NearHelper, NearParams]; +type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; type AptosMeta = [AptosHelper, AptosParams]; // Static Assert to Ensure all values of Chain are in MetaMap @@ -134,7 +136,7 @@ export type MetaMap = { 0x1b: TonMeta; 0x1c: DfinityMeta; 0x1d: Web3Meta; - 0x1e: Web3Meta; + 0x1e: Web3ERC20Meta; 0x1f: NearMeta; 0x20: Web3Meta; 0x21: Web3Meta; @@ -479,7 +481,7 @@ CHAIN_INFO.set(Chain.SKALE, { name: "Skale", blockExplorerUrl: "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", - constructor: web3HelperFactory, + constructor: web3ERC20HelperFactory, currency: SupportedCurrency.SKL, decimals: 1e18, chainId: 1564830818, diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 1b9cfe4e9..11b707802 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -291,11 +291,12 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.SKALE), feeMargin, - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc1155_addr: "0x34c34E0808dC25c43cD41Cdba5049F7C370b7093", + erc1155Minter: "0x19F5cb72DBEdBAd6622FcC4244E238F207d7Bcb6", + erc721Minter: "0x79CcaA9FF641e848437C1855fd6c217Dc2204B09", + erc721_addr: "0x753993a3220eB7EFb837c26b14F3EFffF271F886", + minter_addr: "0xF50d791fb0427442287AA574bacADBf5C964f38c", + paymentTokenAddress: "0x3F3894e65B9EcAAa1F099ECb82e9Cca3a0e86E9E", }, godwokenParams: { notifier, @@ -704,6 +705,7 @@ export namespace ChainFactoryConfigs { erc721Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", erc721_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", minter_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + paymentTokenAddress: "0x0000000000000000000000000000000000000000", }, moonbeamParams: { nonce: Chain.MOONBEAM, diff --git a/src/factory/index.ts b/src/factory/index.ts index 53381ca8c..3466d0383 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -64,6 +64,7 @@ import { HEDERA_TOKEN_SERVICE_ABI, } from "../helpers/hedera/hts_abi"; import { AptosParams } from "../helpers/aptos"; +import { Web3ERC20Params } from "../helpers/web3_erc20"; export type FullChain = TransferNftForeign< Signer, @@ -287,7 +288,7 @@ export interface ChainParams { gateChainParams: Web3Params; secretParams: SecretParams; hederaParams: Web3Params; - skaleParams: Web3Params; + skaleParams: Web3ERC20Params; dfinityParams: DfinityParams; nearParams: NearParams; moonbeamParams: Web3Params; From 168436149c6ca22241b59e2ccb6481d9d0984cd0 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 6 Nov 2022 15:52:44 +0200 Subject: [PATCH 751/956] TON: fix bug with undefined message paylaod in tonWallet --- src/helpers/ton.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 4e892804d..989feea94 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -121,8 +121,9 @@ export async function tonHelper(args: TonParams): Promise { body = trxs.find((trx: any) => { const messages = trx[msgType]; const message = Array.isArray(messages) - ? messages[0]["msg_data"].body - : messages["msg_data"].body; + ? messages?.at(0)?.msg_data?.body + : messages?.msg_data?.body; + return message === exBodyMsg; })?.data; } From f7cfd1f4526937636a5cb29a3b48c925b5e00567 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 6 Nov 2022 18:45:03 +0200 Subject: [PATCH 752/956] TON:add tonKeeper support --- src/helpers/ton.ts | 35 ++++++++++++++++++++++++++++++++++- src/helpers/web3.ts | 6 +++--- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 989feea94..43fbba720 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -37,11 +37,12 @@ export type TonWalletProvider = { }; export type TonArgs = { - wallet: TonhubConnector & TonWalletProvider; + wallet: TonhubConnector & TonWalletProvider & Function; config: { seed?: string; appPublicKey?: string; address?: string; + [x: string]: any; }; }; @@ -59,6 +60,7 @@ export type TonHelper = ChainNonceGet & tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; tonHubWrapper: (args: TonArgs) => TonSigner; tonWalletWrapper: (args: TonArgs) => TonSigner; + tonKeeperWrapper: (args: TonArgs) => TonSigner; } & GetFeeMargins; export type TonParams = { @@ -214,6 +216,37 @@ export async function tonHelper(args: TonParams): Promise { return hash; }, + tonKeeperWrapper(args: TonArgs) { + console.log(args, "args"); + let payload: string = ""; + const tonHub: TonWallet = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + payload = fromUint8Array(await params!.data.toBoc(false)); + return args.wallet.send( + `https://app.tonkeeper.com/transfer/${ + params!.to + }?amount=${new BN( + params!.value + ).toString()}&text=NFTSend&bin=${payload}` + ); + default: + return null; + } + }, + + async handleResponse(res: boolean) { + console.log(res); + return await waitTonTrx(payload, args.config.address!, "out_msgs"); + }, + }; + + return { + wallet: tonHub, + accIdx: 0, + }; + }, tonWalletWrapper(args: TonArgs) { let payload: string = ""; const tonHub: TonWallet = { diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index fc84f33ad..b4324cc80 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -681,13 +681,13 @@ export async function web3HelperFactory( let txHash: string; if (params.nonce === 0x1d) { //@ts-ignore checked hedera - txHash = txr["transactionId"]; + txHash = txn["transactionId"]; } else if (params.nonce === 33) { //@ts-ignore checked abeychain - txHash = txr["returnedHash"] || txr.hash; + txHash = txn["returnedHash"] || txn.hash; } else { //@ts-ignore checked normal evm - txHash = txr.hash; + txHash = txn.hash; } await notifyValidator(txHash); From 3eb1051611ab94a2159e0e1530e3d990cb9688ed Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 6 Nov 2022 20:38:40 +0200 Subject: [PATCH 753/956] add notifer to aptos --- src/helpers/aptos/index.ts | 7 +++++++ src/notifier/index.ts | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts index 327c0cd3d..16bb7b55b 100644 --- a/src/helpers/aptos/index.ts +++ b/src/helpers/aptos/index.ts @@ -13,6 +13,7 @@ import { AptosAccount, AptosClient, HexString } from "aptos"; import { Chain } from "../../consts"; import BigNumber from "bignumber.js"; import { BridgeClient } from "./bridge_client"; +import { EvNotifier } from "../../notifier"; export type AptosNFT = { collection_creator: string; @@ -34,6 +35,7 @@ export type AptosParams = { rpcUrl: string; xpnft: string; bridge: string; + notifier: EvNotifier; }; export async function aptosHelper({ @@ -41,6 +43,7 @@ export async function aptosHelper({ rpcUrl, xpnft, bridge, + notifier, }: AptosParams): Promise { const client = new AptosClient(rpcUrl); @@ -88,6 +91,8 @@ export async function aptosHelper({ to, mintWith ); + await new Promise((r) => setTimeout(r, 10000)); + await notifier.notifyAptos(receipt); return receipt; }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { @@ -103,6 +108,8 @@ export async function aptosHelper({ to, id.native.collection_creator ); + await new Promise((r) => setTimeout(r, 10000)); + await notifier.notifyAptos(receipt); return receipt; }, }; diff --git a/src/notifier/index.ts b/src/notifier/index.ts index ed97b5200..466117223 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -78,5 +78,8 @@ export function evNotifier(url: string) { async notifyTon(txHash: string) { await api.post("/tx/ton", { tx_hash: txHash }); }, + async notifyAptos(txHash: string) { + await api.post("/tx/aptos", { tx_hash: txHash }); + }, }; } From 5832f786d2a4b2869ae50235d9f135156e164083 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 6 Nov 2022 20:59:49 +0200 Subject: [PATCH 754/956] fix unfreeze hash WEb3 --- src/helpers/web3.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index b4324cc80..887a61f9b 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -677,17 +677,17 @@ export async function web3HelperFactory( await txnUnderpricedPolyWorkaround(txn); const res = await sender.sendTransaction(txn); - + console.log(res, "res"); let txHash: string; if (params.nonce === 0x1d) { //@ts-ignore checked hedera - txHash = txn["transactionId"]; + txHash = res["transactionId"]; } else if (params.nonce === 33) { //@ts-ignore checked abeychain - txHash = txn["returnedHash"] || txn.hash; + txHash = res["returnedHash"] || res.hash; } else { //@ts-ignore checked normal evm - txHash = txn.hash; + txHash = res.hash; } await notifyValidator(txHash); From 04aa7c1d5079c925d6d09bfecad8e31b04a8d7a3 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 7 Nov 2022 11:31:12 +0200 Subject: [PATCH 755/956] SECRET: mainnet rpc --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 4f18281d9..6cb61c718 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -82,7 +82,7 @@ export enum MainNetRpcUri { GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "https://secret-4.api.trivium.network:9091", + SECRET = "https://grpc.mainnet.secretsaturn.net", SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", NEAR = "https://rpc.mainnet.near.org", MOONBEAM = "https://rpc.api.moonbeam.network", From 4c7462d309d177bee482fab4bc0e98a451007122 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 8 Nov 2022 13:06:03 +0200 Subject: [PATCH 756/956] TON: findTrx not only by body but by value as well --- src/helpers/ton.ts | 81 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 62 insertions(+), 19 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 43fbba720..22cc13ee3 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -103,6 +103,7 @@ export async function tonHelper(args: TonParams): Promise { async function waitTonTrx( exBodyMsg: string, + value: string, address: string, msgType: "in_msg" | "out_msgs" ) { @@ -122,11 +123,20 @@ export async function tonHelper(args: TonParams): Promise { //find body of the trx body = trxs.find((trx: any) => { const messages = trx[msgType]; - const message = Array.isArray(messages) + let message: string = ""; + let msgVal: string = ""; + + message = Array.isArray(messages) ? messages?.at(0)?.msg_data?.body : messages?.msg_data?.body; + msgVal = Array.isArray(trx["out_msgs"]) + ? trx.out_msgs?.at(0)?.value + : trx["out_msgs"].value; + + trx.utime * 1000 >= +new Date(Date.now() - 1000 * 60 * 5) && + console.log(trx.utime, "trx happend no more than 5 minutes ago"); - return message === exBodyMsg; + return message === exBodyMsg && msgVal === value; })?.data; } @@ -136,14 +146,21 @@ export async function tonHelper(args: TonParams): Promise { const exHash = dict.toString("base64"); console.log(exHash, "exHash"); - await new Promise((r) => setTimeout(r, 6 * 1000)); - const trxArr = await axios( - `https://toncenter.com/api/index/getTransactionByHash?tx_hash=${encodeURIComponent( - exHash - )}&include_msg_body=true` - ); - return trxArr.data[0]["in_msg"].hash; + let trxData: any = undefined; + + while (trxData === undefined) { + await new Promise((r) => setTimeout(r, 6 * 1000)); + const res = await axios( + `https://toncenter.com/api/index/getTransactionByHash?tx_hash=${encodeURIComponent( + exHash + )}&include_msg_body=true` + ).catch(() => undefined); + + trxData = res?.data; + } + + return trxData[0]["in_msg"].hash; } return { @@ -169,7 +186,10 @@ export async function tonHelper(args: TonParams): Promise { async transferNftToForeign(signer, chainNonce, to, nft, txFees, mintWith) { const rSigner = signer.wallet || ton; - const txFeesFull = new BN(txFees.toString(10)); + const txFeesFull = new BN(txFees.toString(10)).add( + TonWeb.utils.toNano((Math.random() * 0.01).toFixed(7)) + ); + const nftFee = TonWeb.utils.toNano("0.07"); const payload = await bridge.createFreezeBody({ @@ -179,6 +199,8 @@ export async function tonHelper(args: TonParams): Promise { mintWith: Buffer.from(mintWith), }); + console.log(txFeesFull.toString(10), "val"); + console.log("TON:transferNftToForeign"); console.log(rSigner); const res = (await rSigner.send("ton_sendTransaction", { @@ -197,15 +219,23 @@ export async function tonHelper(args: TonParams): Promise { const rSigner = signer.wallet || ton; const txFeesFull = TonWeb.utils.toNano("0.08"); + const nftFee = TonWeb.utils.toNano("0.05"); + const payload = await bridge.createWithdrawBody({ - to: new Uint8Array(Buffer.from(to)), + to: Buffer.from(to), chainNonce: parseInt(chainNonce), txFees: txFeesFull.sub(nftFee), }); + //random value between 0.08 and 0.09 with 8 digits after . + const value = TonWeb.utils.toNano( + (Math.random() * (0.09 - 0.08) + 0.08).toFixed(8) + ); + console.log(value.toString(10), "v"); + console.log("TON:unfreezeWrappedNft"); const res = (await rSigner.send("ton_sendTransaction", { - value: txFeesFull.toString(10), + value: new BN(value).toString(10), to: nft.native.nftItemAddr, data: payload, })) as ResponseUnionType; @@ -219,17 +249,17 @@ export async function tonHelper(args: TonParams): Promise { tonKeeperWrapper(args: TonArgs) { console.log(args, "args"); let payload: string = ""; + let value = ""; const tonHub: TonWallet = { async send(method, params) { switch (method) { case "ton_sendTransaction": payload = fromUint8Array(await params!.data.toBoc(false)); + value = new BN(params!.value).toString(); return args.wallet.send( `https://app.tonkeeper.com/transfer/${ params!.to - }?amount=${new BN( - params!.value - ).toString()}&text=NFTSend&bin=${payload}` + }?amount=${value}&text=NFTSend&bin=${payload}` ); default: return null; @@ -238,7 +268,12 @@ export async function tonHelper(args: TonParams): Promise { async handleResponse(res: boolean) { console.log(res); - return await waitTonTrx(payload, args.config.address!, "out_msgs"); + return await waitTonTrx( + payload, + value, + args.config.address!, + "out_msgs" + ); }, }; @@ -249,15 +284,19 @@ export async function tonHelper(args: TonParams): Promise { }, tonWalletWrapper(args: TonArgs) { let payload: string = ""; + let value = ""; const tonHub: TonWallet = { async send(method, params) { switch (method) { case "ton_sendTransaction": + value = params!.value; + payload = fromUint8Array(await params!.data.toBoc(false)); + console.log(payload, "payload"); return await args.wallet.send("ton_sendTransaction", [ { to: params!.to, - value: new BN(params!.value).toString(), + value, dataType: "boc", data: payload, }, @@ -269,7 +308,8 @@ export async function tonHelper(args: TonParams): Promise { async handleResponse(res: boolean) { return ( - res && (await waitTonTrx(payload, args.config.address!, "out_msgs")) + res && + (await waitTonTrx(payload, value, args.config.address!, "out_msgs")) ); }, }; @@ -280,15 +320,17 @@ export async function tonHelper(args: TonParams): Promise { }; }, tonHubWrapper(args: TonArgs) { + let value = ""; const tonHub: TonWallet = { async send(method, params) { switch (method) { case "ton_sendTransaction": + value = new BN(params!.value).toString(); return await args.wallet.requestTransaction({ seed: args.config.seed!, appPublicKey: args.config.appPublicKey!, to: params!.to, - value: new BN(params!.value).toString(), + value, timeout: 5 * 60 * 1000, text: `ton_sendTransaction to ${params!.to}`, payload: fromUint8Array(await params!.data.toBoc(false)), @@ -303,6 +345,7 @@ export async function tonHelper(args: TonParams): Promise { if (res.type === "success" && res.response != undefined) { return await waitTonTrx( res.response, + value, args.config.address!, "in_msg" ); From 5a63c03996e57381148b6b20e7f7619710a063ea Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 8 Nov 2022 18:20:19 +0530 Subject: [PATCH 757/956] factories: testnet: add testnet for aptos --- src/factory/factories.ts | 9 +++++++++ src/helpers/aptos/bridge_client.ts | 12 +++++++++--- src/helpers/aptos/bridge_client_abis.ts | 16 ++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 11b707802..aaf2eee0e 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -131,6 +131,15 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", }, + aptosParams: { + rpcUrl: TestNetRpcUri.APTOS, + bridge: + "0x34970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb", + xpnft: "XPNFT", + notifier, + feeMargin, + nonce: Chain.APTOS, + }, abeyChainParams: { nonce: Chain.ABEYCHAIN, notifier, diff --git a/src/helpers/aptos/bridge_client.ts b/src/helpers/aptos/bridge_client.ts index 5cf05d6dc..bcecbbcee 100644 --- a/src/helpers/aptos/bridge_client.ts +++ b/src/helpers/aptos/bridge_client.ts @@ -5,7 +5,7 @@ import { MaybeHexString, TransactionBuilderABI, } from "aptos"; -import { BRIDGE_ABIS } from "./bridge_client_abis"; +import { BRIDGE_ABIS, DEVNET_BRIDGE_ABIS } from "./bridge_client_abis"; interface BridgeData { action_cnt: string; @@ -30,10 +30,16 @@ export class BridgeClient { transactionBuilder: TransactionBuilderABI; address: string; - constructor(aptosClient: AptosClient, address: string) { + constructor( + aptosClient: AptosClient, + address: string, + network: "mainnet" | "devnet" + ) { this.aptosClient = aptosClient; this.transactionBuilder = new TransactionBuilderABI( - BRIDGE_ABIS.map((abi) => new HexString(abi).toUint8Array()) + (network === "mainnet" ? BRIDGE_ABIS : DEVNET_BRIDGE_ABIS).map((abi) => + new HexString(abi).toUint8Array() + ) ); this.address = address; } diff --git a/src/helpers/aptos/bridge_client_abis.ts b/src/helpers/aptos/bridge_client_abis.ts index b0a21f8c6..155093a83 100644 --- a/src/helpers/aptos/bridge_client_abis.ts +++ b/src/helpers/aptos/bridge_client_abis.ts @@ -24,3 +24,19 @@ export const BRIDGE_ABIS = [ // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi "011576616c69646174655f756e667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", ]; + +export const DEVNET_BRIDGE_ABIS = [ + "010a696e697469616c697a6534970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb066272696467650000010967726f75705f6b65790601", + "0105706175736534970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000209616374696f6e5f696403097369676e61747572650601", + + "0107756e706175736534970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b657934970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f77686974656c69737434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f626c61636b6c69737434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f6665657334970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e667434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", + "010c77697468647261775f6e667434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011176616c69646174655f6275726e5f6e667434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", + "010a667265657a655f6e667434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011576616c69646174655f756e667265657a655f6e667434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; From 2366c188e2ea438b1f722f06d6201ce80c14d131 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 8 Nov 2022 19:20:46 +0530 Subject: [PATCH 758/956] factories: testnet: add network to config param --- src/factory/factories.ts | 2 ++ src/helpers/aptos/index.ts | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index aaf2eee0e..53bbe17a5 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -139,6 +139,7 @@ export namespace ChainFactoryConfigs { notifier, feeMargin, nonce: Chain.APTOS, + network: "devnet", }, abeyChainParams: { nonce: Chain.ABEYCHAIN, @@ -453,6 +454,7 @@ export namespace ChainFactoryConfigs { notifier, feeMargin, nonce: Chain.APTOS, + network: "mainnet", }, }; }; diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts index 16bb7b55b..d80a5abcb 100644 --- a/src/helpers/aptos/index.ts +++ b/src/helpers/aptos/index.ts @@ -36,6 +36,7 @@ export type AptosParams = { xpnft: string; bridge: string; notifier: EvNotifier; + network: "mainnet" | "devnet"; }; export async function aptosHelper({ @@ -44,10 +45,11 @@ export async function aptosHelper({ xpnft, bridge, notifier, + network, }: AptosParams): Promise { const client = new AptosClient(rpcUrl); - const bridgeClient = new BridgeClient(client, bridge); + const bridgeClient = new BridgeClient(client, bridge, network); return { getNonce() { From e1d84bd95c1dbcf9f66b676f50104d504ac2ef0a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 8 Nov 2022 19:23:14 +0530 Subject: [PATCH 759/956] factories: mainnet: add ton --- src/factory/factories.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 53bbe17a5..8aee5e078 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -473,6 +473,19 @@ export namespace ChainFactoryConfigs { ); return { + tonParams: { + bridgeAddr: "kQAhH1me417YvScu9Rn8BXjsW_9HcalciG5LmCDT04HMJt6L", + burnerAddr: "kQDuSGRY8g6TCLC4QhlhqgLr4G_nNXTGHoXy38Mwxx-r1aGY", + notifier, + tonweb: new TonWeb( + new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + }) + ), + xpnftAddr: "EQABqbZubs5e3QQF3lxVZMvdaxlaIdNQWq8W1rn8rvVvWHys", + feeMargin, + }, elrondParams: { node_uri: MainNetRpcUri.ELROND, minter_address: From 4c40c4ad255457ebeeaa213a89b35e7a217ee648 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Wed, 9 Nov 2022 12:27:47 +0200 Subject: [PATCH 760/956] deps fixes --- package.json | 5 +- yarn.lock | 324 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 324 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7c6dbd143..ad3b1f36e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "3.0.14", + "version": "4.0.0", "author": "xp-network ", "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", @@ -30,7 +30,8 @@ "prettier": "^2.3.2", "pretty-quick": "^3.1.3", "typedoc": "^0.22.6", - "typescript": "^4.3.5" + "typescript": "^4.3.5", + "yarn-audit-fix": "^9.3.7" }, "dependencies": { "@dfinity/agent": "^0.11.3", diff --git a/yarn.lock b/yarn.lock index 766409f7c..557e80bfe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1884,6 +1884,18 @@ dependencies: "@types/node" "*" +"@types/find-cache-dir@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz#7b959a4b9643a1e6a1a5fe49032693cc36773501" + integrity sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw== + +"@types/fs-extra@^9.0.13": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + "@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" @@ -1901,6 +1913,18 @@ dependencies: "@types/node" "*" +"@types/lodash-es@^4.17.6": + version "4.17.6" + resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.6.tgz#c2ed4c8320ffa6f11b43eb89e9eaeec65966a0a0" + integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.188" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.188.tgz#e4990c4c81f7c9b00c5ff8eae389c10f27980da5" + integrity sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w== + "@types/long@^4.0.1": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" @@ -1974,6 +1998,11 @@ dependencies: "@types/node" "*" +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + "@types/ws@^7.4.4": version "7.4.7" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" @@ -1981,6 +2010,11 @@ dependencies: "@types/node" "*" +"@types/yarnpkg__lockfile@^1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@types/yarnpkg__lockfile/-/yarnpkg__lockfile-1.1.5.tgz#9639020e1fb65120a2f4387db8f1e8b63efdf229" + integrity sha512-8NYnGOctzsI4W0ApsP/BIHD/LnxpJ6XaGf2AZmz4EyDYJMxtprN4279dLNI1CPZcwC9H18qYcaFv4bXi0wmokg== + "@typescript-eslint/eslint-plugin@^4.31.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" @@ -2251,6 +2285,11 @@ dependencies: "@walletconnect/window-getters" "^1.0.0" +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -2425,6 +2464,16 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + array-differ@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" @@ -2631,6 +2680,27 @@ base64-js@*, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +bash-glob@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bash-glob/-/bash-glob-2.0.0.tgz#a8ef19450783403ed93fccca2dbe09f2cf6320dc" + integrity sha512-53/NJ+t2UAkEYgQPO6aFjbx1Ue8vNNXCYaA4EljNKP1SR8A9dSQQoBmYWR8BLXO0/NDRJEMSJ4BxWihi//m3Kw== + dependencies: + bash-path "^1.0.1" + component-emitter "^1.2.1" + cross-spawn "^5.1.0" + each-parallel-async "^1.0.0" + extend-shallow "^2.0.1" + is-extglob "^2.1.1" + is-glob "^4.0.0" + +bash-path@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/bash-path/-/bash-path-1.0.3.tgz#dbc9efbdf18b1c11413dcb59b960e6aa56c84258" + integrity sha512-mGrYvOa6yTY/qNCiZkPFJqWmODK68y6kmVRAJ1NNbWlNoJrUrsFxu7FU2EKg7gbrer6ttrKkF2s/E/lhRy7/OA== + dependencies: + arr-union "^3.1.0" + is-windows "^1.0.1" + bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -3081,6 +3151,11 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.0.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.1.2.tgz#d957f370038b75ac572471e83be4c5ca9f8e8c45" + integrity sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ== + charenc@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" @@ -3206,7 +3281,7 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.15.0, commander@^2.20.3: +commander@^2.11.0, commander@^2.15.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -3221,12 +3296,22 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@^9.4.0: + version "9.4.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" + integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + compare-versions@^3.4.0: version "3.6.0" resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== -component-emitter@^1.3.0: +component-emitter@^1.2.1, component-emitter@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== @@ -3353,6 +3438,15 @@ cross-fetch@^3.1.4, cross-fetch@^3.1.5: dependencies: node-fetch "2.6.7" +cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -3626,6 +3720,11 @@ duplexer@~0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +each-parallel-async@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/each-parallel-async/-/each-parallel-async-1.0.0.tgz#91783e190000c7dd588336b2d468ebaf71980f7b" + integrity sha512-P/9kLQiQj0vZNzphvKKTgRgMnlqs5cJsxeAiuog1jrUnwv0Z3hVUwJDQiP7MnLb2I9S15nR9SRUceFT9IxtqRg== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -3701,6 +3800,11 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" +eol@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd" + integrity sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg== + error-polyfill@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/error-polyfill/-/error-polyfill-0.1.3.tgz#df848b61ad8834f7a5db69a70b9913df86721d15" @@ -4350,6 +4454,13 @@ ext@^1.1.2: dependencies: type "^2.7.2" +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -4375,6 +4486,17 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-glob@^3.2.11: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-glob@^3.2.5, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" @@ -4445,6 +4567,14 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== + dependencies: + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" + find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -4453,6 +4583,14 @@ find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + find-up@~5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -4604,6 +4742,15 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== +fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -4806,6 +4953,17 @@ globby@^11.0.3: merge2 "^1.4.1" slash "^3.0.0" +globby@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + google-protobuf@^3.14.0: version "3.21.2" resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" @@ -5216,6 +5374,11 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -5369,6 +5532,11 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -5493,6 +5661,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -5648,6 +5823,18 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +locate-path@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.1.1.tgz#8e1e5a75c7343770cef02ff93c4bf1f0aa666374" + integrity sha512-vJXaRMJgRVD3+cUZs3Mncj2mxpt5mP0EmNOsxRSZRMlbqjvxzDEOIUWXGmavo0ZC9+tNZCBLQ66reA11nbpHZg== + dependencies: + p-locate "^6.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" @@ -5663,7 +5850,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@^4.17.20, lodash@^4.17.21: +lodash@4.17.21, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -5714,6 +5901,14 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -6072,6 +6267,13 @@ next-tick@^1.1.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== +nmtree@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/nmtree/-/nmtree-1.0.6.tgz#953e057ad545e9e627f1275bd25fea4e92c1cf63" + integrity sha512-SUPCoyX5w/lOT6wD/PZEymR+J899984tYEOYjuDqQlIOeX5NSb1MEsCcT0az+dhZD0MLAj5hGBZEpKQxuDdniA== + dependencies: + commander "^2.11.0" + no-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" @@ -6296,6 +6498,13 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -6310,6 +6519,13 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + p-timeout@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" @@ -6360,6 +6576,11 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -6428,6 +6649,13 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + platform@1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" @@ -6579,6 +6807,11 @@ ps-tree@1.2.0: dependencies: event-stream "=3.3.4" +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + psl@^1.1.28: version "1.9.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" @@ -7020,6 +7253,13 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +semver@^7.3.7: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -7088,6 +7328,13 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -7095,6 +7342,11 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" @@ -7165,6 +7417,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -7200,6 +7457,11 @@ socket.io-parser@~4.2.0: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" +sort-object-keys@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" + integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== + source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -7436,6 +7698,21 @@ symbol.inspect@1.0.1: resolved "https://registry.yarnpkg.com/symbol.inspect/-/symbol.inspect-1.0.1.tgz#e13125b8038c4996eb0dfa1567332ad4dcd0763f" integrity sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ== +synp@^1.9.10: + version "1.9.10" + resolved "https://registry.yarnpkg.com/synp/-/synp-1.9.10.tgz#53163321a600418c9b06af0db499939ffce12907" + integrity sha512-G9Z/TXTaBG1xNslUf3dHFidz/8tvvRaR560WWyOwyI7XrGGEGBTEIIg4hdRh1qFtz8mPYynAUYwWXUg/Zh0Pzw== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + bash-glob "^2.0.0" + colors "1.4.0" + commander "^7.2.0" + eol "^0.9.1" + lodash "4.17.21" + nmtree "^1.0.6" + semver "^7.3.5" + sort-object-keys "^1.1.3" + table@^6.0.9, table@^6.7.3: version "6.8.0" resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" @@ -8336,6 +8613,13 @@ which-typed-array@^1.1.2: has-tostringtag "^1.0.0" is-typed-array "^1.1.9" +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -8485,6 +8769,11 @@ yaeti@^0.0.6: resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -8538,6 +8827,30 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yarn-audit-fix@^9.3.7: + version "9.3.7" + resolved "https://registry.yarnpkg.com/yarn-audit-fix/-/yarn-audit-fix-9.3.7.tgz#bd8c66ce2edecd930d99d55e9c6470aabdd35811" + integrity sha512-zYSp7fp3oJhGGt7o4/DvwQJTfV8M0ozOUPVpHmCAeQkJhNDj/3Zq8vLYToyffvzy2A86zZKEMPTQsLrNvYvqqA== + dependencies: + "@types/find-cache-dir" "^3.2.1" + "@types/fs-extra" "^9.0.13" + "@types/lodash-es" "^4.17.6" + "@types/semver" "^7.3.12" + "@types/yarnpkg__lockfile" "^1.1.5" + "@yarnpkg/lockfile" "^1.1.0" + chalk "^5.0.1" + commander "^9.4.0" + find-cache-dir "^4.0.0" + find-up "^6.3.0" + fs-extra "^10.1.0" + globby "^13.1.2" + js-yaml "^4.1.0" + lodash-es "^4.17.21" + pkg-dir "^7.0.0" + semver "^7.3.7" + synp "^1.9.10" + tslib "^2.4.0" + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" @@ -8547,3 +8860,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== From 466a28057277e59d1a1074f612f7671e46b0bbcb Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 9 Nov 2022 18:18:11 +0530 Subject: [PATCH 761/956] chains: aptos: update client, abi, and address --- src/factory/factories.ts | 2 +- src/factory/index.ts | 6 +++--- src/helpers/aptos/bridge_client.ts | 16 +++++----------- src/helpers/aptos/bridge_client_abis.ts | 24 +++++++++++------------- 4 files changed, 20 insertions(+), 28 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 8aee5e078..37a3d4ebf 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -134,7 +134,7 @@ export namespace ChainFactoryConfigs { aptosParams: { rpcUrl: TestNetRpcUri.APTOS, bridge: - "0x34970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb", + "0x2110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b", xpnft: "XPNFT", notifier, feeMargin, diff --git a/src/factory/index.ts b/src/factory/index.ts index 3466d0383..492bbc94f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -754,9 +754,9 @@ export function ChainFactory( fee = await estimateFees(fromChain, toChain, nft, receiver, extraFee); console.log(new BigNumber(fee).toString()); } - if (!(await toChain.validateAddress(receiver))) { - throw Error("invalid address"); - } + // if (!(await toChain.validateAddress(receiver))) { + // throw Error("invalid address"); + // } if (await isWrappedNft(nft, fromChain.getNonce())) { await algoOptInCheck(nft, toChain, receiver); diff --git a/src/helpers/aptos/bridge_client.ts b/src/helpers/aptos/bridge_client.ts index bcecbbcee..3cda9203c 100644 --- a/src/helpers/aptos/bridge_client.ts +++ b/src/helpers/aptos/bridge_client.ts @@ -26,9 +26,9 @@ interface BridgeData { } export class BridgeClient { - aptosClient: AptosClient; - transactionBuilder: TransactionBuilderABI; - address: string; + private aptosClient: AptosClient; + private transactionBuilder: TransactionBuilderABI; + private address: string; constructor( aptosClient: AptosClient, @@ -143,9 +143,6 @@ export class BridgeClient { royaltyPointsDenominator: number | bigint, royaltyPointsNumerator: number | bigint, mutateSetting: boolean[], - propertyKeys: string[], - propertyValues: number[][], - propertyTypes: string[], to: HexString, actionId: number | bigint, signature: Uint8Array @@ -160,12 +157,9 @@ export class BridgeClient { maximum, uri, royaltyPayeeAddress.toString(), - royaltyPointsDenominator, - royaltyPointsNumerator, + royaltyPointsDenominator.toString(), + royaltyPointsNumerator.toString(), mutateSetting, - propertyKeys, - propertyValues, - propertyTypes, to.toString(), actionId, signature, diff --git a/src/helpers/aptos/bridge_client_abis.ts b/src/helpers/aptos/bridge_client_abis.ts index 155093a83..129ba1ad1 100644 --- a/src/helpers/aptos/bridge_client_abis.ts +++ b/src/helpers/aptos/bridge_client_abis.ts @@ -26,17 +26,15 @@ export const BRIDGE_ABIS = [ ]; export const DEVNET_BRIDGE_ABIS = [ - "010a696e697469616c697a6534970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb066272696467650000010967726f75705f6b65790601", - "0105706175736534970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000209616374696f6e5f696403097369676e61747572650601", - - "0107756e706175736534970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000209616374696f6e5f696403097369676e61747572650601", - "01107570646174655f67726f75705f6b657934970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - "011276616c69646174655f77686974656c69737434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - "011276616c69646174655f626c61636b6c69737434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - "011676616c69646174655f77697468647261775f6665657334970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - "011576616c69646174655f7472616e736665725f6e667434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", - "010c77697468647261775f6e667434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "011176616c69646174655f6275726e5f6e667434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", - "010a667265657a655f6e667434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "011576616c69646174655f756e667265657a655f6e667434970140e78477dfd0e37d60cd82cc2392e0ffc8768124d8716b2d2f803287cb0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", + "010a696e697469616c697a652110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b066272696467650000010967726f75705f6b65790601", + "010570617573652110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000209616374696f6e5f696403097369676e61747572650601", + "0107756e70617573652110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b65792110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f77686974656c6973742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f626c61636b6c6973742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f666565732110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e66742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + "010c77697468647261775f6e66742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010a667265657a655f6e66742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011576616c69646174655f756e667265657a655f6e66742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", ]; From bf3da2f18e038c6eee7b18e1dc7fee746b81cb63 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 10 Nov 2022 15:15:11 +0530 Subject: [PATCH 762/956] factories: testnet: add ton --- src/consts.ts | 1 + src/factory/factories.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index 6cb61c718..0a732a10e 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -58,6 +58,7 @@ export enum TestNetRpcUri { MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", ABEYCHAIN = "https://testrpc.abeychain.com", APTOS = "https://fullnode.devnet.aptoslabs.com", + TON = "https://testnet.toncenter.com/api/v2/jsonRPC", // TODO: Algorand // TODO: Fuse } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 37a3d4ebf..5c9379746 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -13,6 +13,7 @@ import { HttpAgent } from "@dfinity/agent"; import { Principal } from "@dfinity/principal"; import TonWeb from "tonweb"; import { FeeMargins } from "../helpers/chain"; +import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; /*const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", @@ -61,6 +62,19 @@ export namespace ChainFactoryConfigs { nonce: 2, feeMargin, }, + tonParams: { + tonweb: new TonWeb( + new HttpProvider(TestNetRpcUri.TON, { + apiKey: + "9e899d38874458e92addb70d6f336ccbe51e21e378af5797486ba9a9d1a3c5c3", + }) + ), + bridgeAddr: "kQB2Z2E1hONMjdPeT_TR9Z_er9BSYlLJ2b19WQCFZRm9EkdH", + burnerAddr: "kQDsnLX5GSPtnP4rmqcyQOk2oo9lRPZlT3DunnO6OLITQSVl", + xpnftAddr: "EQDxXt6uNCbuqHY5Kmccwj9qflFzUbkiHtS3IFAbcqxpH0XM", + feeMargin, + notifier, + }, vechainParams: { notifier, feeMargin, From 94cd5cc34e8587a7b6ba77c1e2c9a95f32194511 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 10 Nov 2022 16:37:47 +0530 Subject: [PATCH 763/956] aptos: abi: new for testnet The one without a whitelist --- src/factory/factories.ts | 5 ++--- src/helpers/aptos/bridge_client_abis.ts | 20 +++++++++----------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 5c9379746..0ae66ca60 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -13,7 +13,6 @@ import { HttpAgent } from "@dfinity/agent"; import { Principal } from "@dfinity/principal"; import TonWeb from "tonweb"; import { FeeMargins } from "../helpers/chain"; -import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; /*const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", @@ -64,7 +63,7 @@ export namespace ChainFactoryConfigs { }, tonParams: { tonweb: new TonWeb( - new HttpProvider(TestNetRpcUri.TON, { + new TonWeb.HttpProvider(TestNetRpcUri.TON, { apiKey: "9e899d38874458e92addb70d6f336ccbe51e21e378af5797486ba9a9d1a3c5c3", }) @@ -148,7 +147,7 @@ export namespace ChainFactoryConfigs { aptosParams: { rpcUrl: TestNetRpcUri.APTOS, bridge: - "0x2110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b", + "7b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba", xpnft: "XPNFT", notifier, feeMargin, diff --git a/src/helpers/aptos/bridge_client_abis.ts b/src/helpers/aptos/bridge_client_abis.ts index 129ba1ad1..0f0d7c463 100644 --- a/src/helpers/aptos/bridge_client_abis.ts +++ b/src/helpers/aptos/bridge_client_abis.ts @@ -26,15 +26,13 @@ export const BRIDGE_ABIS = [ ]; export const DEVNET_BRIDGE_ABIS = [ - "010a696e697469616c697a652110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b066272696467650000010967726f75705f6b65790601", - "010570617573652110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000209616374696f6e5f696403097369676e61747572650601", - "0107756e70617573652110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000209616374696f6e5f696403097369676e61747572650601", - "01107570646174655f67726f75705f6b65792110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - "011276616c69646174655f77686974656c6973742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - "011276616c69646174655f626c61636b6c6973742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - "011676616c69646174655f77697468647261775f666565732110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - "011576616c69646174655f7472616e736665725f6e66742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", - "010c77697468647261775f6e66742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "010a667265657a655f6e66742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "011576616c69646174655f756e667265657a655f6e66742110e9c5aa36817664a9251d1b3564cfb4678b1651005f1097fc5986366aaf0b0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", + "010a696e697469616c697a657b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba066272696467650000010967726f75705f6b65790601", + "010570617573657b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000209616374696f6e5f696403097369676e61747572650601", + "0107756e70617573657b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b65797b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f666565737b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e66747b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + "010c77697468647261775f6e66747b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010a667265657a655f6e66747b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011576616c69646174655f756e667265657a655f6e66747b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", ]; From e1cf32c99cd180af116b38a8babec340a2cb32b3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 10 Nov 2022 17:15:48 +0530 Subject: [PATCH 764/956] aptos: handler: add support for minting tokens --- src/helpers/aptos/index.ts | 71 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts index d80a5abcb..aec7ad1bc 100644 --- a/src/helpers/aptos/index.ts +++ b/src/helpers/aptos/index.ts @@ -3,12 +3,14 @@ import { EstimateTxFees, FeeMargins, GetFeeMargins, + GetProvider, + MintNft, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, } from "../chain"; -import { AptosAccount, AptosClient, HexString } from "aptos"; +import { AptosAccount, AptosClient, HexString, TokenClient } from "aptos"; import { Chain } from "../../consts"; import BigNumber from "bignumber.js"; @@ -22,13 +24,30 @@ export type AptosNFT = { property_version: number; }; +/** + * @param collection name of the collection u already own. if u dont own any token, then set this as undefined + * @param name name of the NFT + * @param description description of the NFT + * @param uri The URI which the NFT points to + * @param createCollection set this as true if u set collection as undefined. it will create a new collection. + */ +export type AptosMintArgs = { + collection: string | undefined; + name: string; + description: string; + uri: string; + createCollection: boolean; +}; + export type AptosHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & ValidateAddress & { XpNft: string; - } & GetFeeMargins; + } & GetFeeMargins & + MintNft & + GetProvider; export type AptosParams = { feeMargin: FeeMargins; @@ -97,6 +116,54 @@ export async function aptosHelper({ await notifier.notifyAptos(receipt); return receipt; }, + getProvider() { + return client; + }, + async mintNft(owner, options) { + const tc = new TokenClient(client); + if (options.createCollection) { + await tc.createCollection( + owner, + "UMT", + "UserNftMinter - Mint your NFTs Here To Test", + "https://example.com", + BigInt(2 ** 64) - BigInt(1) + ); + const response = await tc.createToken( + owner, + "UMT", + options.name, + options.description, + 1, + options.uri, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined + ); + return response; + } else { + const response = await tc.createToken( + owner, + options.collection!, + options.name, + options.description, + 1, + options.uri, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined + ); + return response; + } + }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { const receipt = await bridgeClient.withdrawNft( sender, From c8bc6b5a8ec43cbd4e0790dbd2a62e9ba465c0f8 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 10 Nov 2022 19:47:07 +0200 Subject: [PATCH 765/956] ton txFees hardcoded --- src/helpers/ton.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 22cc13ee3..bfb599484 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -218,22 +218,24 @@ export async function tonHelper(args: TonParams): Promise { async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { const rSigner = signer.wallet || ton; - const txFeesFull = TonWeb.utils.toNano("0.08"); + //const txFeesFull = TonWeb.utils.toNano("0.08"); + //random value between 0.08 and 0.09 with 8 digits after . + const value = TonWeb.utils.toNano( + (Math.random() * (0.09 - 0.08) + 0.08).toFixed(8) + ); const nftFee = TonWeb.utils.toNano("0.05"); const payload = await bridge.createWithdrawBody({ - to: Buffer.from(to), + to: new Uint8Array(Buffer.from(to)), chainNonce: parseInt(chainNonce), - txFees: txFeesFull.sub(nftFee), + txFees: value.sub(nftFee), }); - //random value between 0.08 and 0.09 with 8 digits after . - const value = TonWeb.utils.toNano( - (Math.random() * (0.09 - 0.08) + 0.08).toFixed(8) - ); - console.log(value.toString(10), "v"); + console.log(value.toString(10), "v"); + console.log(nft.native.nftItemAddr); console.log("TON:unfreezeWrappedNft"); + const res = (await rSigner.send("ton_sendTransaction", { value: new BN(value).toString(10), to: nft.native.nftItemAddr, From eaf8a5e5adce048bb0d59fd7c5727c2cb671ac00 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Fri, 11 Nov 2022 12:21:05 +0200 Subject: [PATCH 766/956] ropsten testnet rpc --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 0a732a10e..0ecd4db7e 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -35,7 +35,7 @@ export enum TestNetRpcUri { ELROND = "https://devnet-gateway.elrond.com", HECO = "https://http-testnet.hecochain.com", BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", - ROPSTEN = "https://ethereum-goerli-rpc.allthatnode.com", + ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-mumbai.chainstacklabs.com", FANTOM = "https://rpc.testnet.fantom.network/", From 70983d8f55092aad1c4954d7004b8e4f0b023758 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 13 Nov 2022 10:25:01 +0200 Subject: [PATCH 767/956] adjust elrond type tokenId for sc-verify --- src/factory/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 492bbc94f..f15a156aa 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -780,7 +780,9 @@ export function ChainFactory( mintWith, toChain.getNonce(), fromChain.getNonce(), - tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined + tokenId && !isNaN(Number(tokenId)) + ? tokenId + : tokenId.match(/(?!-)[0-9]+$/gm)?.at(0) )) ? mintWith : getDefaultContract(nft, fromChain, toChain); From 2ac8865d0df566014b69944221a9b442ab06f00f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 13 Nov 2022 15:00:18 +0530 Subject: [PATCH 768/956] aptos: factory: use 0x prefix in bridge address --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 0ae66ca60..8603d268f 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -147,7 +147,7 @@ export namespace ChainFactoryConfigs { aptosParams: { rpcUrl: TestNetRpcUri.APTOS, bridge: - "7b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba", + "0x7b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba", xpnft: "XPNFT", notifier, feeMargin, From 25c049fb3107ab6b22c4fabb39dcfaa213766b5a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 13 Nov 2022 15:00:51 +0530 Subject: [PATCH 769/956] bsc: testnet: update rpc --- src/consts.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 0ecd4db7e..1cf44ba84 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -34,7 +34,7 @@ import { web3ERC20HelperFactory, Web3ERC20Params } from "./helpers/web3_erc20"; export enum TestNetRpcUri { ELROND = "https://devnet-gateway.elrond.com", HECO = "https://http-testnet.hecochain.com", - BSC = "https://data-seed-prebsc-1-s1.binance.org:8545", + BSC = "https://data-seed-prebsc-2-s3.binance.org:8545/", ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-mumbai.chainstacklabs.com", @@ -535,7 +535,7 @@ CHAIN_INFO.set(Chain.APTOS, { blockExplorerUrl: "https://explorer.aptoslabs.com/", constructor: aptosHelper, currency: SupportedCurrency.APTOS, - decimals: 1e18, + decimals: 1e6, name: "Aptos", nonce: Chain.APTOS, type: ChainType.APTOS, From 57b3e3b6e98c28eb61606a59a39373e126e44a92 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sun, 13 Nov 2022 15:01:10 +0530 Subject: [PATCH 770/956] docs: fix broken docs --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index f15a156aa..1b82249f4 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -172,7 +172,7 @@ export type ChainFactory = { ): Promise; /** * Lists all the NFTs on the chain owner by {@param owner}. - * @param chain: {@link NftUriChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. + * @param chain: Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. * @param owner: Address of the owner of the NFT as a raw string. */ nftList( From ed54ec17d24969178907c0bfb74a4655d4f30b97 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 13 Nov 2022 15:12:12 +0200 Subject: [PATCH 771/956] add algorand to staging --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 8603d268f..563f7844f 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -394,6 +394,17 @@ export namespace ChainFactoryConfigs { xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", feeMargin, }, + algorandParams: { + algodApiKey: + "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodUri: "https://algorand-node.xp.network/", + indexerUri: "https://algoindexer.algoexplorerapi.io", + nonce: Chain.ALGORAND, + sendNftAppId: 942656248, + algodPort: 443, + notifier, + feeMargin, + }, elrondParams: { node_uri: MainNetRpcUri.ELROND, minter_address: From a06ea583f1198eca0519feb86f118f65e7f962ce Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 13 Nov 2022 18:56:00 +0200 Subject: [PATCH 772/956] TON: TonKeeper encode body in url --- src/emitter.ts | 2 ++ src/helpers/ton.ts | 23 +++++++++++++++++------ src/index.ts | 1 + 3 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 src/emitter.ts diff --git a/src/emitter.ts b/src/emitter.ts new file mode 100644 index 000000000..908802616 --- /dev/null +++ b/src/emitter.ts @@ -0,0 +1,2 @@ +export const Emitter = + typeof window !== "undefined" ? new EventTarget() : undefined; diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index bfb599484..67730fa7c 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -21,6 +21,8 @@ import { PreTransfer } from ".."; import { BridgeContract } from "./ton-bridge"; +import { Emitter } from "../emitter"; + import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; import { fromUint8Array } from "js-base64"; import axios from "ton/node_modules/axios"; @@ -110,14 +112,22 @@ export async function tonHelper(args: TonParams): Promise { console.log(exBodyMsg, "TON:exBodyMsg"); let body: string = ""; - + let stop = false; + const setStop = () => { + Emitter?.removeEventListener("cancel tonKeeper", setStop); + return (stop = true); + }; const noTrx = setTimeout(() => { + stop = true; throw new Error("waitTonTrx timeout"); }, 60 * 1000 * 20); + Emitter?.addEventListener("cancel tonKeeper", setStop); + while (!body) { console.log("TON:tring to find the trx..."); await new Promise((r) => setTimeout(r, 10 * 1000)); + if (stop) return; //get last 20 trx of address const trxs = await ton.provider.getTransactions(address, 20); //find body of the trx @@ -202,7 +212,7 @@ export async function tonHelper(args: TonParams): Promise { console.log(txFeesFull.toString(10), "val"); console.log("TON:transferNftToForeign"); - console.log(rSigner); + console.log(nft.native.nftItemAddr); const res = (await rSigner.send("ton_sendTransaction", { value: txFeesFull.toString(10), to: nft.native.nftItemAddr, @@ -218,8 +228,6 @@ export async function tonHelper(args: TonParams): Promise { async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { const rSigner = signer.wallet || ton; - //const txFeesFull = TonWeb.utils.toNano("0.08"); - //random value between 0.08 and 0.09 with 8 digits after . const value = TonWeb.utils.toNano( (Math.random() * (0.09 - 0.08) + 0.08).toFixed(8) ); @@ -257,12 +265,15 @@ export async function tonHelper(args: TonParams): Promise { switch (method) { case "ton_sendTransaction": payload = fromUint8Array(await params!.data.toBoc(false)); - value = new BN(params!.value).toString(); + value = params!.value; return args.wallet.send( `https://app.tonkeeper.com/transfer/${ params!.to - }?amount=${value}&text=NFTSend&bin=${payload}` + }?amount=${new BN(value).toString(10)}&bin=${encodeURIComponent( + payload + )}` ); + default: return null; } diff --git a/src/index.ts b/src/index.ts index 02a257f9e..493bce929 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,6 +3,7 @@ export * from "./helpers/elrond"; export * from "./helpers/web3"; export * from "./helpers/tron"; export * from "./socket"; +export * from "./emitter"; export * from "./factory"; export * from "./consts"; export * from "./config"; From 4456ca11b8a4fc21f3f1e0d20a98eddd60d2a89a Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 13 Nov 2022 20:51:48 +0200 Subject: [PATCH 773/956] ALGO: fix is OptIN --- src/helpers/ton.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 67730fa7c..1ad3dc9b0 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -114,8 +114,9 @@ export async function tonHelper(args: TonParams): Promise { let body: string = ""; let stop = false; const setStop = () => { + stop = true; Emitter?.removeEventListener("cancel tonKeeper", setStop); - return (stop = true); + throw new Error("User has declined transaction"); }; const noTrx = setTimeout(() => { stop = true; From 7d3de7301738bce4020dba040b188214c6b602e0 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Nov 2022 13:42:08 +0530 Subject: [PATCH 774/956] Aptos: Fix Withdraw and Add Claim Method --- src/helpers/aptos/bridge_client.ts | 3 +-- src/helpers/aptos/index.ts | 24 +++++++++++++++++++++++- src/helpers/chain.ts | 4 ++++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/helpers/aptos/bridge_client.ts b/src/helpers/aptos/bridge_client.ts index 3cda9203c..3fac80a61 100644 --- a/src/helpers/aptos/bridge_client.ts +++ b/src/helpers/aptos/bridge_client.ts @@ -171,7 +171,7 @@ export class BridgeClient { async withdrawNft( account: AptosAccount, - bridgeAdmin: HexString, + _bridgeAdmin: HexString, collectionCreator: HexString, collectionName: string, tokenName: string, @@ -185,7 +185,6 @@ export class BridgeClient { `${this.getAddress()}::bridge::withdraw_nft`, [], [ - bridgeAdmin.toString(), collectionCreator.toString(), collectionName, tokenName, diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts index aec7ad1bc..294ec489c 100644 --- a/src/helpers/aptos/index.ts +++ b/src/helpers/aptos/index.ts @@ -1,5 +1,6 @@ import { ChainNonceGet, + ClaimNFT, EstimateTxFees, FeeMargins, GetFeeMargins, @@ -39,6 +40,14 @@ export type AptosMintArgs = { createCollection: boolean; }; +export type AptosClaimArgs = { + sender: HexString; + propertyVersion: number; + collectionName: string; + creator: string; + name: string; +}; + export type AptosHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & @@ -47,7 +56,8 @@ export type AptosHelper = ChainNonceGet & XpNft: string; } & GetFeeMargins & MintNft & - GetProvider; + GetProvider & + ClaimNFT; export type AptosParams = { feeMargin: FeeMargins; @@ -164,6 +174,18 @@ export async function aptosHelper({ return response; } }, + async claimNFT(signer, params) { + const tokenClient = new TokenClient(client); + const claim = await tokenClient.claimToken( + signer, + params.sender, + params.creator, + params.collectionName, + params.name, + params.propertyVersion + ); + return claim; + }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { const receipt = await bridgeClient.withdrawNft( sender, diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index d4ae84f27..2cc86b925 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -198,3 +198,7 @@ export interface FeeMargins { export interface GetFeeMargins { getFeeMargin(): FeeMargins; } + +export interface ClaimNFT { + claimNFT(signer: Signer, args: ClaimArgs): Promise; +} From d316ba3e0551acf57b32eb8ebcf7c218e906107c Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 14 Nov 2022 12:27:18 +0200 Subject: [PATCH 775/956] TON: add query param to tonKeeper deepLink, algo - fix optIn --- src/helpers/algorand.ts | 2 +- src/helpers/ton.ts | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index c71f38deb..b73b4aeb0 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -355,7 +355,7 @@ export function algorandHelper(args: AlgorandParams): AlgorandHelper { return new BigNumber(acc.amount); }, async preTransfer(sender, nft, fee) { - if (await isOptIn(appAddr, nft.native.nftId)) { + if (await isOptIn(sender.address, nft.native.nftId)) { return undefined; } diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 1ad3dc9b0..573603abe 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -113,9 +113,11 @@ export async function tonHelper(args: TonParams): Promise { let body: string = ""; let stop = false; + let fastResolve: any; const setStop = () => { stop = true; Emitter?.removeEventListener("cancel tonKeeper", setStop); + fastResolve(true); throw new Error("User has declined transaction"); }; const noTrx = setTimeout(() => { @@ -127,7 +129,10 @@ export async function tonHelper(args: TonParams): Promise { while (!body) { console.log("TON:tring to find the trx..."); - await new Promise((r) => setTimeout(r, 10 * 1000)); + await new Promise((r) => { + fastResolve = r; + setTimeout(r, 10 * 1000); + }); if (stop) return; //get last 20 trx of address const trxs = await ton.provider.getTransactions(address, 20); @@ -272,7 +277,7 @@ export async function tonHelper(args: TonParams): Promise { params!.to }?amount=${new BN(value).toString(10)}&bin=${encodeURIComponent( payload - )}` + )}&open=1` ); default: From 8483fee131c5f3608f8676d5fc44fd29c714a0b6 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 14 Nov 2022 22:42:29 +0530 Subject: [PATCH 776/956] Abeychain: Minting: Fix for broken Chain --- src/helpers/web3.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 887a61f9b..28df2c641 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -155,7 +155,8 @@ export type Web3Helper = BaseWeb3Helper & * @param provider An ethers.js provider object */ export async function baseWeb3HelperFactory( - provider: Provider + provider: Provider, + nonce: number ): Promise { const w3 = provider; @@ -183,8 +184,18 @@ export async function baseWeb3HelperFactory( { contract, uri }: MintArgs ): Promise { const erc721 = UserNftMinter__factory.connect(contract!, owner); - - const txm = await erc721.mint(uri, { gasLimit: 1000000 }); + const txm = await erc721 + .mint(uri, { gasLimit: 1000000 }) + .catch(async (e) => { + if (nonce === 33) { + let tx; + while (!tx) { + tx = await provider.getTransaction(e["returnedHash"]); + } + return tx; + } + throw e; + }); return txm; }, }; @@ -445,7 +456,7 @@ export async function web3HelperFactory( return receipt.hash; }; - const base = await baseWeb3HelperFactory(params.provider); + const base = await baseWeb3HelperFactory(params.provider, params.nonce); return { ...base, From 3721d6d956e3c8361647806ec0b69a99d360b2f8 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 15 Nov 2022 15:57:10 +0200 Subject: [PATCH 777/956] TON: exclude Ton transactions from checkNotOldWrappedNft calling --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 1b82249f4..69a834b37 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -736,7 +736,7 @@ export function ChainFactory( ) => { //@ts-ignore if (nft.native.contract) { - if (![9, 18, 24, 31].includes(fromChain.getNonce())) { + if (![9, 18, 24, 31, 27].includes(fromChain.getNonce())) { //@ts-ignore checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); } From 7ead5627a340c2e4af2ff40349d8423f062041d6 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 16 Nov 2022 12:45:28 +0200 Subject: [PATCH 778/956] TON: increase fees unfreeze --- src/helpers/ton.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 573603abe..08d68ccae 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -234,8 +234,8 @@ export async function tonHelper(args: TonParams): Promise { async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { const rSigner = signer.wallet || ton; - const value = TonWeb.utils.toNano( - (Math.random() * (0.09 - 0.08) + 0.08).toFixed(8) + const value = new BN(_txFees.toString(10)).add( + TonWeb.utils.toNano((Math.random() * 0.01).toFixed(7)) ); const nftFee = TonWeb.utils.toNano("0.05"); From 2be51e4ab09141e526ac9f9f742fc1419a6b032e Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 16 Nov 2022 14:58:10 +0200 Subject: [PATCH 779/956] Secret: gasLimit increase for all trxs --- src/helpers/secret.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 3c083f7f3..d977db12a 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -149,7 +149,7 @@ export async function secretHelperFactory( }, { waitForCommit: true, - gasLimit: 100_000, + gasLimit: 250_000, } ); return res.transactionHash; @@ -191,7 +191,7 @@ export async function secretHelperFactory( }, { waitForCommit: true, - gasLimit: 50_000, + gasLimit: 500_000, } ); return tx; @@ -276,7 +276,7 @@ export async function secretHelperFactory( }, { waitForCommit: true, - gasLimit: 130000, + gasLimit: 500_000, } ); return tx; @@ -310,7 +310,7 @@ export async function secretHelperFactory( }, ], }, - { waitForCommit: true, gasLimit: 150_000 } + { waitForCommit: true, gasLimit: 500_000 } ); await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); @@ -339,7 +339,7 @@ export async function secretHelperFactory( }, ], }, - { waitForCommit: true, gasLimit: 100_000 } + { waitForCommit: true, gasLimit: 500_000 } ); await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); From a390fa095560670f0c22fb5d65f5b576b1d81719 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 17 Nov 2022 15:18:12 +0530 Subject: [PATCH 780/956] factories: testnet: ton: update contracts --- src/consts.ts | 2 +- src/factory/factories.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 1cf44ba84..e7c9422d6 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -34,7 +34,7 @@ import { web3ERC20HelperFactory, Web3ERC20Params } from "./helpers/web3_erc20"; export enum TestNetRpcUri { ELROND = "https://devnet-gateway.elrond.com", HECO = "https://http-testnet.hecochain.com", - BSC = "https://data-seed-prebsc-2-s3.binance.org:8545/", + BSC = "https://data-seed-prebsc-2-s1.binance.org:8545/", ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-mumbai.chainstacklabs.com", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 563f7844f..16c7069c1 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -68,9 +68,9 @@ export namespace ChainFactoryConfigs { "9e899d38874458e92addb70d6f336ccbe51e21e378af5797486ba9a9d1a3c5c3", }) ), - bridgeAddr: "kQB2Z2E1hONMjdPeT_TR9Z_er9BSYlLJ2b19WQCFZRm9EkdH", - burnerAddr: "kQDsnLX5GSPtnP4rmqcyQOk2oo9lRPZlT3DunnO6OLITQSVl", - xpnftAddr: "EQDxXt6uNCbuqHY5Kmccwj9qflFzUbkiHtS3IFAbcqxpH0XM", + bridgeAddr: "kQBkHF-IJdA_sDahXsFRAKBVyVYqdSGcCA_4MchBcvF2H4Oc", + burnerAddr: "kQD81vKt4GUHXQSRcyg5nduIypV6m9v5nHhs1L13er_L_bS8", + xpnftAddr: "EQCI--6AAwsa9jHj8amnFiycDOsuQZiZP0Rp5QVFwaeqUKeZ", feeMargin, notifier, }, From 0e3712ce3849838eebefc397e555325da3f8a7a7 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 17 Nov 2022 15:52:55 +0200 Subject: [PATCH 781/956] add prepareTokenId function for sc-verify --- src/factory/cons.ts | 18 ++++++++++++++++++ src/factory/index.ts | 11 +++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index d3c83eccd..a918664a4 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -86,3 +86,21 @@ export function getDefaultContract( return contract; } + +export function prepareTokenId(tokenId: string | undefined, from: number) { + if (tokenId) { + const notNumber = isNaN(Number(tokenId)); + + if (notNumber) { + if (from === Chain.ELROND) { + return tokenId.match(/(?!-)[0-9]+$/gm)?.at(0); + } + + if (from === Chain.TON) { + return "1"; + } + } else { + return tokenId; + } + } +} diff --git a/src/factory/index.ts b/src/factory/index.ts index 69a834b37..5f30d2d1b 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -21,7 +21,12 @@ import { import BigNumber from "bignumber.js"; import axios from "axios"; -import { _headers, exchangeRateRepo, getDefaultContract } from "./cons"; +import { + _headers, + exchangeRateRepo, + getDefaultContract, + prepareTokenId, +} from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { bridgeHeartbeat } from "../heartbeat"; import { ethers, utils } from "ethers"; @@ -780,9 +785,7 @@ export function ChainFactory( mintWith, toChain.getNonce(), fromChain.getNonce(), - tokenId && !isNaN(Number(tokenId)) - ? tokenId - : tokenId.match(/(?!-)[0-9]+$/gm)?.at(0) + prepareTokenId(tokenId, fromChain.getNonce()) )) ? mintWith : getDefaultContract(nft, fromChain, toChain); From e7c259cd580e036fa109bbf09f0b2c4524febfc1 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 17 Nov 2022 15:58:28 +0200 Subject: [PATCH 782/956] fix typo --- src/factory/cons.ts | 1 + src/factory/index.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index a918664a4..b4135d2ef 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -103,4 +103,5 @@ export function prepareTokenId(tokenId: string | undefined, from: number) { return tokenId; } } + return undefined; } diff --git a/src/factory/index.ts b/src/factory/index.ts index 5f30d2d1b..e76ffe808 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -571,7 +571,7 @@ export function ChainFactory( sc: from, chain: tc, fromChain: fc, - tokenId, + tokenId: tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined, }, { headers: _headers, From 9d63c08ff0d61931680ce1fccbbf6e9d7678e0f3 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 20 Nov 2022 10:22:55 +0200 Subject: [PATCH 783/956] elrond case for sc-verify --- src/factory/cons.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index b4135d2ef..a98b18807 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -93,7 +93,8 @@ export function prepareTokenId(tokenId: string | undefined, from: number) { if (notNumber) { if (from === Chain.ELROND) { - return tokenId.match(/(?!-)[0-9]+$/gm)?.at(0); + const hex = tokenId.split("-")?.at(2); + return String(hex ? parseInt(hex, 16) : ""); } if (from === Chain.TON) { From 86b728469161afb218159b7c19c878c0f8b27afa Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Mon, 21 Nov 2022 13:16:37 +0200 Subject: [PATCH 784/956] add TON --- README.md | 79 +++++++++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 58 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 4232aeee8..6f3a7f91b 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,9 @@ const signer = new Wallet( | DFinity | dfinityParams | 28 | | Hedera | hederaParams | 29 | | Skale | skaleParams | 30 | +| NEAR | nearParams | 31 | +| Moonbeam | moonbeamParams | 32 | +| Abeychain | abeychainParams | 33 |
@@ -216,6 +219,35 @@ import { TempleWallet } from "@temple-wallet/dapp"; })(); ``` +### 3.7 Example signer object for TON + +```ts +import { config } from "dotenv"; +config(); +import { + AppConfigs, + Chain, + ChainFactory, + ChainFactoryConfigs, +} from "xp.network"; + +import { mnemonicToKeyPair } from "tonweb-mnemonic"; + +(async () => { + const factory = ChainFactory( + AppConfigs.TestNet(), + await ChainFactoryConfigs.TestNet() + ); + + const ton = await factory.inner(Chain.TON); + + const tonSigner = ton.tonKpWrapper( + // where TON_MNEMONIC="space separated mnemonic phrase ..." + await mnemonicToKeyPair(process.env.TON_MNEMONIC!.split()) + ); +})(); +``` +
For the ways of connecting the wallets in the FE check-out our [bridge repository](https://github.com/xp-network/bridge-interface/blob/components-reorder/src/components/ConnectWallet.jsx) @@ -243,6 +275,8 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor const vechain = await factory.inner(Chain.VECHAIN); // 25 const hedera = await factory.inner(Chain.HEDERA); // 29 const skale = await factory.inner(Chain.SKALE); // 30 + const moonbeam = await factory.inner(Chain.MOONBEAM); // 32 + const abeychain = await factory.inner(Chain.ABEYCHAIN); // 33 // Non-EVM chains: // Inner Object ====================================== Chain Nonce @@ -253,6 +287,7 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor const solana = await factory.inner(Chain.SOLANA); // 26 const ton = await factory.inner(Chain.TON); // 27 const dfinity = await factory.inner(Chain.DFINITY); // 28 + const near = await factory.inner(Chain.NEAR); // 31 })(); ``` @@ -292,7 +327,13 @@ This operation does not depend on a wallet since reading operations are free and // Tezos: const tezosNfts = await factory.nftList( tezos, // Tezos chain internal object - "tz1..." // The public key of the NFT owner in Tezos + "EQB..." // The public key of the NFT owner in Tezos + ); + + // TON: + const tonNfts = await factory.nftList( + ton, // TON chain internal object + "tz1..." // The public key of the NFT owner in TON ); })(); ``` @@ -388,6 +429,9 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); tezosSigner ); console.log("Is Approved in Tezos:", isApprovedTezos); + + // TON + // Approval is not required in TON... })(); ``` @@ -441,11 +485,21 @@ console.log("Tezos Selected NFT: ", tezosChosenOne); const tezosResult = await factory.transferNft( tezos, // The Source Chain. velas, // The Destination Chain. - algoChosenOne, // Or the NFT object you have chosen from the list. - algorandSigner, // The Tron signer object (see p. 3.5 above). + tezosChosenOne, // Or the NFT object you have chosen from the list. + tezosrandSigner, // The Tron signer object (see p. 3.5 above). "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); console.log(tezosResult); + + // TON example: + const tonResult = await factory.transferNft( + ton, // The Source Chain. + abeychain, // The Destination Chain. + tonChosenOne, // Or the NFT object you have chosen from the list. + tonSigner, // The Tron signer object (see p. 3.5 above). + "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. + ); + console.log(tonResult); })(); ``` @@ -562,22 +616,3 @@ P.S. The library is a work in progress. More features will be added soon. console.log(`The estimated fee on Tezos is: ${feeEstimation} Algos`); })(); ``` - -
- -##
Troubleshooting

- -- In case you're using the library in a console application and getting errors, go to: -- node_modules/xpnet-nft-list/dist/nft-list/model/moralis/MoralisNftListService.js - -Now your line #7 looks like this (to be used in the FE): - -```javascript -7 const moralis_1 = __importDefault(require("moralis")); -``` - -Change it like so (for BE usage): - -```javascript -7 const moralis_1 = __importDefault(require("moralis/node")); -``` diff --git a/package.json b/package.json index ad3b1f36e..504d7b318 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "4.0.0", + "version": "4.0.1", "author": "xp-network ", "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", From 9f4e6762ee93da42259e705c218285a4cddd31c9 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 21 Nov 2022 16:59:47 +0530 Subject: [PATCH 785/956] Handlers: Prepare Solana For testing --- src/consts.ts | 1 + src/factory/factories.ts | 15 +++++++++++---- src/factory/index.ts | 3 +++ src/helpers/solana.ts | 36 +++++++++++++++++++++--------------- 4 files changed, 36 insertions(+), 19 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index e7c9422d6..b70d2a4cc 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -59,6 +59,7 @@ export enum TestNetRpcUri { ABEYCHAIN = "https://testrpc.abeychain.com", APTOS = "https://fullnode.devnet.aptoslabs.com", TON = "https://testnet.toncenter.com/api/v2/jsonRPC", + SOLANA = "https://api.devnet.solana.com", // TODO: Algorand // TODO: Fuse } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 16c7069c1..4c0ac685b 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -65,15 +65,22 @@ export namespace ChainFactoryConfigs { tonweb: new TonWeb( new TonWeb.HttpProvider(TestNetRpcUri.TON, { apiKey: - "9e899d38874458e92addb70d6f336ccbe51e21e378af5797486ba9a9d1a3c5c3", + "abe8c1222f19b0891a9a35889d112dc88562093467db8dda39961eeacd50f9b1", }) ), - bridgeAddr: "kQBkHF-IJdA_sDahXsFRAKBVyVYqdSGcCA_4MchBcvF2H4Oc", - burnerAddr: "kQD81vKt4GUHXQSRcyg5nduIypV6m9v5nHhs1L13er_L_bS8", - xpnftAddr: "EQCI--6AAwsa9jHj8amnFiycDOsuQZiZP0Rp5QVFwaeqUKeZ", + bridgeAddr: "kQBwUu-b4O6qDYq3iDRvsYUnTD6l3WCxLXkv0aH6ywAaPs3c", + burnerAddr: "kQCbH9gGgqJzXuusUVajW_40brrl2fxTYqMkk6HUhJnIgOQA", + xpnftAddr: "EQDji0YH-SNT-qi6o5dQQBLeWL0Xmm46fnqj34EYhOL34WDc", feeMargin, notifier, }, + solanaParams: { + xpnftAddr: "5BMdpupRZAXab6rDjLcpPaCbfodq8toDutsqCvyetGcc", + bridgeContractAddr: "xpnetjVorSiEJ843gKhVJsm2XnQhQMFkPdAiHisw619", + endpoint: TestNetRpcUri.SOLANA, + notifier, + feeMargin, + }, vechainParams: { notifier, feeMargin, diff --git a/src/factory/index.ts b/src/factory/index.ts index e76ffe808..d490f492d 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -70,6 +70,7 @@ import { } from "../helpers/hedera/hts_abi"; import { AptosParams } from "../helpers/aptos"; import { Web3ERC20Params } from "../helpers/web3_erc20"; +import { SolanaParams } from "../helpers/solana"; export type FullChain = TransferNftForeign< Signer, @@ -300,6 +301,7 @@ export interface ChainParams { abeyChainParams: Web3Params; tonParams: TonParams; aptosParams: AptosParams; + solanaParams: SolanaParams; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -356,6 +358,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.ABEYCHAIN, chainParams.abeyChainParams); cToP.set(Chain.TON, chainParams.tonParams); cToP.set(Chain.APTOS, chainParams.aptosParams); + cToP.set(Chain.SOLANA, chainParams.solanaParams); return cToP; } /** diff --git a/src/helpers/solana.ts b/src/helpers/solana.ts index 15556221f..41be4a157 100644 --- a/src/helpers/solana.ts +++ b/src/helpers/solana.ts @@ -1,9 +1,4 @@ -import { - AnchorProvider, - BN, - Program, - setProvider, -} from "@project-serum/anchor"; +import { AnchorProvider, BN, Program } from "@project-serum/anchor"; import { Account, createAssociatedTokenAccountInstruction, @@ -22,6 +17,8 @@ import { EvNotifier } from "../notifier"; import { ChainNonceGet, EstimateTxFees, + FeeMargins, + GetFeeMargins, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -40,13 +37,14 @@ export type SolanaHelper = ChainNonceGet & EstimateTxFees & ValidateAddress & { connection: Connection; - }; + } & { XpNft: string } & GetFeeMargins; export type SolanaParams = { endpoint: string; bridgeContractAddr: string; xpnftAddr: string; notifier: EvNotifier; + feeMargin: FeeMargins; }; // Based on https://github.com/solana-labs/solana-program-library/blob/118bd047aa0f1ba1930b5bc4639d40aa2a375ccb/token/js/src/actions/getOrCreateAssociatedTokenAccount.ts @@ -108,18 +106,18 @@ async function getOrCreateAssociatedTokenAccount( export async function solanaHelper(args: SolanaParams): Promise { const conn = new Connection(args.endpoint); - const bridgeContract = new Program(BridgeIdl, args.bridgeContractAddr); - - const [bridge] = await PublicKey.findProgramAddress( - [Buffer.from("bridge")], - bridgeContract.programId - ); return { + XpNft: args.xpnftAddr, connection: conn, getNonce: () => Chain.SOLANA, async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { - setProvider(sender); + const bridgeContract = new Program(BridgeIdl, args.bridgeContractAddr); + + const [bridge] = await PublicKey.findProgramAddress( + [Buffer.from("bridge")], + bridgeContract.programId + ); const mintAddr = new PublicKey(id.native.nftMint); const fromTokenAcc = await getOrCreateAssociatedTokenAccount( @@ -150,8 +148,16 @@ export async function solanaHelper(args: SolanaParams): Promise { return tx; }, + getFeeMargin() { + return args.feeMargin; + }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - setProvider(sender); + const bridgeContract = new Program(BridgeIdl, args.bridgeContractAddr); + + const [bridge] = await PublicKey.findProgramAddress( + [Buffer.from("bridge")], + bridgeContract.programId + ); const mintAddr = new PublicKey(id.native.nftMint); From 6d23b7aa717cb9f103a324f124963d6b708628c2 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 21 Nov 2022 19:00:36 +0200 Subject: [PATCH 786/956] NEAR: add methods for wallet connect, mintNFt using pkey --- src/factory/factories.ts | 4 +++ src/helpers/near.ts | 77 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 79 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 4c0ac685b..c6664d549 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -377,6 +377,8 @@ export namespace ChainFactoryConfigs { rpcUrl: TestNetRpcUri.NEAR, bridge: "xp_bridge_1.testnet", xpnft: "xp_nft_1.testnet", + walletUrl: "https://wallet.testnet.near.org", + helperUrl: "https://helper.testnet.near.org", feeMargin, notifier, }, @@ -812,6 +814,8 @@ export namespace ChainFactoryConfigs { xpnft: "", feeMargin, notifier, + walletUrl: "https://wallet.mainnet.near.org", + helperUrl: "https://helper.mainnet.near.org", }, }; }; diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 240242f2d..6a8c624b1 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -1,7 +1,19 @@ +import { Balance } from "@elrondnetwork/erdjs/out"; import BigNumber from "bignumber.js"; import BN from "bn.js"; -import { Account, connect, DEFAULT_FUNCTION_CALL_GAS, Near } from "near-api-js"; +import { + Account, + connect, + DEFAULT_FUNCTION_CALL_GAS, + Near, + keyStores, + WalletConnection, + Contract, + KeyPair, + InMemorySigner, +} from "near-api-js"; + import { FinalExecutionOutcome, getTransactionLastResult, @@ -20,6 +32,7 @@ import { TransferNftForeign, UnfreezeForeignNft, ValidateAddress, + BalanceCheck, } from "./chain"; type NearTxResult = [FinalExecutionOutcome, any]; @@ -32,6 +45,8 @@ export type NearParams = { readonly xpnft: string; readonly feeMargin: FeeMargins; readonly notifier: EvNotifier; + readonly walletUrl: string; + readonly helperUrl: string; }; export type NearNFT = { tokenId: string; @@ -59,7 +74,14 @@ export interface NearMintArgs { metadata: Metadata; } +interface BrowserMethods { + connectWallet(): Promise; + getContract(signer: Account, _contract: string): Promise; + getUserMinter(keypair: string, address: string): Promise; +} + export type NearHelper = ChainNonceGet & + BalanceCheck & TransferNftForeign & UnfreezeForeignNft & MintNft & @@ -69,7 +91,9 @@ export type NearHelper = ChainNonceGet & XpNft: string; nftList(owner: Account, contract: string): Promise[]>; } & GetFeeMargins & - GetProvider; + GetProvider & + BrowserMethods; + export async function nearHelperFactory({ networkId, bridge, @@ -77,6 +101,8 @@ export async function nearHelperFactory({ xpnft, feeMargin, notifier, + walletUrl, + helperUrl, }: NearParams): Promise { const near = await connect({ nodeUrl: rpcUrl, @@ -112,6 +138,12 @@ export async function nearHelperFactory({ getNonce() { return Chain.NEAR; }, + async balance(address: string) { + const res = ( + await new Account(near.connection, address).getAccountBalance() + ).available; + return new BigNumber(res); + }, async mintNft(owner, options) { const result = await owner.functionCall({ contractId: options.contract, @@ -148,6 +180,7 @@ export async function nearHelperFactory({ if (await isApproved(sender, nft)) { return undefined; } + const result = await sender .functionCall({ contractId: nft.native.contract, @@ -222,5 +255,45 @@ export async function nearHelperFactory({ return false; } }, + + async connectWallet() { + if (typeof window === "undefined") { + throw new Error("Browser method only"); + } + const nearConnection = await connect({ + networkId, + nodeUrl: rpcUrl, + keyStore: new keyStores.BrowserLocalStorageKeyStore(), + headers: {}, + walletUrl, + helperUrl, + }); + const wc = new WalletConnection(nearConnection, ""); + return wc; + }, + + async getContract(signer: Account, _contract: string) { + return new Contract(signer, _contract, { + viewMethods: [], + changeMethods: ["nft_mint"], + }); + }, + + async getUserMinter(keypair: string, address: string) { + const keyStore = new keyStores.InMemoryKeyStore(); + const keyPair = KeyPair.fromString(keypair); + keyStore.setKey(networkId, address, keyPair); + + const signer = new InMemorySigner(keyStore); + + const provider = await connect({ + headers: {}, + nodeUrl: rpcUrl, + networkId, + signer, + }); + + return provider; + }, }; } From 67697c3142517f54274720ba3adb14c2e901f0e5 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 21 Nov 2022 19:12:46 +0200 Subject: [PATCH 787/956] NEAR: Remove bad import --- src/helpers/near.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 6a8c624b1..bb7766d3f 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -1,4 +1,3 @@ -import { Balance } from "@elrondnetwork/erdjs/out"; import BigNumber from "bignumber.js"; import BN from "bn.js"; From d7c78908b22fbc9275fb845ab4653a6c6fcd7ffe Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 22 Nov 2022 11:30:11 +0200 Subject: [PATCH 788/956] decrease feeProfit by 50% --- src/factory/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d490f492d..a098d18ba 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -428,7 +428,7 @@ export function ChainFactory( return feeR .times(toExRate / fromExRate) - .plus(feeProfit) + .plus(feeProfit * 0.5) .times(CHAIN_INFO.get(fromChain)!.decimals) .integerValue(BigNumber.ROUND_CEIL); } From 0db5a67a4d9596861e41881cefd3d8dba3bf8e0c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 22 Nov 2022 16:37:43 +0530 Subject: [PATCH 789/956] Aptos: Move to Testnet from Devnet --- src/consts.ts | 2 +- src/factory/factories.ts | 4 ++-- src/helpers/aptos/bridge_client.ts | 6 +++--- src/helpers/aptos/bridge_client_abis.ts | 20 ++++++++++---------- src/helpers/aptos/index.ts | 2 +- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index b70d2a4cc..13aa1dcff 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -57,7 +57,7 @@ export enum TestNetRpcUri { NEAR = "https://rpc.testnet.near.org", MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", ABEYCHAIN = "https://testrpc.abeychain.com", - APTOS = "https://fullnode.devnet.aptoslabs.com", + APTOS = "https://fullnode.testnet.aptoslabs.com", TON = "https://testnet.toncenter.com/api/v2/jsonRPC", SOLANA = "https://api.devnet.solana.com", // TODO: Algorand diff --git a/src/factory/factories.ts b/src/factory/factories.ts index c6664d549..a59eb1956 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -154,12 +154,12 @@ export namespace ChainFactoryConfigs { aptosParams: { rpcUrl: TestNetRpcUri.APTOS, bridge: - "0x7b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba", + "0x467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18", xpnft: "XPNFT", notifier, feeMargin, nonce: Chain.APTOS, - network: "devnet", + network: "testnet", }, abeyChainParams: { nonce: Chain.ABEYCHAIN, diff --git a/src/helpers/aptos/bridge_client.ts b/src/helpers/aptos/bridge_client.ts index 3fac80a61..eb4e2a6be 100644 --- a/src/helpers/aptos/bridge_client.ts +++ b/src/helpers/aptos/bridge_client.ts @@ -5,7 +5,7 @@ import { MaybeHexString, TransactionBuilderABI, } from "aptos"; -import { BRIDGE_ABIS, DEVNET_BRIDGE_ABIS } from "./bridge_client_abis"; +import { BRIDGE_ABIS, TESTNET_BRIDGE_ABIS } from "./bridge_client_abis"; interface BridgeData { action_cnt: string; @@ -33,11 +33,11 @@ export class BridgeClient { constructor( aptosClient: AptosClient, address: string, - network: "mainnet" | "devnet" + network: "mainnet" | "testnet" ) { this.aptosClient = aptosClient; this.transactionBuilder = new TransactionBuilderABI( - (network === "mainnet" ? BRIDGE_ABIS : DEVNET_BRIDGE_ABIS).map((abi) => + (network === "mainnet" ? BRIDGE_ABIS : TESTNET_BRIDGE_ABIS).map((abi) => new HexString(abi).toUint8Array() ) ); diff --git a/src/helpers/aptos/bridge_client_abis.ts b/src/helpers/aptos/bridge_client_abis.ts index 0f0d7c463..c895823bb 100644 --- a/src/helpers/aptos/bridge_client_abis.ts +++ b/src/helpers/aptos/bridge_client_abis.ts @@ -25,14 +25,14 @@ export const BRIDGE_ABIS = [ "011576616c69646174655f756e667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", ]; -export const DEVNET_BRIDGE_ABIS = [ - "010a696e697469616c697a657b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba066272696467650000010967726f75705f6b65790601", - "010570617573657b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000209616374696f6e5f696403097369676e61747572650601", - "0107756e70617573657b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000209616374696f6e5f696403097369676e61747572650601", - "01107570646174655f67726f75705f6b65797b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - "011676616c69646174655f77697468647261775f666565737b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - "011576616c69646174655f7472616e736665725f6e66747b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", - "010c77697468647261775f6e66747b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "010a667265657a655f6e66747b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "011576616c69646174655f756e667265657a655f6e66747b30a9bd0407ec73cf1f089411fbb57a9517f0bff4a78da954c063481a4e14ba0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +export const TESTNET_BRIDGE_ABIS = [ + "010a696e697469616c697a65467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000010967726f75705f6b65790601", + "01057061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", + "0107756e7061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b6579467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f66656573467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + "010c77697468647261775f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010a667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011576616c69646174655f756e667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", ]; diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts index 294ec489c..592b6b3c9 100644 --- a/src/helpers/aptos/index.ts +++ b/src/helpers/aptos/index.ts @@ -65,7 +65,7 @@ export type AptosParams = { xpnft: string; bridge: string; notifier: EvNotifier; - network: "mainnet" | "devnet"; + network: "mainnet" | "testnet"; }; export async function aptosHelper({ From db07bc4f15388504096b8bdb140a8232e88a899d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 22 Nov 2022 19:10:58 +0530 Subject: [PATCH 790/956] ChainFactories: Provide Convenience Functions for Different Networks --- src/config.ts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index e8ca17542..c0cffcc0a 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,4 +1,4 @@ -import { AppConfig } from "."; +import { AppConfig, ChainFactory, ChainFactoryConfigs } from "."; export namespace AppConfigs { export const MainNet: () => AppConfig = () => { @@ -45,3 +45,25 @@ export namespace AppConfigs { }; }; } + +export namespace ChainFactories { + export const MainNet = async () => { + return ChainFactory( + AppConfigs.MainNet(), + await ChainFactoryConfigs.MainNet() + ); + }; + + export const TestNet = async () => { + return ChainFactory( + AppConfigs.TestNet(), + await ChainFactoryConfigs.TestNet() + ); + }; + export const Staging = async () => { + return ChainFactory( + AppConfigs.Staging(), + await ChainFactoryConfigs.Staging() + ); + }; +} From fbd8b20db833c093aaf32586174ea9e98e425e4a Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Wed, 23 Nov 2022 10:30:19 +0200 Subject: [PATCH 791/956] update testnet vechain params --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index a59eb1956..2ee4c607a 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -86,11 +86,11 @@ export namespace ChainFactoryConfigs { feeMargin, nonce: Chain.VECHAIN, provider, - minter_addr: "0x4096e08C5d6270c8cd873daDbEAB575670aad8Bc", - erc721_addr: "0x39737B28d02d170Cb7a6141BA55F039104b3Fce9", - erc1155_addr: "0x9Db78e8750de28B0f08F866d6a54FAd34FF19da6", - erc721Minter: "0x38d2A286BF1d7567129506527B7ced29bb42772b", - erc1155Minter: "0x9Db78e8750de28B0f08F866d6a54FAd34FF19da6", + minter_addr: "0xd9145CCE52D386f254917e481eB44e9943F39138", + erc721_addr: "0xD7ACd2a9FD159E69Bb102A1ca21C9a3e3A5F771B", + erc1155_addr: "0xf8e81D47203A594245E36C48e151709F0C19fBe8", + erc721Minter: "0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47", + erc1155Minter: "0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8", }, tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), From 8af301b2c82b009781e9d40db1d3e1921502c650 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 23 Nov 2022 17:49:34 +0530 Subject: [PATCH 792/956] Aptos: Add Staging ABIs --- src/consts.ts | 2 +- src/factory/factories.ts | 4 ++-- src/helpers/aptos/bridge_client.ts | 26 ++++++++++++++++++++----- src/helpers/aptos/bridge_client_abis.ts | 16 ++++++++++++++- src/helpers/aptos/index.ts | 2 +- 5 files changed, 40 insertions(+), 10 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 13aa1dcff..ad2a825ff 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -34,7 +34,7 @@ import { web3ERC20HelperFactory, Web3ERC20Params } from "./helpers/web3_erc20"; export enum TestNetRpcUri { ELROND = "https://devnet-gateway.elrond.com", HECO = "https://http-testnet.hecochain.com", - BSC = "https://data-seed-prebsc-2-s1.binance.org:8545/", + BSC = "https://data-seed-prebsc-2-s2.binance.org:8545/", ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-mumbai.chainstacklabs.com", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 2ee4c607a..04ee9cb24 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -482,12 +482,12 @@ export namespace ChainFactoryConfigs { aptosParams: { rpcUrl: MainNetRpcUri.APTOS, bridge: - "0xf1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d", + "0x813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37", xpnft: "XPNFT", notifier, feeMargin, nonce: Chain.APTOS, - network: "mainnet", + network: "staging", }, }; }; diff --git a/src/helpers/aptos/bridge_client.ts b/src/helpers/aptos/bridge_client.ts index eb4e2a6be..68665086b 100644 --- a/src/helpers/aptos/bridge_client.ts +++ b/src/helpers/aptos/bridge_client.ts @@ -5,7 +5,11 @@ import { MaybeHexString, TransactionBuilderABI, } from "aptos"; -import { BRIDGE_ABIS, TESTNET_BRIDGE_ABIS } from "./bridge_client_abis"; +import { + MAINNET_BRIDGE_ABIS, + STAGING_BRIDGE_ABIS, + TESTNET_BRIDGE_ABIS, +} from "./bridge_client_abis"; interface BridgeData { action_cnt: string; @@ -33,13 +37,25 @@ export class BridgeClient { constructor( aptosClient: AptosClient, address: string, - network: "mainnet" | "testnet" + network: "mainnet" | "staging" | "testnet" ) { this.aptosClient = aptosClient; + let abi; + switch (network) { + case "mainnet": + abi = MAINNET_BRIDGE_ABIS; + break; + case "staging": + abi = STAGING_BRIDGE_ABIS; + break; + case "testnet": + abi = TESTNET_BRIDGE_ABIS; + break; + default: + throw new Error("Invalid network"); + } this.transactionBuilder = new TransactionBuilderABI( - (network === "mainnet" ? BRIDGE_ABIS : TESTNET_BRIDGE_ABIS).map((abi) => - new HexString(abi).toUint8Array() - ) + abi.map((abi) => new HexString(abi).toUint8Array()) ); this.address = address; } diff --git a/src/helpers/aptos/bridge_client_abis.ts b/src/helpers/aptos/bridge_client_abis.ts index c895823bb..35c2f05bd 100644 --- a/src/helpers/aptos/bridge_client_abis.ts +++ b/src/helpers/aptos/bridge_client_abis.ts @@ -1,4 +1,4 @@ -export const BRIDGE_ABIS = [ +export const MAINNET_BRIDGE_ABIS = [ // ../build/aptos-bridge/abis/bridge/initialize.abi "010a696e697469616c697a65f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000010967726f75705f6b65790601", // ../build/aptos-bridge/abis/bridge/pause.abi @@ -36,3 +36,17 @@ export const TESTNET_BRIDGE_ABIS = [ "010a667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", "011576616c69646174655f756e667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", ]; + +export const STAGING_BRIDGE_ABIS = [ + "010a696e697469616c697a65813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000010967726f75705f6b65790601", + "01057061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", + "0107756e7061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b6579813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f77686974656c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f626c61636b6c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f66656573813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + "010c77697468647261775f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010a667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011576616c69646174655f756e667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts index 592b6b3c9..4022065b3 100644 --- a/src/helpers/aptos/index.ts +++ b/src/helpers/aptos/index.ts @@ -65,7 +65,7 @@ export type AptosParams = { xpnft: string; bridge: string; notifier: EvNotifier; - network: "mainnet" | "testnet"; + network: "mainnet" | "staging" | "testnet"; }; export async function aptosHelper({ From 644b382ef8ab710f481e179751be838b918d07d3 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 24 Nov 2022 14:02:04 +0530 Subject: [PATCH 793/956] Factories: Skale: Staging Setup --- src/factory/factories.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 04ee9cb24..0b25f7a6e 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -479,6 +479,18 @@ export namespace ChainFactoryConfigs { nonce: Chain.POLYGON, feeMargin, }, + skaleParams: { + notifier, + feeMargin, + nonce: Chain.SKALE, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.SKALE), + erc721Minter: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + erc1155Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + erc1155_addr: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", + erc721_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + minter_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", + paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token + }, aptosParams: { rpcUrl: MainNetRpcUri.APTOS, bridge: From 1ecfa153efea095eb08c2602587af612009a2160 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 25 Nov 2022 14:07:11 +0530 Subject: [PATCH 794/956] Handler: Near: Use ViewFunction for nft_is_approved --- src/helpers/near.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/helpers/near.ts b/src/helpers/near.ts index bb7766d3f..df267fd02 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -114,7 +114,7 @@ export async function nearHelperFactory({ nft: NftInfo ): Promise => { const { tokenId: token_id, contract } = nft.native; - const result = await account.functionCall({ + const result: boolean = await account.viewFunction({ args: { token_id, approved_account_id: bridge, @@ -123,8 +123,8 @@ export async function nearHelperFactory({ contractId: contract, methodName: "nft_is_approved", }); - const res = getTransactionLastResult(result) as boolean; - return res; + console.log(`Is approved: ${result}`); + return result; }; return { From 958032113f65e9591f720fae4bbf9558b3f58158 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 27 Nov 2022 20:41:43 +0200 Subject: [PATCH 795/956] add bsc staging --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 0b25f7a6e..87d6663b2 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -426,6 +426,17 @@ export namespace ChainFactoryConfigs { nonce: Chain.ELROND, feeMargin, }, + bscParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), + erc721Minter: "0x38AEDf581C90D8EA955FC9a124b0A2B4471A61DD", + erc1155_addr: "0x254f8fd82CAB39f016956428e7cA406e091D61af", + erc1155Minter: "0xAE078f8BC8Dc1B5E312F8F4f85eCdBfCD889eFc4", + erc721_addr: "0x22f27EE5C19491AdaE7cFDd9ac69f90289Fac855", + minter_addr: "0x6b3b43029dD4695f8780d7f16E0313dA02d9507B", + nonce: Chain.BSC, + feeMargin, + }, secretParams: { bridge: { contractAddress: "secret1t0g8tvc0tyvpwdsdc5zepa9j2ptr3vfte26qhu", From ce79cec9dc0a64cb8be0e951b4de45ed7f23f470 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 28 Nov 2022 13:11:27 +0530 Subject: [PATCH 796/956] Factories: Solana: Update Contracts --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 87d6663b2..30f9758d4 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -75,8 +75,8 @@ export namespace ChainFactoryConfigs { notifier, }, solanaParams: { - xpnftAddr: "5BMdpupRZAXab6rDjLcpPaCbfodq8toDutsqCvyetGcc", - bridgeContractAddr: "xpnetjVorSiEJ843gKhVJsm2XnQhQMFkPdAiHisw619", + xpnftAddr: "C7bw5dJZwhjWd6TZE3LnE2b1RLqWDiy9XRMA1rajPKQY", + bridgeContractAddr: "FXaXLtmkuoJCJeX6BnLwQJWgT8cPdwuXN8BmmQzVvuRA", endpoint: TestNetRpcUri.SOLANA, notifier, feeMargin, From 9e3c24bbdae4788294889273d8d10261692c2d1d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 28 Nov 2022 13:14:40 +0530 Subject: [PATCH 797/956] Helpers: Near: Dont Send Message to Approve Because we do not want the 'nft_on_approve' to be called since we do not handle that in our bridge contract --- src/helpers/near.ts | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/helpers/near.ts b/src/helpers/near.ts index df267fd02..b3b308f0b 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -85,7 +85,7 @@ export type NearHelper = ChainNonceGet & UnfreezeForeignNft & MintNft & EstimateTxFees & - Pick, "preTransfer"> & + Pick, "preTransfer"> & ValidateAddress & { XpNft: string; nftList(owner: Account, contract: string): Promise[]>; @@ -180,21 +180,16 @@ export async function nearHelperFactory({ return undefined; } - const result = await sender - .functionCall({ - contractId: nft.native.contract, - methodName: "nft_approve", - args: { - token_id: nft.native.tokenId, - account_id: bridge, - msg: "Approval for NFT Transfer via XP Network Multichain NFT Bridge", - }, - attachedDeposit: new BN("1000000000000000000000"), // 0.001 Near - }) - .catch((e) => { - return e["transaction_outcome"]["id"]; - }); - return result; + const result = await sender.functionCall({ + contractId: nft.native.contract, + methodName: "nft_approve", + args: { + token_id: nft.native.tokenId, + account_id: bridge, + }, + attachedDeposit: new BN("1000000000000000000000"), // 0.001 Near + }); + return result.transaction_outcome.id; }, XpNft: xpnft, async transferNftToForeign( From 1627020d95471dacabc75f2f6cfbf271e8822fd7 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 28 Nov 2022 10:48:47 +0200 Subject: [PATCH 798/956] NEAR: adjusting gasLimit and configuring walletCallbackUrl --- src/helpers/near.ts | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/src/helpers/near.ts b/src/helpers/near.ts index b3b308f0b..727091075 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -4,7 +4,6 @@ import BN from "bn.js"; import { Account, connect, - DEFAULT_FUNCTION_CALL_GAS, Near, keyStores, WalletConnection, @@ -127,6 +126,19 @@ export async function nearHelperFactory({ return result; }; + const getWalletCallbackUrl = (tokenId: string, flag: string) => { + let walletCallbackUrl: string | undefined = undefined; + if (typeof window?.location !== "undefined") { + const network = + location.pathname.match(/^\/(staging|testnet)\/.+/)?.at(1) || ""; + + walletCallbackUrl = `${location.protocol}://${ + location.host + }/${network}/connect?${flag}&tokenId=${encodeURIComponent(tokenId)}`; + } + return walletCallbackUrl; + }; + return { async estimateValidateTransferNft(_to, _metadata, _mintWith) { return new BigNumber(0); // TODO @@ -179,6 +191,10 @@ export async function nearHelperFactory({ if (await isApproved(sender, nft)) { return undefined; } + const walletCallbackUrl = getWalletCallbackUrl( + nft.native.tokenId, + "nearApprove=true" + ); const result = await sender.functionCall({ contractId: nft.native.contract, @@ -188,19 +204,17 @@ export async function nearHelperFactory({ account_id: bridge, }, attachedDeposit: new BN("1000000000000000000000"), // 0.001 Near + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); return result.transaction_outcome.id; }, XpNft: xpnft, - async transferNftToForeign( - sender, - chain_nonce, - to, - id, - txFees, - mint_with, - gasLimit - ) { + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mint_with) { + const walletCallbackUrl = getWalletCallbackUrl( + id.native.tokenId, + "nearSend=true" + ); + const result = await sender.functionCall({ contractId: bridge, args: { @@ -213,7 +227,8 @@ export async function nearHelperFactory({ }, methodName: "freeze_nft", attachedDeposit: new BN(txFees.toString()), - gas: new BN(gasLimit?.toString() ?? DEFAULT_FUNCTION_CALL_GAS), + gas: new BN("30000000000000"), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); await notifier.notifyNear(result.transaction.hash); return [result, getTransactionLastResult(result)]; @@ -225,6 +240,11 @@ export async function nearHelperFactory({ return near; }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const walletCallbackUrl = getWalletCallbackUrl( + id.native.tokenId, + "nearSend=true" + ); + const result = await sender.functionCall({ contractId: bridge, args: { @@ -236,7 +256,8 @@ export async function nearHelperFactory({ }, methodName: "withdraw_nft", attachedDeposit: new BN(txFees.toString()), - gas: DEFAULT_FUNCTION_CALL_GAS, + gas: new BN("30000000000000"), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); await notifier.notifyNear(result.transaction.hash); return [result, getTransactionLastResult(result)]; From f4506542de1c23a326fbd338c8f1c5b1ea369a8d Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 28 Nov 2022 12:09:46 +0200 Subject: [PATCH 799/956] Option to add array of prohibited contracts(unfreeze type action) to chains. Add prohibited contracts to Harmony --- src/consts.ts | 5 +++++ src/factory/cons.ts | 9 +++++++++ src/factory/index.ts | 15 +++++++++------ 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index ad2a825ff..d7cb82fba 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -193,6 +193,7 @@ interface ChainData { type: string; blockExplorerUrlAddr?: string; tnBlockExplorerUrlAddr?: string; + rejectUnfreeze?: string[]; } type ChainInfo = { @@ -313,6 +314,10 @@ CHAIN_INFO.set(Chain.HARMONY, { constructor: web3HelperFactory, currency: SupportedCurrency.ONE, type: ChainType.EVM, + rejectUnfreeze: [ + "0xb90Dc9e354001e6260DE670EDD6aBaDb890C6aC9", + "0xAd6f94bDefB6D5ae941392Da5224ED083AE33adc", + ], }); CHAIN_INFO.set(Chain.ONT, { name: "Ontology", diff --git a/src/factory/cons.ts b/src/factory/cons.ts index a98b18807..17e3cbe2c 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -28,6 +28,15 @@ export function exchangeRateRepo( ); } +export function checkBlockedContracts(to: any, contract: string) { + const chain = CHAIN_INFO.get(to); + if (chain?.rejectUnfreeze && chain?.rejectUnfreeze.includes(contract)) { + throw new Error( + `Transfering to ${chain.name} is prohibited by NFT project team` + ); + } +} + export function getDefaultContract( nft: NftInfo, fromChain: FullChain, diff --git a/src/factory/index.ts b/src/factory/index.ts index a098d18ba..5c861d597 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -26,6 +26,7 @@ import { exchangeRateRepo, getDefaultContract, prepareTokenId, + checkBlockedContracts, } from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; import { bridgeHeartbeat } from "../heartbeat"; @@ -523,7 +524,7 @@ export function ChainFactory( } } - async function isWrappedNft(nft: NftInfo, fc: number) { + async function isWrappedNft(nft: NftInfo, fc: number, tc?: number) { if (fc === Chain.TEZOS) { return ( typeof (nft.native as any).meta?.token?.metadata?.wrapped !== @@ -536,10 +537,12 @@ export function ChainFactory( return false; } - return ( - typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== - "undefined" - ); + const original = (await axios.get(nft.uri).catch(() => undefined))?.data + .wrapped; + const contract = original?.contract || original?.source_mint_ident; + tc && contract && checkBlockedContracts(tc, contract); + + return typeof original !== "undefined"; } async function algoOptInCheck( @@ -766,7 +769,7 @@ export function ChainFactory( // throw Error("invalid address"); // } - if (await isWrappedNft(nft, fromChain.getNonce())) { + if (await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce())) { await algoOptInCheck(nft, toChain, receiver); const res = await fromChain.unfreezeWrappedNft( From 8b91b563a2bf82a1038170ed4a8ea11251a73812 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 28 Nov 2022 17:54:12 +0200 Subject: [PATCH 800/956] NEAR: wallet flow - callbackURL, more args for approve --- src/consts.ts | 2 +- src/helpers/near.ts | 47 ++++++++++++++++++++++++++++++++------------- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index d7cb82fba..f1742a294 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -510,7 +510,7 @@ CHAIN_INFO.set(Chain.NEAR, { blockExplorerUrl: "https://explorer.testnet.near.org/transactions/", constructor: nearHelperFactory, currency: SupportedCurrency.NEAR, - decimals: 1e8, + decimals: 1e24, name: "NEAR", nonce: Chain.NEAR, type: ChainType.NEAR, diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 727091075..51ddee369 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -26,7 +26,6 @@ import { GetProvider, MintNft, NftInfo, - PreTransfer, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, @@ -78,13 +77,30 @@ interface BrowserMethods { getUserMinter(keypair: string, address: string): Promise; } +interface PreTransferNear { + preTransfer( + sender: Account, + nft: NftInfo, + fee: string, + to: number, + receiver: string + ): Promise; + preUnfreeze( + sender: Account, + nft: NftInfo, + fee: string, + to: number, + receiver: string + ): Promise; +} + export type NearHelper = ChainNonceGet & BalanceCheck & TransferNftForeign & UnfreezeForeignNft & MintNft & EstimateTxFees & - Pick, "preTransfer"> & + Pick & ValidateAddress & { XpNft: string; nftList(owner: Account, contract: string): Promise[]>; @@ -126,15 +142,13 @@ export async function nearHelperFactory({ return result; }; - const getWalletCallbackUrl = (tokenId: string, flag: string) => { + const getWalletCallbackUrl = (params: string) => { let walletCallbackUrl: string | undefined = undefined; if (typeof window?.location !== "undefined") { const network = location.pathname.match(/^\/(staging|testnet)\/.+/)?.at(1) || ""; - walletCallbackUrl = `${location.protocol}://${ - location.host - }/${network}/connect?${flag}&tokenId=${encodeURIComponent(tokenId)}`; + walletCallbackUrl = `${location.protocol}//${location.host}/${network}/connect?${params}`; } return walletCallbackUrl; }; @@ -187,13 +201,14 @@ export async function nearHelperFactory({ }; }); }, - async preTransfer(sender, nft, _fee) { + async preTransfer(sender, nft, _fee, to, receiver) { if (await isApproved(sender, nft)) { return undefined; } const walletCallbackUrl = getWalletCallbackUrl( - nft.native.tokenId, - "nearApprove=true" + `NEARTRX=true&type=approve&to=${to}&receiver=${encodeURIComponent( + receiver + )}&tokenId=${encodeURIComponent(nft.native.tokenId)}` ); const result = await sender.functionCall({ @@ -211,8 +226,11 @@ export async function nearHelperFactory({ XpNft: xpnft, async transferNftToForeign(sender, chain_nonce, to, id, txFees, mint_with) { const walletCallbackUrl = getWalletCallbackUrl( - id.native.tokenId, - "nearSend=true" + `NEARTRX=true&type=transfer&to=${chain_nonce}&receiver=${encodeURIComponent( + to + )}&tokenId=${encodeURIComponent( + id.native.tokenId + )}&contract=${encodeURIComponent(id.native.contract)}` ); const result = await sender.functionCall({ @@ -241,8 +259,11 @@ export async function nearHelperFactory({ }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { const walletCallbackUrl = getWalletCallbackUrl( - id.native.tokenId, - "nearSend=true" + `NEARTRX=true&type=unfreeze&to=${nonce}&receiver=${encodeURIComponent( + to + )}&tokenId=${encodeURIComponent( + id.native.tokenId + )}&contract=${encodeURIComponent(id.native.contract)}` ); const result = await sender.functionCall({ From a8edc2c88a21d612094792953a82bbc68d2ea89e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 29 Nov 2022 16:55:08 +0530 Subject: [PATCH 801/956] Testnet: Setup Caduceus --- src/consts.ts | 14 ++++++++++++++ src/factory/factories.ts | 11 +++++++++++ src/factory/index.ts | 2 ++ 3 files changed, 27 insertions(+) diff --git a/src/consts.ts b/src/consts.ts index f1742a294..9a2389b7f 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -60,6 +60,7 @@ export enum TestNetRpcUri { APTOS = "https://fullnode.testnet.aptoslabs.com", TON = "https://testnet.toncenter.com/api/v2/jsonRPC", SOLANA = "https://api.devnet.solana.com", + CADUCEUS = "https://galaxy.block.caduceus.foundation", // TODO: Algorand // TODO: Fuse } @@ -143,6 +144,7 @@ export type MetaMap = { 0x20: Web3Meta; 0x21: Web3Meta; 0x22: AptosMeta; + 0x23: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -178,6 +180,7 @@ export namespace Chain { export const MOONBEAM = 0x20; // 32 export const ABEYCHAIN = 0x21; // 33 export const APTOS = 0x22; // 34 + export const CADUCEUS = 0x23; // 35 } interface ChainData { @@ -555,3 +558,14 @@ CHAIN_INFO.set(Chain.TON, { type: ChainType.TON, blockExplorerUrl: "https://testnet.tonscan.org/tx/", }); +CHAIN_INFO.set(Chain.CADUCEUS, { + constructor: web3HelperFactory, + currency: SupportedCurrency.CMP, + decimals: 1e18, + name: "Caduceus", + nonce: Chain.CADUCEUS, + blockExplorerUrl: "https://galaxy.scan.caduceus.foundation/tx/", + type: ChainType.EVM, + chainId: 256256, + tnChainId: 512512, +}); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 30f9758d4..1f644253c 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -108,6 +108,17 @@ export namespace ChainFactoryConfigs { nonce: Chain.TRON, feeMargin, }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CADUCEUS), + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + nonce: Chain.CADUCEUS, + }, avalancheParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), diff --git a/src/factory/index.ts b/src/factory/index.ts index 5c861d597..27e27c2e8 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -303,6 +303,7 @@ export interface ChainParams { tonParams: TonParams; aptosParams: AptosParams; solanaParams: SolanaParams; + caduceusParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -360,6 +361,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.TON, chainParams.tonParams); cToP.set(Chain.APTOS, chainParams.aptosParams); cToP.set(Chain.SOLANA, chainParams.solanaParams); + cToP.set(Chain.CADUCEUS, chainParams.caduceusParams); return cToP; } /** From 58a0d1eed6a13992a782f5c21f9b12e6d8c42fed Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 29 Nov 2022 16:55:40 +0530 Subject: [PATCH 802/956] Solana: Fix Transfers --- src/helpers/idl/xp_bridge.ts | 918 ---------- src/helpers/solana/idl.ts | 1793 ++++++++++++++++++++ src/helpers/{solana.ts => solana/index.ts} | 61 +- 3 files changed, 1839 insertions(+), 933 deletions(-) delete mode 100644 src/helpers/idl/xp_bridge.ts create mode 100644 src/helpers/solana/idl.ts rename src/helpers/{solana.ts => solana/index.ts} (78%) diff --git a/src/helpers/idl/xp_bridge.ts b/src/helpers/idl/xp_bridge.ts deleted file mode 100644 index 270ce27e1..000000000 --- a/src/helpers/idl/xp_bridge.ts +++ /dev/null @@ -1,918 +0,0 @@ -import { Idl } from "@project-serum/anchor"; -import { Mutable } from "../../type-utils"; - -const val = { - version: "0.1.0", - name: "xp_bridge", - instructions: [ - { - name: "initialize", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "costInLamports", - type: "u64", - }, - { - name: "groupKey", - type: { - array: ["u8", 32], - }, - }, - ], - }, - { - name: "createAction", - accounts: [ - { - name: "action", - isMut: true, - isSigner: true, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "action", - type: "u64", - }, - ], - }, - { - name: "validatePause", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "action", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "PauseData", - }, - }, - ], - }, - { - name: "validateUnpause", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "action", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UnpauseData", - }, - }, - ], - }, - { - name: "validateWithdrawFees", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "action", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "WithdrawFeesData", - }, - }, - ], - }, - { - name: "validateUpdateGroupkey", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "action", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UpdateGroupkeyData", - }, - }, - ], - }, - { - name: "validateTransferNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "payer", - isMut: true, - isSigner: true, - }, - { - name: "authority", - isMut: false, - isSigner: false, - }, - { - name: "mint", - isMut: true, - isSigner: false, - }, - { - name: "tokenAccount", - isMut: true, - isSigner: false, - }, - { - name: "metadataAccount", - isMut: true, - isSigner: false, - }, - { - name: "editionAccount", - isMut: true, - isSigner: false, - }, - { - name: "metadataProgram", - isMut: false, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "rent", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - { - name: "action", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "TransferNftData", - }, - }, - ], - }, - { - name: "withdrawNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "authority", - isMut: true, - isSigner: true, - }, - { - name: "mint", - isMut: true, - isSigner: false, - }, - { - name: "tokenAccount", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "chainNonce", - type: "u8", - }, - { - name: "to", - type: "string", - }, - { - name: "lamports", - type: "u64", - }, - ], - }, - { - name: "freezeNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "authority", - isMut: true, - isSigner: true, - }, - { - name: "from", - isMut: true, - isSigner: false, - }, - { - name: "to", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "chainNonce", - type: "u8", - }, - { - name: "to", - type: "string", - }, - { - name: "lamports", - type: "u64", - }, - { - name: "mintWith", - type: "string", - }, - ], - }, - { - name: "validateUnfreezeNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "from", - isMut: true, - isSigner: false, - }, - { - name: "to", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "action", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "payer", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UnfreezeNftData", - }, - }, - ], - }, - ], - accounts: [ - { - name: "Bridge", - type: { - kind: "struct", - fields: [ - { - name: "paused", - type: "bool", - }, - { - name: "txFees", - type: "u64", - }, - { - name: "costInLamports", - type: "u64", - }, - { - name: "groupKey", - type: { - array: ["u8", 32], - }, - }, - { - name: "actionId", - type: "u128", - }, - ], - }, - }, - { - name: "Action", - type: { - kind: "struct", - fields: [ - { - name: "action", - type: "u64", - }, - ], - }, - }, - { - name: "ConsumedAction", - type: { - kind: "struct", - fields: [ - { - name: "consumed", - type: "bool", - }, - ], - }, - }, - ], - types: [ - { - name: "PauseData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - ], - }, - }, - { - name: "UnpauseData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - ], - }, - }, - { - name: "UpdateGroupkeyData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "newKey", - type: { - array: ["u8", 32], - }, - }, - ], - }, - }, - { - name: "TransferNftData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "chainNonce", - type: "u64", - }, - { - name: "tokenName", - type: "string", - }, - { - name: "tokenSymbol", - type: "string", - }, - { - name: "tokenUri", - type: "string", - }, - { - name: "owner", - type: { - array: ["u8", 32], - }, - }, - ], - }, - }, - { - name: "AnchorDataV2", - type: { - kind: "struct", - fields: [ - { - name: "name", - type: "string", - }, - { - name: "symbol", - type: "string", - }, - { - name: "uri", - type: "string", - }, - { - name: "sellerFeeBasisPoints", - type: "u16", - }, - { - name: "creators", - type: { - option: { - vec: { - defined: "AnchorCreator", - }, - }, - }, - }, - { - name: "collection", - type: { - option: { - defined: "AnchorCollection", - }, - }, - }, - { - name: "uses", - type: { - option: { - defined: "AnchorUses", - }, - }, - }, - ], - }, - }, - { - name: "AnchorCreator", - type: { - kind: "struct", - fields: [ - { - name: "address", - type: "publicKey", - }, - { - name: "verified", - type: "bool", - }, - { - name: "share", - type: "u8", - }, - ], - }, - }, - { - name: "AnchorCollection", - type: { - kind: "struct", - fields: [ - { - name: "verified", - type: "bool", - }, - { - name: "key", - type: "publicKey", - }, - ], - }, - }, - { - name: "AnchorUses", - type: { - kind: "struct", - fields: [ - { - name: "useMethod", - type: { - defined: "AnchorUseMethod", - }, - }, - { - name: "remaining", - type: "u64", - }, - { - name: "total", - type: "u64", - }, - ], - }, - }, - { - name: "WithdrawFeesData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - ], - }, - }, - { - name: "UnfreezeNftData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "receiver", - type: { - array: ["u8", 32], - }, - }, - { - name: "mint", - type: { - array: ["u8", 32], - }, - }, - ], - }, - }, - { - name: "AnchorUseMethod", - type: { - kind: "enum", - variants: [ - { - name: "Burn", - }, - { - name: "Multiple", - }, - { - name: "Single", - }, - ], - }, - }, - ], - events: [ - { - name: "TransferNft", - fields: [ - { - name: "chainNonce", - type: "u8", - index: false, - }, - { - name: "to", - type: "string", - index: true, - }, - { - name: "mint", - type: "publicKey", - index: false, - }, - { - name: "actionId", - type: "u128", - index: false, - }, - { - name: "mintWith", - type: "string", - index: false, - }, - { - name: "lamports", - type: "u64", - index: false, - }, - ], - }, - { - name: "UnfreezeNft", - fields: [ - { - name: "chainNonce", - type: "u8", - index: false, - }, - { - name: "to", - type: "string", - index: true, - }, - { - name: "actionId", - type: "u128", - index: false, - }, - { - name: "mint", - type: "publicKey", - index: false, - }, - { - name: "lamports", - type: "u64", - index: false, - }, - ], - }, - ], - errors: [ - { - code: 6000, - name: "Paused", - msg: "Pausable: paused", - }, - { - code: 6001, - name: "Unpaused", - msg: "Pausable: unpaused", - }, - { - code: 6002, - name: "AlreadyMinted", - msg: "Already minted", - }, - { - code: 6003, - name: "AlreadyBurned", - msg: "Already burned", - }, - { - code: 6004, - name: "InstructionAtWrongIndex", - msg: "instruction at wrong index", - }, - { - code: 6005, - name: "InvalidEd25519Instruction", - msg: "invalid ed25519 instruction", - }, - { - code: 6006, - name: "InvalidGroupKey", - msg: "invalid group key", - }, - { - code: 6007, - name: "InvalidProgramId", - msg: "invalid program id", - }, - { - code: 6008, - name: "InvalidArgs", - msg: "invalid args", - }, - { - code: 6009, - name: "InvalidActionId", - msg: "invalid action id", - }, - { - code: 6010, - name: "DuplicatedAction", - msg: "duplicated action", - }, - { - code: 6011, - name: "IncorrectOwner", - msg: "incorrect owner", - }, - { - code: 6012, - name: "InvalidMint", - msg: "invalid mint", - }, - { - code: 6013, - name: "InsufficientFundsForTransaction", - msg: "insufficient funds for transaction", - }, - ], -} as const; - -export default val as Mutable & Idl; diff --git a/src/helpers/solana/idl.ts b/src/helpers/solana/idl.ts new file mode 100644 index 000000000..a5f6bc796 --- /dev/null +++ b/src/helpers/solana/idl.ts @@ -0,0 +1,1793 @@ +export type XpBridge = { + version: "0.1.0"; + name: "xp_bridge"; + instructions: [ + { + name: "initialize"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "groupKey"; + type: { + array: ["u8", 32]; + }; + } + ]; + }, + { + name: "validatePause"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "PauseData"; + }; + } + ]; + }, + { + name: "validateUnpause"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UnpauseData"; + }; + } + ]; + }, + { + name: "validateWithdrawFees"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "WithdrawFeesData"; + }; + } + ]; + }, + { + name: "validateUpdateGroupkey"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UpdateGroupkeyData"; + }; + } + ]; + }, + { + name: "validateTransferNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "payer"; + isMut: true; + isSigner: true; + }, + { + name: "authority"; + isMut: false; + isSigner: false; + }, + { + name: "mint"; + isMut: true; + isSigner: false; + }, + { + name: "tokenAccount"; + isMut: true; + isSigner: false; + }, + { + name: "metadataAccount"; + isMut: true; + isSigner: false; + }, + { + name: "editionAccount"; + isMut: true; + isSigner: false; + }, + { + name: "metadataProgram"; + isMut: false; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "rent"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "TransferNftData"; + }; + } + ]; + }, + { + name: "withdrawNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "authority"; + isMut: true; + isSigner: true; + }, + { + name: "mint"; + isMut: true; + isSigner: false; + }, + { + name: "tokenAccount"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "chainNonce"; + type: "u8"; + }, + { + name: "to"; + type: "string"; + }, + { + name: "lamports"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }, + { + name: "freezeNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "authority"; + isMut: true; + isSigner: true; + }, + { + name: "from"; + isMut: true; + isSigner: false; + }, + { + name: "to"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "chainNonce"; + type: "u8"; + }, + { + name: "to"; + type: "string"; + }, + { + name: "lamports"; + type: "u64"; + }, + { + name: "mintWith"; + type: "string"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }, + { + name: "validateUnfreezeNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "from"; + isMut: true; + isSigner: false; + }, + { + name: "to"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "payer"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UnfreezeNftData"; + }; + } + ]; + } + ]; + accounts: [ + { + name: "bridge"; + type: { + kind: "struct"; + fields: [ + { + name: "paused"; + type: "bool"; + }, + { + name: "groupKey"; + type: { + array: ["u8", 32]; + }; + }, + { + name: "actionId"; + type: "u128"; + } + ]; + }; + }, + { + name: "consumedAction"; + type: { + kind: "struct"; + fields: [ + { + name: "consumed"; + type: "bool"; + } + ]; + }; + } + ]; + types: [ + { + name: "PauseData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UnpauseData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UpdateGroupkeyData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "newKey"; + type: { + array: ["u8", 32]; + }; + } + ]; + }; + }, + { + name: "TransferNftData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "authBump"; + type: "u8"; + }, + { + name: "chainNonce"; + type: "u64"; + }, + { + name: "name"; + type: "string"; + }, + { + name: "symbol"; + type: "string"; + }, + { + name: "uri"; + type: "string"; + }, + { + name: "owner"; + type: "publicKey"; + }, + { + name: "collection"; + type: { + option: { + defined: "AnchorCollection"; + }; + }; + }, + { + name: "sellerFeeBasisPoints"; + type: { + option: "u16"; + }; + }, + { + name: "creators"; + type: { + option: { + vec: { + defined: "AnchorCreator"; + }; + }; + }; + } + ]; + }; + }, + { + name: "AnchorDataV2"; + type: { + kind: "struct"; + fields: [ + { + name: "name"; + docs: ["The name of the asset"]; + type: "string"; + }, + { + name: "symbol"; + docs: ["The symbol for the asset"]; + type: "string"; + }, + { + name: "uri"; + docs: ["URI pointing to JSON representing the asset"]; + type: "string"; + }, + { + name: "sellerFeeBasisPoints"; + docs: [ + "Royalty basis points that goes to creators in secondary sales (0-10000)" + ]; + type: "u16"; + }, + { + name: "creators"; + docs: ["Array of creators, optional"]; + type: { + option: { + vec: { + defined: "AnchorCreator"; + }; + }; + }; + }, + { + name: "collection"; + docs: ["Collection"]; + type: { + option: { + defined: "AnchorCollection"; + }; + }; + }, + { + name: "uses"; + docs: ["Uses"]; + type: { + option: { + defined: "AnchorUses"; + }; + }; + } + ]; + }; + }, + { + name: "AnchorCreator"; + type: { + kind: "struct"; + fields: [ + { + name: "address"; + type: "publicKey"; + }, + { + name: "verified"; + type: "bool"; + }, + { + name: "share"; + type: "u8"; + } + ]; + }; + }, + { + name: "AnchorCollection"; + type: { + kind: "struct"; + fields: [ + { + name: "verified"; + type: "bool"; + }, + { + name: "key"; + type: "publicKey"; + } + ]; + }; + }, + { + name: "AnchorUses"; + type: { + kind: "struct"; + fields: [ + { + name: "useMethod"; + type: { + defined: "AnchorUseMethod"; + }; + }, + { + name: "remaining"; + type: "u64"; + }, + { + name: "total"; + type: "u64"; + } + ]; + }; + }, + { + name: "WithdrawFeesData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UnfreezeNftData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "receiver"; + type: "publicKey"; + }, + { + name: "mint"; + type: "publicKey"; + } + ]; + }; + }, + { + name: "AnchorUseMethod"; + type: { + kind: "enum"; + variants: [ + { + name: "Burn"; + }, + { + name: "Multiple"; + }, + { + name: "Single"; + } + ]; + }; + } + ]; + events: [ + { + name: "TransferNft"; + fields: [ + { + name: "chainNonce"; + type: "u8"; + index: false; + }, + { + name: "to"; + type: "string"; + index: true; + }, + { + name: "mint"; + type: "publicKey"; + index: false; + }, + { + name: "actionId"; + type: "u128"; + index: false; + }, + { + name: "mintWith"; + type: "string"; + index: false; + }, + { + name: "lamports"; + type: "u64"; + index: false; + } + ]; + }, + { + name: "UnfreezeNft"; + fields: [ + { + name: "chainNonce"; + type: "u8"; + index: false; + }, + { + name: "to"; + type: "string"; + index: true; + }, + { + name: "actionId"; + type: "u128"; + index: false; + }, + { + name: "mint"; + type: "publicKey"; + index: false; + }, + { + name: "lamports"; + type: "u64"; + index: false; + } + ]; + } + ]; + errors: [ + { + code: 6000; + name: "Paused"; + msg: "Pausable: paused"; + }, + { + code: 6001; + name: "Unpaused"; + msg: "Pausable: unpaused"; + }, + { + code: 6002; + name: "AlreadyMinted"; + msg: "Already minted"; + }, + { + code: 6003; + name: "AlreadyBurned"; + msg: "Already burned"; + }, + { + code: 6004; + name: "InstructionAtWrongIndex"; + msg: "instruction at wrong index"; + }, + { + code: 6005; + name: "InvalidEd25519Instruction"; + msg: "invalid ed25519 instruction"; + }, + { + code: 6006; + name: "InvalidGroupKey"; + msg: "invalid group key"; + }, + { + code: 6007; + name: "InvalidProgramId"; + msg: "invalid program id"; + }, + { + code: 6008; + name: "InvalidArgs"; + msg: "invalid args"; + }, + { + code: 6009; + name: "InvalidActionId"; + msg: "invalid action id"; + }, + { + code: 6010; + name: "DuplicatedAction"; + msg: "duplicated action"; + }, + { + code: 6011; + name: "IncorrectOwner"; + msg: "incorrect owner"; + }, + { + code: 6012; + name: "InvalidMint"; + msg: "invalid mint"; + }, + { + code: 6013; + name: "InsufficientFundsForTransaction"; + msg: "insufficient funds for transaction"; + } + ]; +}; + +export const IDL: XpBridge = { + version: "0.1.0", + name: "xp_bridge", + instructions: [ + { + name: "initialize", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "groupKey", + type: { + array: ["u8", 32], + }, + }, + ], + }, + { + name: "validatePause", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "PauseData", + }, + }, + ], + }, + { + name: "validateUnpause", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UnpauseData", + }, + }, + ], + }, + { + name: "validateWithdrawFees", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "WithdrawFeesData", + }, + }, + ], + }, + { + name: "validateUpdateGroupkey", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UpdateGroupkeyData", + }, + }, + ], + }, + { + name: "validateTransferNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "payer", + isMut: true, + isSigner: true, + }, + { + name: "authority", + isMut: false, + isSigner: false, + }, + { + name: "mint", + isMut: true, + isSigner: false, + }, + { + name: "tokenAccount", + isMut: true, + isSigner: false, + }, + { + name: "metadataAccount", + isMut: true, + isSigner: false, + }, + { + name: "editionAccount", + isMut: true, + isSigner: false, + }, + { + name: "metadataProgram", + isMut: false, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "rent", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "TransferNftData", + }, + }, + ], + }, + { + name: "withdrawNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "authority", + isMut: true, + isSigner: true, + }, + { + name: "mint", + isMut: true, + isSigner: false, + }, + { + name: "tokenAccount", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "chainNonce", + type: "u8", + }, + { + name: "to", + type: "string", + }, + { + name: "lamports", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + { + name: "freezeNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "authority", + isMut: true, + isSigner: true, + }, + { + name: "from", + isMut: true, + isSigner: false, + }, + { + name: "to", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "chainNonce", + type: "u8", + }, + { + name: "to", + type: "string", + }, + { + name: "lamports", + type: "u64", + }, + { + name: "mintWith", + type: "string", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + { + name: "validateUnfreezeNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "from", + isMut: true, + isSigner: false, + }, + { + name: "to", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "payer", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UnfreezeNftData", + }, + }, + ], + }, + ], + accounts: [ + { + name: "bridge", + type: { + kind: "struct", + fields: [ + { + name: "paused", + type: "bool", + }, + { + name: "groupKey", + type: { + array: ["u8", 32], + }, + }, + { + name: "actionId", + type: "u128", + }, + ], + }, + }, + { + name: "consumedAction", + type: { + kind: "struct", + fields: [ + { + name: "consumed", + type: "bool", + }, + ], + }, + }, + ], + types: [ + { + name: "PauseData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UnpauseData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UpdateGroupkeyData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "newKey", + type: { + array: ["u8", 32], + }, + }, + ], + }, + }, + { + name: "TransferNftData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "authBump", + type: "u8", + }, + { + name: "chainNonce", + type: "u64", + }, + { + name: "name", + type: "string", + }, + { + name: "symbol", + type: "string", + }, + { + name: "uri", + type: "string", + }, + { + name: "owner", + type: "publicKey", + }, + { + name: "collection", + type: { + option: { + defined: "AnchorCollection", + }, + }, + }, + { + name: "sellerFeeBasisPoints", + type: { + option: "u16", + }, + }, + { + name: "creators", + type: { + option: { + vec: { + defined: "AnchorCreator", + }, + }, + }, + }, + ], + }, + }, + { + name: "AnchorDataV2", + type: { + kind: "struct", + fields: [ + { + name: "name", + docs: ["The name of the asset"], + type: "string", + }, + { + name: "symbol", + docs: ["The symbol for the asset"], + type: "string", + }, + { + name: "uri", + docs: ["URI pointing to JSON representing the asset"], + type: "string", + }, + { + name: "sellerFeeBasisPoints", + docs: [ + "Royalty basis points that goes to creators in secondary sales (0-10000)", + ], + type: "u16", + }, + { + name: "creators", + docs: ["Array of creators, optional"], + type: { + option: { + vec: { + defined: "AnchorCreator", + }, + }, + }, + }, + { + name: "collection", + docs: ["Collection"], + type: { + option: { + defined: "AnchorCollection", + }, + }, + }, + { + name: "uses", + docs: ["Uses"], + type: { + option: { + defined: "AnchorUses", + }, + }, + }, + ], + }, + }, + { + name: "AnchorCreator", + type: { + kind: "struct", + fields: [ + { + name: "address", + type: "publicKey", + }, + { + name: "verified", + type: "bool", + }, + { + name: "share", + type: "u8", + }, + ], + }, + }, + { + name: "AnchorCollection", + type: { + kind: "struct", + fields: [ + { + name: "verified", + type: "bool", + }, + { + name: "key", + type: "publicKey", + }, + ], + }, + }, + { + name: "AnchorUses", + type: { + kind: "struct", + fields: [ + { + name: "useMethod", + type: { + defined: "AnchorUseMethod", + }, + }, + { + name: "remaining", + type: "u64", + }, + { + name: "total", + type: "u64", + }, + ], + }, + }, + { + name: "WithdrawFeesData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UnfreezeNftData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "receiver", + type: "publicKey", + }, + { + name: "mint", + type: "publicKey", + }, + ], + }, + }, + { + name: "AnchorUseMethod", + type: { + kind: "enum", + variants: [ + { + name: "Burn", + }, + { + name: "Multiple", + }, + { + name: "Single", + }, + ], + }, + }, + ], + events: [ + { + name: "TransferNft", + fields: [ + { + name: "chainNonce", + type: "u8", + index: false, + }, + { + name: "to", + type: "string", + index: true, + }, + { + name: "mint", + type: "publicKey", + index: false, + }, + { + name: "actionId", + type: "u128", + index: false, + }, + { + name: "mintWith", + type: "string", + index: false, + }, + { + name: "lamports", + type: "u64", + index: false, + }, + ], + }, + { + name: "UnfreezeNft", + fields: [ + { + name: "chainNonce", + type: "u8", + index: false, + }, + { + name: "to", + type: "string", + index: true, + }, + { + name: "actionId", + type: "u128", + index: false, + }, + { + name: "mint", + type: "publicKey", + index: false, + }, + { + name: "lamports", + type: "u64", + index: false, + }, + ], + }, + ], + errors: [ + { + code: 6000, + name: "Paused", + msg: "Pausable: paused", + }, + { + code: 6001, + name: "Unpaused", + msg: "Pausable: unpaused", + }, + { + code: 6002, + name: "AlreadyMinted", + msg: "Already minted", + }, + { + code: 6003, + name: "AlreadyBurned", + msg: "Already burned", + }, + { + code: 6004, + name: "InstructionAtWrongIndex", + msg: "instruction at wrong index", + }, + { + code: 6005, + name: "InvalidEd25519Instruction", + msg: "invalid ed25519 instruction", + }, + { + code: 6006, + name: "InvalidGroupKey", + msg: "invalid group key", + }, + { + code: 6007, + name: "InvalidProgramId", + msg: "invalid program id", + }, + { + code: 6008, + name: "InvalidArgs", + msg: "invalid args", + }, + { + code: 6009, + name: "InvalidActionId", + msg: "invalid action id", + }, + { + code: 6010, + name: "DuplicatedAction", + msg: "duplicated action", + }, + { + code: 6011, + name: "IncorrectOwner", + msg: "incorrect owner", + }, + { + code: 6012, + name: "InvalidMint", + msg: "invalid mint", + }, + { + code: 6013, + name: "InsufficientFundsForTransaction", + msg: "insufficient funds for transaction", + }, + ], +}; diff --git a/src/helpers/solana.ts b/src/helpers/solana/index.ts similarity index 78% rename from src/helpers/solana.ts rename to src/helpers/solana/index.ts index 41be4a157..a81bf75cf 100644 --- a/src/helpers/solana.ts +++ b/src/helpers/solana/index.ts @@ -1,4 +1,4 @@ -import { AnchorProvider, BN, Program } from "@project-serum/anchor"; +import { Wallet, BN, Program, AnchorProvider } from "@project-serum/anchor"; import { Account, createAssociatedTokenAccountInstruction, @@ -12,20 +12,21 @@ import { } from "@solana/spl-token"; import { Connection, PublicKey, Transaction } from "@solana/web3.js"; import BigNumber from "bignumber.js"; -import { Chain } from ".."; -import { EvNotifier } from "../notifier"; +import { Chain } from "../.."; +import { EvNotifier } from "../../notifier"; import { ChainNonceGet, EstimateTxFees, FeeMargins, GetFeeMargins, + GetProvider, TransferNftForeign, UnfreezeForeignNft, ValidateAddress, -} from "./chain"; -import BridgeIdl from "./idl/xp_bridge"; +} from "../chain"; +import { IDL } from "./idl"; -export type SolanaSigner = AnchorProvider; +export type SolanaSigner = Wallet; export type SolanaNft = { nftMint: string; @@ -37,7 +38,8 @@ export type SolanaHelper = ChainNonceGet & EstimateTxFees & ValidateAddress & { connection: Connection; - } & { XpNft: string } & GetFeeMargins; + } & { XpNft: string } & GetFeeMargins & + GetProvider; export type SolanaParams = { endpoint: string; @@ -55,6 +57,7 @@ async function getOrCreateAssociatedTokenAccount( owner: PublicKey, allowOwnerOffCurve = false ) { + const provider = new AnchorProvider(connection, payer, {}); const associatedToken = await getAssociatedTokenAddress( mint, owner, @@ -85,7 +88,7 @@ async function getOrCreateAssociatedTokenAccount( ) ); - await payer.sendAndConfirm(transaction); + await provider.sendAndConfirm(transaction); } catch (error: unknown) { // Ignore all errors; for now there is no API-compatible way to selectively ignore the expected // instruction error if the associated account exists already. @@ -112,9 +115,14 @@ export async function solanaHelper(args: SolanaParams): Promise { connection: conn, getNonce: () => Chain.SOLANA, async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { - const bridgeContract = new Program(BridgeIdl, args.bridgeContractAddr); + const provider = new AnchorProvider(conn, sender, {}); + const bridgeContract = new Program( + IDL, + args.bridgeContractAddr, + provider + ); - const [bridge] = await PublicKey.findProgramAddress( + const [bridge, bridgeBump] = await PublicKey.findProgramAddress( [Buffer.from("bridge")], bridgeContract.programId ); @@ -134,7 +142,13 @@ export async function solanaHelper(args: SolanaParams): Promise { true ); const tx = await bridgeContract.methods - .freezeNft(chain_nonce, to, new BN(txFees.toString(10)), mintWith) + .freezeNft( + chain_nonce, + to, + new BN(txFees.toString(10)), + mintWith, + bridgeBump + ) .accounts({ bridge, authority: sender.publicKey, @@ -152,9 +166,15 @@ export async function solanaHelper(args: SolanaParams): Promise { return args.feeMargin; }, async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - const bridgeContract = new Program(BridgeIdl, args.bridgeContractAddr); + console.log(`Unfreezing`); + const provider = new AnchorProvider(conn, sender, {}); + const bridgeContract = new Program( + IDL, + args.bridgeContractAddr, + provider + ); - const [bridge] = await PublicKey.findProgramAddress( + const [bridge, bridgeBump] = await PublicKey.findProgramAddress( [Buffer.from("bridge")], bridgeContract.programId ); @@ -166,10 +186,18 @@ export async function solanaHelper(args: SolanaParams): Promise { sender, mintAddr, sender.publicKey - ); + ).catch((e) => { + console.error(e); + throw e; + }); const tx = await bridgeContract.methods - .withdrawNft(parseInt(nonce), to, new BN(txFees.toString(10))) + .withdrawNft( + parseInt(nonce), + to, + new BN(txFees.toString(10)), + bridgeBump + ) .accounts({ bridge, authority: sender.publicKey, @@ -183,6 +211,9 @@ export async function solanaHelper(args: SolanaParams): Promise { return tx; }, + getProvider() { + return conn; + }, async estimateValidateTransferNft() { return new BigNumber(0); // TODO }, From 98fd441bb3aca8b5a8eb8f31b1250ec7931b15d7 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 29 Nov 2022 16:59:37 +0530 Subject: [PATCH 803/956] fix: packages: bump exchange-rate --- package.json | 2 +- yarn.lock | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 504d7b318..96c7049d7 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#master-dist", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#7e1266d8ab36354c50e80141692beb53625aaaef", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/yarn.lock b/yarn.lock index 557e80bfe..43a15200a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3478,6 +3478,12 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#7e1266d8ab36354c50e80141692beb53625aaaef": + version "1.0.0" + resolved "git+https://github.com/xp-network/exchange-rate#7e1266d8ab36354c50e80141692beb53625aaaef" + dependencies: + axios "^0.21.1" + "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#83c1506548400d824af5666ded33eaf55f499f80" From f6dab07b406fb7ddbd5c169d3db2c5ce400f3b06 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 29 Nov 2022 14:11:01 +0200 Subject: [PATCH 804/956] fix typo --- src/consts.ts | 4 ++-- src/factory/cons.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 9a2389b7f..9f53bafa6 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -210,7 +210,7 @@ export enum ChainType { TRON = "TRON", TEZOS = "TEZOS", ALGORAND = "ALGORAND", - SECRET = "SECRET", + COSMOS = "COSMOS", DFINITY = "DFINITY", SOLANA = "SOLANA", TON = "TON", @@ -448,7 +448,7 @@ CHAIN_INFO.set(Chain.SECRET, { nonce: Chain.SECRET, currency: SupportedCurrency.SCRT, decimals: 1e6, - type: ChainType.SECRET, + type: ChainType.COSMOS, }); CHAIN_INFO.set(Chain.SOLANA, { name: "Solana", diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 17e3cbe2c..94287b8ea 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -32,7 +32,7 @@ export function checkBlockedContracts(to: any, contract: string) { const chain = CHAIN_INFO.get(to); if (chain?.rejectUnfreeze && chain?.rejectUnfreeze.includes(contract)) { throw new Error( - `Transfering to ${chain.name} is prohibited by NFT project team` + `Transfering to ${chain.name} is prohibited by the NFT project team` ); } } From 1bf3ecf953df391a954d10b4318192e2cda2065c Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 29 Nov 2022 15:01:42 +0200 Subject: [PATCH 805/956] add velas to staging --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 1f644253c..44b275f12 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -437,6 +437,17 @@ export namespace ChainFactoryConfigs { nonce: Chain.ELROND, feeMargin, }, + velasParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), + erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", + erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", + erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", + minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + nonce: Chain.VELAS, + feeMargin, + }, bscParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), From 024faea59e39c333d38d5ab97b550cb1b7274ff8 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 29 Nov 2022 18:14:55 +0200 Subject: [PATCH 806/956] update staging contracts sft --- src/factory/factories.ts | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 44b275f12..1bf1ef73e 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -440,22 +440,22 @@ export namespace ChainFactoryConfigs { velasParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), - erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", - erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", - erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", - erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", - minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + erc721Minter: "0x4d739e4953CE42f71604cbE142FD293841F9ed1c", + erc1155Minter: "0xeEc7955F2F7AA4E36B582D8f022c9417ecB75a44", + erc721_addr: "0x19678D8f9601AD0F099D401A3f82e4d6745B0e56", + erc1155_addr: "0x4a153028F0b40C41432127E050015963D130b01A", + minter_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", nonce: Chain.VELAS, feeMargin, }, bscParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), - erc721Minter: "0x38AEDf581C90D8EA955FC9a124b0A2B4471A61DD", - erc1155_addr: "0x254f8fd82CAB39f016956428e7cA406e091D61af", - erc1155Minter: "0xAE078f8BC8Dc1B5E312F8F4f85eCdBfCD889eFc4", - erc721_addr: "0x22f27EE5C19491AdaE7cFDd9ac69f90289Fac855", - minter_addr: "0x6b3b43029dD4695f8780d7f16E0313dA02d9507B", + erc721Minter: "0x83feaeA88b1377970E7cD11492d084B63e09C87E", + erc1155_addr: "0x1B20ceec70e9635f5B56928de16A9dBc8EB8e3b6", + erc1155Minter: "0x5Af6A4C6E261315C5B7811bEb9c620CfF4722793", + erc721_addr: "0x9796B2F03e3afF786048cd67a1D33282476AB1d4", + minter_addr: "0x7Eac6825A851d79ae24301eA497AD8db2a0F4976", nonce: Chain.BSC, feeMargin, }, @@ -494,21 +494,21 @@ export namespace ChainFactoryConfigs { notifier, feeMargin, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.MOONBEAM), - erc1155_addr: "0x55B1D1891ABb21A5d245d149B49007b55Bd3746D", - erc721_addr: "0x4ceDb46481d7118E1D292C318E37510E5919bBe6", - erc1155Minter: "0xF9DfD29ddEDEa3224f9c7E12c7Bbe37101341786", - erc721Minter: "0x35c3c3959d19A310Fc052545fCC29200dc440CdA", - minter_addr: "0x8B7f2bC31976230E374B93DF88D6eCD14f7B5D7F", + erc1155_addr: "0x554560C6800f123B4A713F80A5AC9F21486F5De8", + erc721_addr: "0x6f64e03fcc34b774b3b82825a91aABA336Fbf931", + erc1155Minter: "0xA97FD39705583296221f39cb245fb573B28722A1", + erc721Minter: "0x0e5C62beAD14795F3eA9969B139F5433DF85319e", + minter_addr: "0xce50496C6616F4688d5775966E302A49e3876Dff", nonce: Chain.MOONBEAM, }, polygonParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), - erc721Minter: "0x88B830293D4B25dBDAF97A88dc188Fbf1d41F5C8", - erc1155Minter: "0xCb83A7Db754F2586DB00384E4dd317D9Dd86913c", - erc721_addr: "0x2d6907df316D5960e9064412a71810A7c9D8f4c7", - erc1155_addr: "0xb35fF4cC9311324bb8DED72331498994f764Fe0f", - minter_addr: "0x8BD036a8a60b39cbAd5CBbf30E04dbe91FbeFc94", + erc721Minter: "0x32732607F67f9FC2007AF84e54B2ea9042327ed3", + erc1155Minter: "0x62E26979F555Ec475981D8D1A7e269f747643f22", + erc721_addr: "0x54024A9351B7aD68921914942f776489E71c467e", + erc1155_addr: "0x8D3e050555356a2eD4ad8cfFb189994035F5803C", + minter_addr: "0xF712f9De44425d8845A1d597a247Fe88F4A23b6f", nonce: Chain.POLYGON, feeMargin, }, From d63c123905318b5c5a114aa3150d4b2932f3a2e8 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Wed, 30 Nov 2022 11:29:08 +0200 Subject: [PATCH 807/956] add harmoney to staging --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 1bf1ef73e..3443eeb30 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -437,6 +437,17 @@ export namespace ChainFactoryConfigs { nonce: Chain.ELROND, feeMargin, }, + harmonyParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), + minter_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", + erc721_addr: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", + erc1155_addr: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", + erc1155Minter: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + erc721Minter: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + nonce: Chain.HARMONY, + feeMargin, + }, velasParams: { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), From 37aeed086cc5f7807f64bb5c5d755876a63e752a Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 30 Nov 2022 15:30:23 +0530 Subject: [PATCH 808/956] feat(pre-transfer): generalise the extra args parameter to all chains --- src/helpers/algorand.ts | 2 +- src/helpers/chain.ts | 8 +++++--- src/helpers/dfinity/dfinity.ts | 2 +- src/helpers/elrond.ts | 2 +- src/helpers/near.ts | 34 +++++++++++++++------------------- src/helpers/secret.ts | 2 +- src/helpers/tezos.ts | 2 +- src/helpers/ton.ts | 2 +- src/helpers/tron.ts | 2 +- src/helpers/web3.ts | 2 +- 10 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/helpers/algorand.ts b/src/helpers/algorand.ts index b73b4aeb0..1e8112f10 100644 --- a/src/helpers/algorand.ts +++ b/src/helpers/algorand.ts @@ -136,7 +136,7 @@ export type AlgorandHelper = ChainNonceGet & walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; myAlgoSigner(myAlgo: MyAlgoConnect, address: string): AlgoSignerH; } & Pick< - PreTransfer, + PreTransfer, "preTransfer" > & { XpNft: string } & GetFeeMargins & BalanceCheck & diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 2cc86b925..d2d388f93 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -15,16 +15,18 @@ export type NftInfo = { /** * Action to perform before transfer/unfreeze (if any) */ -export interface PreTransfer { +export interface PreTransfer { preTransfer( sender: Signer, nft: NftInfo, - fee: BigNumber + fee: BigNumber, + args?: ExtraArgs ): Promise; preUnfreeze( sender: Signer, nft: NftInfo, - fee: BigNumber + fee: BigNumber, + args?: ExtraArgs ): Promise; } diff --git a/src/helpers/dfinity/dfinity.ts b/src/helpers/dfinity/dfinity.ts index 960aff574..699df76a8 100644 --- a/src/helpers/dfinity/dfinity.ts +++ b/src/helpers/dfinity/dfinity.ts @@ -99,7 +99,7 @@ export type DfinityHelper = ChainNonceGet & UnfreezeForeignNft & EstimateTxFees & ValidateAddress & { XpNft: string } & Pick< - PreTransfer, + PreTransfer, "preTransfer" > & BalanceCheck & diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index d848b6426..5a7ad56fe 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -201,7 +201,7 @@ export type ElrondHelper = BalanceCheck & } & ChainNonceGet & ValidateAddress & ExtractAction & - PreTransfer & + PreTransfer & EstimateTxFees & EstimateTxFeesBatch & PreTransferRawTxn & diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 51ddee369..bc29e7011 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -30,10 +30,16 @@ import { UnfreezeForeignNft, ValidateAddress, BalanceCheck, + PreTransfer, } from "./chain"; type NearTxResult = [FinalExecutionOutcome, any]; +type NearPreTransferArgs = { + to: string; + receiver: string; +}; + export type NearParams = { readonly networkId: string; readonly nonce: number; @@ -77,30 +83,16 @@ interface BrowserMethods { getUserMinter(keypair: string, address: string): Promise; } -interface PreTransferNear { - preTransfer( - sender: Account, - nft: NftInfo, - fee: string, - to: number, - receiver: string - ): Promise; - preUnfreeze( - sender: Account, - nft: NftInfo, - fee: string, - to: number, - receiver: string - ): Promise; -} - export type NearHelper = ChainNonceGet & BalanceCheck & TransferNftForeign & UnfreezeForeignNft & MintNft & EstimateTxFees & - Pick & + Pick< + PreTransfer, + "preTransfer" + > & ValidateAddress & { XpNft: string; nftList(owner: Account, contract: string): Promise[]>; @@ -201,10 +193,14 @@ export async function nearHelperFactory({ }; }); }, - async preTransfer(sender, nft, _fee, to, receiver) { + async preTransfer(sender, nft, _fee, args) { if (await isApproved(sender, nft)) { return undefined; } + if (!args) { + throw new Error("Missing args"); + } + const { receiver, to } = args; const walletCallbackUrl = getWalletCallbackUrl( `NEARTRX=true&type=approve&to=${to}&receiver=${encodeURIComponent( receiver diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index d977db12a..416bb338b 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -45,7 +45,7 @@ export type SecretHelper = TransferNftForeign & ValidateAddress & EstimateTxFees & ChainNonceGet & - PreTransfer & + PreTransfer & BalanceCheck & GetFeeMargins & { XpNft: string } & GetProvider & MintNft & { diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index c738cb575..ab485c4fe 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -59,7 +59,7 @@ export type TezosHelper = TransferNftForeign< ValidateAddress & EstimateTxFees & ChainNonceGet & - Pick, "preTransfer"> & { + Pick, "preTransfer"> & { isApprovedForMinter( nft: NftInfo, signer: TezosSigner diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 08d68ccae..bcd5e1047 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -54,7 +54,7 @@ export type TonNft = { export type TonHelper = ChainNonceGet & BalanceCheck & - PreTransfer & + PreTransfer & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 08b2315c1..1cbe50f75 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -89,7 +89,7 @@ export type TronHelper = BaseTronHelper & ValidateAddress & IsApproved & ExtractAction & - Pick, "preTransfer"> & + Pick, "preTransfer"> & PreTransferRawTxn & ExtractTxnStatus & WhitelistCheck & { diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 28df2c641..c97d9a4ca 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -138,7 +138,7 @@ export type Web3Helper = BaseWeb3Helper & ValidateAddress & ExtractAction & { createWallet(privateKey: string): Wallet; - } & Pick, "preTransfer"> & + } & Pick, "preTransfer"> & PreTransferRawTxn & ExtractTxnStatus & GetProvider & { From d9ad1bb05ad8971453c8604b7a8445d20c50c684 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 30 Nov 2022 22:07:08 +0530 Subject: [PATCH 809/956] helpers: solana: fix native NFT transfers --- src/helpers/solana/index.ts | 72 +++++++++++++++++++++++++++++++------ 1 file changed, 61 insertions(+), 11 deletions(-) diff --git a/src/helpers/solana/index.ts b/src/helpers/solana/index.ts index a81bf75cf..00de0db55 100644 --- a/src/helpers/solana/index.ts +++ b/src/helpers/solana/index.ts @@ -1,4 +1,10 @@ -import { Wallet, BN, Program, AnchorProvider } from "@project-serum/anchor"; +import { + Wallet, + BN, + Program, + AnchorProvider, + Spl, +} from "@project-serum/anchor"; import { Account, createAssociatedTokenAccountInstruction, @@ -110,6 +116,53 @@ async function getOrCreateAssociatedTokenAccount( export async function solanaHelper(args: SolanaParams): Promise { const conn = new Connection(args.endpoint); + async function getOrCreateTokenAccount( + mint: PublicKey, + owner: PublicKey, + provider: AnchorProvider + ) { + const tokenProgram = Spl.token(provider); + const program = Spl.associatedToken(provider); + + const [associatedToken] = await PublicKey.findProgramAddress( + [owner.toBuffer(), tokenProgram.programId.toBuffer(), mint.toBuffer()], + program.programId + ); + + try { + const tokenAccount = await tokenProgram.account.token.fetch( + associatedToken + ); + return { + address: associatedToken, + owner: tokenAccount.authority, + ...tokenAccount, + }; + } catch (e) { + try { + await program.methods + .create() + .accounts({ + mint, + owner, + associatedAccount: associatedToken, + }) + .rpc(); + + const tokenAccount = await tokenProgram.account.token.fetch( + associatedToken + ); + return { + address: associatedToken, + owner: tokenAccount.authority, + ...tokenAccount, + }; + } catch (e) { + throw e; + } + } + } + return { XpNft: args.xpnftAddr, connection: conn, @@ -128,18 +181,15 @@ export async function solanaHelper(args: SolanaParams): Promise { ); const mintAddr = new PublicKey(id.native.nftMint); - const fromTokenAcc = await getOrCreateAssociatedTokenAccount( - conn, - sender, + const fromTokenAcc = await getOrCreateTokenAccount( mintAddr, - sender.publicKey + sender.publicKey, + provider ); - const toTokenAcc = await getOrCreateAssociatedTokenAccount( - conn, - sender, + const toAccount = await getOrCreateTokenAccount( mintAddr, - sender.publicKey, - true + bridge, + provider ); const tx = await bridgeContract.methods .freezeNft( @@ -153,7 +203,7 @@ export async function solanaHelper(args: SolanaParams): Promise { bridge, authority: sender.publicKey, from: fromTokenAcc.address, - to: toTokenAcc.address, + to: toAccount.address, tokenProgram: TOKEN_PROGRAM_ID, }) .rpc(); From 6d17013c152af6d161d0170a66aee7176bbac019 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Thu, 1 Dec 2022 19:24:52 +0530 Subject: [PATCH 810/956] web3: response: return full txn except in abeychain --- src/helpers/web3.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index c97d9a4ca..3e1194488 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -652,7 +652,10 @@ export async function web3HelperFactory( //@ts-ignore txHash ); - return provider.getTransaction(txHash); + if (params.nonce === 33) { + return await provider.getTransaction(txHash); + } + return txr as any; }, async unfreezeWrappedNft( sender: Signer, @@ -702,8 +705,10 @@ export async function web3HelperFactory( } await notifyValidator(txHash); - - return res; + if (params.nonce === 33) { + return await provider.getTransaction(txHash); + } + return res as any; }, async estimateValidateTransferNft( _to: string, From 0779ce4b3113cdd4ded49e16f8edd8157223396d Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Thu, 1 Dec 2022 16:13:31 +0200 Subject: [PATCH 811/956] v 4.0.2 - add Caduceus --- README.md | 12 +++++++++--- package.json | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6f3a7f91b..2e10942c6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
-# XP Network JS API +# XP Network JS API v 4.0.2
@@ -52,10 +52,10 @@ OR npm i --save xp.network @elrondnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp ``` -To import the latest version of xp.network v.2.0 library: +To import the latest version of xp.network library: ```bash -yarn add "git+https://github.com/xp-network/xpjs#bleeding-edge" @elrondnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp +yarn add "git+https://github.com/xp-network/xpjs#bleeding-edge" ```
@@ -155,6 +155,8 @@ const signer = new Wallet( | NEAR | nearParams | 31 | | Moonbeam | moonbeamParams | 32 | | Abeychain | abeychainParams | 33 | +| Aptos | aptosParams | 34 | +| Caduceus | caduceusParams | 35 |
@@ -277,6 +279,7 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor const skale = await factory.inner(Chain.SKALE); // 30 const moonbeam = await factory.inner(Chain.MOONBEAM); // 32 const abeychain = await factory.inner(Chain.ABEYCHAIN); // 33 + const causeus = await factory.inner(Chain.CADUCEUS); //35 // Non-EVM chains: // Inner Object ====================================== Chain Nonce @@ -288,6 +291,7 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor const ton = await factory.inner(Chain.TON); // 27 const dfinity = await factory.inner(Chain.DFINITY); // 28 const near = await factory.inner(Chain.NEAR); // 31 + const aptos = await factory.inner(Chain.APTOS); //34 })(); ``` @@ -345,6 +349,7 @@ const elrondChosenOne = elrondNfts[0]; const tronChosenOne = tronNfts[0]; const algoChosenOne = algoNfts[0]; const tezosChosenOne = tezosNfts[0]; +const tonChosenOne = tonNfts[0]; // Checking the selected NFT object console.log("EVM Selected NFT: ", web3ChosenOne); @@ -352,6 +357,7 @@ console.log("Elrond Selected NFT: ", elrondChosenOne); console.log("Tron Selected NFT: ", tronChosenOne); console.log("Algorand Selected NFT: ", algoChosenOne); console.log("Tezos Selected NFT: ", tezosChosenOne); +console.log("Ton Selected NFT: ", tonChosenOne); ``` ### 5.2 Example of console logged native BSC NFT object: diff --git a/package.json b/package.json index 96c7049d7..227d7c22c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "4.0.1", + "version": "4.0.2", "author": "xp-network ", "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", From 734ce5e2fb7e11cb8c9eecd0be6bbab57b28fe1f Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 5 Dec 2022 20:25:27 +0200 Subject: [PATCH 812/956] add caduceus staging --- src/consts.ts | 1 + src/factory/factories.ts | 11 +++++++++++ yarn.lock | 6 ------ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 9f53bafa6..6208df3b6 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -92,6 +92,7 @@ export enum MainNetRpcUri { ABEYCHAIN = "https://rpc.abeychain.com", TON = "https://toncenter.com/api/v2/jsonRPC", APTOS = "https://fullnode.mainnet.aptoslabs.com/", + CADUCEUS = "https://mainnet.block.caduceus.foundation/", // TODO: Algorand } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 3443eeb30..41ea9fba0 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -414,6 +414,17 @@ export namespace ChainFactoryConfigs { xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", feeMargin, }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CADUCEUS), + erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", + erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", + erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", + minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + nonce: Chain.CADUCEUS, + }, algorandParams: { algodApiKey: "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", diff --git a/yarn.lock b/yarn.lock index 43a15200a..118271c55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3484,12 +3484,6 @@ crypto-browserify@3.12.0: dependencies: axios "^0.21.1" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": - version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#83c1506548400d824af5666ded33eaf55f499f80" - dependencies: - axios "^0.21.1" - crypto-hash@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" From 271b5c7d45cb8f5ae267e60d0eee005b7b845608 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 5 Dec 2022 20:54:31 +0200 Subject: [PATCH 813/956] add caduceus mainnet --- src/factory/factories.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 41ea9fba0..bb5e6f9e0 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -382,6 +382,7 @@ export namespace ChainFactoryConfigs { chainId: "24", feeMargin, }, + nearParams: { networkId: "testnet", nonce: Chain.NEAR, @@ -598,6 +599,17 @@ export namespace ChainFactoryConfigs { nonce: Chain.ELROND, feeMargin, }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CADUCEUS), + erc1155_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", + erc721_addr: "0x3410b0e0b1aBAe452b3F031AdE8dab347f5Fb60b", + erc1155Minter: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", + erc721Minter: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", + minter_addr: "0xd3f55Dd3da582E8E55AcE14e28352a95334E8feb", + nonce: Chain.CADUCEUS, + }, dfinityParams: { agent: new HttpAgent({ host: "https://ic0.app", From 6b9948b7287f5cf4d3562105d61b0ae06f0b2687 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 6 Dec 2022 12:23:06 +0200 Subject: [PATCH 814/956] CADUCEUS: constants --- src/consts.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 6208df3b6..e8d379b0b 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -565,7 +565,10 @@ CHAIN_INFO.set(Chain.CADUCEUS, { decimals: 1e18, name: "Caduceus", nonce: Chain.CADUCEUS, - blockExplorerUrl: "https://galaxy.scan.caduceus.foundation/tx/", + blockExplorerUrl: "https://mainnet.scan.caduceus.foundation/tx/", + tnBlockExplorerUrl: "https://galaxy.scan.caduceus.foundation/tx/", + blockExplorerUrlAddr: "https://mainnet.scan.caduceus.foundation/address/", + tnBlockExplorerUrlAddr: "https://galaxy.scan.caduceus.foundation/address/", type: ChainType.EVM, chainId: 256256, tnChainId: 512512, From fa6b454f858d51af832b9a6e5d675060c27f8671 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 6 Dec 2022 16:53:47 +0200 Subject: [PATCH 815/956] add explorer consts to params --- src/consts.ts | 139 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 112 insertions(+), 27 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index e8d379b0b..bc238a637 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -226,7 +226,10 @@ CHAIN_INFO.set(Chain.ELROND, { nonce: 2, decimals: 1e18, constructor: elrondHelperFactory, - blockExplorerUrl: "https://devnet-explorer.elrond.com/transactions/", + blockExplorerUrl: "https://explorer.elrond.com/transactions/", + blockExplorerUrlAddr: "https://explorer.elrond.com/address/", + tnBlockExplorerUrl: "https://testnet-explorer.elrond.com/transactions/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.elrond.com/address/", currency: SupportedCurrency.EGLD, type: ChainType.ELROND, }); @@ -245,7 +248,10 @@ CHAIN_INFO.set(Chain.BSC, { nonce: 4, chainId: 97, decimals: 1e18, - blockExplorerUrl: "https://testnet.bscscan.com/tx", + blockExplorerUrl: "https://bscscan.com/tx/", + blockExplorerUrlAddr: "https://bscscan.com/address/", + tnBlockExplorerUrl: "https://testnet.bscscan.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet.bscscan.com/address/", constructor: web3HelperFactory, currency: SupportedCurrency.BNB, type: ChainType.EVM, @@ -256,7 +262,10 @@ CHAIN_INFO.set(Chain.ETHEREUM, { currency: SupportedCurrency.ETH, chainId: 5, decimals: 1e18, - blockExplorerUrl: "https://goerli.etherscan.io/tx", + blockExplorerUrl: "https://etherscan.io/tx/", + blockExplorerUrlAddr: "https://etherscan.io/address/", + tnBlockExplorerUrl: "https://goerli.etherscan.io/tx/", + tnBlockExplorerUrlAddr: "https://goerli.etherscan.io/address/", constructor: web3HelperFactory, type: ChainType.EVM, }); @@ -265,7 +274,10 @@ CHAIN_INFO.set(Chain.AVALANCHE, { nonce: 6, chainId: 43113, decimals: 1e18, - blockExplorerUrl: "https://cchain.explorer.avax-test.network/tx", + blockExplorerUrl: "https://snowtrace.io/tx/", + tnBlockExplorerUrl: "https://testnet.snowtrace.io/tx/", + blockExplorerUrlAddr: "https://snowtrace.io/address/", + tnBlockExplorerUrlAddr: "https://testnet.snowtrace.io/address/", constructor: web3HelperFactory, currency: SupportedCurrency.AVAX, type: ChainType.EVM, @@ -275,7 +287,10 @@ CHAIN_INFO.set(Chain.POLYGON, { nonce: 0x7, chainId: 80001, decimals: 1e18, - blockExplorerUrl: "https://mumbai.polygonscan.com/tx", + blockExplorerUrl: "https://mumbai.polygonscan.com/tx/", + tnBlockExplorerUrl: "https://mumbai.polygonscan.com/tx/", + blockExplorerUrlAddr: "https://polygonscan.com/address/", + tnBlockExplorerUrlAddr: "https://mumbai.polygonscan.com/address/", constructor: web3HelperFactory, currency: SupportedCurrency.MATIC, type: ChainType.EVM, @@ -285,7 +300,10 @@ CHAIN_INFO.set(Chain.FANTOM, { nonce: 0x8, decimals: 1e18, chainId: 4002, - blockExplorerUrl: "https://explorer.testnet.fantom.network/transactions", + blockExplorerUrl: "https://ftmscan.com/tx/", + blockExplorerUrlAddr: "https://ftmscan.com/address/", + tnBlockExplorerUrlAddr: "https://testnet.ftmscan.com/address/", + tnBlockExplorerUrl: "https://testnet.ftmscan.com/tx/", constructor: web3HelperFactory, currency: SupportedCurrency.FTM, type: ChainType.EVM, @@ -294,7 +312,10 @@ CHAIN_INFO.set(Chain.TRON, { name: "Tron", nonce: 0x9, decimals: 1e6, - blockExplorerUrl: "https://shasta.tronscan.org/#/transaction", + blockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", + tnBlockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", + blockExplorerUrlAddr: "https://tronscan.io/#/address/", + tnBlockExplorerUrlAddr: "https://shasta.tronscan.org/#/address/", constructor: tronHelperFactory, currency: SupportedCurrency.TRX, type: ChainType.TRON, @@ -314,7 +335,10 @@ CHAIN_INFO.set(Chain.HARMONY, { nonce: 0xc, decimals: 1e18, chainId: 1666700000, - blockExplorerUrl: "https://explorer.pops.one/tx", + blockExplorerUrl: "https://explorer.harmony.one/tx/", + tnBlockExplorerUrl: "https://explorer.testnet.harmony.one/tx/", + blockExplorerUrlAddr: "https://explorer.harmony.one/address/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.harmony.one/address/", constructor: web3HelperFactory, currency: SupportedCurrency.ONE, type: ChainType.EVM, @@ -338,7 +362,10 @@ CHAIN_INFO.set(Chain.XDAI, { nonce: 0xe, decimals: 1e18, chainId: 0x64, - blockExplorerUrl: "https://blockscout.com/xdai/mainnet/", + blockExplorerUrl: "https://blockscout.com/xdai/mainnet/tx/", + blockExplorerUrlAddr: "https://blockscout.com/xdai/mainnet/address/", + tnBlockExplorerUrl: "https://blockscout.com/xdai/testnet/tx/", + tnBlockExplorerUrlAddr: "https://blockscout.com/xdai/testnet/address/", constructor: web3HelperFactory, currency: SupportedCurrency.XDAI, type: ChainType.EVM, @@ -348,7 +375,10 @@ CHAIN_INFO.set(Chain.ALGORAND, { nonce: 0xf, decimals: 1e6, chainId: undefined, - blockExplorerUrl: "https://algoexplorer.io/tx", + blockExplorerUrl: "https://algoexplorer.io/tx/", + tnBlockExplorerUrl: "https://testnet.algoexplorer.io/tx/", + blockExplorerUrlAddr: "https://algoexplorer.io/address/", + tnBlockExplorerUrlAddr: "https://testnet.algoexplorer.io/address/", currency: SupportedCurrency.ALGO, constructor: (p) => Promise.resolve(algorandHelper(p)), type: ChainType.ALGORAND, @@ -358,7 +388,11 @@ CHAIN_INFO.set(Chain.FUSE, { nonce: 0x10, decimals: 1e18, chainId: undefined, - blockExplorerUrl: "https://explorer.fuse.io/tx", + blockExplorerUrl: "https://explorer.fuse.io/tx/", + tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", + blockExplorerUrlAddr: "https://explorer.fuse.io/address/", + tnBlockExplorerUrlAddr: "https://explorer.fusespark.io/address/", + currency: SupportedCurrency.FUSE, constructor: web3HelperFactory, type: ChainType.EVM, @@ -379,12 +413,18 @@ CHAIN_INFO.set(Chain.TEZOS, { decimals: 1e6, constructor: tezosHelperFactory, currency: SupportedCurrency.XTZ, - blockExplorerUrl: "https://tezblock.io/transaction", + blockExplorerUrl: "https://tzkt.io/", + tnBlockExplorerUrl: "https://ghostnet.tzkt.io/", + tnBlockExplorerUrlAddr: "https://ghostnet.tzkt.io/", + blockExplorerUrlAddr: "https://tzkt.io/", type: ChainType.TEZOS, }); CHAIN_INFO.set(Chain.VELAS, { name: "Velas", - blockExplorerUrl: "https://explorer.velas.com/tx", + blockExplorerUrl: "https://explorer.velas.com/tx/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.velas.com/address/", + blockExplorerUrlAddr: "https://explorer.velas.com/address/", + tnBlockExplorerUrl: "https://explorer.testnet.velas.com/tx/", nonce: 0x13, decimals: 1e18, constructor: web3HelperFactory, @@ -394,7 +434,10 @@ CHAIN_INFO.set(Chain.VELAS, { }); CHAIN_INFO.set(Chain.AURORA, { name: "Aurora", - blockExplorerUrl: "https://aurorascan.dev/tx", + blockExplorerUrl: "https://aurorascan.dev/tx/", + tnBlockExplorerUrl: "https://explore-testnet.vechain.org/tx/", + blockExplorerUrlAddr: "https://aurorascan.dev/address/", + tnBlockExplorerUrlAddr: "https://explore-testnet.vechain.org/address/", nonce: Chain.AURORA, decimals: 1e18, constructor: web3HelperFactory, @@ -404,7 +447,10 @@ CHAIN_INFO.set(Chain.AURORA, { }); CHAIN_INFO.set(Chain.IOTEX, { name: "IoTeX", - blockExplorerUrl: "https://iotexscan.io/tx", + blockExplorerUrl: "https://iotexscan.io/tx/", + blockExplorerUrlAddr: "https://iotexscan.io/address/", + tnBlockExplorerUrl: "https://testnet.iotexscan.io/tx/", + tnBlockExplorerUrlAddr: "https://testnet.iotexscan.io/address/", nonce: 0x14, decimals: 1e18, constructor: web3HelperFactory, @@ -414,7 +460,10 @@ CHAIN_INFO.set(Chain.IOTEX, { }); CHAIN_INFO.set(Chain.GODWOKEN, { name: "GodWoken", - blockExplorerUrl: "https://aggron.layerview.io/tx/", + blockExplorerUrl: "https://gwscan.com/tx/", + tnBlockExplorerUrl: "https://v1.testnet.gwscan.com/tx/", + blockExplorerUrlAddr: "https://gwscan.com/account/", + tnBlockExplorerUrlAddr: "https://v1.testnet.gwscan.com/account/", constructor: web3HelperFactory, nonce: 0x16, decimals: 1e18, @@ -424,7 +473,11 @@ CHAIN_INFO.set(Chain.GODWOKEN, { }); CHAIN_INFO.set(Chain.GATECHAIN, { name: "GateChain", - blockExplorerUrl: "https://gatescan.org/testnet/tx", + + blockExplorerUrl: "https://gatescan.org/tx/", + tnBlockExplorerUrl: "https://gatescan.org/testnet/tx/", + blockExplorerUrlAddr: "https://gatescan.org/address/", + tnBlockExplorerUrlAddr: "https://gatescan.org/testnet/address/", constructor: web3HelperFactory, nonce: 0x17, decimals: 1e18, @@ -434,7 +487,10 @@ CHAIN_INFO.set(Chain.GATECHAIN, { }); CHAIN_INFO.set(Chain.VECHAIN, { name: "VeChain", - blockExplorerUrl: "https://explore-testnet.vechain.org/transactions/", + tnBlockExplorerUrl: "https://explore-testnet.vechain.org/transactions/", + blockExplorerUrlAddr: "https://explore.vechain.org/accounts/", + blockExplorerUrl: "https://explore.vechain.org/transactions/", + tnBlockExplorerUrlAddr: "https://explore-testnet.vechain.org/accounts/", constructor: web3HelperFactory, nonce: 0x19, currency: SupportedCurrency.VET, @@ -444,12 +500,14 @@ CHAIN_INFO.set(Chain.VECHAIN, { }); CHAIN_INFO.set(Chain.SECRET, { name: "Secret", - blockExplorerUrl: "", // TODO + //blockExplorerUrl: "", // TODO constructor: secretHelperFactory, nonce: Chain.SECRET, currency: SupportedCurrency.SCRT, decimals: 1e6, type: ChainType.COSMOS, + blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", + blockExplorerUrlAddr: "https://atomscan.com/secret-network/accounts/", }); CHAIN_INFO.set(Chain.SOLANA, { name: "Solana", @@ -460,7 +518,7 @@ CHAIN_INFO.set(Chain.SOLANA, { decimals: 1e9, type: ChainType.SOLANA, }); -CHAIN_INFO.set(Chain.TON, { +/*CHAIN_INFO.set(Chain.TON, { name: "TON", blockExplorerUrl: "", // TODO constructor: tonHelper, @@ -477,21 +535,32 @@ CHAIN_INFO.set(Chain.DFINITY, { currency: SupportedCurrency.ICP, decimals: 1e8, type: ChainType.DFINITY, -}); +});*/ + CHAIN_INFO.set(Chain.HEDERA, { - blockExplorerUrl: "https://hashscan.io/#/testnet/transaction", + blockExplorerUrl: "https://hashscan.io/#/mainnet/transaction/", + tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", constructor: web3HelperFactory, currency: SupportedCurrency.HBAR, decimals: 1e6, nonce: Chain.HEDERA, name: "Hedera", type: ChainType.HEDERA, + blockExplorerUrlAddr: "https://hashscan.io/#/mainnet/account/", + tnBlockExplorerUrlAddr: "https://hashscan.io/#/testnet/account/", }); CHAIN_INFO.set(Chain.SKALE, { name: "Skale", + //needs additional query params blockExplorerUrl: + "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/tx/", + tnBlockExplorerUrl: "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", + blockExplorerUrlAddr: + "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/address/", + tnBlockExplorerUrlAddr: + "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", constructor: web3ERC20HelperFactory, currency: SupportedCurrency.SKL, decimals: 1e18, @@ -511,17 +580,19 @@ CHAIN_INFO.set(Chain.DFINITY, { }); CHAIN_INFO.set(Chain.NEAR, { - blockExplorerUrl: "https://explorer.testnet.near.org/transactions/", + blockExplorerUrl: "https://explorer.mainnet.near.org/transactions/", + tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", constructor: nearHelperFactory, currency: SupportedCurrency.NEAR, decimals: 1e24, name: "NEAR", nonce: Chain.NEAR, type: ChainType.NEAR, + blockExplorerUrlAddr: "https://explorer.mainnet.near.org/accounts/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.near.org/accounts/", }); CHAIN_INFO.set(Chain.MOONBEAM, { - blockExplorerUrl: "https://moonbase.moonscan.io/", constructor: web3HelperFactory, currency: SupportedCurrency.GLMR, decimals: 1e18, @@ -529,10 +600,17 @@ CHAIN_INFO.set(Chain.MOONBEAM, { nonce: Chain.MOONBEAM, chainId: 0x507, type: ChainType.EVM, + blockExplorerUrlAddr: "https://moonbeam.moonscan.io/address/", + tnBlockExplorerUrlAddr: "https://moonbase.moonscan.io/address/", + blockExplorerUrl: "https://moonscan.io/tx/", + tnBlockExplorerUrl: "https://moonbase.moonscan.io/tx/", }); CHAIN_INFO.set(Chain.ABEYCHAIN, { - blockExplorerUrl: "https://testnet-explorer.abeychain.com/", + tnBlockExplorerUrl: "https://testnet-explorer.abeychain.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.abeychain.com/address/", + blockExplorerUrl: "https://scan.abeychain.com/tx/", + blockExplorerUrlAddr: "https://scan.abeychain.com/address/", constructor: web3HelperFactory, currency: SupportedCurrency.ABEY, decimals: 1e18, @@ -542,13 +620,17 @@ CHAIN_INFO.set(Chain.ABEYCHAIN, { type: ChainType.EVM, }); CHAIN_INFO.set(Chain.APTOS, { - blockExplorerUrl: "https://explorer.aptoslabs.com/", constructor: aptosHelper, currency: SupportedCurrency.APTOS, decimals: 1e6, name: "Aptos", nonce: Chain.APTOS, type: ChainType.APTOS, + //needs additional query params + blockExplorerUrl: "https://explorer.aptoslabs.com/txn/", + blockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", + tnBlockExplorerUrl: "https://explorer.aptoslabs.com/txn/", + tnBlockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", }); CHAIN_INFO.set(Chain.TON, { name: "TON", @@ -557,7 +639,10 @@ CHAIN_INFO.set(Chain.TON, { decimals: 1e9, nonce: Chain.TON, type: ChainType.TON, - blockExplorerUrl: "https://testnet.tonscan.org/tx/", + tnBlockExplorerUrl: "https://testnet.tonscan.org/tx/", + blockExplorerUrl: "https://tonscan.org/tx/", + blockExplorerUrlAddr: "https://tonscan.org/address/", + tnBlockExplorerUrlAddr: "https://testnet.tonscan.org/address/", }); CHAIN_INFO.set(Chain.CADUCEUS, { constructor: web3HelperFactory, From ec7232e83f34140545f33fe30ed3c8d6caf57cdc Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 6 Dec 2022 18:13:27 +0200 Subject: [PATCH 816/956] secretjs lib --- package.json | 2 +- yarn.lock | 1636 +++++++++++++++++++++++--------------------------- 2 files changed, 744 insertions(+), 894 deletions(-) diff --git a/package.json b/package.json index 227d7c22c..4fac7cde1 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "1.0.0", - "secretjs": "^1.4.5", + "secretjs": "=1.4.5", "socket.io-client": "^4.1.3", "ton-x": "^2.0.0", "tonweb": "^0.0.57", diff --git a/yarn.lock b/yarn.lock index 118271c55..6866fcce5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,9 +17,9 @@ "@babel/highlight" "^7.18.6" "@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== "@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7", "@babel/highlight@^7.18.6": version "7.18.6" @@ -37,19 +37,12 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" - integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" + integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.18.3": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259" - integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== - dependencies: - regenerator-runtime "^0.13.4" + regenerator-runtime "^0.13.11" "@cosmjs/encoding@0.27.1": version "0.27.1" @@ -171,10 +164,15 @@ flow-copy-source "^2.0.9" flow-typed "^3.2.1" -"@esbuild/linux-loong64@0.15.7": - version "0.15.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz#1ec4af4a16c554cbd402cc557ccdd874e3f7be53" - integrity sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw== +"@esbuild/android-arm@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" + integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== + +"@esbuild/linux-loong64@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" + integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== "@eslint/eslintrc@^0.4.3": version "0.4.3" @@ -191,7 +189,15 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4": +"@ethereumjs/common@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" + integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.1" + +"@ethereumjs/common@^2.5.0": version "2.6.5" resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== @@ -199,13 +205,13 @@ crc-32 "^1.2.0" ethereumjs-util "^7.1.5" -"@ethereumjs/tx@^3.3.2": - version "3.5.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" - integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== +"@ethereumjs/tx@3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" + integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== dependencies: - "@ethereumjs/common" "^2.6.4" - ethereumjs-util "^7.1.5" + "@ethereumjs/common" "^2.5.0" + ethereumjs-util "^7.1.2" "@ethersproject/abi@5.5.0": version "5.5.0" @@ -444,10 +450,10 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@5.7.0", "@ethersproject/networks@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.0.tgz#df72a392f1a63a57f87210515695a31a245845ad" - integrity sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA== +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" @@ -481,10 +487,10 @@ dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.7.0", "@ethersproject/providers@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.0.tgz#a885cfc7650a64385e7b03ac86fe9c2d4a9c2c63" - integrity sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA== +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.0": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== dependencies: "@ethersproject/abstract-provider" "^5.7.0" "@ethersproject/abstract-signer" "^5.7.0" @@ -659,10 +665,10 @@ "@ethersproject/properties" "^5.5.0" "@ethersproject/strings" "^5.5.0" -"@ethersproject/web@5.7.0", "@ethersproject/web@^5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.0.tgz#40850c05260edad8b54827923bbad23d96aac0bc" - integrity sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA== +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== dependencies: "@ethersproject/base64" "^5.7.0" "@ethersproject/bytes" "^5.7.0" @@ -693,17 +699,17 @@ "@ethersproject/strings" "^5.7.0" "@grpc/grpc-js@^1.5.3": - version "1.6.12" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.12.tgz#20f710d8a8c5c396b2ae9530ba6c06b984614fdf" - integrity sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw== + version "1.7.3" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.7.3.tgz#f2ea79f65e31622d7f86d4b4c9ae38f13ccab99a" + integrity sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog== dependencies: "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" "@grpc/proto-loader@^0.7.0": - version "0.7.2" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.2.tgz#fa63178853afe1473c50cff89fe572f7c8b20154" - integrity sha512-jCdyLIT/tdQ1zhrbTQnJNK5nbDf0GoBpy5jVNywBzzMDF+Vs6uEaHnfz46dMtDxkvwrF2hzk5Z67goliceH0sA== + version "0.7.3" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.3.tgz#75a6f95b51b85c5078ac7394da93850c32d36bb8" + integrity sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" @@ -1067,13 +1073,13 @@ rxjs "6" semver "^7.3.5" -"@ledgerhq/devices@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-7.0.0.tgz#ba743aa6d0725562e8b1bd5c4f0b7db2cf573710" - integrity sha512-vq4B33WdU0dRAJIRFWZMj6w1W1yw1i4mekCmhk7N9wPaFrtGWZ2iI9WDihsNOBooCWKQe8Jsb9eD8RVThbSlFQ== +"@ledgerhq/devices@^7.0.5": + version "7.0.5" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-7.0.5.tgz#2b3f69b84d4bccb2c4b1d34e534444da862f4880" + integrity sha512-2o2zD2Yv1Hgd3+R2aLCvlyT7NxBz2nltawTCPSXaf3+8MDIyZbiJlXi43hLEISRFBG3u3bYwAQuiOisimN9C6Q== dependencies: - "@ledgerhq/errors" "^6.10.1" - "@ledgerhq/logs" "^6.10.0" + "@ledgerhq/errors" "^6.12.1" + "@ledgerhq/logs" "^6.10.1" rxjs "6" semver "^7.3.5" @@ -1082,10 +1088,10 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== -"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.10.1": - version "6.10.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.10.1.tgz#510688251b6261744c6b1cde6cfd2dfb13fc27b2" - integrity sha512-92d1zRQleR1AQ4CAXgWgDtKUms+8EwShLVUcajI+BLWvgJ1Vclmq6PsBIDEQbsm+riVu/Ji3LcHdmgFgmi0VGw== +"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.12.1": + version "6.12.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.12.1.tgz#99ad10bd528942bdfde0ef3d4d0dce658f6f4405" + integrity sha512-2qeUSUCpQbMhV9eLJDLI8wycFwTcWszP8g3cJycBt9Jf1VczC5MRERwAQv5AYhPa4rcy+jLKBOVZYxc35r5l7g== "@ledgerhq/hw-transport-node-hid-noevents@^5.51.1": version "5.51.1" @@ -1144,14 +1150,14 @@ "@ledgerhq/logs" "^5.48.0" "@ledgerhq/hw-transport-webhid@^6.11.2": - version "6.27.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.2.tgz#e3ee2501b1353a335d7436c1f2b95821d2b2f426" - integrity sha512-ZlyNheUhcxBZqjJzhSfJfeGQvNbeyWs9866rdQjVeG1zsbTJi0+6tfRv8J248QISS8vHtG5IMSxgMg9mtux9dQ== + version "6.27.8" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.8.tgz#9af7b980d93b69ec166a4c8eb92df09d137d1059" + integrity sha512-UmpZEnVsojmJMKS+IdkzSBvs3d3uz2Bj7R+zvDXNHjWX89gcqyGOyATkYP5mm/EWE/7YLjgvF49WzCIqbEcTdQ== dependencies: - "@ledgerhq/devices" "^7.0.0" - "@ledgerhq/errors" "^6.10.1" - "@ledgerhq/hw-transport" "^6.27.2" - "@ledgerhq/logs" "^6.10.0" + "@ledgerhq/devices" "^7.0.5" + "@ledgerhq/errors" "^6.12.1" + "@ledgerhq/hw-transport" "^6.27.8" + "@ledgerhq/logs" "^6.10.1" "@ledgerhq/hw-transport-webusb@5.48.0": version "5.48.0" @@ -1182,13 +1188,13 @@ "@ledgerhq/errors" "^5.50.0" events "^3.3.0" -"@ledgerhq/hw-transport@^6.11.2", "@ledgerhq/hw-transport@^6.27.2": - version "6.27.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.2.tgz#318e24b13b4bc392277d0b3b6fbc568f86b41f01" - integrity sha512-GF4pmK78rEKhZfbmunwQ131c+0MGa6L5IoYlwgFcg6CaFpUjjPiTCKUFsm4flsE0Z0Ltn9QuKoe+xEHULo7rGA== +"@ledgerhq/hw-transport@^6.11.2", "@ledgerhq/hw-transport@^6.27.8": + version "6.27.8" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.8.tgz#57ece7e2b726216df698767de6828478fbe461e1" + integrity sha512-WSUgF1W3tAikSnAfeNAT2e2dgTdEQd5Vi/095C2mR5Fr0/POCSl9X4T9rlBhK5NSVD+nGXI0rN2ISj08zai8HQ== dependencies: - "@ledgerhq/devices" "^7.0.0" - "@ledgerhq/errors" "^6.10.1" + "@ledgerhq/devices" "^7.0.5" + "@ledgerhq/errors" "^6.12.1" events "^3.3.0" "@ledgerhq/logs@^5.30.0", "@ledgerhq/logs@^5.48.0", "@ledgerhq/logs@^5.50.0": @@ -1196,15 +1202,15 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@ledgerhq/logs@^6.10.0": - version "6.10.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.0.tgz#c012c1ecc1a0e53d50e6af381618dca5268461c1" - integrity sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw== +"@ledgerhq/logs@^6.10.0", "@ledgerhq/logs@^6.10.1": + version "6.10.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.1.tgz#5bd16082261d7364eabb511c788f00937dac588d" + integrity sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w== "@noble/ed25519@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.0.tgz#583ac38340a479314b9e348d4572101ed9492f9d" - integrity sha512-LeAxFK0+181zQOhOUuKE8Jnd3duzYhDNd3iCLxpmzA5K+e4I1FdbrK3Ot0ZHBwZMeRD/6EojyUfTbpHZ+hkQHg== + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.1.tgz#6899660f6fbb97798a6fbd227227c4589a454724" + integrity sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw== "@noble/hashes@1.0.0": version "1.0.0" @@ -1217,15 +1223,20 @@ integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== "@noble/hashes@^1.1.2", "@noble/hashes@~1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" - integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== + version "1.1.4" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.4.tgz#2611ebf5764c1bf754da7c7794de4fb30512336d" + integrity sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA== -"@noble/secp256k1@1.6.3", "@noble/secp256k1@^1.6.3": +"@noble/secp256k1@1.6.3": version "1.6.3" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== +"@noble/secp256k1@^1.6.3": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" + integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1357,10 +1368,10 @@ long "^5.2.0" protobufjs "^6.11.3" -"@peculiar/asn1-schema@^2.1.6": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.0.tgz#5368416eb336138770c692ffc2bab119ee3ae917" - integrity sha512-DtNLAG4vmDrdSJFPe7rypkcj597chNQL7u+2dBtYo5mh7VW2+im6ke+O0NVr8W1f4re4C3F71LhoMb0Yxqa48Q== +"@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz#21418e1f3819e0b353ceff0c2dad8ccb61acd777" + integrity sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ== dependencies: asn1js "^3.0.5" pvtsutils "^1.3.2" @@ -1374,14 +1385,14 @@ tslib "^2.0.0" "@peculiar/webcrypto@^1.0.22", "@peculiar/webcrypto@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.0.tgz#f941bd95285a0f8a3d2af39ccda5197b80cd32bf" - integrity sha512-U58N44b2m3OuTgpmKgf0LPDOmP3bhwNz01vAnj1mBwxBASRhptWYK+M3zG+HBkDqGQM+bFsoIihTW8MdmPXEqg== + version "1.4.1" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz#821493bd5ad0f05939bd5f53b28536f68158360a" + integrity sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw== dependencies: - "@peculiar/asn1-schema" "^2.1.6" + "@peculiar/asn1-schema" "^2.3.0" "@peculiar/json-schema" "^1.1.12" pvtsutils "^1.3.2" - tslib "^2.4.0" + tslib "^2.4.1" webcrypto-core "^1.7.4" "@pedrouid/environment@^1.0.1": @@ -1471,17 +1482,17 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@randlabs/communication-bridge@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@randlabs/communication-bridge/-/communication-bridge-1.0.0.tgz#9b1c0f440cf88ede8d58eb2ce641982ecb32bea9" - integrity sha512-CuJNwtMTG1LHR1LQNWUPv+8xPUdkRY9p61wGJEp8J/N3q8djmnMySvSQlyVqLBvXsTPKmYc0ZmfXEXCpb5P5Cw== +"@randlabs/communication-bridge@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@randlabs/communication-bridge/-/communication-bridge-1.0.1.tgz#d1ecfc29157afcbb0ca2d73122d67905eecb5bf3" + integrity sha512-CzS0U8IFfXNK7QaJFE4pjbxDGfPjbXBEsEaCn9FN15F+ouSAEUQkva3Gl66hrkBZOGexKFEWMwUHIDKpZ2hfVg== "@randlabs/myalgo-connect@^1.1.1": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.3.0.tgz#d591e578b3202a7ef7888a05948cfb836e5704c2" - integrity sha512-ujHa/7f0g1yHNr1ZZO8d/AF7WTTEFGS76D8aDUV4DmoxUX6mVS4IzED88j0wys7TRCJbjGib2vcPg3Y8nKxsMw== + version "1.4.2" + resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.4.2.tgz#ce3ad97b3889ea21da75852187511d3f6be0fa05" + integrity sha512-K9hEyUi7G8tqOp7kWIALJLVbGCByhilcy6123WfcorxWwiE1sbQupPyIU5f3YdQK6wMjBsyTWiLW52ZBMp7sXA== dependencies: - "@randlabs/communication-bridge" "^1.0.0" + "@randlabs/communication-bridge" "1.0.1" "@scarf/scarf@^1.1.1": version "1.1.1" @@ -1556,9 +1567,9 @@ start-server-and-test "^1.14.0" "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2": - version "1.56.2" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.56.2.tgz#5212e8b147ebc216ea5a7aa99d5b555ebe41f9bd" - integrity sha512-ByWfNA8H/1EB4g0749uhkQ0zZZAQealzRmmT3UMIv3xe0DeHwnrzQUavBtAlHNMrKqLHu8kd+XtPci6zreMjjA== + version "1.69.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.69.0.tgz#1756b1a26087172291c0b5163d3b44d24eef8aa7" + integrity sha512-iU2Q0IG25RITsxBkY1Vkk74LffRokViEcSblz4CGxyt+/V7xSkC2DNM0n0rB3aY/9+FvMiz4l5wHnD9UC4Ac/w== dependencies: "@babel/runtime" "^7.12.5" "@noble/ed25519" "^1.7.0" @@ -1572,7 +1583,6 @@ buffer "6.0.1" fast-stable-stringify "^1.0.0" jayson "^3.4.4" - js-sha3 "^0.8.0" node-fetch "2" rpc-websockets "^7.5.0" superstruct "^0.14.2" @@ -1856,14 +1866,14 @@ "@types/node" "*" "@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" - integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== dependencies: "@types/http-cache-semantics" "*" - "@types/keyv" "*" + "@types/keyv" "^3.1.4" "@types/node" "*" - "@types/responselike" "*" + "@types/responselike" "^1.0.0" "@types/chai-subset@^1.3.3": version "1.3.3" @@ -1873,9 +1883,9 @@ "@types/chai" "*" "@types/chai@*", "@types/chai@^4.3.1": - version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" - integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== + version "4.3.4" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" + integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== "@types/connect@^3.4.33": version "3.4.35" @@ -1906,7 +1916,7 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== -"@types/keyv@*": +"@types/keyv@^3.1.4": version "3.1.4" resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== @@ -1921,9 +1931,9 @@ "@types/lodash" "*" "@types/lodash@*": - version "4.14.188" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.188.tgz#e4990c4c81f7c9b00c5ff8eae389c10f27980da5" - integrity sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w== + version "4.14.191" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== "@types/long@^4.0.1": version "4.0.2" @@ -1935,10 +1945,10 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== -"@types/node@*", "@types/node@>=12.12.47", "@types/node@^18.7.13": - version "18.7.15" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.15.tgz#20ae1ec80c57ee844b469f968a1cd511d4088b29" - integrity sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ== +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^18.7.13": + version "18.11.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.11.tgz#1d455ac0211549a8409d3cdb371cd55cc971e8dc" + integrity sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g== "@types/node@10.12.18": version "10.12.18" @@ -1950,11 +1960,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== -"@types/node@>=13.7.0": - version "18.7.20" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.20.tgz#d9442de7b5cb166476340b4271b15300fe058a39" - integrity sha512-adzY4vLLr5Uivmx8+zfSJ5fbdgKxX8UMtjtl+17n0B1q1Nz8JEmE151vefMdpD+1gyh+77weN4qEhej/O7budQ== - "@types/node@^10.3.2": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -1977,13 +1982,6 @@ dependencies: "@types/node" "*" -"@types/responselike@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-3.0.0.tgz#5ecc1fc88552e5ac03de648a7796f9e125d002dc" - integrity sha512-zfgGLWx5IQOTJgQPD4UfGEhapTKUPC1ra/QCG02y3GUJWrhX05bBf/EfTh3aFj2DKi7cLo+cipXLNclD27tQXQ== - dependencies: - responselike "*" - "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -2185,28 +2183,32 @@ "@walletconnect/utils" "^1.8.0" "@walletconnect/crypto@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.2.tgz#3fcc2b2cde6f529a19eadd883dc555cd0e861992" - integrity sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.3.tgz#7b8dd4d7e2884fe3543c7c07aea425eef5ef9dd4" + integrity sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g== dependencies: - "@walletconnect/encoding" "^1.0.1" - "@walletconnect/environment" "^1.0.0" - "@walletconnect/randombytes" "^1.0.2" + "@walletconnect/encoding" "^1.0.2" + "@walletconnect/environment" "^1.0.1" + "@walletconnect/randombytes" "^1.0.3" aes-js "^3.1.2" hash.js "^1.1.7" + tslib "1.14.1" -"@walletconnect/encoding@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.1.tgz#93c18ce9478c3d5283dbb88c41eb2864b575269a" - integrity sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA== +"@walletconnect/encoding@^1.0.1", "@walletconnect/encoding@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.2.tgz#cb3942ad038d6a6bf01158f66773062dd25724da" + integrity sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag== dependencies: is-typedarray "1.0.0" + tslib "1.14.1" typedarray-to-buffer "3.1.5" -"@walletconnect/environment@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" - integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== +"@walletconnect/environment@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7" + integrity sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg== + dependencies: + tslib "1.14.1" "@walletconnect/iso-crypto@^1.6.5", "@walletconnect/iso-crypto@^1.8.0": version "1.8.0" @@ -2217,29 +2219,32 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" -"@walletconnect/jsonrpc-types@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.1.tgz#a96b4bb2bcc8838a70e06f15c1b5ab11c47d8e95" - integrity sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw== +"@walletconnect/jsonrpc-types@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.2.tgz#b79519f679cd6a5fa4a1bea888f27c1916689a20" + integrity sha512-CZe8tjJX73OWdHjrBHy7HtAapJ2tT0Q3TYhPBhRxi3643lwPIQWC9En45ldY14TZwgSewkbZ0FtGBZK0G7Bbyg== dependencies: keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" "@walletconnect/jsonrpc-utils@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz#5bd49865eef0eae48e8b45a06731dc18691cf8c7" - integrity sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.4.tgz#2009ba3907b02516f2caacd2fb871ff0d472b2cb" + integrity sha512-y0+tDxcTZ9BHBBKBJbjZxLUXb+zQZCylf7y/jTvDPNx76J0hYYc+F9zHzyqBLeorSKepLTk6yI8hw3NXbAQB3g== dependencies: - "@walletconnect/environment" "^1.0.0" - "@walletconnect/jsonrpc-types" "^1.0.1" + "@walletconnect/environment" "^1.0.1" + "@walletconnect/jsonrpc-types" "^1.0.2" + tslib "1.14.1" -"@walletconnect/randombytes@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.2.tgz#95c644251a15e6675f58fbffc9513a01486da49c" - integrity sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A== +"@walletconnect/randombytes@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.3.tgz#e795e4918367fd1e6a2215e075e64ab93e23985b" + integrity sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw== dependencies: - "@walletconnect/encoding" "^1.0.1" - "@walletconnect/environment" "^1.0.0" + "@walletconnect/encoding" "^1.0.2" + "@walletconnect/environment" "^1.0.1" randombytes "^2.1.0" + tslib "1.14.1" "@walletconnect/safe-json@1.0.0": version "1.0.0" @@ -2273,11 +2278,18 @@ js-sha3 "0.8.0" query-string "6.13.5" -"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": +"@walletconnect/window-getters@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== +"@walletconnect/window-getters@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" + integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== + dependencies: + tslib "1.14.1" + "@walletconnect/window-metadata@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5" @@ -2306,9 +2318,9 @@ abort-controller@3.0.0: event-target-shim "^5.0.0" abortcontroller-polyfill@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5" - integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== + version "1.7.5" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" + integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== accepts@~1.3.8: version "1.3.8" @@ -2334,9 +2346,9 @@ acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.4.1: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== aes-js@3.0.0: version "3.0.0" @@ -2359,9 +2371,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.0.1: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + version "8.11.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78" + integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -2374,22 +2386,20 @@ algo-msgpack-with-bigint@^2.1.1: integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== algosdk@^1.15.0-beta.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.19.1.tgz#81bfb8bc99bd31720c45f6e3083fa835d547375c" - integrity sha512-RBp6ihU1jX6OgPRstqskZmnLN4KmG+ZstFADiy0gYOYCy2xPoyKP5sTrf5DW8JECP5IIJi0azxsWgpPQjzJYaA== + version "1.24.0" + resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.24.0.tgz#9f4e2fdf94d100561b2251c0a6591047fe0e2556" + integrity sha512-Q+rOpHTyn92OaL1ta0jEGz8fUQnfGiH2u5wkHj4phy5YKC9mkUrXc1+3Qk3v5fsttTV6pZlYPpzvBTNAlgIAyQ== dependencies: algo-msgpack-with-bigint "^2.1.1" buffer "^6.0.2" + cross-fetch "^3.1.5" hi-base32 "^0.5.1" js-sha256 "^0.9.0" js-sha3 "^0.8.0" js-sha512 "^0.8.0" json-bigint "^1.0.0" - superagent "^6.1.0" tweetnacl "^1.0.3" vlq "^2.0.4" - optionalDependencies: - fsevents "2.1.2" ansi-colors@^4.1.1: version "4.1.3" @@ -2421,9 +2431,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: color-convert "^2.0.1" anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -2434,9 +2444,9 @@ aproba@^1.0.3: integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== aptos@^1.3.16: - version "1.3.16" - resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.3.16.tgz#fb4d072c4975beece9c0ee4104ff2dd069fcc1ec" - integrity sha512-LxI4XctQ5VeL+HokjwuGPwsb1fcydLIn4agFXyhn7hSYosTLNRxQ3UIixyP4Fmv6qPBjQVu8hELVSlThQk/EjA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.4.0.tgz#983709ebf875f9069277a8d72b22b133812395d4" + integrity sha512-D1yBXeyhiBKgJnUQX8iDXckZMPFwdJ9YfUZtRcDhUoR7qLX4hfmLQYemvLqtJvyTCf/Nggfp66hXX1Z8FdlEiQ== dependencies: "@noble/hashes" "1.1.3" "@scure/bip39" "1.1.0" @@ -2457,6 +2467,11 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -2490,13 +2505,13 @@ array-union@^2.1.0: integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array.prototype.flatmap@^1.2.4: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" - integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" arrify@^2.0.1: @@ -2590,13 +2605,14 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@*, axios@0.27.2, axios@^0.27.0: - version "0.27.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== +axios@*: + version "1.2.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.1.tgz#44cf04a3c9f0c2252ebd85975361c026cb9f864a" + integrity sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A== dependencies: - follow-redirects "^1.14.9" + follow-redirects "^1.15.0" form-data "^4.0.0" + proxy-from-env "^1.1.0" axios@0.24.0, axios@^0.24.0: version "0.24.0" @@ -2605,6 +2621,14 @@ axios@0.24.0, axios@^0.24.0: dependencies: follow-redirects "^1.14.4" +axios@0.27.2, axios@^0.27.0: + version "0.27.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== + dependencies: + follow-redirects "^1.14.9" + form-data "^4.0.0" + axios@^0.21.1: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" @@ -2719,9 +2743,9 @@ bech32@2.0.0: integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== before-after-hook@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" - integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== big-integer@1.6.51: version "1.6.51" @@ -2751,9 +2775,9 @@ bignumber.js@^7.2.1: integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2: - version "9.1.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" - integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== + version "9.1.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" + integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== binary-extensions@^2.0.0: version "2.2.0" @@ -2829,7 +2853,7 @@ blake2b@2.1.3: blake2b-wasm "^1.1.0" nanoassert "^1.0.0" -blakejs@^1.1.0, blakejs@^1.2.1: +blakejs@^1.1.0, blakejs@^1.1.2, blakejs@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== @@ -2869,10 +2893,10 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -body-parser@1.20.0, body-parser@^1.16.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== +body-parser@1.20.1, body-parser@^1.16.0: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" content-type "~1.0.4" @@ -2882,7 +2906,7 @@ body-parser@1.20.0, body-parser@^1.16.0: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.10.3" + qs "6.11.0" raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" @@ -3051,9 +3075,9 @@ buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: ieee754 "^1.1.13" bufferutil@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" - integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== + version "4.0.7" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad" + integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== dependencies: node-gyp-build "^4.3.0" @@ -3114,13 +3138,13 @@ caseless@~0.12.0: integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== chai@^4.3.6: - version "4.3.6" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" - integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== + version "4.3.7" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" + integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== dependencies: assertion-error "^1.1.0" check-error "^1.0.2" - deep-eql "^3.0.1" + deep-eql "^4.1.2" get-func-name "^2.0.0" loupe "^2.3.1" pathval "^1.1.1" @@ -3311,7 +3335,7 @@ compare-versions@^3.4.0: resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== -component-emitter@^1.2.1, component-emitter@^1.3.0: +component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== @@ -3357,11 +3381,6 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookiejar@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" - integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== - core-js@^2.4.0: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" @@ -3546,11 +3565,11 @@ decamelize@^1.2.0: integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -decompress-response@^3.2.0, decompress-response@^3.3.0: +decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== @@ -3571,10 +3590,10 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== +deep-eql@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" @@ -3706,14 +3725,9 @@ dot-case@^3.0.4: tslib "^2.0.3" dotenv@^16.0.0: - version "16.0.2" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.2.tgz#0b0f8652c016a3858ef795024508cddc4bffc5bf" - integrity sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA== - -duplexer3@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" - integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== duplexer@~0.1.1: version "0.1.2" @@ -3777,10 +3791,10 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.2.tgz#c6c5243167f5943dcd9c4abee1bfc634aa2cbdd0" - integrity sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ== +engine.io-client@~6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.3.tgz#a8cbdab003162529db85e9de31575097f6d29458" + integrity sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" @@ -3814,22 +3828,22 @@ error-polyfill@^0.1.3: o3 "^1.0.3" u3 "^0.1.1" -es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0: - version "1.20.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.2.tgz#8495a07bc56d342a3b8ea3ab01bd986700c2ccb3" - integrity sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ== +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.20.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" + integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.2" + get-intrinsic "^1.1.3" get-symbol-description "^1.0.0" has "^1.0.3" has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" - is-callable "^1.2.4" + is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" @@ -3839,6 +3853,7 @@ es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19 object-keys "^1.1.1" object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" string.prototype.trimend "^1.0.5" string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" @@ -3902,132 +3917,133 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: d "^1.0.1" ext "^1.1.2" -esbuild-android-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.7.tgz#a521604d8c4c6befc7affedc897df8ccde189bea" - integrity sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w== - -esbuild-android-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.7.tgz#307b81f1088bf1e81dfe5f3d1d63a2d2a2e3e68e" - integrity sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ== - -esbuild-darwin-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz#270117b0c4ec6bcbc5cf3a297a7d11954f007e11" - integrity sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg== - -esbuild-darwin-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.7.tgz#97851eacd11dacb7719713602e3319e16202fc77" - integrity sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ== - -esbuild-freebsd-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.7.tgz#1de15ffaf5ae916aa925800aa6d02579960dd8c4" - integrity sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ== - -esbuild-freebsd-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.7.tgz#0f160dbf5c9a31a1d8dd87acbbcb1a04b7031594" - integrity sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q== - -esbuild-linux-32@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.7.tgz#422eb853370a5e40bdce8b39525380de11ccadec" - integrity sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg== - -esbuild-linux-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.7.tgz#f89c468453bb3194b14f19dc32e0b99612e81d2b" - integrity sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ== - -esbuild-linux-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.7.tgz#68a79d6eb5e032efb9168a0f340ccfd33d6350a1" - integrity sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw== - -esbuild-linux-arm@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.7.tgz#2b7c784d0b3339878013dfa82bf5eaf82c7ce7d3" - integrity sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ== - -esbuild-linux-mips64le@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.7.tgz#bb8330a50b14aa84673816cb63cc6c8b9beb62cc" - integrity sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw== - -esbuild-linux-ppc64le@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.7.tgz#52544e7fa992811eb996674090d0bc41f067a14b" - integrity sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw== - -esbuild-linux-riscv64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.7.tgz#a43ae60697992b957e454cbb622f7ee5297e8159" - integrity sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g== - -esbuild-linux-s390x@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.7.tgz#8c76a125dd10a84c166294d77416caaf5e1c7b64" - integrity sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ== - -esbuild-netbsd-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.7.tgz#19b2e75449d7d9c32b5d8a222bac2f1e0c3b08fd" - integrity sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ== - -esbuild-openbsd-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.7.tgz#1357b2bf72fd037d9150e751420a1fe4c8618ad7" - integrity sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ== - -esbuild-sunos-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.7.tgz#87ab2c604592a9c3c763e72969da0d72bcde91d2" - integrity sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag== - -esbuild-windows-32@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.7.tgz#c81e688c0457665a8d463a669e5bf60870323e99" - integrity sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA== - -esbuild-windows-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.7.tgz#2421d1ae34b0561a9d6767346b381961266c4eff" - integrity sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q== - -esbuild-windows-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.7.tgz#7d5e9e060a7b454cb2f57f84a3f3c23c8f30b7d2" - integrity sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw== - -esbuild@^0.15.6: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.7.tgz#8a1f1aff58671a3199dd24df95314122fc1ddee8" - integrity sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw== +esbuild-android-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" + integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== + +esbuild-android-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" + integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== + +esbuild-darwin-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" + integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== + +esbuild-darwin-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" + integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== + +esbuild-freebsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" + integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== + +esbuild-freebsd-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" + integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== + +esbuild-linux-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" + integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== + +esbuild-linux-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" + integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== + +esbuild-linux-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" + integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== + +esbuild-linux-arm@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" + integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== + +esbuild-linux-mips64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" + integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== + +esbuild-linux-ppc64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" + integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== + +esbuild-linux-riscv64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" + integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== + +esbuild-linux-s390x@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" + integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== + +esbuild-netbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" + integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== + +esbuild-openbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" + integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== + +esbuild-sunos-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" + integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== + +esbuild-windows-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" + integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== + +esbuild-windows-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" + integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== + +esbuild-windows-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" + integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== + +esbuild@^0.15.9: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" + integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== optionalDependencies: - "@esbuild/linux-loong64" "0.15.7" - esbuild-android-64 "0.15.7" - esbuild-android-arm64 "0.15.7" - esbuild-darwin-64 "0.15.7" - esbuild-darwin-arm64 "0.15.7" - esbuild-freebsd-64 "0.15.7" - esbuild-freebsd-arm64 "0.15.7" - esbuild-linux-32 "0.15.7" - esbuild-linux-64 "0.15.7" - esbuild-linux-arm "0.15.7" - esbuild-linux-arm64 "0.15.7" - esbuild-linux-mips64le "0.15.7" - esbuild-linux-ppc64le "0.15.7" - esbuild-linux-riscv64 "0.15.7" - esbuild-linux-s390x "0.15.7" - esbuild-netbsd-64 "0.15.7" - esbuild-openbsd-64 "0.15.7" - esbuild-sunos-64 "0.15.7" - esbuild-windows-32 "0.15.7" - esbuild-windows-64 "0.15.7" - esbuild-windows-arm64 "0.15.7" + "@esbuild/android-arm" "0.15.18" + "@esbuild/linux-loong64" "0.15.18" + esbuild-android-64 "0.15.18" + esbuild-android-arm64 "0.15.18" + esbuild-darwin-64 "0.15.18" + esbuild-darwin-arm64 "0.15.18" + esbuild-freebsd-64 "0.15.18" + esbuild-freebsd-arm64 "0.15.18" + esbuild-linux-32 "0.15.18" + esbuild-linux-64 "0.15.18" + esbuild-linux-arm "0.15.18" + esbuild-linux-arm64 "0.15.18" + esbuild-linux-mips64le "0.15.18" + esbuild-linux-ppc64le "0.15.18" + esbuild-linux-riscv64 "0.15.18" + esbuild-linux-s390x "0.15.18" + esbuild-netbsd-64 "0.15.18" + esbuild-openbsd-64 "0.15.18" + esbuild-sunos-64 "0.15.18" + esbuild-windows-32 "0.15.18" + esbuild-windows-64 "0.15.18" + esbuild-windows-arm64 "0.15.18" escalade@^3.1.1: version "3.1.1" @@ -4256,7 +4272,7 @@ ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -4268,9 +4284,9 @@ ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.5: rlp "^2.2.4" ethers@^5.4.4, ethers@^5.5.4, ethers@^5.6.2: - version "5.7.0" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.0.tgz#0055da174b9e076b242b8282638bc94e04b39835" - integrity sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA== + version "5.7.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== dependencies: "@ethersproject/abi" "5.7.0" "@ethersproject/abstract-provider" "5.7.0" @@ -4287,10 +4303,10 @@ ethers@^5.4.4, ethers@^5.5.4, ethers@^5.6.2: "@ethersproject/json-wallets" "5.7.0" "@ethersproject/keccak256" "5.7.0" "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.0" + "@ethersproject/networks" "5.7.1" "@ethersproject/pbkdf2" "5.7.0" "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.0" + "@ethersproject/providers" "5.7.2" "@ethersproject/random" "5.7.0" "@ethersproject/rlp" "5.7.0" "@ethersproject/sha2" "5.7.0" @@ -4300,7 +4316,7 @@ ethers@^5.4.4, ethers@^5.5.4, ethers@^5.6.2: "@ethersproject/transactions" "5.7.0" "@ethersproject/units" "5.7.0" "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.0" + "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" ethjs-unit@0.1.6: @@ -4404,20 +4420,20 @@ expo-modules-autolinking@^0.0.3: fs-extra "^9.1.0" expo-random@*: - version "12.3.0" - resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-12.3.0.tgz#4a45bcb14e285a4a9161e4a5dc82ff6c3fc2ac0c" - integrity sha512-q+AsTfGNT+Q+fb2sRrYtRkI3g5tV4H0kuYXM186aueILGO/vLn/YYFa7xFZj1IZ8LJZg2h96JDPDpsqHfRG2mQ== + version "13.0.0" + resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-13.0.0.tgz#fc9c1496ac9f7555563d86de0db25966739c028f" + integrity sha512-aGb0vtUmFFuW0TF1rdOgsz89zEVD/RXUPUnnZy5+i3jJeQ2PerJ4uo72/EuWqHpCBNto8/qT+aCzFinmQDeTAA== dependencies: base64-js "^1.3.0" express@^4.14.0: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.0" + body-parser "1.20.1" content-disposition "0.5.4" content-type "~1.0.4" cookie "0.5.0" @@ -4436,7 +4452,7 @@ express@^4.14.0: parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.10.3" + qs "6.11.0" range-parser "~1.2.1" safe-buffer "5.2.1" send "0.18.0" @@ -4486,7 +4502,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11: +fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -4497,17 +4513,6 @@ fast-glob@^3.2.11: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.5, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -4518,20 +4523,15 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-safe-stringify@^2.0.7: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - fast-stable-stringify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== dependencies: reusify "^1.0.4" @@ -4658,12 +4658,7 @@ flowgen@^1.10.0: typescript "~4.4.4" typescript-compiler "^1.4.1-2" -follow-redirects@^1.14.0, follow-redirects@^1.14.4, follow-redirects@^1.14.8, follow-redirects@^1.14.9: - version "1.15.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" - integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== - -follow-redirects@^1.14.7: +follow-redirects@^1.14.0, follow-redirects@^1.14.4, follow-redirects@^1.14.7, follow-redirects@^1.14.8, follow-redirects@^1.14.9, follow-redirects@^1.15.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -4694,15 +4689,6 @@ form-data@4.0.0, form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -4712,11 +4698,6 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -formidable@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" - integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -4791,11 +4772,6 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== - fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -4850,20 +4826,15 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== dependencies: function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.3" -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== - get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -4935,9 +4906,9 @@ global@~4.4.0: process "^0.11.10" globals@^13.6.0, globals@^13.9.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== + version "13.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.18.0.tgz#fb224daeeb2bb7d254cd2c640f003528b8d0c1dc" + integrity sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A== dependencies: type-fest "^0.20.2" @@ -4964,15 +4935,17 @@ globby@^13.1.2: merge2 "^1.4.1" slash "^4.0.0" -google-protobuf@^3.14.0: +google-protobuf@^3.14.0, google-protobuf@^3.20.1: version "3.21.2" resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== -google-protobuf@^3.20.1: - version "3.21.0" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.0.tgz#8dfa3fca16218618d373d414d3c1139e28034d6e" - integrity sha512-byR7MBTK4tZ5PZEb+u5ZTzpt4SfrTxv5682MjPlHN16XeqgZE2/8HOIWeiXe8JKnT9OVbtBGhbq8mtvkK8cd5g== +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" got@12.1.0: version "12.1.0" @@ -5010,26 +4983,6 @@ got@^11.8.5: p-cancelable "^2.0.0" responselike "^2.0.0" -got@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -5070,23 +5023,11 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - has-tostringtag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" @@ -5195,9 +5136,9 @@ http2-wrapper@^1.0.0-beta.5.2: resolve-alpn "^1.0.0" http2-wrapper@^2.1.10: - version "2.1.11" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef" - integrity sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" + integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.2.0" @@ -5213,9 +5154,9 @@ human-signals@^2.1.0: integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== husky@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" - integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== + version "8.0.2" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236" + integrity sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg== iconv-lite@0.4.24: version "0.4.24" @@ -5242,9 +5183,9 @@ ignore@^4.0.6: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.0.5, ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + version "5.2.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c" + integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -5311,9 +5252,9 @@ io-ts-reporters@^2.0.0: "@scarf/scarf" "^1.1.1" io-ts@^2.2.16: - version "2.2.19" - resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-2.2.19.tgz#4ba5e120472a0a07ff693fdb3d7075ea1c1b77c3" - integrity sha512-ED0GQwvKRr5C2jqOOJCkuJW2clnbzqFexQ8V7Qsb+VB36S1Mk/OKH7k0FjSe4mjKy9qBRA3OqgVGyFMUEKIubw== + version "2.2.20" + resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-2.2.20.tgz#be42b75f6668a2c44f706f72ee6e4c906777c7f5" + integrity sha512-Rq2BsYmtwS5vVttie4rqrOCIfHCS9TgpRLFpKQCM1wZBBRY9nWVGmEvm2FnDbSE2un1UE39DvFpTR5UL47YDcA== ipaddr.js@1.9.1: version "1.9.1" @@ -5355,15 +5296,15 @@ is-buffer@~1.1.6: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.9.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" - integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" @@ -5450,16 +5391,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" - integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -5473,11 +5404,6 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-retry-allowed@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -5485,11 +5411,6 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-stream@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -5509,15 +5430,15 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.3, is-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" - integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== +is-typed-array@^1.1.10, is-typed-array@^1.1.3: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== dependencies: available-typed-arrays "^1.0.5" call-bind "^1.0.2" - es-abstract "^1.20.0" for-each "^0.3.3" + gopd "^1.0.1" has-tostringtag "^1.0.0" is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: @@ -5580,14 +5501,6 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - jayson@^3.4.4: version "3.7.0" resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.7.0.tgz#b735b12d06d348639ae8230d7a1e2916cb078f25" @@ -5608,9 +5521,9 @@ jayson@^3.4.4: ws "^7.4.5" joi@^17.4.0: - version "17.6.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" - integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== + version "17.7.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.7.0.tgz#591a33b1fe1aca2bc27f290bcad9b9c1c570a6b3" + integrity sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" @@ -5619,9 +5532,9 @@ joi@^17.4.0: "@sideway/pinpoint" "^2.0.0" js-base64@^3.6.1, js-base64@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" - integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== + version "3.7.3" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.3.tgz#2e784bb0851636bf1e99ef12e4f3a8a8c9b7639f" + integrity sha512-PAr6Xg2jvd7MCR6Ld9Jg3BmTcjYsHEBx1VlwEwULb/qowPf5VD9kEMagj23Gm7JRnSvE/Da/57nChZjnvL8v6A== js-logger@^1.6.1: version "1.6.1" @@ -5780,9 +5693,9 @@ kefir@^3.7.3: integrity sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA== keyv@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6" - integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA== + version "4.5.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" + integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== dependencies: json-buffer "3.0.1" @@ -5861,9 +5774,9 @@ long@^4.0.0: integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== long@^5.0.0, long@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.0.tgz#2696dadf4b4da2ce3f6f6b89186085d94d52fd61" - integrity sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w== + version "5.2.1" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" + integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== loose-envify@^1.0.0: version "1.4.0" @@ -5873,9 +5786,9 @@ loose-envify@^1.0.0: js-tokens "^3.0.0 || ^4.0.0" loupe@^2.3.1: - version "2.3.4" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" - integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== + version "2.3.6" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== dependencies: get-func-name "^2.0.0" @@ -5886,11 +5799,6 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -5939,9 +5847,9 @@ map-stream@~0.1.0: integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== marked@^4.0.16: - version "4.1.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.1.0.tgz#3fc6e7485f21c1ca5d6ec4a39de820e146954796" - integrity sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA== + version "4.2.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.3.tgz#bd76a5eb510ff1d8421bc6c3b2f0b93488c15bea" + integrity sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw== md5.js@^1.3.4: version "1.3.5" @@ -5981,7 +5889,7 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@^1.1.2, methods@~1.1.2: +methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== @@ -6019,11 +5927,6 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.6: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -6069,16 +5972,16 @@ minimatch@^3.0.4, minimatch@^3.1.1: brace-expansion "^1.1.7" minimatch@^5.0.1, minimatch@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + version "5.1.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.1.tgz#6c9dffcf9927ff2a31e74b5af11adf8b9604b022" + integrity sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g== dependencies: brace-expansion "^2.0.1" minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" @@ -6211,9 +6114,9 @@ mustache@^4.0.0: integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== nan@^2.13.2: - version "2.16.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" - integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== + version "2.17.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== nano-json-stream-parser@^0.1.2: version "0.1.2" @@ -6416,13 +6319,13 @@ object.assign@^4.1.4: object-keys "^1.1.1" object.fromentries@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" oboe@2.1.5: version "2.1.5" @@ -6464,11 +6367,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== - p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" @@ -6479,11 +6377,6 @@ p-cancelable@^3.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -6526,23 +6419,21 @@ p-locate@^6.0.0: dependencies: p-limit "^4.0.0" -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - integrity sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA== - dependencies: - p-finally "^1.0.0" - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@2.0.4, pako@^2.0.3: +pako@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== +pako@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -6661,10 +6552,10 @@ platform@1.3.6: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== -postcss@^8.4.16: - version "8.4.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" - integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== +postcss@^8.4.18: + version "8.4.19" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" + integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -6694,20 +6585,15 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== - prettier@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== prettier@^2.3.2, prettier@^2.5.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== + version "2.8.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9" + integrity sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA== pretty-quick@^3.1.3: version "3.1.3" @@ -6775,9 +6661,9 @@ protobufjs@6.11.3, protobufjs@^6.11.2, protobufjs@^6.11.3: long "^4.0.0" protobufjs@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.1.0.tgz#5174b5f96fad4f7dea7dd4abd594042ac360e665" - integrity sha512-rCuxKlh0UQKSMjrpIcTLbR5TtGQ52cgs1a5nUoPBAKOccdPblN67BJtjrbtudUJK6HmBvUdsmymyYOzO7lxZEA== + version "7.1.2" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.1.2.tgz#a0cf6aeaf82f5625bffcf5a38b7cd2a7de05890c" + integrity sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -6800,6 +6686,11 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + ps-tree@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" @@ -6866,14 +6757,7 @@ qs@6.10.1: dependencies: side-channel "^1.0.4" -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -qs@^6.9.4: +qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -7006,10 +6890,10 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.4: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== regexp.prototype.flags@^1.4.3: version "1.4.3" @@ -7085,13 +6969,6 @@ resolve@^1.1.6, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -responselike@*: - version "3.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" - integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== - dependencies: - lowercase-keys "^3.0.0" - responselike@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" @@ -7126,10 +7003,10 @@ rlp@^2.0.0, rlp@^2.2.4: dependencies: bn.js "^5.2.0" -rollup@~2.78.0: - version "2.78.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" - integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== +rollup@^2.79.1: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== optionalDependencies: fsevents "~2.3.2" @@ -7161,9 +7038,9 @@ rxjs@6, rxjs@^6.6.3, rxjs@^6.6.7: tslib "^1.9.0" rxjs@^7.1.0: - version "7.5.6" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" - integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== + version "7.6.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.6.0.tgz#361da5362b6ddaa691a2de0b4f2d32028f1eb5a2" + integrity sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ== dependencies: tslib "^2.1.0" @@ -7177,6 +7054,15 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -7206,7 +7092,7 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secretjs@^1.4.5: +secretjs@=1.4.5: version "1.4.5" resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.4.5.tgz#c94098faace9932c5a39cc4622a7510daac44274" integrity sha512-WbHzcDTL8VW8WwVMAPXZAMj6QutXBe1gjLhyjOT3lAQX5zU1TKh2h8EpAxNrM0BfLPMPRC24qtngrrkVrdW2CA== @@ -7246,14 +7132,7 @@ semver@^5.4.1, semver@^5.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.7: +semver@^7.2.1, semver@^7.3.5, semver@^7.3.7: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== @@ -7440,16 +7319,16 @@ snake-case@^3.0.4: tslib "^2.0.3" socket.io-client@^4.1.3: - version "4.5.2" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.2.tgz#9481518c560388c980c88b01e3cf62f367f04c96" - integrity sha512-naqYfFu7CLDiQ1B7AlLhRXKX3gdeaIMfgigwavDzgJoIUYulc1qHH5+2XflTsXTPY7BlPH5rppJyUjhjrKQKLg== + version "4.5.4" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.4.tgz#d3cde8a06a6250041ba7390f08d2468ccebc5ac9" + integrity sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.2" - engine.io-client "~6.2.1" - socket.io-parser "~4.2.0" + engine.io-client "~6.2.3" + socket.io-parser "~4.2.1" -socket.io-parser@~4.2.0: +socket.io-parser@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== @@ -7500,10 +7379,11 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" start-server-and-test@^1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.14.0.tgz#c57f04f73eac15dd51733b551d775b40837fdde3" - integrity sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw== + version "1.15.0" + resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.15.0.tgz#0c15a3ae88aed64f6e651e89d78e7cf64e0a8160" + integrity sha512-T4Chk9ulFuT5LcKUrtAPjOzMQHCYonvQ8kJTZlXc9gEWLmJk9lhNarkIbR9vpbGZZp6nxTDV7jdL5mpvqP1xMw== dependencies: + arg "^5.0.2" bluebird "3.7.2" check-more-types "2.24.0" debug "4.3.2" @@ -7563,22 +7443,22 @@ string-width@^1.0.1: strip-ansi "^6.0.1" string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" string_decoder@^1.1.1: version "1.3.0" @@ -7630,23 +7510,6 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -superagent@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" - integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== - dependencies: - component-emitter "^1.3.0" - cookiejar "^2.1.2" - debug "^4.1.1" - fast-safe-stringify "^2.0.7" - form-data "^3.0.0" - formidable "^1.2.2" - methods "^1.1.2" - mime "^2.4.6" - qs "^6.9.4" - readable-stream "^3.6.0" - semver "^7.3.2" - superstruct@^0.14.2: version "0.14.2" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" @@ -7677,15 +7540,15 @@ supports-preserve-symlinks-flag@^1.0.0: integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== swarm-js@^0.1.40: - version "0.1.40" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" - integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== + version "0.1.42" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" + integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== dependencies: bluebird "^3.5.0" buffer "^5.0.5" eth-lib "^0.1.26" fs-extra "^4.0.2" - got "^7.1.0" + got "^11.8.5" mime-types "^2.1.16" mkdirp-promise "^5.0.1" mock-fs "^4.1.0" @@ -7714,9 +7577,9 @@ synp@^1.9.10: sort-object-keys "^1.1.3" table@^6.0.9, table@^6.7.3: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -7774,15 +7637,15 @@ text-table@^0.2.0: integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== thor-devkit@^2.0.4, thor-devkit@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/thor-devkit/-/thor-devkit-2.0.5.tgz#1cdd6d623f755e82aacf27290624372bfe6d1b90" - integrity sha512-82Z0/sY0+S54bhmg57r7iqoK7sJB1F5md3zWXjXXGPin3ejsR0Whw1O9wzWvE0DkTp1EiPHWFMTPtOejxaiXeA== + version "2.0.6" + resolved "https://registry.yarnpkg.com/thor-devkit/-/thor-devkit-2.0.6.tgz#94e59e438d5db5efdb5c549ecf6c5f4bcb261ddf" + integrity sha512-kvg4cJuTOmW4kcXR+RwYsatAK47pL+88c7WE66j5HWYc+4kbVYGrzplrLHITo38iziFMqvbhBLf5gteyfNwwfg== dependencies: "@vechain/ethers" "^4.0.27-5" bignumber.js "^7.2.1" - blakejs "^1.1.0" + blakejs "^1.1.2" elliptic "6.5.4" - fast-json-stable-stringify "^2.0.0" + fast-json-stable-stringify "^2.1.0" js-sha3 "0.5.7" rlp "^2.0.0" @@ -7791,7 +7654,7 @@ through@2, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -timed-out@^4.0.0, timed-out@^4.0.1: +timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== @@ -7933,9 +7796,9 @@ tronstation@^1.0.1: babel-runtime "^6.26.0" tronweb@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.3.0.tgz#d3a088e9efb839f0d445f9dc5c79853ab33ccbfa" - integrity sha512-U+s+NBGOg+zfiXeO2kaljJCClg8y8v0McIdO3aAN3/UujDJHou6d6XVPaiMnli4ynE0XC4JHSUM+5KcYos+DiQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/tronweb/-/tronweb-4.4.0.tgz#098e5d27e8143f34290f2938f448859b6a5efacc" + integrity sha512-0yPmjQE1drPcDtW4YCXFjtvDQmKc/utjKB2J6U5GDcWWhsGqE8yFjdIMJRa1yj1a/oFQNlthKMzw4Jd7lkWbYA== dependencies: "@babel/runtime" "^7.0.0" axios "^0.26.1" @@ -7967,15 +7830,15 @@ ts-node@^10.8.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tslib@^1.8.1, tslib@^1.9.0: +tslib@1.14.1, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== tsutils@^3.21.0: version "3.21.0" @@ -8070,9 +7933,9 @@ typescript-compiler@^1.4.1-2: integrity sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg== typescript@^4.3.5: - version "4.8.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" - integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== + version "4.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" + integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== typescript@~4.4.4: version "4.4.4" @@ -8131,23 +7994,11 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== - dependencies: - prepend-http "^1.0.1" - url-set-query@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A== - usb@^1.7.0: version "1.9.2" resolved "https://registry.yarnpkg.com/usb/-/usb-1.9.2.tgz#fb6b36f744ecc707a196c45a6ec72442cb6f2b73" @@ -8157,9 +8008,9 @@ usb@^1.7.0: node-gyp-build "^4.3.0" utf-8-validate@^5.0.2: - version "5.0.9" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3" - integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== + version "5.0.10" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== dependencies: node-gyp-build "^4.3.0" @@ -8174,15 +8025,14 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@^0.12.0: - version "0.12.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" - integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== dependencies: inherits "^2.0.3" is-arguments "^1.0.4" is-generator-function "^1.0.7" is-typed-array "^1.1.3" - safe-buffer "^5.1.2" which-typed-array "^1.1.2" utils-merge@1.0.1: @@ -8195,11 +8045,6 @@ uuid@2.0.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" integrity sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg== -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - uuid@8.3.2, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -8210,6 +8055,11 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -8250,14 +8100,14 @@ verror@1.10.0: extsprintf "^1.2.0" "vite@^2.9.12 || ^3.0.0-0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.0.tgz#3138b279072941d57e76bcf7f66f272fc6a17fe2" - integrity sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g== + version "3.2.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.5.tgz#dee5678172a8a0ab3e547ad4148c3d547f90e86a" + integrity sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ== dependencies: - esbuild "^0.15.6" - postcss "^8.4.16" + esbuild "^0.15.9" + postcss "^8.4.18" resolve "^1.22.1" - rollup "~2.78.0" + rollup "^2.79.1" optionalDependencies: fsevents "~2.3.2" @@ -8282,9 +8132,9 @@ vlq@^2.0.4: integrity sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA== vscode-oniguruma@^1.6.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" - integrity sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA== + version "1.7.0" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" + integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== vscode-textmate@5.2.0: version "5.2.0" @@ -8302,172 +8152,172 @@ wait-on@6.0.0: minimist "^1.2.5" rxjs "^7.1.0" -web3-bzz@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.7.5.tgz#edeb262c3a6619109763077a94172513cf07cdde" - integrity sha512-Z53sY0YK/losqjJncmL4vP0zZI9r6tiXg6o7R6e1JD2Iy7FH3serQvU+qXmPjqEBzsnhf8wTG+YcBPB3RHpr0Q== +web3-bzz@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.1.tgz#81397be5ce262d03d82b92e9d8acc11f8a609ea1" + integrity sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w== dependencies: "@types/node" "^12.12.6" got "12.1.0" swarm-js "^0.1.40" -web3-core-helpers@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.7.5.tgz#e97b3ecac787ade4b9390807a86aca78ed97872b" - integrity sha512-lDDjTks6Q6aNUO87RYrY2xub3UWTKr/RIWxpHJODEqkLxZS1dWdyliJ6aIx3031VQwsNT5HE7NvABe/t0p3iDQ== +web3-core-helpers@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz#7904747b23fd0afa4f2c86ed98ea9418ccad7672" + integrity sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw== dependencies: - web3-eth-iban "1.7.5" - web3-utils "1.7.5" + web3-eth-iban "1.8.1" + web3-utils "1.8.1" -web3-core-method@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.7.5.tgz#ffe8883c169468f0e4d13509377f2d8876d9b7be" - integrity sha512-ApTvq1Llzlbxmy0n4L7QaE6NodIsR80VJqk8qN4kLg30SGznt/pNJFebryLI2kpyDmxSgj1TjEWzmHJBp6FhYg== +web3-core-method@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.1.tgz#0fc5a433a9fc784c447522f141c0a8e0163c7790" + integrity sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA== dependencies: "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.7.5" - web3-core-promievent "1.7.5" - web3-core-subscriptions "1.7.5" - web3-utils "1.7.5" + web3-core-helpers "1.8.1" + web3-core-promievent "1.8.1" + web3-core-subscriptions "1.8.1" + web3-utils "1.8.1" -web3-core-promievent@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.7.5.tgz#56a9b06a20e20a0a89d2ab7f88d44c8ae01d5b62" - integrity sha512-uZ1VRErVuhiLtHlyt3oEH/JSvAf6bWPndChHR9PG7i1Zfqm6ZVCeM91ICTPmiL8ddsGQOxASpnJk4vhApcTIww== +web3-core-promievent@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz#f334c8b2ceac6c2228f06d2a515f6d103157f036" + integrity sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg== dependencies: eventemitter3 "4.0.4" -web3-core-requestmanager@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.7.5.tgz#be18fc99642689aeb2e016fa43fb47bb9e8c94ce" - integrity sha512-3KpfxW/wVH4mgwWEsSJGHKrtRVoijWlDxtUrm17xgtqRNZ2mFolifKnHAUKa0fY48C9CrxmcCiMIi3W4G6WYRw== +web3-core-requestmanager@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz#272ffa55b7b568ecbc8e4a257ca080355c31c60e" + integrity sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw== dependencies: util "^0.12.0" - web3-core-helpers "1.7.5" - web3-providers-http "1.7.5" - web3-providers-ipc "1.7.5" - web3-providers-ws "1.7.5" + web3-core-helpers "1.8.1" + web3-providers-http "1.8.1" + web3-providers-ipc "1.8.1" + web3-providers-ws "1.8.1" -web3-core-subscriptions@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.7.5.tgz#c0e25610768ea9d9f9107b4ac74b6b6573125e00" - integrity sha512-YK6utQ7Wwjbe4XZOIA8quWGBPi1lFDS1A+jQYwxKKrCvm6BloBNc3FhvrcSYlDhLe/kOy8+2Je8i9amndgT4ww== +web3-core-subscriptions@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz#f5ae1380e92746eadfab6475b8a70ef5a1be6bbf" + integrity sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.7.5" + web3-core-helpers "1.8.1" -web3-core@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.7.5.tgz#8ee2ca490230a30ca970cb9f308eb65b76405e1d" - integrity sha512-UgOWXZr1fR/3cUQJKWbfMwRxj1/N7o6RSd/dHqdXBlOD+62EjNZItFmLRg5veq5kp9YfXzrNw9bnDkXfsL+nKQ== +web3-core@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.1.tgz#050b1c408d1f9b7ae539e90f7f7d1b7a7d10578b" + integrity sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw== dependencies: "@types/bn.js" "^5.1.0" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.7.5" - web3-core-method "1.7.5" - web3-core-requestmanager "1.7.5" - web3-utils "1.7.5" + web3-core-helpers "1.8.1" + web3-core-method "1.8.1" + web3-core-requestmanager "1.8.1" + web3-utils "1.8.1" -web3-eth-abi@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.7.5.tgz#db9d6dbcc043a6e922252f3228686e9bbd50d7c9" - integrity sha512-qWHvF7sayxql9BD1yqK9sZRLBQ66eJzGeaU53Y1PRq2iFPrhY6NUWxQ3c3ps0rg+dyObvRbloviWpKXcS4RE/A== +web3-eth-abi@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz#47455d6513217c4b0866fea6f97b1c4afa0b6535" + integrity sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w== dependencies: "@ethersproject/abi" "^5.6.3" - web3-utils "1.7.5" + web3-utils "1.8.1" -web3-eth-accounts@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.7.5.tgz#b37ee3aeebcc6bce3337636aeb272cbba0ece547" - integrity sha512-AzMLoTj3RGwKpyp3x3TtHrEeU4VpR99iMOD6NKrWSDumS6QEi0lCo+y7QZhdTlINw3iIA3SFIdvbAOO4NCHSDg== +web3-eth-accounts@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz#1ce7387721f118aeb0376291e4d8bbe2ac323406" + integrity sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg== dependencies: - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.2" + "@ethereumjs/common" "2.5.0" + "@ethereumjs/tx" "3.3.2" crypto-browserify "3.12.0" eth-lib "0.2.8" ethereumjs-util "^7.0.10" scrypt-js "^3.0.1" - uuid "3.3.2" - web3-core "1.7.5" - web3-core-helpers "1.7.5" - web3-core-method "1.7.5" - web3-utils "1.7.5" + uuid "^9.0.0" + web3-core "1.8.1" + web3-core-helpers "1.8.1" + web3-core-method "1.8.1" + web3-utils "1.8.1" -web3-eth-contract@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.7.5.tgz#a032419579bcec062513a3d089ad0e89ac63d731" - integrity sha512-qab7NPJRKRlTs58ozsqK8YIEwWpxIm3vD/okSIKBGkFx5gIHWW+vGmMh5PDSfefLJM9rCd+T+Lc0LYvtME7uqg== +web3-eth-contract@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz#bdf3e33bbcb79a1b6144dffd6a0deefd2e459272" + integrity sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg== dependencies: "@types/bn.js" "^5.1.0" - web3-core "1.7.5" - web3-core-helpers "1.7.5" - web3-core-method "1.7.5" - web3-core-promievent "1.7.5" - web3-core-subscriptions "1.7.5" - web3-eth-abi "1.7.5" - web3-utils "1.7.5" - -web3-eth-ens@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.7.5.tgz#fa0e287f5e6fae20531117b7467e21b482d58cab" - integrity sha512-k1Q0msdRv/wac2egpZBIwG3n/sa/KdrVmVJvFm471gLTL4xfUizV5qJjkDVf+ikf9JyDvWJTs5eWNUUbOFIw/A== + web3-core "1.8.1" + web3-core-helpers "1.8.1" + web3-core-method "1.8.1" + web3-core-promievent "1.8.1" + web3-core-subscriptions "1.8.1" + web3-eth-abi "1.8.1" + web3-utils "1.8.1" + +web3-eth-ens@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz#e78a9651fea8282abe8565b001819e2d645e5929" + integrity sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.7.5" - web3-core-helpers "1.7.5" - web3-core-promievent "1.7.5" - web3-eth-abi "1.7.5" - web3-eth-contract "1.7.5" - web3-utils "1.7.5" - -web3-eth-iban@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.7.5.tgz#1a50efa42cabf1b731396d38bef6a8bf92b5ee1f" - integrity sha512-mn2W5t/1IpL8OZvzAabLKT4kvwRnZSJ9K0tctndl9sDNWkfITYQibEEhUaNNA50Q5fJKgVudHI/m0gwIVTyG8Q== + web3-core "1.8.1" + web3-core-helpers "1.8.1" + web3-core-promievent "1.8.1" + web3-eth-abi "1.8.1" + web3-eth-contract "1.8.1" + web3-utils "1.8.1" + +web3-eth-iban@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz#c6484e5d68ca644aa78431301e7acd5df24598d1" + integrity sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg== dependencies: bn.js "^5.2.1" - web3-utils "1.7.5" + web3-utils "1.8.1" -web3-eth-personal@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.7.5.tgz#615a3ddcf97aeea93e2a4569753c033fd7a495c5" - integrity sha512-txh2P/eN8I4AOUKFi9++KKddoD0tWfCuu9Y1Kc41jSRbk6smO88Fum0KWNmYFYhSCX2qiknS1DfqsONl3igoKQ== +web3-eth-personal@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz#00b5ff1898b62044d25ed5fddd8486168d4827cf" + integrity sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA== dependencies: "@types/node" "^12.12.6" - web3-core "1.7.5" - web3-core-helpers "1.7.5" - web3-core-method "1.7.5" - web3-net "1.7.5" - web3-utils "1.7.5" + web3-core "1.8.1" + web3-core-helpers "1.8.1" + web3-core-method "1.8.1" + web3-net "1.8.1" + web3-utils "1.8.1" -web3-eth@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.7.5.tgz#36906f50a6c35570cbc08871a33caa83dc131c9c" - integrity sha512-BucjvqZyDWYkGlsFX+OnOBub0YutlC1KZiNGibdmvtNX0NQK+8iw1uzAoL9yTTwCSszL7lnkFe8N+HCOl9B4Dw== - dependencies: - web3-core "1.7.5" - web3-core-helpers "1.7.5" - web3-core-method "1.7.5" - web3-core-subscriptions "1.7.5" - web3-eth-abi "1.7.5" - web3-eth-accounts "1.7.5" - web3-eth-contract "1.7.5" - web3-eth-ens "1.7.5" - web3-eth-iban "1.7.5" - web3-eth-personal "1.7.5" - web3-net "1.7.5" - web3-utils "1.7.5" - -web3-net@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.7.5.tgz#87fbc00a9ca40515bf60c847c0092498887cfdc8" - integrity sha512-xwuCb2YWw49PmW81AJQ/G+Xi2ikRsYyZXSgyPt4LmZuKjiqg/6kSdK8lZvUi3Pi3wM+QDBXbpr73M/WEkW0KvA== +web3-eth@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.1.tgz#395f6cd56edaac5dbb23e8cec9886c3fd32c430e" + integrity sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg== + dependencies: + web3-core "1.8.1" + web3-core-helpers "1.8.1" + web3-core-method "1.8.1" + web3-core-subscriptions "1.8.1" + web3-eth-abi "1.8.1" + web3-eth-accounts "1.8.1" + web3-eth-contract "1.8.1" + web3-eth-ens "1.8.1" + web3-eth-iban "1.8.1" + web3-eth-personal "1.8.1" + web3-net "1.8.1" + web3-utils "1.8.1" + +web3-net@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.1.tgz#2bed4d4b93166724129ec33d0e5dea98880285f4" + integrity sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ== dependencies: - web3-core "1.7.5" - web3-core-method "1.7.5" - web3-utils "1.7.5" + web3-core "1.8.1" + web3-core-method "1.8.1" + web3-utils "1.8.1" web3-providers-connex@^0.3.1: version "0.3.1" @@ -8481,47 +8331,47 @@ web3-providers-connex@^0.3.1: thor-devkit "^2.0.4" web3 "^1.7.1" -web3-providers-http@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.7.5.tgz#144bb0c29007d1b766bafb0e20f80be050c7aa80" - integrity sha512-vPgr4Kzy0M3CHtoP/Bh7qwK/D9h2fhjpoqctdMWVJseOfeTgfOphCKN0uwV8w2VpZgDPXA8aeTdBx5OjmDdStA== +web3-providers-http@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.1.tgz#8aa89c11a9272f11ddb74b871273c92225faa28d" + integrity sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg== dependencies: abortcontroller-polyfill "^1.7.3" cross-fetch "^3.1.4" es6-promise "^4.2.8" - web3-core-helpers "1.7.5" + web3-core-helpers "1.8.1" -web3-providers-ipc@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.7.5.tgz#5b0f9b4f7340416953b8816d2e42e3f548d47372" - integrity sha512-aNHx+RAROzO+apDEzy8Zncj78iqWBadIXtpmFDg7uiTn8i+oO+IcP1Yni7jyzkltsysVJHgHWG4kPx50ANCK3Q== +web3-providers-ipc@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz#6128a3a3a824d06bf0efcfe86325401f8691a5ca" + integrity sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA== dependencies: oboe "2.1.5" - web3-core-helpers "1.7.5" + web3-core-helpers "1.8.1" -web3-providers-ws@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.7.5.tgz#196b9e56a4a48f9bee54def56875ea53dec7c711" - integrity sha512-9uJNVVkIGC8PmM9kNbgPth56HDMSSsxZh3ZEENdwO3LNWemaADiQYUDCsD/dMVkn0xsGLHP5dgAy4Q5msqySLg== +web3-providers-ws@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz#5e5370e07eb8c615ed298ebc8602b283c7b7d649" + integrity sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.7.5" + web3-core-helpers "1.8.1" websocket "^1.0.32" -web3-shh@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.7.5.tgz#742e27f5c44bea6d7adef3a49b085e0fcd6aa621" - integrity sha512-aCIWJyLMH5H76OybU4ZpUCJ93yNOPATGhJ+KboRPU8QZDzS2CcVhtEzyl27bbvw+rSnVroMLqBgTXBB4mmKI7A== +web3-shh@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.1.tgz#028a95cf9d3a36020380938b9a127610efbb9be7" + integrity sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g== dependencies: - web3-core "1.7.5" - web3-core-method "1.7.5" - web3-core-subscriptions "1.7.5" - web3-net "1.7.5" + web3-core "1.8.1" + web3-core-method "1.8.1" + web3-core-subscriptions "1.8.1" + web3-net "1.8.1" -web3-utils@1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.5.tgz#081a952ac6e0322e25ac97b37358a43c7372ef6a" - integrity sha512-9AqNOziQky4wNQadEwEfHiBdOZqopIHzQQVzmvvv6fJwDSMhP+khqmAZC7YTiGjs0MboyZ8tWNivqSO1699XQw== +web3-utils@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.1.tgz#f2f7ca7eb65e6feb9f3d61056d0de6bbd57125ff" + integrity sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ== dependencies: bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" @@ -8532,17 +8382,17 @@ web3-utils@1.7.5: utf8 "3.0.0" web3@^1.7.1: - version "1.7.5" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.7.5.tgz#4e185d2058195b5775109b3f27cdea65a34a036e" - integrity sha512-3jHZTWyXt975AOXgnZKayiSWDLpoSKk9fZtLk1hURQtt7AdSbXPT8AK9ooBCm0Dt3GYaOeNcHGaiHC3gtyqhLg== + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.1.tgz#8ea67215ef5f3a6f6d3381800b527242ea22885a" + integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ== dependencies: - web3-bzz "1.7.5" - web3-core "1.7.5" - web3-eth "1.7.5" - web3-eth-personal "1.7.5" - web3-net "1.7.5" - web3-shh "1.7.5" - web3-utils "1.7.5" + web3-bzz "1.8.1" + web3-core "1.8.1" + web3-eth "1.8.1" + web3-eth-personal "1.8.1" + web3-net "1.8.1" + web3-shh "1.8.1" + web3-utils "1.8.1" webcrypto-core@^1.7.4: version "1.7.5" @@ -8602,16 +8452,16 @@ which-module@^2.0.0: integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== which-typed-array@^1.1.2: - version "1.1.8" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" - integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== dependencies: available-typed-arrays "^1.0.5" call-bind "^1.0.2" - es-abstract "^1.20.0" for-each "^0.3.3" + gopd "^1.0.1" has-tostringtag "^1.0.0" - is-typed-array "^1.1.9" + is-typed-array "^1.1.10" which@^1.2.9: version "1.3.1" @@ -8694,9 +8544,9 @@ ws@^7.1.0, ws@^7.4.5: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.5.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== + version "8.11.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" + integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== ws@~8.2.3: version "8.2.3" From b0c5b7794bfec3841d0b346266c5424d8cf35999 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Wed, 7 Dec 2022 17:46:00 +0200 Subject: [PATCH 817/956] fix types --- package.json | 4 ++-- src/factory/cons.ts | 1 + src/factory/index.ts | 2 ++ tsconfig.json | 4 ++-- yarn.lock | 33 +++++++++++++-------------------- 5 files changed, 20 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 4fac7cde1..ac3aacc8e 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "prettier": "^2.3.2", "pretty-quick": "^3.1.3", "typedoc": "^0.22.6", - "typescript": "^4.3.5", + "typescript": "^4.9.3", "yarn-audit-fix": "^9.3.7" }, "dependencies": { @@ -66,7 +66,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "1.0.0", - "secretjs": "=1.4.5", + "secretjs": "1.4.5", "socket.io-client": "^4.1.3", "ton-x": "^2.0.0", "tonweb": "^0.0.57", diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 94287b8ea..fb1f138a6 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -53,6 +53,7 @@ export function getDefaultContract( const toType = CHAIN_INFO.get(to)?.type; const contract = + //@ts-ignore contractType is checked "contractType" in nft.native && //@ts-ignore contractType is checked nft.native.contractType === "ERC1155" && diff --git a/src/factory/index.ts b/src/factory/index.ts index 27e27c2e8..307998358 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -121,6 +121,7 @@ export type ChainFactory = { * @param mintWith an arbitrary address of the target chain minter contract * @param gasLimit an arbitrary gas limit value (required for some chains) */ + transferNft( fromChain: FullChain, toChain: FullChain, @@ -786,6 +787,7 @@ export function ChainFactory( return res; } else { const mw = + //@ts-ignore contract is checked "contract" in nft.native && mintWith && (await checkMintWith( diff --git a/tsconfig.json b/tsconfig.json index 4c4df051a..4f7af3249 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "incremental": false, - "target": "es2017", + "target": "ES2022", "outDir": "./dist", //"outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", @@ -40,7 +40,7 @@ // "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */, // "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */, - "lib": ["es2019", "dom"], // elrdjs depends on dom? + "lib": ["ES2022", "dom"], // elrdjs depends on dom? "types": ["node"], "typeRoots": ["node_modules/@types", "src/types"] }, diff --git a/yarn.lock b/yarn.lock index 6866fcce5..f67079bbe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1567,9 +1567,9 @@ start-server-and-test "^1.14.0" "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2": - version "1.69.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.69.0.tgz#1756b1a26087172291c0b5163d3b44d24eef8aa7" - integrity sha512-iU2Q0IG25RITsxBkY1Vkk74LffRokViEcSblz4CGxyt+/V7xSkC2DNM0n0rB3aY/9+FvMiz4l5wHnD9UC4Ac/w== + version "1.70.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.70.0.tgz#14ad207f431861397db85921aad8df4e8374e7c8" + integrity sha512-HwdI9LaHaszfpzgxJI44iP68mJWUeqK1TeSheKQsGkH5zlVyGWGmim50MyDWu2vXiuL8Akf2xEMSrDYyLordgg== dependencies: "@babel/runtime" "^7.12.5" "@noble/ed25519" "^1.7.0" @@ -3545,14 +3545,7 @@ debug@2.6.9, debug@^2.2.0: dependencies: ms "2.0.0" -debug@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4.3.4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -5847,9 +5840,9 @@ map-stream@~0.1.0: integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== marked@^4.0.16: - version "4.2.3" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.3.tgz#bd76a5eb510ff1d8421bc6c3b2f0b93488c15bea" - integrity sha512-slWRdJkbTZ+PjkyJnE30Uid64eHwbwa1Q25INCAYfZlK4o6ylagBy/Le9eWntqJFoFT93ikUKMv47GZ4gTwHkw== + version "4.2.4" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.4.tgz#5a4ce6c7a1ae0c952601fce46376ee4cf1797e1c" + integrity sha512-Wcc9ikX7Q5E4BYDPvh1C6QNSxrjC9tBgz+A/vAhp59KXUgachw++uMvMKiSW8oA85nopmPZcEvBoex/YLMsiyA== md5.js@^1.3.4: version "1.3.5" @@ -7092,7 +7085,7 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secretjs@=1.4.5: +secretjs@1.4.5: version "1.4.5" resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.4.5.tgz#c94098faace9932c5a39cc4622a7510daac44274" integrity sha512-WbHzcDTL8VW8WwVMAPXZAMj6QutXBe1gjLhyjOT3lAQX5zU1TKh2h8EpAxNrM0BfLPMPRC24qtngrrkVrdW2CA== @@ -7379,14 +7372,14 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" start-server-and-test@^1.14.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.15.0.tgz#0c15a3ae88aed64f6e651e89d78e7cf64e0a8160" - integrity sha512-T4Chk9ulFuT5LcKUrtAPjOzMQHCYonvQ8kJTZlXc9gEWLmJk9lhNarkIbR9vpbGZZp6nxTDV7jdL5mpvqP1xMw== + version "1.15.1" + resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.15.1.tgz#8e28e48a31884b7c7b19950502e92161eec6293b" + integrity sha512-ixhMbUAmym+7k3kqhjhTt6/0eUwE3dbNZPWgcfEUJ5uStaHbT0m8VB+049V5V9X0ueEyxAkwnkkR2SEhCKst5g== dependencies: arg "^5.0.2" bluebird "3.7.2" check-more-types "2.24.0" - debug "4.3.2" + debug "4.3.4" execa "5.1.1" lazy-ass "1.6.0" ps-tree "1.2.0" @@ -7932,7 +7925,7 @@ typescript-compiler@^1.4.1-2: resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f" integrity sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg== -typescript@^4.3.5: +typescript@^4.9.3: version "4.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== From cca51f97167584c12c7c63b127bd6c679189014c Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 7 Dec 2022 19:31:20 +0200 Subject: [PATCH 818/956] bump modules --- package.json | 2 +- yarn.lock | 57 +++++++++++++--------------------------------------- 2 files changed, 15 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index ac3aacc8e..6fd1a3e2d 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "1.0.0", - "secretjs": "1.4.5", + "secretjs": "^1.4.5", "socket.io-client": "^4.1.3", "ton-x": "^2.0.0", "tonweb": "^0.0.57", diff --git a/yarn.lock b/yarn.lock index f67079bbe..b60e97300 100644 --- a/yarn.lock +++ b/yarn.lock @@ -699,9 +699,9 @@ "@ethersproject/strings" "^5.7.0" "@grpc/grpc-js@^1.5.3": - version "1.7.3" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.7.3.tgz#f2ea79f65e31622d7f86d4b4c9ae38f13ccab99a" - integrity sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog== + version "1.8.0" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.0.tgz#ebfbeff2b76e2991f2831e46cad27fa573396555" + integrity sha512-ySMTXQuMvvswoobvN+0LsaPf7ITO2JVfJmHxQKI4cGehNrrUms+n81BlHEX7Hl/LExji6XE3fnI9U04GSkRruA== dependencies: "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" @@ -1008,18 +1008,6 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@improbable-eng/grpc-web-node-http-transport@0.15.0": - version "0.15.0" - resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz#5a064472ef43489cbd075a91fb831c2abeb09d68" - integrity sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA== - -"@improbable-eng/grpc-web@0.15.0": - version "0.15.0" - resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz#3e47e9fdd90381a74abd4b7d26e67422a2a04bef" - integrity sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg== - dependencies: - browser-headers "^0.4.1" - "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" @@ -1227,12 +1215,7 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.4.tgz#2611ebf5764c1bf754da7c7794de4fb30512336d" integrity sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA== -"@noble/secp256k1@1.6.3": - version "1.6.3" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" - integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== - -"@noble/secp256k1@^1.6.3": +"@noble/secp256k1@1.7.0", "@noble/secp256k1@^1.6.3": version "1.7.0" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== @@ -2960,11 +2943,6 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-headers@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" - integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== - browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -3450,7 +3428,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-fetch@^3.1.4, cross-fetch@^3.1.5: +cross-fetch@3.1.5, cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -5349,11 +5327,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-gzip@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-2.0.0.tgz#f4fed2bbd9f96bf2cb39e19262797fdb15aad933" - integrity sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA== - is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" @@ -6584,9 +6557,9 @@ prettier@^1.19.1: integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== prettier@^2.3.2, prettier@^2.5.1: - version "2.8.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9" - integrity sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA== + version "2.8.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" + integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== pretty-quick@^3.1.3: version "3.1.3" @@ -7085,26 +7058,24 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secretjs@1.4.5: - version "1.4.5" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.4.5.tgz#c94098faace9932c5a39cc4622a7510daac44274" - integrity sha512-WbHzcDTL8VW8WwVMAPXZAMj6QutXBe1gjLhyjOT3lAQX5zU1TKh2h8EpAxNrM0BfLPMPRC24qtngrrkVrdW2CA== +secretjs@^1.4.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.5.1.tgz#d3363dba472064feb0117452a5042df220fad6b4" + integrity sha512-R4FNh0RIoyHa1gaVs+utTWogOcGUu+UW85pX8k0KRzWUmxjDUGjutPztwY5Wl3O0LIyOiqvBpaDBxooxfe6FKw== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" - "@improbable-eng/grpc-web" "0.15.0" - "@improbable-eng/grpc-web-node-http-transport" "0.15.0" "@noble/hashes" "1.0.0" - "@noble/secp256k1" "1.6.3" + "@noble/secp256k1" "1.7.0" "@osmonauts/helpers" "0.3.8" bech32 "2.0.0" big-integer "1.6.51" bignumber.js "9.0.2" bip32 "2.0.6" bip39 "3.0.4" + cross-fetch "3.1.5" curve25519-js "0.0.4" google-protobuf "^3.14.0" - is-gzip "2.0.0" miscreant "0.3.2" pako "2.0.4" protobufjs "6.11.3" From 08fd0057753af5b26bad33e464b68a8db5214c93 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 7 Dec 2022 19:27:16 +0200 Subject: [PATCH 819/956] fix contsant --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index bc238a637..ee5cd260a 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -287,7 +287,7 @@ CHAIN_INFO.set(Chain.POLYGON, { nonce: 0x7, chainId: 80001, decimals: 1e18, - blockExplorerUrl: "https://mumbai.polygonscan.com/tx/", + blockExplorerUrl: "https://polygonscan.com/tx/", tnBlockExplorerUrl: "https://mumbai.polygonscan.com/tx/", blockExplorerUrlAddr: "https://polygonscan.com/address/", tnBlockExplorerUrlAddr: "https://mumbai.polygonscan.com/address/", From 4790c50504936fa6718c547d1dce3b5751c214ce Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 7 Dec 2022 19:34:53 +0200 Subject: [PATCH 820/956] WEB3: fix contant --- src/helpers/secret.ts | 48 ++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 416bb338b..fa2ddd0e0 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,5 +1,5 @@ import BigNumber from "bignumber.js"; -import { Bech32, SecretNetworkClient, Tx } from "secretjs"; +import { Bech32, SecretNetworkClient, TxResponse } from "secretjs"; import { Extension, Snip721MintOptions, @@ -40,15 +40,19 @@ type GetOwnedTokensResponse = Snip721GetTokensResponse & { generic_err?: { msg: string }; }; -export type SecretHelper = TransferNftForeign & - UnfreezeForeignNft & +export type SecretHelper = TransferNftForeign< + SecretSigner, + SecretNftInfo, + TxResponse +> & + UnfreezeForeignNft & ValidateAddress & EstimateTxFees & ChainNonceGet & PreTransfer & BalanceCheck & GetFeeMargins & { XpNft: string } & GetProvider & - MintNft & { + MintNft & { nftList( owner: string, @@ -60,7 +64,7 @@ export type SecretHelper = TransferNftForeign & client: SecretNetworkClient, contract: string, vk: string - ): Promise; + ): Promise; isApprovedForMinter( sender: SecretSigner, nft: NftInfo @@ -91,8 +95,8 @@ const UNFREEZE_GASL = new BigNumber(0); export async function secretHelperFactory( p: SecretParams ): Promise { - const queryClient = await SecretNetworkClient.create({ - grpcWebUrl: p.rpcUrl, + const queryClient = new SecretNetworkClient({ + url: p.rpcUrl, chainId: p.chainId, }); @@ -138,8 +142,8 @@ export async function secretHelperFactory( const res = await sender.tx.compute.executeContract( { sender: sender.address, - contractAddress: nft.native.contract, - codeHash: nft.native.contractHash, + contract_address: nft.native.contract, + code_hash: nft.native.contractHash, msg: { approve: { spender: p.bridge.contractAddress, @@ -176,8 +180,8 @@ export async function secretHelperFactory( const minter = args.contract ? args.contract : p.umt; const tx = await signer.tx.compute.executeContract( { - contractAddress: minter.contractAddress, - codeHash: minter.codeHash, + contract_address: minter.contractAddress, + code_hash: minter.codeHash, msg: { mint_nft: { public_metadata: { @@ -213,9 +217,11 @@ export async function secretHelperFactory( }, }; if (!codeHash) { - codeHash = await queryClient.query.compute.contractCodeHash( - contractAddress - ); + codeHash = ( + await queryClient.query.compute.codeHashByContractAddress({ + contract_address: contractAddress, + }) + ).code_hash; } const contract = { address: contractAddress, @@ -266,7 +272,7 @@ export async function secretHelperFactory( async setViewingKey(client, contract, vk) { const tx = await client.tx.snip721.setViewingKey( { - contractAddress: contract, + contract_address: contract, msg: { set_viewing_key: { key: vk, @@ -287,8 +293,8 @@ export async function secretHelperFactory( const tx = await wallet.tx.compute.executeContract( { sender: wallet.address, - contractAddress: p.bridge.contractAddress, - codeHash: p.bridge.codeHash, + contract_address: p.bridge.contractAddress, + code_hash: p.bridge.codeHash, msg: { freeze_nft: { contract: nft.native.contract, @@ -303,7 +309,7 @@ export async function secretHelperFactory( minter: mw, }, }, - sentFunds: [ + sent_funds: [ { denom: "uscrt", amount: fee.toString(10), @@ -321,8 +327,8 @@ export async function secretHelperFactory( const tx = await wallet.tx.compute.executeContract( { sender: wallet.address, - contractAddress: p.bridge.contractAddress, - codeHash: p.bridge.codeHash, + contract_address: p.bridge.contractAddress, + code_hash: p.bridge.codeHash, msg: { withdraw_nft: { burner: nft.native.contract, @@ -332,7 +338,7 @@ export async function secretHelperFactory( chain_nonce: Number(chainNonce), }, }, - sentFunds: [ + sent_funds: [ { denom: "uscrt", amount: fee.toString(10), From 7f56db7bf34346f526d0f7f1ffa0ed357ed32868 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 8 Dec 2022 12:04:42 +0200 Subject: [PATCH 821/956] SFT fees cacl --- src/factory/index.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 307998358..9770d825f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -669,17 +669,37 @@ export function ChainFactory( }, estimateBatchFees, async transferSft(from, to, nft, sender, receiver, amt, fee?, mintWith?) { + if (Number(amt) > 50) + throw new Error("Currenly more that 50 SFTs is not supported"); let transfers = Array(parseInt(amt.toString())).fill(nft); if (!fee) { fee = await estimateFees(from, to, transfers[0], receiver); } + + const rate = await remoteExchangeRate.getBatchedRate([ + CHAIN_INFO.get(from.getNonce())!.currency, + CHAIN_INFO.get(to.getNonce())!.currency, + ]); + + const fromExRate = rate.get(CHAIN_INFO.get(from.getNonce())!.currency)!; + const y = 0.05 / fromExRate; + + const sftFees = Number(amt) <= 10 ? 0 : y * (Number(amt) - 10); + const feeS = new BigNumber(sftFees) + .multipliedBy(CHAIN_INFO.get(from.getNonce())!.decimals) + .integerValue(); + console.log(sftFees); + const x = new BigNumber(fee).plus(feeS); + + console.log(x.toNumber()); + const response = this.transferBatchNft( from, to, transfers, sender, receiver, - new BigNumber(fee!).dividedToIntegerBy(5), + new BigNumber(x!).integerValue(), mintWith ); return response; From 632024f85394a1d82d437c866b31442ecda34dec Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 8 Dec 2022 12:27:06 +0200 Subject: [PATCH 822/956] refactor ChainFactoty calcSftFees --- src/factory/index.ts | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 9770d825f..d972e37ec 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -201,6 +201,12 @@ export type ChainFactory = { receiver: string ): Promise; + estimateSFTfees( + fromChain: FullChain, + amount: bigint, + price: number + ): Promise; + estimateBatchFees( fromChain: FullChain, toChain: FullChain, @@ -464,6 +470,26 @@ export function ChainFactory( return conv; }; + const estimateSFTfees = async ( + fromChain: FullChain, + amount: bigint, + price: number = 0.05 + ) => { + const rate = await remoteExchangeRate.getBatchedRate([ + CHAIN_INFO.get(fromChain.getNonce())!.currency, + ]); + + const fromExRate = rate.get( + CHAIN_INFO.get(fromChain.getNonce())!.currency + )!; + const y = price / fromExRate; + + const sftFees = Number(amount) <= 10 ? 0 : y * (Number(amount) - 10); + return new BigNumber(sftFees) + .multipliedBy(CHAIN_INFO.get(fromChain.getNonce())!.decimals) + .integerValue(); + }; + async function bridgeStatus(): Promise<{ [x: number]: "alive" | "dead" }> { const res = await heartbeatRepo.status(); return Object.fromEntries( @@ -675,21 +701,8 @@ export function ChainFactory( if (!fee) { fee = await estimateFees(from, to, transfers[0], receiver); } - - const rate = await remoteExchangeRate.getBatchedRate([ - CHAIN_INFO.get(from.getNonce())!.currency, - CHAIN_INFO.get(to.getNonce())!.currency, - ]); - - const fromExRate = rate.get(CHAIN_INFO.get(from.getNonce())!.currency)!; - const y = 0.05 / fromExRate; - - const sftFees = Number(amt) <= 10 ? 0 : y * (Number(amt) - 10); - const feeS = new BigNumber(sftFees) - .multipliedBy(CHAIN_INFO.get(from.getNonce())!.decimals) - .integerValue(); - console.log(sftFees); - const x = new BigNumber(fee).plus(feeS); + const sftFees = await estimateSFTfees(from, amt, 0.05); + const x = new BigNumber(fee).plus(sftFees); console.log(x.toNumber()); @@ -737,6 +750,7 @@ export function ChainFactory( } }, estimateFees, + estimateSFTfees, inner, bridgeStatus, updateParams( From db9236df4b142dc6ca7fe2689e15e0bd7c327d9b Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 13 Dec 2022 16:27:04 +0200 Subject: [PATCH 823/956] solana blance method, contants --- package.json | 1 + src/consts.ts | 11 +- src/helpers/solana/index.ts | 68 +++- tsconfig.json | 4 +- yarn.lock | 730 ++++++++++++++++++++++++++++++++---- 5 files changed, 737 insertions(+), 77 deletions(-) diff --git a/package.json b/package.json index 6fd1a3e2d..524f38be7 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@ethersproject/providers": "^5.7.0", "@hashgraph/hethers": "1.1.2", "@json-rpc-tools/utils": "^1.7.6", + "@metaplex-foundation/js": "0.17.5", "@project-serum/anchor": "^0.25.0-beta.1", "@randlabs/myalgo-connect": "^1.1.1", "@solana/spl-token": "^0.2.0", diff --git a/src/consts.ts b/src/consts.ts index ee5cd260a..4c9979acd 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -190,13 +190,13 @@ interface ChainData { decimals: number; constructor: (p: InferChainParam) => Promise>; blockExplorerUrl: string; - tnBlockExplorerUrl?: string; + tnBlockExplorerUrl?: string | ((tx: string) => string); chainId?: number; tnChainId?: number; currency: SupportedCurrency; type: string; blockExplorerUrlAddr?: string; - tnBlockExplorerUrlAddr?: string; + tnBlockExplorerUrlAddr?: string | ((tx: string) => string); rejectUnfreeze?: string[]; } @@ -511,7 +511,12 @@ CHAIN_INFO.set(Chain.SECRET, { }); CHAIN_INFO.set(Chain.SOLANA, { name: "Solana", - blockExplorerUrl: "", // TODO + blockExplorerUrl: "https://solscan.io/tx/", + blockExplorerUrlAddr: "https://solscan.io/account/", + tnBlockExplorerUrl: (tx: string) => + `https://solscan.io/tx/${tx}?cluster=devnet`, + tnBlockExplorerUrlAddr: (address: string) => + `https://solscan.io/account/${address}?cluster=devnet`, constructor: solanaHelper, nonce: Chain.SOLANA, currency: SupportedCurrency.SOL, diff --git a/src/helpers/solana/index.ts b/src/helpers/solana/index.ts index 00de0db55..c94a665a3 100644 --- a/src/helpers/solana/index.ts +++ b/src/helpers/solana/index.ts @@ -16,7 +16,17 @@ import { TokenInvalidOwnerError, TOKEN_PROGRAM_ID, } from "@solana/spl-token"; -import { Connection, PublicKey, Transaction } from "@solana/web3.js"; +import { + Connection, + PublicKey, + Transaction, + //LAMPORTS_PER_SOL, +} from "@solana/web3.js"; +import { + Metaplex, + bundlrStorage, + walletAdapterIdentity, +} from "@metaplex-foundation/js"; import BigNumber from "bignumber.js"; import { Chain } from "../.."; import { EvNotifier } from "../../notifier"; @@ -29,6 +39,8 @@ import { TransferNftForeign, UnfreezeForeignNft, ValidateAddress, + BalanceCheck, + MintNft, } from "../chain"; import { IDL } from "./idl"; @@ -38,7 +50,13 @@ export type SolanaNft = { nftMint: string; }; +type SolanaMintArgs = { + uri: string; +}; + export type SolanaHelper = ChainNonceGet & + BalanceCheck & + MintNft & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & @@ -166,6 +184,9 @@ export async function solanaHelper(args: SolanaParams): Promise { return { XpNft: args.xpnftAddr, connection: conn, + async balance(address: string) { + return new BigNumber(await conn.getBalance(new PublicKey(address))); + }, getNonce: () => Chain.SOLANA, async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { const provider = new AnchorProvider(conn, sender, {}); @@ -264,6 +285,51 @@ export async function solanaHelper(args: SolanaParams): Promise { getProvider() { return conn; }, + async mintNft(sender, args) { + console.log(args, "args"); + console.log(sender, "sender"); + const provider = new AnchorProvider(conn, sender, {}); + console.log(provider.wallet, "provider"); + + /*const txn = await conn.requestAirdrop( + sender.publicKey, + LAMPORTS_PER_SOL * 2 + ); + const block = await conn.getLatestBlockhash(); + const sig = conn.confirmTransaction( + { + blockhash: block.blockhash, + lastValidBlockHeight: block.lastValidBlockHeight, + signature: txn, + }, + "finalized" + ); + console.log(`Airdrop: ${txn}`); + console.log(`sig ${sig}`); + console.log(`Waiting for 5s`); + await new Promise((r) => setTimeout(r, 5000));*/ + //sender.payer.secretKey. + const metaplex = Metaplex.make(conn) + .use(walletAdapterIdentity(sender)) + .use(bundlrStorage()); + const nftc = metaplex.nfts(); + + const _col = await nftc.create( + { + name: "Uniair1", + symbol: "UNIAIRT", + + uri: args.uri, + sellerFeeBasisPoints: 0, + }, + { + commitment: "processed", + } + ); + + console.log(_col); + return ""; + }, async estimateValidateTransferNft() { return new BigNumber(0); // TODO }, diff --git a/tsconfig.json b/tsconfig.json index 4f7af3249..98bd52d7f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "incremental": false, - "target": "ES2022", + "target": "es2021", "outDir": "./dist", //"outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", @@ -40,7 +40,7 @@ // "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */, // "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */, - "lib": ["ES2022", "dom"], // elrdjs depends on dom? + "lib": ["es2021", "dom"], // elrdjs depends on dom? "types": ["node"], "typeRoots": ["node_modules/@types", "src/types"] }, diff --git a/yarn.lock b/yarn.lock index b60e97300..7f0ebcaac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -44,6 +44,31 @@ dependencies: regenerator-runtime "^0.13.11" +"@bundlr-network/client@^0.8.8": + version "0.8.9" + resolved "https://registry.yarnpkg.com/@bundlr-network/client/-/client-0.8.9.tgz#58e969a5d80f8d25d212d46bb7a060730a3c1736" + integrity sha512-SJ7BAt/KhONeFQ0+nbqrw2DUWrsev6y6cmlXt+3x7fPCkw7OJwudtxV/h2nBteZd65NXjqw8yzkmLiLfZ7CCRA== + dependencies: + "@solana/wallet-adapter-base" "^0.9.2" + "@solana/web3.js" "^1.36.0" + "@supercharge/promise-pool" "^2.1.0" + algosdk "^1.13.1" + arbundles "^0.6.21" + arweave "^1.11.4" + async-retry "^1.3.3" + axios "^0.25.0" + base64url "^3.0.1" + bignumber.js "^9.0.1" + bs58 "^4.0.1" + commander "^8.2.0" + csv "^6.0.5" + ethers "^5.5.1" + inquirer "^8.2.0" + js-sha256 "^0.9.0" + mime-types "^2.1.34" + near-api-js "^0.44.2" + near-seed-phrase "^0.2.0" + "@cosmjs/encoding@0.27.1": version "0.27.1" resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.27.1.tgz#3cd5bc0af743485eb2578cdb08cfa84c86d610e1" @@ -707,9 +732,9 @@ "@types/node" ">=12.12.47" "@grpc/proto-loader@^0.7.0": - version "0.7.3" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.3.tgz#75a6f95b51b85c5078ac7394da93850c32d36bb8" - integrity sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA== + version "0.7.4" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.4.tgz#4946a84fbf47c3ddd4e6a97acb79d69a9f47ebf2" + integrity sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" @@ -1195,7 +1220,153 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.1.tgz#5bd16082261d7364eabb511c788f00937dac588d" integrity sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w== -"@noble/ed25519@^1.7.0": +"@metaplex-foundation/beet-solana@^0.3.0", "@metaplex-foundation/beet-solana@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet-solana/-/beet-solana-0.3.1.tgz#4b37cda5c7f32ffd2bdd8b3164edc05c6463ab35" + integrity sha512-tgyEl6dvtLln8XX81JyBvWjIiEcjTkUwZbrM5dIobTmoqMuGewSyk9CClno8qsMsFdB5T3jC91Rjeqmu/6xk2g== + dependencies: + "@metaplex-foundation/beet" ">=0.1.0" + "@solana/web3.js" "^1.56.2" + bs58 "^5.0.0" + debug "^4.3.4" + +"@metaplex-foundation/beet-solana@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet-solana/-/beet-solana-0.4.0.tgz#52891e78674aaa54e0031f1bca5bfbc40de12e8d" + integrity sha512-B1L94N3ZGMo53b0uOSoznbuM5GBNJ8LwSeznxBxJ+OThvfHQ4B5oMUqb+0zdLRfkKGS7Q6tpHK9P+QK0j3w2cQ== + dependencies: + "@metaplex-foundation/beet" ">=0.1.0" + "@solana/web3.js" "^1.56.2" + bs58 "^5.0.0" + debug "^4.3.4" + +"@metaplex-foundation/beet@0.7.1", "@metaplex-foundation/beet@>=0.1.0", "@metaplex-foundation/beet@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet/-/beet-0.7.1.tgz#0975314211643f87b5f6f3e584fa31abcf4c612c" + integrity sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA== + dependencies: + ansicolors "^0.3.2" + bn.js "^5.2.0" + debug "^4.3.3" + +"@metaplex-foundation/beet@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet/-/beet-0.4.0.tgz#eb2a0a6eb084bb25d67dd9bed2f7387ee7e63a55" + integrity sha512-2OAKJnLatCc3mBXNL0QmWVQKAWK2C7XDfepgL0p/9+8oSx4bmRAFHFqptl1A/C0U5O3dxGwKfmKluW161OVGcA== + dependencies: + ansicolors "^0.3.2" + bn.js "^5.2.0" + debug "^4.3.3" + +"@metaplex-foundation/beet@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet/-/beet-0.6.1.tgz#6331bdde0648bf2cae6f9e482f8e3552db05d69f" + integrity sha512-OYgnijLFzw0cdUlRKH5POp0unQECPOW9muJ2X3QIVyak5G6I6l/rKo72sICgPLIFKdmsi2jmnkuLY7wp14iXdw== + dependencies: + ansicolors "^0.3.2" + bn.js "^5.2.0" + debug "^4.3.3" + +"@metaplex-foundation/cusper@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/cusper/-/cusper-0.0.2.tgz#dc2032a452d6c269e25f016aa4dd63600e2af975" + integrity sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA== + +"@metaplex-foundation/js@0.17.5": + version "0.17.5" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/js/-/js-0.17.5.tgz#2d16a9e25015688d5944b445b548abcd41692519" + integrity sha512-Obb4p/f/BmDG0w0iBULGUJCPXsC9BPcDPvkgP+QlppVtLaQ18p/Y0NOtNcIe8KpPi0BsZ+XxprlRe4adUwzxdg== + dependencies: + "@bundlr-network/client" "^0.8.8" + "@metaplex-foundation/beet" "0.7.1" + "@metaplex-foundation/mpl-auction-house" "^2.1.1" + "@metaplex-foundation/mpl-candy-guard" "^0.3.0" + "@metaplex-foundation/mpl-candy-machine" "^4.6.0" + "@metaplex-foundation/mpl-candy-machine-core" "^0.1.0" + "@metaplex-foundation/mpl-token-metadata" "^2.3.3" + "@noble/ed25519" "^1.7.1" + "@noble/hashes" "^1.1.3" + "@solana/spl-token" "^0.3.5" + "@solana/web3.js" "^1.63.1" + bignumber.js "^9.0.2" + bn.js "^5.2.1" + bs58 "^5.0.0" + buffer "^6.0.3" + debug "^4.3.4" + eventemitter3 "^4.0.7" + lodash.clonedeep "^4.5.0" + lodash.isequal "^4.5.0" + merkletreejs "^0.2.32" + mime "^3.0.0" + node-fetch "^2.6.7" + +"@metaplex-foundation/mpl-auction-house@^2.1.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-auction-house/-/mpl-auction-house-2.3.1.tgz#9c3713c6f0812418952db1c0ad12b677aacc6f48" + integrity sha512-OqMKwjm0+afXPc4DuONP1YBrmzwjlhhX2qUc09jZm7n/uIb1Eb9XgupCAVK7Kc9WvaneJ3dEZgn9HrcNtUPsMg== + dependencies: + "@metaplex-foundation/beet" "^0.6.1" + "@metaplex-foundation/beet-solana" "^0.3.1" + "@metaplex-foundation/cusper" "^0.0.2" + "@solana/spl-token" "^0.3.5" + "@solana/web3.js" "^1.56.2" + bn.js "^5.2.0" + +"@metaplex-foundation/mpl-candy-guard@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-candy-guard/-/mpl-candy-guard-0.3.0.tgz#e049abf8031665759ec0f9e965dedf93962b90fe" + integrity sha512-YJOZPtAirPqBMd48GOUQ+lav71C70QrA9OQnXsuAbbdl7jKlvbL72C9CnSNBTfdW2I+zPOmDL5H3CQddvgIWlA== + dependencies: + "@metaplex-foundation/beet" "^0.4.0" + "@metaplex-foundation/beet-solana" "^0.3.0" + "@metaplex-foundation/cusper" "^0.0.2" + "@solana/web3.js" "^1.56.2" + bn.js "^5.2.0" + +"@metaplex-foundation/mpl-candy-machine-core@^0.1.0": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-candy-machine-core/-/mpl-candy-machine-core-0.1.2.tgz#07e19558d0ef120fac1d8612ae4de90d52cd4d1f" + integrity sha512-jjDkRvMR+iykt7guQ7qVnOHTZedql0lq3xqWDMaenAUCH3Xrf2zKATThhJppIVNX1/YtgBOO3lGqhaFbaI4pCw== + dependencies: + "@metaplex-foundation/beet" "^0.4.0" + "@metaplex-foundation/beet-solana" "^0.3.0" + "@metaplex-foundation/cusper" "^0.0.2" + "@solana/web3.js" "^1.56.2" + bn.js "^5.2.0" + +"@metaplex-foundation/mpl-candy-machine@^4.6.0": + version "4.7.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-candy-machine/-/mpl-candy-machine-4.7.1.tgz#ecf6ebbe96245084c9a186761ecc51c62ce1206f" + integrity sha512-tBNRAfBE/rYy9pe2aJD4gTFw+pgQ11o3AJjoYGB4+05ow0VjJMSt6kQGzHm2LRPgdLY4diKAq8qHvgsbV5ikNQ== + dependencies: + "@metaplex-foundation/beet" "^0.4.0" + "@metaplex-foundation/beet-solana" "^0.3.0" + "@metaplex-foundation/cusper" "^0.0.2" + "@metaplex-foundation/mpl-core" "^0.6.1" + "@solana/web3.js" "^1.35.1" + +"@metaplex-foundation/mpl-core@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-core/-/mpl-core-0.6.1.tgz#bdc76a8b447a2ef310693973bf430e5ecec6ef0b" + integrity sha512-6R4HkfAqU2EUakNbVLcCmka0YuQTLGTbHJ62ig765+NRWuB2HNGUQ1HfHcRsGnyxhlCvwKK79JE01XUjFE+dzw== + dependencies: + "@solana/web3.js" "^1.35.1" + bs58 "^4.0.1" + +"@metaplex-foundation/mpl-token-metadata@^2.3.3": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-token-metadata/-/mpl-token-metadata-2.5.2.tgz#ec84464e2bf65bf491abdc71c3882e5973dd9978" + integrity sha512-lAjQjj2gGtyLq8MOkp4tWZSC5DK9NWgPd3EoH0KQ9gMs3sKIJRik0CBaZg+JA0uLwzkiErY2Izus4vbWtRADJQ== + dependencies: + "@metaplex-foundation/beet" "^0.7.1" + "@metaplex-foundation/beet-solana" "^0.4.0" + "@metaplex-foundation/cusper" "^0.0.2" + "@solana/spl-token" "^0.3.6" + "@solana/web3.js" "^1.66.2" + bn.js "^5.2.0" + debug "^4.3.4" + +"@noble/ed25519@^1.6.1", "@noble/ed25519@^1.7.0", "@noble/ed25519@^1.7.1": version "1.7.1" resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.1.tgz#6899660f6fbb97798a6fbd227227c4589a454724" integrity sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw== @@ -1210,7 +1381,7 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111" integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== -"@noble/hashes@^1.1.2", "@noble/hashes@~1.1.1": +"@noble/hashes@^1.1.2", "@noble/hashes@^1.1.3", "@noble/hashes@~1.1.1": version "1.1.4" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.4.tgz#2611ebf5764c1bf754da7c7794de4fb30512336d" integrity sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA== @@ -1470,7 +1641,7 @@ resolved "https://registry.yarnpkg.com/@randlabs/communication-bridge/-/communication-bridge-1.0.1.tgz#d1ecfc29157afcbb0ca2d73122d67905eecb5bf3" integrity sha512-CzS0U8IFfXNK7QaJFE4pjbxDGfPjbXBEsEaCn9FN15F+ouSAEUQkva3Gl66hrkBZOGexKFEWMwUHIDKpZ2hfVg== -"@randlabs/myalgo-connect@^1.1.1": +"@randlabs/myalgo-connect@^1.1.1", "@randlabs/myalgo-connect@^1.1.2": version "1.4.2" resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.4.2.tgz#ce3ad97b3889ea21da75852187511d3f6be0fa05" integrity sha512-K9hEyUi7G8tqOp7kWIALJLVbGCByhilcy6123WfcorxWwiE1sbQupPyIU5f3YdQK6wMjBsyTWiLW52ZBMp7sXA== @@ -1533,9 +1704,9 @@ bignumber.js "^9.0.1" "@solana/buffer-layout@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz#75b1b11adc487234821c81dfae3119b73a5fd734" - integrity sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ== + version "4.0.1" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" + integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== dependencies: buffer "~6.0.3" @@ -1549,10 +1720,26 @@ "@solana/web3.js" "^1.32.0" start-server-and-test "^1.14.0" -"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2": - version "1.70.0" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.70.0.tgz#14ad207f431861397db85921aad8df4e8374e7c8" - integrity sha512-HwdI9LaHaszfpzgxJI44iP68mJWUeqK1TeSheKQsGkH5zlVyGWGmim50MyDWu2vXiuL8Akf2xEMSrDYyLordgg== +"@solana/spl-token@^0.3.5", "@solana/spl-token@^0.3.6": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.6.tgz#35473ad2ed71fe91e5754a2ac72901e1b8b26a42" + integrity sha512-P9pTXjDIRvVbjr3J0mCnSamYqLnICeds7IoH1/Ro2R9OBuOHdp5pqKZoscfZ3UYrgnCWUc1bc9M2m/YPHjw+1g== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/buffer-layout-utils" "^0.2.0" + buffer "^6.0.3" + +"@solana/wallet-adapter-base@^0.9.2": + version "0.9.19" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.19.tgz#8b493705cabdc641824853405f79781f9ddc1bd5" + integrity sha512-c/F3xyuSNDUjbYM6E4be5bMx9YmNqE6XIpLcM9U3ohviwDF8hO+v5N8KSvnMaztL4Lr6+TEtCLi3Q5AT0r06JA== + dependencies: + eventemitter3 "^4.0.0" + +"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.35.1", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2", "@solana/web3.js@^1.56.2", "@solana/web3.js@^1.63.1", "@solana/web3.js@^1.66.2": + version "1.70.1" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.70.1.tgz#4a2df47cc32a0f67be5161e772b2ceb6512281fa" + integrity sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ== dependencies: "@babel/runtime" "^7.12.5" "@noble/ed25519" "^1.7.0" @@ -1690,6 +1877,11 @@ "@stablelib/salsa20" "^1.0.2" "@stablelib/wipe" "^1.0.1" +"@supercharge/promise-pool@^2.1.0": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-2.3.2.tgz#6366894a7e7bc699bb65e58d8c828113729cf481" + integrity sha512-f5+C7zv+QQivcUO1FH5lXi7GcuJ3CFuJF3Eg06iArhUs5ma0szCLEQwIY4+VQyh7m/RLVZdzvr4E4ZDnLe9MNg== + "@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1929,9 +2121,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^18.7.13": - version "18.11.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.11.tgz#1d455ac0211549a8409d3cdb371cd55cc971e8dc" - integrity sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g== + version "18.11.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.14.tgz#a8571b25f3a31e9ded14e3ab9488509adef831d8" + integrity sha512-0KXV57tENYmmJMl+FekeW9V3O/rlcqGQQJ/hNh9r8pKIj304pskWuEd8fCyNT86g/TpO0gcOTiLzsHLEURFMIQ== "@types/node@10.12.18": version "10.12.18" @@ -2368,7 +2560,7 @@ algo-msgpack-with-bigint@^2.1.1: resolved "https://registry.yarnpkg.com/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz#38bb717220525b3ff42232eefdcd9efb9ad405d6" integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== -algosdk@^1.15.0-beta.1: +algosdk@^1.13.1, algosdk@^1.15.0-beta.1: version "1.24.0" resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.24.0.tgz#9f4e2fdf94d100561b2251c0a6591047fe0e2556" integrity sha512-Q+rOpHTyn92OaL1ta0jEGz8fUQnfGiH2u5wkHj4phy5YKC9mkUrXc1+3Qk3v5fsttTV6pZlYPpzvBTNAlgIAyQ== @@ -2389,6 +2581,13 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -2413,6 +2612,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansicolors@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== + anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -2437,6 +2641,35 @@ aptos@^1.3.16: form-data "4.0.0" tweetnacl "1.0.3" +arbundles@^0.6.21: + version "0.6.22" + resolved "https://registry.yarnpkg.com/arbundles/-/arbundles-0.6.22.tgz#0fd58ec76514f1d6c2db7c5870a6232314f52de6" + integrity sha512-QlSavBHk59mNqgQ6ScxlqaBJlDbSmSrK/uTcF3HojLAZ/4aufTkVTBjl1hSfZ/ZN45oIPgJC05R8SmVARF+8VA== + dependencies: + "@noble/ed25519" "^1.6.1" + "@randlabs/myalgo-connect" "^1.1.2" + "@solana/wallet-adapter-base" "^0.9.2" + algosdk "^1.13.1" + arweave "^1.11.4" + arweave-stream-tx "^1.1.0" + avsc "https://github.com/Bundlr-Network/avsc#csp-fixes" + axios "^0.21.3" + base64url "^3.0.1" + bs58 "^4.0.1" + ethers "^5.5.1" + keccak "^3.0.2" + multistream "^4.1.0" + process "^0.11.10" + secp256k1 "^4.0.2" + tmp-promise "^3.0.2" + +arconnect@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/arconnect/-/arconnect-0.4.2.tgz#83de7638fb46183e82d7ec7efb5594c5f7cdc806" + integrity sha512-Jkpd4QL3TVqnd3U683gzXmZUVqBUy17DdJDuL/3D9rkysLgX6ymJ2e+sR+xyZF5Rh42CBqDXWNMmCjBXeP7Gbw== + dependencies: + arweave "^1.10.13" + are-we-there-yet@~1.1.2: version "1.1.7" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" @@ -2502,12 +2735,31 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== +arweave-stream-tx@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/arweave-stream-tx/-/arweave-stream-tx-1.2.2.tgz#2d5c66554301baacd02586a152fbb198b422112f" + integrity sha512-bNt9rj0hbAEzoUZEF2s6WJbIz8nasZlZpxIw03Xm8fzb9gRiiZlZGW3lxQLjfc9Z0VRUWDzwtqoYeEoB/JDToQ== + dependencies: + exponential-backoff "^3.1.0" + +arweave@^1.10.13, arweave@^1.11.4: + version "1.11.8" + resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.11.8.tgz#09376e0c6cec40a661cbb27a306cb11c0a663cd8" + integrity sha512-58ODeNPIC4OjaOCl2bXjKbOFGsiVZFs+DkQg3BvQGvFWNqw1zTJ4Jp01xGUz+GbdOaDyJcCC0g3l0HwdJfFPyw== + dependencies: + arconnect "^0.4.2" + asn1.js "^5.4.1" + axios "^0.27.2" + base64-js "^1.5.1" + bignumber.js "^9.0.2" + util "^0.12.4" + asmcrypto.js@^0.22.0: version "0.22.0" resolved "https://registry.yarnpkg.com/asmcrypto.js/-/asmcrypto.js-0.22.0.tgz#38fc1440884d802c7bd37d1d23c2b26a5cd5d2d2" integrity sha512-usgMoyXjMbx/ZPdzTSXExhMPur2FTdz/Vo5PVx2gIaBcdAAJNOFlsdgqveM8Cff7W0v+xrf9BwjOV26JSAF9qA== -asn1.js@^5.2.0: +asn1.js@^5.2.0, asn1.js@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== @@ -2563,6 +2815,13 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async-retry@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2578,6 +2837,10 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +"avsc@https://github.com/Bundlr-Network/avsc#csp-fixes": + version "5.4.7" + resolved "https://github.com/Bundlr-Network/avsc#a730cc8018b79e114b6a3381bbb57760a24c6cef" + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2604,7 +2867,7 @@ axios@0.24.0, axios@^0.24.0: dependencies: follow-redirects "^1.14.4" -axios@0.27.2, axios@^0.27.0: +axios@0.27.2, axios@^0.27.0, axios@^0.27.2: version "0.27.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== @@ -2612,7 +2875,7 @@ axios@0.27.2, axios@^0.27.0: follow-redirects "^1.14.9" form-data "^4.0.0" -axios@^0.21.1: +axios@^0.21.1, axios@^0.21.3: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== @@ -2677,6 +2940,11 @@ base-x@^3.0.2, base-x@^3.0.8: dependencies: safe-buffer "^5.0.1" +base-x@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" + integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== + base64-arraybuffer@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45" @@ -2687,6 +2955,11 @@ base64-js@*, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +base64url@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" + integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== + bash-glob@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bash-glob/-/bash-glob-2.0.0.tgz#a8ef19450783403ed93fccca2dbe09f2cf6320dc" @@ -2792,6 +3065,14 @@ bip32@2.0.6: typeforce "^1.11.5" wif "^2.0.6" +bip39-light@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/bip39-light/-/bip39-light-1.0.7.tgz#06a72f251b89389a136d3f177f29b03342adc5ba" + integrity sha512-WDTmLRQUsiioBdTs9BmSEmkJza+8xfJmptsNJjxnoq3EydSa/ZBXT6rm66KoT3PJIRYMnhSKNR7S9YL1l7R40Q== + dependencies: + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + bip39@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.2.tgz#2baf42ff3071fc9ddd5103de92e8f80d9257ee32" @@ -2812,7 +3093,7 @@ bip39@3.0.4: pbkdf2 "^3.0.9" randombytes "^2.0.1" -bl@^4.0.3: +bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -2907,6 +3188,15 @@ borc@^2.1.1: json-text-sequence "~0.1.0" readable-stream "^3.6.0" +borsh@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.6.0.tgz#a7c9eeca6a31ca9e0607cb49f329cb659eb791e1" + integrity sha512-sl5k89ViqsThXQpYa9XDtz1sBl3l1lI313cFUY1HKr+wvMILnb+58xpkqTNrYbelh99dY7K8usxoCusQmqix9Q== + dependencies: + bn.js "^5.2.0" + bs58 "^4.0.0" + text-encoding-utf-8 "^1.0.2" + borsh@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" @@ -3004,6 +3294,13 @@ bs58@^4.0.0, bs58@^4.0.1: dependencies: base-x "^3.0.2" +bs58@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" + integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== + dependencies: + base-x "^4.0.0" + bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" @@ -3018,6 +3315,11 @@ buffer-layout@^1.2.0, buffer-layout@^1.2.2: resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== +buffer-reverse@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-reverse/-/buffer-reverse-1.0.1.tgz#49283c8efa6f901bc01fa3304d06027971ae2f60" + integrity sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg== + buffer-to-arraybuffer@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" @@ -3145,7 +3447,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3154,9 +3456,14 @@ chalk@^4.0.0, chalk@^4.1.0: supports-color "^7.1.0" chalk@^5.0.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.1.2.tgz#d957f370038b75ac572471e83be4c5ca9f8e8c45" - integrity sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== charenc@0.0.2: version "0.0.2" @@ -3217,6 +3524,23 @@ class-is@^1.1.0: resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -3242,6 +3566,11 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" @@ -3298,6 +3627,11 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + commander@^9.4.0: version "9.4.1" resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" @@ -3486,11 +3820,41 @@ crypto-hash@^1.3.0: resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== +crypto-js@^3.1.9-1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b" + integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q== + crypto-js@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== +csv-generate@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-4.2.1.tgz#2a0c5f0d9a5b6f7a0c1fee40f028707af048b31b" + integrity sha512-w6GFHjvApv6bcJ2xdi9JGsH6ZvUBfC+vUdfefnEzurXG6hMRwzkBLnhztU2H7v7+zfCk1I/knnQ+tGbgpxWrBw== + +csv-parse@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-5.3.3.tgz#3b75d2279e2edb550cbc54c65b25cbbf3d0033ad" + integrity sha512-kEWkAPleNEdhFNkHQpFHu9RYPogsFj3dx6bCxL847fsiLgidzWg0z/O0B1kVWMJUc5ky64zGp18LX2T3DQrOfw== + +csv-stringify@^6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-6.2.3.tgz#fefd25e66fd48f8f42f43b85a66a4663a2c3e796" + integrity sha512-4qGjUMwnlaRc00gc2jrIYh2w/h1fo25B0mTuY9K8fBiIgtmCX3LcgUbrEGViL98Ci4Se/F5LFEtu8k+dItJVZQ== + +csv@^6.0.5: + version "6.2.5" + resolved "https://registry.yarnpkg.com/csv/-/csv-6.2.5.tgz#e01fd3db2f0856a120ae9140bd179c1a186ee2b9" + integrity sha512-T+K0H7MIrlrnP6KxYKo3lK+uLl6OC2Gmwdd81TG/VdkhKvpatl35sR7tyRSpDLGl22y2T+q9KvNHnVtn4OAscQ== + dependencies: + csv-generate "^4.2.1" + csv-parse "^5.3.3" + csv-stringify "^6.2.3" + stream-transform "^3.2.1" + curve25519-js@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/curve25519-js/-/curve25519-js-0.0.4.tgz#e6ad967e8cd284590d657bbfc90d8b50e49ba060" @@ -3523,7 +3887,7 @@ debug@2.6.9, debug@^2.2.0: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4.3.4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -3583,6 +3947,13 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" @@ -3800,9 +4171,9 @@ error-polyfill@^0.1.3: u3 "^0.1.1" es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.20.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" - integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== + version "1.20.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" + integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -3810,6 +4181,7 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: function.prototype.name "^1.1.5" get-intrinsic "^1.1.3" get-symbol-description "^1.0.0" + gopd "^1.0.1" has "^1.0.3" has-property-descriptors "^1.0.0" has-symbols "^1.0.3" @@ -3825,8 +4197,8 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" unbox-primitive "^1.0.2" es-shim-unscopables@^1.0.0: @@ -4254,7 +4626,7 @@ ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereu ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethers@^5.4.4, ethers@^5.5.4, ethers@^5.6.2: +ethers@^5.4.4, ethers@^5.5.1, ethers@^5.5.4, ethers@^5.6.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -4326,7 +4698,7 @@ eventemitter3@^3.1.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -eventemitter3@^4.0.4, eventemitter3@^4.0.7: +eventemitter3@^4.0.0, eventemitter3@^4.0.4, eventemitter3@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== @@ -4397,6 +4769,11 @@ expo-random@*: dependencies: base64-js "^1.3.0" +exponential-backoff@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.0.tgz#9409c7e579131f8bd4b32d7d8094a911040f2e68" + integrity sha512-oBuz5SYz5zzyuHINoe9ooePwSu0xApKWgeNzok4hZ5YKXFh9zrQBEM15CXqoZkJJPuI2ArvqjPQd8UKJA753XA== + express@^4.14.0: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" @@ -4453,6 +4830,15 @@ extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -4506,6 +4892,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -4877,9 +5270,9 @@ global@~4.4.0: process "^0.11.10" globals@^13.6.0, globals@^13.9.0: - version "13.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.18.0.tgz#fb224daeeb2bb7d254cd2c640f003528b8d0c1dc" - integrity sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A== + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== dependencies: type-fest "^0.20.2" @@ -4896,9 +5289,9 @@ globby@^11.0.3: slash "^3.0.0" globby@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" - integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== + version "13.1.3" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.3.tgz#f62baf5720bcb2c1330c8d4ef222ee12318563ff" + integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw== dependencies: dir-glob "^3.0.1" fast-glob "^3.2.11" @@ -4938,9 +5331,9 @@ got@12.1.0: responselike "^2.0.0" got@^11.8.5: - version "11.8.5" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" - integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== dependencies: "@sindresorhus/is" "^4.0.0" "@szmarczak/http-timer" "^4.0.5" @@ -5129,7 +5522,7 @@ husky@^8.0.0: resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236" integrity sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg== -iconv-lite@0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -5194,6 +5587,27 @@ injectpromise@^1.0.0: resolved "https://registry.yarnpkg.com/injectpromise/-/injectpromise-1.0.0.tgz#c621f7df2bbfc1164d714f1fb229adec2079da39" integrity sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA== +inquirer@^8.2.0: + version "8.2.5" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" + integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -5332,6 +5746,11 @@ is-hex-prefixed@1.0.0: resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + is-nan@^1.2.1: version "1.3.2" resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" @@ -5412,6 +5831,11 @@ is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -5486,7 +5910,7 @@ jayson@^3.4.4: uuid "^8.3.2" ws "^7.4.5" -joi@^17.4.0: +joi@^17.6.0: version "17.7.0" resolved "https://registry.yarnpkg.com/joi/-/joi-17.7.0.tgz#591a33b1fe1aca2bc27f290bcad9b9c1c570a6b3" integrity sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg== @@ -5644,7 +6068,7 @@ jssha@3.2.0: resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16" integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q== -keccak@^3.0.0, keccak@^3.0.1: +keccak@^3.0.0, keccak@^3.0.1, keccak@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== @@ -5719,6 +6143,16 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -5734,6 +6168,14 @@ lodash@4.17.21, lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" @@ -5855,6 +6297,17 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +merkletreejs@^0.2.32: + version "0.2.32" + resolved "https://registry.yarnpkg.com/merkletreejs/-/merkletreejs-0.2.32.tgz#cf1c0760e2904e4a1cc269108d6009459fd06223" + integrity sha512-TostQBiwYRIwSE5++jGmacu3ODcKAgqb0Y/pnIohXS7sWxh1gCkSptbmF1a43faehRDpcHf7J/kv0Ml2D/zblQ== + dependencies: + bignumber.js "^9.0.1" + buffer-reverse "^1.0.1" + crypto-js "^3.1.9-1" + treeify "^1.1.0" + web3-utils "^1.3.4" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -5881,7 +6334,7 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.16, mime-types@^2.1.34, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -5893,6 +6346,11 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -6074,11 +6532,24 @@ multimatch@^4.0.0: arrify "^2.0.1" minimatch "^3.0.4" +multistream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz#7bf00dfd119556fbc153cff3de4c6d477909f5a8" + integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw== + dependencies: + once "^1.4.0" + readable-stream "^3.6.0" + mustache@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + nan@^2.13.2: version "2.17.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" @@ -6126,6 +6597,42 @@ near-api-js@1.0.0: text-encoding-utf-8 "^1.0.2" tweetnacl "^1.0.1" +near-api-js@^0.44.2: + version "0.44.2" + resolved "https://registry.yarnpkg.com/near-api-js/-/near-api-js-0.44.2.tgz#e451f68f2c56bd885c7b918db5818a3e6e9423d0" + integrity sha512-eMnc4V+geggapEUa3nU2p8HSHn/njtloI4P2mceHQWO8vDE1NGpnAw8FuTBrLmXSgIv9m6oocgFc9t3VNf5zwg== + dependencies: + bn.js "5.2.0" + borsh "^0.6.0" + bs58 "^4.0.0" + depd "^2.0.0" + error-polyfill "^0.1.3" + http-errors "^1.7.2" + js-sha256 "^0.9.0" + mustache "^4.0.0" + node-fetch "^2.6.1" + text-encoding-utf-8 "^1.0.2" + tweetnacl "^1.0.1" + +near-hd-key@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/near-hd-key/-/near-hd-key-1.2.1.tgz#f508ff15436cf8a439b543220f3cc72188a46756" + integrity sha512-SIrthcL5Wc0sps+2e1xGj3zceEa68TgNZDLuCx0daxmfTP7sFTB3/mtE2pYhlFsCxWoMn+JfID5E1NlzvvbRJg== + dependencies: + bip39 "3.0.2" + create-hmac "1.1.7" + tweetnacl "1.0.3" + +near-seed-phrase@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/near-seed-phrase/-/near-seed-phrase-0.2.0.tgz#fb7cf89682112b1160ab68abb50dc821f49be18a" + integrity sha512-NpmrnejpY1AdlRpDZ0schJQJtfBaoUheRfiYtQpcq9TkwPgqKZCRULV5L3hHmLc0ep7KRtikbPQ9R2ztN/3cyQ== + dependencies: + bip39-light "^1.0.7" + bs58 "^4.0.1" + near-hd-key "^1.2.1" + tweetnacl "^1.0.2" + negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -6333,6 +6840,26 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" @@ -6519,9 +7046,9 @@ platform@1.3.6: integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== postcss@^8.4.18: - version "8.4.19" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" - integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -6942,12 +7469,25 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^3.0.2: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -6989,6 +7529,11 @@ rpc-websockets@^7.5.0: bufferutil "^4.0.1" utf-8-validate "^5.0.2" +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -7003,7 +7548,7 @@ rxjs@6, rxjs@^6.6.3, rxjs@^6.6.7: dependencies: tslib "^1.9.0" -rxjs@^7.1.0: +rxjs@^7.5.4, rxjs@^7.5.5: version "7.6.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.6.0.tgz#361da5362b6ddaa691a2de0b4f2d32028f1eb5a2" integrity sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ== @@ -7343,9 +7888,9 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" start-server-and-test@^1.14.0: - version "1.15.1" - resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.15.1.tgz#8e28e48a31884b7c7b19950502e92161eec6293b" - integrity sha512-ixhMbUAmym+7k3kqhjhTt6/0eUwE3dbNZPWgcfEUJ5uStaHbT0m8VB+049V5V9X0ueEyxAkwnkkR2SEhCKst5g== + version "1.15.2" + resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.15.2.tgz#3c4f9b358a0dc5ae03a96dd7d7ae9e25a3b24165" + integrity sha512-t5xJX04Hg7hqxiKHMJBz/n4zIMsE6G7hpAcerFAH+4Vh9le/LeyFcJERJM7WLiPygWF9TOg33oroJF1XOzJtYQ== dependencies: arg "^5.0.2" bluebird "3.7.2" @@ -7354,7 +7899,7 @@ start-server-and-test@^1.14.0: execa "5.1.1" lazy-ass "1.6.0" ps-tree "1.2.0" - wait-on "6.0.0" + wait-on "6.0.1" statuses@2.0.1: version "2.0.1" @@ -7378,6 +7923,11 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" +stream-transform@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-3.2.1.tgz#4c8cbdd3e4fa7254c770ef34a962cec68349fcb0" + integrity sha512-ApK+WTJ5bCOf0A2tlec1qhvr8bGEBM/sgXXB7mysdCYgZJO5DZeaV3h3G+g0HnAQ372P5IhiGqnW29zoLOfTzQ== + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -7406,7 +7956,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trimend@^1.0.5: +string.prototype.trimend@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== @@ -7415,7 +7965,7 @@ string.prototype.trimend@^1.0.5: define-properties "^1.1.4" es-abstract "^1.20.4" -string.prototype.trimstart@^1.0.5: +string.prototype.trimstart@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== @@ -7613,7 +8163,7 @@ thor-devkit@^2.0.4, thor-devkit@^2.0.5: js-sha3 "0.5.7" rlp "^2.0.0" -through@2, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1: +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -7644,6 +8194,27 @@ tinyspy@^1.0.0: resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d" integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -7751,6 +8322,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +treeify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" + integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== + tronstation@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tronstation/-/tronstation-1.0.1.tgz#b33224cdef5f1c7560763b185f132d9ac35ad3f3" @@ -7818,7 +8394,7 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl@1.0.3, tweetnacl@^1.0.1, tweetnacl@^1.0.3: +tweetnacl@1.0.3, tweetnacl@^1.0.1, tweetnacl@^1.0.2, tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== @@ -7845,6 +8421,11 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -7897,9 +8478,9 @@ typescript-compiler@^1.4.1-2: integrity sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg== typescript@^4.9.3: - version "4.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" - integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== + version "4.9.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" + integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== typescript@~4.4.4: version "4.4.4" @@ -7988,7 +8569,7 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.0: +util@^0.12.0, util@^0.12.4: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -8105,16 +8686,23 @@ vscode-textmate@5.2.0: resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== -wait-on@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.0.tgz#7e9bf8e3d7fe2daecbb7a570ac8ca41e9311c7e7" - integrity sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw== +wait-on@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.1.tgz#16bbc4d1e4ebdd41c5b4e63a2e16dbd1f4e5601e" + integrity sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw== dependencies: - axios "^0.21.1" - joi "^17.4.0" + axios "^0.25.0" + joi "^17.6.0" lodash "^4.17.21" minimist "^1.2.5" - rxjs "^7.1.0" + rxjs "^7.5.4" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" web3-bzz@1.8.1: version "1.8.1" @@ -8332,7 +8920,7 @@ web3-shh@1.8.1: web3-core-subscriptions "1.8.1" web3-net "1.8.1" -web3-utils@1.8.1: +web3-utils@1.8.1, web3-utils@^1.3.4: version "1.8.1" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.1.tgz#f2f7ca7eb65e6feb9f3d61056d0de6bbd57125ff" integrity sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ== From 3362e665da884f563c9da00ddf1421bdcf2510c4 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 13 Dec 2022 17:03:24 +0200 Subject: [PATCH 824/956] solana bump metaplex --- package.json | 2 +- src/helpers/solana/index.ts | 6 +++-- yarn.lock | 44 +++++++++++++++---------------------- 3 files changed, 23 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index 524f38be7..b1de038c1 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@ethersproject/providers": "^5.7.0", "@hashgraph/hethers": "1.1.2", "@json-rpc-tools/utils": "^1.7.6", - "@metaplex-foundation/js": "0.17.5", + "@metaplex-foundation/js": "0.17.9", "@project-serum/anchor": "^0.25.0-beta.1", "@randlabs/myalgo-connect": "^1.1.1", "@solana/spl-token": "^0.2.0", diff --git a/src/helpers/solana/index.ts b/src/helpers/solana/index.ts index c94a665a3..e3e114058 100644 --- a/src/helpers/solana/index.ts +++ b/src/helpers/solana/index.ts @@ -22,11 +22,13 @@ import { Transaction, //LAMPORTS_PER_SOL, } from "@solana/web3.js"; + import { Metaplex, bundlrStorage, walletAdapterIdentity, } from "@metaplex-foundation/js"; + import BigNumber from "bignumber.js"; import { Chain } from "../.."; import { EvNotifier } from "../../notifier"; @@ -309,10 +311,10 @@ export async function solanaHelper(args: SolanaParams): Promise { console.log(`Waiting for 5s`); await new Promise((r) => setTimeout(r, 5000));*/ //sender.payer.secretKey. - const metaplex = Metaplex.make(conn) + const _metaplex = Metaplex.make(conn) .use(walletAdapterIdentity(sender)) .use(bundlrStorage()); - const nftc = metaplex.nfts(); + const nftc = _metaplex.nfts(); const _col = await nftc.create( { diff --git a/yarn.lock b/yarn.lock index 7f0ebcaac..2f999bc43 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1272,17 +1272,17 @@ resolved "https://registry.yarnpkg.com/@metaplex-foundation/cusper/-/cusper-0.0.2.tgz#dc2032a452d6c269e25f016aa4dd63600e2af975" integrity sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA== -"@metaplex-foundation/js@0.17.5": - version "0.17.5" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/js/-/js-0.17.5.tgz#2d16a9e25015688d5944b445b548abcd41692519" - integrity sha512-Obb4p/f/BmDG0w0iBULGUJCPXsC9BPcDPvkgP+QlppVtLaQ18p/Y0NOtNcIe8KpPi0BsZ+XxprlRe4adUwzxdg== +"@metaplex-foundation/js@0.17.9": + version "0.17.9" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/js/-/js-0.17.9.tgz#2dfa77bfe23acc118d35ff8678825036391eb7a1" + integrity sha512-msMGWSYetSVWmIXpDKI5Y3WZtTrCjF6QRQ8BpsXKoNs6xAKPvSuT9OGay/mbOs+/pMNHVPt8lFfl281yBN/MxA== dependencies: "@bundlr-network/client" "^0.8.8" "@metaplex-foundation/beet" "0.7.1" - "@metaplex-foundation/mpl-auction-house" "^2.1.1" + "@metaplex-foundation/mpl-auction-house" "^2.3.0" "@metaplex-foundation/mpl-candy-guard" "^0.3.0" - "@metaplex-foundation/mpl-candy-machine" "^4.6.0" - "@metaplex-foundation/mpl-candy-machine-core" "^0.1.0" + "@metaplex-foundation/mpl-candy-machine" "^5.0.0" + "@metaplex-foundation/mpl-candy-machine-core" "^0.1.2" "@metaplex-foundation/mpl-token-metadata" "^2.3.3" "@noble/ed25519" "^1.7.1" "@noble/hashes" "^1.1.3" @@ -1300,7 +1300,7 @@ mime "^3.0.0" node-fetch "^2.6.7" -"@metaplex-foundation/mpl-auction-house@^2.1.1": +"@metaplex-foundation/mpl-auction-house@^2.3.0": version "2.3.1" resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-auction-house/-/mpl-auction-house-2.3.1.tgz#9c3713c6f0812418952db1c0ad12b677aacc6f48" integrity sha512-OqMKwjm0+afXPc4DuONP1YBrmzwjlhhX2qUc09jZm7n/uIb1Eb9XgupCAVK7Kc9WvaneJ3dEZgn9HrcNtUPsMg== @@ -1323,7 +1323,7 @@ "@solana/web3.js" "^1.56.2" bn.js "^5.2.0" -"@metaplex-foundation/mpl-candy-machine-core@^0.1.0": +"@metaplex-foundation/mpl-candy-machine-core@^0.1.2": version "0.1.2" resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-candy-machine-core/-/mpl-candy-machine-core-0.1.2.tgz#07e19558d0ef120fac1d8612ae4de90d52cd4d1f" integrity sha512-jjDkRvMR+iykt7guQ7qVnOHTZedql0lq3xqWDMaenAUCH3Xrf2zKATThhJppIVNX1/YtgBOO3lGqhaFbaI4pCw== @@ -1334,24 +1334,16 @@ "@solana/web3.js" "^1.56.2" bn.js "^5.2.0" -"@metaplex-foundation/mpl-candy-machine@^4.6.0": - version "4.7.1" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-candy-machine/-/mpl-candy-machine-4.7.1.tgz#ecf6ebbe96245084c9a186761ecc51c62ce1206f" - integrity sha512-tBNRAfBE/rYy9pe2aJD4gTFw+pgQ11o3AJjoYGB4+05ow0VjJMSt6kQGzHm2LRPgdLY4diKAq8qHvgsbV5ikNQ== +"@metaplex-foundation/mpl-candy-machine@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-candy-machine/-/mpl-candy-machine-5.0.0.tgz#2eae8f02a1479c62ef9b9b521215988d6fc06818" + integrity sha512-df2OmZ4s8PJXQXtGAyfZIIitwJPKebtj4f8tab/o5VNhYsW5M9YKfMyAEBBNHm1n/xz+C8Lxy05e6qo3nU/30g== dependencies: - "@metaplex-foundation/beet" "^0.4.0" - "@metaplex-foundation/beet-solana" "^0.3.0" + "@metaplex-foundation/beet" "^0.7.1" + "@metaplex-foundation/beet-solana" "^0.4.0" "@metaplex-foundation/cusper" "^0.0.2" - "@metaplex-foundation/mpl-core" "^0.6.1" - "@solana/web3.js" "^1.35.1" - -"@metaplex-foundation/mpl-core@^0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-core/-/mpl-core-0.6.1.tgz#bdc76a8b447a2ef310693973bf430e5ecec6ef0b" - integrity sha512-6R4HkfAqU2EUakNbVLcCmka0YuQTLGTbHJ62ig765+NRWuB2HNGUQ1HfHcRsGnyxhlCvwKK79JE01XUjFE+dzw== - dependencies: - "@solana/web3.js" "^1.35.1" - bs58 "^4.0.1" + "@solana/spl-token" "^0.3.6" + "@solana/web3.js" "^1.66.2" "@metaplex-foundation/mpl-token-metadata@^2.3.3": version "2.5.2" @@ -1736,7 +1728,7 @@ dependencies: eventemitter3 "^4.0.0" -"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.35.1", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2", "@solana/web3.js@^1.56.2", "@solana/web3.js@^1.63.1", "@solana/web3.js@^1.66.2": +"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2", "@solana/web3.js@^1.56.2", "@solana/web3.js@^1.63.1", "@solana/web3.js@^1.66.2": version "1.70.1" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.70.1.tgz#4a2df47cc32a0f67be5161e772b2ceb6512281fa" integrity sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ== From b0a3b24190c78ee624ad761cf7b65e045337b21e Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 13 Dec 2022 23:36:34 +0530 Subject: [PATCH 825/956] factory: transfer sft: if amt is 1, then transfer nft else transfer batch --- src/factory/index.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index d972e37ec..83344d051 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -706,6 +706,30 @@ export function ChainFactory( console.log(x.toNumber()); + if (amt === BigInt(1)) { + const response = this.transferNft( + from, + to, + nft, + sender, + receiver, + new BigNumber(x!).integerValue(), + mintWith + ); + return response as any; + } else { + const response = this.transferBatchNft( + from, + to, + transfers, + sender, + receiver, + new BigNumber(x!).integerValue(), + mintWith + ); + return response as any; + } + const response = this.transferBatchNft( from, to, From 9ee1c52f45cb98df02a48a6f37f68ddbaded3327 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 15 Dec 2022 16:03:45 +0200 Subject: [PATCH 826/956] nearWallet fox bigNumer toString conversion --- package.json | 2 +- src/consts.ts | 4 +-- src/helpers/near.ts | 6 ++-- src/helpers/solana/index.ts | 18 ++++++------ tsconfig.json | 4 +-- yarn.lock | 58 +++++++++++++++++++++---------------- 6 files changed, 50 insertions(+), 42 deletions(-) diff --git a/package.json b/package.json index b1de038c1..0bbb63a61 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@ethersproject/providers": "^5.7.0", "@hashgraph/hethers": "1.1.2", "@json-rpc-tools/utils": "^1.7.6", - "@metaplex-foundation/js": "0.17.9", + "@metaplex-foundation/js": "0.17.6", "@project-serum/anchor": "^0.25.0-beta.1", "@randlabs/myalgo-connect": "^1.1.1", "@solana/spl-token": "^0.2.0", diff --git a/src/consts.ts b/src/consts.ts index 4c9979acd..037f9bd23 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -435,9 +435,9 @@ CHAIN_INFO.set(Chain.VELAS, { CHAIN_INFO.set(Chain.AURORA, { name: "Aurora", blockExplorerUrl: "https://aurorascan.dev/tx/", - tnBlockExplorerUrl: "https://explore-testnet.vechain.org/tx/", + tnBlockExplorerUrl: "hhttps://testnet.aurorascan.dev/tx/", blockExplorerUrlAddr: "https://aurorascan.dev/address/", - tnBlockExplorerUrlAddr: "https://explore-testnet.vechain.org/address/", + tnBlockExplorerUrlAddr: "https://testnet.aurorascan.dev/address", nonce: Chain.AURORA, decimals: 1e18, constructor: web3HelperFactory, diff --git a/src/helpers/near.ts b/src/helpers/near.ts index bc29e7011..2dfe97d7b 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -1,5 +1,5 @@ import BigNumber from "bignumber.js"; -import BN from "bn.js"; +import { BN } from "bn.js"; import { Account, @@ -240,7 +240,7 @@ export async function nearHelperFactory({ token_contract: id.native.contract, }, methodName: "freeze_nft", - attachedDeposit: new BN(txFees.toString()), + attachedDeposit: new BN(txFees.toString(10)), gas: new BN("30000000000000"), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); @@ -272,7 +272,7 @@ export async function nearHelperFactory({ token_contract: id.native.contract, }, methodName: "withdraw_nft", - attachedDeposit: new BN(txFees.toString()), + attachedDeposit: new BN(txFees.toString(10)), gas: new BN("30000000000000"), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); diff --git a/src/helpers/solana/index.ts b/src/helpers/solana/index.ts index e3e114058..e7723945b 100644 --- a/src/helpers/solana/index.ts +++ b/src/helpers/solana/index.ts @@ -1,3 +1,8 @@ +/*import { + Metaplex, + bundlrStorage, + walletAdapterIdentity, +} from "@metaplex-foundation/js";*/ import { Wallet, BN, @@ -23,12 +28,6 @@ import { //LAMPORTS_PER_SOL, } from "@solana/web3.js"; -import { - Metaplex, - bundlrStorage, - walletAdapterIdentity, -} from "@metaplex-foundation/js"; - import BigNumber from "bignumber.js"; import { Chain } from "../.."; import { EvNotifier } from "../../notifier"; @@ -287,7 +286,8 @@ export async function solanaHelper(args: SolanaParams): Promise { getProvider() { return conn; }, - async mintNft(sender, args) { + async mintNft() { + /*console.log(Metaplex, walletAdapterIdentity, bundlrStorage); console.log(args, "args"); console.log(sender, "sender"); const provider = new AnchorProvider(conn, sender, {}); @@ -309,7 +309,7 @@ export async function solanaHelper(args: SolanaParams): Promise { console.log(`Airdrop: ${txn}`); console.log(`sig ${sig}`); console.log(`Waiting for 5s`); - await new Promise((r) => setTimeout(r, 5000));*/ + await new Promise((r) => setTimeout(r, 5000)); //sender.payer.secretKey. const _metaplex = Metaplex.make(conn) .use(walletAdapterIdentity(sender)) @@ -329,7 +329,7 @@ export async function solanaHelper(args: SolanaParams): Promise { } ); - console.log(_col); + console.log(_col);*/ return ""; }, async estimateValidateTransferNft() { diff --git a/tsconfig.json b/tsconfig.json index 98bd52d7f..e40fc5c03 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "incremental": false, - "target": "es2021", + "target": "ES2021", "outDir": "./dist", //"outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", @@ -40,7 +40,7 @@ // "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */, // "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */, - "lib": ["es2021", "dom"], // elrdjs depends on dom? + "lib": ["ES2021", "dom"], // elrdjs depends on dom? "types": ["node"], "typeRoots": ["node_modules/@types", "src/types"] }, diff --git a/yarn.lock b/yarn.lock index 2f999bc43..119716ff7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1272,16 +1272,16 @@ resolved "https://registry.yarnpkg.com/@metaplex-foundation/cusper/-/cusper-0.0.2.tgz#dc2032a452d6c269e25f016aa4dd63600e2af975" integrity sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA== -"@metaplex-foundation/js@0.17.9": - version "0.17.9" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/js/-/js-0.17.9.tgz#2dfa77bfe23acc118d35ff8678825036391eb7a1" - integrity sha512-msMGWSYetSVWmIXpDKI5Y3WZtTrCjF6QRQ8BpsXKoNs6xAKPvSuT9OGay/mbOs+/pMNHVPt8lFfl281yBN/MxA== +"@metaplex-foundation/js@0.17.6": + version "0.17.6" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/js/-/js-0.17.6.tgz#8120b0734e7570a3a129035b5c1464b6fee1f589" + integrity sha512-GYoW4xoO6OGPwbCXclxjUsgyHwj1L7uyUAXN3rH/nzJG5j+9RSry//6D9RFHsg1WRzyVP1NwXBJFJJ5yvDQRAQ== dependencies: "@bundlr-network/client" "^0.8.8" "@metaplex-foundation/beet" "0.7.1" "@metaplex-foundation/mpl-auction-house" "^2.3.0" "@metaplex-foundation/mpl-candy-guard" "^0.3.0" - "@metaplex-foundation/mpl-candy-machine" "^5.0.0" + "@metaplex-foundation/mpl-candy-machine" "^4.6.0" "@metaplex-foundation/mpl-candy-machine-core" "^0.1.2" "@metaplex-foundation/mpl-token-metadata" "^2.3.3" "@noble/ed25519" "^1.7.1" @@ -1334,16 +1334,24 @@ "@solana/web3.js" "^1.56.2" bn.js "^5.2.0" -"@metaplex-foundation/mpl-candy-machine@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-candy-machine/-/mpl-candy-machine-5.0.0.tgz#2eae8f02a1479c62ef9b9b521215988d6fc06818" - integrity sha512-df2OmZ4s8PJXQXtGAyfZIIitwJPKebtj4f8tab/o5VNhYsW5M9YKfMyAEBBNHm1n/xz+C8Lxy05e6qo3nU/30g== +"@metaplex-foundation/mpl-candy-machine@^4.6.0": + version "4.7.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-candy-machine/-/mpl-candy-machine-4.7.1.tgz#ecf6ebbe96245084c9a186761ecc51c62ce1206f" + integrity sha512-tBNRAfBE/rYy9pe2aJD4gTFw+pgQ11o3AJjoYGB4+05ow0VjJMSt6kQGzHm2LRPgdLY4diKAq8qHvgsbV5ikNQ== dependencies: - "@metaplex-foundation/beet" "^0.7.1" - "@metaplex-foundation/beet-solana" "^0.4.0" + "@metaplex-foundation/beet" "^0.4.0" + "@metaplex-foundation/beet-solana" "^0.3.0" "@metaplex-foundation/cusper" "^0.0.2" - "@solana/spl-token" "^0.3.6" - "@solana/web3.js" "^1.66.2" + "@metaplex-foundation/mpl-core" "^0.6.1" + "@solana/web3.js" "^1.35.1" + +"@metaplex-foundation/mpl-core@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-core/-/mpl-core-0.6.1.tgz#bdc76a8b447a2ef310693973bf430e5ecec6ef0b" + integrity sha512-6R4HkfAqU2EUakNbVLcCmka0YuQTLGTbHJ62ig765+NRWuB2HNGUQ1HfHcRsGnyxhlCvwKK79JE01XUjFE+dzw== + dependencies: + "@solana/web3.js" "^1.35.1" + bs58 "^4.0.1" "@metaplex-foundation/mpl-token-metadata@^2.3.3": version "2.5.2" @@ -1722,13 +1730,13 @@ buffer "^6.0.3" "@solana/wallet-adapter-base@^0.9.2": - version "0.9.19" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.19.tgz#8b493705cabdc641824853405f79781f9ddc1bd5" - integrity sha512-c/F3xyuSNDUjbYM6E4be5bMx9YmNqE6XIpLcM9U3ohviwDF8hO+v5N8KSvnMaztL4Lr6+TEtCLi3Q5AT0r06JA== + version "0.9.20" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.20.tgz#42a3a2f42db9f6a41e36a132ee5a06a0bd3784f0" + integrity sha512-ZvnhJ4EJk61oyuBH/a9tMpUfeWQ3g3Cc0Nzl1NzE4SdqEhiNoEW8HXDig9HMemZ9bIEUxIpPWxp+SwjVl0u+rg== dependencies: eventemitter3 "^4.0.0" -"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2", "@solana/web3.js@^1.56.2", "@solana/web3.js@^1.63.1", "@solana/web3.js@^1.66.2": +"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.35.1", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2", "@solana/web3.js@^1.56.2", "@solana/web3.js@^1.63.1", "@solana/web3.js@^1.66.2": version "1.70.1" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.70.1.tgz#4a2df47cc32a0f67be5161e772b2ceb6512281fa" integrity sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ== @@ -2113,9 +2121,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^18.7.13": - version "18.11.14" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.14.tgz#a8571b25f3a31e9ded14e3ab9488509adef831d8" - integrity sha512-0KXV57tENYmmJMl+FekeW9V3O/rlcqGQQJ/hNh9r8pKIj304pskWuEd8fCyNT86g/TpO0gcOTiLzsHLEURFMIQ== + version "18.11.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.15.tgz#de0e1fbd2b22b962d45971431e2ae696643d3f5d" + integrity sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw== "@types/node@10.12.18": version "10.12.18" @@ -5182,7 +5190,7 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== @@ -5601,11 +5609,11 @@ inquirer@^8.2.0: wrap-ansi "^7.0.0" internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== dependencies: - get-intrinsic "^1.1.0" + get-intrinsic "^1.1.3" has "^1.0.3" side-channel "^1.0.4" From 96808f33dc3f7b67e5422cda14651392e6c46904 Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 12:24:23 +0500 Subject: [PATCH 827/956] feat: :construction: add rough implementation for whitelist --- src/factory/index.ts | 22 ++++++++++++++++++++++ src/notifier/index.ts | 3 +++ 2 files changed, 25 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 83344d051..ecc82ba0f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -272,6 +272,12 @@ export type ChainFactory = { isWrappedNft(nft: NftInfo, fromChain: number): Promise; setProvider(fromChain: number, provider: any): Promise; + + whitelistEVM( + chain: T, + address: string, + nonce: number + ): Promise<{ success: true }>; }; /** @@ -694,6 +700,22 @@ export function ChainFactory( return await Promise.all(result); }, estimateBatchFees, + async whitelistEVM(chain: T, address: string) { + const chainLocal = cToP.get(chain); + + if (!chainLocal) throw new Error("Chain not found"); + const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); + if (!params) throw new Error("An error occured"); + const isAddressValid = await params.validateAddress(address); + if (!isAddressValid) throw new Error("Address is not valid"); + + try { + await chainLocal.notifier.notifyEVM(chain, address); + return { success: true }; + } catch (error) { + throw new Error("An error occured"); + } + }, async transferSft(from, to, nft, sender, receiver, amt, fee?, mintWith?) { if (Number(amt) > 50) throw new Error("Currenly more that 50 SFTs is not supported"); diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 466117223..2d15f528b 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -81,5 +81,8 @@ export function evNotifier(url: string) { async notifyAptos(txHash: string) { await api.post("/tx/aptos", { tx_hash: txHash }); }, + async notifyEVM(nonce: number, address: string) { + await api.post("/whitelist", { contract: address, chain_nonce: nonce }); + }, }; } From 9b83cff8f4b14d5a6a97ebb7f0023a26d0b46651 Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 13:31:41 +0500 Subject: [PATCH 828/956] build: remove dist folder from .gitignore --- .gitignore | 1 - dist/config.d.ts | 12 + dist/config.d.ts.map | 1 + dist/config.js | 71 + dist/config.ts | 69 + dist/consts.d.ts | 195 + dist/consts.d.ts.map | 1 + dist/consts.js | 577 +++ dist/consts.ts | 665 +++ dist/emitter.d.ts | 2 + dist/emitter.d.ts.map | 1 + dist/emitter.js | 5 + dist/emitter.ts | 2 + dist/factory/cons.d.ts | 20 + dist/factory/cons.d.ts.map | 1 + dist/factory/cons.js | 103 + dist/factory/cons.ts | 118 + dist/factory/factories.d.ts | 7 + dist/factory/factories.d.ts.map | 1 + dist/factory/factories.js | 1052 +++++ dist/factory/factories.ts | 901 +++++ dist/factory/index.d.ts | 312 ++ dist/factory/index.d.ts.map | 1 + dist/factory/index.js | 613 +++ dist/factory/index.ts | 987 +++++ dist/heartbeat/index.d.ts | 6 + dist/heartbeat/index.d.ts.map | 1 + dist/heartbeat/index.js | 22 + dist/heartbeat/index.ts | 19 + dist/heartbeat/resp.d.ts | 17 + dist/heartbeat/resp.d.ts.map | 1 + dist/heartbeat/resp.js | 3 + dist/heartbeat/resp.ts | 18 + dist/helpers/algorand.d.ts | 108 + dist/helpers/algorand.d.ts.map | 1 + dist/helpers/algorand.js | 452 +++ dist/helpers/algorand.ts | 565 +++ dist/helpers/aptos/bridge_client.d.ts | 130 + dist/helpers/aptos/bridge_client.d.ts.map | 1 + dist/helpers/aptos/bridge_client.js | 265 ++ dist/helpers/aptos/bridge_client.ts | 345 ++ dist/helpers/aptos/bridge_client_abis.d.ts | 4 + .../helpers/aptos/bridge_client_abis.d.ts.map | 1 + dist/helpers/aptos/bridge_client_abis.js | 57 + dist/helpers/aptos/bridge_client_abis.ts | 52 + dist/helpers/aptos/index.d.ts | 68 + dist/helpers/aptos/index.d.ts.map | 1 + dist/helpers/aptos/index.js | 153 + dist/helpers/aptos/index.ts | 207 + dist/helpers/bridge_pool.teal.d.ts | 3 + dist/helpers/bridge_pool.teal.d.ts.map | 1 + dist/helpers/bridge_pool.teal.js | 69 + dist/helpers/bridge_pool.teal.ts | 65 + dist/helpers/chain.d.ts | 175 + dist/helpers/chain.d.ts.map | 1 + dist/helpers/chain.js | 34 + dist/helpers/chain.ts | 206 + dist/helpers/dfinity/dfinity.d.ts | 64 + dist/helpers/dfinity/dfinity.d.ts.map | 1 + dist/helpers/dfinity/dfinity.js | 256 ++ dist/helpers/dfinity/dfinity.ts | 344 ++ dist/helpers/dfinity/idl.d.ts | 2 + dist/helpers/dfinity/idl.d.ts.map | 1 + dist/helpers/dfinity/idl.js | 174 + dist/helpers/dfinity/idl.ts | 169 + dist/helpers/dfinity/minter.did.d.ts | 172 + dist/helpers/elrond.d.ts | 190 + dist/helpers/elrond.d.ts.map | 1 + dist/helpers/elrond.js | 647 +++ dist/helpers/elrond.ts | 895 +++++ dist/helpers/hedera/hts_abi.d.ts | 238 ++ dist/helpers/hedera/hts_abi.d.ts.map | 1 + dist/helpers/hedera/hts_abi.js | 3571 +++++++++++++++++ dist/helpers/hedera/hts_abi.ts | 3565 ++++++++++++++++ dist/helpers/near.d.ts | 89 + dist/helpers/near.d.ts.map | 1 + dist/helpers/near.js | 233 ++ dist/helpers/near.ts | 331 ++ dist/helpers/secret.d.ts | 79 + dist/helpers/secret.d.ts.map | 1 + dist/helpers/secret.js | 255 ++ dist/helpers/secret.ts | 356 ++ dist/helpers/solana/idl.d.ts | 898 +++++ dist/helpers/solana/idl.d.ts.map | 1 + dist/helpers/solana/idl.js | 900 +++++ dist/helpers/solana/idl.ts | 1793 +++++++++ dist/helpers/solana/index.d.ts | 44 + dist/helpers/solana/index.d.ts.map | 1 + dist/helpers/solana/index.js | 273 ++ dist/helpers/solana/index.ts | 350 ++ dist/helpers/tezos.d.ts | 74 + dist/helpers/tezos.d.ts.map | 1 + dist/helpers/tezos.js | 230 ++ dist/helpers/tezos.ts | 297 ++ dist/helpers/ton-bridge.d.ts | 48 + dist/helpers/ton-bridge.d.ts.map | 1 + dist/helpers/ton-bridge.js | 92 + dist/helpers/ton-bridge.ts | 126 + dist/helpers/ton.d.ts | 111 + dist/helpers/ton.d.ts.map | 1 + dist/helpers/ton.js | 327 ++ dist/helpers/ton.ts | 446 ++ dist/helpers/tron.d.ts | 115 + dist/helpers/tron.d.ts.map | 1 + dist/helpers/tron.js | 300 ++ dist/helpers/tron.ts | 483 +++ dist/helpers/web3.d.ts | 190 + dist/helpers/web3.d.ts.map | 1 + dist/helpers/web3.js | 496 +++ dist/helpers/web3.ts | 729 ++++ dist/helpers/web3_erc20.d.ts | 17 + dist/helpers/web3_erc20.d.ts.map | 1 + dist/helpers/web3_erc20.js | 396 ++ dist/helpers/web3_erc20.ts | 466 +++ dist/index.d.ts | 11 + dist/index.d.ts.map | 1 + dist/index.js | 42 + dist/index.ts | 10 + dist/notifier/index.d.ts | 33 + dist/notifier/index.d.ts.map | 1 + dist/notifier/index.js | 89 + dist/notifier/index.ts | 88 + dist/scripts/deploy_tron.d.ts | 2 + dist/scripts/deploy_tron.d.ts.map | 1 + dist/scripts/deploy_tron.js | 36 + dist/scripts/deploy_tron.ts | 33 + dist/socket.d.ts | 42 + dist/socket.d.ts.map | 1 + dist/socket.js | 115 + dist/socket.ts | 215 + dist/type-utils.d.ts | 36 + dist/type-utils.d.ts.map | 1 + dist/type-utils.js | 3 + dist/type-utils.ts | 41 + 134 files changed, 30414 insertions(+), 1 deletion(-) create mode 100644 dist/config.d.ts create mode 100644 dist/config.d.ts.map create mode 100644 dist/config.js create mode 100644 dist/config.ts create mode 100644 dist/consts.d.ts create mode 100644 dist/consts.d.ts.map create mode 100644 dist/consts.js create mode 100644 dist/consts.ts create mode 100644 dist/emitter.d.ts create mode 100644 dist/emitter.d.ts.map create mode 100644 dist/emitter.js create mode 100644 dist/emitter.ts create mode 100644 dist/factory/cons.d.ts create mode 100644 dist/factory/cons.d.ts.map create mode 100644 dist/factory/cons.js create mode 100644 dist/factory/cons.ts create mode 100644 dist/factory/factories.d.ts create mode 100644 dist/factory/factories.d.ts.map create mode 100644 dist/factory/factories.js create mode 100644 dist/factory/factories.ts create mode 100644 dist/factory/index.d.ts create mode 100644 dist/factory/index.d.ts.map create mode 100644 dist/factory/index.js create mode 100644 dist/factory/index.ts create mode 100644 dist/heartbeat/index.d.ts create mode 100644 dist/heartbeat/index.d.ts.map create mode 100644 dist/heartbeat/index.js create mode 100644 dist/heartbeat/index.ts create mode 100644 dist/heartbeat/resp.d.ts create mode 100644 dist/heartbeat/resp.d.ts.map create mode 100644 dist/heartbeat/resp.js create mode 100644 dist/heartbeat/resp.ts create mode 100644 dist/helpers/algorand.d.ts create mode 100644 dist/helpers/algorand.d.ts.map create mode 100644 dist/helpers/algorand.js create mode 100644 dist/helpers/algorand.ts create mode 100644 dist/helpers/aptos/bridge_client.d.ts create mode 100644 dist/helpers/aptos/bridge_client.d.ts.map create mode 100644 dist/helpers/aptos/bridge_client.js create mode 100644 dist/helpers/aptos/bridge_client.ts create mode 100644 dist/helpers/aptos/bridge_client_abis.d.ts create mode 100644 dist/helpers/aptos/bridge_client_abis.d.ts.map create mode 100644 dist/helpers/aptos/bridge_client_abis.js create mode 100644 dist/helpers/aptos/bridge_client_abis.ts create mode 100644 dist/helpers/aptos/index.d.ts create mode 100644 dist/helpers/aptos/index.d.ts.map create mode 100644 dist/helpers/aptos/index.js create mode 100644 dist/helpers/aptos/index.ts create mode 100644 dist/helpers/bridge_pool.teal.d.ts create mode 100644 dist/helpers/bridge_pool.teal.d.ts.map create mode 100644 dist/helpers/bridge_pool.teal.js create mode 100644 dist/helpers/bridge_pool.teal.ts create mode 100644 dist/helpers/chain.d.ts create mode 100644 dist/helpers/chain.d.ts.map create mode 100644 dist/helpers/chain.js create mode 100644 dist/helpers/chain.ts create mode 100644 dist/helpers/dfinity/dfinity.d.ts create mode 100644 dist/helpers/dfinity/dfinity.d.ts.map create mode 100644 dist/helpers/dfinity/dfinity.js create mode 100644 dist/helpers/dfinity/dfinity.ts create mode 100644 dist/helpers/dfinity/idl.d.ts create mode 100644 dist/helpers/dfinity/idl.d.ts.map create mode 100644 dist/helpers/dfinity/idl.js create mode 100644 dist/helpers/dfinity/idl.ts create mode 100644 dist/helpers/dfinity/minter.did.d.ts create mode 100644 dist/helpers/elrond.d.ts create mode 100644 dist/helpers/elrond.d.ts.map create mode 100644 dist/helpers/elrond.js create mode 100644 dist/helpers/elrond.ts create mode 100644 dist/helpers/hedera/hts_abi.d.ts create mode 100644 dist/helpers/hedera/hts_abi.d.ts.map create mode 100644 dist/helpers/hedera/hts_abi.js create mode 100644 dist/helpers/hedera/hts_abi.ts create mode 100644 dist/helpers/near.d.ts create mode 100644 dist/helpers/near.d.ts.map create mode 100644 dist/helpers/near.js create mode 100644 dist/helpers/near.ts create mode 100644 dist/helpers/secret.d.ts create mode 100644 dist/helpers/secret.d.ts.map create mode 100644 dist/helpers/secret.js create mode 100644 dist/helpers/secret.ts create mode 100644 dist/helpers/solana/idl.d.ts create mode 100644 dist/helpers/solana/idl.d.ts.map create mode 100644 dist/helpers/solana/idl.js create mode 100644 dist/helpers/solana/idl.ts create mode 100644 dist/helpers/solana/index.d.ts create mode 100644 dist/helpers/solana/index.d.ts.map create mode 100644 dist/helpers/solana/index.js create mode 100644 dist/helpers/solana/index.ts create mode 100644 dist/helpers/tezos.d.ts create mode 100644 dist/helpers/tezos.d.ts.map create mode 100644 dist/helpers/tezos.js create mode 100644 dist/helpers/tezos.ts create mode 100644 dist/helpers/ton-bridge.d.ts create mode 100644 dist/helpers/ton-bridge.d.ts.map create mode 100644 dist/helpers/ton-bridge.js create mode 100644 dist/helpers/ton-bridge.ts create mode 100644 dist/helpers/ton.d.ts create mode 100644 dist/helpers/ton.d.ts.map create mode 100644 dist/helpers/ton.js create mode 100644 dist/helpers/ton.ts create mode 100644 dist/helpers/tron.d.ts create mode 100644 dist/helpers/tron.d.ts.map create mode 100644 dist/helpers/tron.js create mode 100644 dist/helpers/tron.ts create mode 100644 dist/helpers/web3.d.ts create mode 100644 dist/helpers/web3.d.ts.map create mode 100644 dist/helpers/web3.js create mode 100644 dist/helpers/web3.ts create mode 100644 dist/helpers/web3_erc20.d.ts create mode 100644 dist/helpers/web3_erc20.d.ts.map create mode 100644 dist/helpers/web3_erc20.js create mode 100644 dist/helpers/web3_erc20.ts create mode 100644 dist/index.d.ts create mode 100644 dist/index.d.ts.map create mode 100644 dist/index.js create mode 100644 dist/index.ts create mode 100644 dist/notifier/index.d.ts create mode 100644 dist/notifier/index.d.ts.map create mode 100644 dist/notifier/index.js create mode 100644 dist/notifier/index.ts create mode 100644 dist/scripts/deploy_tron.d.ts create mode 100644 dist/scripts/deploy_tron.d.ts.map create mode 100644 dist/scripts/deploy_tron.js create mode 100644 dist/scripts/deploy_tron.ts create mode 100644 dist/socket.d.ts create mode 100644 dist/socket.d.ts.map create mode 100644 dist/socket.js create mode 100644 dist/socket.ts create mode 100644 dist/type-utils.d.ts create mode 100644 dist/type-utils.d.ts.map create mode 100644 dist/type-utils.js create mode 100644 dist/type-utils.ts diff --git a/.gitignore b/.gitignore index d10447d30..6776e65ec 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ src/**.js coverage *.log tsconfig.tsbuildinfo -dist src/test.ts .env* test* diff --git a/dist/config.d.ts b/dist/config.d.ts new file mode 100644 index 000000000..e9d1ceede --- /dev/null +++ b/dist/config.d.ts @@ -0,0 +1,12 @@ +import { AppConfig, ChainFactory } from "."; +export declare namespace AppConfigs { + const MainNet: () => AppConfig; + const TestNet: () => AppConfig; + const Staging: () => AppConfig; +} +export declare namespace ChainFactories { + const MainNet: () => Promise; + const TestNet: () => Promise; + const Staging: () => Promise; +} +//# sourceMappingURL=config.d.ts.map diff --git a/dist/config.d.ts.map b/dist/config.d.ts.map new file mode 100644 index 000000000..8af4855d1 --- /dev/null +++ b/dist/config.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAuB,MAAM,GAAG,CAAC;AAEjE,yBAAiB,UAAU,CAAC;IACnB,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;IACK,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;CACH;AAED,yBAAiB,cAAc,CAAC;IACvB,MAAM,OAAO,6BAKnB,CAAC;IAEK,MAAM,OAAO,6BAKnB,CAAC;IACK,MAAM,OAAO,6BAKnB,CAAC;CACH"} \ No newline at end of file diff --git a/dist/config.js b/dist/config.js new file mode 100644 index 000000000..77ef07484 --- /dev/null +++ b/dist/config.js @@ -0,0 +1,71 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ChainFactories = exports.AppConfigs = void 0; +const _1 = require("."); +var AppConfigs; +(function (AppConfigs) { + AppConfigs.MainNet = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://nft-index.xp.network/index/", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", + txSocketUri: "https://transaction-socket.xp.network", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com", + wrappedNftPrefix: "https://nft.xp.network/w/", + scVerifyUri: "https://sc-verify.xp.network", + network: "mainnet", + }; + }; + AppConfigs.TestNet = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://testnet-notifier.xp.network/testnet-indexer/", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1MjA4NzAwNiwiZXhwIjoxNjU5ODYzMDA2fQ.ERjXpljkyuklPTJCSXQXZ-Wh09oxQwA4u8HKIbIwO1TSajvLIlNgxseqBVEd5D4lkqXYGwcezkuezuRc3kKkKg", + txSocketUri: "https://testnet-tx-socket.herokuapp.com", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", + wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", + scVerifyUri: "https://testnet-sc-verify.herokuapp.com", + network: "testnet", + }; + }; + AppConfigs.Staging = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://tools.xp.network/index", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", + txSocketUri: "https://bridge1.xp.network/tx-socket", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com", + wrappedNftPrefix: "https://staging-nft.xp.network/w/", + scVerifyUri: "https://bridge1.xp.network/sc-verify", + network: "staging", + }; + }; +})((AppConfigs = exports.AppConfigs || (exports.AppConfigs = {}))); +var ChainFactories; +(function (ChainFactories) { + ChainFactories.MainNet = async () => { + return (0, _1.ChainFactory)( + AppConfigs.MainNet(), + await _1.ChainFactoryConfigs.MainNet() + ); + }; + ChainFactories.TestNet = async () => { + return (0, _1.ChainFactory)( + AppConfigs.TestNet(), + await _1.ChainFactoryConfigs.TestNet() + ); + }; + ChainFactories.Staging = async () => { + return (0, _1.ChainFactory)( + AppConfigs.Staging(), + await _1.ChainFactoryConfigs.Staging() + ); + }; +})((ChainFactories = exports.ChainFactories || (exports.ChainFactories = {}))); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3QkFBaUU7QUFFakUsSUFBaUIsVUFBVSxDQTRDMUI7QUE1Q0QsV0FBaUIsVUFBVTtJQUNaLGtCQUFPLEdBQW9CLEdBQUcsRUFBRTtRQUMzQyxPQUFPO1lBQ0wsZUFBZSxFQUFFLDZDQUE2QztZQUM5RCxVQUFVLEVBQUUscUNBQXFDO1lBQ2pELGdCQUFnQixFQUNkLGdMQUFnTDtZQUNsTCxXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELFdBQVcsRUFBRSxtQ0FBbUM7WUFDaEQsWUFBWSxFQUFFLG1DQUFtQztZQUNqRCxnQkFBZ0IsRUFBRSwyQkFBMkI7WUFDN0MsV0FBVyxFQUFFLDhCQUE4QjtZQUMzQyxPQUFPLEVBQUUsU0FBUztTQUNuQixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBQ1csa0JBQU8sR0FBb0IsR0FBRyxFQUFFO1FBQzNDLE9BQU87WUFDTCxlQUFlLEVBQUUsNkNBQTZDO1lBQzlELFVBQVUsRUFBRSxzREFBc0Q7WUFDbEUsZ0JBQWdCLEVBQ2QsZ0xBQWdMO1lBQ2xMLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsV0FBVyxFQUFFLG1DQUFtQztZQUNoRCxZQUFZLEVBQUUsaURBQWlEO1lBQy9ELGdCQUFnQixFQUFFLDBDQUEwQztZQUM1RCxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUM7SUFDSixDQUFDLENBQUM7SUFFVyxrQkFBTyxHQUFvQixHQUFHLEVBQUU7UUFDM0MsT0FBTztZQUNMLGVBQWUsRUFBRSw2Q0FBNkM7WUFDOUQsVUFBVSxFQUFFLGdDQUFnQztZQUM1QyxnQkFBZ0IsRUFDZCxnTEFBZ0w7WUFDbEwsV0FBVyxFQUFFLHNDQUFzQztZQUNuRCxXQUFXLEVBQUUsbUNBQW1DO1lBQ2hELFlBQVksRUFBRSxtQ0FBbUM7WUFDakQsZ0JBQWdCLEVBQUUsbUNBQW1DO1lBQ3JELFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsRUE1Q2dCLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBNEMxQjtBQUVELElBQWlCLGNBQWMsQ0FvQjlCO0FBcEJELFdBQWlCLGNBQWM7SUFDaEIsc0JBQU8sR0FBRyxLQUFLLElBQUksRUFBRTtRQUNoQyxPQUFPLElBQUEsZUFBWSxFQUNqQixVQUFVLENBQUMsT0FBTyxFQUFFLEVBQ3BCLE1BQU0sc0JBQW1CLENBQUMsT0FBTyxFQUFFLENBQ3BDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFVyxzQkFBTyxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ2hDLE9BQU8sSUFBQSxlQUFZLEVBQ2pCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFDcEIsTUFBTSxzQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FDcEMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUNXLHNCQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDaEMsT0FBTyxJQUFBLGVBQVksRUFDakIsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUNwQixNQUFNLHNCQUFtQixDQUFDLE9BQU8sRUFBRSxDQUNwQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxFQXBCZ0IsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFvQjlCIn0= diff --git a/dist/config.ts b/dist/config.ts new file mode 100644 index 000000000..c0cffcc0a --- /dev/null +++ b/dist/config.ts @@ -0,0 +1,69 @@ +import { AppConfig, ChainFactory, ChainFactoryConfigs } from "."; + +export namespace AppConfigs { + export const MainNet: () => AppConfig = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://nft-index.xp.network/index/", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", + txSocketUri: "https://transaction-socket.xp.network", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com", + wrappedNftPrefix: "https://nft.xp.network/w/", + scVerifyUri: "https://sc-verify.xp.network", + network: "mainnet", + }; + }; + export const TestNet: () => AppConfig = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://testnet-notifier.xp.network/testnet-indexer/", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1MjA4NzAwNiwiZXhwIjoxNjU5ODYzMDA2fQ.ERjXpljkyuklPTJCSXQXZ-Wh09oxQwA4u8HKIbIwO1TSajvLIlNgxseqBVEd5D4lkqXYGwcezkuezuRc3kKkKg", + txSocketUri: "https://testnet-tx-socket.herokuapp.com", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", + wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", + scVerifyUri: "https://testnet-sc-verify.herokuapp.com", + network: "testnet", + }; + }; + + export const Staging: () => AppConfig = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://tools.xp.network/index", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", + txSocketUri: "https://bridge1.xp.network/tx-socket", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com", + wrappedNftPrefix: "https://staging-nft.xp.network/w/", + scVerifyUri: "https://bridge1.xp.network/sc-verify", + network: "staging", + }; + }; +} + +export namespace ChainFactories { + export const MainNet = async () => { + return ChainFactory( + AppConfigs.MainNet(), + await ChainFactoryConfigs.MainNet() + ); + }; + + export const TestNet = async () => { + return ChainFactory( + AppConfigs.TestNet(), + await ChainFactoryConfigs.TestNet() + ); + }; + export const Staging = async () => { + return ChainFactory( + AppConfigs.Staging(), + await ChainFactoryConfigs.Staging() + ); + }; +} diff --git a/dist/consts.d.ts b/dist/consts.d.ts new file mode 100644 index 000000000..1ae0e273a --- /dev/null +++ b/dist/consts.d.ts @@ -0,0 +1,195 @@ +import { ElrondParams, ElrondHelper } from "./helpers/elrond"; +import { TronParams, TronHelper } from "./helpers/tron"; +import { Web3Params, Web3Helper } from "./helpers/web3"; +import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; +import { AlgorandParams, AlgorandHelper } from "./helpers/algorand"; +import { TezosHelper, TezosParams } from "./helpers/tezos"; +import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; +import { SecretHelper, SecretParams } from "./helpers/secret"; +import { SolanaHelper, SolanaParams } from "./helpers/solana"; +import { TonHelper, TonParams } from "./helpers/ton"; +import { DfinityHelper, DfinityParams } from "./helpers/dfinity/dfinity"; +import { NearHelper, NearParams } from "./helpers/near"; +import { AptosHelper, AptosParams } from "./helpers/aptos"; +import { Web3ERC20Params } from "./helpers/web3_erc20"; +export declare enum TestNetRpcUri { + ELROND = "https://devnet-gateway.elrond.com", + HECO = "https://http-testnet.hecochain.com", + BSC = "https://data-seed-prebsc-2-s2.binance.org:8545/", + ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", + AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", + POLYGON = "https://matic-mumbai.chainstacklabs.com", + FANTOM = "https://rpc.testnet.fantom.network/", + TRON = "https://api.shasta.trongrid.io/", + CELO = "https://alfajores-forno.celo-testnet.org", + HARMONY = "https://api.s0.b.hmny.io", + XDAI = "https://sokol.poa.network", + UNIQUE = "https://rpc-opal.unique.network/", + TEZOS = "https://ghostnet.smartpy.io", + VELAS = "https://explorer.testnet.velas.com/rpc", + IOTEX = "https://babel-api.testnet.iotex.io", + AURORA = "https://testnet.aurora.dev/", + GODWOKEN = "https://godwoken-testnet-v1.ckbapp.dev", + GATECHAIN = "https://meteora-evm.gatenode.cc", + VECHAIN = "https://sync-testnet.veblocks.net", + SECRET = "https://pulsar-2.api.trivium.network:9091/", + SKALE = "https://staging-v2.skalenodes.com/v1/actual-secret-cebalrai", + HEDERA = "https://0.testnet.hedera.com/", + NEAR = "https://rpc.testnet.near.org", + MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", + ABEYCHAIN = "https://testrpc.abeychain.com", + APTOS = "https://fullnode.testnet.aptoslabs.com", + TON = "https://testnet.toncenter.com/api/v2/jsonRPC", + SOLANA = "https://api.devnet.solana.com", + CADUCEUS = "https://galaxy.block.caduceus.foundation", +} +export declare enum MainNetRpcUri { + ELROND = "https://gateway.elrond.com", + HECO = "https://http-mainnet-node.huobichain.com", + BSC = "https://bsc-dataseed.binance.org/", + ETHEREUM = "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", + AVALANCHE = "https://api.avax.network/ext/bc/C/rpc", + POLYGON = "https://polygon-rpc.com", + FANTOM = "https://rpc.ftm.tools/", + TRON = "https://api.trongrid.io/", + CELO = "https://forno.celo.org", + HARMONY = "https://rpc.s0.t.hmny.io", + XDAI = "https://gnosis.xp.network/node", + FUSE = "https://rpc.fuse.io/", + VELAS = "https://mainnet.velas.com/rpc", + TEZOS = "https://mainnet.smartpy.io", + IOTEX = "https://babel-api.mainnet.iotex.io", + AURORA = "https://mainnet.aurora.dev", + GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", + GATECHAIN = "https://evm.gatenode.cc", + VECHAIN = "https://sync-mainnet.veblocks.net", + SECRET = "https://grpc.mainnet.secretsaturn.net", + SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", + NEAR = "https://rpc.mainnet.near.org", + MOONBEAM = "https://rpc.api.moonbeam.network", + ABEYCHAIN = "https://rpc.abeychain.com", + TON = "https://toncenter.com/api/v2/jsonRPC", + APTOS = "https://fullnode.mainnet.aptoslabs.com/", + CADUCEUS = "https://mainnet.block.caduceus.foundation/", +} +type ElrondMeta = [ElrondHelper, ElrondParams]; +type Web3Meta = [Web3Helper, Web3Params]; +type TronMeta = [TronHelper, TronParams]; +type AlgoMeta = [AlgorandHelper, AlgorandParams]; +type TezosMeta = [TezosHelper, TezosParams]; +type SecretMeta = [SecretHelper, SecretParams]; +type SolanaMeta = [SolanaHelper, SolanaParams]; +type TonMeta = [TonHelper, TonParams]; +type DfinityMeta = [DfinityHelper, DfinityParams]; +type NearMeta = [NearHelper, NearParams]; +type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; +type AptosMeta = [AptosHelper, AptosParams]; +type MetaMapAssert = { + [idx in typeof Chain[keyof typeof Chain]]: unknown; +}; +export type MetaMap = { + 2: ElrondMeta; + 3: Web3Meta; + 4: Web3Meta; + 5: Web3Meta; + 6: Web3Meta; + 7: Web3Meta; + 8: Web3Meta; + 9: TronMeta; + 0xb: Web3Meta; + 0xc: Web3Meta; + 0xd: Web3Meta; + 0xe: Web3Meta; + 0xf: AlgoMeta; + 0x10: Web3Meta; + 0x11: Web3Meta; + 0x12: TezosMeta; + 0x13: Web3Meta; + 0x14: Web3Meta; + 0x15: Web3Meta; + 0x16: Web3Meta; + 0x17: Web3Meta; + 0x18: SecretMeta; + 0x19: Web3Meta; + 0x1a: SolanaMeta; + 0x1b: TonMeta; + 0x1c: DfinityMeta; + 0x1d: Web3Meta; + 0x1e: Web3ERC20Meta; + 0x1f: NearMeta; + 0x20: Web3Meta; + 0x21: Web3Meta; + 0x22: AptosMeta; + 0x23: Web3Meta; +} & MetaMapAssert; +export declare namespace Chain { + const ELROND = 2; + const HECO = 3; + const BSC = 4; + const ETHEREUM = 5; + const AVALANCHE = 6; + const POLYGON = 7; + const FANTOM = 8; + const TRON = 9; + const CELO = 11; + const HARMONY = 12; + const ONT = 13; + const XDAI = 14; + const ALGORAND = 15; + const FUSE = 16; + const UNIQUE = 17; + const TEZOS = 18; + const VELAS = 19; + const IOTEX = 20; + const AURORA = 21; + const GODWOKEN = 22; + const GATECHAIN = 23; + const SECRET = 24; + const VECHAIN = 25; + const SOLANA = 26; + const TON = 27; + const DFINITY = 28; + const HEDERA = 29; + const SKALE = 30; + const NEAR = 31; + const MOONBEAM = 32; + const ABEYCHAIN = 33; + const APTOS = 34; + const CADUCEUS = 35; +} +interface ChainData { + name: string; + nonce: number; + decimals: number; + constructor: (p: InferChainParam) => Promise>; + blockExplorerUrl: string; + tnBlockExplorerUrl?: string | ((tx: string) => string); + chainId?: number; + tnChainId?: number; + currency: SupportedCurrency; + type: string; + blockExplorerUrlAddr?: string; + tnBlockExplorerUrlAddr?: string | ((tx: string) => string); + rejectUnfreeze?: string[]; +} +type ChainInfo = { + set(k: T, v: ChainData | undefined): void; + get(k: T): ChainData | undefined; +} & Map>; +export declare enum ChainType { + EVM = "EVM", + ELROND = "ELROND", + TRON = "TRON", + TEZOS = "TEZOS", + ALGORAND = "ALGORAND", + COSMOS = "COSMOS", + DFINITY = "DFINITY", + SOLANA = "SOLANA", + TON = "TON", + NEAR = "NEAR", + HEDERA = "HEDERA", + APTOS = "APTOS", +} +export declare const CHAIN_INFO: ChainInfo; +export {}; +//# sourceMappingURL=consts.d.ts.map diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map new file mode 100644 index 000000000..f9b735a56 --- /dev/null +++ b/dist/consts.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js new file mode 100644 index 000000000..35faaada6 --- /dev/null +++ b/dist/consts.js @@ -0,0 +1,577 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CHAIN_INFO = + exports.ChainType = + exports.Chain = + exports.MainNetRpcUri = + exports.TestNetRpcUri = + void 0; +const elrond_1 = require("./helpers/elrond"); +const tron_1 = require("./helpers/tron"); +const web3_1 = require("./helpers/web3"); +const domain_1 = require("crypto-exchange-rate/dist/model/domain"); +const algorand_1 = require("./helpers/algorand"); +const tezos_1 = require("./helpers/tezos"); +const secret_1 = require("./helpers/secret"); +const solana_1 = require("./helpers/solana"); +const ton_1 = require("./helpers/ton"); +const dfinity_1 = require("./helpers/dfinity/dfinity"); +const near_1 = require("./helpers/near"); +const aptos_1 = require("./helpers/aptos"); +const web3_erc20_1 = require("./helpers/web3_erc20"); +// All the supported testnet uri's are here. +var TestNetRpcUri; +(function (TestNetRpcUri) { + TestNetRpcUri["ELROND"] = "https://devnet-gateway.elrond.com"; + TestNetRpcUri["HECO"] = "https://http-testnet.hecochain.com"; + TestNetRpcUri["BSC"] = "https://data-seed-prebsc-2-s2.binance.org:8545/"; + TestNetRpcUri["ROPSTEN"] = + "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467"; + TestNetRpcUri["AVALANCHE"] = "https://api.avax-test.network/ext/bc/C/rpc"; + TestNetRpcUri["POLYGON"] = "https://matic-mumbai.chainstacklabs.com"; + TestNetRpcUri["FANTOM"] = "https://rpc.testnet.fantom.network/"; + TestNetRpcUri["TRON"] = "https://api.shasta.trongrid.io/"; + TestNetRpcUri["CELO"] = "https://alfajores-forno.celo-testnet.org"; + TestNetRpcUri["HARMONY"] = "https://api.s0.b.hmny.io"; + TestNetRpcUri["XDAI"] = "https://sokol.poa.network"; + TestNetRpcUri["UNIQUE"] = "https://rpc-opal.unique.network/"; + TestNetRpcUri["TEZOS"] = "https://ghostnet.smartpy.io"; + TestNetRpcUri["VELAS"] = "https://explorer.testnet.velas.com/rpc"; + TestNetRpcUri["IOTEX"] = "https://babel-api.testnet.iotex.io"; + TestNetRpcUri["AURORA"] = "https://testnet.aurora.dev/"; + TestNetRpcUri["GODWOKEN"] = "https://godwoken-testnet-v1.ckbapp.dev"; + TestNetRpcUri["GATECHAIN"] = "https://meteora-evm.gatenode.cc"; + TestNetRpcUri["VECHAIN"] = "https://sync-testnet.veblocks.net"; + TestNetRpcUri["SECRET"] = "https://pulsar-2.api.trivium.network:9091/"; + TestNetRpcUri["SKALE"] = + "https://staging-v2.skalenodes.com/v1/actual-secret-cebalrai"; + TestNetRpcUri["HEDERA"] = "https://0.testnet.hedera.com/"; + TestNetRpcUri["NEAR"] = "https://rpc.testnet.near.org"; + TestNetRpcUri["MOONBEAM"] = "https://rpc.api.moonbase.moonbeam.network"; + TestNetRpcUri["ABEYCHAIN"] = "https://testrpc.abeychain.com"; + TestNetRpcUri["APTOS"] = "https://fullnode.testnet.aptoslabs.com"; + TestNetRpcUri["TON"] = "https://testnet.toncenter.com/api/v2/jsonRPC"; + TestNetRpcUri["SOLANA"] = "https://api.devnet.solana.com"; + TestNetRpcUri["CADUCEUS"] = "https://galaxy.block.caduceus.foundation"; + // TODO: Algorand + // TODO: Fuse +})((TestNetRpcUri = exports.TestNetRpcUri || (exports.TestNetRpcUri = {}))); +var MainNetRpcUri; +(function (MainNetRpcUri) { + MainNetRpcUri["ELROND"] = "https://gateway.elrond.com"; + MainNetRpcUri["HECO"] = "https://http-mainnet-node.huobichain.com"; + MainNetRpcUri["BSC"] = "https://bsc-dataseed.binance.org/"; + MainNetRpcUri["ETHEREUM"] = + "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161"; + MainNetRpcUri["AVALANCHE"] = "https://api.avax.network/ext/bc/C/rpc"; + MainNetRpcUri["POLYGON"] = "https://polygon-rpc.com"; + MainNetRpcUri["FANTOM"] = "https://rpc.ftm.tools/"; + MainNetRpcUri["TRON"] = "https://api.trongrid.io/"; + MainNetRpcUri["CELO"] = "https://forno.celo.org"; + MainNetRpcUri["HARMONY"] = "https://rpc.s0.t.hmny.io"; + MainNetRpcUri["XDAI"] = "https://gnosis.xp.network/node"; + MainNetRpcUri["FUSE"] = "https://rpc.fuse.io/"; + MainNetRpcUri["VELAS"] = "https://mainnet.velas.com/rpc"; + MainNetRpcUri["TEZOS"] = "https://mainnet.smartpy.io"; + MainNetRpcUri["IOTEX"] = "https://babel-api.mainnet.iotex.io"; + MainNetRpcUri["AURORA"] = "https://mainnet.aurora.dev"; + MainNetRpcUri["GODWOKEN"] = "https://v1.mainnet.godwoken.io/rpc"; + MainNetRpcUri["GATECHAIN"] = "https://evm.gatenode.cc"; + MainNetRpcUri["VECHAIN"] = "https://sync-mainnet.veblocks.net"; + MainNetRpcUri["SECRET"] = "https://grpc.mainnet.secretsaturn.net"; + MainNetRpcUri["SKALE"] = + "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague"; + MainNetRpcUri["NEAR"] = "https://rpc.mainnet.near.org"; + MainNetRpcUri["MOONBEAM"] = "https://rpc.api.moonbeam.network"; + MainNetRpcUri["ABEYCHAIN"] = "https://rpc.abeychain.com"; + MainNetRpcUri["TON"] = "https://toncenter.com/api/v2/jsonRPC"; + MainNetRpcUri["APTOS"] = "https://fullnode.mainnet.aptoslabs.com/"; + MainNetRpcUri["CADUCEUS"] = "https://mainnet.block.caduceus.foundation/"; + // TODO: Algorand +})((MainNetRpcUri = exports.MainNetRpcUri || (exports.MainNetRpcUri = {}))); +var Chain; +(function (Chain) { + Chain.ELROND = 2; + Chain.HECO = 3; + Chain.BSC = 4; + Chain.ETHEREUM = 5; + Chain.AVALANCHE = 0x6; + Chain.POLYGON = 7; + Chain.FANTOM = 8; + Chain.TRON = 9; + Chain.CELO = 0xb; //11 + Chain.HARMONY = 0xc; //12 + Chain.ONT = 0xd; //13 + Chain.XDAI = 0xe; //14 + Chain.ALGORAND = 0xf; //15 + Chain.FUSE = 0x10; // 16 + Chain.UNIQUE = 0x11; // 17 + Chain.TEZOS = 0x12; // 18 + Chain.VELAS = 0x13; // 19 + Chain.IOTEX = 0x14; // 20 + Chain.AURORA = 0x15; // 21 + Chain.GODWOKEN = 0x16; // 22 + Chain.GATECHAIN = 0x17; // 23 + Chain.SECRET = 0x18; // 24 + Chain.VECHAIN = 0x19; // 25 + Chain.SOLANA = 0x1a; // 26 + Chain.TON = 0x1b; // 27 + Chain.DFINITY = 0x1c; // 28 + Chain.HEDERA = 0x1d; // 29 + Chain.SKALE = 0x1e; // 30 + Chain.NEAR = 0x1f; // 31 + Chain.MOONBEAM = 0x20; // 32 + Chain.ABEYCHAIN = 0x21; // 33 + Chain.APTOS = 0x22; // 34 + Chain.CADUCEUS = 0x23; // 35 +})((Chain = exports.Chain || (exports.Chain = {}))); +var ChainType; +(function (ChainType) { + ChainType["EVM"] = "EVM"; + ChainType["ELROND"] = "ELROND"; + ChainType["TRON"] = "TRON"; + ChainType["TEZOS"] = "TEZOS"; + ChainType["ALGORAND"] = "ALGORAND"; + ChainType["COSMOS"] = "COSMOS"; + ChainType["DFINITY"] = "DFINITY"; + ChainType["SOLANA"] = "SOLANA"; + ChainType["TON"] = "TON"; + ChainType["NEAR"] = "NEAR"; + ChainType["HEDERA"] = "HEDERA"; + ChainType["APTOS"] = "APTOS"; +})((ChainType = exports.ChainType || (exports.ChainType = {}))); +exports.CHAIN_INFO = new Map(); +exports.CHAIN_INFO.set(Chain.ELROND, { + name: "Elrond", + nonce: 2, + decimals: 1e18, + constructor: elrond_1.elrondHelperFactory, + blockExplorerUrl: "https://explorer.elrond.com/transactions/", + blockExplorerUrlAddr: "https://explorer.elrond.com/address/", + tnBlockExplorerUrl: "https://testnet-explorer.elrond.com/transactions/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.elrond.com/address/", + currency: domain_1.SupportedCurrency.EGLD, + type: ChainType.ELROND, +}); +exports.CHAIN_INFO.set(Chain.HECO, { + name: "HECO", + nonce: 3, + chainId: 256, + decimals: 1e18, + blockExplorerUrl: "https://testnet.hecoinfo.com/tx", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.HT, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.BSC, { + name: "BSC", + nonce: 4, + chainId: 97, + decimals: 1e18, + blockExplorerUrl: "https://bscscan.com/tx/", + blockExplorerUrlAddr: "https://bscscan.com/address/", + tnBlockExplorerUrl: "https://testnet.bscscan.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet.bscscan.com/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.BNB, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.ETHEREUM, { + name: "Ethereum", + nonce: 5, + currency: domain_1.SupportedCurrency.ETH, + chainId: 5, + decimals: 1e18, + blockExplorerUrl: "https://etherscan.io/tx/", + blockExplorerUrlAddr: "https://etherscan.io/address/", + tnBlockExplorerUrl: "https://goerli.etherscan.io/tx/", + tnBlockExplorerUrlAddr: "https://goerli.etherscan.io/address/", + constructor: web3_1.web3HelperFactory, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.AVALANCHE, { + name: "Avalanche", + nonce: 6, + chainId: 43113, + decimals: 1e18, + blockExplorerUrl: "https://snowtrace.io/tx/", + tnBlockExplorerUrl: "https://testnet.snowtrace.io/tx/", + blockExplorerUrlAddr: "https://snowtrace.io/address/", + tnBlockExplorerUrlAddr: "https://testnet.snowtrace.io/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.AVAX, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.POLYGON, { + name: "Polygon", + nonce: 0x7, + chainId: 80001, + decimals: 1e18, + blockExplorerUrl: "https://polygonscan.com/tx/", + tnBlockExplorerUrl: "https://mumbai.polygonscan.com/tx/", + blockExplorerUrlAddr: "https://polygonscan.com/address/", + tnBlockExplorerUrlAddr: "https://mumbai.polygonscan.com/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.MATIC, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.FANTOM, { + name: "Fantom", + nonce: 0x8, + decimals: 1e18, + chainId: 4002, + blockExplorerUrl: "https://ftmscan.com/tx/", + blockExplorerUrlAddr: "https://ftmscan.com/address/", + tnBlockExplorerUrlAddr: "https://testnet.ftmscan.com/address/", + tnBlockExplorerUrl: "https://testnet.ftmscan.com/tx/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.FTM, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.TRON, { + name: "Tron", + nonce: 0x9, + decimals: 1e6, + blockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", + tnBlockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", + blockExplorerUrlAddr: "https://tronscan.io/#/address/", + tnBlockExplorerUrlAddr: "https://shasta.tronscan.org/#/address/", + constructor: tron_1.tronHelperFactory, + currency: domain_1.SupportedCurrency.TRX, + type: ChainType.TRON, +}); +exports.CHAIN_INFO.set(Chain.CELO, { + name: "Celo", + nonce: 0xb, + decimals: 1e18, + chainId: 44787, + blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.CELO, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.HARMONY, { + name: "Harmony", + nonce: 0xc, + decimals: 1e18, + chainId: 1666700000, + blockExplorerUrl: "https://explorer.harmony.one/tx/", + tnBlockExplorerUrl: "https://explorer.testnet.harmony.one/tx/", + blockExplorerUrlAddr: "https://explorer.harmony.one/address/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.harmony.one/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.ONE, + type: ChainType.EVM, + rejectUnfreeze: [ + "0xb90Dc9e354001e6260DE670EDD6aBaDb890C6aC9", + "0xAd6f94bDefB6D5ae941392Da5224ED083AE33adc", + ], +}); +exports.CHAIN_INFO.set(Chain.ONT, { + name: "Ontology", + nonce: 0xd, + decimals: 1e18, + chainId: 1666700000, + blockExplorerUrl: "https://explorer.pops.one/tx", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.ONT, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.XDAI, { + name: "xDai", + nonce: 0xe, + decimals: 1e18, + chainId: 0x64, + blockExplorerUrl: "https://blockscout.com/xdai/mainnet/tx/", + blockExplorerUrlAddr: "https://blockscout.com/xdai/mainnet/address/", + tnBlockExplorerUrl: "https://blockscout.com/xdai/testnet/tx/", + tnBlockExplorerUrlAddr: "https://blockscout.com/xdai/testnet/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.XDAI, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.ALGORAND, { + name: "Algorand", + nonce: 0xf, + decimals: 1e6, + chainId: undefined, + blockExplorerUrl: "https://algoexplorer.io/tx/", + tnBlockExplorerUrl: "https://testnet.algoexplorer.io/tx/", + blockExplorerUrlAddr: "https://algoexplorer.io/address/", + tnBlockExplorerUrlAddr: "https://testnet.algoexplorer.io/address/", + currency: domain_1.SupportedCurrency.ALGO, + constructor: (p) => Promise.resolve((0, algorand_1.algorandHelper)(p)), + type: ChainType.ALGORAND, +}); +exports.CHAIN_INFO.set(Chain.FUSE, { + name: "FUSE", + nonce: 0x10, + decimals: 1e18, + chainId: undefined, + blockExplorerUrl: "https://explorer.fuse.io/tx/", + tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", + blockExplorerUrlAddr: "https://explorer.fuse.io/address/", + tnBlockExplorerUrlAddr: "https://explorer.fusespark.io/address/", + currency: domain_1.SupportedCurrency.FUSE, + constructor: web3_1.web3HelperFactory, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.UNIQUE, { + name: "Unique", + nonce: 0x11, + decimals: 1e18, + chainId: 8888, + blockExplorerUrl: "CANT FIND", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.OPL, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.TEZOS, { + name: "Tezos", + nonce: 0x12, + decimals: 1e6, + constructor: tezos_1.tezosHelperFactory, + currency: domain_1.SupportedCurrency.XTZ, + blockExplorerUrl: "https://tzkt.io/", + tnBlockExplorerUrl: "https://ghostnet.tzkt.io/", + tnBlockExplorerUrlAddr: "https://ghostnet.tzkt.io/", + blockExplorerUrlAddr: "https://tzkt.io/", + type: ChainType.TEZOS, +}); +exports.CHAIN_INFO.set(Chain.VELAS, { + name: "Velas", + blockExplorerUrl: "https://explorer.velas.com/tx/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.velas.com/address/", + blockExplorerUrlAddr: "https://explorer.velas.com/address/", + tnBlockExplorerUrl: "https://explorer.testnet.velas.com/tx/", + nonce: 0x13, + decimals: 1e18, + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.VLX, + chainId: 111, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.AURORA, { + name: "Aurora", + blockExplorerUrl: "https://aurorascan.dev/tx/", + tnBlockExplorerUrl: "hhttps://testnet.aurorascan.dev/tx/", + blockExplorerUrlAddr: "https://aurorascan.dev/address/", + tnBlockExplorerUrlAddr: "https://testnet.aurorascan.dev/address", + nonce: Chain.AURORA, + decimals: 1e18, + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.AURORA, + chainId: 1313161554, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.IOTEX, { + name: "IoTeX", + blockExplorerUrl: "https://iotexscan.io/tx/", + blockExplorerUrlAddr: "https://iotexscan.io/address/", + tnBlockExplorerUrl: "https://testnet.iotexscan.io/tx/", + tnBlockExplorerUrlAddr: "https://testnet.iotexscan.io/address/", + nonce: 0x14, + decimals: 1e18, + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.IOTX, + chainId: 4689, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.GODWOKEN, { + name: "GodWoken", + blockExplorerUrl: "https://gwscan.com/tx/", + tnBlockExplorerUrl: "https://v1.testnet.gwscan.com/tx/", + blockExplorerUrlAddr: "https://gwscan.com/account/", + tnBlockExplorerUrlAddr: "https://v1.testnet.gwscan.com/account/", + constructor: web3_1.web3HelperFactory, + nonce: 0x16, + decimals: 1e18, + currency: domain_1.SupportedCurrency.CKB, + chainId: 868455272153094, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.GATECHAIN, { + name: "GateChain", + blockExplorerUrl: "https://gatescan.org/tx/", + tnBlockExplorerUrl: "https://gatescan.org/testnet/tx/", + blockExplorerUrlAddr: "https://gatescan.org/address/", + tnBlockExplorerUrlAddr: "https://gatescan.org/testnet/address/", + constructor: web3_1.web3HelperFactory, + nonce: 0x17, + decimals: 1e18, + currency: domain_1.SupportedCurrency.GT, + chainId: 85, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.VECHAIN, { + name: "VeChain", + tnBlockExplorerUrl: "https://explore-testnet.vechain.org/transactions/", + blockExplorerUrlAddr: "https://explore.vechain.org/accounts/", + blockExplorerUrl: "https://explore.vechain.org/transactions/", + tnBlockExplorerUrlAddr: "https://explore-testnet.vechain.org/accounts/", + constructor: web3_1.web3HelperFactory, + nonce: 0x19, + currency: domain_1.SupportedCurrency.VET, + decimals: 1e18, + chainId: 39, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.SECRET, { + name: "Secret", + //blockExplorerUrl: "", // TODO + constructor: secret_1.secretHelperFactory, + nonce: Chain.SECRET, + currency: domain_1.SupportedCurrency.SCRT, + decimals: 1e6, + type: ChainType.COSMOS, + blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", + blockExplorerUrlAddr: "https://atomscan.com/secret-network/accounts/", +}); +exports.CHAIN_INFO.set(Chain.SOLANA, { + name: "Solana", + blockExplorerUrl: "https://solscan.io/tx/", + blockExplorerUrlAddr: "https://solscan.io/account/", + tnBlockExplorerUrl: (tx) => `https://solscan.io/tx/${tx}?cluster=devnet`, + tnBlockExplorerUrlAddr: (address) => + `https://solscan.io/account/${address}?cluster=devnet`, + constructor: solana_1.solanaHelper, + nonce: Chain.SOLANA, + currency: domain_1.SupportedCurrency.SOL, + decimals: 1e9, + type: ChainType.SOLANA, +}); +/*CHAIN_INFO.set(Chain.TON, { + name: "TON", + blockExplorerUrl: "", // TODO + constructor: tonHelper, + nonce: Chain.TON, + currency: SupportedCurrency.TON, + decimals: 1e9, + type: ChainType.TON, +}); +CHAIN_INFO.set(Chain.DFINITY, { + name: "DFINITY", + blockExplorerUrl: "", // TODO + constructor: dfinityHelper, + nonce: Chain.DFINITY, + currency: SupportedCurrency.ICP, + decimals: 1e8, + type: ChainType.DFINITY, +});*/ +exports.CHAIN_INFO.set(Chain.HEDERA, { + blockExplorerUrl: "https://hashscan.io/#/mainnet/transaction/", + tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.HBAR, + decimals: 1e6, + nonce: Chain.HEDERA, + name: "Hedera", + type: ChainType.HEDERA, + blockExplorerUrlAddr: "https://hashscan.io/#/mainnet/account/", + tnBlockExplorerUrlAddr: "https://hashscan.io/#/testnet/account/", +}); +exports.CHAIN_INFO.set(Chain.SKALE, { + name: "Skale", + //needs additional query params + blockExplorerUrl: + "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/tx/", + tnBlockExplorerUrl: + "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", + blockExplorerUrlAddr: + "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/address/", + tnBlockExplorerUrlAddr: + "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", + constructor: web3_erc20_1.web3ERC20HelperFactory, + currency: domain_1.SupportedCurrency.SKL, + decimals: 1e18, + chainId: 1564830818, + nonce: Chain.SKALE, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.DFINITY, { + blockExplorerUrl: "", + constructor: dfinity_1.dfinityHelper, + currency: domain_1.SupportedCurrency.ICP, + decimals: 1e8, + name: "DFINITY", + nonce: Chain.DFINITY, + type: ChainType.DFINITY, +}); +exports.CHAIN_INFO.set(Chain.NEAR, { + blockExplorerUrl: "https://explorer.mainnet.near.org/transactions/", + tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", + constructor: near_1.nearHelperFactory, + currency: domain_1.SupportedCurrency.NEAR, + decimals: 1e24, + name: "NEAR", + nonce: Chain.NEAR, + type: ChainType.NEAR, + blockExplorerUrlAddr: "https://explorer.mainnet.near.org/accounts/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.near.org/accounts/", +}); +exports.CHAIN_INFO.set(Chain.MOONBEAM, { + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.GLMR, + decimals: 1e18, + name: "MoonBeam", + nonce: Chain.MOONBEAM, + chainId: 0x507, + type: ChainType.EVM, + blockExplorerUrlAddr: "https://moonbeam.moonscan.io/address/", + tnBlockExplorerUrlAddr: "https://moonbase.moonscan.io/address/", + blockExplorerUrl: "https://moonscan.io/tx/", + tnBlockExplorerUrl: "https://moonbase.moonscan.io/tx/", +}); +exports.CHAIN_INFO.set(Chain.ABEYCHAIN, { + tnBlockExplorerUrl: "https://testnet-explorer.abeychain.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.abeychain.com/address/", + blockExplorerUrl: "https://scan.abeychain.com/tx/", + blockExplorerUrlAddr: "https://scan.abeychain.com/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.ABEY, + decimals: 1e18, + name: "AbeyChain", + nonce: Chain.ABEYCHAIN, + chainId: 178, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.APTOS, { + constructor: aptos_1.aptosHelper, + currency: domain_1.SupportedCurrency.APTOS, + decimals: 1e6, + name: "Aptos", + nonce: Chain.APTOS, + type: ChainType.APTOS, + //needs additional query params + blockExplorerUrl: "https://explorer.aptoslabs.com/txn/", + blockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", + tnBlockExplorerUrl: "https://explorer.aptoslabs.com/txn/", + tnBlockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", +}); +exports.CHAIN_INFO.set(Chain.TON, { + name: "TON", + constructor: ton_1.tonHelper, + currency: domain_1.SupportedCurrency.TON, + decimals: 1e9, + nonce: Chain.TON, + type: ChainType.TON, + tnBlockExplorerUrl: "https://testnet.tonscan.org/tx/", + blockExplorerUrl: "https://tonscan.org/tx/", + blockExplorerUrlAddr: "https://tonscan.org/address/", + tnBlockExplorerUrlAddr: "https://testnet.tonscan.org/address/", +}); +exports.CHAIN_INFO.set(Chain.CADUCEUS, { + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.CMP, + decimals: 1e18, + name: "Caduceus", + nonce: Chain.CADUCEUS, + blockExplorerUrl: "https://mainnet.scan.caduceus.foundation/tx/", + tnBlockExplorerUrl: "https://galaxy.scan.caduceus.foundation/tx/", + blockExplorerUrlAddr: "https://mainnet.scan.caduceus.foundation/address/", + tnBlockExplorerUrlAddr: "https://galaxy.scan.caduceus.foundation/address/", + type: ChainType.EVM, + chainId: 256256, + tnChainId: 512512, +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsaURBSTRCO0FBQzVCLDJDQUErRTtBQUUvRSw2Q0FJMEI7QUFDMUIsNkNBQTRFO0FBQzVFLHVDQUFnRTtBQUNoRSx1REFJbUM7QUFDbkMseUNBQTJFO0FBQzNFLDJDQUF3RTtBQUN4RSxxREFBK0U7QUFFL0UsNENBQTRDO0FBQzVDLElBQVksYUFnQ1g7QUFoQ0QsV0FBWSxhQUFhO0lBQ3ZCLDZEQUE0QyxDQUFBO0lBQzVDLDREQUEyQyxDQUFBO0lBQzNDLHdFQUF1RCxDQUFBO0lBQ3ZELHlGQUF3RSxDQUFBO0lBQ3hFLHlFQUF3RCxDQUFBO0lBQ3hELG9FQUFtRCxDQUFBO0lBQ25ELCtEQUE4QyxDQUFBO0lBQzlDLHlEQUF3QyxDQUFBO0lBQ3hDLGtFQUFpRCxDQUFBO0lBQ2pELHFEQUFvQyxDQUFBO0lBQ3BDLG1EQUFrQyxDQUFBO0lBQ2xDLDREQUEyQyxDQUFBO0lBQzNDLHNEQUFxQyxDQUFBO0lBQ3JDLGlFQUFnRCxDQUFBO0lBQ2hELDZEQUE0QyxDQUFBO0lBQzVDLHVEQUFzQyxDQUFBO0lBQ3RDLG9FQUFtRCxDQUFBO0lBQ25ELDhEQUE2QyxDQUFBO0lBQzdDLDhEQUE2QyxDQUFBO0lBQzdDLHNFQUFxRCxDQUFBO0lBQ3JELHNGQUFxRSxDQUFBO0lBQ3JFLHlEQUF3QyxDQUFBO0lBQ3hDLHNEQUFxQyxDQUFBO0lBQ3JDLHVFQUFzRCxDQUFBO0lBQ3RELDREQUEyQyxDQUFBO0lBQzNDLGlFQUFnRCxDQUFBO0lBQ2hELHFFQUFvRCxDQUFBO0lBQ3BELHlEQUF3QyxDQUFBO0lBQ3hDLHNFQUFxRCxDQUFBO0lBQ3JELGlCQUFpQjtJQUNqQixhQUFhO0FBQ2YsQ0FBQyxFQWhDVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQWdDeEI7QUFFRCxJQUFZLGFBNkJYO0FBN0JELFdBQVksYUFBYTtJQUN2QixzREFBcUMsQ0FBQTtJQUNyQyxrRUFBaUQsQ0FBQTtJQUNqRCwwREFBeUMsQ0FBQTtJQUN6QywyRkFBMEUsQ0FBQTtJQUMxRSxvRUFBbUQsQ0FBQTtJQUNuRCxvREFBbUMsQ0FBQTtJQUNuQyxrREFBaUMsQ0FBQTtJQUNqQyxrREFBaUMsQ0FBQTtJQUNqQyxnREFBK0IsQ0FBQTtJQUMvQixxREFBb0MsQ0FBQTtJQUNwQyx3REFBdUMsQ0FBQTtJQUN2Qyw4Q0FBNkIsQ0FBQTtJQUM3Qix3REFBdUMsQ0FBQTtJQUN2QyxxREFBb0MsQ0FBQTtJQUNwQyw2REFBNEMsQ0FBQTtJQUM1QyxzREFBcUMsQ0FBQTtJQUNyQyxnRUFBK0MsQ0FBQTtJQUMvQyxzREFBcUMsQ0FBQTtJQUNyQyw4REFBNkMsQ0FBQTtJQUM3QyxpRUFBZ0QsQ0FBQTtJQUNoRCx1RkFBc0UsQ0FBQTtJQUN0RSxzREFBcUMsQ0FBQTtJQUNyQyw4REFBNkMsQ0FBQTtJQUM3Qyx3REFBdUMsQ0FBQTtJQUN2Qyw2REFBNEMsQ0FBQTtJQUM1QyxrRUFBaUQsQ0FBQTtJQUNqRCx3RUFBdUQsQ0FBQTtJQUN2RCxpQkFBaUI7QUFDbkIsQ0FBQyxFQTdCVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQTZCeEI7QUFzREQsSUFBaUIsS0FBSyxDQWtDckI7QUFsQ0QsV0FBaUIsS0FBSztJQUNQLFlBQU0sR0FBRyxDQUFDLENBQUM7SUFDWCxVQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsU0FBRyxHQUFHLENBQUMsQ0FBQztJQUNSLGNBQVEsR0FBRyxDQUFDLENBQUM7SUFDYixlQUFTLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLGFBQU8sR0FBRyxDQUFDLENBQUM7SUFDWixZQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsVUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFVBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ2hCLGFBQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ25CLFNBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ2YsVUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUk7SUFDaEIsY0FBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUk7SUFDcEIsVUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbEIsWUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDcEIsV0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbkIsV0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbkIsV0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbkIsWUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDcEIsY0FBUSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDdEIsZUFBUyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDdkIsWUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDcEIsYUFBTyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDckIsWUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDcEIsU0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDakIsYUFBTyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDckIsWUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDcEIsV0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbkIsVUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbEIsY0FBUSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDdEIsZUFBUyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDdkIsV0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbkIsY0FBUSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7QUFDckMsQ0FBQyxFQWxDZ0IsS0FBSyxHQUFMLGFBQUssS0FBTCxhQUFLLFFBa0NyQjtBQXVCRCxJQUFZLFNB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 diff --git a/dist/consts.ts b/dist/consts.ts new file mode 100644 index 000000000..037f9bd23 --- /dev/null +++ b/dist/consts.ts @@ -0,0 +1,665 @@ +import { + elrondHelperFactory, + ElrondParams, + ElrondHelper, +} from "./helpers/elrond"; +import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; +import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; + +import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; +import { + AlgorandParams, + AlgorandHelper, + algorandHelper, +} from "./helpers/algorand"; +import { TezosHelper, tezosHelperFactory, TezosParams } from "./helpers/tezos"; +import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; +import { + SecretHelper, + secretHelperFactory, + SecretParams, +} from "./helpers/secret"; +import { solanaHelper, SolanaHelper, SolanaParams } from "./helpers/solana"; +import { tonHelper, TonHelper, TonParams } from "./helpers/ton"; +import { + dfinityHelper, + DfinityHelper, + DfinityParams, +} from "./helpers/dfinity/dfinity"; +import { NearHelper, NearParams, nearHelperFactory } from "./helpers/near"; +import { aptosHelper, AptosHelper, AptosParams } from "./helpers/aptos"; +import { web3ERC20HelperFactory, Web3ERC20Params } from "./helpers/web3_erc20"; + +// All the supported testnet uri's are here. +export enum TestNetRpcUri { + ELROND = "https://devnet-gateway.elrond.com", + HECO = "https://http-testnet.hecochain.com", + BSC = "https://data-seed-prebsc-2-s2.binance.org:8545/", + ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", + AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", + POLYGON = "https://matic-mumbai.chainstacklabs.com", + FANTOM = "https://rpc.testnet.fantom.network/", + TRON = "https://api.shasta.trongrid.io/", + CELO = "https://alfajores-forno.celo-testnet.org", + HARMONY = "https://api.s0.b.hmny.io", + XDAI = "https://sokol.poa.network", + UNIQUE = "https://rpc-opal.unique.network/", + TEZOS = "https://ghostnet.smartpy.io", + VELAS = "https://explorer.testnet.velas.com/rpc", + IOTEX = "https://babel-api.testnet.iotex.io", + AURORA = "https://testnet.aurora.dev/", + GODWOKEN = "https://godwoken-testnet-v1.ckbapp.dev", + GATECHAIN = "https://meteora-evm.gatenode.cc", + VECHAIN = "https://sync-testnet.veblocks.net", + SECRET = "https://pulsar-2.api.trivium.network:9091/", + SKALE = "https://staging-v2.skalenodes.com/v1/actual-secret-cebalrai", + HEDERA = "https://0.testnet.hedera.com/", + NEAR = "https://rpc.testnet.near.org", + MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", + ABEYCHAIN = "https://testrpc.abeychain.com", + APTOS = "https://fullnode.testnet.aptoslabs.com", + TON = "https://testnet.toncenter.com/api/v2/jsonRPC", + SOLANA = "https://api.devnet.solana.com", + CADUCEUS = "https://galaxy.block.caduceus.foundation", + // TODO: Algorand + // TODO: Fuse +} + +export enum MainNetRpcUri { + ELROND = "https://gateway.elrond.com", + HECO = "https://http-mainnet-node.huobichain.com", + BSC = "https://bsc-dataseed.binance.org/", + ETHEREUM = "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", + AVALANCHE = "https://api.avax.network/ext/bc/C/rpc", + POLYGON = "https://polygon-rpc.com", + FANTOM = "https://rpc.ftm.tools/", + TRON = "https://api.trongrid.io/", + CELO = "https://forno.celo.org", + HARMONY = "https://rpc.s0.t.hmny.io", + XDAI = "https://gnosis.xp.network/node", + FUSE = "https://rpc.fuse.io/", + VELAS = "https://mainnet.velas.com/rpc", + TEZOS = "https://mainnet.smartpy.io", + IOTEX = "https://babel-api.mainnet.iotex.io", + AURORA = "https://mainnet.aurora.dev", + GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", + GATECHAIN = "https://evm.gatenode.cc", + VECHAIN = "https://sync-mainnet.veblocks.net", + SECRET = "https://grpc.mainnet.secretsaturn.net", + SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", + NEAR = "https://rpc.mainnet.near.org", + MOONBEAM = "https://rpc.api.moonbeam.network", + ABEYCHAIN = "https://rpc.abeychain.com", + TON = "https://toncenter.com/api/v2/jsonRPC", + APTOS = "https://fullnode.mainnet.aptoslabs.com/", + CADUCEUS = "https://mainnet.block.caduceus.foundation/", + // TODO: Algorand +} + +type ElrondMeta = [ElrondHelper, ElrondParams]; +type Web3Meta = [Web3Helper, Web3Params]; +type TronMeta = [TronHelper, TronParams]; +type AlgoMeta = [AlgorandHelper, AlgorandParams]; +type TezosMeta = [TezosHelper, TezosParams]; +type SecretMeta = [SecretHelper, SecretParams]; +type SolanaMeta = [SolanaHelper, SolanaParams]; +type TonMeta = [TonHelper, TonParams]; +type DfinityMeta = [DfinityHelper, DfinityParams]; +type NearMeta = [NearHelper, NearParams]; +type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; +type AptosMeta = [AptosHelper, AptosParams]; + +// Static Assert to Ensure all values of Chain are in MetaMap +type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; + +export type MetaMap = { + 2: ElrondMeta; + 3: Web3Meta; + 4: Web3Meta; + 5: Web3Meta; + 6: Web3Meta; + 7: Web3Meta; + 8: Web3Meta; + 9: TronMeta; + 0xb: Web3Meta; + 0xc: Web3Meta; + 0xd: Web3Meta; + 0xe: Web3Meta; + 0xf: AlgoMeta; + 0x10: Web3Meta; + 0x11: Web3Meta; + 0x12: TezosMeta; + 0x13: Web3Meta; + 0x14: Web3Meta; + 0x15: Web3Meta; + 0x16: Web3Meta; + 0x17: Web3Meta; + 0x18: SecretMeta; + 0x19: Web3Meta; + 0x1a: SolanaMeta; + 0x1b: TonMeta; + 0x1c: DfinityMeta; + 0x1d: Web3Meta; + 0x1e: Web3ERC20Meta; + 0x1f: NearMeta; + 0x20: Web3Meta; + 0x21: Web3Meta; + 0x22: AptosMeta; + 0x23: Web3Meta; +} & MetaMapAssert; + +export namespace Chain { + export const ELROND = 2; + export const HECO = 3; + export const BSC = 4; + export const ETHEREUM = 5; + export const AVALANCHE = 0x6; + export const POLYGON = 7; + export const FANTOM = 8; + export const TRON = 9; + export const CELO = 0xb; //11 + export const HARMONY = 0xc; //12 + export const ONT = 0xd; //13 + export const XDAI = 0xe; //14 + export const ALGORAND = 0xf; //15 + export const FUSE = 0x10; // 16 + export const UNIQUE = 0x11; // 17 + export const TEZOS = 0x12; // 18 + export const VELAS = 0x13; // 19 + export const IOTEX = 0x14; // 20 + export const AURORA = 0x15; // 21 + export const GODWOKEN = 0x16; // 22 + export const GATECHAIN = 0x17; // 23 + export const SECRET = 0x18; // 24 + export const VECHAIN = 0x19; // 25 + export const SOLANA = 0x1a; // 26 + export const TON = 0x1b; // 27 + export const DFINITY = 0x1c; // 28 + export const HEDERA = 0x1d; // 29 + export const SKALE = 0x1e; // 30 + export const NEAR = 0x1f; // 31 + export const MOONBEAM = 0x20; // 32 + export const ABEYCHAIN = 0x21; // 33 + export const APTOS = 0x22; // 34 + export const CADUCEUS = 0x23; // 35 +} + +interface ChainData { + name: string; + nonce: number; + decimals: number; + constructor: (p: InferChainParam) => Promise>; + blockExplorerUrl: string; + tnBlockExplorerUrl?: string | ((tx: string) => string); + chainId?: number; + tnChainId?: number; + currency: SupportedCurrency; + type: string; + blockExplorerUrlAddr?: string; + tnBlockExplorerUrlAddr?: string | ((tx: string) => string); + rejectUnfreeze?: string[]; +} + +type ChainInfo = { + set(k: T, v: ChainData | undefined): void; + get(k: T): ChainData | undefined; +} & Map>; + +export enum ChainType { + EVM = "EVM", + ELROND = "ELROND", + TRON = "TRON", + TEZOS = "TEZOS", + ALGORAND = "ALGORAND", + COSMOS = "COSMOS", + DFINITY = "DFINITY", + SOLANA = "SOLANA", + TON = "TON", + NEAR = "NEAR", + HEDERA = "HEDERA", + APTOS = "APTOS", +} + +export const CHAIN_INFO: ChainInfo = new Map(); +CHAIN_INFO.set(Chain.ELROND, { + name: "Elrond", + nonce: 2, + decimals: 1e18, + constructor: elrondHelperFactory, + blockExplorerUrl: "https://explorer.elrond.com/transactions/", + blockExplorerUrlAddr: "https://explorer.elrond.com/address/", + tnBlockExplorerUrl: "https://testnet-explorer.elrond.com/transactions/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.elrond.com/address/", + currency: SupportedCurrency.EGLD, + type: ChainType.ELROND, +}); +CHAIN_INFO.set(Chain.HECO, { + name: "HECO", + nonce: 3, + chainId: 256, + decimals: 1e18, + blockExplorerUrl: "https://testnet.hecoinfo.com/tx", + constructor: web3HelperFactory, + currency: SupportedCurrency.HT, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.BSC, { + name: "BSC", + nonce: 4, + chainId: 97, + decimals: 1e18, + blockExplorerUrl: "https://bscscan.com/tx/", + blockExplorerUrlAddr: "https://bscscan.com/address/", + tnBlockExplorerUrl: "https://testnet.bscscan.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet.bscscan.com/address/", + constructor: web3HelperFactory, + currency: SupportedCurrency.BNB, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.ETHEREUM, { + name: "Ethereum", + nonce: 5, + currency: SupportedCurrency.ETH, + chainId: 5, + decimals: 1e18, + blockExplorerUrl: "https://etherscan.io/tx/", + blockExplorerUrlAddr: "https://etherscan.io/address/", + tnBlockExplorerUrl: "https://goerli.etherscan.io/tx/", + tnBlockExplorerUrlAddr: "https://goerli.etherscan.io/address/", + constructor: web3HelperFactory, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.AVALANCHE, { + name: "Avalanche", + nonce: 6, + chainId: 43113, + decimals: 1e18, + blockExplorerUrl: "https://snowtrace.io/tx/", + tnBlockExplorerUrl: "https://testnet.snowtrace.io/tx/", + blockExplorerUrlAddr: "https://snowtrace.io/address/", + tnBlockExplorerUrlAddr: "https://testnet.snowtrace.io/address/", + constructor: web3HelperFactory, + currency: SupportedCurrency.AVAX, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.POLYGON, { + name: "Polygon", + nonce: 0x7, + chainId: 80001, + decimals: 1e18, + blockExplorerUrl: "https://polygonscan.com/tx/", + tnBlockExplorerUrl: "https://mumbai.polygonscan.com/tx/", + blockExplorerUrlAddr: "https://polygonscan.com/address/", + tnBlockExplorerUrlAddr: "https://mumbai.polygonscan.com/address/", + constructor: web3HelperFactory, + currency: SupportedCurrency.MATIC, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.FANTOM, { + name: "Fantom", + nonce: 0x8, + decimals: 1e18, + chainId: 4002, + blockExplorerUrl: "https://ftmscan.com/tx/", + blockExplorerUrlAddr: "https://ftmscan.com/address/", + tnBlockExplorerUrlAddr: "https://testnet.ftmscan.com/address/", + tnBlockExplorerUrl: "https://testnet.ftmscan.com/tx/", + constructor: web3HelperFactory, + currency: SupportedCurrency.FTM, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.TRON, { + name: "Tron", + nonce: 0x9, + decimals: 1e6, + blockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", + tnBlockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", + blockExplorerUrlAddr: "https://tronscan.io/#/address/", + tnBlockExplorerUrlAddr: "https://shasta.tronscan.org/#/address/", + constructor: tronHelperFactory, + currency: SupportedCurrency.TRX, + type: ChainType.TRON, +}); +CHAIN_INFO.set(Chain.CELO, { + name: "Celo", + nonce: 0xb, + decimals: 1e18, + chainId: 44787, + blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", + constructor: web3HelperFactory, + currency: SupportedCurrency.CELO, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.HARMONY, { + name: "Harmony", + nonce: 0xc, + decimals: 1e18, + chainId: 1666700000, + blockExplorerUrl: "https://explorer.harmony.one/tx/", + tnBlockExplorerUrl: "https://explorer.testnet.harmony.one/tx/", + blockExplorerUrlAddr: "https://explorer.harmony.one/address/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.harmony.one/address/", + constructor: web3HelperFactory, + currency: SupportedCurrency.ONE, + type: ChainType.EVM, + rejectUnfreeze: [ + "0xb90Dc9e354001e6260DE670EDD6aBaDb890C6aC9", + "0xAd6f94bDefB6D5ae941392Da5224ED083AE33adc", + ], +}); +CHAIN_INFO.set(Chain.ONT, { + name: "Ontology", + nonce: 0xd, + decimals: 1e18, + chainId: 1666700000, + blockExplorerUrl: "https://explorer.pops.one/tx", + constructor: web3HelperFactory, + currency: SupportedCurrency.ONT, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.XDAI, { + name: "xDai", + nonce: 0xe, + decimals: 1e18, + chainId: 0x64, + blockExplorerUrl: "https://blockscout.com/xdai/mainnet/tx/", + blockExplorerUrlAddr: "https://blockscout.com/xdai/mainnet/address/", + tnBlockExplorerUrl: "https://blockscout.com/xdai/testnet/tx/", + tnBlockExplorerUrlAddr: "https://blockscout.com/xdai/testnet/address/", + constructor: web3HelperFactory, + currency: SupportedCurrency.XDAI, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.ALGORAND, { + name: "Algorand", + nonce: 0xf, + decimals: 1e6, + chainId: undefined, + blockExplorerUrl: "https://algoexplorer.io/tx/", + tnBlockExplorerUrl: "https://testnet.algoexplorer.io/tx/", + blockExplorerUrlAddr: "https://algoexplorer.io/address/", + tnBlockExplorerUrlAddr: "https://testnet.algoexplorer.io/address/", + currency: SupportedCurrency.ALGO, + constructor: (p) => Promise.resolve(algorandHelper(p)), + type: ChainType.ALGORAND, +}); +CHAIN_INFO.set(Chain.FUSE, { + name: "FUSE", + nonce: 0x10, + decimals: 1e18, + chainId: undefined, + blockExplorerUrl: "https://explorer.fuse.io/tx/", + tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", + blockExplorerUrlAddr: "https://explorer.fuse.io/address/", + tnBlockExplorerUrlAddr: "https://explorer.fusespark.io/address/", + + currency: SupportedCurrency.FUSE, + constructor: web3HelperFactory, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.UNIQUE, { + name: "Unique", + nonce: 0x11, + decimals: 1e18, + chainId: 8888, + blockExplorerUrl: "CANT FIND", + constructor: web3HelperFactory, + currency: SupportedCurrency.OPL, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.TEZOS, { + name: "Tezos", + nonce: 0x12, + decimals: 1e6, + constructor: tezosHelperFactory, + currency: SupportedCurrency.XTZ, + blockExplorerUrl: "https://tzkt.io/", + tnBlockExplorerUrl: "https://ghostnet.tzkt.io/", + tnBlockExplorerUrlAddr: "https://ghostnet.tzkt.io/", + blockExplorerUrlAddr: "https://tzkt.io/", + type: ChainType.TEZOS, +}); +CHAIN_INFO.set(Chain.VELAS, { + name: "Velas", + blockExplorerUrl: "https://explorer.velas.com/tx/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.velas.com/address/", + blockExplorerUrlAddr: "https://explorer.velas.com/address/", + tnBlockExplorerUrl: "https://explorer.testnet.velas.com/tx/", + nonce: 0x13, + decimals: 1e18, + constructor: web3HelperFactory, + currency: SupportedCurrency.VLX, + chainId: 111, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.AURORA, { + name: "Aurora", + blockExplorerUrl: "https://aurorascan.dev/tx/", + tnBlockExplorerUrl: "hhttps://testnet.aurorascan.dev/tx/", + blockExplorerUrlAddr: "https://aurorascan.dev/address/", + tnBlockExplorerUrlAddr: "https://testnet.aurorascan.dev/address", + nonce: Chain.AURORA, + decimals: 1e18, + constructor: web3HelperFactory, + currency: SupportedCurrency.AURORA, + chainId: 1313161554, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.IOTEX, { + name: "IoTeX", + blockExplorerUrl: "https://iotexscan.io/tx/", + blockExplorerUrlAddr: "https://iotexscan.io/address/", + tnBlockExplorerUrl: "https://testnet.iotexscan.io/tx/", + tnBlockExplorerUrlAddr: "https://testnet.iotexscan.io/address/", + nonce: 0x14, + decimals: 1e18, + constructor: web3HelperFactory, + currency: SupportedCurrency.IOTX, + chainId: 4689, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.GODWOKEN, { + name: "GodWoken", + blockExplorerUrl: "https://gwscan.com/tx/", + tnBlockExplorerUrl: "https://v1.testnet.gwscan.com/tx/", + blockExplorerUrlAddr: "https://gwscan.com/account/", + tnBlockExplorerUrlAddr: "https://v1.testnet.gwscan.com/account/", + constructor: web3HelperFactory, + nonce: 0x16, + decimals: 1e18, + currency: SupportedCurrency.CKB, + chainId: 868455272153094, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.GATECHAIN, { + name: "GateChain", + + blockExplorerUrl: "https://gatescan.org/tx/", + tnBlockExplorerUrl: "https://gatescan.org/testnet/tx/", + blockExplorerUrlAddr: "https://gatescan.org/address/", + tnBlockExplorerUrlAddr: "https://gatescan.org/testnet/address/", + constructor: web3HelperFactory, + nonce: 0x17, + decimals: 1e18, + currency: SupportedCurrency.GT, + chainId: 85, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.VECHAIN, { + name: "VeChain", + tnBlockExplorerUrl: "https://explore-testnet.vechain.org/transactions/", + blockExplorerUrlAddr: "https://explore.vechain.org/accounts/", + blockExplorerUrl: "https://explore.vechain.org/transactions/", + tnBlockExplorerUrlAddr: "https://explore-testnet.vechain.org/accounts/", + constructor: web3HelperFactory, + nonce: 0x19, + currency: SupportedCurrency.VET, + decimals: 1e18, + chainId: 39, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.SECRET, { + name: "Secret", + //blockExplorerUrl: "", // TODO + constructor: secretHelperFactory, + nonce: Chain.SECRET, + currency: SupportedCurrency.SCRT, + decimals: 1e6, + type: ChainType.COSMOS, + blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", + blockExplorerUrlAddr: "https://atomscan.com/secret-network/accounts/", +}); +CHAIN_INFO.set(Chain.SOLANA, { + name: "Solana", + blockExplorerUrl: "https://solscan.io/tx/", + blockExplorerUrlAddr: "https://solscan.io/account/", + tnBlockExplorerUrl: (tx: string) => + `https://solscan.io/tx/${tx}?cluster=devnet`, + tnBlockExplorerUrlAddr: (address: string) => + `https://solscan.io/account/${address}?cluster=devnet`, + constructor: solanaHelper, + nonce: Chain.SOLANA, + currency: SupportedCurrency.SOL, + decimals: 1e9, + type: ChainType.SOLANA, +}); +/*CHAIN_INFO.set(Chain.TON, { + name: "TON", + blockExplorerUrl: "", // TODO + constructor: tonHelper, + nonce: Chain.TON, + currency: SupportedCurrency.TON, + decimals: 1e9, + type: ChainType.TON, +}); +CHAIN_INFO.set(Chain.DFINITY, { + name: "DFINITY", + blockExplorerUrl: "", // TODO + constructor: dfinityHelper, + nonce: Chain.DFINITY, + currency: SupportedCurrency.ICP, + decimals: 1e8, + type: ChainType.DFINITY, +});*/ + +CHAIN_INFO.set(Chain.HEDERA, { + blockExplorerUrl: "https://hashscan.io/#/mainnet/transaction/", + tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", + constructor: web3HelperFactory, + currency: SupportedCurrency.HBAR, + decimals: 1e6, + nonce: Chain.HEDERA, + name: "Hedera", + type: ChainType.HEDERA, + blockExplorerUrlAddr: "https://hashscan.io/#/mainnet/account/", + tnBlockExplorerUrlAddr: "https://hashscan.io/#/testnet/account/", +}); + +CHAIN_INFO.set(Chain.SKALE, { + name: "Skale", + //needs additional query params + blockExplorerUrl: + "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/tx/", + tnBlockExplorerUrl: + "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", + blockExplorerUrlAddr: + "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/address/", + tnBlockExplorerUrlAddr: + "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", + constructor: web3ERC20HelperFactory, + currency: SupportedCurrency.SKL, + decimals: 1e18, + chainId: 1564830818, + nonce: Chain.SKALE, + type: ChainType.EVM, +}); + +CHAIN_INFO.set(Chain.DFINITY, { + blockExplorerUrl: "", // TODO + constructor: dfinityHelper, + currency: SupportedCurrency.ICP, + decimals: 1e8, + name: "DFINITY", + nonce: Chain.DFINITY, + type: ChainType.DFINITY, +}); + +CHAIN_INFO.set(Chain.NEAR, { + blockExplorerUrl: "https://explorer.mainnet.near.org/transactions/", + tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", + constructor: nearHelperFactory, + currency: SupportedCurrency.NEAR, + decimals: 1e24, + name: "NEAR", + nonce: Chain.NEAR, + type: ChainType.NEAR, + blockExplorerUrlAddr: "https://explorer.mainnet.near.org/accounts/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.near.org/accounts/", +}); + +CHAIN_INFO.set(Chain.MOONBEAM, { + constructor: web3HelperFactory, + currency: SupportedCurrency.GLMR, + decimals: 1e18, + name: "MoonBeam", + nonce: Chain.MOONBEAM, + chainId: 0x507, + type: ChainType.EVM, + blockExplorerUrlAddr: "https://moonbeam.moonscan.io/address/", + tnBlockExplorerUrlAddr: "https://moonbase.moonscan.io/address/", + blockExplorerUrl: "https://moonscan.io/tx/", + tnBlockExplorerUrl: "https://moonbase.moonscan.io/tx/", +}); + +CHAIN_INFO.set(Chain.ABEYCHAIN, { + tnBlockExplorerUrl: "https://testnet-explorer.abeychain.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.abeychain.com/address/", + blockExplorerUrl: "https://scan.abeychain.com/tx/", + blockExplorerUrlAddr: "https://scan.abeychain.com/address/", + constructor: web3HelperFactory, + currency: SupportedCurrency.ABEY, + decimals: 1e18, + name: "AbeyChain", + nonce: Chain.ABEYCHAIN, + chainId: 178, + type: ChainType.EVM, +}); +CHAIN_INFO.set(Chain.APTOS, { + constructor: aptosHelper, + currency: SupportedCurrency.APTOS, + decimals: 1e6, + name: "Aptos", + nonce: Chain.APTOS, + type: ChainType.APTOS, + //needs additional query params + blockExplorerUrl: "https://explorer.aptoslabs.com/txn/", + blockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", + tnBlockExplorerUrl: "https://explorer.aptoslabs.com/txn/", + tnBlockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", +}); +CHAIN_INFO.set(Chain.TON, { + name: "TON", + constructor: tonHelper, + currency: SupportedCurrency.TON, + decimals: 1e9, + nonce: Chain.TON, + type: ChainType.TON, + tnBlockExplorerUrl: "https://testnet.tonscan.org/tx/", + blockExplorerUrl: "https://tonscan.org/tx/", + blockExplorerUrlAddr: "https://tonscan.org/address/", + tnBlockExplorerUrlAddr: "https://testnet.tonscan.org/address/", +}); +CHAIN_INFO.set(Chain.CADUCEUS, { + constructor: web3HelperFactory, + currency: SupportedCurrency.CMP, + decimals: 1e18, + name: "Caduceus", + nonce: Chain.CADUCEUS, + blockExplorerUrl: "https://mainnet.scan.caduceus.foundation/tx/", + tnBlockExplorerUrl: "https://galaxy.scan.caduceus.foundation/tx/", + blockExplorerUrlAddr: "https://mainnet.scan.caduceus.foundation/address/", + tnBlockExplorerUrlAddr: "https://galaxy.scan.caduceus.foundation/address/", + type: ChainType.EVM, + chainId: 256256, + tnChainId: 512512, +}); diff --git a/dist/emitter.d.ts b/dist/emitter.d.ts new file mode 100644 index 000000000..a0ebebdb7 --- /dev/null +++ b/dist/emitter.d.ts @@ -0,0 +1,2 @@ +export declare const Emitter: EventTarget | undefined; +//# sourceMappingURL=emitter.d.ts.map diff --git a/dist/emitter.d.ts.map b/dist/emitter.d.ts.map new file mode 100644 index 000000000..c05eaa4b0 --- /dev/null +++ b/dist/emitter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,yBAC2C,CAAC"} \ No newline at end of file diff --git a/dist/emitter.js b/dist/emitter.js new file mode 100644 index 000000000..286e80f6b --- /dev/null +++ b/dist/emitter.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Emitter = void 0; +exports.Emitter = typeof window !== "undefined" ? new EventTarget() : undefined; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsT0FBTyxHQUNsQixPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyJ9 diff --git a/dist/emitter.ts b/dist/emitter.ts new file mode 100644 index 000000000..908802616 --- /dev/null +++ b/dist/emitter.ts @@ -0,0 +1,2 @@ +export const Emitter = + typeof window !== "undefined" ? new EventTarget() : undefined; diff --git a/dist/factory/cons.d.ts b/dist/factory/cons.d.ts new file mode 100644 index 000000000..b0d1c789a --- /dev/null +++ b/dist/factory/cons.d.ts @@ -0,0 +1,20 @@ +import { BatchExchangeRateRepo, ExchangeRateRepo } from "crypto-exchange-rate"; +import { NftInfo, FullChain } from ".."; +export declare const _headers: { + "Content-Type": string; + Accept: string; +}; +export declare function exchangeRateRepo( + baseUrl: string +): ExchangeRateRepo & BatchExchangeRateRepo; +export declare function checkBlockedContracts(to: any, contract: string): void; +export declare function getDefaultContract( + nft: NftInfo, + fromChain: FullChain, + toChain: FullChain +): string | undefined; +export declare function prepareTokenId( + tokenId: string | undefined, + from: number +): string | undefined; +//# sourceMappingURL=cons.d.ts.map diff --git a/dist/factory/cons.d.ts.map b/dist/factory/cons.d.ts.map new file mode 100644 index 000000000..ea425a0a0 --- /dev/null +++ b/dist/factory/cons.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"cons.d.ts","sourceRoot":"","sources":["../../src/factory/cons.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIxC,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,qBAAqB,CAS1C;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAO9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAChE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GACzC,MAAM,GAAG,SAAS,CAsDpB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,sBAkBvE"} \ No newline at end of file diff --git a/dist/factory/cons.js b/dist/factory/cons.js new file mode 100644 index 000000000..12254b62f --- /dev/null +++ b/dist/factory/cons.js @@ -0,0 +1,103 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.prepareTokenId = + exports.getDefaultContract = + exports.checkBlockedContracts = + exports.exchangeRateRepo = + exports._headers = + void 0; +const crypto_exchange_rate_1 = require("crypto-exchange-rate"); +const consts_1 = require("../consts"); +exports._headers = { + "Content-Type": "application/json", + Accept: "*/*", +}; +function exchangeRateRepo(baseUrl) { + const baseService = + crypto_exchange_rate_1.NetworkModel.batchExchangeRateService(baseUrl); + return (0, crypto_exchange_rate_1.cachedExchangeRateRepo)( + (0, crypto_exchange_rate_1.networkBatchExchangeRateRepo)( + baseService, + crypto_exchange_rate_1.NetworkModel.exchangeRateDtoMapper() + ) + ); +} +exports.exchangeRateRepo = exchangeRateRepo; +function checkBlockedContracts(to, contract) { + const chain = consts_1.CHAIN_INFO.get(to); + if (chain?.rejectUnfreeze && chain?.rejectUnfreeze.includes(contract)) { + throw new Error( + `Transfering to ${chain.name} is prohibited by the NFT project team` + ); + } +} +exports.checkBlockedContracts = checkBlockedContracts; +function getDefaultContract(nft, fromChain, toChain) { + const defaultMintError = new Error( + `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` + ); + const from = fromChain.getNonce(); + const to = toChain.getNonce(); + const fromType = consts_1.CHAIN_INFO.get(from)?.type; + const toType = consts_1.CHAIN_INFO.get(to)?.type; + const contract = + //@ts-ignore contractType is checked + "contractType" in nft.native && + //@ts-ignore contractType is checked + nft.native.contractType === "ERC1155" && + toChain.XpNft1155 + ? toChain.XpNft1155 + : toChain.XpNft; + if ( + typeof window !== "undefined" && + (/(allowDefaultMint=true)/.test(window.location.search) || + /testnet/.test(window.location.pathname)) + ) { + return contract; + } + if ( + (from === consts_1.Chain.VECHAIN && toType === consts_1.ChainType.EVM) || + (to === consts_1.Chain.VECHAIN && fromType === consts_1.ChainType.EVM) + ) { + throw defaultMintError; + } + if ( + (fromType === consts_1.ChainType.EVM && + toType === consts_1.ChainType.ELROND) || + (fromType === consts_1.ChainType.ELROND && + toType === consts_1.ChainType.EVM) + ) { + throw defaultMintError; + } + if ( + (fromType === consts_1.ChainType.EVM && + toType === consts_1.ChainType.TEZOS) || + (fromType === consts_1.ChainType.TEZOS && toType === consts_1.ChainType.EVM) + ) { + throw defaultMintError; + } + if (fromType === consts_1.ChainType.TRON) { + throw defaultMintError; + } + return contract; +} +exports.getDefaultContract = getDefaultContract; +function prepareTokenId(tokenId, from) { + if (tokenId) { + const notNumber = isNaN(Number(tokenId)); + if (notNumber) { + if (from === consts_1.Chain.ELROND) { + const hex = tokenId.split("-")?.at(2); + return String(hex ? parseInt(hex, 16) : ""); + } + if (from === consts_1.Chain.TON) { + return "1"; + } + } else { + return tokenId; + } + } + return undefined; +} +exports.prepareTokenId = prepareTokenId; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3J5L2NvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBTThCO0FBSTlCLHNDQUF5RDtBQUU1QyxRQUFBLFFBQVEsR0FBRztJQUN0QixjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLFNBQWdCLGdCQUFnQixDQUM5QixPQUFlO0lBRWYsTUFBTSxXQUFXLEdBQUcsbUNBQVksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRSxPQUFPLElBQUEsNkNBQXNCLEVBQzNCLElBQUEsbURBQTRCLEVBQzFCLFdBQVcsRUFDWCxtQ0FBWSxDQUFDLHFCQUFxQixFQUFFLENBQ3JDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFYRCw0Q0FXQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLEVBQU8sRUFBRSxRQUFnQjtJQUM3RCxNQUFNLEtBQUssR0FBRyxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxJQUFJLEtBQUssRUFBRSxjQUFjLElBQUksS0FBSyxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDckUsTUFBTSxJQUFJLEtBQUssQ0FDYixrQkFBa0IsS0FBSyxDQUFDLElBQUksd0NBQXdDLENBQ3JFLENBQUM7S0FDSDtBQUNILENBQUM7QUFQRCxzREFPQztBQUVELFNBQWdCLGtCQUFrQixDQUNoQyxHQUFxQixFQUNyQixTQUE0QyxFQUM1QyxPQUEwQztJQUUxQyxNQUFNLGdCQUFnQixHQUFHLElBQUksS0FBSyxDQUNoQyx5R0FBeUcsQ0FDMUcsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFOUIsTUFBTSxRQUFRLEdB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 diff --git a/dist/factory/cons.ts b/dist/factory/cons.ts new file mode 100644 index 000000000..fb1f138a6 --- /dev/null +++ b/dist/factory/cons.ts @@ -0,0 +1,118 @@ +import { + BatchExchangeRateRepo, + cachedExchangeRateRepo, + ExchangeRateRepo, + networkBatchExchangeRateRepo, + NetworkModel, +} from "crypto-exchange-rate"; + +import { NftInfo, FullChain } from ".."; + +import { CHAIN_INFO, ChainType, Chain } from "../consts"; + +export const _headers = { + "Content-Type": "application/json", + Accept: "*/*", +}; + +export function exchangeRateRepo( + baseUrl: string +): ExchangeRateRepo & BatchExchangeRateRepo { + const baseService = NetworkModel.batchExchangeRateService(baseUrl); + + return cachedExchangeRateRepo( + networkBatchExchangeRateRepo( + baseService, + NetworkModel.exchangeRateDtoMapper() + ) + ); +} + +export function checkBlockedContracts(to: any, contract: string) { + const chain = CHAIN_INFO.get(to); + if (chain?.rejectUnfreeze && chain?.rejectUnfreeze.includes(contract)) { + throw new Error( + `Transfering to ${chain.name} is prohibited by the NFT project team` + ); + } +} + +export function getDefaultContract( + nft: NftInfo, + fromChain: FullChain, + toChain: FullChain +): string | undefined { + const defaultMintError = new Error( + `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` + ); + + const from = fromChain.getNonce(); + const to = toChain.getNonce(); + + const fromType = CHAIN_INFO.get(from)?.type; + const toType = CHAIN_INFO.get(to)?.type; + + const contract = + //@ts-ignore contractType is checked + "contractType" in nft.native && + //@ts-ignore contractType is checked + nft.native.contractType === "ERC1155" && + toChain.XpNft1155 + ? toChain.XpNft1155 + : toChain.XpNft; + + if ( + typeof window !== "undefined" && + (/(allowDefaultMint=true)/.test(window.location.search) || + /testnet/.test(window.location.pathname)) + ) { + return contract; + } + + if ( + (from === Chain.VECHAIN && toType === ChainType.EVM) || + (to === Chain.VECHAIN && fromType === ChainType.EVM) + ) { + throw defaultMintError; + } + + if ( + (fromType === ChainType.EVM && toType === ChainType.ELROND) || + (fromType === ChainType.ELROND && toType === ChainType.EVM) + ) { + throw defaultMintError; + } + + if ( + (fromType === ChainType.EVM && toType === ChainType.TEZOS) || + (fromType === ChainType.TEZOS && toType === ChainType.EVM) + ) { + throw defaultMintError; + } + + if (fromType === ChainType.TRON) { + throw defaultMintError; + } + + return contract; +} + +export function prepareTokenId(tokenId: string | undefined, from: number) { + if (tokenId) { + const notNumber = isNaN(Number(tokenId)); + + if (notNumber) { + if (from === Chain.ELROND) { + const hex = tokenId.split("-")?.at(2); + return String(hex ? parseInt(hex, 16) : ""); + } + + if (from === Chain.TON) { + return "1"; + } + } else { + return tokenId; + } + } + return undefined; +} diff --git a/dist/factory/factories.d.ts b/dist/factory/factories.d.ts new file mode 100644 index 000000000..dc49c8ce0 --- /dev/null +++ b/dist/factory/factories.d.ts @@ -0,0 +1,7 @@ +import { ChainParams } from "."; +export declare namespace ChainFactoryConfigs { + const TestNet: () => Promise>; + const Staging: () => Promise>; + const MainNet: () => Promise>; +} +//# sourceMappingURL=factories.d.ts.map diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map new file mode 100644 index 000000000..9e069ba76 --- /dev/null +++ b/dist/factory/factories.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAwWvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAiKvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAiVvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js new file mode 100644 index 000000000..ba2291bb9 --- /dev/null +++ b/dist/factory/factories.js @@ -0,0 +1,1052 @@ +"use strict"; +var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if ( + !desc || + ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k]; + }, + }; + } + Object.defineProperty(o, k2, desc); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); +var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } + : function (o, v) { + o["default"] = v; + }); +var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ChainFactoryConfigs = void 0; +//@ts-ignore +const tronweb_1 = __importDefault(require("tronweb")); +const consts_1 = require("../consts"); +const ethers_1 = require("ethers"); +const taquito_1 = require("@taquito/taquito"); +const notifier_1 = require("../notifier"); +const connex_driver_1 = require("@vechain/connex-driver"); +const thor = __importStar(require("web3-providers-connex")); +const connex_framework_1 = require("@vechain/connex-framework"); +const hethers_1 = require("@hashgraph/hethers"); +const agent_1 = require("@dfinity/agent"); +const principal_1 = require("@dfinity/principal"); +const tonweb_1 = __importDefault(require("tonweb")); +/*const EVM_VALIDATORS = [ + "0xffa74a26bf87a32992bb4be080467bb4a8019e00", + "0x837b2eb764860b442c971f98f505e7c5f419edd7", + "0x9671ce5a02eb53cf0f2cbd220b34e50c39c0bf23", + "0x90e79cc7a06dbd227569920a8c4a625f630d77f4", + "0xdc80905cafeda39cb19a566baeef52472848e82f", + "0x77745cd585798e55938940e3d4dd0fd7cde7bdd6", + "0xc2a29b4e9fa71e9033a52611544403241c56ac5e", +];*/ +// const _EVM_TESTNET_VALIDATORS = [ +// "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", +// "0xae87208a5204B6606d3AB177Be5fdf62267Cd499", +// "0x5002258315873AdCbdEF25a8E71C715A4f701dF5", +// ]; +const middleware_uri = "https://notifier.xp.network"; +const testnet_middleware_uri = + "https://testnet-notifier.xp.network/notify-test/"; +var ChainFactoryConfigs; +(function (ChainFactoryConfigs) { + ChainFactoryConfigs.TestNet = async () => { + const feeMargin = { min: 1, max: 5 }; + const notifier = (0, notifier_1.evNotifier)(testnet_middleware_uri); + // VeChain related: + const net = new connex_driver_1.SimpleNet(consts_1.TestNetRpcUri.VECHAIN); + const driver = await connex_driver_1.Driver.connect(net); + const provider = thor.ethers.modifyProvider( + new ethers_1.ethers.providers.Web3Provider( + new thor.ConnexProvider({ + connex: new connex_framework_1.Framework(driver), + }) + ) + ); + return { + elrondParams: { + node_uri: consts_1.TestNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgqy2nx5z4cpr90de4sga2v2yx62fph3lg8g6vskt0k2f", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqc854pa9ruzgs5f8rdzzc02xgq8kqku3ng6vs59vmf8", + esdt_nft: "XPNFT-af3fde", + esdt_swap: "WEGLD-708f9b", + notifier, + nonce: 2, + feeMargin, + }, + tonParams: { + tonweb: new tonweb_1.default( + new tonweb_1.default.HttpProvider(consts_1.TestNetRpcUri.TON, { + apiKey: + "abe8c1222f19b0891a9a35889d112dc88562093467db8dda39961eeacd50f9b1", + }) + ), + bridgeAddr: "kQBwUu-b4O6qDYq3iDRvsYUnTD6l3WCxLXkv0aH6ywAaPs3c", + burnerAddr: "kQCbH9gGgqJzXuusUVajW_40brrl2fxTYqMkk6HUhJnIgOQA", + xpnftAddr: "EQDji0YH-SNT-qi6o5dQQBLeWL0Xmm46fnqj34EYhOL34WDc", + feeMargin, + notifier, + }, + solanaParams: { + xpnftAddr: "C7bw5dJZwhjWd6TZE3LnE2b1RLqWDiy9XRMA1rajPKQY", + bridgeContractAddr: "FXaXLtmkuoJCJeX6BnLwQJWgT8cPdwuXN8BmmQzVvuRA", + endpoint: consts_1.TestNetRpcUri.SOLANA, + notifier, + feeMargin, + }, + vechainParams: { + notifier, + feeMargin, + nonce: consts_1.Chain.VECHAIN, + provider, + minter_addr: "0xd9145CCE52D386f254917e481eB44e9943F39138", + erc721_addr: "0xD7ACd2a9FD159E69Bb102A1ca21C9a3e3A5F771B", + erc1155_addr: "0xf8e81D47203A594245E36C48e151709F0C19fBe8", + erc721Minter: "0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47", + erc1155Minter: "0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8", + }, + tronParams: { + provider: new tronweb_1.default({ + fullHost: consts_1.TestNetRpcUri.TRON, + }), + notifier, + minter_addr: "TY46GA3GGdMtu9GMaaSPPSQtqq9CZAv5sK", + erc721_addr: "TDhb2kyurMwoc1eMndKzqNebji1ap1DJC4", + erc1155_addr: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", + erc1155Minter: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", + erc721Minter: "TMVDt5PP53eQro5hLafibv2xWzSSDSMyjy", + validators: [ + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + ], + nonce: consts_1.Chain.TRON, + feeMargin, + }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.CADUCEUS + ), + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + nonce: consts_1.Chain.CADUCEUS, + }, + avalancheParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.AVALANCHE + ), + minter_addr: "0xDdF1f6B8Ae8cd26dBE7C4C3ed9ac8E6D8B3a4FdC", + erc721_addr: "0xE1D8Df2e06797F22e7ce25c95A7ddccb926f8A1E", + erc1155Minter: "0xfA9214AEe59a6631A400DC039808457524dE70A2", + erc721Minter: "0x54Db938575DD089702822F191AEbB25C2Af7D1Ef", + erc1155_addr: "0xfA9214AEe59a6631A400DC039808457524dE70A2", + nonce: consts_1.Chain.AVALANCHE, + feeMargin, + }, + polygonParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.POLYGON + ), + minter_addr: "0x224f78681099D66ceEdf4E52ee62E5a98CCB4b9e", + erc721_addr: "0xb678b13E41a47e46A4046a4D8315b32E0F34389c", + erc1155Minter: "0x5A768f8dDC67ccCA1431879BcA28E93a6c7722bb", + erc1155_addr: "0xc1D778Ce89154357471bA6c4C6E51f0e590FFe57", + erc721Minter: "0x6516E2D3387A9CF4E5e868E7842D110c95A9f3B4", + nonce: consts_1.Chain.POLYGON, + feeMargin, + }, + dfinityParams: { + agent: new agent_1.HttpAgent({ + host: "https://ic0.app", + }), + bridgeContract: principal_1.Principal.fromText( + "e3io4-qaaaa-aaaak-qasua-cai" + ), + xpnftId: principal_1.Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), + umt: principal_1.Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), + notifier, + feeMargin, + }, + moonbeamParams: { + nonce: consts_1.Chain.MOONBEAM, + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.MOONBEAM + ), + erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", + erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + erc1155_addr: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", + erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + }, + aptosParams: { + rpcUrl: consts_1.TestNetRpcUri.APTOS, + bridge: + "0x467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18", + xpnft: "XPNFT", + notifier, + feeMargin, + nonce: consts_1.Chain.APTOS, + network: "testnet", + }, + abeyChainParams: { + nonce: consts_1.Chain.ABEYCHAIN, + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.ABEYCHAIN + ), + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + }, + fantomParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.FANTOM + ), + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", + erc1155Minter: "string", + erc1155_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc721Minter: "string", + nonce: consts_1.Chain.FANTOM, + feeMargin, + }, + bscParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.BSC + ), + minter_addr: "0x3Dd26fFf61D2a79f5fB77100d6daDBF073F334E6", + erc721_addr: "0x783eF7485DCF27a3Cf59F5A0A406eEe3f9b2AaeB", + erc1155Minter: "0x5dA3b7431f4581a7d35aEc2f3429174DC0f2A2E1", + erc721Minter: "0x97CD6fD6cbFfaa24f5c858843955C2601cc7F2b9", + erc1155_addr: "0xb5278A4808e2345A3B9d08bAc8909A121aFaEBB3", + nonce: consts_1.Chain.BSC, + feeMargin, + }, + celoParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.CELO + ), + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", + erc1155_addr: "", + erc1155Minter: "string", + erc721Minter: "string", + nonce: consts_1.Chain.CELO, + feeMargin, + }, + harmonyParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.HARMONY + ), + minter_addr: "0x198Cae9EE853e7b44E99c0b35Bddb451F83485d5", + erc721_addr: "0x1280c5c11bF0aAaaEAeBc998893B42e08B26fD5A", + erc1155Minter: "0xB546c2358A6e4b0B83192cCBB83CaE37FA572fe1", + erc721Minter: "0xb036640d6f7cAfd338103dc60493250561Af2eBc", + erc1155_addr: "0x44FCF0001A2B03260e4Bba44AF93a60C64cE79A2", + nonce: consts_1.Chain.HARMONY, + feeMargin, + }, + ropstenParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.ROPSTEN + ), + erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + erc721_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", + erc1155Minter: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", + erc721Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + minter_addr: "0x04a5f9158829Cae5a0a549954AdEaBD47BbB3d2d", + nonce: consts_1.Chain.ETHEREUM, + feeMargin, + }, + xDaiParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.XDAI + ), + minter_addr: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + erc721_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + erc1155_addr: "0x1C6d7aa611B30C9C1e5f52068E145b77b0e661b2", + nonce: consts_1.Chain.XDAI, + feeMargin, + }, + algorandParams: { + algodApiKey: + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + indexerUri: "https://algoindexer.testnet.algoexplorerapi.io", + algodUri: "https://node.testnet.algoexplorerapi.io", + nonce: consts_1.Chain.ALGORAND, + sendNftAppId: 83148194, + algodPort: 443, + notifier, + feeMargin, + }, + auroraParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.AURORA + ), + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + nonce: consts_1.Chain.AURORA, + feeMargin, + }, + uniqueParams: { + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.UNIQUE + ), + nonce: consts_1.Chain.UNIQUE, + erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc1155_addr: "", + minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155Minter: "string", + erc721Minter: "string", + notifier, + feeMargin, + }, + tezosParams: { + bridgeAddress: "KT1KbL9kWPM8GkMr5M38vF1eHdsNxTc4WkyQ", + notifier, + Tezos: new taquito_1.TezosToolkit(consts_1.TestNetRpcUri.TEZOS), + xpnftAddress: "KT1WR4fe9wFGPgNViK5feigMGyXKG9gCX8n4", + validators: [ + "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", + "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", + "tz1exbY3JKPRpo2KLegK8iqoVNRLn1zFrnZi", + ], + feeMargin, + }, + velasParams: { + notifier, + erc721_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc1155_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", + minter_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", + erc1155Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", + erc721Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", + nonce: consts_1.Chain.VELAS, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.VELAS + ), + feeMargin, + }, + iotexParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.IOTEX + ), + minter_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc721_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", + erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + erc1155Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", + erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", + nonce: consts_1.Chain.IOTEX, + feeMargin, + }, + hederaParams: { + notifier, + provider: hethers_1.hethers.getDefaultProvider("testnet"), + feeMargin, + nonce: consts_1.Chain.HEDERA, + erc721_addr: "0x0000000000000000000000000000000002e88e04", + erc1155_addr: "0x0000000000000000000000000000000002e88e04", + minter_addr: "0x0000000000000000000000000000000002e86d67", + erc721Minter: "0x0000000000000000000000000000000002da3c1d", + erc1155Minter: "0x0000000000000000000000000000000002da3c20", + }, + skaleParams: { + nonce: consts_1.Chain.SKALE, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.SKALE + ), + feeMargin, + erc1155_addr: "0x34c34E0808dC25c43cD41Cdba5049F7C370b7093", + erc1155Minter: "0x19F5cb72DBEdBAd6622FcC4244E238F207d7Bcb6", + erc721Minter: "0x79CcaA9FF641e848437C1855fd6c217Dc2204B09", + erc721_addr: "0x753993a3220eB7EFb837c26b14F3EFffF271F886", + minter_addr: "0xF50d791fb0427442287AA574bacADBf5C964f38c", + paymentTokenAddress: "0x3F3894e65B9EcAAa1F099ECb82e9Cca3a0e86E9E", + }, + godwokenParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.GODWOKEN + ), + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + nonce: consts_1.Chain.GODWOKEN, + feeMargin, + }, + gateChainParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.GATECHAIN + ), + minter_addr: "0x2B24de7BFf5d2ab01b1C53682Ee5987c9BCf1BAc", + erc721_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc1155_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc721Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155Minter: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + nonce: consts_1.Chain.GATECHAIN, + feeMargin, + }, + secretParams: { + notifier, + rpcUrl: consts_1.TestNetRpcUri.SECRET, + bridge: { + contractAddress: "secret1ecsxtsrct6h647lpztnnzc9e47ezh0uu673c8h", + codeHash: + "29a127369d1f4326fb684435fde702fa9619c812dfb5b3a1929529bab0e308e0", + }, + xpnft: { + contractAddress: "secret1x4afa2shvq4uwwtl0ld8qnjfm3jkmyvap3yn9g", + codeHash: + "090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", + }, + umt: { + contractAddress: "secret146snljq0kjsva7qrx4am54nv3fhfaet7srx4n2", + codeHash: + "af076a49141264ec048270318f1358c9be193893c3f829425cab53ee5eb05e5c", + }, + chainId: "24", + feeMargin, + }, + nearParams: { + networkId: "testnet", + nonce: consts_1.Chain.NEAR, + rpcUrl: consts_1.TestNetRpcUri.NEAR, + bridge: "xp_bridge_1.testnet", + xpnft: "xp_nft_1.testnet", + walletUrl: "https://wallet.testnet.near.org", + helperUrl: "https://helper.testnet.near.org", + feeMargin, + notifier, + }, + }; + }; + ChainFactoryConfigs.Staging = async () => { + const feeMargin = { min: 1, max: 5 }; + const notifier = (0, notifier_1.evNotifier)( + "https://bridge1.xp.network/notifier" + ); + return { + tonParams: { + bridgeAddr: "kQD3Fic8toRl0SIMswto8wmy5H41CDZUGAIyIK95Al5BBUiX", + burnerAddr: "kQBCnW4TO466p7YzKGZebnsylUSHTyxTKuwMDXo5JEQbIEOF", + notifier, + tonweb: new tonweb_1.default( + new tonweb_1.default.HttpProvider( + "https://toncenter.com/api/v2/jsonRPC", + { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + } + ) + ), + xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", + feeMargin, + }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.CADUCEUS + ), + erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", + erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", + erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", + minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + nonce: consts_1.Chain.CADUCEUS, + }, + algorandParams: { + algodApiKey: + "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodUri: "https://algorand-node.xp.network/", + indexerUri: "https://algoindexer.algoexplorerapi.io", + nonce: consts_1.Chain.ALGORAND, + sendNftAppId: 942656248, + algodPort: 443, + notifier, + feeMargin, + }, + elrondParams: { + node_uri: consts_1.MainNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgqacac9ux4uz0pjg8ck2sf0ugxre0feczzvcas2tsatn", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqjlnfddgj2dl4kz3x4n55yhfv7v06mxhzvcas2ec5ps", + esdt_nft: "XPNFT-976581", + esdt_swap: "WEGLD-8c393e", + notifier, + nonce: consts_1.Chain.ELROND, + feeMargin, + }, + harmonyParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.HARMONY + ), + minter_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", + erc721_addr: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", + erc1155_addr: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", + erc1155Minter: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + erc721Minter: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + nonce: consts_1.Chain.HARMONY, + feeMargin, + }, + velasParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.VELAS + ), + erc721Minter: "0x4d739e4953CE42f71604cbE142FD293841F9ed1c", + erc1155Minter: "0xeEc7955F2F7AA4E36B582D8f022c9417ecB75a44", + erc721_addr: "0x19678D8f9601AD0F099D401A3f82e4d6745B0e56", + erc1155_addr: "0x4a153028F0b40C41432127E050015963D130b01A", + minter_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", + nonce: consts_1.Chain.VELAS, + feeMargin, + }, + bscParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.BSC + ), + erc721Minter: "0x83feaeA88b1377970E7cD11492d084B63e09C87E", + erc1155_addr: "0x1B20ceec70e9635f5B56928de16A9dBc8EB8e3b6", + erc1155Minter: "0x5Af6A4C6E261315C5B7811bEb9c620CfF4722793", + erc721_addr: "0x9796B2F03e3afF786048cd67a1D33282476AB1d4", + minter_addr: "0x7Eac6825A851d79ae24301eA497AD8db2a0F4976", + nonce: consts_1.Chain.BSC, + feeMargin, + }, + secretParams: { + bridge: { + contractAddress: "secret1t0g8tvc0tyvpwdsdc5zepa9j2ptr3vfte26qhu", + codeHash: + "684afe616d92b29c097c5f00365d07c005e99c90ff1227507a0284b601a2cc5e", + }, + xpnft: { + contractAddress: "secret1ggvqzks96k7hawhdx3harrtnffhttrrq2qxmdg", + codeHash: + "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", + }, + notifier, + rpcUrl: consts_1.MainNetRpcUri.SECRET, + umt: { + contractAddress: "", + codeHash: "", + }, + chainId: "24", + feeMargin, + }, + abeyChainParams: { + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.ABEYCHAIN + ), + erc1155_addr: "0x8776073043eef8929F4a9cBa8Aacc6B59A21BA52", + erc1155Minter: "0x5Ed657a379e06CBAc1Ba1a9cF6D28e71c66B0c83", + erc721_addr: "0x3C8C51809Ee58E9D3BA37e37112843e41DcBD7B7", + erc721Minter: "0xD580913Ef2c8CA4Ca90D4bE6851ACa004cf586D8", + minter_addr: "0x14db0f56042Fa87F3b3921E871f87248f4C56A71", + nonce: consts_1.Chain.ABEYCHAIN, + }, + moonbeamParams: { + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.MOONBEAM + ), + erc1155_addr: "0x554560C6800f123B4A713F80A5AC9F21486F5De8", + erc721_addr: "0x6f64e03fcc34b774b3b82825a91aABA336Fbf931", + erc1155Minter: "0xA97FD39705583296221f39cb245fb573B28722A1", + erc721Minter: "0x0e5C62beAD14795F3eA9969B139F5433DF85319e", + minter_addr: "0xce50496C6616F4688d5775966E302A49e3876Dff", + nonce: consts_1.Chain.MOONBEAM, + }, + polygonParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.POLYGON + ), + erc721Minter: "0x32732607F67f9FC2007AF84e54B2ea9042327ed3", + erc1155Minter: "0x62E26979F555Ec475981D8D1A7e269f747643f22", + erc721_addr: "0x54024A9351B7aD68921914942f776489E71c467e", + erc1155_addr: "0x8D3e050555356a2eD4ad8cfFb189994035F5803C", + minter_addr: "0xF712f9De44425d8845A1d597a247Fe88F4A23b6f", + nonce: consts_1.Chain.POLYGON, + feeMargin, + }, + skaleParams: { + notifier, + feeMargin, + nonce: consts_1.Chain.SKALE, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.SKALE + ), + erc721Minter: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + erc1155Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + erc1155_addr: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", + erc721_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + minter_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", + paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token + }, + aptosParams: { + rpcUrl: consts_1.MainNetRpcUri.APTOS, + bridge: + "0x813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37", + xpnft: "XPNFT", + notifier, + feeMargin, + nonce: consts_1.Chain.APTOS, + network: "staging", + }, + }; + }; + ChainFactoryConfigs.MainNet = async () => { + const feeMargin = { min: 1, max: 5 }; + const notifier = (0, notifier_1.evNotifier)(middleware_uri); + // VeChain related: + const net = new connex_driver_1.SimpleNet(consts_1.MainNetRpcUri.VECHAIN); + const driver = await connex_driver_1.Driver.connect(net); + const provider = thor.ethers.modifyProvider( + new ethers_1.ethers.providers.Web3Provider( + new thor.ConnexProvider({ + connex: new connex_framework_1.Framework(driver), + }) + ) + ); + return { + tonParams: { + bridgeAddr: "kQAhH1me417YvScu9Rn8BXjsW_9HcalciG5LmCDT04HMJt6L", + burnerAddr: "kQDuSGRY8g6TCLC4QhlhqgLr4G_nNXTGHoXy38Mwxx-r1aGY", + notifier, + tonweb: new tonweb_1.default( + new tonweb_1.default.HttpProvider( + "https://toncenter.com/api/v2/jsonRPC", + { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + } + ) + ), + xpnftAddr: "EQABqbZubs5e3QQF3lxVZMvdaxlaIdNQWq8W1rn8rvVvWHys", + feeMargin, + }, + elrondParams: { + node_uri: consts_1.MainNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", + esdt_nft: "XPNFT-cb7482", + esdt_swap: "WEGLD-5f1f8d", + notifier, + nonce: consts_1.Chain.ELROND, + feeMargin, + }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.CADUCEUS + ), + erc1155_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", + erc721_addr: "0x3410b0e0b1aBAe452b3F031AdE8dab347f5Fb60b", + erc1155Minter: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", + erc721Minter: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", + minter_addr: "0xd3f55Dd3da582E8E55AcE14e28352a95334E8feb", + nonce: consts_1.Chain.CADUCEUS, + }, + dfinityParams: { + agent: new agent_1.HttpAgent({ + host: "https://ic0.app", + }), + bridgeContract: principal_1.Principal.fromText( + "e3io4-qaaaa-aaaak-qasua-cai" + ), + xpnftId: principal_1.Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), + umt: principal_1.Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), + notifier, + feeMargin, + }, + vechainParams: { + notifier, + feeMargin, + nonce: consts_1.Chain.VECHAIN, + provider, + minter_addr: "0xE860cef926E5e76E0E88fdc762417a582F849C27", + erc721_addr: "0xf0E778BD5C4c2F219A2A5699e3AfD2D82D50E271", + erc1155_addr: "", + erc721Minter: "0x6e2B43FeF2E750e1562AC572e60B6C484a027424", + erc1155Minter: "0x4E3a506800b894f3d7B46475Ab693DD5a567bB5C", + }, + tronParams: { + provider: new tronweb_1.default({ + fullHost: consts_1.MainNetRpcUri.TRON, + }), + notifier, + minter_addr: "TAncANF5aYbvgXDatmwTdvTa5N9PTrq95k", + erc721_addr: "TVdp7szDHg3opRyuciQaJi93LLk7y83hrC", + erc1155_addr: "", + erc1155Minter: "TYoj1JVpJt1TAWBFj3GkaKLC2vrcFnjZ1G", + erc721Minter: "TPSQTbFWaxiDZbGD7MoqR6N2aWDSWBUNfA", + validators: [ + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + ], + nonce: consts_1.Chain.TRON, + feeMargin, + }, + avalancheParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.AVALANCHE + ), + erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", + erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + nonce: consts_1.Chain.AVALANCHE, + feeMargin, + }, + polygonParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.POLYGON + ), + erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", + erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", + nonce: consts_1.Chain.POLYGON, + feeMargin, + }, + fantomParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.FANTOM + ), + erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc1155_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", + erc721_addr: "0x75f93b47719Ab5270d27cF28a74eeA247d5DfeFF", + minter_addr: "0x97dd1B3AE755539F56Db8b29258d7C925b20b84B", + nonce: consts_1.Chain.FANTOM, + feeMargin, + }, + bscParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.BSC + ), + erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", + erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", + erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + nonce: consts_1.Chain.BSC, + feeMargin, + }, + celoParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.CELO + ), + minter_addr: "string", + erc721_addr: "string", + erc1155Minter: "string", + erc721Minter: "string", + erc1155_addr: "", + nonce: consts_1.Chain.CELO, + feeMargin, + }, + harmonyParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.HARMONY + ), + minter_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc721_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + erc1155_addr: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", + erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", + erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + nonce: consts_1.Chain.HARMONY, + feeMargin, + }, + ropstenParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.ETHEREUM + ), + minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", + nonce: consts_1.Chain.ETHEREUM, + feeMargin, + }, + xDaiParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.XDAI + ), + erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", + erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", + erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + nonce: consts_1.Chain.XDAI, + feeMargin, + }, + algorandParams: { + algodApiKey: + "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodUri: "https://algorand-node.xp.network/", + indexerUri: "https://algoindexer.algoexplorerapi.io", + nonce: consts_1.Chain.ALGORAND, + sendNftAppId: 769053604, + algodPort: 443, + notifier, + feeMargin, + }, + fuseParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.FUSE + ), + erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc721_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", + erc1155_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", + minter_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", + nonce: consts_1.Chain.FUSE, + feeMargin, + }, + tezosParams: { + bridgeAddress: "KT1WKtpe58XPCqNQmPmVUq6CZkPYRms5oLvu", + notifier, + Tezos: new taquito_1.TezosToolkit(consts_1.MainNetRpcUri.TEZOS), + xpnftAddress: "KT1NEx6MX2GUEKMTX9ydyu8mn9WBNEz3QPEp", + validators: [ + "tz1MwAQrsg5EgeFD1AQHT2FTutnj9yQJNcjM", + "tz1b5AMdXs9nDxsqoN9wa3HTusvhahgBRWuF", + "tz1L5DjmMEHbj5npRzZewSARLmTQQyESW4Mj", + "tz1csq1THV9rKQQexo2XfSjSEJEg2wRCSHsD", + "tz1TBhd1NeZNtWsTbecee8jDMDzeBNLmpViN", + "tz1SHcDnXRgb7kWidiaM2J6bbTS7x5jzBr67", + ], + feeMargin, + }, + velasParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.VELAS + ), + erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", + erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", + nonce: consts_1.Chain.VELAS, + feeMargin, + }, + iotexParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.IOTEX + ), + minter_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", + erc721_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", + erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", + erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", + nonce: consts_1.Chain.IOTEX, + feeMargin, + }, + auroraParams: { + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.AURORA + ), + minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc1155Minter: "0x0000000000000000000000000000000000000000", + erc721Minter: "0x0000000000000000000000000000000000000000", + nonce: consts_1.Chain.AURORA, + notifier, + feeMargin, + }, + godwokenParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.GODWOKEN + ), + minter_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc721Minter: "0x0000000000000000000000000000000000000000", + erc1155Minter: "0x0000000000000000000000000000000000000000", + nonce: consts_1.Chain.GODWOKEN, + feeMargin, + }, + gateChainParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.GATECHAIN + ), + minter_addr: "0xFc7f7fD2DBdAF6D8F3ee3f222b3a6a9f89729f05", + erc721_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", + erc1155_addr: "", + erc1155Minter: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", + erc721Minter: "0x0000000000000000000000000000000000000000", + nonce: consts_1.Chain.GATECHAIN, + feeMargin, + }, + skaleParams: { + nonce: consts_1.Chain.SKALE, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.SKALE + ), + feeMargin, + erc1155_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc1155Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc721Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + erc721_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + minter_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + paymentTokenAddress: "0x0000000000000000000000000000000000000000", + }, + moonbeamParams: { + nonce: consts_1.Chain.MOONBEAM, + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.MOONBEAM + ), + erc721Minter: "", + erc1155Minter: "", + erc1155_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", + erc721_addr: "0xfD3Ce0a10D4731b136a7C9e3f8a37edA1EFbf77f", + minter_addr: "0xBA3Cc81cfc54a4ce99638b5da1F17b15476E7231", + }, + abeyChainParams: { + nonce: consts_1.Chain.ABEYCHAIN, + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.ABEYCHAIN + ), + erc721Minter: "0xBb5e9896cEe600DaC470775B6f235Db105E861BD", + erc1155Minter: "0x35c3c3959d19A310Fc052545fCC29200dc440CdA", + erc1155_addr: "0xF9DfD29ddEDEa3224f9c7E12c7Bbe37101341786", + erc721_addr: "0x55B1D1891ABb21A5d245d149B49007b55Bd3746D", + minter_addr: "0x4ceDb46481d7118E1D292C318E37510E5919bBe6", + }, + secretParams: { + notifier, + rpcUrl: consts_1.MainNetRpcUri.SECRET, + bridge: { + contractAddress: "secret18f66qjjuyudmh7q6s50hwpt9y679lanjs82jkg", + codeHash: + "224f175c92947bbfd656d26e21b5eee40f73eac6aa6b64c328db3c55261ee6b4", + }, + xpnft: { + contractAddress: "secret16zcej6asqrtfq08u3fdjhs03zpl7lgy7q32eps", + codeHash: + "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", + }, + umt: { + contractAddress: "", + codeHash: "", + }, + chainId: "24", + feeMargin, + }, + nearParams: { + networkId: "mainnet", + nonce: consts_1.Chain.NEAR, + rpcUrl: consts_1.MainNetRpcUri.NEAR, + bridge: "", + xpnft: "", + feeMargin, + notifier, + walletUrl: "https://wallet.mainnet.near.org", + helperUrl: "https://helper.mainnet.near.org", + }, + }; + }; +})( + (ChainFactoryConfigs = + exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) +); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0FnMkJuQztBQWgyQkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 diff --git a/dist/factory/factories.ts b/dist/factory/factories.ts new file mode 100644 index 000000000..bb5e6f9e0 --- /dev/null +++ b/dist/factory/factories.ts @@ -0,0 +1,901 @@ +import { ChainParams } from "."; +//@ts-ignore +import TronWeb from "tronweb"; +import { Chain, MainNetRpcUri, TestNetRpcUri } from "../consts"; +import { ethers } from "ethers"; +import { TezosToolkit } from "@taquito/taquito"; +import { evNotifier } from "../notifier"; +import { Driver, SimpleNet } from "@vechain/connex-driver"; +import * as thor from "web3-providers-connex"; +import { Framework } from "@vechain/connex-framework"; +import { hethers } from "@hashgraph/hethers"; +import { HttpAgent } from "@dfinity/agent"; +import { Principal } from "@dfinity/principal"; +import TonWeb from "tonweb"; +import { FeeMargins } from "../helpers/chain"; + +/*const EVM_VALIDATORS = [ + "0xffa74a26bf87a32992bb4be080467bb4a8019e00", + "0x837b2eb764860b442c971f98f505e7c5f419edd7", + "0x9671ce5a02eb53cf0f2cbd220b34e50c39c0bf23", + "0x90e79cc7a06dbd227569920a8c4a625f630d77f4", + "0xdc80905cafeda39cb19a566baeef52472848e82f", + "0x77745cd585798e55938940e3d4dd0fd7cde7bdd6", + "0xc2a29b4e9fa71e9033a52611544403241c56ac5e", +];*/ + +// const _EVM_TESTNET_VALIDATORS = [ +// "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", +// "0xae87208a5204B6606d3AB177Be5fdf62267Cd499", +// "0x5002258315873AdCbdEF25a8E71C715A4f701dF5", +// ]; + +const middleware_uri = "https://notifier.xp.network"; +const testnet_middleware_uri = + "https://testnet-notifier.xp.network/notify-test/"; + +export namespace ChainFactoryConfigs { + export const TestNet: () => Promise> = async () => { + const feeMargin = { min: 1, max: 5 }; + const notifier = evNotifier(testnet_middleware_uri); + + // VeChain related: + const net = new SimpleNet(TestNetRpcUri.VECHAIN); + const driver = await Driver.connect(net); + const provider = thor.ethers.modifyProvider( + new ethers.providers.Web3Provider( + new thor.ConnexProvider({ connex: new Framework(driver) }) + ) + ); + + return { + elrondParams: { + node_uri: TestNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgqy2nx5z4cpr90de4sga2v2yx62fph3lg8g6vskt0k2f", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqc854pa9ruzgs5f8rdzzc02xgq8kqku3ng6vs59vmf8", + esdt_nft: "XPNFT-af3fde", + esdt_swap: "WEGLD-708f9b", + notifier, + nonce: 2, + feeMargin, + }, + tonParams: { + tonweb: new TonWeb( + new TonWeb.HttpProvider(TestNetRpcUri.TON, { + apiKey: + "abe8c1222f19b0891a9a35889d112dc88562093467db8dda39961eeacd50f9b1", + }) + ), + bridgeAddr: "kQBwUu-b4O6qDYq3iDRvsYUnTD6l3WCxLXkv0aH6ywAaPs3c", + burnerAddr: "kQCbH9gGgqJzXuusUVajW_40brrl2fxTYqMkk6HUhJnIgOQA", + xpnftAddr: "EQDji0YH-SNT-qi6o5dQQBLeWL0Xmm46fnqj34EYhOL34WDc", + feeMargin, + notifier, + }, + solanaParams: { + xpnftAddr: "C7bw5dJZwhjWd6TZE3LnE2b1RLqWDiy9XRMA1rajPKQY", + bridgeContractAddr: "FXaXLtmkuoJCJeX6BnLwQJWgT8cPdwuXN8BmmQzVvuRA", + endpoint: TestNetRpcUri.SOLANA, + notifier, + feeMargin, + }, + vechainParams: { + notifier, + feeMargin, + nonce: Chain.VECHAIN, + provider, + minter_addr: "0xd9145CCE52D386f254917e481eB44e9943F39138", + erc721_addr: "0xD7ACd2a9FD159E69Bb102A1ca21C9a3e3A5F771B", + erc1155_addr: "0xf8e81D47203A594245E36C48e151709F0C19fBe8", + erc721Minter: "0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47", + erc1155Minter: "0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8", + }, + tronParams: { + provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), + notifier, + minter_addr: "TY46GA3GGdMtu9GMaaSPPSQtqq9CZAv5sK", + erc721_addr: "TDhb2kyurMwoc1eMndKzqNebji1ap1DJC4", + erc1155_addr: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", + erc1155Minter: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", + erc721Minter: "TMVDt5PP53eQro5hLafibv2xWzSSDSMyjy", + validators: [ + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + ], + nonce: Chain.TRON, + feeMargin, + }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CADUCEUS), + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + nonce: Chain.CADUCEUS, + }, + avalancheParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), + minter_addr: "0xDdF1f6B8Ae8cd26dBE7C4C3ed9ac8E6D8B3a4FdC", + erc721_addr: "0xE1D8Df2e06797F22e7ce25c95A7ddccb926f8A1E", + erc1155Minter: "0xfA9214AEe59a6631A400DC039808457524dE70A2", + erc721Minter: "0x54Db938575DD089702822F191AEbB25C2Af7D1Ef", + erc1155_addr: "0xfA9214AEe59a6631A400DC039808457524dE70A2", + nonce: Chain.AVALANCHE, + feeMargin, + }, + polygonParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), + minter_addr: "0x224f78681099D66ceEdf4E52ee62E5a98CCB4b9e", + erc721_addr: "0xb678b13E41a47e46A4046a4D8315b32E0F34389c", + erc1155Minter: "0x5A768f8dDC67ccCA1431879BcA28E93a6c7722bb", + erc1155_addr: "0xc1D778Ce89154357471bA6c4C6E51f0e590FFe57", + erc721Minter: "0x6516E2D3387A9CF4E5e868E7842D110c95A9f3B4", + nonce: Chain.POLYGON, + feeMargin, + }, + dfinityParams: { + agent: new HttpAgent({ + host: "https://ic0.app", + }), + bridgeContract: Principal.fromText("e3io4-qaaaa-aaaak-qasua-cai"), + xpnftId: Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), + umt: Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), + notifier, + feeMargin, + }, + moonbeamParams: { + nonce: Chain.MOONBEAM, + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.MOONBEAM), + erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", + erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + erc1155_addr: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", + erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + }, + aptosParams: { + rpcUrl: TestNetRpcUri.APTOS, + bridge: + "0x467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18", + xpnft: "XPNFT", + notifier, + feeMargin, + nonce: Chain.APTOS, + network: "testnet", + }, + abeyChainParams: { + nonce: Chain.ABEYCHAIN, + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ABEYCHAIN), + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + }, + fantomParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", + erc1155Minter: "string", + erc1155_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc721Minter: "string", + nonce: Chain.FANTOM, + feeMargin, + }, + bscParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), + minter_addr: "0x3Dd26fFf61D2a79f5fB77100d6daDBF073F334E6", + erc721_addr: "0x783eF7485DCF27a3Cf59F5A0A406eEe3f9b2AaeB", + erc1155Minter: "0x5dA3b7431f4581a7d35aEc2f3429174DC0f2A2E1", + erc721Minter: "0x97CD6fD6cbFfaa24f5c858843955C2601cc7F2b9", + erc1155_addr: "0xb5278A4808e2345A3B9d08bAc8909A121aFaEBB3", + nonce: Chain.BSC, + feeMargin, + }, + celoParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", + erc1155_addr: "", + erc1155Minter: "string", + erc721Minter: "string", + nonce: Chain.CELO, + feeMargin, + }, + harmonyParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), + minter_addr: "0x198Cae9EE853e7b44E99c0b35Bddb451F83485d5", + erc721_addr: "0x1280c5c11bF0aAaaEAeBc998893B42e08B26fD5A", + erc1155Minter: "0xB546c2358A6e4b0B83192cCBB83CaE37FA572fe1", + erc721Minter: "0xb036640d6f7cAfd338103dc60493250561Af2eBc", + erc1155_addr: "0x44FCF0001A2B03260e4Bba44AF93a60C64cE79A2", + nonce: Chain.HARMONY, + feeMargin, + }, + ropstenParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), + erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + erc721_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", + erc1155Minter: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", + erc721Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + minter_addr: "0x04a5f9158829Cae5a0a549954AdEaBD47BbB3d2d", + nonce: Chain.ETHEREUM, + feeMargin, + }, + xDaiParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), + minter_addr: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + erc721_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + erc1155_addr: "0x1C6d7aa611B30C9C1e5f52068E145b77b0e661b2", + nonce: Chain.XDAI, + feeMargin, + }, + algorandParams: { + algodApiKey: + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + indexerUri: "https://algoindexer.testnet.algoexplorerapi.io", + algodUri: "https://node.testnet.algoexplorerapi.io", + nonce: Chain.ALGORAND, + sendNftAppId: 83148194, + algodPort: 443, + notifier, + feeMargin, + }, + auroraParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AURORA), + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + nonce: Chain.AURORA, + feeMargin, + }, + uniqueParams: { + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.UNIQUE), + nonce: Chain.UNIQUE, + erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc1155_addr: "", + minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155Minter: "string", + erc721Minter: "string", + notifier, + feeMargin, + }, + tezosParams: { + bridgeAddress: "KT1KbL9kWPM8GkMr5M38vF1eHdsNxTc4WkyQ", + notifier, + Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), + xpnftAddress: "KT1WR4fe9wFGPgNViK5feigMGyXKG9gCX8n4", + validators: [ + "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", + "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", + "tz1exbY3JKPRpo2KLegK8iqoVNRLn1zFrnZi", + ], + feeMargin, + }, + velasParams: { + notifier, + erc721_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc1155_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", + minter_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", + erc1155Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", + erc721Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", + nonce: Chain.VELAS, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), + feeMargin, + }, + iotexParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.IOTEX), + minter_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc721_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", + erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + erc1155Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", + erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", + nonce: Chain.IOTEX, + feeMargin, + }, + hederaParams: { + notifier, + provider: hethers.getDefaultProvider("testnet") as any, + feeMargin, + nonce: Chain.HEDERA, + erc721_addr: "0x0000000000000000000000000000000002e88e04", + erc1155_addr: "0x0000000000000000000000000000000002e88e04", + minter_addr: "0x0000000000000000000000000000000002e86d67", + erc721Minter: "0x0000000000000000000000000000000002da3c1d", + erc1155Minter: "0x0000000000000000000000000000000002da3c20", + }, + skaleParams: { + nonce: Chain.SKALE, + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.SKALE), + feeMargin, + erc1155_addr: "0x34c34E0808dC25c43cD41Cdba5049F7C370b7093", + erc1155Minter: "0x19F5cb72DBEdBAd6622FcC4244E238F207d7Bcb6", + erc721Minter: "0x79CcaA9FF641e848437C1855fd6c217Dc2204B09", + erc721_addr: "0x753993a3220eB7EFb837c26b14F3EFffF271F886", + minter_addr: "0xF50d791fb0427442287AA574bacADBf5C964f38c", + paymentTokenAddress: "0x3F3894e65B9EcAAa1F099ECb82e9Cca3a0e86E9E", + }, + godwokenParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.GODWOKEN), + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + nonce: Chain.GODWOKEN, + feeMargin, + }, + gateChainParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.GATECHAIN), + minter_addr: "0x2B24de7BFf5d2ab01b1C53682Ee5987c9BCf1BAc", + erc721_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc1155_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc721Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155Minter: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + nonce: Chain.GATECHAIN, + feeMargin, + }, + secretParams: { + notifier, + rpcUrl: TestNetRpcUri.SECRET, + bridge: { + contractAddress: "secret1ecsxtsrct6h647lpztnnzc9e47ezh0uu673c8h", + codeHash: + "29a127369d1f4326fb684435fde702fa9619c812dfb5b3a1929529bab0e308e0", + }, + xpnft: { + contractAddress: "secret1x4afa2shvq4uwwtl0ld8qnjfm3jkmyvap3yn9g", + codeHash: + "090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", + }, + umt: { + contractAddress: "secret146snljq0kjsva7qrx4am54nv3fhfaet7srx4n2", + codeHash: + "af076a49141264ec048270318f1358c9be193893c3f829425cab53ee5eb05e5c", + }, + chainId: "24", + feeMargin, + }, + + nearParams: { + networkId: "testnet", + nonce: Chain.NEAR, + rpcUrl: TestNetRpcUri.NEAR, + bridge: "xp_bridge_1.testnet", + xpnft: "xp_nft_1.testnet", + walletUrl: "https://wallet.testnet.near.org", + helperUrl: "https://helper.testnet.near.org", + feeMargin, + notifier, + }, + }; + }; + + export const Staging: () => Promise> = async () => { + const feeMargin: FeeMargins = { min: 1, max: 5 }; + const notifier = evNotifier("https://bridge1.xp.network/notifier"); + + return { + tonParams: { + bridgeAddr: "kQD3Fic8toRl0SIMswto8wmy5H41CDZUGAIyIK95Al5BBUiX", + burnerAddr: "kQBCnW4TO466p7YzKGZebnsylUSHTyxTKuwMDXo5JEQbIEOF", + notifier, + tonweb: new TonWeb( + new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + }) + ), + xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", + feeMargin, + }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CADUCEUS), + erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", + erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", + erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", + minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + nonce: Chain.CADUCEUS, + }, + algorandParams: { + algodApiKey: + "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodUri: "https://algorand-node.xp.network/", + indexerUri: "https://algoindexer.algoexplorerapi.io", + nonce: Chain.ALGORAND, + sendNftAppId: 942656248, + algodPort: 443, + notifier, + feeMargin, + }, + elrondParams: { + node_uri: MainNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgqacac9ux4uz0pjg8ck2sf0ugxre0feczzvcas2tsatn", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqjlnfddgj2dl4kz3x4n55yhfv7v06mxhzvcas2ec5ps", + esdt_nft: "XPNFT-976581", + esdt_swap: "WEGLD-8c393e", + notifier, + nonce: Chain.ELROND, + feeMargin, + }, + harmonyParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), + minter_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", + erc721_addr: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", + erc1155_addr: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", + erc1155Minter: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + erc721Minter: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + nonce: Chain.HARMONY, + feeMargin, + }, + velasParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), + erc721Minter: "0x4d739e4953CE42f71604cbE142FD293841F9ed1c", + erc1155Minter: "0xeEc7955F2F7AA4E36B582D8f022c9417ecB75a44", + erc721_addr: "0x19678D8f9601AD0F099D401A3f82e4d6745B0e56", + erc1155_addr: "0x4a153028F0b40C41432127E050015963D130b01A", + minter_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", + nonce: Chain.VELAS, + feeMargin, + }, + bscParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), + erc721Minter: "0x83feaeA88b1377970E7cD11492d084B63e09C87E", + erc1155_addr: "0x1B20ceec70e9635f5B56928de16A9dBc8EB8e3b6", + erc1155Minter: "0x5Af6A4C6E261315C5B7811bEb9c620CfF4722793", + erc721_addr: "0x9796B2F03e3afF786048cd67a1D33282476AB1d4", + minter_addr: "0x7Eac6825A851d79ae24301eA497AD8db2a0F4976", + nonce: Chain.BSC, + feeMargin, + }, + secretParams: { + bridge: { + contractAddress: "secret1t0g8tvc0tyvpwdsdc5zepa9j2ptr3vfte26qhu", + codeHash: + "684afe616d92b29c097c5f00365d07c005e99c90ff1227507a0284b601a2cc5e", + }, + xpnft: { + contractAddress: "secret1ggvqzks96k7hawhdx3harrtnffhttrrq2qxmdg", + codeHash: + "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", + }, + notifier, + rpcUrl: MainNetRpcUri.SECRET, + umt: { + contractAddress: "", + codeHash: "", + }, + chainId: "24", + feeMargin, + }, + abeyChainParams: { + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ABEYCHAIN), + erc1155_addr: "0x8776073043eef8929F4a9cBa8Aacc6B59A21BA52", + erc1155Minter: "0x5Ed657a379e06CBAc1Ba1a9cF6D28e71c66B0c83", + erc721_addr: "0x3C8C51809Ee58E9D3BA37e37112843e41DcBD7B7", + erc721Minter: "0xD580913Ef2c8CA4Ca90D4bE6851ACa004cf586D8", + minter_addr: "0x14db0f56042Fa87F3b3921E871f87248f4C56A71", + nonce: Chain.ABEYCHAIN, + }, + moonbeamParams: { + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.MOONBEAM), + erc1155_addr: "0x554560C6800f123B4A713F80A5AC9F21486F5De8", + erc721_addr: "0x6f64e03fcc34b774b3b82825a91aABA336Fbf931", + erc1155Minter: "0xA97FD39705583296221f39cb245fb573B28722A1", + erc721Minter: "0x0e5C62beAD14795F3eA9969B139F5433DF85319e", + minter_addr: "0xce50496C6616F4688d5775966E302A49e3876Dff", + nonce: Chain.MOONBEAM, + }, + polygonParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), + erc721Minter: "0x32732607F67f9FC2007AF84e54B2ea9042327ed3", + erc1155Minter: "0x62E26979F555Ec475981D8D1A7e269f747643f22", + erc721_addr: "0x54024A9351B7aD68921914942f776489E71c467e", + erc1155_addr: "0x8D3e050555356a2eD4ad8cfFb189994035F5803C", + minter_addr: "0xF712f9De44425d8845A1d597a247Fe88F4A23b6f", + nonce: Chain.POLYGON, + feeMargin, + }, + skaleParams: { + notifier, + feeMargin, + nonce: Chain.SKALE, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.SKALE), + erc721Minter: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + erc1155Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + erc1155_addr: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", + erc721_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + minter_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", + paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token + }, + aptosParams: { + rpcUrl: MainNetRpcUri.APTOS, + bridge: + "0x813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37", + xpnft: "XPNFT", + notifier, + feeMargin, + nonce: Chain.APTOS, + network: "staging", + }, + }; + }; + + export const MainNet: () => Promise> = async () => { + const feeMargin = { min: 1, max: 5 }; + const notifier = evNotifier(middleware_uri); + + // VeChain related: + const net = new SimpleNet(MainNetRpcUri.VECHAIN); + const driver = await Driver.connect(net); + const provider = thor.ethers.modifyProvider( + new ethers.providers.Web3Provider( + new thor.ConnexProvider({ connex: new Framework(driver) }) + ) + ); + + return { + tonParams: { + bridgeAddr: "kQAhH1me417YvScu9Rn8BXjsW_9HcalciG5LmCDT04HMJt6L", + burnerAddr: "kQDuSGRY8g6TCLC4QhlhqgLr4G_nNXTGHoXy38Mwxx-r1aGY", + notifier, + tonweb: new TonWeb( + new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + }) + ), + xpnftAddr: "EQABqbZubs5e3QQF3lxVZMvdaxlaIdNQWq8W1rn8rvVvWHys", + feeMargin, + }, + elrondParams: { + node_uri: MainNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", + esdt_nft: "XPNFT-cb7482", + esdt_swap: "WEGLD-5f1f8d", + notifier, + nonce: Chain.ELROND, + feeMargin, + }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CADUCEUS), + erc1155_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", + erc721_addr: "0x3410b0e0b1aBAe452b3F031AdE8dab347f5Fb60b", + erc1155Minter: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", + erc721Minter: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", + minter_addr: "0xd3f55Dd3da582E8E55AcE14e28352a95334E8feb", + nonce: Chain.CADUCEUS, + }, + dfinityParams: { + agent: new HttpAgent({ + host: "https://ic0.app", + }), + bridgeContract: Principal.fromText("e3io4-qaaaa-aaaak-qasua-cai"), + xpnftId: Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), + umt: Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), + notifier, + feeMargin, + }, + vechainParams: { + notifier, + feeMargin, + nonce: Chain.VECHAIN, + provider, + minter_addr: "0xE860cef926E5e76E0E88fdc762417a582F849C27", + erc721_addr: "0xf0E778BD5C4c2F219A2A5699e3AfD2D82D50E271", + erc1155_addr: "", + erc721Minter: "0x6e2B43FeF2E750e1562AC572e60B6C484a027424", + erc1155Minter: "0x4E3a506800b894f3d7B46475Ab693DD5a567bB5C", + }, + tronParams: { + provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), + notifier, + minter_addr: "TAncANF5aYbvgXDatmwTdvTa5N9PTrq95k", + erc721_addr: "TVdp7szDHg3opRyuciQaJi93LLk7y83hrC", + erc1155_addr: "", + erc1155Minter: "TYoj1JVpJt1TAWBFj3GkaKLC2vrcFnjZ1G", + erc721Minter: "TPSQTbFWaxiDZbGD7MoqR6N2aWDSWBUNfA", + validators: [ + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + ], + nonce: Chain.TRON, + feeMargin, + }, + avalancheParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), + erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", + erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + nonce: Chain.AVALANCHE, + feeMargin, + }, + polygonParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), + erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", + erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", + nonce: Chain.POLYGON, + feeMargin, + }, + fantomParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), + erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc1155_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", + erc721_addr: "0x75f93b47719Ab5270d27cF28a74eeA247d5DfeFF", + minter_addr: "0x97dd1B3AE755539F56Db8b29258d7C925b20b84B", + nonce: Chain.FANTOM, + feeMargin, + }, + bscParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), + erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", + erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", + erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + nonce: Chain.BSC, + feeMargin, + }, + celoParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), + minter_addr: "string", + erc721_addr: "string", + erc1155Minter: "string", + erc721Minter: "string", + erc1155_addr: "", + nonce: Chain.CELO, + feeMargin, + }, + harmonyParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), + minter_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc721_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + erc1155_addr: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", + erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", + erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + nonce: Chain.HARMONY, + feeMargin, + }, + ropstenParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), + minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", + nonce: Chain.ETHEREUM, + feeMargin, + }, + xDaiParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), + erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", + erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", + erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + nonce: Chain.XDAI, + feeMargin, + }, + algorandParams: { + algodApiKey: + "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodUri: "https://algorand-node.xp.network/", + indexerUri: "https://algoindexer.algoexplorerapi.io", + nonce: Chain.ALGORAND, + sendNftAppId: 769053604, + algodPort: 443, + notifier, + feeMargin, + }, + fuseParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FUSE), + erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc721_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", + erc1155_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", + minter_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", + nonce: Chain.FUSE, + feeMargin, + }, + tezosParams: { + bridgeAddress: "KT1WKtpe58XPCqNQmPmVUq6CZkPYRms5oLvu", + notifier, + Tezos: new TezosToolkit(MainNetRpcUri.TEZOS), + xpnftAddress: "KT1NEx6MX2GUEKMTX9ydyu8mn9WBNEz3QPEp", + validators: [ + "tz1MwAQrsg5EgeFD1AQHT2FTutnj9yQJNcjM", + "tz1b5AMdXs9nDxsqoN9wa3HTusvhahgBRWuF", + "tz1L5DjmMEHbj5npRzZewSARLmTQQyESW4Mj", + "tz1csq1THV9rKQQexo2XfSjSEJEg2wRCSHsD", + "tz1TBhd1NeZNtWsTbecee8jDMDzeBNLmpViN", + "tz1SHcDnXRgb7kWidiaM2J6bbTS7x5jzBr67", + ], + feeMargin, + }, + velasParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), + erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", + erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", + nonce: Chain.VELAS, + feeMargin, + }, + iotexParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), + minter_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", + erc721_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", + erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", + erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", + nonce: Chain.IOTEX, + feeMargin, + }, + auroraParams: { + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AURORA), + minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc1155Minter: "0x0000000000000000000000000000000000000000", + erc721Minter: "0x0000000000000000000000000000000000000000", + nonce: Chain.AURORA, + notifier, + feeMargin, + }, + godwokenParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.GODWOKEN), + minter_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc721Minter: "0x0000000000000000000000000000000000000000", + erc1155Minter: "0x0000000000000000000000000000000000000000", + nonce: Chain.GODWOKEN, + feeMargin, + }, + gateChainParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.GATECHAIN), + minter_addr: "0xFc7f7fD2DBdAF6D8F3ee3f222b3a6a9f89729f05", + erc721_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", + erc1155_addr: "", + erc1155Minter: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", + erc721Minter: "0x0000000000000000000000000000000000000000", + nonce: Chain.GATECHAIN, + feeMargin, + }, + skaleParams: { + nonce: Chain.SKALE, + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.SKALE), + feeMargin, + erc1155_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc1155Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc721Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + erc721_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + minter_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + paymentTokenAddress: "0x0000000000000000000000000000000000000000", + }, + moonbeamParams: { + nonce: Chain.MOONBEAM, + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.MOONBEAM), + erc721Minter: "", + erc1155Minter: "", + erc1155_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", + erc721_addr: "0xfD3Ce0a10D4731b136a7C9e3f8a37edA1EFbf77f", + minter_addr: "0xBA3Cc81cfc54a4ce99638b5da1F17b15476E7231", + }, + abeyChainParams: { + nonce: Chain.ABEYCHAIN, + notifier, + feeMargin, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ABEYCHAIN), + erc721Minter: "0xBb5e9896cEe600DaC470775B6f235Db105E861BD", + erc1155Minter: "0x35c3c3959d19A310Fc052545fCC29200dc440CdA", + erc1155_addr: "0xF9DfD29ddEDEa3224f9c7E12c7Bbe37101341786", + erc721_addr: "0x55B1D1891ABb21A5d245d149B49007b55Bd3746D", + minter_addr: "0x4ceDb46481d7118E1D292C318E37510E5919bBe6", + }, + secretParams: { + notifier, + rpcUrl: MainNetRpcUri.SECRET, + bridge: { + contractAddress: "secret18f66qjjuyudmh7q6s50hwpt9y679lanjs82jkg", + codeHash: + "224f175c92947bbfd656d26e21b5eee40f73eac6aa6b64c328db3c55261ee6b4", + }, + xpnft: { + contractAddress: "secret16zcej6asqrtfq08u3fdjhs03zpl7lgy7q32eps", + codeHash: + "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", + }, + umt: { + contractAddress: "", + codeHash: "", + }, + chainId: "24", + feeMargin, + }, + nearParams: { + networkId: "mainnet", + nonce: Chain.NEAR, + rpcUrl: MainNetRpcUri.NEAR, + bridge: "", + xpnft: "", + feeMargin, + notifier, + walletUrl: "https://wallet.mainnet.near.org", + helperUrl: "https://helper.mainnet.near.org", + }, + }; + }; +} diff --git a/dist/factory/index.d.ts b/dist/factory/index.d.ts new file mode 100644 index 000000000..432e91ef4 --- /dev/null +++ b/dist/factory/index.d.ts @@ -0,0 +1,312 @@ +import { ElrondParams } from "../helpers/elrond"; +import { TronParams } from "../helpers/tron"; +import { Web3Params } from "../helpers/web3"; +export * from "./factories"; +import { + ChainNonceGet, + EstimateTxFees, + ExtractAction, + ExtractTxnStatus, + MintNft, + NftInfo, + TransactionStatus, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from ".."; +import BigNumber from "bignumber.js"; +import { ethers } from "ethers"; +import { AlgorandParams, AlgoSignerH, ClaimNftInfo } from "../helpers/algorand"; +import { TezosParams } from "../helpers/tezos"; +import { + BalanceCheck, + EstimateTxFeesBatch, + GetFeeMargins, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + WhitelistCheck, +} from "../helpers/chain"; +import { + ChainNonce, + InferChainH, + InferChainParam, + InferNativeNft, + InferSigner, +} from "../type-utils"; +import { SecretParams } from "../helpers/secret"; +import { DfinityParams } from "../helpers/dfinity/dfinity"; +import { NearParams } from "../helpers/near"; +import { TonParams } from "../helpers/ton"; +import { Wallet } from "@hashgraph/hethers"; +import { AptosParams } from "../helpers/aptos"; +import { Web3ERC20Params } from "../helpers/web3_erc20"; +import { SolanaParams } from "../helpers/solana"; +export type FullChain = TransferNftForeign< + Signer, + RawNft, + Resp +> & + UnfreezeForeignNft & + EstimateTxFees & + ChainNonceGet & + ValidateAddress & { + XpNft: string; + XpNft1155?: string; + } & GetFeeMargins; +type FullChainBatch = FullChain & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFeesBatch; +/** + * A type representing a chain factory. + */ +export type ChainFactory = { + /** + * Creates an helper factory for a given chain + * @param chain: {@link ChainNonce} to create the helper for. + */ + inner(chain: T): Promise>; + /** + * Whether or not the bridge is alive for a given chain + * this is checked regardless before using any bridge related function(e.g transferNft) is called + */ + bridgeStatus(): Promise<{ + [chainNonce: number]: "alive" | "dead"; + }>; + /** + * Check the balance of an account + * + * @param inner The chain to check the balance in + * @param address address of the account + */ + balance(inner: BalanceCheck, address: string): Promise; + /** + * Transfers the NFT from one chain to other. + * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. + * @param toChain {@link FullChain} the chain to transfer to. Use inner method of the factory to get this. + * WARN: Algorand NFTs must be manually claimed by the receiver + * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the `nftList` method of the factory. + * @param sender {@link Sender} The owner of the NFT. + * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. + * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) + * @param mintWith an arbitrary address of the target chain minter contract + * @param gasLimit an arbitrary gas limit value (required for some chains) + */ + transferNft( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + sender: SignerF, + receiver: string, + fee?: BigNumber.Value, + mintWith?: string, + gasLimit?: ethers.BigNumberish | undefined, + extraFee?: BigNumber.Value + ): Promise; + transferBatchNft( + fromChain: FullChainBatch, + toChain: FullChainBatch, + nft: NftInfo[], + sender: SignerF, + receiver: string, + fee?: BigNumber.Value, + mintWith?: string + ): Promise; + claimHederaNFT( + serialNumber: ethers.BigNumberish, + proxyAddress: string, + htsToken: string, + sender: Wallet + ): Promise; + listHederaClaimableNFT( + proxyContract: string, + htsToken: string, + sender: Wallet + ): Promise; + transferSft( + fromChain: FullChainBatch, + toChain: FullChainBatch, + nft: NftInfo, + sender: SignerF, + receiver: string, + amt: bigint, + fee?: BigNumber.Value, + mintWith?: string + ): Promise; + /** + * Mints an NFT on the chain. + * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. + * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar defi wallet. + * @param args: {@link NftMintArgs} Arguments to mint the nft. Contract is must for web3 and tron. Identifier is must for elrond. + */ + mint( + chain: MintNft, + owner: Signer, + args: Args + ): Promise; + /** + * Lists all the NFTs on the chain owner by {@param owner}. + * @param chain: Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. + * @param owner: Address of the owner of the NFT as a raw string. + */ + nftList( + chain: ChainNonceGet & T, + owner: string + ): Promise>[]>; + /** + * Estimates the required fee for transferring an NFT. + * @param fromChain: {@link FullChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. + * @param toChain: {@link FullChain} Chain to which the NFT must be sent. Can be obtained from the `inner` method on the factory. + * @param nft: {@link NftInfo} The NFT that has to be transferred. Generally comes from the `nftList` method of the factory. + * @param receiver: Address of the receiver of the NFT in raw string.. + */ + estimateFees( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + receiver: string + ): Promise; + estimateSFTfees( + fromChain: FullChain, + amount: bigint, + price: number + ): Promise; + estimateBatchFees( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo[], + receiver: string + ): Promise; + /** + * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. + * @param params : New Params to be set. + */ + updateParams( + nonce: T, + params: InferChainParam + ): void; + pkeyToSigner( + nonce: S, + key: string + ): Promise>>; + /** + * Get transaction in the destination chain + * WARN: use claimAlgorandNft instead for algorand. + * + * @param chain source chain + * @param destination destination chain + * @param hash transaction hash from source chain + * + * @returns transaction hash in original chain, unique action id + */ + getDestinationTransaction( + chain: ExtractAction & ExtractTxnStatus, + destination: number, + hash: Txn + ): Promise<[string, TransactionStatus]>; + /** + * Claim an algorand nft + * + * @param originChain chain from which the nft was transferred + * @param txn Transaction Hash of the original + * @param claimer the account which can claim the nft + */ + waitAlgorandNft( + originChain: ExtractAction & ChainNonceGet, + txn: Txn, + claimer: AlgoSignerH + ): Promise; + /** + * @param claimer: the account which can claim the nfts + */ + claimableAlgorandNfts(claimer: string): Promise; + getVerifiedContract( + from: string, + targetChain: number, + fc: number, + tokenId?: string + ): Promise; + checkWhitelist( + chain: Partial> & ChainNonceGet, + nft: NftInfo + ): Promise; + isWrappedNft(nft: NftInfo, fromChain: number): Promise; + setProvider(fromChain: number, provider: any): Promise; + whitelistEVM( + chain: T, + address: string, + nonce: number + ): Promise<{ + success: true; + }>; +}; +/** + * A type representing all the supported chain params. + */ +export interface ChainParams { + elrondParams: ElrondParams; + hecoParams: Web3Params; + bscParams: Web3Params; + ropstenParams: Web3Params; + avalancheParams: Web3Params; + polygonParams: Web3Params; + fantomParams: Web3Params; + tronParams: TronParams; + celoParams: Web3Params; + harmonyParams: Web3Params; + ontologyParams: Web3Params; + xDaiParams: Web3Params; + algorandParams: AlgorandParams; + fuseParams: Web3Params; + uniqueParams: Web3Params; + tezosParams: TezosParams; + velasParams: Web3Params; + iotexParams: Web3Params; + vechainParams: Web3Params; + auroraParams: Web3Params; + godwokenParams: Web3Params; + gateChainParams: Web3Params; + secretParams: SecretParams; + hederaParams: Web3Params; + skaleParams: Web3ERC20Params; + dfinityParams: DfinityParams; + nearParams: NearParams; + moonbeamParams: Web3Params; + abeyChainParams: Web3Params; + tonParams: TonParams; + aptosParams: AptosParams; + solanaParams: SolanaParams; + caduceusParams: Web3Params; +} +export type MoralisNetwork = "mainnet" | "testnet"; +/** + * A struct for the configuration of the library. + * @field exchangeRateUri: The URI of the exchange rate service. + * @field moralisServer: The URI of the moralis server. + * @field moralisAppId: The app id of the moralis server. + * @field tronScanUri: The URI of the tron scan service. + */ +export interface AppConfig { + exchangeRateUri: string; + heartbeatUri: string; + txSocketUri: string; + nftListUri: string; + nftListAuthToken: string; + tronScanUri: string; + wrappedNftPrefix: string; + scVerifyUri: string; + network: "testnet" | "mainnet" | "staging"; +} +/** + * This function is the basic entry point to use this package as a library. + * @param appConfig: {@link AppConfig} The configuration of the library. + * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. + * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. + */ +export declare function ChainFactory( + appConfig: AppConfig, + chainParams: Partial +): ChainFactory; +export * from "./factories"; +export * from "./cons"; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map new file mode 100644 index 000000000..32166d400 --- /dev/null +++ b/dist/factory/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js new file mode 100644 index 000000000..dac316533 --- /dev/null +++ b/dist/factory/index.js @@ -0,0 +1,613 @@ +"use strict"; +var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if ( + !desc || + ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k]; + }, + }; + } + Object.defineProperty(o, k2, desc); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); +var __exportStar = + (this && this.__exportStar) || + function (m, exports) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) + __createBinding(exports, m, p); + }; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ChainFactory = void 0; +const consts_1 = require("../consts"); +__exportStar(require("./factories"), exports); +const __1 = require(".."); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const axios_1 = __importDefault(require("axios")); +const cons_1 = require("./cons"); +const out_1 = require("@elrondnetwork/erdjs/out"); +const heartbeat_1 = require("../heartbeat"); +const ethers_1 = require("ethers"); +const algorand_1 = require("../helpers/algorand"); +const algosdk_1 = __importDefault(require("algosdk")); +const js_base64_1 = require("js-base64"); +const hethers_1 = require("@hashgraph/hethers"); +const hts_abi_1 = require("../helpers/hedera/hts_abi"); +function mapNonceToParams(chainParams) { + const cToP = new Map(); + cToP.set(consts_1.Chain.ELROND, chainParams.elrondParams); + cToP.set(consts_1.Chain.HECO, chainParams.hecoParams); + cToP.set(consts_1.Chain.BSC, chainParams.bscParams); + cToP.set(consts_1.Chain.ETHEREUM, chainParams.ropstenParams); + cToP.set(consts_1.Chain.AVALANCHE, chainParams.avalancheParams); + cToP.set(consts_1.Chain.POLYGON, chainParams.polygonParams); + cToP.set(consts_1.Chain.FANTOM, chainParams.fantomParams); + cToP.set(consts_1.Chain.TRON, chainParams.tronParams); + cToP.set(consts_1.Chain.CELO, chainParams.celoParams); + cToP.set(consts_1.Chain.HARMONY, chainParams.harmonyParams); + cToP.set(consts_1.Chain.ONT, chainParams.ontologyParams); + cToP.set(consts_1.Chain.XDAI, chainParams.xDaiParams); + cToP.set(consts_1.Chain.ALGORAND, chainParams.algorandParams); + cToP.set(consts_1.Chain.FUSE, chainParams.fuseParams); + cToP.set(consts_1.Chain.UNIQUE, chainParams.uniqueParams); + cToP.set(consts_1.Chain.TEZOS, chainParams.tezosParams); + cToP.set(consts_1.Chain.VELAS, chainParams.velasParams); + cToP.set(consts_1.Chain.IOTEX, chainParams.iotexParams); + cToP.set(consts_1.Chain.AURORA, chainParams.auroraParams); + cToP.set(consts_1.Chain.GODWOKEN, chainParams.godwokenParams); + cToP.set(consts_1.Chain.GATECHAIN, chainParams.gateChainParams); + cToP.set(consts_1.Chain.VECHAIN, chainParams.vechainParams); + cToP.set(consts_1.Chain.SECRET, chainParams.secretParams); + cToP.set(consts_1.Chain.HEDERA, chainParams.hederaParams); + cToP.set(consts_1.Chain.SKALE, chainParams.skaleParams); + cToP.set(consts_1.Chain.DFINITY, chainParams.dfinityParams); + cToP.set(consts_1.Chain.NEAR, chainParams.nearParams); + cToP.set(consts_1.Chain.MOONBEAM, chainParams.moonbeamParams); + cToP.set(consts_1.Chain.ABEYCHAIN, chainParams.abeyChainParams); + cToP.set(consts_1.Chain.TON, chainParams.tonParams); + cToP.set(consts_1.Chain.APTOS, chainParams.aptosParams); + cToP.set(consts_1.Chain.SOLANA, chainParams.solanaParams); + cToP.set(consts_1.Chain.CADUCEUS, chainParams.caduceusParams); + return cToP; +} +/** + * This function is the basic entry point to use this package as a library. + * @param appConfig: {@link AppConfig} The configuration of the library. + * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. + * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. + */ +function ChainFactory(appConfig, chainParams) { + let helpers = new Map(); + let cToP = mapNonceToParams(chainParams); + const heartbeatRepo = (0, heartbeat_1.bridgeHeartbeat)( + appConfig.heartbeatUri + ); + const remoteExchangeRate = (0, cons_1.exchangeRateRepo)( + appConfig.exchangeRateUri + ); + const txSocket = (0, __1.socketHelper)(appConfig.txSocketUri); + const nftlistRest = axios_1.default.create({ + baseURL: appConfig.nftListUri, + headers: { + Authorization: `Bearer ${appConfig.nftListAuthToken}`, + }, + }); + const inner = async (chain) => { + let helper = helpers.get(chain); + if (helper === undefined) { + helper = await consts_1.CHAIN_INFO.get(chain).constructor( + cToP.get(chain) + ); + helpers.set(chain, helper); + } + return helper; + }; + const setProvider = async (chain, provider) => { + const args = { + ...cToP.get(chain), + provider, + }; + const helper = await consts_1.CHAIN_INFO.get(chain).constructor(args); + helpers.set(chain, helper); + }; + async function calcExchangeFees(fromChain, toChain, val, toChainFee) { + const rate = await remoteExchangeRate.getBatchedRate([ + consts_1.CHAIN_INFO.get(toChain).currency, + consts_1.CHAIN_INFO.get(fromChain).currency, + ]); + const feeR = val.dividedBy(consts_1.CHAIN_INFO.get(toChain).decimals); + const fromExRate = rate.get(consts_1.CHAIN_INFO.get(fromChain).currency); + const toExRate = rate.get(consts_1.CHAIN_INFO.get(toChain).currency); + const usdFee = Math.min( + Math.max(toChainFee.min, feeR.times(toExRate * 0.1).toNumber()), + toChainFee.max + ); + const feeProfit = usdFee / fromExRate; + return feeR + .times(toExRate / fromExRate) + .plus(feeProfit * 0.5) + .times(consts_1.CHAIN_INFO.get(fromChain).decimals) + .integerValue(bignumber_js_1.default.ROUND_CEIL); + } + const estimateFees = async (fromChain, toChain, nft, receiver, extraFee) => { + const estimate = await toChain.estimateValidateTransferNft( + receiver, + nft, + "" + ); + let conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate, + toChain.getFeeMargin() + ); + if (extraFee) { + conv = conv + .multipliedBy(extraFee) + .integerValue(bignumber_js_1.default.ROUND_CEIL); + console.log("extra conv"); + } + return conv; + }; + const estimateSFTfees = async (fromChain, amount, price = 0.05) => { + const rate = await remoteExchangeRate.getBatchedRate([ + consts_1.CHAIN_INFO.get(fromChain.getNonce()).currency, + ]); + const fromExRate = rate.get( + consts_1.CHAIN_INFO.get(fromChain.getNonce()).currency + ); + const y = price / fromExRate; + const sftFees = Number(amount) <= 10 ? 0 : y * (Number(amount) - 10); + return new bignumber_js_1.default(sftFees) + .multipliedBy(consts_1.CHAIN_INFO.get(fromChain.getNonce()).decimals) + .integerValue(); + }; + async function bridgeStatus() { + const res = await heartbeatRepo.status(); + return Object.fromEntries( + Object.entries(res).map(([c, s]) => [ + c, + s.bridge_alive ? "alive" : "dead", + ]) + ); + } + async function estimateBatchFees(fromChain, toChain, nft, receiver) { + const estimate = await toChain.estimateValidateTransferNftBatch( + receiver, + nft, + new Array(nft.length).fill(toChain.XpNft) + ); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate.times(nft.length), + toChain.getFeeMargin() + ); + return conv; + } + async function requireBridge(chains) { + const status = await heartbeatRepo.status(); + let deadChain; + const alive = chains.every((c) => { + const stat = status[c].bridge_alive; + if (!stat) { + deadChain = c; + } + return stat; + }); + if (!alive) { + throw Error(`chain ${deadChain} is dead! its unsafe to use the bridge`); + } + } + const oldXpWraps = new Set([ + "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", + "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", + "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", + "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", + "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", + "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", + "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", + ]); + function checkNotOldWrappedNft(contract) { + if (oldXpWraps.has(contract)) { + throw new Error(`${contract} is an old wrapped NFT`); + } + } + async function isWrappedNft(nft, fc, tc) { + if (fc === consts_1.Chain.TEZOS) { + return typeof nft.native.meta?.token?.metadata?.wrapped !== "undefined"; + } + try { + checkNotOldWrappedNft(nft.collectionIdent); + } catch (_) { + return false; + } + const original = (await axios_1.default.get(nft.uri).catch(() => undefined)) + ?.data.wrapped; + const contract = original?.contract || original?.source_mint_ident; + tc && contract && (0, cons_1.checkBlockedContracts)(tc, contract); + return typeof original !== "undefined"; + } + async function algoOptInCheck(nft, toChain, receiver) { + if ("meta" in nft.native) return; + const nftDat = await axios_1.default.get(nft.uri); + if ( + nftDat.data.wrapped.origin == consts_1.Chain.ALGORAND.toString() && + "isOptIn" in toChain && + !(await toChain.isOptIn(receiver, parseInt(nftDat.data.wrapped.assetID))) + ) { + throw Error("receiver hasn't opted-in to wrapped nft"); + } + } + async function getVerifiedContract(from, tc, fc, tokenId) { + const res = await axios_1.default + .post( + `${appConfig.scVerifyUri}/default/`, + { + sc: from, + chain: tc, + fromChain: fc, + tokenId: tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined, + }, + { + headers: cons_1._headers, + } + ) + .catch(() => { + return undefined; + }); + return res?.data.data; + } + async function checkMintWith(from, to, targetChain, fromChain, tokenId) { + const res = await axios_1.default + .post( + `${appConfig.scVerifyUri}/verify`, + { from, to, targetChain, fromChain, tokenId }, + { + headers: cons_1._headers, + } + ) + .catch(() => undefined); + return res?.data.data == "allowed"; + } + return { + getVerifiedContract, + balance: (i, a) => i.balance(a), + async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { + let result = []; + if (appConfig.network === "mainnet") { + await requireBridge([from.getNonce(), to.getNonce()]); + } + if (!fee) { + fee = await estimateBatchFees(from, to, nfts, receiver); + } + if (!(await to.validateAddress(receiver))) { + throw Error("invalid address"); + } + console.log(`Batch Minting With: ${mw || to.XpNft1155}`); + const wrapped = []; + const unwrapped = []; + await Promise.all( + nfts.map(async (e) => { + // @ts-ignore + if (e.native.contractType && e.native.contractType === "ERC721") { + throw new Error(`ERC721 is not supported`); + } + if (await isWrappedNft(e, from.getNonce())) { + wrapped.push(e); + } else { + unwrapped.push(e); + } + }) + ); + unwrapped.length && + result.push( + from.transferNftBatchToForeign( + signer, + to.getNonce(), + receiver, + unwrapped, + mw || to.XpNft1155, + new bignumber_js_1.default(fee) + ) + ); + wrapped.length && + result.push( + from.unfreezeWrappedNftBatch( + signer, + to.getNonce(), + receiver, + wrapped, + new bignumber_js_1.default(fee) + ) + ); + return await Promise.all(result); + }, + estimateBatchFees, + async whitelistEVM(chain, address) { + const chainLocal = cToP.get(chain); + if (!chainLocal) throw new Error("Chain not found"); + const params = await consts_1.CHAIN_INFO.get(chain)?.constructor( + chainLocal + ); + if (!params) throw new Error("An error occured"); + const isAddressValid = await params.validateAddress(address); + if (!isAddressValid) throw new Error("Address is not valid"); + try { + await chainLocal.notifier.notifyEVM(chain, address); + return { success: true }; + } catch (error) { + throw new Error("An error occured"); + } + }, + async transferSft(from, to, nft, sender, receiver, amt, fee, mintWith) { + if (Number(amt) > 50) + throw new Error("Currenly more that 50 SFTs is not supported"); + let transfers = Array(parseInt(amt.toString())).fill(nft); + if (!fee) { + fee = await estimateFees(from, to, transfers[0], receiver); + } + const sftFees = await estimateSFTfees(from, amt, 0.05); + const x = new bignumber_js_1.default(fee).plus(sftFees); + console.log(x.toNumber()); + if (amt === BigInt(1)) { + const response = this.transferNft( + from, + to, + nft, + sender, + receiver, + new bignumber_js_1.default(x).integerValue(), + mintWith + ); + return response; + } else { + const response = this.transferBatchNft( + from, + to, + transfers, + sender, + receiver, + new bignumber_js_1.default(x).integerValue(), + mintWith + ); + return response; + } + const response = this.transferBatchNft( + from, + to, + transfers, + sender, + receiver, + new bignumber_js_1.default(x).integerValue(), + mintWith + ); + return response; + }, + async getDestinationTransaction(chain, targetNonce, txn) { + const action = await chain.extractAction(txn); + const hash = await txSocket.waitTxHash(targetNonce, action); + const status = await chain.extractTxnStatus(hash); + return [hash, status]; + }, + async pkeyToSigner(nonce, key) { + switch (nonce) { + case consts_1.Chain.ELROND: { + return out_1.UserSigner.fromPem(key); + } + case consts_1.Chain.TRON: { + return key; + } + case consts_1.Chain.ALGORAND: { + const algo = await inner(consts_1.Chain.ALGORAND); + const mnem = algosdk_1.default.secretKeyToMnemonic( + js_base64_1.Base64.toUint8Array(key) + ); + return (0, algorand_1.algoSignerWrapper)( + algo.algod, + algosdk_1.default.mnemonicToSecretKey(mnem) + ); + } + default: { + const chainH = await inner(nonce); + return chainH.createWallet(key); + } + } + }, + estimateFees, + estimateSFTfees, + inner, + bridgeStatus, + updateParams(chainNonce, params) { + helpers.delete(chainNonce); + cToP.set(chainNonce, params); + }, + async nftList(chain, owner) { + let res = await nftlistRest.get(`/nfts/${chain.getNonce()}/${owner}`); + if (res.headers["Retry-After"]) { + await new Promise((r) => setTimeout(r, 30000)); + return await this.nftList(chain, owner); + } + return res.data.data; + }, + transferNft: async ( + fromChain, + toChain, + nft, + sender, + receiver, + fee, + mintWith, + gasLimit, + extraFee + ) => { + //@ts-ignore + if (nft.native.contract) { + if (![9, 18, 24, 31, 27].includes(fromChain.getNonce())) { + //@ts-ignore + checkNotOldWrappedNft( + new ethers_1.utils.getAddress(nft.native.contract) + ); + } + } + const tokenId = + //@ts-ignore + nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); + if (appConfig.network === "mainnet") { + await requireBridge([fromChain.getNonce(), toChain.getNonce()]); + } + if (!fee) { + fee = await estimateFees(fromChain, toChain, nft, receiver, extraFee); + console.log(new bignumber_js_1.default(fee).toString()); + } + // if (!(await toChain.validateAddress(receiver))) { + // throw Error("invalid address"); + // } + if (await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce())) { + await algoOptInCheck(nft, toChain, receiver); + const res = await fromChain.unfreezeWrappedNft( + sender, + receiver, + nft, + new bignumber_js_1.default(fee), + toChain.getNonce().toString(), + gasLimit + ); + return res; + } else { + const mw = + //@ts-ignore contract is checked + "contract" in nft.native && + mintWith && + (await checkMintWith( + nft.collectionIdent, + mintWith, + toChain.getNonce(), + fromChain.getNonce(), + (0, cons_1.prepareTokenId)(tokenId, fromChain.getNonce()) + )) + ? mintWith + : (0, cons_1.getDefaultContract)(nft, fromChain, toChain); + console.log(`Minting With : ${mw}`); + if (mw === undefined) { + throw new Error(`Mint with is not set`); + } + const res = await fromChain.transferNftToForeign( + sender, + toChain.getNonce(), + receiver, + nft, + new bignumber_js_1.default(fee), + mw, + gasLimit + ); + return res; + } + }, + mint: async (chain, owner, args) => { + return await chain.mintNft(owner, args); + }, + /** + * Claim a transferred NFT + * @param serialNumber The Serial Number of the claimable NFTs + * @param contractAddress The MintWith HTS Proxy Contract used in the transfer + * @param sender wallet of the sender + * @returns txn response of the claimer + */ + async claimHederaNFT(serialNumber, contractAddress, htsToken, sender) { + const htscf = new hethers_1.ContractFactory( + hts_abi_1.HEDERA_PROXY_ABI, + hts_abi_1.HEDERA_PROXY_BC, + sender + ); + const hts_contract = htscf.attach(contractAddress); + const cf = new hethers_1.ContractFactory( + hts_abi_1.HEDERA_TOKEN_SERVICE_ABI, + "0x", + sender + ); + const contract = cf.attach("0x0000000000000000000000000000000000000167"); + ( + await contract.associateToken(await sender.getAddress(), htsToken, { + gasLimit: 1000000, + }) + ).wait(); + const res = await hts_contract.functions.claimNft( + serialNumber, + htsToken, + { + gasLimit: 1000000, + } + ); + return res; + }, + /** + * Returns all the claimable NFTs of the contract + * @param proxyContract the address of the HTS Proxy contract that was used as mintWith in the transfer + * @param sender wallet of the sender + * @returns array of tokens that were minted + */ + async listHederaClaimableNFT(proxyContract, htsToken, sender) { + const cf = new hethers_1.ContractFactory( + hts_abi_1.HEDERA_PROXY_ABI, + hts_abi_1.HEDERA_PROXY_BC, + sender + ); + const contract = cf.attach(proxyContract); + const tokens = await contract.functions.getClaimableNfts( + await sender.getAddress(), + htsToken, + { + gasLimit: 1000000, + } + ); + return tokens[0]; + }, + waitAlgorandNft: async (origin, hash, claimer) => { + const action = await origin.extractAction(hash); + return await txSocket.waitAlgorandNft( + origin.getNonce(), + claimer.address, + action + ); + }, + claimableAlgorandNfts: async (claimer) => { + const algo = await inner(consts_1.Chain.ALGORAND); + return await algo.claimableNfts(txSocket, claimer); + }, + async checkWhitelist(chain, nft) { + if ( + !chain.isNftWhitelisted || + (await isWrappedNft(nft, chain.getNonce())) + ) { + return true; + } + return await chain.isNftWhitelisted(nft); + }, + isWrappedNft, + setProvider, + }; +} +exports.ChainFactory = ChainFactory; +__exportStar(require("./factories"), exports); +__exportStar(require("./cons"), exports); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLHNDQUE4QztBQUU5Qyw4Q0FBNEI7QUFFNUIsMEJBWVk7QUFDWixnRUFBcUM7QUFFckMsa0RBQTBCO0FBQzFCLGlDQU1nQjtBQUNoQixrREFBc0Q7QUFDdEQsNENBQStDO0FBQy9DLG1DQUF1QztBQUN2QyxrREFNNkI7QUFDN0Isc0RBQThCO0FBQzlCLHlDQUFtQztBQXdCbkMsZ0RBQTZEO0FBQzdELHVEQUltQztBQWdSbkMsU0FBUyxnQkFBZ0IsQ0FBQyxXQUFpQztJQUN6RCxNQUFNLElBQUksR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcs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 diff --git a/dist/factory/index.ts b/dist/factory/index.ts new file mode 100644 index 000000000..ecc82ba0f --- /dev/null +++ b/dist/factory/index.ts @@ -0,0 +1,987 @@ +import { ElrondParams } from "../helpers/elrond"; +import { TronParams } from "../helpers/tron"; +import { Web3Params } from "../helpers/web3"; +import { Chain, CHAIN_INFO } from "../consts"; + +export * from "./factories"; + +import { + ChainNonceGet, + EstimateTxFees, + ExtractAction, + ExtractTxnStatus, + MintNft, + NftInfo, + socketHelper, + TransactionStatus, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from ".."; +import BigNumber from "bignumber.js"; + +import axios from "axios"; +import { + _headers, + exchangeRateRepo, + getDefaultContract, + prepareTokenId, + checkBlockedContracts, +} from "./cons"; +import { UserSigner } from "@elrondnetwork/erdjs/out"; +import { bridgeHeartbeat } from "../heartbeat"; +import { ethers, utils } from "ethers"; +import { + AlgorandHelper, + AlgorandParams, + AlgoSignerH, + algoSignerWrapper, + ClaimNftInfo, +} from "../helpers/algorand"; +import algosdk from "algosdk"; +import { Base64 } from "js-base64"; +import { TezosParams } from "../helpers/tezos"; +import { + BalanceCheck, + EstimateTxFeesBatch, + FeeMargins, + GetFeeMargins, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + WhitelistCheck, +} from "../helpers/chain"; +import { + ChainNonce, + HelperMap, + InferChainH, + InferChainParam, + InferNativeNft, + InferSigner, + ParamMap, +} from "../type-utils"; +import { SecretParams } from "../helpers/secret"; +import { DfinityParams } from "../helpers/dfinity/dfinity"; +import { NearParams } from "../helpers/near"; +import { TonParams } from "../helpers/ton"; +import { ContractFactory, Wallet } from "@hashgraph/hethers"; +import { + HEDERA_PROXY_ABI, + HEDERA_PROXY_BC, + HEDERA_TOKEN_SERVICE_ABI, +} from "../helpers/hedera/hts_abi"; +import { AptosParams } from "../helpers/aptos"; +import { Web3ERC20Params } from "../helpers/web3_erc20"; +import { SolanaParams } from "../helpers/solana"; + +export type FullChain = TransferNftForeign< + Signer, + RawNft, + Resp +> & + UnfreezeForeignNft & + EstimateTxFees & + ChainNonceGet & + ValidateAddress & { XpNft: string; XpNft1155?: string } & GetFeeMargins; + +type FullChainBatch = FullChain & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFeesBatch; + +/** + * A type representing a chain factory. + */ +export type ChainFactory = { + /** + * Creates an helper factory for a given chain + * @param chain: {@link ChainNonce} to create the helper for. + */ + inner(chain: T): Promise>; + /** + * Whether or not the bridge is alive for a given chain + * this is checked regardless before using any bridge related function(e.g transferNft) is called + */ + bridgeStatus(): Promise<{ [chainNonce: number]: "alive" | "dead" }>; + /** + * Check the balance of an account + * + * @param inner The chain to check the balance in + * @param address address of the account + */ + balance(inner: BalanceCheck, address: string): Promise; + /** + * Transfers the NFT from one chain to other. + * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. + * @param toChain {@link FullChain} the chain to transfer to. Use inner method of the factory to get this. + * WARN: Algorand NFTs must be manually claimed by the receiver + * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the `nftList` method of the factory. + * @param sender {@link Sender} The owner of the NFT. + * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. + * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) + * @param mintWith an arbitrary address of the target chain minter contract + * @param gasLimit an arbitrary gas limit value (required for some chains) + */ + + transferNft( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + sender: SignerF, + receiver: string, + fee?: BigNumber.Value, + mintWith?: string, + gasLimit?: ethers.BigNumberish | undefined, + extraFee?: BigNumber.Value + ): Promise; + + transferBatchNft( + fromChain: FullChainBatch, + toChain: FullChainBatch, + nft: NftInfo[], + sender: SignerF, + receiver: string, + fee?: BigNumber.Value, + mintWith?: string + ): Promise; + + claimHederaNFT( + serialNumber: ethers.BigNumberish, + proxyAddress: string, + htsToken: string, + sender: Wallet + ): Promise; + + listHederaClaimableNFT( + proxyContract: string, + htsToken: string, + sender: Wallet + ): Promise; + + transferSft( + fromChain: FullChainBatch, + toChain: FullChainBatch, + nft: NftInfo, + sender: SignerF, + receiver: string, + amt: bigint, + fee?: BigNumber.Value, + mintWith?: string + ): Promise; + /** + * Mints an NFT on the chain. + * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. + * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar defi wallet. + * @param args: {@link NftMintArgs} Arguments to mint the nft. Contract is must for web3 and tron. Identifier is must for elrond. + */ + mint( + chain: MintNft, + owner: Signer, + args: Args + ): Promise; + /** + * Lists all the NFTs on the chain owner by {@param owner}. + * @param chain: Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. + * @param owner: Address of the owner of the NFT as a raw string. + */ + nftList( + chain: ChainNonceGet & T, + owner: string + ): Promise>[]>; + /** + * Estimates the required fee for transferring an NFT. + * @param fromChain: {@link FullChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. + * @param toChain: {@link FullChain} Chain to which the NFT must be sent. Can be obtained from the `inner` method on the factory. + * @param nft: {@link NftInfo} The NFT that has to be transferred. Generally comes from the `nftList` method of the factory. + * @param receiver: Address of the receiver of the NFT in raw string.. + */ + estimateFees( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + receiver: string + ): Promise; + + estimateSFTfees( + fromChain: FullChain, + amount: bigint, + price: number + ): Promise; + + estimateBatchFees( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo[], + receiver: string + ): Promise; + /** + * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. + * @param params : New Params to be set. + */ + updateParams( + nonce: T, + params: InferChainParam + ): void; + pkeyToSigner( + nonce: S, + key: string + ): Promise>>; + /** + * Get transaction in the destination chain + * WARN: use claimAlgorandNft instead for algorand. + * + * @param chain source chain + * @param destination destination chain + * @param hash transaction hash from source chain + * + * @returns transaction hash in original chain, unique action id + */ + getDestinationTransaction( + chain: ExtractAction & ExtractTxnStatus, + destination: number, + hash: Txn + ): Promise<[string, TransactionStatus]>; + /** + * Claim an algorand nft + * + * @param originChain chain from which the nft was transferred + * @param txn Transaction Hash of the original + * @param claimer the account which can claim the nft + */ + waitAlgorandNft( + originChain: ExtractAction & ChainNonceGet, + txn: Txn, + claimer: AlgoSignerH + ): Promise; + /** + * @param claimer: the account which can claim the nfts + */ + claimableAlgorandNfts(claimer: string): Promise; + + getVerifiedContract( + from: string, + targetChain: number, + fc: number, + tokenId?: string + ): Promise; + + checkWhitelist( + chain: Partial> & ChainNonceGet, + nft: NftInfo + ): Promise; + + isWrappedNft(nft: NftInfo, fromChain: number): Promise; + + setProvider(fromChain: number, provider: any): Promise; + + whitelistEVM( + chain: T, + address: string, + nonce: number + ): Promise<{ success: true }>; +}; + +/** + * A type representing all the supported chain params. + */ +export interface ChainParams { + elrondParams: ElrondParams; + hecoParams: Web3Params; + bscParams: Web3Params; + ropstenParams: Web3Params; + avalancheParams: Web3Params; + polygonParams: Web3Params; + fantomParams: Web3Params; + tronParams: TronParams; + celoParams: Web3Params; + harmonyParams: Web3Params; + ontologyParams: Web3Params; + xDaiParams: Web3Params; + algorandParams: AlgorandParams; + fuseParams: Web3Params; + uniqueParams: Web3Params; + tezosParams: TezosParams; + velasParams: Web3Params; + iotexParams: Web3Params; + vechainParams: Web3Params; + auroraParams: Web3Params; + godwokenParams: Web3Params; + gateChainParams: Web3Params; + secretParams: SecretParams; + hederaParams: Web3Params; + skaleParams: Web3ERC20Params; + dfinityParams: DfinityParams; + nearParams: NearParams; + moonbeamParams: Web3Params; + abeyChainParams: Web3Params; + tonParams: TonParams; + aptosParams: AptosParams; + solanaParams: SolanaParams; + caduceusParams: Web3Params; +} + +export type MoralisNetwork = "mainnet" | "testnet"; + +/** + * A struct for the configuration of the library. + * @field exchangeRateUri: The URI of the exchange rate service. + * @field moralisServer: The URI of the moralis server. + * @field moralisAppId: The app id of the moralis server. + * @field tronScanUri: The URI of the tron scan service. + */ +export interface AppConfig { + exchangeRateUri: string; + heartbeatUri: string; + txSocketUri: string; + nftListUri: string; + nftListAuthToken: string; + tronScanUri: string; + wrappedNftPrefix: string; + scVerifyUri: string; + network: "testnet" | "mainnet" | "staging"; +} + +function mapNonceToParams(chainParams: Partial): ParamMap { + const cToP: ParamMap = new Map(); + cToP.set(Chain.ELROND, chainParams.elrondParams); + cToP.set(Chain.HECO, chainParams.hecoParams); + cToP.set(Chain.BSC, chainParams.bscParams); + cToP.set(Chain.ETHEREUM, chainParams.ropstenParams); + cToP.set(Chain.AVALANCHE, chainParams.avalancheParams); + cToP.set(Chain.POLYGON, chainParams.polygonParams); + cToP.set(Chain.FANTOM, chainParams.fantomParams); + cToP.set(Chain.TRON, chainParams.tronParams); + cToP.set(Chain.CELO, chainParams.celoParams!); + cToP.set(Chain.HARMONY, chainParams.harmonyParams); + cToP.set(Chain.ONT, chainParams.ontologyParams); + cToP.set(Chain.XDAI, chainParams.xDaiParams); + cToP.set(Chain.ALGORAND, chainParams.algorandParams); + cToP.set(Chain.FUSE, chainParams.fuseParams); + cToP.set(Chain.UNIQUE, chainParams.uniqueParams); + cToP.set(Chain.TEZOS, chainParams.tezosParams); + cToP.set(Chain.VELAS, chainParams.velasParams); + cToP.set(Chain.IOTEX, chainParams.iotexParams); + cToP.set(Chain.AURORA, chainParams.auroraParams); + cToP.set(Chain.GODWOKEN, chainParams.godwokenParams); + cToP.set(Chain.GATECHAIN, chainParams.gateChainParams); + cToP.set(Chain.VECHAIN, chainParams.vechainParams); + cToP.set(Chain.SECRET, chainParams.secretParams); + cToP.set(Chain.HEDERA, chainParams.hederaParams); + cToP.set(Chain.SKALE, chainParams.skaleParams); + cToP.set(Chain.DFINITY, chainParams.dfinityParams); + cToP.set(Chain.NEAR, chainParams.nearParams); + cToP.set(Chain.MOONBEAM, chainParams.moonbeamParams); + cToP.set(Chain.ABEYCHAIN, chainParams.abeyChainParams); + cToP.set(Chain.TON, chainParams.tonParams); + cToP.set(Chain.APTOS, chainParams.aptosParams); + cToP.set(Chain.SOLANA, chainParams.solanaParams); + cToP.set(Chain.CADUCEUS, chainParams.caduceusParams); + return cToP; +} +/** + * This function is the basic entry point to use this package as a library. + * @param appConfig: {@link AppConfig} The configuration of the library. + * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. + * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. + */ +export function ChainFactory( + appConfig: AppConfig, + chainParams: Partial +): ChainFactory { + let helpers: HelperMap = new Map(); + let cToP = mapNonceToParams(chainParams); + + const heartbeatRepo = bridgeHeartbeat(appConfig.heartbeatUri); + + const remoteExchangeRate = exchangeRateRepo(appConfig.exchangeRateUri); + + const txSocket = socketHelper(appConfig.txSocketUri); + + const nftlistRest = axios.create({ + baseURL: appConfig.nftListUri, + headers: { + Authorization: `Bearer ${appConfig.nftListAuthToken}`, + }, + }); + + const inner = async ( + chain: T + ): Promise> => { + let helper = helpers.get(chain); + if (helper === undefined) { + helper = await CHAIN_INFO.get(chain)!.constructor(cToP.get(chain)!); + helpers.set(chain, helper); + } + return helper!; + }; + + const setProvider = async (chain: T, provider: any) => { + const args = { + ...cToP.get(chain)!, + provider, + }; + const helper = await CHAIN_INFO.get(chain)!.constructor(args); + helpers.set(chain, helper); + }; + + async function calcExchangeFees( + fromChain: T, + toChain: T, + val: BigNumber, + toChainFee: FeeMargins + ): Promise { + const rate = await remoteExchangeRate.getBatchedRate([ + CHAIN_INFO.get(toChain)!.currency, + CHAIN_INFO.get(fromChain)!.currency, + ]); + const feeR = val.dividedBy(CHAIN_INFO.get(toChain)!.decimals); + const fromExRate = rate.get(CHAIN_INFO.get(fromChain)!.currency)!; + const toExRate = rate.get(CHAIN_INFO.get(toChain)!.currency)!; + const usdFee = Math.min( + Math.max(toChainFee.min, feeR.times(toExRate * 0.1).toNumber()), + toChainFee.max + ); + const feeProfit = usdFee / fromExRate; + + return feeR + .times(toExRate / fromExRate) + .plus(feeProfit * 0.5) + .times(CHAIN_INFO.get(fromChain)!.decimals) + .integerValue(BigNumber.ROUND_CEIL); + } + const estimateFees = async ( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + receiver: string, + extraFee?: BigNumber.Value + ) => { + const estimate = await toChain.estimateValidateTransferNft( + receiver, + nft as any, + "" + ); + + let conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate, + toChain.getFeeMargin() + ); + + if (extraFee) { + conv = conv.multipliedBy(extraFee).integerValue(BigNumber.ROUND_CEIL); + console.log("extra conv"); + } + + return conv; + }; + + const estimateSFTfees = async ( + fromChain: FullChain, + amount: bigint, + price: number = 0.05 + ) => { + const rate = await remoteExchangeRate.getBatchedRate([ + CHAIN_INFO.get(fromChain.getNonce())!.currency, + ]); + + const fromExRate = rate.get( + CHAIN_INFO.get(fromChain.getNonce())!.currency + )!; + const y = price / fromExRate; + + const sftFees = Number(amount) <= 10 ? 0 : y * (Number(amount) - 10); + return new BigNumber(sftFees) + .multipliedBy(CHAIN_INFO.get(fromChain.getNonce())!.decimals) + .integerValue(); + }; + + async function bridgeStatus(): Promise<{ [x: number]: "alive" | "dead" }> { + const res = await heartbeatRepo.status(); + return Object.fromEntries( + Object.entries(res).map(([c, s]) => [ + c, + s.bridge_alive ? "alive" : "dead", + ]) + ); + } + + async function estimateBatchFees( + fromChain: FullChainBatch, + toChain: FullChainBatch, + nft: NftInfo[], + receiver: string + ): Promise { + const estimate = await toChain.estimateValidateTransferNftBatch( + receiver, + nft as any, + new Array(nft.length).fill(toChain.XpNft) + ); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate.times(nft.length), + toChain.getFeeMargin() + ); + return conv; + } + + async function requireBridge(chains: number[]): Promise { + const status = await heartbeatRepo.status(); + let deadChain: number | undefined; + const alive = chains.every((c) => { + const stat = status[c].bridge_alive; + if (!stat) { + deadChain = c; + } + return stat; + }); + if (!alive) { + throw Error(`chain ${deadChain} is dead! its unsafe to use the bridge`); + } + } + + const oldXpWraps = new Set([ + "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", + "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", + "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", + "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", + "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", + "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", + "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", + ]); + + function checkNotOldWrappedNft(contract: string) { + if (oldXpWraps.has(contract)) { + throw new Error(`${contract} is an old wrapped NFT`); + } + } + + async function isWrappedNft(nft: NftInfo, fc: number, tc?: number) { + if (fc === Chain.TEZOS) { + return ( + typeof (nft.native as any).meta?.token?.metadata?.wrapped !== + "undefined" + ); + } + try { + checkNotOldWrappedNft(nft.collectionIdent); + } catch (_) { + return false; + } + + const original = (await axios.get(nft.uri).catch(() => undefined))?.data + .wrapped; + const contract = original?.contract || original?.source_mint_ident; + tc && contract && checkBlockedContracts(tc, contract); + + return typeof original !== "undefined"; + } + + async function algoOptInCheck( + nft: NftInfo, + toChain: FullChain, + receiver: string + ) { + if ("meta" in (nft.native as Record)) return; + const nftDat = await axios.get(nft.uri); + if ( + nftDat.data.wrapped.origin == Chain.ALGORAND.toString() && + "isOptIn" in toChain && + !(await (toChain as AlgorandHelper).isOptIn( + receiver, + parseInt(nftDat.data.wrapped.assetID) + )) + ) { + throw Error("receiver hasn't opted-in to wrapped nft"); + } + } + + async function getVerifiedContract( + from: string, + tc: number, + fc: number, + tokenId?: string + ): Promise { + const res = await axios + .post<{ data: string }>( + `${appConfig.scVerifyUri}/default/`, + { + sc: from, + chain: tc, + fromChain: fc, + tokenId: tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined, + }, + { + headers: _headers, + } + ) + .catch(() => { + return undefined; + }); + return res?.data.data; + } + + async function checkMintWith( + from: string, + to: string, + targetChain: number, + fromChain: number, + tokenId?: string + ): Promise { + const res = await axios + .post<{ data: "allowed" | "not allowed" }>( + `${appConfig.scVerifyUri}/verify`, + { from, to, targetChain, fromChain, tokenId }, + { + headers: _headers, + } + ) + .catch(() => undefined); + + return res?.data.data == "allowed"; + } + + return { + getVerifiedContract, + balance: (i, a) => i.balance(a), + async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { + type Result = ReturnType; + let result: Result[] = []; + if (appConfig.network === "mainnet") { + await requireBridge([from.getNonce(), to.getNonce()]); + } + + if (!fee) { + fee = await estimateBatchFees(from, to, nfts, receiver); + } + if (!(await to.validateAddress(receiver))) { + throw Error("invalid address"); + } + console.log(`Batch Minting With: ${mw || to.XpNft1155!}`); + const wrapped: NftInfo[] = []; + const unwrapped: NftInfo[] = []; + await Promise.all( + nfts.map(async (e) => { + // @ts-ignore + if (e.native.contractType && e.native.contractType === "ERC721") { + throw new Error(`ERC721 is not supported`); + } + if (await isWrappedNft(e, from.getNonce())) { + wrapped.push(e); + } else { + unwrapped.push(e); + } + }) + ); + unwrapped.length && + result.push( + from.transferNftBatchToForeign( + signer, + to.getNonce(), + receiver, + unwrapped, + mw || to.XpNft1155!, + new BigNumber(fee) + ) + ); + wrapped.length && + result.push( + from.unfreezeWrappedNftBatch( + signer, + to.getNonce(), + receiver, + wrapped, + new BigNumber(fee) + ) + ); + return await Promise.all(result); + }, + estimateBatchFees, + async whitelistEVM(chain: T, address: string) { + const chainLocal = cToP.get(chain); + + if (!chainLocal) throw new Error("Chain not found"); + const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); + if (!params) throw new Error("An error occured"); + const isAddressValid = await params.validateAddress(address); + if (!isAddressValid) throw new Error("Address is not valid"); + + try { + await chainLocal.notifier.notifyEVM(chain, address); + return { success: true }; + } catch (error) { + throw new Error("An error occured"); + } + }, + async transferSft(from, to, nft, sender, receiver, amt, fee?, mintWith?) { + if (Number(amt) > 50) + throw new Error("Currenly more that 50 SFTs is not supported"); + let transfers = Array(parseInt(amt.toString())).fill(nft); + if (!fee) { + fee = await estimateFees(from, to, transfers[0], receiver); + } + const sftFees = await estimateSFTfees(from, amt, 0.05); + const x = new BigNumber(fee).plus(sftFees); + + console.log(x.toNumber()); + + if (amt === BigInt(1)) { + const response = this.transferNft( + from, + to, + nft, + sender, + receiver, + new BigNumber(x!).integerValue(), + mintWith + ); + return response as any; + } else { + const response = this.transferBatchNft( + from, + to, + transfers, + sender, + receiver, + new BigNumber(x!).integerValue(), + mintWith + ); + return response as any; + } + + const response = this.transferBatchNft( + from, + to, + transfers, + sender, + receiver, + new BigNumber(x!).integerValue(), + mintWith + ); + return response; + }, + async getDestinationTransaction( + chain: ExtractAction & ExtractTxnStatus, + targetNonce: number, + txn: T + ) { + const action = await chain.extractAction(txn); + const hash = await txSocket.waitTxHash(targetNonce, action); + const status = await chain.extractTxnStatus(hash); + return [hash, status]; + }, + async pkeyToSigner(nonce: T, key: string) { + switch (nonce) { + case Chain.ELROND: { + return UserSigner.fromPem(key); + } + case Chain.TRON: { + return key; + } + case Chain.ALGORAND: { + const algo = await inner(Chain.ALGORAND); + const mnem = algosdk.secretKeyToMnemonic(Base64.toUint8Array(key)); + return algoSignerWrapper( + algo.algod, + algosdk.mnemonicToSecretKey(mnem) + ); + } + default: { + const chainH = (await inner(nonce)) as any; + return chainH.createWallet(key); + } + } + }, + estimateFees, + estimateSFTfees, + inner, + bridgeStatus, + updateParams( + chainNonce: T, + params: InferChainParam + ) { + helpers.delete(chainNonce); + cToP.set(chainNonce, params); + }, + async nftList(chain: ChainNonceGet & T, owner: string) { + let res = await nftlistRest.get<{ data: NftInfo>[] }>( + `/nfts/${chain.getNonce()}/${owner}` + ); + + if (res.headers["Retry-After"]) { + await new Promise((r) => setTimeout(r, 30000)); + return await this.nftList(chain, owner); + } + return res.data.data; + }, + transferNft: async ( + fromChain, + toChain, + nft, + sender, + receiver, + fee, + mintWith, + gasLimit, + extraFee + ) => { + //@ts-ignore + if (nft.native.contract) { + if (![9, 18, 24, 31, 27].includes(fromChain.getNonce())) { + //@ts-ignore + checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); + } + } + + const tokenId = + //@ts-ignore + nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); + + if (appConfig.network === "mainnet") { + await requireBridge([fromChain.getNonce(), toChain.getNonce()]); + } + + if (!fee) { + fee = await estimateFees(fromChain, toChain, nft, receiver, extraFee); + console.log(new BigNumber(fee).toString()); + } + // if (!(await toChain.validateAddress(receiver))) { + // throw Error("invalid address"); + // } + + if (await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce())) { + await algoOptInCheck(nft, toChain, receiver); + + const res = await fromChain.unfreezeWrappedNft( + sender, + receiver, + nft, + new BigNumber(fee), + toChain.getNonce().toString(), + gasLimit + ); + + return res; + } else { + const mw = + //@ts-ignore contract is checked + "contract" in nft.native && + mintWith && + (await checkMintWith( + nft.collectionIdent, + mintWith, + toChain.getNonce(), + fromChain.getNonce(), + prepareTokenId(tokenId, fromChain.getNonce()) + )) + ? mintWith + : getDefaultContract(nft, fromChain, toChain); + + console.log(`Minting With : ${mw}`); + + if (mw === undefined) { + throw new Error(`Mint with is not set`); + } + + const res = await fromChain.transferNftToForeign( + sender, + toChain.getNonce(), + receiver, + nft, + new BigNumber(fee), + mw, + gasLimit + ); + + return res; + } + }, + mint: async ( + chain: MintNft, + owner: Signer, + args: Args + ): Promise => { + return await chain.mintNft(owner, args); + }, + /** + * Claim a transferred NFT + * @param serialNumber The Serial Number of the claimable NFTs + * @param contractAddress The MintWith HTS Proxy Contract used in the transfer + * @param sender wallet of the sender + * @returns txn response of the claimer + */ + async claimHederaNFT(serialNumber, contractAddress, htsToken, sender) { + const htscf = new ContractFactory( + HEDERA_PROXY_ABI, + HEDERA_PROXY_BC, + sender + ); + const hts_contract = htscf.attach(contractAddress); + const cf = new ContractFactory(HEDERA_TOKEN_SERVICE_ABI, "0x", sender); + const contract = cf.attach("0x0000000000000000000000000000000000000167"); + ( + await contract.associateToken(await sender.getAddress(), htsToken, { + gasLimit: 1000000, + }) + ).wait(); + + const res = await hts_contract.functions.claimNft( + serialNumber, + htsToken, + { + gasLimit: 1000000, + } + ); + return res; + }, + /** + * Returns all the claimable NFTs of the contract + * @param proxyContract the address of the HTS Proxy contract that was used as mintWith in the transfer + * @param sender wallet of the sender + * @returns array of tokens that were minted + */ + async listHederaClaimableNFT(proxyContract, htsToken, sender) { + const cf = new ContractFactory(HEDERA_PROXY_ABI, HEDERA_PROXY_BC, sender); + const contract = cf.attach(proxyContract); + const tokens = await contract.functions.getClaimableNfts( + await sender.getAddress(), + htsToken, + { + gasLimit: 1000000, + } + ); + return tokens[0]; + }, + waitAlgorandNft: async (origin, hash, claimer) => { + const action = await origin.extractAction(hash); + + return await txSocket.waitAlgorandNft( + origin.getNonce(), + claimer.address, + action + ); + }, + claimableAlgorandNfts: async (claimer) => { + const algo: AlgorandHelper = await inner(Chain.ALGORAND); + return await algo.claimableNfts(txSocket, claimer); + }, + async checkWhitelist(chain, nft) { + if ( + !chain.isNftWhitelisted || + (await isWrappedNft(nft, chain.getNonce())) + ) { + return true; + } + + return await chain.isNftWhitelisted(nft); + }, + isWrappedNft, + setProvider, + }; +} + +export * from "./factories"; +export * from "./cons"; diff --git a/dist/heartbeat/index.d.ts b/dist/heartbeat/index.d.ts new file mode 100644 index 000000000..f119e8d9b --- /dev/null +++ b/dist/heartbeat/index.d.ts @@ -0,0 +1,6 @@ +import { StatusResp } from "./resp"; +export type BridgeHeartbeat = { + status(): Promise; +}; +export declare function bridgeHeartbeat(baseURL: string): BridgeHeartbeat; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/heartbeat/index.d.ts.map b/dist/heartbeat/index.d.ts.map new file mode 100644 index 000000000..a43856854 --- /dev/null +++ b/dist/heartbeat/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heartbeat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAWhE"} \ No newline at end of file diff --git a/dist/heartbeat/index.js b/dist/heartbeat/index.js new file mode 100644 index 000000000..9f455a249 --- /dev/null +++ b/dist/heartbeat/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bridgeHeartbeat = void 0; +const axios_1 = __importDefault(require("axios")); +function bridgeHeartbeat(baseURL) { + const api = axios_1.default.create({ + baseURL, + }); + return { + async status() { + const res = await api.get("/status"); + return res.data; + }, + }; +} +exports.bridgeHeartbeat = bridgeHeartbeat; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVhcnRiZWF0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQU8xQixTQUFnQixlQUFlLENBQUMsT0FBZTtJQUM3QyxNQUFNLEdBQUcsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLE9BQU87S0FDUixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE1BQU07WUFDVixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQWEsU0FBUyxDQUFDLENBQUM7WUFDakQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2xCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQVhELDBDQVdDIn0= diff --git a/dist/heartbeat/index.ts b/dist/heartbeat/index.ts new file mode 100644 index 000000000..ec022a78f --- /dev/null +++ b/dist/heartbeat/index.ts @@ -0,0 +1,19 @@ +import axios from "axios"; +import { StatusResp } from "./resp"; + +export type BridgeHeartbeat = { + status(): Promise; +}; + +export function bridgeHeartbeat(baseURL: string): BridgeHeartbeat { + const api = axios.create({ + baseURL, + }); + + return { + async status() { + const res = await api.get("/status"); + return res.data; + }, + }; +} diff --git a/dist/heartbeat/resp.d.ts b/dist/heartbeat/resp.d.ts new file mode 100644 index 000000000..978e3f406 --- /dev/null +++ b/dist/heartbeat/resp.d.ts @@ -0,0 +1,17 @@ +type DeathReason = { + component: "node" | "validator" | "balance"; + error: string; +}; +type ValidatorStatus = { + status: "alive" | "dead"; + death_reason?: DeathReason; +}; +type ChainStatus = { + bridge_alive: boolean; + validators: ValidatorStatus[]; +}; +export type StatusResp = { + [chainNonce: string]: ChainStatus; +}; +export {}; +//# sourceMappingURL=resp.d.ts.map diff --git a/dist/heartbeat/resp.d.ts.map b/dist/heartbeat/resp.d.ts.map new file mode 100644 index 000000000..c3d1f3cf5 --- /dev/null +++ b/dist/heartbeat/resp.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"resp.d.ts","sourceRoot":"","sources":["../../src/heartbeat/resp.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC,CAAC"} \ No newline at end of file diff --git a/dist/heartbeat/resp.js b/dist/heartbeat/resp.js new file mode 100644 index 000000000..cf77ed2b9 --- /dev/null +++ b/dist/heartbeat/resp.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWFydGJlYXQvcmVzcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0= diff --git a/dist/heartbeat/resp.ts b/dist/heartbeat/resp.ts new file mode 100644 index 000000000..68263169d --- /dev/null +++ b/dist/heartbeat/resp.ts @@ -0,0 +1,18 @@ +type DeathReason = { + component: "node" | "validator" | "balance"; + error: string; +}; + +type ValidatorStatus = { + status: "alive" | "dead"; + death_reason?: DeathReason; +}; + +type ChainStatus = { + bridge_alive: boolean; + validators: ValidatorStatus[]; +}; + +export type StatusResp = { + [chainNonce: string]: ChainStatus; +}; diff --git a/dist/helpers/algorand.d.ts b/dist/helpers/algorand.d.ts new file mode 100644 index 000000000..5f03646e9 --- /dev/null +++ b/dist/helpers/algorand.d.ts @@ -0,0 +1,108 @@ +import WalletConnect from "@walletconnect/client"; +import algosdk, { SuggestedParams } from "algosdk"; +import { + AlgorandSocketHelper, + ChainNonceGet, + EstimateTxFees, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from ".."; +import MyAlgoConnect from "@randlabs/myalgo-connect"; +import { EvNotifier } from "../notifier"; +import { BalanceCheck, FeeMargins, GetFeeMargins, GetTokenURI } from "./chain"; +type TxResp = { + txId: string; +}; +type AlgoNft = { + "metadata-hash"?: string; + name?: string; + "unit-name"?: string; + url: string; + creator: string; + nftId: number; +}; +type SignedTxn = { + txID?: string; + blob: string; +}; +type Ledger = "MainNet" | "TestNet" | "any"; +type BrowserSigner = { + accounts(args: { ledger: Ledger }): Promise< + { + address: string; + }[] + >; + signTxn( + transactions: { + txn: string; + }[] + ): Promise; + send(info: { ledger: Ledger; tx: string }): Promise; +}; +export type ClaimNftInfo = { + appId: number; + nftId: number; +}; +/** + * Selected address & ledger must be given explicitly + */ +export type AlgoSignerH = { + readonly algoSigner: BrowserSigner; + readonly address: string; + readonly ledger: Ledger; +}; +/** + * This library is written in typescript. + * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. + * + * @return Strongly typed AlgoSigner from extension + */ +export declare function typedAlgoSigner(): BrowserSigner; +export declare function algoSignerWrapper( + algod: algosdk.Algodv2, + acc: algosdk.Account +): AlgoSignerH; +export type FullClaimNft = ClaimNftInfo & { + name: string; + uri: string; +}; +export type AlgorandHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + algod: algosdk.Algodv2; + claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; + claimableNfts( + txSocket: AlgorandSocketHelper, + owner: string + ): Promise; + isOptIn(address: string, nftId: number): Promise; + optInNft( + signer: AlgoSignerH, + info: ClaimNftInfo + ): Promise; + walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; + myAlgoSigner(myAlgo: MyAlgoConnect, address: string): AlgoSignerH; + } & Pick< + PreTransfer, + "preTransfer" + > & { + XpNft: string; + } & GetFeeMargins & + BalanceCheck & + GetTokenURI; +export type AlgorandParams = { + algodApiKey: string; + algodUri: string; + indexerUri: string; + algodPort: number | undefined; + sendNftAppId: number; + notifier: EvNotifier; + feeMargin: FeeMargins; +}; +export declare function algorandHelper(args: AlgorandParams): AlgorandHelper; +export {}; +//# sourceMappingURL=algorand.d.ts.map diff --git a/dist/helpers/algorand.d.ts.map b/dist/helpers/algorand.d.ts.map new file mode 100644 index 000000000..1cc851159 --- /dev/null +++ b/dist/helpers/algorand.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"algorand.d.ts","sourceRoot":"","sources":["../../src/helpers/algorand.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAInD,OAAO,EACL,oBAAoB,EAEpB,aAAa,EACb,cAAc,EAEd,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/E,KAAK,MAAM,GAAG;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAE5C,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,YAAY,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,aAAa,CAQ/C;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,CAAC,OAAO,EACtB,GAAG,EAAE,OAAO,CAAC,OAAO,GACnB,WAAW,CAiCb;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,aAAa,GACxC,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,GAChD,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,GAChD,cAAc,CAAC,OAAO,CAAC,GACvB,eAAe,GAAG;IAChB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,aAAa,CACX,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,QAAQ,CACN,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/B,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5E,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;CACnE,GAAG,IAAI,CACN,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,EAC7D,aAAa,CACd,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GACrC,YAAY,GACZ,WAAW,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAWF,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAiZnE"} \ No newline at end of file diff --git a/dist/helpers/algorand.js b/dist/helpers/algorand.js new file mode 100644 index 000000000..1e5977208 --- /dev/null +++ b/dist/helpers/algorand.js @@ -0,0 +1,452 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.algorandHelper = + exports.algoSignerWrapper = + exports.typedAlgoSigner = + void 0; +const algosdk_1 = __importDefault(require("algosdk")); +const utils_1 = require("@json-rpc-tools/utils"); +const bignumber_js_1 = require("bignumber.js"); +const js_base64_1 = require("js-base64"); +const __1 = require(".."); +/** + * This library is written in typescript. + * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. + * + * @return Strongly typed AlgoSigner from extension + */ +function typedAlgoSigner() { + //@ts-expect-error why do you inject libraries like this :| + if (typeof AlgoSigner === "undefined") { + throw Error("algosigner not available!"); + } + //@ts-expect-error why do you inject libraries like this :| + return AlgoSigner; +} +exports.typedAlgoSigner = typedAlgoSigner; +function algoSignerWrapper(algod, acc) { + const signer = { + accounts(_) { + return Promise.resolve([ + { + address: acc.addr, + }, + ]); + }, + signTxn(txns) { + return Promise.resolve( + txns.map((t) => { + const signed = algosdk_1.default.signTransaction( + algosdk_1.default.decodeUnsignedTransaction( + js_base64_1.Base64.toUint8Array(t.txn) + ), + acc.sk + ); + return { + txID: signed.txID, + blob: js_base64_1.Base64.fromUint8Array(signed.blob), + }; + }) + ); + }, + send({ tx }) { + return algod.sendRawTransaction(js_base64_1.Base64.toUint8Array(tx)).do(); + }, + }; + return { + algoSigner: signer, + address: acc.addr, + ledger: "any", + }; +} +exports.algoSignerWrapper = algoSignerWrapper; +// type MinWrappedNft = { +// wrapped: { +// origin: string; +// }; +// }; +const encoder = new TextEncoder(); +const MINT_NFT_COST = new bignumber_js_1.BigNumber(1000); +function algorandHelper(args) { + const appAddr = algosdk_1.default.getApplicationAddress(args.sendNftAppId); + const algod = new algosdk_1.default.Algodv2( + args.algodApiKey, + args.algodUri, + args.algodPort + ); + const indexer = new algosdk_1.default.Indexer( + args.algodApiKey, + args.indexerUri, + args.algodPort + ); + async function waitTxnConfirm(txId) { + const status = await algod.status().do(); + let lastRound = status["last-round"]; + algod.pendingTransactionsInformation(); + let pendingInfo = await algod + .pendingTransactionInformation(txId) + .do() + .catch(() => ({})); + while ( + !(pendingInfo["confirmed-round"] && pendingInfo["confirmed-round"] > 0) + ) { + lastRound += 1; + await algod.statusAfterBlock(lastRound).do(); + pendingInfo = await algod.pendingTransactionInformation(txId).do(); + } + } + // async function compileProgram( + // client: Algodv2, + // programSource: string + // ) { + // const enc = new TextEncoder(); + // const programBytes = enc.encode(programSource); + // const compileResponse = await client.compile(programBytes).do(); + // const compiledBytes = new Uint8Array( + // Buffer.from(compileResponse.result, 'base64') + // ); + // return compiledBytes; + // }; + // async function getMintPoolProgram(client: Algodv2, recv: any) { + // const poolSrc = fs.readFileSync(__dirname + '/bridge_pool.tmpl.teal'); + // return await compileProgram( + // client, + // poolSrc.toString().replace('TMPL_RECV_ADDR', recv) + // ); + // } + const transferNft = async ( + signer, + chain_nonce, + to, + nft, + txFees, + mintWith + ) => { + const suggested = await algod.getTransactionParams().do(); + const transferTx = + algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: 1, + assetIndex: nft.native.nftId, + suggestedParams: suggested, + }); + const paymentTxn = + algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ + from: signer.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(txFees.toString()), + }); + const appArgs = [ + encoder.encode("freeze_nft"), + encoder.encode(to), + new Uint8Array( + Buffer.concat([ + Buffer.from(new Uint32Array([0]).buffer), + Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse(), + ]) + ), + ]; + if (mintWith) { + appArgs.push(encoder.encode(mintWith)); + } + const tCallTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs, + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + algosdk_1.default.assignGroupID([tCallTx, transferTx, paymentTxn]); + const encodedTxns = [ + { txn: js_base64_1.Base64.fromUint8Array(tCallTx.toByte()) }, + { txn: js_base64_1.Base64.fromUint8Array(transferTx.toByte()) }, + { txn: js_base64_1.Base64.fromUint8Array(paymentTxn.toByte()) }, + ]; + const signedTxns = await signer.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + js_base64_1.Base64.toUint8Array(signedTxns[0].blob), + js_base64_1.Base64.toUint8Array(signedTxns[1].blob), + js_base64_1.Base64.toUint8Array(signedTxns[2].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + await args.notifier.notifyAlgorand(sendRes.txId); + return sendRes.txId; + }; + async function isOptIn(addr, nftId) { + const userRes = await indexer.lookupAccountByID(addr).do(); + const user = userRes["account"]; + if (!user.assets) return false; + for (let i = 0; i < user["assets"].length; i++) { + if (user["assets"][i]["asset-id"] === nftId) { + return true; + } + } + return false; + } + async function optInNft(signer, nft) { + if (await isOptIn(signer.address, nft.nftId)) { + return undefined; + } + const suggested = await algod.getTransactionParams().do(); + const optIn = + algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: signer.address, + amount: 0, + assetIndex: nft.nftId, + suggestedParams: suggested, + }); + const encodedTx = js_base64_1.Base64.fromUint8Array(optIn.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob, + }); + await waitTxnConfirm(res.txId); + return res.txId; + } + async function claimNft(signer, info) { + await optInNft(signer, info); + const suggested = await algod.getTransactionParams().do(); + const txn = algosdk_1.default.makeApplicationNoOpTxnFromObject({ + from: signer.address, + suggestedParams: suggested, + appIndex: info.appId, + appArgs: [encoder.encode("transfer_nft")], + foreignAssets: [info.nftId], + }); + const encodedTx = js_base64_1.Base64.fromUint8Array(txn.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob, + }); + await waitTxnConfirm(res.txId); + return res.txId; + } + return { + XpNft: "", + algod, + getNonce: () => __1.Chain.ALGORAND, + claimNft, + optInNft, + isOptIn, + async balance(address) { + const acc = await algod + .accountInformation(address) + .do() + .catch(() => undefined); + if (!acc) return new bignumber_js_1.BigNumber(0); + return new bignumber_js_1.BigNumber(acc.amount); + }, + async preTransfer(sender, nft, fee) { + if (await isOptIn(sender.address, nft.native.nftId)) { + return undefined; + } + const suggested = await algod.getTransactionParams().do(); + const callTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ + from: sender.address, + appIndex: args.sendNftAppId, + appArgs: [encoder.encode("optin_asset")], + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + const feesTx = + algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ + from: sender.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(fee.toString()), + }); + algosdk_1.default.assignGroupID([callTx, feesTx]); + const encodedTxns = [ + { txn: js_base64_1.Base64.fromUint8Array(callTx.toByte()) }, + { txn: js_base64_1.Base64.fromUint8Array(feesTx.toByte()) }, + ]; + const signedTxns = await sender.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + js_base64_1.Base64.toUint8Array(signedTxns[0].blob), + js_base64_1.Base64.toUint8Array(signedTxns[1].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + return suggested; + }, + getFeeMargin() { + return args.feeMargin; + }, + transferNftToForeign: transferNft, + unfreezeWrappedNft: async (signer, to, nft, txFees, nonce) => { + const suggested = await algod.getTransactionParams().do(); + const transferTx = + algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: 1, + assetIndex: nft.native.nftId, + suggestedParams: suggested, + }); + const sTransferTx = await signer.algoSigner.signTxn([ + { txn: js_base64_1.Base64.fromUint8Array(transferTx.toByte()) }, + ]); + const transferRes = await algod + .sendRawTransaction( + js_base64_1.Base64.toUint8Array(sTransferTx[0].blob) + ) + .do(); + await waitTxnConfirm(transferRes.txId); + const paymentTxn = + algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ + from: signer.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(txFees.toString()), + }); + const appArgs = [ + encoder.encode("withdraw_nft"), + encoder.encode(to), + new Uint8Array( + Buffer.from(new Uint32Array([parseInt(nonce)]).buffer).reverse() + ), + new Uint8Array(Buffer.from("")), + ]; + const tCallTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs, + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + algosdk_1.default.assignGroupID([tCallTx, paymentTxn]); + const encodedTxns = [ + { txn: js_base64_1.Base64.fromUint8Array(tCallTx.toByte()) }, + { txn: js_base64_1.Base64.fromUint8Array(paymentTxn.toByte()) }, + ]; + const signedTxns = await signer.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + js_base64_1.Base64.toUint8Array(signedTxns[0].blob), + js_base64_1.Base64.toUint8Array(signedTxns[1].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + await args.notifier.notifyAlgorand(sendRes.txId); + return sendRes.txId; + }, + estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), + estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), + validateAddress: (adr) => + Promise.resolve(algosdk_1.default.isValidAddress(adr)), + claimableNfts: async (txSocket, owner) => { + await txSocket.cleanNfts(owner); + const claims = await txSocket.claimNfts(owner); + const res = await Promise.all( + claims.map(async (v) => { + const appId = parseInt(v.app_id); + const nftId = parseInt(v.nft_id); + const assetRes = await indexer + .lookupAssetByID(nftId) + .do() + .catch(() => undefined); + if (assetRes == undefined) return []; + const assetInfo = assetRes.asset; + const bal = await indexer + .lookupAssetBalances(nftId) + .currencyGreaterThan(0) + .currencyLessThan(2) + .limit(1) + .do(); + if (bal.balances[0].address == owner || bal.balances[0].amount == 0) + return []; + return [ + { + nftId, + appId, + uri: assetInfo.params.url, + name: assetInfo.params.name || "", + }, + ]; + }) + ); + return res.flat(); + }, + walletConnectSigner(connector, address) { + const signer = { + accounts(_) { + return Promise.resolve( + connector.accounts.map((s) => ({ address: s })) + ); + }, + async signTxn(txns) { + const req = (0, utils_1.formatJsonRpcRequest)("algo_signTxn", [txns]); + const signed = await connector.sendCustomRequest(req); + const decoded = signed.map((s) => { + return { + blob: s ?? "", + }; + }); + if (decoded.length != txns.length) { + throw Error("Couldn't sign all transactions!"); + } + return decoded; + }, + send(info) { + return algod + .sendRawTransaction(js_base64_1.Base64.toUint8Array(info.tx)) + .do(); + }, + }; + return { + algoSigner: signer, + address, + ledger: "any", + }; + }, + myAlgoSigner(myAlgo, address) { + const signer = { + async accounts(_) { + const accs = await myAlgo.connect(); + return accs; + }, + async signTxn(txns) { + const stxs = await myAlgo.signTransaction(txns.map(({ txn }) => txn)); + return stxs.map((tx) => ({ + txID: tx.txID, + blob: js_base64_1.Base64.fromUint8Array(tx.blob), + })); + }, + send(info) { + return algod + .sendRawTransaction(js_base64_1.Base64.toUint8Array(info.tx)) + .do(); + }, + }; + return { + algoSigner: signer, + address, + ledger: "any", + }; + }, + async getTokenURI(_, tokenId) { + if (tokenId) { + const res = await indexer.lookupAssetByID(+tokenId).do(); + if (res?.asset?.params) { + return res.asset.params.url; + } + } + return ""; + }, + }; +} +exports.algorandHelper = algorandHelper; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxnb3JhbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9hbGdvcmFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxzREFBbUQ7QUFDbkQsaURBQTZEO0FBQzdELCtDQUF5QztBQUN6Qyx5Q0FBbUM7QUFDbkMsMEJBVVk7QUE2Q1o7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlO0lBQzdCLDJEQUEyRDtJQUMzRCxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRTtRQUNyQyxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQzFDO0lBRUQsMkRBQTJEO0lBQzNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFSRCwwQ0FRQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixLQUFzQixFQUN0QixHQUFvQjtJQUVwQixNQUFNLE1BQU0sR0FBa0I7UUFDNUIsUUFBUSxDQUFDLENBQUM7WUFDUixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ3JCO29CQUNFLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSTtpQkFDbEI7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUk7WUFDVixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDYixNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLGVBQWUsQ0FDcEMsaUJBQU8sQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDN0QsR0FBRyxDQUFDLEVBQUUsQ0FDUCxDQUFDO2dCQUNGLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNqQixJQUFJLEVBQUUsa0JBQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztpQkFDekMsQ0FBQztZQUNK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 diff --git a/dist/helpers/algorand.ts b/dist/helpers/algorand.ts new file mode 100644 index 000000000..1e8112f10 --- /dev/null +++ b/dist/helpers/algorand.ts @@ -0,0 +1,565 @@ +import WalletConnect from "@walletconnect/client"; +import algosdk, { SuggestedParams } from "algosdk"; +import { formatJsonRpcRequest } from "@json-rpc-tools/utils"; +import { BigNumber } from "bignumber.js"; +import { Base64 } from "js-base64"; +import { + AlgorandSocketHelper, + Chain, + ChainNonceGet, + EstimateTxFees, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from ".."; +import MyAlgoConnect from "@randlabs/myalgo-connect"; +import { EvNotifier } from "../notifier"; +import { BalanceCheck, FeeMargins, GetFeeMargins, GetTokenURI } from "./chain"; + +type TxResp = { + txId: string; +}; + +type AlgoNft = { + "metadata-hash"?: string; + name?: string; + "unit-name"?: string; + url: string; + creator: string; + nftId: number; +}; + +type SignedTxn = { + txID?: string; + blob: string; +}; + +type Ledger = "MainNet" | "TestNet" | "any"; + +type BrowserSigner = { + accounts(args: { ledger: Ledger }): Promise<{ address: string }[]>; + signTxn(transactions: { txn: string }[]): Promise; + send(info: { ledger: Ledger; tx: string }): Promise; +}; + +export type ClaimNftInfo = { + appId: number; + nftId: number; +}; + +/** + * Selected address & ledger must be given explicitly + */ +export type AlgoSignerH = { + readonly algoSigner: BrowserSigner; + readonly address: string; + readonly ledger: Ledger; +}; + +/** + * This library is written in typescript. + * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. + * + * @return Strongly typed AlgoSigner from extension + */ +export function typedAlgoSigner(): BrowserSigner { + //@ts-expect-error why do you inject libraries like this :| + if (typeof AlgoSigner === "undefined") { + throw Error("algosigner not available!"); + } + + //@ts-expect-error why do you inject libraries like this :| + return AlgoSigner; +} + +export function algoSignerWrapper( + algod: algosdk.Algodv2, + acc: algosdk.Account +): AlgoSignerH { + const signer: BrowserSigner = { + accounts(_) { + return Promise.resolve([ + { + address: acc.addr, + }, + ]); + }, + signTxn(txns) { + return Promise.resolve( + txns.map((t) => { + const signed = algosdk.signTransaction( + algosdk.decodeUnsignedTransaction(Base64.toUint8Array(t.txn)), + acc.sk + ); + return { + txID: signed.txID, + blob: Base64.fromUint8Array(signed.blob), + }; + }) + ); + }, + send({ tx }) { + return algod.sendRawTransaction(Base64.toUint8Array(tx)).do(); + }, + }; + + return { + algoSigner: signer, + address: acc.addr, + ledger: "any", + }; +} + +export type FullClaimNft = ClaimNftInfo & { + name: string; + uri: string; +}; + +export type AlgorandHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + algod: algosdk.Algodv2; + claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; + claimableNfts( + txSocket: AlgorandSocketHelper, + owner: string + ): Promise; + isOptIn(address: string, nftId: number): Promise; + optInNft( + signer: AlgoSignerH, + info: ClaimNftInfo + ): Promise; + walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; + myAlgoSigner(myAlgo: MyAlgoConnect, address: string): AlgoSignerH; + } & Pick< + PreTransfer, + "preTransfer" + > & { XpNft: string } & GetFeeMargins & + BalanceCheck & + GetTokenURI; + +export type AlgorandParams = { + algodApiKey: string; + algodUri: string; + indexerUri: string; + algodPort: number | undefined; + sendNftAppId: number; + notifier: EvNotifier; + feeMargin: FeeMargins; +}; + +// type MinWrappedNft = { +// wrapped: { +// origin: string; +// }; +// }; + +const encoder = new TextEncoder(); +const MINT_NFT_COST = new BigNumber(1000); + +export function algorandHelper(args: AlgorandParams): AlgorandHelper { + const appAddr = algosdk.getApplicationAddress(args.sendNftAppId); + const algod = new algosdk.Algodv2( + args.algodApiKey, + args.algodUri, + args.algodPort + ); + const indexer = new algosdk.Indexer( + args.algodApiKey, + args.indexerUri, + args.algodPort + ); + + async function waitTxnConfirm(txId: string) { + const status = await algod.status().do(); + let lastRound = status["last-round"]; + algod.pendingTransactionsInformation(); + let pendingInfo = (await algod + .pendingTransactionInformation(txId) + .do() + .catch(() => ({}))) as Record; + + while ( + !(pendingInfo["confirmed-round"] && pendingInfo["confirmed-round"] > 0) + ) { + lastRound += 1; + await algod.statusAfterBlock(lastRound).do(); + pendingInfo = await algod.pendingTransactionInformation(txId).do(); + } + } + + // async function compileProgram( + // client: Algodv2, + // programSource: string + // ) { + // const enc = new TextEncoder(); + // const programBytes = enc.encode(programSource); + // const compileResponse = await client.compile(programBytes).do(); + // const compiledBytes = new Uint8Array( + // Buffer.from(compileResponse.result, 'base64') + // ); + // return compiledBytes; + // }; + + // async function getMintPoolProgram(client: Algodv2, recv: any) { + // const poolSrc = fs.readFileSync(__dirname + '/bridge_pool.tmpl.teal'); + // return await compileProgram( + // client, + // poolSrc.toString().replace('TMPL_RECV_ADDR', recv) + // ); + // } + + const transferNft = async ( + signer: AlgoSignerH, + chain_nonce: number, + to: string, + nft: NftInfo, + txFees: BigNumber, + mintWith?: string + ) => { + const suggested = await algod.getTransactionParams().do(); + + const transferTx = + algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: 1, + assetIndex: nft.native.nftId, + suggestedParams: suggested, + }); + + const paymentTxn = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ + from: signer.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(txFees.toString()), + }); + const appArgs = [ + encoder.encode("freeze_nft"), + encoder.encode(to), + new Uint8Array( + Buffer.concat([ + Buffer.from(new Uint32Array([0]).buffer), + Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse(), + ]) + ), + ]; + if (mintWith) { + appArgs.push(encoder.encode(mintWith)); + } + const tCallTx = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs, + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + algosdk.assignGroupID([tCallTx, transferTx, paymentTxn]); + const encodedTxns = [ + { txn: Base64.fromUint8Array(tCallTx.toByte()) }, + { txn: Base64.fromUint8Array(transferTx.toByte()) }, + { txn: Base64.fromUint8Array(paymentTxn.toByte()) }, + ]; + const signedTxns = await signer.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + Base64.toUint8Array(signedTxns[0].blob), + Base64.toUint8Array(signedTxns[1].blob), + Base64.toUint8Array(signedTxns[2].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + + await args.notifier.notifyAlgorand(sendRes.txId); + + return sendRes.txId as string; + }; + + async function isOptIn(addr: string, nftId: number) { + const userRes = await indexer.lookupAccountByID(addr).do(); + const user = userRes["account"]; + if (!user.assets) return false; + + for (let i = 0; i < user["assets"].length; i++) { + if (user["assets"][i]["asset-id"] === nftId) { + return true; + } + } + + return false; + } + + async function optInNft(signer: AlgoSignerH, nft: ClaimNftInfo) { + if (await isOptIn(signer.address, nft.nftId)) { + return undefined; + } + + const suggested = await algod.getTransactionParams().do(); + const optIn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: signer.address, + amount: 0, + assetIndex: nft.nftId, + suggestedParams: suggested, + }); + const encodedTx = Base64.fromUint8Array(optIn.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob, + }); + await waitTxnConfirm(res.txId); + return res.txId; + } + + async function claimNft(signer: AlgoSignerH, info: ClaimNftInfo) { + await optInNft(signer, info); + + const suggested = await algod.getTransactionParams().do(); + const txn = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + suggestedParams: suggested, + appIndex: info.appId, + appArgs: [encoder.encode("transfer_nft")], + foreignAssets: [info.nftId], + }); + + const encodedTx = Base64.fromUint8Array(txn.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob, + }); + await waitTxnConfirm(res.txId); + return res.txId; + } + + return { + XpNft: "", + algod, + getNonce: () => Chain.ALGORAND, + claimNft, + optInNft, + isOptIn, + async balance(address) { + const acc = await algod + .accountInformation(address) + .do() + .catch(() => undefined); + if (!acc) return new BigNumber(0); + + return new BigNumber(acc.amount); + }, + async preTransfer(sender, nft, fee) { + if (await isOptIn(sender.address, nft.native.nftId)) { + return undefined; + } + + const suggested = await algod.getTransactionParams().do(); + const callTx = algosdk.makeApplicationNoOpTxnFromObject({ + from: sender.address, + appIndex: args.sendNftAppId, + appArgs: [encoder.encode("optin_asset")], + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + const feesTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ + from: sender.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(fee.toString()), + }); + + algosdk.assignGroupID([callTx, feesTx]); + const encodedTxns = [ + { txn: Base64.fromUint8Array(callTx.toByte()) }, + { txn: Base64.fromUint8Array(feesTx.toByte()) }, + ]; + const signedTxns = await sender.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + Base64.toUint8Array(signedTxns[0].blob), + Base64.toUint8Array(signedTxns[1].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + + return suggested; + }, + getFeeMargin() { + return args.feeMargin; + }, + transferNftToForeign: transferNft, + unfreezeWrappedNft: async (signer, to, nft, txFees, nonce) => { + const suggested = await algod.getTransactionParams().do(); + + const transferTx = + algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: 1, + assetIndex: nft.native.nftId, + suggestedParams: suggested, + }); + const sTransferTx = await signer.algoSigner.signTxn([ + { txn: Base64.fromUint8Array(transferTx.toByte()) }, + ]); + const transferRes = await algod + .sendRawTransaction(Base64.toUint8Array(sTransferTx[0].blob)) + .do(); + await waitTxnConfirm(transferRes.txId as string); + + const paymentTxn = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ + from: signer.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(txFees.toString()), + }); + const appArgs = [ + encoder.encode("withdraw_nft"), + encoder.encode(to), + new Uint8Array( + Buffer.from(new Uint32Array([parseInt(nonce)]).buffer).reverse() + ), + new Uint8Array(Buffer.from("")), + ]; + const tCallTx = algosdk.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs, + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + algosdk.assignGroupID([tCallTx, paymentTxn]); + const encodedTxns = [ + { txn: Base64.fromUint8Array(tCallTx.toByte()) }, + { txn: Base64.fromUint8Array(paymentTxn.toByte()) }, + ]; + const signedTxns = await signer.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + Base64.toUint8Array(signedTxns[0].blob), + Base64.toUint8Array(signedTxns[1].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + + await args.notifier.notifyAlgorand(sendRes.txId); + + return sendRes.txId as string; + }, + estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), + estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), + validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), + claimableNfts: async (txSocket: AlgorandSocketHelper, owner: string) => { + await txSocket.cleanNfts(owner); + const claims = await txSocket.claimNfts(owner); + + const res = await Promise.all( + claims.map(async (v) => { + const appId = parseInt(v.app_id); + const nftId = parseInt(v.nft_id); + const assetRes = await indexer + .lookupAssetByID(nftId) + .do() + .catch(() => undefined); + if (assetRes == undefined) return []; + const assetInfo = assetRes.asset; + + const bal = await indexer + .lookupAssetBalances(nftId) + .currencyGreaterThan(0) + .currencyLessThan(2) + .limit(1) + .do(); + if (bal.balances[0].address == owner || bal.balances[0].amount == 0) + return []; + + return [ + { + nftId, + appId, + uri: assetInfo.params.url as string, + name: (assetInfo.params.name as string) || "", + }, + ]; + }) + ); + + return res.flat(); + }, + walletConnectSigner( + connector: WalletConnect, + address: string + ): AlgoSignerH { + const signer: BrowserSigner = { + accounts(_) { + return Promise.resolve( + connector.accounts.map((s) => ({ address: s })) + ); + }, + async signTxn(txns) { + const req = formatJsonRpcRequest("algo_signTxn", [txns]); + const signed: Array = + await connector.sendCustomRequest(req); + const decoded = signed.map((s) => { + return { + blob: s ?? "", + } as SignedTxn; + }); + if (decoded.length != txns.length) { + throw Error("Couldn't sign all transactions!"); + } + + return decoded; + }, + send(info: { tx: string }): Promise { + return algod.sendRawTransaction(Base64.toUint8Array(info.tx)).do(); + }, + }; + + return { + algoSigner: signer, + address, + ledger: "any", + }; + }, + myAlgoSigner(myAlgo, address): AlgoSignerH { + const signer: BrowserSigner = { + async accounts(_) { + const accs = await myAlgo.connect(); + return accs; + }, + async signTxn(txns) { + const stxs = await myAlgo.signTransaction(txns.map(({ txn }) => txn)); + return stxs.map((tx) => ({ + txID: tx.txID, + blob: Base64.fromUint8Array(tx.blob), + })); + }, + send(info: { tx: string }): Promise { + return algod.sendRawTransaction(Base64.toUint8Array(info.tx)).do(); + }, + }; + + return { + algoSigner: signer, + address, + ledger: "any", + }; + }, + async getTokenURI(_, tokenId) { + if (tokenId) { + const res = await indexer.lookupAssetByID(+tokenId).do(); + if (res?.asset?.params) { + return res.asset.params.url as string; + } + } + return ""; + }, + }; +} diff --git a/dist/helpers/aptos/bridge_client.d.ts b/dist/helpers/aptos/bridge_client.d.ts new file mode 100644 index 000000000..d2bde53f4 --- /dev/null +++ b/dist/helpers/aptos/bridge_client.d.ts @@ -0,0 +1,130 @@ +import { AptosAccount, AptosClient, HexString, MaybeHexString } from "aptos"; +interface BridgeData { + action_cnt: string; + burning_nfts: { + handle: string; + }; + consumed_actions: { + handle: string; + }; + group_key: string; + paused: boolean; + frozen_nfts: { + handle: string; + }; + whitelist: { + handle: string; + }; +} +export declare class BridgeClient { + private aptosClient; + private transactionBuilder; + private address; + constructor( + aptosClient: AptosClient, + address: string, + network: "mainnet" | "staging" | "testnet" + ); + initialize(account: AptosAccount, groupKey: Uint8Array): Promise; + pause( + account: AptosAccount, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + unpause( + account: AptosAccount, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + validateWhitelist( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + validateBlacklist( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + validateWithdrawFees( + account: AptosAccount, + to: HexString, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + validateTransferNft( + account: AptosAccount, + collection: string, + name: string, + description: string, + maximum: number | bigint, + uri: string, + royaltyPayeeAddress: HexString, + royaltyPointsDenominator: number | bigint, + royaltyPointsNumerator: number | bigint, + mutateSetting: boolean[], + to: HexString, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + withdrawNft( + account: AptosAccount, + _bridgeAdmin: HexString, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string, + price: number | bigint, + chainNonce: number | bigint, + to: string, + mintWith: string + ): Promise; + validateBurnNft( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + freezeNft( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: number | bigint, + price: number | bigint, + chainNonce: number | bigint, + to: string, + mintWith: string + ): Promise; + validateUnfreezeNft( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string, + to: HexString, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + updateGroupKey( + account: AptosAccount, + groupKey: Uint8Array, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + getBridgeData(): Promise; + getAddress(): string; + isWhitelist( + collectionCreator: MaybeHexString, + collectionName: string + ): Promise; +} +export {}; +//# sourceMappingURL=bridge_client.d.ts.map diff --git a/dist/helpers/aptos/bridge_client.d.ts.map b/dist/helpers/aptos/bridge_client.d.ts.map new file mode 100644 index 000000000..62ccf1aa3 --- /dev/null +++ b/dist/helpers/aptos/bridge_client.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bridge_client.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/bridge_client.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/aptos/bridge_client.js b/dist/helpers/aptos/bridge_client.js new file mode 100644 index 000000000..0010bd8c4 --- /dev/null +++ b/dist/helpers/aptos/bridge_client.js @@ -0,0 +1,265 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BridgeClient = void 0; +const aptos_1 = require("aptos"); +const bridge_client_abis_1 = require("./bridge_client_abis"); +class BridgeClient { + constructor(aptosClient, address, network) { + this.aptosClient = aptosClient; + let abi; + switch (network) { + case "mainnet": + abi = bridge_client_abis_1.MAINNET_BRIDGE_ABIS; + break; + case "staging": + abi = bridge_client_abis_1.STAGING_BRIDGE_ABIS; + break; + case "testnet": + abi = bridge_client_abis_1.TESTNET_BRIDGE_ABIS; + break; + default: + throw new Error("Invalid network"); + } + this.transactionBuilder = new aptos_1.TransactionBuilderABI( + abi.map((abi) => new aptos_1.HexString(abi).toUint8Array()) + ); + this.address = address; + } + async initialize(account, groupKey) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::initialize`, + [], + [groupKey] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async pause(account, actionId, signature) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::pause`, + [], + [actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async unpause(account, actionId, signature) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::unpause`, + [], + [actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateWhitelist( + account, + collectionCreator, + collectionName, + actionId, + signature + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_whitelist`, + [], + [collectionCreator.toString(), collectionName, actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateBlacklist( + account, + collectionCreator, + collectionName, + actionId, + signature + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_blacklist`, + [], + [collectionCreator.toString(), collectionName, actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateWithdrawFees(account, to, actionId, signature) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_withdraw_fees`, + [], + [to.toString(), actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateTransferNft( + account, + collection, + name, + description, + maximum, + uri, + royaltyPayeeAddress, + royaltyPointsDenominator, + royaltyPointsNumerator, + mutateSetting, + to, + actionId, + signature + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_transfer_nft`, + [], + [ + collection, + name, + description, + maximum, + uri, + royaltyPayeeAddress.toString(), + royaltyPointsDenominator.toString(), + royaltyPointsNumerator.toString(), + mutateSetting, + to.toString(), + actionId, + signature, + ] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async withdrawNft( + account, + _bridgeAdmin, + collectionCreator, + collectionName, + tokenName, + propertyVersion, + price, + chainNonce, + to, + mintWith + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::withdraw_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + price, + chainNonce, + to, + mintWith, + ] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateBurnNft( + account, + collectionCreator, + collectionName, + tokenName, + propertyVersion, + actionId, + signature + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_burn_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + actionId, + signature, + ] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async freezeNft( + account, + collectionCreator, + collectionName, + tokenName, + propertyVersion, + price, + chainNonce, + to, + mintWith + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::freeze_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + price, + chainNonce, + to, + mintWith, + ] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateUnfreezeNft( + account, + collectionCreator, + collectionName, + tokenName, + propertyVersion, + to, + actionId, + signature + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_unfreeze_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + to.toString(), + actionId, + signature, + ] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async updateGroupKey(account, groupKey, actionId, signature) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::update_group_key`, + [], + [groupKey, actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async getBridgeData() { + const resources = await this.aptosClient.getAccountResources( + this.getAddress() + ); + const accountResource = resources.find( + (r) => r.type == `${this.getAddress()}::bridge::Bridge` + ); + return accountResource?.data; + } + getAddress() { + return this.address; + } + async isWhitelist(collectionCreator, collectionName) { + const data = await this.getBridgeData(); + const { handle } = data.whitelist; + try { + const res = await this.aptosClient.getTableItem(handle, { + key_type: `${this.getAddress()}::bridge::CollectionId`, + value_type: "bool", + key: { + creator: collectionCreator.toString(), + name: collectionName, + }, + }); + return res; + } catch (e) { + return false; + } + } +} +exports.BridgeClient = BridgeClient; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2FwdG9zL2JyaWRnZV9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBTWU7QUFDZiw2REFJOEI7QUFvQjlCLE1BQWEsWUFBWTtJQUt2QixZQUNFLFdBQXdCLEVBQ3hCLE9BQWUsRUFDZixPQUEwQztRQUUxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLEdBQUcsQ0FBQztRQUNSLFFBQVEsT0FBTyxFQUFFO1lBQ2YsS0FBSyxTQUFTO2dCQUNaLEdBQUcsR0FBRyx3Q0FBbUIsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixHQUFHLEdBQUcsd0NBQW1CLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osR0FBRyxHQUFHLHdDQUFtQixDQUFDO2dCQUMxQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksNkJBQXFCLENBQ2pELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUNwRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQ2QsT0FBcUIsRUFDckIsUUFBb0I7UUFFcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUM3RCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLEVBQzFDLEVBQUUsRUFDRixDQUFDLFFBQVEsQ0FBQyxDQUNYLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUNULE9BQXFCLEVBQ3JCLFFBQXlCLEVBQ3pCLFNBQXFCO1FBRXJCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FDN0QsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUNyQyxFQUFFLEVBQ0YsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQ3RCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUNYLE9BQXFCLEVBQ3JCLFFBQXlCLEVBQ3pCLFNBQXFCO1FBRXJCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FDN0QsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLG1CQUFtQixFQUN2QyxFQUFFLEVBQ0YsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQ3RCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQ3JCLE9BQXFCLEVBQ3JCLGlCQUE0QixFQUM1QixjQUFzQixFQUN0QixRQUF5QixFQUN6QixTQUFxQjtRQUVyQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQzdELEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSw4QkFBOEIsRUFDbEQsRUFBRSxFQUNGLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FDcEUsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FDckIsT0FBcUIsRUFDckIsaUJBQTRCLEVBQzVCLGNBQXNCLEVBQ3RCLFFBQXlCLEVBQ3pCLFNBQXFCO1FBRXJCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FDN0QsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLDhCQUE4QixFQUNsRCxFQUFFLEVBQ0YsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUNwRSxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixPQUFxQixFQUNyQixFQUFhLEVBQ2IsUUFBeUIsRUFDekIsU0FBcUI7UUFFckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUM3RCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsa0NBQWtDLEVBQ3RELEVBQUUsRUFDRixDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQ3JDLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CLENBQ3ZCLE9BQXFCLEVBQ3JCLFVBQWtCLEVBQ2xCLElBQVksRUFDWixXQUFtQixFQUNuQixPQUF3QixFQUN4QixHQUFXLEVBQ1gsbUJBQThCLEVBQzlCLHdCQUF5QyxFQUN6QyxzQkFBdUMsRUFDdkMsYUFBd0IsRUFDeEIsRUFBYSxFQUNiLFFBQXlCLEVBQ3pCLFNBQXFCO1FBRXJCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FDN0QsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLGlDQUFpQyxFQUNyRCxFQUFFLEVBQ0Y7WUFDRSxVQUFVO1lBQ1YsSUFBSTtZQUNKLFdBQVc7WUFDWCxPQUFPO1lBQ1AsR0FBRztZQUNILG1CQUFtQixDQUFDLFFBQVEsRUFBRTtZQUM5Qix3QkFBd0IsQ0FBQyxRQUFRLEVBQUU7WUFDbkMsc0JBQXNCLENBQUMsUUFBUSxFQUFFO1lBQ2pDLGFBQWE7WUFDYixFQUFFLENBQUMsUUFBUSxFQUFFO1lBQ2IsUUFBUTtZQUNSLFNBQVM7U0FDVixDQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUNmLE9BQXFCLEVBQ3JCLFlBQXVCLEVBQ3ZCLGlCQUE0QixFQUM1QixjQUFzQixFQUN0QixTQUFpQixFQUNqQixlQUF1QixFQUN2QixLQUFzQixFQUN0QixVQUEyQixFQUMzQixFQUFVLEVBQ1YsUUFBZ0I7UUFFaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUM3RCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsd0JBQXdCLEVBQzVDLEVBQUUsRUFDRjtZQUNFLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtZQUM1QixjQUFjO1lBQ2QsU0FBUztZQUNULGVBQWU7WUFDZixLQUFLO1lBQ0wsVUFBVTtZQUNWLEVBQUU7WUFDRixRQUFRO1NBQ1QsQ0FDRixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsT0FBcUIsRUFDckIsaUJBQTRCLEVBQzVCLGNBQXNCLEVBQ3RCLFNBQWlCLEVBQ2pCLGVBQXVCLEVBQ3ZCLFFBQXlCLEVBQ3pCLFNBQXFCO1FBRXJCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FDN0QsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLDZCQUE2QixFQUNqRCxFQUFFLEVBQ0Y7WUFDRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7WUFDNUIsY0FBYztZQUNkLFNBQVM7WUFDVCxlQUFlO1lBQ2YsUUFBUTtZQUNSLFNBQVM7U0FDVixDQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUNiLE9BQXFCLEVBQ3JCLGlCQUE0QixFQUM1QixjQUFzQixFQUN0QixTQUFpQixFQUNqQixlQUFnQyxFQUNoQyxLQUFzQixFQUN0QixVQUEyQixFQUMzQixFQUFVLEVBQ1YsUUFBZ0I7UUFFaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUM3RCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLEVBQzFDLEVBQUUsRUFDRjtZQUNFLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtZQUM1QixjQUFjO1lBQ2QsU0FBUztZQUNULGVBQWU7WUFDZixLQUFLO1lBQ0wsVUFBVTtZQUNWLEVBQUU7WUFDRixRQUFRO1NBQ1QsQ0FDRixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUN2QixPQUFxQixFQUNyQixpQkFBNEIsRUFDNUIsY0FBc0IsRUFDdEIsU0FBaUIsRUFDakIsZUFBdUIsRUFDdkIsRUFBYSxFQUNiLFFBQXlCLEVBQ3pCLFNBQXFCO1FBRXJCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FDN0QsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLGlDQUFpQyxFQUNyRCxFQUFFLEVBQ0Y7WUFDRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7WUFDNUIsY0FBYztZQUNkLFNBQVM7WUFDVCxlQUFlO1lBQ2YsRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUNiLFFBQVE7WUFDUixTQUFTO1NBQ1YsQ0FDRixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLDZCQUE2QixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FDbEIsT0FBcUIsRUFDckIsUUFBb0IsRUFDcEIsUUFBeUIsRUFDekIsU0FBcUI7UUFFckIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUM3RCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsNEJBQTRCLEVBQ2hELEVBQUUsRUFDRixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQ2hDLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYTtRQUNqQixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQzFELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FDbEIsQ0FBQztRQUNGLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQ3BDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FDeEQsQ0FBQztRQUNGLE9BQU8sZUFBZSxFQUFFLElBQWtCLENBQUM7SUFDN0MsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsaUJBQWlDLEVBQUUsY0FBc0I7UUFDekUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSTtZQUNGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUN0RCxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLHdCQUF3QjtnQkFDdEQsVUFBVSxFQUFFLE1BQU07Z0JBQ2xCLEdBQUcsRUFBRTtvQkFDSCxPQUFPLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxFQUFFO29CQUNyQyxJQUFJLEVBQUUsY0FBYztpQkFDckI7YUFDRixDQUFDLENBQUM7WUFDSCxPQUFPLEdBQUcsQ0FBQztTQUNaO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFDZixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztDQUNGO0FBelRELG9DQXlUQyJ9 diff --git a/dist/helpers/aptos/bridge_client.ts b/dist/helpers/aptos/bridge_client.ts new file mode 100644 index 000000000..68665086b --- /dev/null +++ b/dist/helpers/aptos/bridge_client.ts @@ -0,0 +1,345 @@ +import { + AptosAccount, + AptosClient, + HexString, + MaybeHexString, + TransactionBuilderABI, +} from "aptos"; +import { + MAINNET_BRIDGE_ABIS, + STAGING_BRIDGE_ABIS, + TESTNET_BRIDGE_ABIS, +} from "./bridge_client_abis"; + +interface BridgeData { + action_cnt: string; + burning_nfts: { + handle: string; + }; + consumed_actions: { + handle: string; + }; + group_key: string; + paused: boolean; + frozen_nfts: { + handle: string; + }; + whitelist: { + handle: string; + }; +} + +export class BridgeClient { + private aptosClient: AptosClient; + private transactionBuilder: TransactionBuilderABI; + private address: string; + + constructor( + aptosClient: AptosClient, + address: string, + network: "mainnet" | "staging" | "testnet" + ) { + this.aptosClient = aptosClient; + let abi; + switch (network) { + case "mainnet": + abi = MAINNET_BRIDGE_ABIS; + break; + case "staging": + abi = STAGING_BRIDGE_ABIS; + break; + case "testnet": + abi = TESTNET_BRIDGE_ABIS; + break; + default: + throw new Error("Invalid network"); + } + this.transactionBuilder = new TransactionBuilderABI( + abi.map((abi) => new HexString(abi).toUint8Array()) + ); + this.address = address; + } + + async initialize( + account: AptosAccount, + groupKey: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::initialize`, + [], + [groupKey] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async pause( + account: AptosAccount, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::pause`, + [], + [actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async unpause( + account: AptosAccount, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::unpause`, + [], + [actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateWhitelist( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_whitelist`, + [], + [collectionCreator.toString(), collectionName, actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateBlacklist( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_blacklist`, + [], + [collectionCreator.toString(), collectionName, actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateWithdrawFees( + account: AptosAccount, + to: HexString, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_withdraw_fees`, + [], + [to.toString(), actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateTransferNft( + account: AptosAccount, + collection: string, + name: string, + description: string, + maximum: number | bigint, + uri: string, + royaltyPayeeAddress: HexString, + royaltyPointsDenominator: number | bigint, + royaltyPointsNumerator: number | bigint, + mutateSetting: boolean[], + to: HexString, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_transfer_nft`, + [], + [ + collection, + name, + description, + maximum, + uri, + royaltyPayeeAddress.toString(), + royaltyPointsDenominator.toString(), + royaltyPointsNumerator.toString(), + mutateSetting, + to.toString(), + actionId, + signature, + ] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async withdrawNft( + account: AptosAccount, + _bridgeAdmin: HexString, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string, + price: number | bigint, + chainNonce: number | bigint, + to: string, + mintWith: string + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::withdraw_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + price, + chainNonce, + to, + mintWith, + ] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateBurnNft( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_burn_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + actionId, + signature, + ] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async freezeNft( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: number | bigint, + price: number | bigint, + chainNonce: number | bigint, + to: string, + mintWith: string + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::freeze_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + price, + chainNonce, + to, + mintWith, + ] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async validateUnfreezeNft( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string, + to: HexString, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_unfreeze_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + to.toString(), + actionId, + signature, + ] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async updateGroupKey( + account: AptosAccount, + groupKey: Uint8Array, + actionId: number | bigint, + signature: Uint8Array + ): Promise { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::update_group_key`, + [], + [groupKey, actionId, signature] + ); + + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + + async getBridgeData() { + const resources = await this.aptosClient.getAccountResources( + this.getAddress() + ); + const accountResource = resources.find( + (r) => r.type == `${this.getAddress()}::bridge::Bridge` + ); + return accountResource?.data as BridgeData; + } + + getAddress() { + return this.address; + } + + async isWhitelist(collectionCreator: MaybeHexString, collectionName: string) { + const data = await this.getBridgeData(); + const { handle } = data.whitelist; + try { + const res = await this.aptosClient.getTableItem(handle, { + key_type: `${this.getAddress()}::bridge::CollectionId`, + value_type: "bool", + key: { + creator: collectionCreator.toString(), + name: collectionName, + }, + }); + return res; + } catch (e: any) { + return false; + } + } +} diff --git a/dist/helpers/aptos/bridge_client_abis.d.ts b/dist/helpers/aptos/bridge_client_abis.d.ts new file mode 100644 index 000000000..4c19f20a8 --- /dev/null +++ b/dist/helpers/aptos/bridge_client_abis.d.ts @@ -0,0 +1,4 @@ +export declare const MAINNET_BRIDGE_ABIS: string[]; +export declare const TESTNET_BRIDGE_ABIS: string[]; +export declare const STAGING_BRIDGE_ABIS: string[]; +//# sourceMappingURL=bridge_client_abis.d.ts.map diff --git a/dist/helpers/aptos/bridge_client_abis.d.ts.map b/dist/helpers/aptos/bridge_client_abis.d.ts.map new file mode 100644 index 000000000..115805f2f --- /dev/null +++ b/dist/helpers/aptos/bridge_client_abis.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bridge_client_abis.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/bridge_client_abis.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,UAyB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAU/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAY/B,CAAC"} \ No newline at end of file diff --git a/dist/helpers/aptos/bridge_client_abis.js b/dist/helpers/aptos/bridge_client_abis.js new file mode 100644 index 000000000..f6d24fed0 --- /dev/null +++ b/dist/helpers/aptos/bridge_client_abis.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.STAGING_BRIDGE_ABIS = + exports.TESTNET_BRIDGE_ABIS = + exports.MAINNET_BRIDGE_ABIS = + void 0; +exports.MAINNET_BRIDGE_ABIS = [ + // ../build/aptos-bridge/abis/bridge/initialize.abi + "010a696e697469616c697a65f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000010967726f75705f6b65790601", + // ../build/aptos-bridge/abis/bridge/pause.abi + "01057061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/unpause.abi + "0107756e7061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/update_group_key.abi + "01107570646174655f67726f75705f6b6579f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi + "011276616c69646174655f77686974656c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi + "011276616c69646174655f626c61636b6c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi + "011676616c69646174655f77697468647261775f66656573f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi + "011576616c69646174655f7472616e736665725f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi + "010c77697468647261775f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/validate_burn_nft.abi + "011176616c69646174655f6275726e5f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/freeze_nft.abi + "010a667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi + "011576616c69646174655f756e667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; +exports.TESTNET_BRIDGE_ABIS = [ + "010a696e697469616c697a65467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000010967726f75705f6b65790601", + "01057061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", + "0107756e7061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b6579467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f66656573467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + "010c77697468647261775f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010a667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011576616c69646174655f756e667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; +exports.STAGING_BRIDGE_ABIS = [ + "010a696e697469616c697a65813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000010967726f75705f6b65790601", + "01057061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", + "0107756e7061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b6579813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f77686974656c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f626c61636b6c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f66656573813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + "010c77697468647261775f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010a667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011576616c69646174655f756e667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2NsaWVudF9hYmlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvYXB0b3MvYnJpZGdlX2NsaWVudF9hYmlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsbURBQW1EO0lBQ25ELHNJQUFzSTtJQUN0SSw4Q0FBOEM7SUFDOUMsa0pBQWtKO0lBQ2xKLGdEQUFnRDtJQUNoRCxzSkFBc0o7SUFDdEoseURBQXlEO0lBQ3pELHdNQUF3TTtJQUN4TSwyREFBMkQ7SUFDM0Qsb1ZBQW9WO0lBQ3BWLDJEQUEyRDtJQUMzRCxvVkFBb1Y7SUFDcFYsK0RBQStEO0lBQy9ELDRMQUE0TDtJQUM1TCw2REFBNkQ7SUFDN0QsNG1DQUE0bUM7SUFDNW1DLHFEQUFxRDtJQUNyRCxzckJBQXNyQjtJQUN0ckIsMERBQTBEO0lBQzFELDRlQUE0ZTtJQUM1ZSxtREFBbUQ7SUFDbkQsa3JCQUFrckI7SUFDbHJCLDhEQUE4RDtJQUM5RCw0ZkFBNGY7Q0FDN2YsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsc0lBQXNJO0lBQ3RJLGtKQUFrSjtJQUNsSixzSkFBc0o7SUFDdEosd01BQXdNO0lBQ3hNLDRMQUE0TDtJQUM1TCx3MEJBQXcwQjtJQUN4MEIsc3JCQUFzckI7SUFDdHJCLGtyQkFBa3JCO0lBQ2xyQiw0ZkFBNGY7Q0FDN2YsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsc0lBQXNJO0lBQ3RJLGtKQUFrSjtJQUNsSixzSkFBc0o7SUFDdEosd01BQXdNO0lBQ3hNLG9WQUFvVjtJQUNwVixvVkFBb1Y7SUFDcFYsNExBQTRMO0lBQzVMLHcwQkFBdzBCO0lBQ3gwQixzckJBQXNyQjtJQUN0ckIsa3JCQUFrckI7SUFDbHJCLDRmQUE0ZjtDQUM3ZixDQUFDIn0= diff --git a/dist/helpers/aptos/bridge_client_abis.ts b/dist/helpers/aptos/bridge_client_abis.ts new file mode 100644 index 000000000..35c2f05bd --- /dev/null +++ b/dist/helpers/aptos/bridge_client_abis.ts @@ -0,0 +1,52 @@ +export const MAINNET_BRIDGE_ABIS = [ + // ../build/aptos-bridge/abis/bridge/initialize.abi + "010a696e697469616c697a65f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000010967726f75705f6b65790601", + // ../build/aptos-bridge/abis/bridge/pause.abi + "01057061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/unpause.abi + "0107756e7061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/update_group_key.abi + "01107570646174655f67726f75705f6b6579f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi + "011276616c69646174655f77686974656c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi + "011276616c69646174655f626c61636b6c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi + "011676616c69646174655f77697468647261775f66656573f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi + "011576616c69646174655f7472616e736665725f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi + "010c77697468647261775f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/validate_burn_nft.abi + "011176616c69646174655f6275726e5f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/freeze_nft.abi + "010a667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi + "011576616c69646174655f756e667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; + +export const TESTNET_BRIDGE_ABIS = [ + "010a696e697469616c697a65467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000010967726f75705f6b65790601", + "01057061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", + "0107756e7061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b6579467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f66656573467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + "010c77697468647261775f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010a667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011576616c69646174655f756e667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; + +export const STAGING_BRIDGE_ABIS = [ + "010a696e697469616c697a65813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000010967726f75705f6b65790601", + "01057061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", + "0107756e7061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b6579813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f77686974656c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f626c61636b6c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f66656573813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + "010c77697468647261775f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010a667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011576616c69646174655f756e667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; diff --git a/dist/helpers/aptos/index.d.ts b/dist/helpers/aptos/index.d.ts new file mode 100644 index 000000000..c82819d61 --- /dev/null +++ b/dist/helpers/aptos/index.d.ts @@ -0,0 +1,68 @@ +import { + ChainNonceGet, + ClaimNFT, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + MintNft, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "../chain"; +import { AptosAccount, AptosClient, HexString } from "aptos"; +import { EvNotifier } from "../../notifier"; +export type AptosNFT = { + collection_creator: string; + collection_name: string; + token_name: string; + property_version: number; +}; +/** + * @param collection name of the collection u already own. if u dont own any token, then set this as undefined + * @param name name of the NFT + * @param description description of the NFT + * @param uri The URI which the NFT points to + * @param createCollection set this as true if u set collection as undefined. it will create a new collection. + */ +export type AptosMintArgs = { + collection: string | undefined; + name: string; + description: string; + uri: string; + createCollection: boolean; +}; +export type AptosClaimArgs = { + sender: HexString; + propertyVersion: number; + collectionName: string; + creator: string; + name: string; +}; +export type AptosHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + XpNft: string; + } & GetFeeMargins & + MintNft & + GetProvider & + ClaimNFT; +export type AptosParams = { + feeMargin: FeeMargins; + rpcUrl: string; + xpnft: string; + bridge: string; + notifier: EvNotifier; + network: "mainnet" | "staging" | "testnet"; +}; +export declare function aptosHelper({ + feeMargin, + rpcUrl, + xpnft, + bridge, + notifier, + network, +}: AptosParams): Promise; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/helpers/aptos/index.d.ts.map b/dist/helpers/aptos/index.d.ts.map new file mode 100644 index 000000000..918f85eb5 --- /dev/null +++ b/dist/helpers/aptos/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAK1E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,aAAa,GACrC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,cAAc,CAAC,QAAQ,CAAC,GACxB,eAAe,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,aAAa,GACjB,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,GAC5C,WAAW,CAAC,WAAW,CAAC,GACxB,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAChC,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,GACR,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAiIpC"} \ No newline at end of file diff --git a/dist/helpers/aptos/index.js b/dist/helpers/aptos/index.js new file mode 100644 index 000000000..89dbc12fa --- /dev/null +++ b/dist/helpers/aptos/index.js @@ -0,0 +1,153 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.aptosHelper = void 0; +const aptos_1 = require("aptos"); +const consts_1 = require("../../consts"); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const bridge_client_1 = require("./bridge_client"); +async function aptosHelper({ + feeMargin, + rpcUrl, + xpnft, + bridge, + notifier, + network, +}) { + const client = new aptos_1.AptosClient(rpcUrl); + const bridgeClient = new bridge_client_1.BridgeClient( + client, + bridge, + network + ); + return { + getNonce() { + return consts_1.Chain.APTOS; + }, + getFeeMargin() { + return feeMargin; + }, + async validateAddress(adr) { + try { + await client.getAccount(adr); + return true; + } catch (e) { + return false; + } + }, + XpNft: xpnft, + async estimateValidateTransferNft(_to, _metadata, _mintWith) { + return new bignumber_js_1.default(0); + }, + async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { + return new bignumber_js_1.default(0); + }, + async transferNftToForeign( + sender, + chain_nonce, + to, + id, + txFees, + mintWith, + _gasLimit + ) { + const receipt = await bridgeClient.freezeNft( + sender, + aptos_1.HexString.ensure(id.native.collection_creator), + id.native.collection_name, + id.native.token_name, + id.native.property_version, + BigInt(txFees.toString()), + chain_nonce, + to, + mintWith + ); + await new Promise((r) => setTimeout(r, 10000)); + await notifier.notifyAptos(receipt); + return receipt; + }, + getProvider() { + return client; + }, + async mintNft(owner, options) { + const tc = new aptos_1.TokenClient(client); + if (options.createCollection) { + await tc.createCollection( + owner, + "UMT", + "UserNftMinter - Mint your NFTs Here To Test", + "https://example.com", + BigInt(2 ** 64) - BigInt(1) + ); + const response = await tc.createToken( + owner, + "UMT", + options.name, + options.description, + 1, + options.uri, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined + ); + return response; + } else { + const response = await tc.createToken( + owner, + options.collection, + options.name, + options.description, + 1, + options.uri, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined + ); + return response; + } + }, + async claimNFT(signer, params) { + const tokenClient = new aptos_1.TokenClient(client); + const claim = await tokenClient.claimToken( + signer, + params.sender, + params.creator, + params.collectionName, + params.name, + params.propertyVersion + ); + return claim; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const receipt = await bridgeClient.withdrawNft( + sender, + aptos_1.HexString.ensure(bridge), + aptos_1.HexString.ensure(id.native.collection_creator), + id.native.collection_name, + id.native.token_name, + id.native.property_version.toString(), + BigInt(txFees.toString()), + parseInt(nonce), + to, + id.native.collection_creator + ); + await new Promise((r) => setTimeout(r, 10000)); + await notifier.notifyAptos(receipt); + return receipt; + }, + }; +} +exports.aptosHelper = aptosHelper; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9hcHRvcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFhQSxpQ0FBMEU7QUFFMUUseUNBQXFDO0FBQ3JDLGdFQUFxQztBQUNyQyxtREFBK0M7QUFxRHhDLEtBQUssVUFBVSxXQUFXLENBQUMsRUFDaEMsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixPQUFPLEdBQ0s7SUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLG1CQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSw0QkFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFL0QsT0FBTztRQUNMLFFBQVE7WUFDTixPQUFPLGNBQUssQ0FBQyxLQUFLLENBQUM7UUFDckIsQ0FBQztRQUNELFlBQVk7WUFDVixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHO1lBQ3ZCLElBQUk7Z0JBQ0YsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QixPQUFPLElBQUksQ0FBQzthQUNiO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxLQUFLLENBQUM7YUFDZDtRQUNILENBQUM7UUFDRCxLQUFLLEVBQUUsS0FBSztRQUNaLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVM7WUFDekQsT0FBTyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVM7WUFDekQsT0FBTyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNE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 diff --git a/dist/helpers/aptos/index.ts b/dist/helpers/aptos/index.ts new file mode 100644 index 000000000..4022065b3 --- /dev/null +++ b/dist/helpers/aptos/index.ts @@ -0,0 +1,207 @@ +import { + ChainNonceGet, + ClaimNFT, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + MintNft, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "../chain"; + +import { AptosAccount, AptosClient, HexString, TokenClient } from "aptos"; + +import { Chain } from "../../consts"; +import BigNumber from "bignumber.js"; +import { BridgeClient } from "./bridge_client"; +import { EvNotifier } from "../../notifier"; + +export type AptosNFT = { + collection_creator: string; + collection_name: string; + token_name: string; + property_version: number; +}; + +/** + * @param collection name of the collection u already own. if u dont own any token, then set this as undefined + * @param name name of the NFT + * @param description description of the NFT + * @param uri The URI which the NFT points to + * @param createCollection set this as true if u set collection as undefined. it will create a new collection. + */ +export type AptosMintArgs = { + collection: string | undefined; + name: string; + description: string; + uri: string; + createCollection: boolean; +}; + +export type AptosClaimArgs = { + sender: HexString; + propertyVersion: number; + collectionName: string; + creator: string; + name: string; +}; + +export type AptosHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + XpNft: string; + } & GetFeeMargins & + MintNft & + GetProvider & + ClaimNFT; + +export type AptosParams = { + feeMargin: FeeMargins; + rpcUrl: string; + xpnft: string; + bridge: string; + notifier: EvNotifier; + network: "mainnet" | "staging" | "testnet"; +}; + +export async function aptosHelper({ + feeMargin, + rpcUrl, + xpnft, + bridge, + notifier, + network, +}: AptosParams): Promise { + const client = new AptosClient(rpcUrl); + + const bridgeClient = new BridgeClient(client, bridge, network); + + return { + getNonce() { + return Chain.APTOS; + }, + getFeeMargin() { + return feeMargin; + }, + async validateAddress(adr) { + try { + await client.getAccount(adr); + return true; + } catch (e) { + return false; + } + }, + XpNft: xpnft, + async estimateValidateTransferNft(_to, _metadata, _mintWith) { + return new BigNumber(0); + }, + async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { + return new BigNumber(0); + }, + async transferNftToForeign( + sender, + chain_nonce, + to, + id, + txFees, + mintWith, + _gasLimit? + ) { + const receipt = await bridgeClient.freezeNft( + sender, + HexString.ensure(id.native.collection_creator), + id.native.collection_name, + id.native.token_name, + id.native.property_version, + BigInt(txFees.toString()), + chain_nonce, + to, + mintWith + ); + await new Promise((r) => setTimeout(r, 10000)); + await notifier.notifyAptos(receipt); + return receipt; + }, + getProvider() { + return client; + }, + async mintNft(owner, options) { + const tc = new TokenClient(client); + if (options.createCollection) { + await tc.createCollection( + owner, + "UMT", + "UserNftMinter - Mint your NFTs Here To Test", + "https://example.com", + BigInt(2 ** 64) - BigInt(1) + ); + const response = await tc.createToken( + owner, + "UMT", + options.name, + options.description, + 1, + options.uri, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined + ); + return response; + } else { + const response = await tc.createToken( + owner, + options.collection!, + options.name, + options.description, + 1, + options.uri, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined + ); + return response; + } + }, + async claimNFT(signer, params) { + const tokenClient = new TokenClient(client); + const claim = await tokenClient.claimToken( + signer, + params.sender, + params.creator, + params.collectionName, + params.name, + params.propertyVersion + ); + return claim; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const receipt = await bridgeClient.withdrawNft( + sender, + HexString.ensure(bridge), + HexString.ensure(id.native.collection_creator), + id.native.collection_name, + id.native.token_name, + id.native.property_version.toString(), + BigInt(txFees.toString()), + parseInt(nonce), + to, + id.native.collection_creator + ); + await new Promise((r) => setTimeout(r, 10000)); + await notifier.notifyAptos(receipt); + return receipt; + }, + }; +} diff --git a/dist/helpers/bridge_pool.teal.d.ts b/dist/helpers/bridge_pool.teal.d.ts new file mode 100644 index 000000000..55080bca3 --- /dev/null +++ b/dist/helpers/bridge_pool.teal.d.ts @@ -0,0 +1,3 @@ +export declare const BRIDGE_TEAL = + '#pragma version 5\nintcblock 1 6 3\nbytecblock TMPL_RECV_ADDR\ntxn TypeEnum\npushint 4 // axfer\n==\ntxn AssetAmount\nintc_0 // 1\n==\n&&\ntxn AssetReceiver\nbytec_0 // TMPL_RECV_ADDR\n==\n&&\nbnz main_l6\ngtxn 0 TypeEnum\nintc_1 // appl\n==\ngtxna 0 ApplicationArgs 0\npushbytes 0x6372656174655f6e6674 // "create_nft"\n==\n&&\ngtxna 0 Accounts 1\nbytec_0 // TMPL_RECV_ADDR\n==\n&&\ngtxn 1 TypeEnum\nintc_2 // acfg\n==\n&&\ngtxn 1 ConfigAssetTotal\nintc_0 // 1\n==\n&&\ngtxn 1 ConfigAssetDecimals\npushint 0 // 0\n==\n&&\nbnz main_l5\ngtxn 0 TypeEnum\nintc_1 // appl\n==\ngtxna 0 ApplicationArgs 0\npushbytes 0x77697468647261775f6e6674 // "withdraw_nft"\n==\n&&\ngtxn 1 TypeEnum\nintc_2 // acfg\n==\n&&\ngtxn 1 ConfigAsset\ngtxna 0 Assets 0\n==\n&&\nbnz main_l4\nerr\nmain_l4:\nintc_0 // 1\nreturn\nmain_l5:\nintc_0 // 1\nreturn\nmain_l6:\nintc_0 // 1\nreturn'; +//# sourceMappingURL=bridge_pool.teal.d.ts.map diff --git a/dist/helpers/bridge_pool.teal.d.ts.map b/dist/helpers/bridge_pool.teal.d.ts.map new file mode 100644 index 000000000..61be1fc24 --- /dev/null +++ b/dist/helpers/bridge_pool.teal.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bridge_pool.teal.d.ts","sourceRoot":"","sources":["../../src/helpers/bridge_pool.teal.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,o2BAgEjB,CAAC"} \ No newline at end of file diff --git a/dist/helpers/bridge_pool.teal.js b/dist/helpers/bridge_pool.teal.js new file mode 100644 index 000000000..0c27fe1a5 --- /dev/null +++ b/dist/helpers/bridge_pool.teal.js @@ -0,0 +1,69 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BRIDGE_TEAL = void 0; +exports.BRIDGE_TEAL = `#pragma version 5 +intcblock 1 6 3 +bytecblock TMPL_RECV_ADDR +txn TypeEnum +pushint 4 // axfer +== +txn AssetAmount +intc_0 // 1 +== +&& +txn AssetReceiver +bytec_0 // TMPL_RECV_ADDR +== +&& +bnz main_l6 +gtxn 0 TypeEnum +intc_1 // appl +== +gtxna 0 ApplicationArgs 0 +pushbytes 0x6372656174655f6e6674 // "create_nft" +== +&& +gtxna 0 Accounts 1 +bytec_0 // TMPL_RECV_ADDR +== +&& +gtxn 1 TypeEnum +intc_2 // acfg +== +&& +gtxn 1 ConfigAssetTotal +intc_0 // 1 +== +&& +gtxn 1 ConfigAssetDecimals +pushint 0 // 0 +== +&& +bnz main_l5 +gtxn 0 TypeEnum +intc_1 // appl +== +gtxna 0 ApplicationArgs 0 +pushbytes 0x77697468647261775f6e6674 // "withdraw_nft" +== +&& +gtxn 1 TypeEnum +intc_2 // acfg +== +&& +gtxn 1 ConfigAsset +gtxna 0 Assets 0 +== +&& +bnz main_l4 +err +main_l4: +intc_0 // 1 +return +main_l5: +intc_0 // 1 +return +main_l6: +intc_0 // 1 +return`; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX3Bvb2wudGVhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2JyaWRnZV9wb29sLnRlYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxXQUFXLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnRXBCLENBQUMifQ== diff --git a/dist/helpers/bridge_pool.teal.ts b/dist/helpers/bridge_pool.teal.ts new file mode 100644 index 000000000..2988ce9df --- /dev/null +++ b/dist/helpers/bridge_pool.teal.ts @@ -0,0 +1,65 @@ +export const BRIDGE_TEAL = `#pragma version 5 +intcblock 1 6 3 +bytecblock TMPL_RECV_ADDR +txn TypeEnum +pushint 4 // axfer +== +txn AssetAmount +intc_0 // 1 +== +&& +txn AssetReceiver +bytec_0 // TMPL_RECV_ADDR +== +&& +bnz main_l6 +gtxn 0 TypeEnum +intc_1 // appl +== +gtxna 0 ApplicationArgs 0 +pushbytes 0x6372656174655f6e6674 // "create_nft" +== +&& +gtxna 0 Accounts 1 +bytec_0 // TMPL_RECV_ADDR +== +&& +gtxn 1 TypeEnum +intc_2 // acfg +== +&& +gtxn 1 ConfigAssetTotal +intc_0 // 1 +== +&& +gtxn 1 ConfigAssetDecimals +pushint 0 // 0 +== +&& +bnz main_l5 +gtxn 0 TypeEnum +intc_1 // appl +== +gtxna 0 ApplicationArgs 0 +pushbytes 0x77697468647261775f6e6674 // "withdraw_nft" +== +&& +gtxn 1 TypeEnum +intc_2 // acfg +== +&& +gtxn 1 ConfigAsset +gtxna 0 Assets 0 +== +&& +bnz main_l4 +err +main_l4: +intc_0 // 1 +return +main_l5: +intc_0 // 1 +return +main_l6: +intc_0 // 1 +return`; diff --git a/dist/helpers/chain.d.ts b/dist/helpers/chain.d.ts new file mode 100644 index 000000000..c2fc758c7 --- /dev/null +++ b/dist/helpers/chain.d.ts @@ -0,0 +1,175 @@ +import BigNumber from "bignumber.js"; +import { ethers } from "ethers"; +import { ChainNonce } from "../type-utils"; +/** + * NFT Info + */ +export type NftInfo = { + readonly uri: string; + readonly native: Raw; + readonly collectionIdent: string; +}; +/** + * Action to perform before transfer/unfreeze (if any) + */ +export interface PreTransfer { + preTransfer( + sender: Signer, + nft: NftInfo, + fee: BigNumber, + args?: ExtraArgs + ): Promise; + preUnfreeze( + sender: Signer, + nft: NftInfo, + fee: BigNumber, + args?: ExtraArgs + ): Promise; +} +/** + * Transfer NFT to a foreign chain, freezing the original one + * + * @param sender Account which owns the NFT on the native chain, able to sign transactions + * @param chain_nonce Nonce of the target chain + * @param to Address of the receiver on the foreign chain + * @param id Information required to freeze this nft + * + * @returns Transaction and the Identifier of this action to track the status + */ +export interface TransferNftForeign { + transferNftToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: NftInfo, + txFees: BigNumber, + mintWith: string, + gasLimit?: ethers.BigNumberish | undefined + ): Promise; +} +/** + * Unfreeze native NFT existing on a foreign chain(Send back NFT) + * chain_nonce is automatically derived + * + * @param sender Account which owns the wrapped NFT on this chain, able to sign transactions + * @param to Address of the receiver on the original chain + * @param id Information required to unfreeze this nft + * + * @returns Transaction and the Identifier of this action to track the status + */ +export interface UnfreezeForeignNft { + unfreezeWrappedNft( + sender: Signer, + to: string, + id: NftInfo, + txFees: BigNumber, + nonce: string, + gasLimit: ethers.BigNumberish | undefined + ): Promise; +} +/** + * Get the balance of an address on the chain + */ +export interface BalanceCheck { + balance(address: string): Promise; +} +/** + * Create a new NFT on this chain + * + * @param options Arguments required to mint the nft + */ +export interface MintNft { + mintNft(owner: Signer, options: Args): Promise; +} +export interface ValidateAddress { + validateAddress(adr: string): Promise; +} +export interface EstimateTxFees { + estimateValidateTransferNft( + to: string, + metadata: NftInfo, + mintWith: string + ): Promise; + estimateValidateUnfreezeNft( + to: string, + metadata: NftInfo, + mintWith: string + ): Promise; +} +export declare function ConcurrentSendError(): Error; +export interface PreTransferRawTxn { + preTransferRawTxn( + id: NftInfo, + address: string, + value?: BigNumber + ): Promise; +} +export interface ChainNonceGet { + getNonce(): ChainNonce; +} +export interface ExtractAction { + extractAction(txn: Txn): Promise; +} +export declare enum TransactionStatus { + PENDING = "pending", + SUCCESS = "success", + FAILURE = "failure", + UNKNOWN = "unknown", +} +export interface ExtractTxnStatus { + extractTxnStatus(txn: string): Promise; +} +export interface GetTokenURI { + getTokenURI(contract: string, tokenId: string): Promise; +} +export interface TransferNftForeignBatch { + transferNftBatchToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: NftInfo[], + mintWith: string, + txFees: BigNumber + ): Promise; +} +export interface UnfreezeForeignNftBatch { + unfreezeWrappedNftBatch( + sender: Signer, + chainNonce: number, + to: string, + nfts: NftInfo[], + txFees: BigNumber + ): Promise; +} +export interface EstimateTxFeesBatch { + estimateValidateTransferNftBatch( + to: string, + metadatas: NftInfo[], + mintWith: string[] + ): Promise; + estimateValidateUnfreezeNftBatch( + to: string, + metadatas: NftInfo[] + ): Promise; +} +export type WhitelistCheck = { + isNftWhitelisted(nft: NftInfo): Promise; +}; +export interface GetProvider { + getProvider(): Provider; +} +export declare function isWrappedNft(nft: NftInfo): Promise; +export interface IsContractAddress { + isContractAddress(address: string): Promise; +} +export interface FeeMargins { + min: number; + max: number; +} +export interface GetFeeMargins { + getFeeMargin(): FeeMargins; +} +export interface ClaimNFT { + claimNFT(signer: Signer, args: ClaimArgs): Promise; +} +//# sourceMappingURL=chain.d.ts.map diff --git a/dist/helpers/chain.d.ts.map b/dist/helpers/chain.d.ts.map new file mode 100644 index 000000000..b37f1df49 --- /dev/null +++ b/dist/helpers/chain.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/helpers/chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/chain.js b/dist/helpers/chain.js new file mode 100644 index 000000000..c5a2c61c2 --- /dev/null +++ b/dist/helpers/chain.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isWrappedNft = + exports.TransactionStatus = + exports.ConcurrentSendError = + void 0; +const axios_1 = __importDefault(require("axios")); +function ConcurrentSendError() { + return new Error("concurrent_send"); +} +exports.ConcurrentSendError = ConcurrentSendError; +var TransactionStatus; +(function (TransactionStatus) { + TransactionStatus["PENDING"] = "pending"; + TransactionStatus["SUCCESS"] = "success"; + TransactionStatus["FAILURE"] = "failure"; + TransactionStatus["UNKNOWN"] = "unknown"; +})( + (TransactionStatus = + exports.TransactionStatus || (exports.TransactionStatus = {})) +); +async function isWrappedNft(nft) { + return ( + typeof (await axios_1.default.get(nft.uri).catch(() => undefined))?.data + .wrapped !== "undefined" + ); +} +exports.isWrappedNft = isWrappedNft; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUE0RzFCLFNBQWdCLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUZELGtEQUVDO0FBa0JELElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUMzQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFLNUI7QUFrRE0sS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFxQjtJQUN0RCxPQUFPLENBQ0wsT0FBTyxDQUFDLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDdEUsV0FBVyxDQUNaLENBQUM7QUFDSixDQUFDO0FBTEQsb0NBS0MifQ== diff --git a/dist/helpers/chain.ts b/dist/helpers/chain.ts new file mode 100644 index 000000000..d2d388f93 --- /dev/null +++ b/dist/helpers/chain.ts @@ -0,0 +1,206 @@ +import axios from "axios"; +import BigNumber from "bignumber.js"; +import { ethers } from "ethers"; +import { ChainNonce } from "../type-utils"; + +/** + * NFT Info + */ +export type NftInfo = { + readonly uri: string; + readonly native: Raw; + readonly collectionIdent: string; +}; + +/** + * Action to perform before transfer/unfreeze (if any) + */ +export interface PreTransfer { + preTransfer( + sender: Signer, + nft: NftInfo, + fee: BigNumber, + args?: ExtraArgs + ): Promise; + preUnfreeze( + sender: Signer, + nft: NftInfo, + fee: BigNumber, + args?: ExtraArgs + ): Promise; +} + +/** + * Transfer NFT to a foreign chain, freezing the original one + * + * @param sender Account which owns the NFT on the native chain, able to sign transactions + * @param chain_nonce Nonce of the target chain + * @param to Address of the receiver on the foreign chain + * @param id Information required to freeze this nft + * + * @returns Transaction and the Identifier of this action to track the status + */ +export interface TransferNftForeign { + transferNftToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: NftInfo, + txFees: BigNumber, + mintWith: string, + gasLimit?: ethers.BigNumberish | undefined + ): Promise; +} + +/** + * Unfreeze native NFT existing on a foreign chain(Send back NFT) + * chain_nonce is automatically derived + * + * @param sender Account which owns the wrapped NFT on this chain, able to sign transactions + * @param to Address of the receiver on the original chain + * @param id Information required to unfreeze this nft + * + * @returns Transaction and the Identifier of this action to track the status + */ +export interface UnfreezeForeignNft { + unfreezeWrappedNft( + sender: Signer, + to: string, + id: NftInfo, + txFees: BigNumber, + nonce: string, + gasLimit: ethers.BigNumberish | undefined + ): Promise; +} + +/** + * Get the balance of an address on the chain + */ +export interface BalanceCheck { + balance(address: string): Promise; +} + +/** + * Create a new NFT on this chain + * + * @param options Arguments required to mint the nft + */ +export interface MintNft { + mintNft(owner: Signer, options: Args): Promise; +} + +export interface ValidateAddress { + validateAddress(adr: string): Promise; +} + +export interface EstimateTxFees { + estimateValidateTransferNft( + to: string, + metadata: NftInfo, + mintWith: string + ): Promise; + estimateValidateUnfreezeNft( + to: string, + metadata: NftInfo, + mintWith: string + ): Promise; +} + +export function ConcurrentSendError(): Error { + return new Error("concurrent_send"); +} + +export interface PreTransferRawTxn { + preTransferRawTxn( + id: NftInfo, + address: string, + value?: BigNumber + ): Promise; +} + +export interface ChainNonceGet { + getNonce(): ChainNonce; +} + +export interface ExtractAction { + extractAction(txn: Txn): Promise; +} + +export enum TransactionStatus { + PENDING = "pending", + SUCCESS = "success", + FAILURE = "failure", + UNKNOWN = "unknown", +} +export interface ExtractTxnStatus { + extractTxnStatus(txn: string): Promise; +} + +export interface GetTokenURI { + getTokenURI(contract: string, tokenId: string): Promise; +} + +export interface TransferNftForeignBatch { + transferNftBatchToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: NftInfo[], + mintWith: string, + txFees: BigNumber + ): Promise; +} + +export interface UnfreezeForeignNftBatch { + unfreezeWrappedNftBatch( + sender: Signer, + chainNonce: number, + to: string, + nfts: NftInfo[], + txFees: BigNumber + ): Promise; +} + +export interface EstimateTxFeesBatch { + estimateValidateTransferNftBatch( + to: string, + metadatas: NftInfo[], + mintWith: string[] + ): Promise; + estimateValidateUnfreezeNftBatch( + to: string, + metadatas: NftInfo[] + ): Promise; +} + +export type WhitelistCheck = { + isNftWhitelisted(nft: NftInfo): Promise; +}; + +export interface GetProvider { + getProvider(): Provider; +} + +export async function isWrappedNft(nft: NftInfo) { + return ( + typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== + "undefined" + ); +} + +export interface IsContractAddress { + isContractAddress(address: string): Promise; +} + +export interface FeeMargins { + min: number; + max: number; +} + +export interface GetFeeMargins { + getFeeMargin(): FeeMargins; +} + +export interface ClaimNFT { + claimNFT(signer: Signer, args: ClaimArgs): Promise; +} diff --git a/dist/helpers/dfinity/dfinity.d.ts b/dist/helpers/dfinity/dfinity.d.ts new file mode 100644 index 000000000..701923752 --- /dev/null +++ b/dist/helpers/dfinity/dfinity.d.ts @@ -0,0 +1,64 @@ +import { HttpAgent, Identity, SubmitResponse } from "@dfinity/agent"; +import { AccountIdentifier } from "@dfinity/nns"; +import { Principal } from "@dfinity/principal"; +import { EvNotifier } from "../../notifier"; +import { + BalanceCheck, + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + MintNft, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "../chain"; +export type DfinitySigner = Identity; +export type DfinityNft = { + canisterId: string; + tokenId: string; +}; +export type DfinityMintArgs = { + canisterId?: string; + uri: string; +}; +export type User = + | { + principal: Principal; + } + | { + address: AccountIdentifier; + }; +export interface MintRequest { + to: User; + metadata: [] | [Array]; +} +export type DfinityHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + XpNft: string; + } & Pick< + PreTransfer, + "preTransfer" + > & + BalanceCheck & + GetFeeMargins & + MintNft & { + nftList(owner: string, contract: string): Promise[]>; + }; +export type DfinityParams = { + agent: HttpAgent; + bridgeContract: Principal; + xpnftId: Principal; + notifier: EvNotifier; + feeMargin: FeeMargins; + umt: Principal; +}; +export declare function dfinityHelper( + args: DfinityParams +): Promise; +//# sourceMappingURL=dfinity.d.ts.map diff --git a/dist/helpers/dfinity/dfinity.d.ts.map b/dist/helpers/dfinity/dfinity.d.ts.map new file mode 100644 index 000000000..efb495904 --- /dev/null +++ b/dist/helpers/dfinity/dfinity.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"dfinity.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/dfinity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,QAAQ,EACR,cAAc,EACf,MAAM,gBAAgB,CAAC;AAexB,OAAO,EAAE,iBAAiB,EAAuB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAyBF,MAAM,MAAM,IAAI,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC7E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAChC;AAcD,MAAM,MAAM,aAAa,GAAG,aAAa,GACvC,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,cAAc,CAAC,UAAU,CAAC,GAC1B,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CACxC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EACzD,aAAa,CACd,GACD,YAAY,GACZ,aAAa,GACb,OAAO,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG;IACxD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;CAC1E,CAAC;AAEJ,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,aAAa,CAAC,CA8NxB"} \ No newline at end of file diff --git a/dist/helpers/dfinity/dfinity.js b/dist/helpers/dfinity/dfinity.js new file mode 100644 index 000000000..9d27b04ac --- /dev/null +++ b/dist/helpers/dfinity/dfinity.js @@ -0,0 +1,256 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.dfinityHelper = void 0; +const agent_1 = require("@dfinity/agent"); +const candid_1 = require("@dfinity/candid"); +const idl_1 = require("@dfinity/candid/lib/cjs/idl"); +const nns_1 = require("@dfinity/nns"); +const principal_1 = require("@dfinity/principal"); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const consts_1 = require("../../consts"); +const idl_2 = require("./idl"); +const Metadata = candid_1.IDL.Variant({ + fungible: candid_1.IDL.Record({ + decimals: candid_1.IDL.Nat8, + metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), + name: candid_1.IDL.Text, + symbol: candid_1.IDL.Text, + }), + nonfungible: candid_1.IDL.Record({ + metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), + }), +}); +const CommonError = candid_1.IDL.Variant({ + InvalidToken: candid_1.IDL.Text, + Other: candid_1.IDL.Text, +}); +const Result_Bearer = candid_1.IDL.Variant({ + ok: candid_1.IDL.Text, + err: CommonError, +}); +const User = candid_1.IDL.Variant({ + principal: candid_1.IDL.Principal, + address: candid_1.IDL.Text, +}); +const MintRequest = candid_1.IDL.Record({ + to: User, + metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), +}); +const ApproveRequest = (0, idl_1.Record)({ + token: idl_1.Text, + subaccount: (0, idl_1.Opt)((0, idl_1.Vec)(idl_1.Nat8)), + allowance: idl_1.Nat, + spender: new idl_1.PrincipalClass(), +}); +async function dfinityHelper(args) { + const ledger = nns_1.LedgerCanister.create({ agent: args.agent }); + const minter = agent_1.Actor.createActor(idl_2.idlFactory, { + agent: args.agent, + canisterId: args.bridgeContract, + }); + async function transferTxFee(amt) { + return await ledger.transfer({ + to: nns_1.AccountIdentifier.fromPrincipal({ + principal: args.bridgeContract, + }), + amount: nns_1.ICP.fromE8s(BigInt(amt.toString())), + }); + } + const to32bits = (num) => { + let b = new ArrayBuffer(4); + new DataView(b).setUint32(0, num); + 1 << 5; + return Array.from(new Uint8Array(b)); + }; + const tokenIdentifier = (principal, index) => { + const padding = Buffer.from("\x0Atid"); + const array = new Uint8Array([ + ...padding, + ...principal_1.Principal.fromText(principal).toUint8Array(), + ...to32bits(index), + ]); + return principal_1.Principal.fromUint8Array(array).toText(); + }; + // async function waitActionId(requestId: RequestId) { + // const pollStrat = polling.defaultStrategy(); + // const resp = await polling.pollForResponse( + // args.agent, + // args.bridgeContract, + // requestId, + // pollStrat + // ); + // return decode([Nat], resp)[0].toString() as string; + // } + return { + XpNft: args.xpnftId.toString(), + getNonce: () => consts_1.Chain.DFINITY, + estimateValidateTransferNft: async () => new bignumber_js_1.default(0), + estimateValidateUnfreezeNft: async () => new bignumber_js_1.default(0), + async validateAddress(adr) { + try { + principal_1.Principal.fromText(adr); + return true; + } catch { + return false; + } + }, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { + args.agent.replaceIdentity(sender); + const txFeeBlock = await transferTxFee(txFees); + const actionId = await minter.freeze_nft( + txFeeBlock, + principal_1.Principal.fromText(id.native.canisterId), + BigInt(id.native.tokenId), + BigInt(chain_nonce), + to, + mintWith + ); + await args.notifier.notifyDfinity(actionId.toString()); + return "NO TX RESP YET"; + }, + async mintNft(owner, options) { + const canister = principal_1.Principal.fromText( + options.canisterId ? options.canisterId : args.umt.toText() + ); + let mint = await args.agent.call(canister, { + methodName: "mintNFT", + arg: (0, idl_1.encode)( + [MintRequest], + [ + { + metadata: [[...Buffer.from(options.uri)]], + to: { + principal: owner.getPrincipal(), + }, + }, + ] + ), + }); + return mint; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + args.agent.replaceIdentity(sender); + const txFeeBlock = await transferTxFee(txFees); + const actionId = await minter.withdraw_nft( + txFeeBlock, + principal_1.Principal.fromText(id.native.canisterId), + BigInt(id.native.tokenId), + BigInt(nonce), + to + ); + await args.notifier.notifyDfinity(actionId.toString()); + return "NO TX RESP YET"; + }, + /// owner = principal of owner + async nftList(owner, contract) { + let aid = nns_1.AccountIdentifier.fromPrincipal({ + principal: principal_1.Principal.fromText(owner), + }); + let tokens = []; + const response = await args.agent.query(contract, { + methodName: "getTokens", + arg: (0, idl_1.encode)([], []), + }); + if ("reply" in response) { + let decoded = (0, idl_1.decode)( + [candid_1.IDL.Vec(candid_1.IDL.Tuple(idl_1.Nat32, Metadata))], + response.reply.arg + )[0]; + await Promise.all( + decoded.map(async (e) => { + let [tokenId, metadata] = e; + let tid = tokenIdentifier(contract, tokenId); + const ownerQuery = await args.agent.query(contract, { + methodName: "bearer", + arg: (0, idl_1.encode)([idl_1.Text], [tid]), + }); + if ("reply" in ownerQuery) { + const response = (0, idl_1.decode)( + [Result_Bearer], + ownerQuery.reply.arg + )[0]; + if ("ok" in response) { + if (response.ok === aid.toHex()) { + tokens.push({ + collectionIdent: contract, + native: { + canisterId: contract, + tokenId: tokenId.toString(), + }, + uri: Buffer.from( + metadata["nonfungible"]["metadata"][0] ?? [] + ).toString("utf-8"), + }); + } + } + } + }) + ); + } + return tokens; + }, + async preTransfer(sender, nft) { + args.agent.replaceIdentity(sender); + const tid = tokenIdentifier( + nft.collectionIdent, + Number(nft.native.tokenId) + ); + const nftContract = principal_1.Principal.fromText(nft.native.canisterId); + const approvedQuery = await args.agent.query(nftContract, { + methodName: "getAllowances", + arg: (0, idl_1.encode)([idl_1.Text], [tid]), + }); + if ("reply" in approvedQuery) { + let decoded = (0, idl_1.decode)( + [ + (0, idl_1.Vec)( + (0, idl_1.Tuple)(idl_1.Nat32, new idl_1.PrincipalClass()) + ), + ], + approvedQuery.reply.arg + )[0]; + for (const item of decoded) { + if (item[0] === Number(nft.native.tokenId)) { + if (item[1].toText() === args.bridgeContract.toText()) { + return undefined; + } + } + } + } + const approveCall = await args.agent.call(nftContract, { + methodName: "approve", + arg: (0, idl_1.encode)( + [ApproveRequest], + [ + { + token: tid, + allowance: BigInt(1), + spender: args.bridgeContract, + subaccount: [], + }, + ] + ), + }); + return Buffer.from(approveCall.requestId).toString("hex"); + }, + getFeeMargin() { + return args.feeMargin; + }, + async balance(address) { + const bal = await ledger.accountBalance({ + accountIdentifier: nns_1.AccountIdentifier.fromPrincipal({ + principal: principal_1.Principal.fromText(address), + }), + }); + const e8s = bal.toE8s().toString(); + return new bignumber_js_1.default(e8s); + }, + }; +} +exports.dfinityHelper = dfinityHelper; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZpbml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2RmaW5pdHkvZGZpbml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwQ0FNd0I7QUFDeEIsNENBQXNDO0FBQ3RDLHFEQVlxQztBQUNyQyxzQ0FBc0U7QUFDdEUsa0RBQStDO0FBQy9DLGdFQUFxQztBQUNyQyx5Q0FBcUM7QUFnQnJDLCtCQUFtQztBQWVuQyxNQUFNLFFBQVEsR0FBRyxZQUFHLENBQUMsT0FBTyxDQUFDO0lBQzNCLFFBQVEsRUFBRSxZQUFHLENBQUMsTUFBTSxDQUFDO1FBQ25CLFFBQVEsRUFBRSxZQUFHLENBQUMsSUFBSTtRQUNsQixRQUFRLEVBQUUsWUFBRyxDQUFDLEdBQUcsQ0FBQyxZQUFHLENBQUMsR0FBRyxDQUFDLFlBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLEVBQUUsWUFBRyxDQUFDLElBQUk7UUFDZCxNQUFNLEVBQUUsWUFBRyxDQUFDLElBQUk7S0FDakIsQ0FBQztJQUNGLFdBQVcsRUFBRSxZQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFlBQUcsQ0FBQyxHQUFHLENBQUMsWUFBRyxDQUFDLEdBQUcsQ0FBQyxZQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO0NBQ2xFLENBQUMsQ0FBQztBQUNILE1BQU0sV0FBVyxHQUFHLFlBQUcsQ0FBQyxPQUFPLENBQUM7SUFDOUIsWUFBWSxFQUFFLFlBQUcsQ0FBQyxJQUFJO0lBQ3RCLEtBQUssRUFBRSxZQUFHLENBQUMsSUFBSTtDQUNoQixDQUFDLENBQUM7QUFFSCxNQUFNLGFBQWEsR0FBRyxZQUFHLENBQUMsT0FBTyxDQUFDO0lBQ2hDLEVBQUUsRUFBRSxZQUFHLENBQUMsSUFBSTtJQUNaLEdBQUcsRUFBRSxXQUFXO0NBQ2pCLENBQUMsQ0FBQztBQUVILE1BQU0sSUFBSSxHQUFHLFlBQUcsQ0FBQyxPQUFPLENB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 diff --git a/dist/helpers/dfinity/dfinity.ts b/dist/helpers/dfinity/dfinity.ts new file mode 100644 index 000000000..699df76a8 --- /dev/null +++ b/dist/helpers/dfinity/dfinity.ts @@ -0,0 +1,344 @@ +import { + Actor, + ActorSubclass, + HttpAgent, + Identity, + SubmitResponse, +} from "@dfinity/agent"; +import { IDL } from "@dfinity/candid"; +import { + decode, + encode, + Nat, + Nat32, + Nat8, + Opt, + PrincipalClass, + Record, + Text, + Tuple, + Vec, +} from "@dfinity/candid/lib/cjs/idl"; +import { AccountIdentifier, ICP, LedgerCanister } from "@dfinity/nns"; +import { Principal } from "@dfinity/principal"; +import BigNumber from "bignumber.js"; +import { Chain } from "../../consts"; +import { EvNotifier } from "../../notifier"; + +import { + BalanceCheck, + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + MintNft, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "../chain"; +import { idlFactory } from "./idl"; +import { _SERVICE } from "./minter.did"; + +export type DfinitySigner = Identity; + +export type DfinityNft = { + canisterId: string; + tokenId: string; +}; + +export type DfinityMintArgs = { + canisterId?: string; + uri: string; +}; + +const Metadata = IDL.Variant({ + fungible: IDL.Record({ + decimals: IDL.Nat8, + metadata: IDL.Opt(IDL.Vec(IDL.Nat8)), + name: IDL.Text, + symbol: IDL.Text, + }), + nonfungible: IDL.Record({ metadata: IDL.Opt(IDL.Vec(IDL.Nat8)) }), +}); +const CommonError = IDL.Variant({ + InvalidToken: IDL.Text, + Other: IDL.Text, +}); + +const Result_Bearer = IDL.Variant({ + ok: IDL.Text, + err: CommonError, +}); + +const User = IDL.Variant({ + principal: IDL.Principal, + address: IDL.Text, +}); +export type User = { principal: Principal } | { address: AccountIdentifier }; +export interface MintRequest { + to: User; + metadata: [] | [Array]; +} + +const MintRequest = IDL.Record({ + to: User, + metadata: IDL.Opt(IDL.Vec(IDL.Nat8)), +}); + +const ApproveRequest = Record({ + token: Text, + subaccount: Opt(Vec(Nat8)), + allowance: Nat, + spender: new PrincipalClass(), +}); + +export type DfinityHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { XpNft: string } & Pick< + PreTransfer, + "preTransfer" + > & + BalanceCheck & + GetFeeMargins & + MintNft & { + nftList(owner: string, contract: string): Promise[]>; + }; + +export type DfinityParams = { + agent: HttpAgent; + bridgeContract: Principal; + xpnftId: Principal; + notifier: EvNotifier; + feeMargin: FeeMargins; + umt: Principal; +}; + +export async function dfinityHelper( + args: DfinityParams +): Promise { + const ledger = LedgerCanister.create({ agent: args.agent }); + + const minter: ActorSubclass<_SERVICE> = Actor.createActor(idlFactory, { + agent: args.agent, + canisterId: args.bridgeContract, + }); + + async function transferTxFee(amt: BigNumber): Promise { + return await ledger.transfer({ + to: AccountIdentifier.fromPrincipal({ + principal: args.bridgeContract, + }), + amount: ICP.fromE8s(BigInt(amt.toString())), + }); + } + const to32bits = (num: number) => { + let b = new ArrayBuffer(4); + new DataView(b).setUint32(0, num); + 1 << 5; + return Array.from(new Uint8Array(b)); + }; + + const tokenIdentifier = (principal: string, index: number) => { + const padding = Buffer.from("\x0Atid"); + const array = new Uint8Array([ + ...padding, + ...Principal.fromText(principal).toUint8Array(), + ...to32bits(index), + ]); + return Principal.fromUint8Array(array).toText(); + }; + + // async function waitActionId(requestId: RequestId) { + // const pollStrat = polling.defaultStrategy(); + // const resp = await polling.pollForResponse( + // args.agent, + // args.bridgeContract, + // requestId, + // pollStrat + // ); + + // return decode([Nat], resp)[0].toString() as string; + // } + + return { + XpNft: args.xpnftId.toString(), + getNonce: () => Chain.DFINITY, + estimateValidateTransferNft: async () => new BigNumber(0), // TODO + estimateValidateUnfreezeNft: async () => new BigNumber(0), // TODO + async validateAddress(adr) { + try { + Principal.fromText(adr); + return true; + } catch { + return false; + } + }, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { + args.agent.replaceIdentity(sender); + + const txFeeBlock = await transferTxFee(txFees); + + const actionId = await minter.freeze_nft( + txFeeBlock, + Principal.fromText(id.native.canisterId), + BigInt(id.native.tokenId), + BigInt(chain_nonce), + to, + mintWith + ); + + await args.notifier.notifyDfinity(actionId.toString()); + + return "NO TX RESP YET"; + }, + async mintNft(owner, options) { + const canister = Principal.fromText( + options.canisterId ? options.canisterId : args.umt.toText() + ); + let mint = await args.agent.call(canister, { + methodName: "mintNFT", + arg: encode( + [MintRequest], + [ + { + metadata: [[...Buffer.from(options.uri)]], + to: { + principal: owner.getPrincipal(), + }, + } as MintRequest, + ] + ), + }); + return mint; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + args.agent.replaceIdentity(sender); + + const txFeeBlock = await transferTxFee(txFees); + + const actionId = await minter.withdraw_nft( + txFeeBlock, + Principal.fromText(id.native.canisterId), + BigInt(id.native.tokenId), + BigInt(nonce), + to + ); + + await args.notifier.notifyDfinity(actionId.toString()); + + return "NO TX RESP YET"; + }, + + /// owner = principal of owner + async nftList(owner, contract) { + let aid = AccountIdentifier.fromPrincipal({ + principal: Principal.fromText(owner), + }); + let tokens: NftInfo[] = []; + const response = await args.agent.query(contract, { + methodName: "getTokens", + arg: encode([], []), + }); + if ("reply" in response) { + let decoded = decode( + [IDL.Vec(IDL.Tuple(Nat32, Metadata))], + response.reply.arg + )[0] as any[]; + await Promise.all( + decoded.map(async (e) => { + let [tokenId, metadata]: [number, any] = e; + let tid = tokenIdentifier(contract, tokenId); + const ownerQuery = await args.agent.query(contract, { + methodName: "bearer", + arg: encode([Text], [tid]), + }); + if ("reply" in ownerQuery) { + const response = decode( + [Result_Bearer], + ownerQuery.reply.arg + )[0] as Record; + if ("ok" in response) { + if (response.ok === aid.toHex()) { + tokens.push({ + collectionIdent: contract, + native: { + canisterId: contract, + tokenId: tokenId.toString(), + }, + uri: Buffer.from( + metadata["nonfungible"]["metadata"][0] ?? [] + ).toString("utf-8"), + }); + } + } + } + }) + ); + } + return tokens; + }, + async preTransfer(sender, nft) { + args.agent.replaceIdentity(sender); + + const tid = tokenIdentifier( + nft.collectionIdent, + Number(nft.native.tokenId) + ); + + const nftContract = Principal.fromText(nft.native.canisterId); + const approvedQuery = await args.agent.query(nftContract, { + methodName: "getAllowances", + arg: encode([Text], [tid]), + }); + + if ("reply" in approvedQuery) { + let decoded: Array<[number, Principal]> = decode( + [Vec(Tuple(Nat32, new PrincipalClass()))], + approvedQuery.reply.arg + )[0] as any; + for (const item of decoded) { + if (item[0] === Number(nft.native.tokenId)) { + if (item[1].toText() === args.bridgeContract.toText()) { + return undefined; + } + } + } + } + + const approveCall = await args.agent.call(nftContract, { + methodName: "approve", + arg: encode( + [ApproveRequest], + [ + { + token: tid, + allowance: BigInt(1), + spender: args.bridgeContract, + subaccount: [], + }, + ] + ), + }); + + return Buffer.from(approveCall.requestId).toString("hex"); + }, + getFeeMargin() { + return args.feeMargin; + }, + async balance(address) { + const bal = await ledger.accountBalance({ + accountIdentifier: AccountIdentifier.fromPrincipal({ + principal: Principal.fromText(address), + }), + }); + + const e8s = bal.toE8s().toString(); + + return new BigNumber(e8s); + }, + }; +} diff --git a/dist/helpers/dfinity/idl.d.ts b/dist/helpers/dfinity/idl.d.ts new file mode 100644 index 000000000..102e4ebec --- /dev/null +++ b/dist/helpers/dfinity/idl.d.ts @@ -0,0 +1,2 @@ +export declare const idlFactory: ({ IDL }: { IDL: any }) => any; +//# sourceMappingURL=idl.d.ts.map diff --git a/dist/helpers/dfinity/idl.d.ts.map b/dist/helpers/dfinity/idl.d.ts.map new file mode 100644 index 000000000..e4bd27e68 --- /dev/null +++ b/dist/helpers/dfinity/idl.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/idl.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;SAAoB,GAAG;SAwK7C,CAAC"} \ No newline at end of file diff --git a/dist/helpers/dfinity/idl.js b/dist/helpers/dfinity/idl.js new file mode 100644 index 000000000..06bdb6607 --- /dev/null +++ b/dist/helpers/dfinity/idl.js @@ -0,0 +1,174 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.idlFactory = void 0; +const idlFactory = ({ IDL }) => { + const ValidateWhitelistDip721 = IDL.Record({ + dip_contract: IDL.Principal, + }); + const ValidateCleanLogs = IDL.Record({ + from_action: IDL.Nat, + to_action: IDL.Nat, + }); + const ValidateTransferNft = IDL.Record({ + to: IDL.Principal, + mint_with: IDL.Principal, + token_url: IDL.Text, + }); + const ValidateTransferNftBatch = IDL.Record({ + to: IDL.Principal, + mint_with: IDL.Vec(IDL.Principal), + token_urls: IDL.Vec(IDL.Text), + }); + const ValidateUnfreezeNft = IDL.Record({ + to: IDL.Principal, + dip_contract: IDL.Principal, + token_id: IDL.Nat, + }); + const ValidateUnfreezeNftBatch = IDL.Record({ + to: IDL.Principal, + dip_contracts: IDL.Vec(IDL.Principal), + token_ids: IDL.Vec(IDL.Nat), + }); + const Config = IDL.Record({ + event_cnt: IDL.Nat, + chain_nonce: IDL.Nat64, + group_key: IDL.Vec(IDL.Nat8), + paused: IDL.Bool, + }); + const BridgeEventCtx = IDL.Record({ + to: IDL.Text, + action_id: IDL.Nat, + tx_fee: IDL.Nat64, + chain_nonce: IDL.Nat64, + }); + const UnfreezeNftBatch = IDL.Record({ + uris: IDL.Vec(IDL.Text), + token_ids: IDL.Vec(IDL.Nat), + burner: IDL.Principal, + }); + const UnfreezeNft = IDL.Record({ + uri: IDL.Text, + token_id: IDL.Nat, + burner: IDL.Principal, + }); + const TransferNft = IDL.Record({ + dip721_contract: IDL.Principal, + token_id: IDL.Nat, + mint_with: IDL.Text, + token_data: IDL.Text, + }); + const TransferNftBatch = IDL.Record({ + dip721_contract: IDL.Principal, + token_datas: IDL.Vec(IDL.Text), + mint_with: IDL.Text, + token_ids: IDL.Vec(IDL.Nat), + }); + const BridgeEvent = IDL.Variant({ + UnfreezeNftBatch: UnfreezeNftBatch, + UnfreezeNft: UnfreezeNft, + TransferNft: TransferNft, + TransferNftBatch: TransferNftBatch, + }); + const ValidateSetGroupKey = IDL.Record({ group_key: IDL.Vec(IDL.Nat8) }); + const ValidateSetPause = IDL.Record({ pause: IDL.Bool }); + const ValidateWithdrawFees = IDL.Record({ to: IDL.Principal }); + return IDL.Service({ + add_whitelist: IDL.Func( + [IDL.Nat, ValidateWhitelistDip721, IDL.Vec(IDL.Nat8)], + [], + [] + ), + clean_logs: IDL.Func( + [IDL.Nat, ValidateCleanLogs, IDL.Vec(IDL.Nat8)], + [], + [] + ), + encode_validate_transfer_nft: IDL.Func( + [IDL.Nat, ValidateTransferNft], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_transfer_nft_batch: IDL.Func( + [IDL.Nat, ValidateTransferNftBatch], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_unfreeze_nft: IDL.Func( + [IDL.Nat, ValidateUnfreezeNft], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_unfreeze_nft_batch: IDL.Func( + [IDL.Nat, ValidateUnfreezeNftBatch], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + freeze_nft: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text, IDL.Text], + [IDL.Nat], + [] + ), + freeze_nft_batch: IDL.Func( + [ + IDL.Nat64, + IDL.Principal, + IDL.Vec(IDL.Nat), + IDL.Nat64, + IDL.Text, + IDL.Text, + ], + [IDL.Nat], + [] + ), + get_config: IDL.Func([], [Config], ["query"]), + get_event: IDL.Func( + [IDL.Nat], + [IDL.Opt(IDL.Tuple(BridgeEventCtx, BridgeEvent))], + ["query"] + ), + is_whitelisted: IDL.Func([IDL.Principal], [IDL.Bool], ["query"]), + set_group_key: IDL.Func( + [IDL.Nat, ValidateSetGroupKey, IDL.Vec(IDL.Nat8)], + [], + [] + ), + set_pause: IDL.Func([IDL.Nat, ValidateSetPause, IDL.Vec(IDL.Nat8)], [], []), + validate_transfer_nft: IDL.Func( + [IDL.Nat, ValidateTransferNft, IDL.Vec(IDL.Nat8)], + [IDL.Nat32], + [] + ), + validate_transfer_nft_batch: IDL.Func( + [IDL.Nat, ValidateTransferNftBatch, IDL.Vec(IDL.Nat8)], + [], + [] + ), + validate_unfreeze_nft: IDL.Func( + [IDL.Nat, ValidateUnfreezeNft, IDL.Vec(IDL.Nat8)], + [], + [] + ), + validate_unfreeze_nft_batch: IDL.Func( + [IDL.Nat, ValidateUnfreezeNftBatch, IDL.Vec(IDL.Nat8)], + [], + [] + ), + withdraw_fees: IDL.Func( + [IDL.Nat, ValidateWithdrawFees, IDL.Vec(IDL.Nat8)], + [IDL.Nat64], + [] + ), + withdraw_nft: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text], + [IDL.Nat], + [] + ), + withdraw_nft_batch: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Vec(IDL.Nat), IDL.Nat64, IDL.Text], + [IDL.Nat], + [] + ), + }); +}; +exports.idlFactory = idlFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvZGZpbml0eS9pZGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQU8sTUFBTSxVQUFVLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBZ0IsRUFBRSxFQUFFO0lBQ2xELE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUN6QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFNBQVM7S0FDNUIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ25DLFdBQVcsRUFBRSxHQUFHLENBQUMsR0FBRztRQUNwQixTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUc7S0FDbkIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3JDLEVBQUUsRUFBRSxHQUFHLENBQUMsU0FBUztRQUNqQixTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDeEIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJO0tBQ3BCLENBQUMsQ0FBQztJQUNILE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUMxQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDakIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0tBQzlCLENBQUMsQ0FBQztJQUNILE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNyQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDakIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQzNCLFFBQVEsRUFBRSxHQUFHLENBQUMsR0FBRztLQUNsQixDQUFDLENBQUM7SUFDSCxNQUFNLHdCQUF3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 diff --git a/dist/helpers/dfinity/idl.ts b/dist/helpers/dfinity/idl.ts new file mode 100644 index 000000000..b55c09e5f --- /dev/null +++ b/dist/helpers/dfinity/idl.ts @@ -0,0 +1,169 @@ +export const idlFactory = ({ IDL }: { IDL: any }) => { + const ValidateWhitelistDip721 = IDL.Record({ + dip_contract: IDL.Principal, + }); + const ValidateCleanLogs = IDL.Record({ + from_action: IDL.Nat, + to_action: IDL.Nat, + }); + const ValidateTransferNft = IDL.Record({ + to: IDL.Principal, + mint_with: IDL.Principal, + token_url: IDL.Text, + }); + const ValidateTransferNftBatch = IDL.Record({ + to: IDL.Principal, + mint_with: IDL.Vec(IDL.Principal), + token_urls: IDL.Vec(IDL.Text), + }); + const ValidateUnfreezeNft = IDL.Record({ + to: IDL.Principal, + dip_contract: IDL.Principal, + token_id: IDL.Nat, + }); + const ValidateUnfreezeNftBatch = IDL.Record({ + to: IDL.Principal, + dip_contracts: IDL.Vec(IDL.Principal), + token_ids: IDL.Vec(IDL.Nat), + }); + const Config = IDL.Record({ + event_cnt: IDL.Nat, + chain_nonce: IDL.Nat64, + group_key: IDL.Vec(IDL.Nat8), + paused: IDL.Bool, + }); + const BridgeEventCtx = IDL.Record({ + to: IDL.Text, + action_id: IDL.Nat, + tx_fee: IDL.Nat64, + chain_nonce: IDL.Nat64, + }); + const UnfreezeNftBatch = IDL.Record({ + uris: IDL.Vec(IDL.Text), + token_ids: IDL.Vec(IDL.Nat), + burner: IDL.Principal, + }); + const UnfreezeNft = IDL.Record({ + uri: IDL.Text, + token_id: IDL.Nat, + burner: IDL.Principal, + }); + const TransferNft = IDL.Record({ + dip721_contract: IDL.Principal, + token_id: IDL.Nat, + mint_with: IDL.Text, + token_data: IDL.Text, + }); + const TransferNftBatch = IDL.Record({ + dip721_contract: IDL.Principal, + token_datas: IDL.Vec(IDL.Text), + mint_with: IDL.Text, + token_ids: IDL.Vec(IDL.Nat), + }); + const BridgeEvent = IDL.Variant({ + UnfreezeNftBatch: UnfreezeNftBatch, + UnfreezeNft: UnfreezeNft, + TransferNft: TransferNft, + TransferNftBatch: TransferNftBatch, + }); + const ValidateSetGroupKey = IDL.Record({ group_key: IDL.Vec(IDL.Nat8) }); + const ValidateSetPause = IDL.Record({ pause: IDL.Bool }); + const ValidateWithdrawFees = IDL.Record({ to: IDL.Principal }); + return IDL.Service({ + add_whitelist: IDL.Func( + [IDL.Nat, ValidateWhitelistDip721, IDL.Vec(IDL.Nat8)], + [], + [] + ), + clean_logs: IDL.Func( + [IDL.Nat, ValidateCleanLogs, IDL.Vec(IDL.Nat8)], + [], + [] + ), + encode_validate_transfer_nft: IDL.Func( + [IDL.Nat, ValidateTransferNft], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_transfer_nft_batch: IDL.Func( + [IDL.Nat, ValidateTransferNftBatch], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_unfreeze_nft: IDL.Func( + [IDL.Nat, ValidateUnfreezeNft], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_unfreeze_nft_batch: IDL.Func( + [IDL.Nat, ValidateUnfreezeNftBatch], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + freeze_nft: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text, IDL.Text], + [IDL.Nat], + [] + ), + freeze_nft_batch: IDL.Func( + [ + IDL.Nat64, + IDL.Principal, + IDL.Vec(IDL.Nat), + IDL.Nat64, + IDL.Text, + IDL.Text, + ], + [IDL.Nat], + [] + ), + get_config: IDL.Func([], [Config], ["query"]), + get_event: IDL.Func( + [IDL.Nat], + [IDL.Opt(IDL.Tuple(BridgeEventCtx, BridgeEvent))], + ["query"] + ), + is_whitelisted: IDL.Func([IDL.Principal], [IDL.Bool], ["query"]), + set_group_key: IDL.Func( + [IDL.Nat, ValidateSetGroupKey, IDL.Vec(IDL.Nat8)], + [], + [] + ), + set_pause: IDL.Func([IDL.Nat, ValidateSetPause, IDL.Vec(IDL.Nat8)], [], []), + validate_transfer_nft: IDL.Func( + [IDL.Nat, ValidateTransferNft, IDL.Vec(IDL.Nat8)], + [IDL.Nat32], + [] + ), + validate_transfer_nft_batch: IDL.Func( + [IDL.Nat, ValidateTransferNftBatch, IDL.Vec(IDL.Nat8)], + [], + [] + ), + validate_unfreeze_nft: IDL.Func( + [IDL.Nat, ValidateUnfreezeNft, IDL.Vec(IDL.Nat8)], + [], + [] + ), + validate_unfreeze_nft_batch: IDL.Func( + [IDL.Nat, ValidateUnfreezeNftBatch, IDL.Vec(IDL.Nat8)], + [], + [] + ), + withdraw_fees: IDL.Func( + [IDL.Nat, ValidateWithdrawFees, IDL.Vec(IDL.Nat8)], + [IDL.Nat64], + [] + ), + withdraw_nft: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text], + [IDL.Nat], + [] + ), + withdraw_nft_batch: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Vec(IDL.Nat), IDL.Nat64, IDL.Text], + [IDL.Nat], + [] + ), + }); +}; diff --git a/dist/helpers/dfinity/minter.did.d.ts b/dist/helpers/dfinity/minter.did.d.ts new file mode 100644 index 000000000..d5bfeeb4b --- /dev/null +++ b/dist/helpers/dfinity/minter.did.d.ts @@ -0,0 +1,172 @@ +import type { Principal } from "@dfinity/principal"; +export type BridgeEvent = + | { UnfreezeNftBatch: UnfreezeNftBatch } + | { UnfreezeNft: UnfreezeNft } + | { TransferNft: TransferNft } + | { TransferNftBatch: TransferNftBatch }; +export interface BridgeEventCtx { + to: string; + action_id: bigint; + tx_fee: bigint; + chain_nonce: bigint; +} +export interface Config { + event_cnt: bigint; + chain_nonce: bigint; + group_key: Array; + paused: boolean; +} +export interface TransferNft { + dip721_contract: Principal; + token_id: bigint; + mint_with: string; + token_data: string; +} +export interface TransferNftBatch { + dip721_contract: Principal; + token_datas: Array; + mint_with: string; + token_ids: Array; +} +export interface UnfreezeNft { + uri: string; + token_id: bigint; + burner: Principal; +} +export interface UnfreezeNftBatch { + uris: Array; + token_ids: Array; + burner: Principal; +} +export interface ValidateCleanLogs { + from_action: bigint; + to_action: bigint; +} +export interface ValidateSetGroupKey { + group_key: Array; +} +export interface ValidateSetPause { + pause: boolean; +} +export interface ValidateTransferNft { + to: Principal; + mint_with: Principal; + token_url: string; +} +export interface ValidateTransferNftBatch { + to: Principal; + mint_with: Array; + token_urls: Array; +} +export interface ValidateUnfreezeNft { + to: Principal; + dip_contract: Principal; + token_id: bigint; +} +export interface ValidateUnfreezeNftBatch { + to: Principal; + dip_contracts: Array; + token_ids: Array; +} +export interface ValidateWhitelistDip721 { + dip_contract: Principal; +} +export interface ValidateWithdrawFees { + to: Principal; +} +export interface _SERVICE { + add_whitelist: ( + arg_0: bigint, + arg_1: ValidateWhitelistDip721, + arg_2: Array + ) => Promise; + clean_logs: ( + arg_0: bigint, + arg_1: ValidateCleanLogs, + arg_2: Array + ) => Promise; + encode_validate_transfer_nft: ( + arg_0: bigint, + arg_1: ValidateTransferNft + ) => Promise>; + encode_validate_transfer_nft_batch: ( + arg_0: bigint, + arg_1: ValidateTransferNftBatch + ) => Promise>; + encode_validate_unfreeze_nft: ( + arg_0: bigint, + arg_1: ValidateUnfreezeNft + ) => Promise>; + encode_validate_unfreeze_nft_batch: ( + arg_0: bigint, + arg_1: ValidateUnfreezeNftBatch + ) => Promise>; + freeze_nft: ( + arg_0: bigint, + arg_1: Principal, + arg_2: bigint, + arg_3: bigint, + arg_4: string, + arg_5: string + ) => Promise; + freeze_nft_batch: ( + arg_0: bigint, + arg_1: Principal, + arg_2: Array, + arg_3: bigint, + arg_4: string, + arg_5: string + ) => Promise; + get_config: () => Promise; + get_event: (arg_0: bigint) => Promise<[] | [[BridgeEventCtx, BridgeEvent]]>; + is_whitelisted: (arg_0: Principal) => Promise; + set_group_key: ( + arg_0: bigint, + arg_1: ValidateSetGroupKey, + arg_2: Array + ) => Promise; + set_pause: ( + arg_0: bigint, + arg_1: ValidateSetPause, + arg_2: Array + ) => Promise; + validate_transfer_nft: ( + arg_0: bigint, + arg_1: ValidateTransferNft, + arg_2: Array + ) => Promise; + validate_transfer_nft_batch: ( + arg_0: bigint, + arg_1: ValidateTransferNftBatch, + arg_2: Array + ) => Promise; + validate_unfreeze_nft: ( + arg_0: bigint, + arg_1: ValidateUnfreezeNft, + arg_2: Array + ) => Promise; + validate_unfreeze_nft_batch: ( + arg_0: bigint, + arg_1: ValidateUnfreezeNftBatch, + arg_2: Array + ) => Promise; + withdraw_fees: ( + arg_0: bigint, + arg_1: ValidateWithdrawFees, + arg_2: Array + ) => Promise; + withdraw_nft: ( + arg_0: bigint, + arg_1: Principal, + arg_2: bigint, + arg_3: bigint, + arg_4: string + ) => Promise; + withdraw_nft_batch: ( + arg_0: bigint, + arg_1: Principal, + arg_2: Array, + arg_3: bigint, + arg_4: string + ) => Promise; +} diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts new file mode 100644 index 000000000..57f9ae847 --- /dev/null +++ b/dist/helpers/elrond.d.ts @@ -0,0 +1,190 @@ +/** + * Elrond Implementation for cross chain traits + * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp + * Note that Unsigned Transactions need to be manually handled after they have been added to the block + * @module + */ +import { + Address, + ExtensionProvider, + ISigner, + Transaction, + WalletConnectProvider, +} from "@elrondnetwork/erdjs"; +import BigNumber from "bignumber.js"; +import { + BalanceCheck, + MintNft, + TransferNftForeign, + UnfreezeForeignNft, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + EstimateTxFeesBatch, + GetFeeMargins, + FeeMargins, + IsContractAddress, + GetTokenURI, +} from "./chain"; +import { + ChainNonceGet, + EstimateTxFees, + ExtractAction, + ExtractTxnStatus, + PreTransfer, + PreTransferRawTxn, + ValidateAddress, +} from ".."; +import { EvNotifier } from "../notifier"; +type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; +/** + * Information associated with an ESDT Token + */ +export type EsdtTokenInfo = { + readonly balance: 1 | string; + readonly tokenIdentifier: string; +}; +type BEsdtNftInfo = { + readonly attributes?: string[]; + readonly creator: string; + readonly name: string; + readonly nonce: number; + readonly royalties: string; + readonly uris: string[]; +}; +/** + * Information associated with an ESDT NFT + */ +export type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; +/** + * arguments required to issue an NFT + */ +export type NftIssueArgs = { + readonly identifier: string; + readonly uris: Array; + readonly name: string; + readonly quantity?: number; + readonly royalties?: number; + readonly hash?: string; + readonly attrs?: string; +}; +/** + * Utility for issuing ESDT which supports NFT minting + */ +export interface IssueESDTNFT { + /** + * Issue a new ESDT supporting NFTs + * + * @param sender Owner of this ESDT + * @param name Name of the ESDT + * @param ticker Ticker of the ESDT + * @param canFreeze Wheteher this ESDT can be frozen + * @param canWipe Whether this ESDT can be wiped + * @param canTransferNFTCreateRole Whether the NFT Creation role can be transferred + * + * @returns ticker of the esdt + */ + issueESDTNft( + sender: ElrondSigner, + name: string, + ticker: string, + canFreeze: boolean | undefined, + canWipe: boolean | undefined, + canTransferNFTCreateRole: boolean | undefined + ): Promise; +} +/** + * Possible roles for an ESDT + * + * ESDTRoleNFTCreate: Allow creating NFTs + * ESDTRoleNFTBurn: Allow burning NFTs + * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) + */ +export type ESDTRole = + | "ESDTRoleNFTCreate" + | "ESDTRoleNFTBurn" + | "ESDTRoleNFTAddQuantity"; +/** + * Utility for setting ESDT roles + */ +export interface SetESDTRoles { + /** + * + * Set the roles for a given account for an esdt + * + * @param sender Target account + * @param token ESDT Identifier + * @param roles Roles to set + */ + setESDTRole( + sender: ElrondSigner, + token: string, + target: Address, + roles: ESDTRole[] + ): Promise; + transferESDTOwnership( + sender: ElrondSigner, + token: string, + target: Address + ): Promise; +} +export interface ElrondRawUnsignedTxn { + readonly nonce: number; + readonly value: string; + readonly receiver: string; + readonly sender: string; + readonly gasPrice: number; + readonly gasLimit: number; + readonly data?: string; + readonly chainID: string; + readonly version: number; + readonly options?: number; + readonly signature?: string; +} +/** + * Traits implemented by this module + */ +export type ElrondHelper = BalanceCheck & + TransferNftForeign & + UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + IssueESDTNFT & + MintNft & { + mintableEsdts(address: Address): Promise; + } & ChainNonceGet & + ValidateAddress & + ExtractAction & + PreTransfer & + EstimateTxFees & + EstimateTxFeesBatch & + PreTransferRawTxn & + ExtractTxnStatus & + SetESDTRoles & { + XpNft: string; + } & GetFeeMargins & { + wegldBalance(address: string): Promise; + unwrapWegld(sender: ElrondSigner, amt: BigNumber): Promise; + } & IsContractAddress & + GetTokenURI; +/** + * Create an object implementing cross chain utilities for elrond + * + * @param node_uri URI of the elrond node + * @param minter_address Address of the minter smart contract + * @param middleware_uri REST API of elrond-event-middleware + * @param esdt_nft Identifier of the ESDT NFT Wrapper + */ +export interface ElrondParams { + node_uri: string; + notifier: EvNotifier; + minter_address: string; + esdt_swap_address: string; + esdt_nft: string; + esdt_swap: string; + feeMargin: FeeMargins; +} +export declare function elrondHelperFactory( + elrondParams: ElrondParams +): Promise; +export {}; +//# sourceMappingURL=elrond.d.ts.map diff --git a/dist/helpers/elrond.d.ts.map b/dist/helpers/elrond.d.ts.map new file mode 100644 index 000000000..c9093644b --- /dev/null +++ b/dist/helpers/elrond.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"elrond.d.ts","sourceRoot":"","sources":["../../src/helpers/elrond.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js new file mode 100644 index 000000000..206e7ed20 --- /dev/null +++ b/dist/helpers/elrond.js @@ -0,0 +1,647 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.elrondHelperFactory = void 0; +/** + * Elrond Implementation for cross chain traits + * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp + * Note that Unsigned Transactions need to be manually handled after they have been added to the block + * @module + */ +const erdjs_1 = require("@elrondnetwork/erdjs"); +const axios_1 = __importDefault(require("axios")); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const chain_1 = require("./chain"); +const __1 = require(".."); +const js_base64_1 = require("js-base64"); +const ESDT_ISSUE_ADDR = new erdjs_1.Address( + "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" +); +const ESDT_ISSUE_COST = "50000000000000000"; +const NFT_TRANSFER_COST = new bignumber_js_1.default(350000000); +const NFT_UNFREEZE_COST = new bignumber_js_1.default(350000000); +async function elrondHelperFactory(elrondParams) { + const provider = new erdjs_1.ProxyProvider(elrondParams.node_uri); + await erdjs_1.NetworkConfig.getDefault().sync(provider); + const mintContract = new erdjs_1.Address(elrondParams.minter_address); + const swapContract = new erdjs_1.Address(elrondParams.esdt_swap_address); + const providerRest = axios_1.default.create({ + baseURL: elrondParams.node_uri, + }); + const esdtNftHex = Buffer.from(elrondParams.esdt_nft, "utf-8"); + const esdtSwaphex = Buffer.from(elrondParams.esdt_swap, "utf-8"); + const networkConfig = await provider.getNetworkConfig(); + const gasPriceModif = + networkConfig.MinGasPrice.valueOf() * + networkConfig.GasPriceModifier.valueOf(); + async function notifyValidator(txn, sender, uri, action_id) { + await elrondParams.notifier.notifyElrond( + txn.getHash().toString(), + sender, + uri, + action_id + ); + } + const syncAccount = async (signer) => { + const account = new erdjs_1.Account(await getAddress(signer)); + await account.sync(provider); + return account; + }; + const signAndSend = async (signer, tx) => { + const acc = await syncAccount(signer); + tx.setNonce(acc.nonce); + let stx; + if (signer instanceof erdjs_1.WalletConnectProvider) { + const txs = await signer.signTransactions([tx]); + stx = txs[0]; + } else if (signer instanceof erdjs_1.ExtensionProvider) { + stx = await signer.signTransaction(tx); + } else if (signer instanceof erdjs_1.UserSigner) { + await signer.sign(tx); + stx = tx; + } else { + //@ts-ignore + stx = await signer.signTransaction(tx); + } + try { + await stx.send(provider); + } catch (e) { + if (e.message.includes("lowerNonceInTx")) { + throw (0, chain_1.ConcurrentSendError)(); + } else { + throw e; + } + } + return stx; + }; + const transactionResult = async (tx_hash) => { + const uri = `/transaction/${tx_hash.toString()}?withResults=true`; + let tries = 0; + while (tries < 10) { + tries += 1; + let err; + // TODO: type safety + const res = await providerRest.get(uri).catch((e) => (err = e)); + if (err) { + await new Promise((r) => setTimeout(r, 3000)); + continue; + } + const data = res.data; + if (data["code"] != "successful") { + throw Error("failed to execute txn"); + } + const tx_info = data["data"]["transaction"]; + if (tx_info["status"] == "pending") { + await new Promise((r) => setTimeout(r, 5000)); + continue; + } + if (tx_info["status"] != "success") { + throw Error("failed to execute txn"); + } + return tx_info; + } + throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); + }; + const doEgldSwap = async (sender, nft, value) => { + const esdts = await listEsdt((await sender.getAddress()).toString()); + const res = esdts[nft.native.nonce]; + if ( + res === undefined || + new bignumber_js_1.default(res.balance).lt(value) + ) { + const utx = new erdjs_1.Transaction({ + receiver: swapContract, + gasLimit: new erdjs_1.GasLimit(300000000), + value: new erdjs_1.Balance( + erdjs_1.Egld.getToken(), + erdjs_1.Egld.getNonce(), + new bignumber_js_1.default(value.toString()) + ), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("wrapEgld")) + .build(), + }); + const tx = await signAndSend(sender, utx); + await transactionResult(tx.getHash()); + return tx.getHash().toString(); + } + return undefined; + }; + const unsignedMintNftTxn = ( + owner, + { identifier, quantity, name, royalties, hash, attrs, uris } + ) => { + let baseArgs = erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("ESDTNFTCreate")) + .addArg( + new erdjs_1.TokenIdentifierValue(Buffer.from(identifier, "utf-8")) + ) + .addArg( + new erdjs_1.BigUIntValue(new bignumber_js_1.default(quantity ?? 1)) + ) + .addArg(new erdjs_1.BytesValue(Buffer.from(name, "utf-8"))) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(royalties ?? 0))) + .addArg( + new erdjs_1.BytesValue( + hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0) + ) + ) + .addArg( + new erdjs_1.BytesValue( + attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0) + ) + ); + for (const uri of uris) { + baseArgs = baseArgs.addArg( + new erdjs_1.BytesValue(Buffer.from(uri, "utf-8")) + ); + } + return new erdjs_1.Transaction({ + receiver: owner, + gasLimit: new erdjs_1.GasLimit(70000000), + data: baseArgs.build(), + }); + }; + function tokenIdentReal(tokenIdentifier) { + const base = tokenIdentifier.split("-"); + base.pop(); + return base.join("-"); + } + const unsignedTransferNftTxn = ( + chain_nonce, + address, + to, + { tokenIdentifier, nonce }, + tx_fees, + mintWith + ) => { + return new erdjs_1.Transaction({ + receiver: address, + gasLimit: new erdjs_1.GasLimit(300000000), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) + .addArg(new erdjs_1.AddressValue(mintContract)) + .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(2))) + .addArg( + new erdjs_1.TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + ) + ) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(nonce))) + .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(1))) + .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(0x0))) + .addArg(new erdjs_1.BigUIntValue(tx_fees)) + .addArg(new erdjs_1.BytesValue(Buffer.from("freezeSendNft", "ascii"))) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) + .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) + .addArg(new erdjs_1.BytesValue(Buffer.from(mintWith, "ascii"))) + .build(), + }); + }; + const unsignedUnfreezeNftTxn = ( + address, + to, + { tokenIdentifier, nonce }, + tx_fees, + chain_nonce + ) => { + return new erdjs_1.Transaction({ + receiver: address, + gasLimit: new erdjs_1.GasLimit(300000000), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) + .addArg(new erdjs_1.AddressValue(mintContract)) + .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(2))) + .addArg( + new erdjs_1.TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + ) + ) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(nonce))) + .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(1))) + .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(0x0))) + .addArg(new erdjs_1.BigUIntValue(tx_fees)) + .addArg(new erdjs_1.BytesValue(Buffer.from("withdrawNft", "ascii"))) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) + .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + }; + const listEsdt = async (owner) => { + const raw = await providerRest(`/address/${owner}/esdt`); + const dat = raw.data.data.esdts; + return dat; + }; + const unsignedIssueESDTNft = ( + name, + ticker, + canFreeze, + canWipe, + canTransferNFTCreateRole + ) => { + let baseArgs = erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("issueNonFungible")) + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(name, "utf-8"))) + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); + if (canFreeze !== undefined) { + baseArgs = baseArgs + .addArg(new erdjs_1.BytesValue(Buffer.from("canFreeze", "ascii"))) + .addArg( + new erdjs_1.BytesValue( + Buffer.from(canFreeze ? "true" : "false", "ascii") + ) + ); + } + if (canWipe !== undefined) { + baseArgs = baseArgs + .addArg(new erdjs_1.BytesValue(Buffer.from("canWipe", "ascii"))) + .addArg( + new erdjs_1.BytesValue( + Buffer.from(canWipe ? "true" : "false", "ascii") + ) + ); + } + if (canTransferNFTCreateRole !== undefined) { + baseArgs = baseArgs + .addArg(new erdjs_1.BytesValue(Buffer.from("canChangeOwner", "ascii"))) + .addArg( + new erdjs_1.BytesValue( + Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") + ) + ); + } + return new erdjs_1.Transaction({ + receiver: ESDT_ISSUE_ADDR, + value: new erdjs_1.Balance( + erdjs_1.Egld.getToken(), + erdjs_1.Egld.getNonce(), + new bignumber_js_1.default(ESDT_ISSUE_COST.toString()) + ), + gasLimit: new erdjs_1.GasLimit(60000000), + data: baseArgs.build(), + }); + }; + const unsignedSetESDTRoles = (token, target, roles) => { + let baseArgs = erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("setSpecialRole")) + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token))) + .addArg(new erdjs_1.AddressValue(target)); + for (const role of roles) { + baseArgs = baseArgs.addArg( + new erdjs_1.BytesValue(Buffer.from(role, "utf-8")) + ); + } + return new erdjs_1.Transaction({ + receiver: ESDT_ISSUE_ADDR, + gasLimit: new erdjs_1.GasLimit(70000000), + data: baseArgs.build(), + }); + }; + async function extractAction(tx) { + let err; + await tx.awaitExecuted(provider).catch((e) => (err = e)); + if (err) { + await new Promise((r) => setTimeout(r, 3000)); + return await extractAction(tx); + } + const txr = await transactionResult(tx.getHash()); + const id = filterEventId(txr["smartContractResults"]); + return id.toString(); + } + function estimateGas(base_fees) { + return base_fees.multipliedBy(gasPriceModif); // assume execution takes about twice as much gas fees + } + async function getAddress(sender) { + return new erdjs_1.Address(await sender.getAddress()); + } + return { + XpNft: elrondParams.esdt_nft, + async balance(address) { + const wallet = new erdjs_1.Account(new erdjs_1.Address(address)); + await wallet.sync(provider); + return wallet.balance.valueOf(); + }, + async isContractAddress(address) { + return erdjs_1.Address.fromString(address).isContractAddress(); + }, + getFeeMargin() { + return elrondParams.feeMargin; + }, + async extractTxnStatus(txn) { + const status = await provider.getTransactionStatus( + new erdjs_1.TransactionHash(txn) + ); + if (status.isPending()) { + return chain_1.TransactionStatus.PENDING; + } + if (status.isSuccessful()) { + return chain_1.TransactionStatus.SUCCESS; + } + if (status.isFailed()) { + return chain_1.TransactionStatus.FAILURE; + } + return chain_1.TransactionStatus.UNKNOWN; + }, + preTransfer: doEgldSwap, + preUnfreeze: doEgldSwap, + extractAction, + async transferNftToForeign( + sender, + chain_nonce, + to, + info, + txFees, + mintWith + ) { + const txu = unsignedTransferNftTxn( + chain_nonce, + await getAddress(sender), + to, + info.native, + new bignumber_js_1.default(txFees.toString()), + mintWith + ); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + [info.uri], + undefined + // await extractAction(tx) + ); + return tx; + }, + async unfreezeWrappedNft(sender, to, nft, txFees, nonce) { + console.log(`Unfreezing`); + const txu = unsignedUnfreezeNftTxn( + await getAddress(sender), + to, + nft.native, + new bignumber_js_1.default(txFees.toString()), + nonce + ); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + [nft.uri], + undefined + // await extractAction(tx) + ); + return tx; + }, + async issueESDTNft( + sender, + name, + ticker, + canFreeze = false, + canWipe = false, + canTransferNFTCreateRole = false + ) { + const txu = unsignedIssueESDTNft( + name, + ticker, + canFreeze, + canWipe, + canTransferNFTCreateRole + ); + const tx = await signAndSend(sender, txu); + const res = await transactionResult(tx.getHash()); + const tickerh = res["smartContractResults"][0].data.split("@")[2]; + return Buffer.from(tickerh, "hex").toString("utf-8"); + }, + async mintNft(owner, args) { + const txu = unsignedMintNftTxn(await getAddress(owner), args); + const tx = await signAndSend(owner, txu); + return tx.getHash().toString(); + }, + async mintableEsdts(address) { + const res = await providerRest.get( + `/address/${address.toString()}/esdts-with-role/ESDTRoleNFTCreate` + ); + return res.data["data"]["tokens"]; + }, + async preTransferRawTxn(id, address, value) { + if (!address || !value) { + throw new Error("address and value is required for elrond egld swap"); + } + const esdts = await listEsdt(address); + const res = esdts[id.native.nonce]; + if ( + res === undefined || + new bignumber_js_1.default(res.balance).lt(value) + ) { + const utx = new erdjs_1.Transaction({ + receiver: swapContract, + gasLimit: new erdjs_1.GasLimit(50000000), + value: new erdjs_1.Balance( + erdjs_1.Egld.getToken(), + erdjs_1.Egld.getNonce(), + new bignumber_js_1.default(value.toString()) + ), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("wrapEgld")) + .build(), + }); + return utx.toPlainObject(); + } + return undefined; + }, + async setESDTRole(manager, token, target, roles) { + const txu = unsignedSetESDTRoles(token, target, roles); + const tx = await signAndSend(manager, txu); + await transactionResult(tx.getHash()); + return tx; + }, + async transferESDTOwnership(sender, token, target) { + const txu = new erdjs_1.Transaction({ + receiver: new erdjs_1.Address( + "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" + ), + gasLimit: new erdjs_1.GasLimit(60000000), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("transferOwnership")) + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token, "utf-8"))) + .addArg(new erdjs_1.AddressValue(target)) + .build(), + }); + return await signAndSend(sender, txu); + }, + getNonce() { + return __1.Chain.ELROND; + }, + async estimateValidateTransferNft(_toAddress, _nftUri) { + return estimateGas(NFT_TRANSFER_COST); // TODO: properly estimate NFT_TRANSFER_COST + }, + async estimateValidateUnfreezeNft(_to, _nftUri) { + return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST + }, + async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { + const txu = new erdjs_1.Transaction({ + receiver: await getAddress(sender), + gasLimit: new erdjs_1.GasLimit(40000000 + 5000000 * nfts.length), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) + .setArgs([ + new erdjs_1.AddressValue(mintContract), + new erdjs_1.BigUIntValue( + new bignumber_js_1.default(nfts.length + 1) + ), + ...nfts.flatMap((nft) => [ + new erdjs_1.TokenIdentifierValue(esdtNftHex), + new erdjs_1.U64Value( + new bignumber_js_1.default(nft.native.nonce) + ), + new erdjs_1.BigUIntValue(new bignumber_js_1.default(1)), + ]), + new erdjs_1.TokenIdentifierValue(esdtSwaphex), + new erdjs_1.U64Value(new bignumber_js_1.default(0x0)), + new erdjs_1.BigUIntValue(txFees), + new erdjs_1.BytesValue(Buffer.from("withdrawBatchNft", "ascii")), + new erdjs_1.U64Value(new bignumber_js_1.default(chainNonce)), + new erdjs_1.BytesValue(Buffer.from(to, "ascii")), + ]) + .build(), + }); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + nfts.map((n) => n.uri), + undefined + // await extractAction(tx) + ); + return tx; + }, + async transferNftBatchToForeign( + sender, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const txu = new erdjs_1.Transaction({ + receiver: await getAddress(sender), + gasLimit: new erdjs_1.GasLimit(50000000 + 5000000 * nfts.length), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) + .setArgs([ + new erdjs_1.AddressValue(mintContract), + new erdjs_1.BigUIntValue( + new bignumber_js_1.default(nfts.length + 1) + ), + ...nfts.flatMap((nft) => [ + new erdjs_1.TokenIdentifierValue( + Buffer.from(tokenIdentReal(nft.native.tokenIdentifier), "utf-8") + ), + new erdjs_1.U64Value( + new bignumber_js_1.default(nft.native.nonce) + ), + new erdjs_1.BigUIntValue(new bignumber_js_1.default(1)), + ]), + new erdjs_1.TokenIdentifierValue(esdtSwaphex), + new erdjs_1.U64Value(new bignumber_js_1.default(0x0)), + new erdjs_1.BigUIntValue(txFees), + new erdjs_1.BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), + new erdjs_1.U64Value(new bignumber_js_1.default(chainNonce)), + new erdjs_1.BytesValue(Buffer.from(to, "ascii")), + new erdjs_1.BytesValue(Buffer.from(mintWith, "ascii")), + ]) + .build(), + }); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + nfts.map((n) => n.uri), + undefined + // await extractAction(tx) + ); + return tx; + }, + async wegldBalance(addr) { + const esdtInfo = await provider.getAddressEsdt( + new erdjs_1.Address(addr), + elrondParams.esdt_swap + ); + return new bignumber_js_1.default(esdtInfo.balance); + }, + async unwrapWegld(sender, amount) { + const txu = new erdjs_1.Transaction({ + receiver: swapContract, + gasLimit: new erdjs_1.GasLimit(300500000), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("ESDTTransfer")) + .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) + .addArg(new erdjs_1.U64Value(amount)) + .addArg(new erdjs_1.BytesValue(Buffer.from("unwrapEgld"))) + .build(), + }); + const tx = await signAndSend(sender, txu); + return tx.getHash().toString(); + }, + async estimateValidateTransferNftBatch(_, nfts) { + return estimateGas( + new bignumber_js_1.default(360000000 + 5000000 * nfts.length) + ); + }, + async estimateValidateUnfreezeNftBatch(_, nfts) { + return estimateGas( + new bignumber_js_1.default(340000000 + 5000000 * nfts.length) + ); + }, + async validateAddress(adr) { + try { + new erdjs_1.Address(adr); + return await providerRest + .get(`/address/${adr}/esdt`) + .then((_) => true) + .catch((_) => false); + } catch (_) { + return false; + } + }, + async getTokenURI(_, tokenId) { + if (tokenId) { + const url = `https://api.elrond.com/nfts/${tokenId}`; + const res = await (0, axios_1.default)(url).catch(() => ({ + data: null, + })); + if (res.data?.metadata) { + return url; + } + const uri = res.data?.uris[1] || res.data?.uris[0]; + if (uri) { + return js_base64_1.Base64.decode(uri); + } + } + return ""; + }, + }; +} +exports.elrondHelperFactory = elrondHelperFactory; +function filterEventId(results) { + for (const res of results) { + if (res["nonce"] === 0) { + continue; + } + const data = res.data.split("@"); + if (data[0] != "" || data[1] != "6f6b" || data.length != 3) { + continue; + } + try { + return parseInt(data[2], 16); + } catch (NumberFormatException) { + continue; + } + } + throw Error(`invalid result: ${results.toString()}`); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBcUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQiwwQkFVWTtBQUVaLHlDQUFtQztBQU1uQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQU8sQ0FDakMsZ0VBQWdFLENBQ2pFLENBQUM7QUFDRixNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQUU1QyxNQUFNLGlCQUFpQixHQUFHLElBQUksc0JBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuRCxNQUFNLGlCQUFpQixHQUFHLElBQUksc0JBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQW1LNUMsS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxZQUEwQjtJQUUxQixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFELE1BQU0scUJBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFlBQVksQ0FBQyxRQUFRO0tBQy9CLENBQUMsQ0FBQztJQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FB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 diff --git a/dist/helpers/elrond.ts b/dist/helpers/elrond.ts new file mode 100644 index 000000000..5a7ad56fe --- /dev/null +++ b/dist/helpers/elrond.ts @@ -0,0 +1,895 @@ +/** + * Elrond Implementation for cross chain traits + * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp + * Note that Unsigned Transactions need to be manually handled after they have been added to the block + * @module + */ +import { + Account, + Address, + AddressValue, + Balance, + BigUIntValue, + BytesValue, + ContractFunction, + Egld, + ExtensionProvider, + GasLimit, + ISigner, + NetworkConfig, + ProxyProvider, + TokenIdentifierValue, + Transaction, + TransactionHash, + TransactionPayload, + U64Value, + UserSigner, + WalletConnectProvider, +} from "@elrondnetwork/erdjs"; +import axios from "axios"; +import BigNumber from "bignumber.js"; +import { + BalanceCheck, + ConcurrentSendError, + MintNft, + TransferNftForeign, + UnfreezeForeignNft, + TransactionStatus, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + EstimateTxFeesBatch, + GetFeeMargins, + FeeMargins, + IsContractAddress, + GetTokenURI, +} from "./chain"; +import { + Chain, + ChainNonceGet, + EstimateTxFees, + ExtractAction, + ExtractTxnStatus, + NftInfo, + PreTransfer, + PreTransferRawTxn, + ValidateAddress, +} from ".."; +import { EvNotifier } from "../notifier"; +import { Base64 } from "js-base64"; + +type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; + +type EasyBalance = string | number | BigNumber; + +const ESDT_ISSUE_ADDR = new Address( + "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" +); +const ESDT_ISSUE_COST = "50000000000000000"; + +const NFT_TRANSFER_COST = new BigNumber(350000000); +const NFT_UNFREEZE_COST = new BigNumber(350000000); + +type ContractRes = { + readonly [idx: string]: number | string; +}; + +/** + * Information associated with an ESDT Token + */ +export type EsdtTokenInfo = { + readonly balance: 1 | string; + readonly tokenIdentifier: string; +}; + +type BEsdtNftInfo = { + readonly attributes?: string[]; + readonly creator: string; + readonly name: string; + readonly nonce: number; + readonly royalties: string; + readonly uris: string[]; +}; + +type MaybeEsdtNftInfo = EsdtTokenInfo & (BEsdtNftInfo | undefined); + +/** + * Information associated with an ESDT NFT + */ +export type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; + +/** + * arguments required to issue an NFT + */ +export type NftIssueArgs = { + readonly identifier: string; + readonly uris: Array; + readonly name: string; + readonly quantity?: number; + readonly royalties?: number; + readonly hash?: string; + readonly attrs?: string; +}; + +/** + * Utility for issuing ESDT which supports NFT minting + */ +export interface IssueESDTNFT { + /** + * Issue a new ESDT supporting NFTs + * + * @param sender Owner of this ESDT + * @param name Name of the ESDT + * @param ticker Ticker of the ESDT + * @param canFreeze Wheteher this ESDT can be frozen + * @param canWipe Whether this ESDT can be wiped + * @param canTransferNFTCreateRole Whether the NFT Creation role can be transferred + * + * @returns ticker of the esdt + */ + issueESDTNft( + sender: ElrondSigner, + name: string, + ticker: string, + canFreeze: boolean | undefined, + canWipe: boolean | undefined, + canTransferNFTCreateRole: boolean | undefined + ): Promise; +} + +/** + * Possible roles for an ESDT + * + * ESDTRoleNFTCreate: Allow creating NFTs + * ESDTRoleNFTBurn: Allow burning NFTs + * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) + */ +export type ESDTRole = + | "ESDTRoleNFTCreate" + | "ESDTRoleNFTBurn" + | "ESDTRoleNFTAddQuantity"; + +/** + * Utility for setting ESDT roles + */ +export interface SetESDTRoles { + /** + * + * Set the roles for a given account for an esdt + * + * @param sender Target account + * @param token ESDT Identifier + * @param roles Roles to set + */ + setESDTRole( + sender: ElrondSigner, + token: string, + target: Address, + roles: ESDTRole[] + ): Promise; + transferESDTOwnership( + sender: ElrondSigner, + token: string, + target: Address + ): Promise; +} + +export interface ElrondRawUnsignedTxn { + readonly nonce: number; + readonly value: string; + readonly receiver: string; + readonly sender: string; + readonly gasPrice: number; + readonly gasLimit: number; + readonly data?: string; + readonly chainID: string; + readonly version: number; + readonly options?: number; + readonly signature?: string; +} + +/** + * Traits implemented by this module + */ +export type ElrondHelper = BalanceCheck & + TransferNftForeign & + UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + IssueESDTNFT & + MintNft & { + mintableEsdts(address: Address): Promise; + } & ChainNonceGet & + ValidateAddress & + ExtractAction & + PreTransfer & + EstimateTxFees & + EstimateTxFeesBatch & + PreTransferRawTxn & + ExtractTxnStatus & + SetESDTRoles & { XpNft: string } & GetFeeMargins & { + wegldBalance(address: string): Promise; + unwrapWegld(sender: ElrondSigner, amt: BigNumber): Promise; + } & IsContractAddress & + GetTokenURI; + +/** + * Create an object implementing cross chain utilities for elrond + * + * @param node_uri URI of the elrond node + * @param minter_address Address of the minter smart contract + * @param middleware_uri REST API of elrond-event-middleware + * @param esdt_nft Identifier of the ESDT NFT Wrapper + */ +export interface ElrondParams { + node_uri: string; + notifier: EvNotifier; + minter_address: string; + esdt_swap_address: string; + esdt_nft: string; + esdt_swap: string; + feeMargin: FeeMargins; +} + +export async function elrondHelperFactory( + elrondParams: ElrondParams +): Promise { + const provider = new ProxyProvider(elrondParams.node_uri); + await NetworkConfig.getDefault().sync(provider); + const mintContract = new Address(elrondParams.minter_address); + const swapContract = new Address(elrondParams.esdt_swap_address); + const providerRest = axios.create({ + baseURL: elrondParams.node_uri, + }); + const esdtNftHex = Buffer.from(elrondParams.esdt_nft, "utf-8"); + const esdtSwaphex = Buffer.from(elrondParams.esdt_swap, "utf-8"); + const networkConfig = await provider.getNetworkConfig(); + const gasPriceModif = + networkConfig.MinGasPrice.valueOf() * + networkConfig.GasPriceModifier.valueOf(); + + async function notifyValidator( + txn: Transaction, + sender: string, + uri: string[], + action_id: string | undefined + ) { + await elrondParams.notifier.notifyElrond( + txn.getHash().toString(), + sender, + uri, + action_id + ); + } + + const syncAccount = async (signer: ElrondSigner) => { + const account = new Account(await getAddress(signer)); + await account.sync(provider); + + return account; + }; + + const signAndSend = async (signer: ElrondSigner, tx: Transaction) => { + const acc = await syncAccount(signer); + tx.setNonce(acc.nonce); + let stx: Transaction; + if (signer instanceof WalletConnectProvider) { + const txs = await signer.signTransactions([tx]); + stx = txs[0]; + } else if (signer instanceof ExtensionProvider) { + stx = await signer.signTransaction(tx); + } else if (signer instanceof UserSigner) { + await signer.sign(tx); + stx = tx; + } else { + //@ts-ignore + stx = await signer.signTransaction(tx); + } + try { + await stx.send(provider); + } catch (e: any) { + if (e.message.includes("lowerNonceInTx")) { + throw ConcurrentSendError(); + } else { + throw e; + } + } + return stx; + }; + + const transactionResult = async (tx_hash: TransactionHash) => { + const uri = `/transaction/${tx_hash.toString()}?withResults=true`; + let tries = 0; + + while (tries < 10) { + tries += 1; + let err; + // TODO: type safety + const res = await providerRest.get(uri).catch((e) => (err = e)); + if (err) { + await new Promise((r) => setTimeout(r, 3000)); + continue; + } + const data = res.data; + if (data["code"] != "successful") { + throw Error("failed to execute txn"); + } + + const tx_info = data["data"]["transaction"]; + if (tx_info["status"] == "pending") { + await new Promise((r) => setTimeout(r, 5000)); + continue; + } + if (tx_info["status"] != "success") { + throw Error("failed to execute txn"); + } + + return tx_info; + } + + throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); + }; + + const doEgldSwap = async ( + sender: ElrondSigner, + nft: NftInfo, + value: BigNumber + ) => { + const esdts = await listEsdt((await sender.getAddress()).toString()); + const res = esdts[nft.native.nonce]; + if (res === undefined || new BigNumber(res.balance).lt(value)) { + const utx = new Transaction({ + receiver: swapContract, + gasLimit: new GasLimit(300000000), + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(value.toString()) + ), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("wrapEgld")) + .build(), + }); + + const tx = await signAndSend(sender, utx); + await transactionResult(tx.getHash()); + + return tx.getHash().toString(); + } + return undefined; + }; + + const unsignedMintNftTxn = ( + owner: Address, + { identifier, quantity, name, royalties, hash, attrs, uris }: NftIssueArgs + ) => { + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTNFTCreate")) + .addArg(new TokenIdentifierValue(Buffer.from(identifier, "utf-8"))) + .addArg(new BigUIntValue(new BigNumber(quantity ?? 1))) + .addArg(new BytesValue(Buffer.from(name, "utf-8"))) + .addArg(new U64Value(new BigNumber(royalties ?? 0))) + .addArg( + new BytesValue(hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0)) + ) + .addArg( + new BytesValue(attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0)) + ); + + for (const uri of uris) { + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(uri, "utf-8"))); + } + + return new Transaction({ + receiver: owner, + gasLimit: new GasLimit(70000000), // TODO: Auto derive + data: baseArgs.build(), + }); + }; + + function tokenIdentReal(tokenIdentifier: string): string { + const base = tokenIdentifier.split("-"); + base.pop(); + return base.join("-"); + } + + const unsignedTransferNftTxn = ( + chain_nonce: number, + address: Address, + to: string, + { tokenIdentifier, nonce }: EsdtNftInfo, + tx_fees: BigNumber, + mintWith: string + ) => { + return new Transaction({ + receiver: address, + gasLimit: new GasLimit(300000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .addArg(new AddressValue(mintContract)) + .addArg(new BigUIntValue(new BigNumber(2))) + .addArg( + new TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + ) + ) + .addArg(new U64Value(new BigNumber(nonce))) + .addArg(new BigUIntValue(new BigNumber(1))) + .addArg(new TokenIdentifierValue(esdtSwaphex)) + .addArg(new U64Value(new BigNumber(0x0))) + .addArg(new BigUIntValue(tx_fees)) + .addArg(new BytesValue(Buffer.from("freezeSendNft", "ascii"))) + .addArg(new U64Value(new BigNumber(chain_nonce))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .addArg(new BytesValue(Buffer.from(mintWith, "ascii"))) + .build(), + }); + }; + + const unsignedUnfreezeNftTxn = ( + address: Address, + to: string, + { tokenIdentifier, nonce }: EsdtNftInfo, + tx_fees: BigNumber, + chain_nonce: string + ) => { + return new Transaction({ + receiver: address, + gasLimit: new GasLimit(300000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .addArg(new AddressValue(mintContract)) + .addArg(new BigUIntValue(new BigNumber(2))) + .addArg( + new TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + ) + ) + .addArg(new U64Value(new BigNumber(nonce))) + .addArg(new BigUIntValue(new BigNumber(1))) + .addArg(new TokenIdentifierValue(esdtSwaphex)) + .addArg(new U64Value(new BigNumber(0x0))) + .addArg(new BigUIntValue(tx_fees)) + .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) + .addArg(new U64Value(new BigNumber(chain_nonce))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + }; + + const listEsdt = async (owner: string) => { + const raw = await providerRest(`/address/${owner}/esdt`); + const dat = raw.data.data.esdts as { [index: string]: MaybeEsdtNftInfo }; + + return dat; + }; + + const unsignedIssueESDTNft = ( + name: string, + ticker: string, + canFreeze: boolean | undefined, + canWipe: boolean | undefined, + canTransferNFTCreateRole: boolean | undefined + ) => { + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("issueNonFungible")) + .addArg(new TokenIdentifierValue(Buffer.from(name, "utf-8"))) + .addArg(new TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); + + if (canFreeze !== undefined) { + baseArgs = baseArgs + .addArg(new BytesValue(Buffer.from("canFreeze", "ascii"))) + .addArg( + new BytesValue(Buffer.from(canFreeze ? "true" : "false", "ascii")) + ); + } + if (canWipe !== undefined) { + baseArgs = baseArgs + .addArg(new BytesValue(Buffer.from("canWipe", "ascii"))) + .addArg( + new BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii")) + ); + } + if (canTransferNFTCreateRole !== undefined) { + baseArgs = baseArgs + .addArg(new BytesValue(Buffer.from("canChangeOwner", "ascii"))) + .addArg( + new BytesValue( + Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") + ) + ); + } + + return new Transaction({ + receiver: ESDT_ISSUE_ADDR, + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(ESDT_ISSUE_COST.toString()) + ), + gasLimit: new GasLimit(60000000), + data: baseArgs.build(), + }); + }; + + const unsignedSetESDTRoles = ( + token: string, + target: Address, + roles: ESDTRole[] + ) => { + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("setSpecialRole")) + .addArg(new TokenIdentifierValue(Buffer.from(token))) + .addArg(new AddressValue(target)); + + for (const role of roles) { + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(role, "utf-8"))); + } + + return new Transaction({ + receiver: ESDT_ISSUE_ADDR, + gasLimit: new GasLimit(70000000), // TODO: auto derive + data: baseArgs.build(), + }); + }; + + async function extractAction(tx: Transaction): Promise { + let err; + await tx.awaitExecuted(provider).catch((e) => (err = e)); + if (err) { + await new Promise((r) => setTimeout(r, 3000)); + return await extractAction(tx); + } + + const txr = await transactionResult(tx.getHash()); + + const id = filterEventId(txr["smartContractResults"]); + + return id.toString(); + } + + function estimateGas(base_fees: BigNumber) { + return base_fees.multipliedBy(gasPriceModif); // assume execution takes about twice as much gas fees + } + + async function getAddress(sender: ElrondSigner): Promise
{ + return new Address(await sender.getAddress()); + } + + return { + XpNft: elrondParams.esdt_nft, + async balance(address: string | Address): Promise { + const wallet = new Account(new Address(address)); + + await wallet.sync(provider); + + return wallet.balance.valueOf(); + }, + async isContractAddress(address) { + return Address.fromString(address).isContractAddress(); + }, + getFeeMargin() { + return elrondParams.feeMargin; + }, + async extractTxnStatus(txn) { + const status = await provider.getTransactionStatus( + new TransactionHash(txn) + ); + if (status.isPending()) { + return TransactionStatus.PENDING; + } + if (status.isSuccessful()) { + return TransactionStatus.SUCCESS; + } + if (status.isFailed()) { + return TransactionStatus.FAILURE; + } + return TransactionStatus.UNKNOWN; + }, + preTransfer: doEgldSwap, + preUnfreeze: doEgldSwap, + extractAction, + async transferNftToForeign( + sender: ElrondSigner, + chain_nonce: number, + to: string, + info: NftInfo, + txFees: EasyBalance, + mintWith + ): Promise { + const txu = unsignedTransferNftTxn( + chain_nonce, + await getAddress(sender), + to, + info.native, + new BigNumber(txFees.toString()), + mintWith + ); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + [info.uri], + undefined + // await extractAction(tx) + ); + + return tx; + }, + async unfreezeWrappedNft( + sender: ElrondSigner, + to: string, + nft: NftInfo, + txFees: EasyBalance, + nonce + ): Promise { + console.log(`Unfreezing`); + const txu = unsignedUnfreezeNftTxn( + await getAddress(sender), + to, + nft.native, + new BigNumber(txFees.toString()), + nonce + ); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + [nft.uri], + undefined + // await extractAction(tx) + ); + + return tx; + }, + async issueESDTNft( + sender: ElrondSigner, + name: string, + ticker: string, + canFreeze: boolean = false, + canWipe: boolean = false, + canTransferNFTCreateRole: boolean = false + ): Promise { + const txu = unsignedIssueESDTNft( + name, + ticker, + canFreeze, + canWipe, + canTransferNFTCreateRole + ); + + const tx = await signAndSend(sender, txu); + const res = await transactionResult(tx.getHash()); + const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; + return Buffer.from(tickerh, "hex").toString("utf-8"); + }, + async mintNft(owner: ElrondSigner, args: NftIssueArgs): Promise { + const txu = unsignedMintNftTxn(await getAddress(owner), args); + const tx = await signAndSend(owner, txu); + return tx.getHash().toString(); + }, + async mintableEsdts(address: Address): Promise { + const res = await providerRest.get( + `/address/${address.toString()}/esdts-with-role/ESDTRoleNFTCreate` + ); + + return res.data["data"]["tokens"]; + }, + async preTransferRawTxn(id, address, value) { + if (!address || !value) { + throw new Error("address and value is required for elrond egld swap"); + } + const esdts = await listEsdt(address); + const res = esdts[id.native.nonce]; + if (res === undefined || new BigNumber(res.balance).lt(value)) { + const utx = new Transaction({ + receiver: swapContract, + gasLimit: new GasLimit(50000000), + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(value.toString()) + ), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("wrapEgld")) + .build(), + }); + return utx.toPlainObject(); + } + return undefined; + }, + async setESDTRole( + manager: ElrondSigner, + token: string, + target: Address, + roles: ESDTRole[] + ): Promise { + const txu = unsignedSetESDTRoles(token, target, roles); + + const tx = await signAndSend(manager, txu); + await transactionResult(tx.getHash()); + return tx; + }, + async transferESDTOwnership(sender, token, target): Promise { + const txu = new Transaction({ + receiver: new Address( + "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" + ), + gasLimit: new GasLimit(60000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("transferOwnership")) + .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) + .addArg(new AddressValue(target)) + .build(), + }); + + return await signAndSend(sender, txu); + }, + getNonce() { + return Chain.ELROND; + }, + async estimateValidateTransferNft( + _toAddress: string, + _nftUri: NftInfo + ) { + return estimateGas(NFT_TRANSFER_COST); // TODO: properly estimate NFT_TRANSFER_COST + }, + async estimateValidateUnfreezeNft(_to: string, _nftUri: NftInfo) { + return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST + }, + async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { + const txu = new Transaction({ + receiver: await getAddress(sender), + gasLimit: new GasLimit(40000000 + 5000000 * nfts.length), // TODO: better estimate + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .setArgs([ + new AddressValue(mintContract), + new BigUIntValue(new BigNumber(nfts.length + 1)), + ...nfts.flatMap((nft) => [ + new TokenIdentifierValue(esdtNftHex), + new U64Value(new BigNumber(nft.native.nonce)), + new BigUIntValue(new BigNumber(1)), + ]), + new TokenIdentifierValue(esdtSwaphex), + new U64Value(new BigNumber(0x0)), + new BigUIntValue(txFees), + new BytesValue(Buffer.from("withdrawBatchNft", "ascii")), + new U64Value(new BigNumber(chainNonce)), + new BytesValue(Buffer.from(to, "ascii")), + ]) + .build(), + }); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + nfts.map((n) => n.uri), + undefined + // await extractAction(tx) + ); + + return tx; + }, + async transferNftBatchToForeign( + sender, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const txu = new Transaction({ + receiver: await getAddress(sender), + gasLimit: new GasLimit(50000000 + 5000000 * nfts.length), // TODO: better estimate + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .setArgs([ + new AddressValue(mintContract), + new BigUIntValue(new BigNumber(nfts.length + 1)), + ...nfts.flatMap((nft) => [ + new TokenIdentifierValue( + Buffer.from(tokenIdentReal(nft.native.tokenIdentifier), "utf-8") + ), + new U64Value(new BigNumber(nft.native.nonce)), + new BigUIntValue(new BigNumber(1)), + ]), + new TokenIdentifierValue(esdtSwaphex), + new U64Value(new BigNumber(0x0)), + new BigUIntValue(txFees), + new BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), + new U64Value(new BigNumber(chainNonce)), + new BytesValue(Buffer.from(to, "ascii")), + new BytesValue(Buffer.from(mintWith, "ascii")), + ]) + .build(), + }); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + nfts.map((n) => n.uri), + undefined + // await extractAction(tx) + ); + + return tx; + }, + async wegldBalance(addr) { + const esdtInfo = await provider.getAddressEsdt( + new Address(addr), + elrondParams.esdt_swap + ); + + return new BigNumber(esdtInfo.balance); + }, + async unwrapWegld(sender: ElrondSigner, amount: BigNumber) { + const txu = new Transaction({ + receiver: swapContract, + gasLimit: new GasLimit(300500000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTTransfer")) + .addArg(new TokenIdentifierValue(esdtSwaphex)) + .addArg(new U64Value(amount)) + .addArg(new BytesValue(Buffer.from("unwrapEgld"))) + .build(), + }); + + const tx = await signAndSend(sender, txu); + + return tx.getHash().toString(); + }, + async estimateValidateTransferNftBatch(_, nfts) { + return estimateGas(new BigNumber(360000000 + 5000000 * nfts.length)); + }, + async estimateValidateUnfreezeNftBatch(_, nfts) { + return estimateGas(new BigNumber(340000000 + 5000000 * nfts.length)); + }, + async validateAddress(adr: string) { + try { + new Address(adr); + return await providerRest + .get(`/address/${adr}/esdt`) + .then((_) => true) + .catch((_) => false); + } catch (_) { + return false; + } + }, + async getTokenURI(_, tokenId) { + if (tokenId) { + const url = `https://api.elrond.com/nfts/${tokenId}`; + const res = await axios(url).catch(() => ({ data: null })); + + if (res.data?.metadata) { + return url; + } + + const uri = res.data?.uris[1] || res.data?.uris[0]; + if (uri) { + return Base64.decode(uri); + } + } + return ""; + }, + }; +} + +function filterEventId(results: Array): number { + for (const res of results) { + if (res["nonce"] === 0) { + continue; + } + const data = (res.data as string).split("@"); + if (data[0] != "" || data[1] != "6f6b" || data.length != 3) { + continue; + } + + try { + return parseInt(data[2], 16); + } catch (NumberFormatException) { + continue; + } + } + + throw Error(`invalid result: ${results.toString()}`); +} diff --git a/dist/helpers/hedera/hts_abi.d.ts b/dist/helpers/hedera/hts_abi.d.ts new file mode 100644 index 000000000..72abfd16e --- /dev/null +++ b/dist/helpers/hedera/hts_abi.d.ts @@ -0,0 +1,238 @@ +export declare const HEDERA_TOKEN_SERVICE_ABI: ( + | { + inputs: ( + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: { + internalType: string; + name: string; + type: string; + }[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + )[]; + name: string; + outputs: { + internalType: string; + name: string; + type: string; + }[]; + stateMutability: string; + type: string; + } + | { + inputs: { + internalType: string; + name: string; + type: string; + }[]; + name: string; + outputs: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: ( + | { + components: ( + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: { + internalType: string; + name: string; + type: string; + }[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + )[]; + internalType: string; + name: string; + type: string; + } + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + )[]; + internalType: string; + name: string; + type: string; + } + )[]; + stateMutability: string; + type: string; + } +)[]; +export declare const HEDERA_PROXY_ABI: ( + | { + anonymous: boolean; + inputs: { + indexed: boolean; + internalType: string; + name: string; + type: string; + }[]; + name: string; + type: string; + outputs?: undefined; + stateMutability?: undefined; + } + | { + inputs: { + internalType: string; + name: string; + type: string; + }[]; + name: string; + outputs: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: { + internalType: string; + name: string; + type: string; + }[]; + internalType: string; + name: string; + type: string; + } + )[]; + stateMutability: string; + type: string; + anonymous?: undefined; + } + | { + inputs: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: { + internalType: string; + name: string; + type: string; + }[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + )[]; + name: string; + outputs: { + internalType: string; + name: string; + type: string; + }[]; + stateMutability: string; + type: string; + anonymous?: undefined; + } +)[]; +export declare const HEDERA_PROXY_BC = + "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; +//# sourceMappingURL=hts_abi.d.ts.map diff --git a/dist/helpers/hedera/hts_abi.d.ts.map b/dist/helpers/hedera/hts_abi.d.ts.map new file mode 100644 index 000000000..5855fc55e --- /dev/null +++ b/dist/helpers/hedera/hts_abi.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"hts_abi.d.ts","sourceRoot":"","sources":["../../../src/helpers/hedera/hts_abi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAk4FpC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsmB5B,CAAC;AACF,eAAO,MAAM,eAAe,mzgDACsxgD,CAAC"} \ No newline at end of file diff --git a/dist/helpers/hedera/hts_abi.js b/dist/helpers/hedera/hts_abi.js new file mode 100644 index 000000000..c9dfa788c --- /dev/null +++ b/dist/helpers/hedera/hts_abi.js @@ -0,0 +1,3571 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HEDERA_PROXY_BC = + exports.HEDERA_PROXY_ABI = + exports.HEDERA_TOKEN_SERVICE_ABI = + void 0; +exports.HEDERA_TOKEN_SERVICE_ABI = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "approved", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "approveNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "associateToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address[]", + name: "tokens", + type: "address[]", + }, + ], + name: "associateTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint64", + name: "amount", + type: "uint64", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + name: "burnToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint64", + name: "newTotalSupply", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + internalType: "uint64", + name: "initialTotalSupply", + type: "uint64", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + ], + name: "createFungibleToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + internalType: "uint64", + name: "initialTotalSupply", + type: "uint64", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + ], + name: "createFungibleTokenWithCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + ], + name: "createNonFungibleToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + ], + name: "createNonFungibleTokenWithCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "accountID", + type: "address", + }, + { + internalType: "int64", + name: "amount", + type: "int64", + }, + ], + internalType: "struct IHederaTokenService.AccountAmount[]", + name: "transfers", + type: "tuple[]", + }, + { + components: [ + { + internalType: "address", + name: "senderAccountID", + type: "address", + }, + { + internalType: "address", + name: "receiverAccountID", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + internalType: "struct IHederaTokenService.NftTransfer[]", + name: "nftTransfers", + type: "tuple[]", + }, + ], + internalType: "struct IHederaTokenService.TokenTransferList[]", + name: "tokenTransfers", + type: "tuple[]", + }, + ], + name: "cryptoTransfer", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "deleteToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "dissociateToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address[]", + name: "tokens", + type: "address[]", + }, + ], + name: "dissociateTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "freezeToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "getApproved", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "approved", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getFungibleTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.FungibleTokenInfo", + name: "fungibleTokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + name: "getNonFungibleTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + { + internalType: "address", + name: "ownerId", + type: "address", + }, + { + internalType: "int64", + name: "creationTime", + type: "int64", + }, + { + internalType: "bytes", + name: "metadata", + type: "bytes", + }, + { + internalType: "address", + name: "spenderId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.NonFungibleTokenInfo", + name: "nonFungibleTokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenDefaultFreezeStatus", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "defaultFreezeStatus", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenDefaultKycStatus", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenExpiryInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + ], + name: "getTokenKey", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenType", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "int32", + name: "tokenType", + type: "int32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "isApprovedForAll", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isFrozen", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "frozen", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "kycGranted", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "isToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "isToken", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint64", + name: "amount", + type: "uint64", + }, + { + internalType: "bytes[]", + name: "metadata", + type: "bytes[]", + }, + ], + name: "mintToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint64", + name: "newTotalSupply", + type: "uint64", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "pauseToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + name: "setApprovalForAll", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "transferFromNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + name: "transferNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address[]", + name: "sender", + type: "address[]", + }, + { + internalType: "address[]", + name: "receiver", + type: "address[]", + }, + { + internalType: "int64[]", + name: "serialNumber", + type: "int64[]", + }, + ], + name: "transferNFTs", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int64", + name: "amount", + type: "int64", + }, + ], + name: "transferToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address[]", + name: "accountId", + type: "address[]", + }, + { + internalType: "int64[]", + name: "amount", + type: "int64[]", + }, + ], + name: "transferTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "unfreezeToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "unpauseToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + name: "updateTokenExpiryInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "tokenInfo", + type: "tuple", + }, + ], + name: "updateTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "keys", + type: "tuple[]", + }, + ], + name: "updateTokenKeys", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + ], + name: "wipeTokenAccount", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + name: "wipeTokenAccountNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; +exports.HEDERA_PROXY_ABI = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_EXPIRY", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "MAX_INT", + outputs: [ + { + internalType: "int64", + name: "", + type: "int64", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "baseUri", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "uint256", + name: "serialNum", + type: "uint256", + }, + ], + name: "burnFor", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int64", + name: "serialNum", + type: "int64", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "claimNft", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "data", + type: "uint256", + }, + ], + name: "decodeHts", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "int64", + name: "", + type: "int64", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "claimer", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getClaimableNfts", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenExpiryInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "htsToken", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "string", + name: "baseURI_", + type: "string", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "kycGranted", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "id", + type: "uint256", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "pauseToken", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_serialNum", + type: "uint256", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "tokenURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "unpauseToken", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + name: "updateTokenExpiryInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "tokenInfo", + type: "tuple", + }, + ], + name: "updateTokenInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; +exports.HEDERA_PROXY_BC = + "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRzX2FiaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2hlZGVyYS9odHNfYWJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEM7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxXQUFXO1FBQ2pCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUks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 diff --git a/dist/helpers/hedera/hts_abi.ts b/dist/helpers/hedera/hts_abi.ts new file mode 100644 index 000000000..d3d8f2ab9 --- /dev/null +++ b/dist/helpers/hedera/hts_abi.ts @@ -0,0 +1,3565 @@ +export const HEDERA_TOKEN_SERVICE_ABI = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "approved", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "approveNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "associateToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address[]", + name: "tokens", + type: "address[]", + }, + ], + name: "associateTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint64", + name: "amount", + type: "uint64", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + name: "burnToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint64", + name: "newTotalSupply", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + internalType: "uint64", + name: "initialTotalSupply", + type: "uint64", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + ], + name: "createFungibleToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + internalType: "uint64", + name: "initialTotalSupply", + type: "uint64", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + ], + name: "createFungibleTokenWithCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + ], + name: "createNonFungibleToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + ], + name: "createNonFungibleTokenWithCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "accountID", + type: "address", + }, + { + internalType: "int64", + name: "amount", + type: "int64", + }, + ], + internalType: "struct IHederaTokenService.AccountAmount[]", + name: "transfers", + type: "tuple[]", + }, + { + components: [ + { + internalType: "address", + name: "senderAccountID", + type: "address", + }, + { + internalType: "address", + name: "receiverAccountID", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + internalType: "struct IHederaTokenService.NftTransfer[]", + name: "nftTransfers", + type: "tuple[]", + }, + ], + internalType: "struct IHederaTokenService.TokenTransferList[]", + name: "tokenTransfers", + type: "tuple[]", + }, + ], + name: "cryptoTransfer", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "deleteToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "dissociateToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address[]", + name: "tokens", + type: "address[]", + }, + ], + name: "dissociateTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "freezeToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "getApproved", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "approved", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getFungibleTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.FungibleTokenInfo", + name: "fungibleTokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + name: "getNonFungibleTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + { + internalType: "address", + name: "ownerId", + type: "address", + }, + { + internalType: "int64", + name: "creationTime", + type: "int64", + }, + { + internalType: "bytes", + name: "metadata", + type: "bytes", + }, + { + internalType: "address", + name: "spenderId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.NonFungibleTokenInfo", + name: "nonFungibleTokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenDefaultFreezeStatus", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "defaultFreezeStatus", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenDefaultKycStatus", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenExpiryInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + ], + name: "getTokenKey", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenType", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "int32", + name: "tokenType", + type: "int32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "isApprovedForAll", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isFrozen", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "frozen", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "kycGranted", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "isToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "isToken", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint64", + name: "amount", + type: "uint64", + }, + { + internalType: "bytes[]", + name: "metadata", + type: "bytes[]", + }, + ], + name: "mintToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint64", + name: "newTotalSupply", + type: "uint64", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "pauseToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + name: "setApprovalForAll", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "transferFromNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + name: "transferNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address[]", + name: "sender", + type: "address[]", + }, + { + internalType: "address[]", + name: "receiver", + type: "address[]", + }, + { + internalType: "int64[]", + name: "serialNumber", + type: "int64[]", + }, + ], + name: "transferNFTs", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int64", + name: "amount", + type: "int64", + }, + ], + name: "transferToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address[]", + name: "accountId", + type: "address[]", + }, + { + internalType: "int64[]", + name: "amount", + type: "int64[]", + }, + ], + name: "transferTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "unfreezeToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "unpauseToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + name: "updateTokenExpiryInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "tokenInfo", + type: "tuple", + }, + ], + name: "updateTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "keys", + type: "tuple[]", + }, + ], + name: "updateTokenKeys", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + ], + name: "wipeTokenAccount", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + name: "wipeTokenAccountNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export const HEDERA_PROXY_ABI = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_EXPIRY", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "MAX_INT", + outputs: [ + { + internalType: "int64", + name: "", + type: "int64", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "baseUri", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "uint256", + name: "serialNum", + type: "uint256", + }, + ], + name: "burnFor", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int64", + name: "serialNum", + type: "int64", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "claimNft", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "data", + type: "uint256", + }, + ], + name: "decodeHts", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "int64", + name: "", + type: "int64", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "claimer", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getClaimableNfts", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenExpiryInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "htsToken", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "string", + name: "baseURI_", + type: "string", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "kycGranted", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "id", + type: "uint256", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "pauseToken", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_serialNum", + type: "uint256", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "tokenURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "unpauseToken", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + name: "updateTokenExpiryInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "tokenInfo", + type: "tuple", + }, + ], + name: "updateTokenInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; +export const HEDERA_PROXY_BC = + "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; diff --git a/dist/helpers/near.d.ts b/dist/helpers/near.d.ts new file mode 100644 index 000000000..99a5fdb0e --- /dev/null +++ b/dist/helpers/near.d.ts @@ -0,0 +1,89 @@ +import { Account, Near, WalletConnection, Contract } from "near-api-js"; +import { FinalExecutionOutcome } from "near-api-js/lib/providers"; +import { EvNotifier } from "../notifier"; +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + MintNft, + NftInfo, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + BalanceCheck, + PreTransfer, +} from "./chain"; +type NearTxResult = [FinalExecutionOutcome, any]; +type NearPreTransferArgs = { + to: string; + receiver: string; +}; +export type NearParams = { + readonly networkId: string; + readonly nonce: number; + readonly rpcUrl: string; + readonly bridge: string; + readonly xpnft: string; + readonly feeMargin: FeeMargins; + readonly notifier: EvNotifier; + readonly walletUrl: string; + readonly helperUrl: string; +}; +export type NearNFT = { + tokenId: string; + contract: string; +}; +export type Metadata = { + title?: string; + description?: string; + media?: string; + mediaHash: Uint8Array | null; + issued_at: string | null; + expires_at: string | null; + starts_at: string | null; + updated_at: string | null; + extra?: string; + reference: string | null; + referenceHash: Uint8Array | null; +}; +export interface NearMintArgs { + contract: string; + token_id: string; + token_owner_id: string; + metadata: Metadata; +} +interface BrowserMethods { + connectWallet(): Promise; + getContract(signer: Account, _contract: string): Promise; + getUserMinter(keypair: string, address: string): Promise; +} +export type NearHelper = ChainNonceGet & + BalanceCheck & + TransferNftForeign & + UnfreezeForeignNft & + MintNft & + EstimateTxFees & + Pick< + PreTransfer, + "preTransfer" + > & + ValidateAddress & { + XpNft: string; + nftList(owner: Account, contract: string): Promise[]>; + } & GetFeeMargins & + GetProvider & + BrowserMethods; +export declare function nearHelperFactory({ + networkId, + bridge, + rpcUrl, + xpnft, + feeMargin, + notifier, + walletUrl, + helperUrl, +}: NearParams): Promise; +export {}; +//# sourceMappingURL=near.d.ts.map diff --git a/dist/helpers/near.d.ts.map b/dist/helpers/near.d.ts.map new file mode 100644 index 000000000..172e2948e --- /dev/null +++ b/dist/helpers/near.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/helpers/near.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/near.js b/dist/helpers/near.js new file mode 100644 index 000000000..5b0df6a8a --- /dev/null +++ b/dist/helpers/near.js @@ -0,0 +1,233 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.nearHelperFactory = void 0; +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const bn_js_1 = require("bn.js"); +const near_api_js_1 = require("near-api-js"); +const providers_1 = require("near-api-js/lib/providers"); +const consts_1 = require("../consts"); +async function nearHelperFactory({ + networkId, + bridge, + rpcUrl, + xpnft, + feeMargin, + notifier, + walletUrl, + helperUrl, +}) { + const near = await (0, near_api_js_1.connect)({ + nodeUrl: rpcUrl, + networkId, + headers: {}, + }); + const isApproved = async (account, nft) => { + const { tokenId: token_id, contract } = nft.native; + const result = await account.viewFunction({ + args: { + token_id, + approved_account_id: bridge, + approval_id: null, + }, + contractId: contract, + methodName: "nft_is_approved", + }); + console.log(`Is approved: ${result}`); + return result; + }; + const getWalletCallbackUrl = (params) => { + let walletCallbackUrl = undefined; + if (typeof window?.location !== "undefined") { + const network = + location.pathname.match(/^\/(staging|testnet)\/.+/)?.at(1) || ""; + walletCallbackUrl = `${location.protocol}//${location.host}/${network}/connect?${params}`; + } + return walletCallbackUrl; + }; + return { + async estimateValidateTransferNft(_to, _metadata, _mintWith) { + return new bignumber_js_1.default(0); // TODO + }, + async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { + return new bignumber_js_1.default(0); // TODO + }, + getNonce() { + return consts_1.Chain.NEAR; + }, + async balance(address) { + const res = ( + await new near_api_js_1.Account( + near.connection, + address + ).getAccountBalance() + ).available; + return new bignumber_js_1.default(res); + }, + async mintNft(owner, options) { + const result = await owner.functionCall({ + contractId: options.contract, + methodName: "nft_mint", + args: { + token_id: options.token_id, + token_owner_id: options.token_owner_id, + token_metadata: options.metadata, + }, + attachedDeposit: new bn_js_1.BN("10000000000000000000000"), // 0.01 Near + }); + return [result, (0, providers_1.getTransactionLastResult)(result)]; + }, + async nftList(owner, contract) { + const result = await owner.functionCall({ + contractId: contract, + methodName: "nft_tokens_for_owner", + args: { account_id: owner.accountId }, + }); + const res = (0, providers_1.getTransactionLastResult)(result); + return res.map((r) => { + return { + native: { + tokenId: r.token_id, + contract, + }, + collectionIdent: contract, + uri: r.metadata.extra || r.metadata.media, + }; + }); + }, + async preTransfer(sender, nft, _fee, args) { + if (await isApproved(sender, nft)) { + return undefined; + } + if (!args) { + throw new Error("Missing args"); + } + const { receiver, to } = args; + const walletCallbackUrl = getWalletCallbackUrl( + `NEARTRX=true&type=approve&to=${to}&receiver=${encodeURIComponent( + receiver + )}&tokenId=${encodeURIComponent(nft.native.tokenId)}` + ); + const result = await sender.functionCall({ + contractId: nft.native.contract, + methodName: "nft_approve", + args: { + token_id: nft.native.tokenId, + account_id: bridge, + }, + attachedDeposit: new bn_js_1.BN("1000000000000000000000"), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), + }); + return result.transaction_outcome.id; + }, + XpNft: xpnft, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mint_with) { + const walletCallbackUrl = getWalletCallbackUrl( + `NEARTRX=true&type=transfer&to=${chain_nonce}&receiver=${encodeURIComponent( + to + )}&tokenId=${encodeURIComponent( + id.native.tokenId + )}&contract=${encodeURIComponent(id.native.contract)}` + ); + const result = await sender.functionCall({ + contractId: bridge, + args: { + token_id: id.native.tokenId, + chain_nonce, + to, + amt: new bignumber_js_1.default(txFees), + mint_with, + token_contract: id.native.contract, + }, + methodName: "freeze_nft", + attachedDeposit: new bn_js_1.BN(txFees.toString(10)), + gas: new bn_js_1.BN("30000000000000"), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), + }); + await notifier.notifyNear(result.transaction.hash); + return [result, (0, providers_1.getTransactionLastResult)(result)]; + }, + getFeeMargin() { + return feeMargin; + }, + getProvider() { + return near; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const walletCallbackUrl = getWalletCallbackUrl( + `NEARTRX=true&type=unfreeze&to=${nonce}&receiver=${encodeURIComponent( + to + )}&tokenId=${encodeURIComponent( + id.native.tokenId + )}&contract=${encodeURIComponent(id.native.contract)}` + ); + const result = await sender.functionCall({ + contractId: bridge, + args: { + token_id: id.native.tokenId, + chain_nonce: parseInt(nonce), + to, + amt: parseInt(txFees.toString()), + token_contract: id.native.contract, + }, + methodName: "withdraw_nft", + attachedDeposit: new bn_js_1.BN(txFees.toString(10)), + gas: new bn_js_1.BN("30000000000000"), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), + }); + await notifier.notifyNear(result.transaction.hash); + return [result, (0, providers_1.getTransactionLastResult)(result)]; + }, + async validateAddress(adr) { + try { + await new near_api_js_1.Account( + near.connection, + adr + ).getAccountBalance(); + return true; + } catch (e) { + return false; + } + }, + async connectWallet() { + if (typeof window === "undefined") { + throw new Error("Browser method only"); + } + const nearConnection = await (0, near_api_js_1.connect)({ + networkId, + nodeUrl: rpcUrl, + keyStore: new near_api_js_1.keyStores.BrowserLocalStorageKeyStore(), + headers: {}, + walletUrl, + helperUrl, + }); + const wc = new near_api_js_1.WalletConnection(nearConnection, ""); + return wc; + }, + async getContract(signer, _contract) { + return new near_api_js_1.Contract(signer, _contract, { + viewMethods: [], + changeMethods: ["nft_mint"], + }); + }, + async getUserMinter(keypair, address) { + const keyStore = new near_api_js_1.keyStores.InMemoryKeyStore(); + const keyPair = near_api_js_1.KeyPair.fromString(keypair); + keyStore.setKey(networkId, address, keyPair); + const signer = new near_api_js_1.InMemorySigner(keyStore); + const provider = await (0, near_api_js_1.connect)({ + headers: {}, + nodeUrl: rpcUrl, + networkId, + signer, + }); + return provider; + }, + }; +} +exports.nearHelperFactory = nearHelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL25lYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLGlDQUEyQjtBQUUzQiw2Q0FTcUI7QUFFckIseURBR21DO0FBQ25DLHNDQUFrQztBQW9GM0IsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEVBQ3RDLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEdBQ0U7SUFDWCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEscUJBQU8sRUFBQztRQUN6QixPQUFPLEVBQUUsTUFBTTtRQUNmLFNBQVM7UUFDVCxPQUFPLEVBQUUsRUFBRTtLQUNaLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLEtBQUssRUFDdEIsT0FBZ0IsRUFDaEIsR0FBcUIsRUFDSCxFQUFFO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDbkQsTUFBTSxNQUFNLEdBQVksTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ2pELElBQUksRUFBRTtnQkFDSixRQUFRO2dCQUNSLG1CQUFtQixFQUFFLE1BQU07Z0JBQzNCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCO1lBQ0QsVUFBVSxFQUFFLFFBQVE7WUFDcEIsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztJQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUM5QyxJQUFJLGlCQUFpQixHQUF1QixTQUFTLENBQUM7UUFDdEQsSUFBSSxPQUFPLE1BQU0s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 diff --git a/dist/helpers/near.ts b/dist/helpers/near.ts new file mode 100644 index 000000000..2dfe97d7b --- /dev/null +++ b/dist/helpers/near.ts @@ -0,0 +1,331 @@ +import BigNumber from "bignumber.js"; +import { BN } from "bn.js"; + +import { + Account, + connect, + Near, + keyStores, + WalletConnection, + Contract, + KeyPair, + InMemorySigner, +} from "near-api-js"; + +import { + FinalExecutionOutcome, + getTransactionLastResult, +} from "near-api-js/lib/providers"; +import { Chain } from "../consts"; +import { EvNotifier } from "../notifier"; +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + MintNft, + NftInfo, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + BalanceCheck, + PreTransfer, +} from "./chain"; + +type NearTxResult = [FinalExecutionOutcome, any]; + +type NearPreTransferArgs = { + to: string; + receiver: string; +}; + +export type NearParams = { + readonly networkId: string; + readonly nonce: number; + readonly rpcUrl: string; + readonly bridge: string; + readonly xpnft: string; + readonly feeMargin: FeeMargins; + readonly notifier: EvNotifier; + readonly walletUrl: string; + readonly helperUrl: string; +}; +export type NearNFT = { + tokenId: string; + contract: string; +}; + +export type Metadata = { + title?: string; + description?: string; + media?: string; + mediaHash: Uint8Array | null; + issued_at: string | null; + expires_at: string | null; + starts_at: string | null; + updated_at: string | null; + extra?: string; + reference: string | null; + referenceHash: Uint8Array | null; +}; + +export interface NearMintArgs { + contract: string; + token_id: string; + token_owner_id: string; + metadata: Metadata; +} + +interface BrowserMethods { + connectWallet(): Promise; + getContract(signer: Account, _contract: string): Promise; + getUserMinter(keypair: string, address: string): Promise; +} + +export type NearHelper = ChainNonceGet & + BalanceCheck & + TransferNftForeign & + UnfreezeForeignNft & + MintNft & + EstimateTxFees & + Pick< + PreTransfer, + "preTransfer" + > & + ValidateAddress & { + XpNft: string; + nftList(owner: Account, contract: string): Promise[]>; + } & GetFeeMargins & + GetProvider & + BrowserMethods; + +export async function nearHelperFactory({ + networkId, + bridge, + rpcUrl, + xpnft, + feeMargin, + notifier, + walletUrl, + helperUrl, +}: NearParams): Promise { + const near = await connect({ + nodeUrl: rpcUrl, + networkId, + headers: {}, + }); + + const isApproved = async ( + account: Account, + nft: NftInfo + ): Promise => { + const { tokenId: token_id, contract } = nft.native; + const result: boolean = await account.viewFunction({ + args: { + token_id, + approved_account_id: bridge, + approval_id: null, + }, + contractId: contract, + methodName: "nft_is_approved", + }); + console.log(`Is approved: ${result}`); + return result; + }; + + const getWalletCallbackUrl = (params: string) => { + let walletCallbackUrl: string | undefined = undefined; + if (typeof window?.location !== "undefined") { + const network = + location.pathname.match(/^\/(staging|testnet)\/.+/)?.at(1) || ""; + + walletCallbackUrl = `${location.protocol}//${location.host}/${network}/connect?${params}`; + } + return walletCallbackUrl; + }; + + return { + async estimateValidateTransferNft(_to, _metadata, _mintWith) { + return new BigNumber(0); // TODO + }, + async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { + return new BigNumber(0); // TODO + }, + getNonce() { + return Chain.NEAR; + }, + async balance(address: string) { + const res = ( + await new Account(near.connection, address).getAccountBalance() + ).available; + return new BigNumber(res); + }, + async mintNft(owner, options) { + const result = await owner.functionCall({ + contractId: options.contract, + methodName: "nft_mint", + args: { + token_id: options.token_id, + token_owner_id: options.token_owner_id, + token_metadata: options.metadata, + }, + attachedDeposit: new BN("10000000000000000000000"), // 0.01 Near + }); + return [result, getTransactionLastResult(result)]; + }, + async nftList(owner, contract) { + const result = await owner.functionCall({ + contractId: contract, + methodName: "nft_tokens_for_owner", + args: { account_id: owner.accountId }, + }); + const res = getTransactionLastResult(result) as any[]; + + return res.map((r) => { + return { + native: { + tokenId: r.token_id, + contract, + }, + collectionIdent: contract, + uri: r.metadata.extra || r.metadata.media, + }; + }); + }, + async preTransfer(sender, nft, _fee, args) { + if (await isApproved(sender, nft)) { + return undefined; + } + if (!args) { + throw new Error("Missing args"); + } + const { receiver, to } = args; + const walletCallbackUrl = getWalletCallbackUrl( + `NEARTRX=true&type=approve&to=${to}&receiver=${encodeURIComponent( + receiver + )}&tokenId=${encodeURIComponent(nft.native.tokenId)}` + ); + + const result = await sender.functionCall({ + contractId: nft.native.contract, + methodName: "nft_approve", + args: { + token_id: nft.native.tokenId, + account_id: bridge, + }, + attachedDeposit: new BN("1000000000000000000000"), // 0.001 Near + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), + }); + return result.transaction_outcome.id; + }, + XpNft: xpnft, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mint_with) { + const walletCallbackUrl = getWalletCallbackUrl( + `NEARTRX=true&type=transfer&to=${chain_nonce}&receiver=${encodeURIComponent( + to + )}&tokenId=${encodeURIComponent( + id.native.tokenId + )}&contract=${encodeURIComponent(id.native.contract)}` + ); + + const result = await sender.functionCall({ + contractId: bridge, + args: { + token_id: id.native.tokenId, + chain_nonce, + to, + amt: new BigNumber(txFees), + mint_with, + token_contract: id.native.contract, + }, + methodName: "freeze_nft", + attachedDeposit: new BN(txFees.toString(10)), + gas: new BN("30000000000000"), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), + }); + await notifier.notifyNear(result.transaction.hash); + return [result, getTransactionLastResult(result)]; + }, + getFeeMargin() { + return feeMargin; + }, + getProvider() { + return near; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const walletCallbackUrl = getWalletCallbackUrl( + `NEARTRX=true&type=unfreeze&to=${nonce}&receiver=${encodeURIComponent( + to + )}&tokenId=${encodeURIComponent( + id.native.tokenId + )}&contract=${encodeURIComponent(id.native.contract)}` + ); + + const result = await sender.functionCall({ + contractId: bridge, + args: { + token_id: id.native.tokenId, + chain_nonce: parseInt(nonce), + to, + amt: parseInt(txFees.toString()), + token_contract: id.native.contract, + }, + methodName: "withdraw_nft", + attachedDeposit: new BN(txFees.toString(10)), + gas: new BN("30000000000000"), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), + }); + await notifier.notifyNear(result.transaction.hash); + return [result, getTransactionLastResult(result)]; + }, + async validateAddress(adr) { + try { + await new Account(near.connection, adr).getAccountBalance(); + return true; + } catch (e) { + return false; + } + }, + + async connectWallet() { + if (typeof window === "undefined") { + throw new Error("Browser method only"); + } + const nearConnection = await connect({ + networkId, + nodeUrl: rpcUrl, + keyStore: new keyStores.BrowserLocalStorageKeyStore(), + headers: {}, + walletUrl, + helperUrl, + }); + const wc = new WalletConnection(nearConnection, ""); + return wc; + }, + + async getContract(signer: Account, _contract: string) { + return new Contract(signer, _contract, { + viewMethods: [], + changeMethods: ["nft_mint"], + }); + }, + + async getUserMinter(keypair: string, address: string) { + const keyStore = new keyStores.InMemoryKeyStore(); + const keyPair = KeyPair.fromString(keypair); + keyStore.setKey(networkId, address, keyPair); + + const signer = new InMemorySigner(keyStore); + + const provider = await connect({ + headers: {}, + nodeUrl: rpcUrl, + networkId, + signer, + }); + + return provider; + }, + }; +} diff --git a/dist/helpers/secret.d.ts b/dist/helpers/secret.d.ts new file mode 100644 index 000000000..937ab831b --- /dev/null +++ b/dist/helpers/secret.d.ts @@ -0,0 +1,79 @@ +import { SecretNetworkClient, TxResponse } from "secretjs"; +import { Extension } from "secretjs/dist/extensions/snip721/types"; +import { EvNotifier } from "../notifier"; +import { + BalanceCheck, + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + MintNft, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "./chain"; +export type SecretNftInfo = { + contract: string; + contractHash: string; + chainId: string; + tokenId: string; + vk: string; + metadata: Extension | undefined; +}; +export type SecretMintArgs = { + url: string; + contract?: SecretContract; +}; +type SecretSigner = SecretNetworkClient; +export type SecretHelper = TransferNftForeign< + SecretSigner, + SecretNftInfo, + TxResponse +> & + UnfreezeForeignNft & + ValidateAddress & + EstimateTxFees & + ChainNonceGet & + PreTransfer & + BalanceCheck & + GetFeeMargins & { + XpNft: string; + } & GetProvider & + MintNft & { + nftList( + owner: string, + viewingKey: string, + contract: string, + codeHash?: string + ): Promise[]>; + setViewingKey( + client: SecretNetworkClient, + contract: string, + vk: string + ): Promise; + isApprovedForMinter( + sender: SecretSigner, + nft: NftInfo + ): Promise; + }; +export type SecretContract = { + contractAddress: string; + codeHash: string; +}; +export type SecretParams = { + rpcUrl: string; + chainId: string; + notifier: EvNotifier; + bridge: SecretContract; + xpnft: SecretContract; + umt: SecretContract; + feeMargin: FeeMargins; +}; +export declare function secretHelperFactory( + p: SecretParams +): Promise; +export {}; +//# sourceMappingURL=secret.d.ts.map diff --git a/dist/helpers/secret.d.ts.map b/dist/helpers/secret.d.ts.map new file mode 100644 index 000000000..67297ee75 --- /dev/null +++ b/dist/helpers/secret.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/helpers/secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,mBAAmB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EACL,SAAS,EAEV,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG,mBAAmB,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAC3C,YAAY,EACZ,aAAa,EACb,UAAU,CACX,GACC,kBAAkB,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,GAC3D,eAAe,GACf,cAAc,CAAC,aAAa,CAAC,GAC7B,aAAa,GACb,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,GAC3D,YAAY,GACZ,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC,mBAAmB,CAAC,GACpE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG;IAClD,OAAO,CACL,KAAK,EAAE,MAAM,EAEb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrC,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,mBAAmB,CACjB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAQF,wBAAsB,mBAAmB,CACvC,CAAC,EAAE,YAAY,GACd,OAAO,CAAC,YAAY,CAAC,CAmQvB"} \ No newline at end of file diff --git a/dist/helpers/secret.js b/dist/helpers/secret.js new file mode 100644 index 000000000..be130790f --- /dev/null +++ b/dist/helpers/secret.js @@ -0,0 +1,255 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.secretHelperFactory = void 0; +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const secretjs_1 = require("secretjs"); +// TODO +const TRANSFER_GASL = new bignumber_js_1.default(0); +// TODO +const UNFREEZE_GASL = new bignumber_js_1.default(0); +async function secretHelperFactory(p) { + const queryClient = new secretjs_1.SecretNetworkClient({ + url: p.rpcUrl, + chainId: p.chainId, + }); + // TODO + const gasPrice = 1; + async function isApprovedForMinter(sender, nft) { + const approval = await sender.query.snip721.GetTokenInfo({ + auth: { + viewer: { + address: sender.address, + viewing_key: nft.native.vk, + }, + }, + contract: { + address: nft.collectionIdent, + codeHash: nft.native.contractHash, + }, + token_id: nft.native.tokenId, + }); + for (let appr of approval.all_nft_info.access.approvals) { + if ( + appr["spender"].toLowerCase() === p.bridge.contractAddress.toLowerCase() + ) { + return true; + } + } + return false; + } + async function preTransfer(sender, nft) { + // TODO: check if approved + if (await isApprovedForMinter(sender, nft)) { + return undefined; + } + const res = await sender.tx.compute.executeContract( + { + sender: sender.address, + contract_address: nft.native.contract, + code_hash: nft.native.contractHash, + msg: { + approve: { + spender: p.bridge.contractAddress, + token_id: nft.native.tokenId, + }, + }, + }, + { + waitForCommit: true, + gasLimit: 250000, + } + ); + return res.transactionHash; + } + return { + getFeeMargin() { + return p.feeMargin; + }, + getProvider() { + return queryClient; + }, + getNonce: () => 0x18, + balance: async (address) => { + const b = await queryClient.query.bank.balance({ + address, + denom: "uscrt", + }); + return new bignumber_js_1.default(b.balance?.amount || 0); + }, + isApprovedForMinter, + async mintNft(signer, args) { + const minter = args.contract ? args.contract : p.umt; + const tx = await signer.tx.compute.executeContract( + { + contract_address: minter.contractAddress, + code_hash: minter.codeHash, + msg: { + mint_nft: { + public_metadata: { + token_uri: args.url, + }, + owner: signer.address, + transferable: true, + }, + }, + sender: signer.address, + }, + { + waitForCommit: true, + gasLimit: 500000, + } + ); + return tx; + }, + XpNft: `${p.xpnft.contractAddress},${p.xpnft.codeHash}`, + validateAddress: async (a) => { + try { + secretjs_1.Bech32.decode(a); + return true; + } catch { + return false; + } + }, + async nftList(owner, vk, contractAddress, codeHash) { + const auth = { + viewer: { + viewing_key: vk, + address: owner, + }, + }; + if (!codeHash) { + codeHash = ( + await queryClient.query.compute.codeHashByContractAddress({ + contract_address: contractAddress, + }) + ).code_hash; + } + const contract = { + address: contractAddress, + codeHash: codeHash || "", + }; + const { token_list, generic_err } = + await queryClient.query.snip721.GetOwnedTokens({ + contract, + auth, + owner, + }); + if (generic_err) throw new Error(generic_err.msg); + const response = []; + await Promise.all( + token_list.tokens.map(async (token) => { + const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ + contract, + auth, + token_id: token, + }); + response.push({ + collectionIdent: contractAddress, + uri: tokenInfo.all_nft_info.info?.token_uri || "", + native: { + chainId: p.chainId, + contract: contractAddress, + contractHash: codeHash || "", + tokenId: token, + vk, + metadata: tokenInfo.all_nft_info.info?.extension, + }, + }); + }) + ); + return response; + }, + estimateValidateTransferNft: async () => { + return TRANSFER_GASL.times(gasPrice); + }, + estimateValidateUnfreezeNft: async () => { + return UNFREEZE_GASL.times(gasPrice); + }, + async setViewingKey(client, contract, vk) { + const tx = await client.tx.snip721.setViewingKey( + { + contract_address: contract, + msg: { + set_viewing_key: { + key: vk, + }, + }, + sender: client.address, + }, + { + waitForCommit: true, + gasLimit: 500000, + } + ); + return tx; + }, + preTransfer, + preUnfreeze: preTransfer, + transferNftToForeign: async (wallet, chainNonce, to, nft, fee, mw) => { + const tx = await wallet.tx.compute.executeContract( + { + sender: wallet.address, + contract_address: p.bridge.contractAddress, + code_hash: p.bridge.codeHash, + msg: { + freeze_nft: { + contract: nft.native.contract, + contract_hash: nft.native.contractHash, + viewer: { + viewing_key: nft.native.vk, + address: wallet.address, + }, + token_id: nft.native.tokenId, + to, + chain_nonce: chainNonce, + minter: mw, + }, + }, + sent_funds: [ + { + denom: "uscrt", + amount: fee.toString(10), + }, + ], + }, + { waitForCommit: true, gasLimit: 500000 } + ); + await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); + return tx; + }, + unfreezeWrappedNft: async (wallet, to, nft, fee, chainNonce) => { + const tx = await wallet.tx.compute.executeContract( + { + sender: wallet.address, + contract_address: p.bridge.contractAddress, + code_hash: p.bridge.codeHash, + msg: { + withdraw_nft: { + burner: nft.native.contract, + burner_hash: nft.native.contractHash, + token_id: nft.native.tokenId, + to, + chain_nonce: Number(chainNonce), + }, + }, + sent_funds: [ + { + denom: "uscrt", + amount: fee.toString(10), + }, + ], + }, + { waitForCommit: true, gasLimit: 500000 } + ); + await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); + return tx; + }, + }; +} +exports.secretHelperFactory = secretHelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFxQztBQUNyQyx1Q0FBbUU7QUF1Rm5FLE9BQU87QUFDUCxNQUFNLGFBQWEsR0FBRyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdkMsT0FBTztBQUNQLE1BQU0sYUFBYSxHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVoQyxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLENBQWU7SUFFZixNQUFNLFdBQVcsR0FBRyxJQUFJLDhCQUFtQixDQUFDO1FBQzFDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNiLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztLQUNuQixDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLEtBQUssVUFBVSxtQkFBbUIsQ0FDaEMsTUFBb0IsRUFDcEIsR0FBMkI7UUFFM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDdkQsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87b0JBQ3ZCLFdBQVcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQzNCO2FBQ0Y7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxlQUFlO2dCQUM1QixRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZO2FBQ2xDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztTQUM3QixDQUFDLENBQUM7UUFDSCxLQUFLLElBQUksSUFBSSxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUN2RCxJQUNHLElBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3RDLENBQUMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxFQUN0QztnQkFDQSxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLFVBQVUsV0FBVyxDQUN4QixNQUFvQixFQUNwQixHQUEyQjtRQUUzQiwwQkFBMEI7UUFDMUIsSUFBSSxNQUFNLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRTtZQUMxQyxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUNqRDtZQUNFLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN0QixnQkFBZ0IsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDckMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUNsQyxHQUFHLEVBQUU7Z0JBQ0gsT0FBTyxFQUFFO29CQUNQLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWU7b0JBQ2pDLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU87aUJBQzdCO2FBQ0Y7U0FDRixFQUNEO1lBQ0UsYUFBYSxFQUFFLElBQUk7WUFDbkIsUUFBUSxFQUFFLE1BQU87U0FDbEIsQ0FDRixDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUMsZUFBZSxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPO1FBQ0wsWUFBWTtZQUNWLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsV0FBVztZQUNULE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtRQUNwQixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUM3QyxPQUFPO2dCQUNQLEtBQUssRUFBRSxPQUFPO2FBQ2YsQ0FBQyxDQUFDO1lBRUgsT0FBTyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELG1CQUFtQjtRQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJO1lBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDckQsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQ2hEO2dCQUNFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxlQUFlO2dCQUN4QyxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQzFCLEdBQUcsRUFBRTtvQkFDSCxRQUFRLEVBQUU7d0JBQ1IsZUFBZSxFQUFFOzRCQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRzt5QkFDcEI7d0JBQ0QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPO3dCQUNyQixZQUFZLEVBQUUsSUFBSTtxQkFDbkI7aUJBQ29CO2dCQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU87YUFDdkIsRUFDRDtnQkFDRSxhQUFhLEVBQUUsSUFBSTtnQkFDbkIsUUFBUSxFQUFFLE1BQU87YUFDbEIsQ0FDRixDQUFDO1lBQ0YsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7UUFDdkQsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQixJQUFJO2dCQUNGLGlCQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixPQUFPLElBQUksQ0FBQzthQUNiO1lBQUMsTUFBTTtnQkFDTixPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsUUFBUTtZQUNoRCxNQUFNLElBQUksR0FBRztnQkFDWCxNQUFNLEVBQUU7b0JBQ04sV0FBVyxFQUFFLEVBQUU7b0JBQ2YsT0FBTyxFQUFFLEtBQUs7aUJBQ2Y7YUFDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDYixRQUFRLEdBQUcsQ0FDVCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDO29CQUN4RCxnQkFBZ0IsRUFBRSxlQUFlO2lCQUNsQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLENBQUM7YUFDYjtZQUNELE1BQU0sUUFBUSxHQUFHO2dCQUNmLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixRQUFRLEVBQUUsUUFBUSxJQUFJLEVBQUU7YUFDekIsQ0FBQztZQUVGLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQy9CLENBQUMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7Z0JBQzlDLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixLQUFLO2FBQ04sQ0FBQyxDQUEyQixDQUFDO1lBRWhDLElBQUksV0FBVztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVsRCxNQUFNLFFBQVEsR0FBNkIsRUFBRSxDQUFDO1lBRTlDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3BDLE1BQU0sU0FBUyxHQUFHLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO29CQUM3RCxRQUFRO29CQUNSLElBQUk7b0JBQ0osUUFBUSxFQUFFLEtBQUs7aUJBQ2hCLENBQUMsQ0FBQztnQkFFSCxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNaLGVBQWUsRUFBRSxlQUFlO29CQUNoQyxHQUFHLEVBQUUsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxJQUFJLEVBQUU7b0JBQ2pELE1BQU0sRUFBRTt3QkFDTixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLFFBQVEsRUFBRSxlQUFlO3dCQUN6QixZQUFZLEVBQUUsUUFBUSxJQUFJLEVBQUU7d0JBQzVCLE9BQU8sRUFBRSxLQUFLO3dCQUNkLEVBQUU7d0JBQ0YsUUFBUSxFQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFNBQVM7cUJBQ2pEO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDRixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBQ0QsMkJBQTJCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdEMsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCwyQkFBMkIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN0QyxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQ3RDLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUM5QztnQkFDRSxnQkFBZ0IsRUFBRSxRQUFRO2dCQUMxQixHQUFHLEVBQUU7b0JBQ0gsZUFBZSxFQUFFO3dCQUNmLEdBQUcsRUFBRSxFQUFFO3FCQUNSO2lCQUNGO2dCQUNELE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTzthQUN2QixFQUNEO2dCQUNFLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixRQUFRLEVBQUUsTUFBTzthQUNsQixDQUNGLENBQUM7WUFDRixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxXQUFXO1FBQ1gsV0FBVyxFQUFFLFdBQVc7UUFDeEIsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDbkUsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQ2hEO2dCQUNFLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDdEIsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlO2dCQUMxQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRO2dCQUM1QixHQUFHLEVBQUU7b0JBQ0gsVUFBVSxFQUFFO3dCQUNWLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVE7d0JBQzdCLGFBQWEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVk7d0JBQ3RDLE1BQU0sRUFBRTs0QkFDTixXQUFXLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUMxQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87eUJBQ3hCO3dCQUNELFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU87d0JBQzVCLEVBQUU7d0JBQ0YsV0FBVyxFQUFFLFVBQVU7d0JBQ3ZCLE1BQU0sRUFBRSxFQUFFO3FCQUNYO2lCQUNGO2dCQUNELFVBQVUsRUFBRTtvQkFDVjt3QkFDRSxLQUFLLEVBQUUsT0FBTzt3QkFDZCxNQUFNLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7cUJBQ3pCO2lCQUNGO2FBQ0YsRUFDRCxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU8sRUFBRSxDQUMzQyxDQUFDO1lBRUYsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFakUsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0Qsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRTtZQUM3RCxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FDaEQ7Z0JBQ0UsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUN0QixnQkFBZ0IsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWU7Z0JBQzFDLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVE7Z0JBQzVCLEdBQUcsRUFBRTtvQkFDSCxZQUFZLEVBQUU7d0JBQ1osTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUTt3QkFDM0IsV0FBVyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWTt3QkFDcEMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDNUIsRUFBRTt3QkFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztxQkFDaEM7aUJBQ0Y7Z0JBQ0QsVUFBVSxFQUFFO29CQUNWO3dCQUNFLEtBQUssRUFBRSxPQUFPO3dCQUNkLE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztxQkFDekI7aUJBQ0Y7YUFDRixFQUNELEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTyxFQUFFLENBQzNDLENBQUM7WUFFRixNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVqRSxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQXJRRCxrREFxUUMifQ== diff --git a/dist/helpers/secret.ts b/dist/helpers/secret.ts new file mode 100644 index 000000000..fa2ddd0e0 --- /dev/null +++ b/dist/helpers/secret.ts @@ -0,0 +1,356 @@ +import BigNumber from "bignumber.js"; +import { Bech32, SecretNetworkClient, TxResponse } from "secretjs"; +import { + Extension, + Snip721MintOptions, +} from "secretjs/dist/extensions/snip721/types"; +import { Snip721GetTokensResponse } from "secretjs/dist/extensions/snip721/msg/GetTokens"; +import { EvNotifier } from "../notifier"; +import { + BalanceCheck, + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + MintNft, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "./chain"; + +export type SecretNftInfo = { + contract: string; + contractHash: string; + chainId: string; + tokenId: string; + vk: string; + metadata: Extension | undefined; +}; +export type SecretMintArgs = { + url: string; + contract?: SecretContract; +}; + +type SecretSigner = SecretNetworkClient; + +type GetOwnedTokensResponse = Snip721GetTokensResponse & { + generic_err?: { msg: string }; +}; + +export type SecretHelper = TransferNftForeign< + SecretSigner, + SecretNftInfo, + TxResponse +> & + UnfreezeForeignNft & + ValidateAddress & + EstimateTxFees & + ChainNonceGet & + PreTransfer & + BalanceCheck & + GetFeeMargins & { XpNft: string } & GetProvider & + MintNft & { + nftList( + owner: string, + + viewingKey: string, + contract: string, + codeHash?: string + ): Promise[]>; + setViewingKey( + client: SecretNetworkClient, + contract: string, + vk: string + ): Promise; + isApprovedForMinter( + sender: SecretSigner, + nft: NftInfo + ): Promise; + }; + +export type SecretContract = { + contractAddress: string; + codeHash: string; +}; + +export type SecretParams = { + rpcUrl: string; + chainId: string; + notifier: EvNotifier; + bridge: SecretContract; + xpnft: SecretContract; + umt: SecretContract; + feeMargin: FeeMargins; +}; + +// TODO +const TRANSFER_GASL = new BigNumber(0); + +// TODO +const UNFREEZE_GASL = new BigNumber(0); + +export async function secretHelperFactory( + p: SecretParams +): Promise { + const queryClient = new SecretNetworkClient({ + url: p.rpcUrl, + chainId: p.chainId, + }); + + // TODO + const gasPrice = 1; + + async function isApprovedForMinter( + sender: SecretSigner, + nft: NftInfo + ) { + const approval = await sender.query.snip721.GetTokenInfo({ + auth: { + viewer: { + address: sender.address, + viewing_key: nft.native.vk, + }, + }, + contract: { + address: nft.collectionIdent, + codeHash: nft.native.contractHash, + }, + token_id: nft.native.tokenId, + }); + for (let appr of approval.all_nft_info.access.approvals) { + if ( + (appr as any)["spender"].toLowerCase() === + p.bridge.contractAddress.toLowerCase() + ) { + return true; + } + } + return false; + } + + async function preTransfer( + sender: SecretSigner, + nft: NftInfo + ) { + // TODO: check if approved + if (await isApprovedForMinter(sender, nft)) { + return undefined; + } + const res = await sender.tx.compute.executeContract( + { + sender: sender.address, + contract_address: nft.native.contract, + code_hash: nft.native.contractHash, + msg: { + approve: { + spender: p.bridge.contractAddress, + token_id: nft.native.tokenId, + }, + }, + }, + { + waitForCommit: true, + gasLimit: 250_000, + } + ); + return res.transactionHash; + } + + return { + getFeeMargin() { + return p.feeMargin; + }, + getProvider() { + return queryClient; + }, + getNonce: () => 0x18, + balance: async (address) => { + const b = await queryClient.query.bank.balance({ + address, + denom: "uscrt", + }); + + return new BigNumber(b.balance?.amount || 0); + }, + isApprovedForMinter, + async mintNft(signer, args) { + const minter = args.contract ? args.contract : p.umt; + const tx = await signer.tx.compute.executeContract( + { + contract_address: minter.contractAddress, + code_hash: minter.codeHash, + msg: { + mint_nft: { + public_metadata: { + token_uri: args.url, + }, + owner: signer.address, + transferable: true, + }, + } as Snip721MintOptions, + sender: signer.address, + }, + { + waitForCommit: true, + gasLimit: 500_000, + } + ); + return tx; + }, + XpNft: `${p.xpnft.contractAddress},${p.xpnft.codeHash}`, + validateAddress: async (a) => { + try { + Bech32.decode(a); + return true; + } catch { + return false; + } + }, + async nftList(owner, vk, contractAddress, codeHash) { + const auth = { + viewer: { + viewing_key: vk, + address: owner, + }, + }; + if (!codeHash) { + codeHash = ( + await queryClient.query.compute.codeHashByContractAddress({ + contract_address: contractAddress, + }) + ).code_hash; + } + const contract = { + address: contractAddress, + codeHash: codeHash || "", + }; + + const { token_list, generic_err } = + (await queryClient.query.snip721.GetOwnedTokens({ + contract, + auth, + owner, + })) as GetOwnedTokensResponse; + + if (generic_err) throw new Error(generic_err.msg); + + const response: NftInfo[] = []; + + await Promise.all( + token_list.tokens.map(async (token) => { + const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ + contract, + auth, + token_id: token, + }); + + response.push({ + collectionIdent: contractAddress, + uri: tokenInfo.all_nft_info.info?.token_uri || "", + native: { + chainId: p.chainId, + contract: contractAddress, + contractHash: codeHash || "", + tokenId: token, + vk, + metadata: tokenInfo.all_nft_info.info?.extension, + }, + }); + }) + ); + return response; + }, + estimateValidateTransferNft: async () => { + return TRANSFER_GASL.times(gasPrice); + }, + estimateValidateUnfreezeNft: async () => { + return UNFREEZE_GASL.times(gasPrice); + }, + async setViewingKey(client, contract, vk) { + const tx = await client.tx.snip721.setViewingKey( + { + contract_address: contract, + msg: { + set_viewing_key: { + key: vk, + }, + }, + sender: client.address, + }, + { + waitForCommit: true, + gasLimit: 500_000, + } + ); + return tx; + }, + preTransfer, + preUnfreeze: preTransfer, + transferNftToForeign: async (wallet, chainNonce, to, nft, fee, mw) => { + const tx = await wallet.tx.compute.executeContract( + { + sender: wallet.address, + contract_address: p.bridge.contractAddress, + code_hash: p.bridge.codeHash, + msg: { + freeze_nft: { + contract: nft.native.contract, + contract_hash: nft.native.contractHash, + viewer: { + viewing_key: nft.native.vk, + address: wallet.address, + }, + token_id: nft.native.tokenId, + to, + chain_nonce: chainNonce, + minter: mw, + }, + }, + sent_funds: [ + { + denom: "uscrt", + amount: fee.toString(10), + }, + ], + }, + { waitForCommit: true, gasLimit: 500_000 } + ); + + await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); + + return tx; + }, + unfreezeWrappedNft: async (wallet, to, nft, fee, chainNonce) => { + const tx = await wallet.tx.compute.executeContract( + { + sender: wallet.address, + contract_address: p.bridge.contractAddress, + code_hash: p.bridge.codeHash, + msg: { + withdraw_nft: { + burner: nft.native.contract, + burner_hash: nft.native.contractHash, + token_id: nft.native.tokenId, + to, + chain_nonce: Number(chainNonce), + }, + }, + sent_funds: [ + { + denom: "uscrt", + amount: fee.toString(10), + }, + ], + }, + { waitForCommit: true, gasLimit: 500_000 } + ); + + await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); + + return tx; + }, + }; +} diff --git a/dist/helpers/solana/idl.d.ts b/dist/helpers/solana/idl.d.ts new file mode 100644 index 000000000..5e3e77a39 --- /dev/null +++ b/dist/helpers/solana/idl.d.ts @@ -0,0 +1,898 @@ +export type XpBridge = { + version: "0.1.0"; + name: "xp_bridge"; + instructions: [ + { + name: "initialize"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "groupKey"; + type: { + array: ["u8", 32]; + }; + } + ]; + }, + { + name: "validatePause"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "PauseData"; + }; + } + ]; + }, + { + name: "validateUnpause"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UnpauseData"; + }; + } + ]; + }, + { + name: "validateWithdrawFees"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "WithdrawFeesData"; + }; + } + ]; + }, + { + name: "validateUpdateGroupkey"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UpdateGroupkeyData"; + }; + } + ]; + }, + { + name: "validateTransferNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "payer"; + isMut: true; + isSigner: true; + }, + { + name: "authority"; + isMut: false; + isSigner: false; + }, + { + name: "mint"; + isMut: true; + isSigner: false; + }, + { + name: "tokenAccount"; + isMut: true; + isSigner: false; + }, + { + name: "metadataAccount"; + isMut: true; + isSigner: false; + }, + { + name: "editionAccount"; + isMut: true; + isSigner: false; + }, + { + name: "metadataProgram"; + isMut: false; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "rent"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "TransferNftData"; + }; + } + ]; + }, + { + name: "withdrawNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "authority"; + isMut: true; + isSigner: true; + }, + { + name: "mint"; + isMut: true; + isSigner: false; + }, + { + name: "tokenAccount"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "chainNonce"; + type: "u8"; + }, + { + name: "to"; + type: "string"; + }, + { + name: "lamports"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }, + { + name: "freezeNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "authority"; + isMut: true; + isSigner: true; + }, + { + name: "from"; + isMut: true; + isSigner: false; + }, + { + name: "to"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "chainNonce"; + type: "u8"; + }, + { + name: "to"; + type: "string"; + }, + { + name: "lamports"; + type: "u64"; + }, + { + name: "mintWith"; + type: "string"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }, + { + name: "validateUnfreezeNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "from"; + isMut: true; + isSigner: false; + }, + { + name: "to"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "payer"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UnfreezeNftData"; + }; + } + ]; + } + ]; + accounts: [ + { + name: "bridge"; + type: { + kind: "struct"; + fields: [ + { + name: "paused"; + type: "bool"; + }, + { + name: "groupKey"; + type: { + array: ["u8", 32]; + }; + }, + { + name: "actionId"; + type: "u128"; + } + ]; + }; + }, + { + name: "consumedAction"; + type: { + kind: "struct"; + fields: [ + { + name: "consumed"; + type: "bool"; + } + ]; + }; + } + ]; + types: [ + { + name: "PauseData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UnpauseData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UpdateGroupkeyData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "newKey"; + type: { + array: ["u8", 32]; + }; + } + ]; + }; + }, + { + name: "TransferNftData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "authBump"; + type: "u8"; + }, + { + name: "chainNonce"; + type: "u64"; + }, + { + name: "name"; + type: "string"; + }, + { + name: "symbol"; + type: "string"; + }, + { + name: "uri"; + type: "string"; + }, + { + name: "owner"; + type: "publicKey"; + }, + { + name: "collection"; + type: { + option: { + defined: "AnchorCollection"; + }; + }; + }, + { + name: "sellerFeeBasisPoints"; + type: { + option: "u16"; + }; + }, + { + name: "creators"; + type: { + option: { + vec: { + defined: "AnchorCreator"; + }; + }; + }; + } + ]; + }; + }, + { + name: "AnchorDataV2"; + type: { + kind: "struct"; + fields: [ + { + name: "name"; + docs: ["The name of the asset"]; + type: "string"; + }, + { + name: "symbol"; + docs: ["The symbol for the asset"]; + type: "string"; + }, + { + name: "uri"; + docs: ["URI pointing to JSON representing the asset"]; + type: "string"; + }, + { + name: "sellerFeeBasisPoints"; + docs: [ + "Royalty basis points that goes to creators in secondary sales (0-10000)" + ]; + type: "u16"; + }, + { + name: "creators"; + docs: ["Array of creators, optional"]; + type: { + option: { + vec: { + defined: "AnchorCreator"; + }; + }; + }; + }, + { + name: "collection"; + docs: ["Collection"]; + type: { + option: { + defined: "AnchorCollection"; + }; + }; + }, + { + name: "uses"; + docs: ["Uses"]; + type: { + option: { + defined: "AnchorUses"; + }; + }; + } + ]; + }; + }, + { + name: "AnchorCreator"; + type: { + kind: "struct"; + fields: [ + { + name: "address"; + type: "publicKey"; + }, + { + name: "verified"; + type: "bool"; + }, + { + name: "share"; + type: "u8"; + } + ]; + }; + }, + { + name: "AnchorCollection"; + type: { + kind: "struct"; + fields: [ + { + name: "verified"; + type: "bool"; + }, + { + name: "key"; + type: "publicKey"; + } + ]; + }; + }, + { + name: "AnchorUses"; + type: { + kind: "struct"; + fields: [ + { + name: "useMethod"; + type: { + defined: "AnchorUseMethod"; + }; + }, + { + name: "remaining"; + type: "u64"; + }, + { + name: "total"; + type: "u64"; + } + ]; + }; + }, + { + name: "WithdrawFeesData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UnfreezeNftData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "receiver"; + type: "publicKey"; + }, + { + name: "mint"; + type: "publicKey"; + } + ]; + }; + }, + { + name: "AnchorUseMethod"; + type: { + kind: "enum"; + variants: [ + { + name: "Burn"; + }, + { + name: "Multiple"; + }, + { + name: "Single"; + } + ]; + }; + } + ]; + events: [ + { + name: "TransferNft"; + fields: [ + { + name: "chainNonce"; + type: "u8"; + index: false; + }, + { + name: "to"; + type: "string"; + index: true; + }, + { + name: "mint"; + type: "publicKey"; + index: false; + }, + { + name: "actionId"; + type: "u128"; + index: false; + }, + { + name: "mintWith"; + type: "string"; + index: false; + }, + { + name: "lamports"; + type: "u64"; + index: false; + } + ]; + }, + { + name: "UnfreezeNft"; + fields: [ + { + name: "chainNonce"; + type: "u8"; + index: false; + }, + { + name: "to"; + type: "string"; + index: true; + }, + { + name: "actionId"; + type: "u128"; + index: false; + }, + { + name: "mint"; + type: "publicKey"; + index: false; + }, + { + name: "lamports"; + type: "u64"; + index: false; + } + ]; + } + ]; + errors: [ + { + code: 6000; + name: "Paused"; + msg: "Pausable: paused"; + }, + { + code: 6001; + name: "Unpaused"; + msg: "Pausable: unpaused"; + }, + { + code: 6002; + name: "AlreadyMinted"; + msg: "Already minted"; + }, + { + code: 6003; + name: "AlreadyBurned"; + msg: "Already burned"; + }, + { + code: 6004; + name: "InstructionAtWrongIndex"; + msg: "instruction at wrong index"; + }, + { + code: 6005; + name: "InvalidEd25519Instruction"; + msg: "invalid ed25519 instruction"; + }, + { + code: 6006; + name: "InvalidGroupKey"; + msg: "invalid group key"; + }, + { + code: 6007; + name: "InvalidProgramId"; + msg: "invalid program id"; + }, + { + code: 6008; + name: "InvalidArgs"; + msg: "invalid args"; + }, + { + code: 6009; + name: "InvalidActionId"; + msg: "invalid action id"; + }, + { + code: 6010; + name: "DuplicatedAction"; + msg: "duplicated action"; + }, + { + code: 6011; + name: "IncorrectOwner"; + msg: "incorrect owner"; + }, + { + code: 6012; + name: "InvalidMint"; + msg: "invalid mint"; + }, + { + code: 6013; + name: "InsufficientFundsForTransaction"; + msg: "insufficient funds for transaction"; + } + ]; +}; +export declare const IDL: XpBridge; +//# sourceMappingURL=idl.d.ts.map diff --git a/dist/helpers/solana/idl.d.ts.map b/dist/helpers/solana/idl.d.ts.map new file mode 100644 index 000000000..0abc367e8 --- /dev/null +++ b/dist/helpers/solana/idl.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/idl.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/solana/idl.js b/dist/helpers/solana/idl.js new file mode 100644 index 000000000..7c914eff2 --- /dev/null +++ b/dist/helpers/solana/idl.js @@ -0,0 +1,900 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IDL = void 0; +exports.IDL = { + version: "0.1.0", + name: "xp_bridge", + instructions: [ + { + name: "initialize", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "groupKey", + type: { + array: ["u8", 32], + }, + }, + ], + }, + { + name: "validatePause", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "PauseData", + }, + }, + ], + }, + { + name: "validateUnpause", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UnpauseData", + }, + }, + ], + }, + { + name: "validateWithdrawFees", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "WithdrawFeesData", + }, + }, + ], + }, + { + name: "validateUpdateGroupkey", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UpdateGroupkeyData", + }, + }, + ], + }, + { + name: "validateTransferNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "payer", + isMut: true, + isSigner: true, + }, + { + name: "authority", + isMut: false, + isSigner: false, + }, + { + name: "mint", + isMut: true, + isSigner: false, + }, + { + name: "tokenAccount", + isMut: true, + isSigner: false, + }, + { + name: "metadataAccount", + isMut: true, + isSigner: false, + }, + { + name: "editionAccount", + isMut: true, + isSigner: false, + }, + { + name: "metadataProgram", + isMut: false, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "rent", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "TransferNftData", + }, + }, + ], + }, + { + name: "withdrawNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "authority", + isMut: true, + isSigner: true, + }, + { + name: "mint", + isMut: true, + isSigner: false, + }, + { + name: "tokenAccount", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "chainNonce", + type: "u8", + }, + { + name: "to", + type: "string", + }, + { + name: "lamports", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + { + name: "freezeNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "authority", + isMut: true, + isSigner: true, + }, + { + name: "from", + isMut: true, + isSigner: false, + }, + { + name: "to", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "chainNonce", + type: "u8", + }, + { + name: "to", + type: "string", + }, + { + name: "lamports", + type: "u64", + }, + { + name: "mintWith", + type: "string", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + { + name: "validateUnfreezeNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "from", + isMut: true, + isSigner: false, + }, + { + name: "to", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "payer", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UnfreezeNftData", + }, + }, + ], + }, + ], + accounts: [ + { + name: "bridge", + type: { + kind: "struct", + fields: [ + { + name: "paused", + type: "bool", + }, + { + name: "groupKey", + type: { + array: ["u8", 32], + }, + }, + { + name: "actionId", + type: "u128", + }, + ], + }, + }, + { + name: "consumedAction", + type: { + kind: "struct", + fields: [ + { + name: "consumed", + type: "bool", + }, + ], + }, + }, + ], + types: [ + { + name: "PauseData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UnpauseData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UpdateGroupkeyData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "newKey", + type: { + array: ["u8", 32], + }, + }, + ], + }, + }, + { + name: "TransferNftData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "authBump", + type: "u8", + }, + { + name: "chainNonce", + type: "u64", + }, + { + name: "name", + type: "string", + }, + { + name: "symbol", + type: "string", + }, + { + name: "uri", + type: "string", + }, + { + name: "owner", + type: "publicKey", + }, + { + name: "collection", + type: { + option: { + defined: "AnchorCollection", + }, + }, + }, + { + name: "sellerFeeBasisPoints", + type: { + option: "u16", + }, + }, + { + name: "creators", + type: { + option: { + vec: { + defined: "AnchorCreator", + }, + }, + }, + }, + ], + }, + }, + { + name: "AnchorDataV2", + type: { + kind: "struct", + fields: [ + { + name: "name", + docs: ["The name of the asset"], + type: "string", + }, + { + name: "symbol", + docs: ["The symbol for the asset"], + type: "string", + }, + { + name: "uri", + docs: ["URI pointing to JSON representing the asset"], + type: "string", + }, + { + name: "sellerFeeBasisPoints", + docs: [ + "Royalty basis points that goes to creators in secondary sales (0-10000)", + ], + type: "u16", + }, + { + name: "creators", + docs: ["Array of creators, optional"], + type: { + option: { + vec: { + defined: "AnchorCreator", + }, + }, + }, + }, + { + name: "collection", + docs: ["Collection"], + type: { + option: { + defined: "AnchorCollection", + }, + }, + }, + { + name: "uses", + docs: ["Uses"], + type: { + option: { + defined: "AnchorUses", + }, + }, + }, + ], + }, + }, + { + name: "AnchorCreator", + type: { + kind: "struct", + fields: [ + { + name: "address", + type: "publicKey", + }, + { + name: "verified", + type: "bool", + }, + { + name: "share", + type: "u8", + }, + ], + }, + }, + { + name: "AnchorCollection", + type: { + kind: "struct", + fields: [ + { + name: "verified", + type: "bool", + }, + { + name: "key", + type: "publicKey", + }, + ], + }, + }, + { + name: "AnchorUses", + type: { + kind: "struct", + fields: [ + { + name: "useMethod", + type: { + defined: "AnchorUseMethod", + }, + }, + { + name: "remaining", + type: "u64", + }, + { + name: "total", + type: "u64", + }, + ], + }, + }, + { + name: "WithdrawFeesData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UnfreezeNftData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "receiver", + type: "publicKey", + }, + { + name: "mint", + type: "publicKey", + }, + ], + }, + }, + { + name: "AnchorUseMethod", + type: { + kind: "enum", + variants: [ + { + name: "Burn", + }, + { + name: "Multiple", + }, + { + name: "Single", + }, + ], + }, + }, + ], + events: [ + { + name: "TransferNft", + fields: [ + { + name: "chainNonce", + type: "u8", + index: false, + }, + { + name: "to", + type: "string", + index: true, + }, + { + name: "mint", + type: "publicKey", + index: false, + }, + { + name: "actionId", + type: "u128", + index: false, + }, + { + name: "mintWith", + type: "string", + index: false, + }, + { + name: "lamports", + type: "u64", + index: false, + }, + ], + }, + { + name: "UnfreezeNft", + fields: [ + { + name: "chainNonce", + type: "u8", + index: false, + }, + { + name: "to", + type: "string", + index: true, + }, + { + name: "actionId", + type: "u128", + index: false, + }, + { + name: "mint", + type: "publicKey", + index: false, + }, + { + name: "lamports", + type: "u64", + index: false, + }, + ], + }, + ], + errors: [ + { + code: 6000, + name: "Paused", + msg: "Pausable: paused", + }, + { + code: 6001, + name: "Unpaused", + msg: "Pausable: unpaused", + }, + { + code: 6002, + name: "AlreadyMinted", + msg: "Already minted", + }, + { + code: 6003, + name: "AlreadyBurned", + msg: "Already burned", + }, + { + code: 6004, + name: "InstructionAtWrongIndex", + msg: "instruction at wrong index", + }, + { + code: 6005, + name: "InvalidEd25519Instruction", + msg: "invalid ed25519 instruction", + }, + { + code: 6006, + name: "InvalidGroupKey", + msg: "invalid group key", + }, + { + code: 6007, + name: "InvalidProgramId", + msg: "invalid program id", + }, + { + code: 6008, + name: "InvalidArgs", + msg: "invalid args", + }, + { + code: 6009, + name: "InvalidActionId", + msg: "invalid action id", + }, + { + code: 6010, + name: "DuplicatedAction", + msg: "duplicated action", + }, + { + code: 6011, + name: "IncorrectOwner", + msg: "incorrect owner", + }, + { + code: 6012, + name: "InvalidMint", + msg: "invalid mint", + }, + { + code: 6013, + name: "InsufficientFundsForTransaction", + msg: "insufficient funds for transaction", + }, + ], +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvc29sYW5hL2lkbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpNEJhLFFBQUEsR0FBRyxHQUFhO0lBQzNCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLElBQUksRUFBRSxXQUFXO0lBQ2pCLFlBQVksRUFBRTtRQUNaO1lBQ0UsSUFBSSxFQUFFLFlBQVk7WUFDbEIsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRSxLQUFLO2lCQUNoQjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZUFBZTtvQkFDckIsS0FBSyxFQUFFLEtBQUs7b0JBQ1osUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0o7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3FCQUNsQjtpQkFDRjthQUNGO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxlQUFlO1lBQ3JCLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsS0FBSztpQkFDaEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2dCQUNEO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNEO29CQUNFLElBQUksRUFBRSxlQUFlO29CQUNy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 diff --git a/dist/helpers/solana/idl.ts b/dist/helpers/solana/idl.ts new file mode 100644 index 000000000..a5f6bc796 --- /dev/null +++ b/dist/helpers/solana/idl.ts @@ -0,0 +1,1793 @@ +export type XpBridge = { + version: "0.1.0"; + name: "xp_bridge"; + instructions: [ + { + name: "initialize"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "groupKey"; + type: { + array: ["u8", 32]; + }; + } + ]; + }, + { + name: "validatePause"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "PauseData"; + }; + } + ]; + }, + { + name: "validateUnpause"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UnpauseData"; + }; + } + ]; + }, + { + name: "validateWithdrawFees"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "WithdrawFeesData"; + }; + } + ]; + }, + { + name: "validateUpdateGroupkey"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UpdateGroupkeyData"; + }; + } + ]; + }, + { + name: "validateTransferNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "payer"; + isMut: true; + isSigner: true; + }, + { + name: "authority"; + isMut: false; + isSigner: false; + }, + { + name: "mint"; + isMut: true; + isSigner: false; + }, + { + name: "tokenAccount"; + isMut: true; + isSigner: false; + }, + { + name: "metadataAccount"; + isMut: true; + isSigner: false; + }, + { + name: "editionAccount"; + isMut: true; + isSigner: false; + }, + { + name: "metadataProgram"; + isMut: false; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "rent"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "TransferNftData"; + }; + } + ]; + }, + { + name: "withdrawNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "authority"; + isMut: true; + isSigner: true; + }, + { + name: "mint"; + isMut: true; + isSigner: false; + }, + { + name: "tokenAccount"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "chainNonce"; + type: "u8"; + }, + { + name: "to"; + type: "string"; + }, + { + name: "lamports"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }, + { + name: "freezeNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "authority"; + isMut: true; + isSigner: true; + }, + { + name: "from"; + isMut: true; + isSigner: false; + }, + { + name: "to"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "chainNonce"; + type: "u8"; + }, + { + name: "to"; + type: "string"; + }, + { + name: "lamports"; + type: "u64"; + }, + { + name: "mintWith"; + type: "string"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }, + { + name: "validateUnfreezeNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "from"; + isMut: true; + isSigner: false; + }, + { + name: "to"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "payer"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UnfreezeNftData"; + }; + } + ]; + } + ]; + accounts: [ + { + name: "bridge"; + type: { + kind: "struct"; + fields: [ + { + name: "paused"; + type: "bool"; + }, + { + name: "groupKey"; + type: { + array: ["u8", 32]; + }; + }, + { + name: "actionId"; + type: "u128"; + } + ]; + }; + }, + { + name: "consumedAction"; + type: { + kind: "struct"; + fields: [ + { + name: "consumed"; + type: "bool"; + } + ]; + }; + } + ]; + types: [ + { + name: "PauseData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UnpauseData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UpdateGroupkeyData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "newKey"; + type: { + array: ["u8", 32]; + }; + } + ]; + }; + }, + { + name: "TransferNftData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "authBump"; + type: "u8"; + }, + { + name: "chainNonce"; + type: "u64"; + }, + { + name: "name"; + type: "string"; + }, + { + name: "symbol"; + type: "string"; + }, + { + name: "uri"; + type: "string"; + }, + { + name: "owner"; + type: "publicKey"; + }, + { + name: "collection"; + type: { + option: { + defined: "AnchorCollection"; + }; + }; + }, + { + name: "sellerFeeBasisPoints"; + type: { + option: "u16"; + }; + }, + { + name: "creators"; + type: { + option: { + vec: { + defined: "AnchorCreator"; + }; + }; + }; + } + ]; + }; + }, + { + name: "AnchorDataV2"; + type: { + kind: "struct"; + fields: [ + { + name: "name"; + docs: ["The name of the asset"]; + type: "string"; + }, + { + name: "symbol"; + docs: ["The symbol for the asset"]; + type: "string"; + }, + { + name: "uri"; + docs: ["URI pointing to JSON representing the asset"]; + type: "string"; + }, + { + name: "sellerFeeBasisPoints"; + docs: [ + "Royalty basis points that goes to creators in secondary sales (0-10000)" + ]; + type: "u16"; + }, + { + name: "creators"; + docs: ["Array of creators, optional"]; + type: { + option: { + vec: { + defined: "AnchorCreator"; + }; + }; + }; + }, + { + name: "collection"; + docs: ["Collection"]; + type: { + option: { + defined: "AnchorCollection"; + }; + }; + }, + { + name: "uses"; + docs: ["Uses"]; + type: { + option: { + defined: "AnchorUses"; + }; + }; + } + ]; + }; + }, + { + name: "AnchorCreator"; + type: { + kind: "struct"; + fields: [ + { + name: "address"; + type: "publicKey"; + }, + { + name: "verified"; + type: "bool"; + }, + { + name: "share"; + type: "u8"; + } + ]; + }; + }, + { + name: "AnchorCollection"; + type: { + kind: "struct"; + fields: [ + { + name: "verified"; + type: "bool"; + }, + { + name: "key"; + type: "publicKey"; + } + ]; + }; + }, + { + name: "AnchorUses"; + type: { + kind: "struct"; + fields: [ + { + name: "useMethod"; + type: { + defined: "AnchorUseMethod"; + }; + }, + { + name: "remaining"; + type: "u64"; + }, + { + name: "total"; + type: "u64"; + } + ]; + }; + }, + { + name: "WithdrawFeesData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UnfreezeNftData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "receiver"; + type: "publicKey"; + }, + { + name: "mint"; + type: "publicKey"; + } + ]; + }; + }, + { + name: "AnchorUseMethod"; + type: { + kind: "enum"; + variants: [ + { + name: "Burn"; + }, + { + name: "Multiple"; + }, + { + name: "Single"; + } + ]; + }; + } + ]; + events: [ + { + name: "TransferNft"; + fields: [ + { + name: "chainNonce"; + type: "u8"; + index: false; + }, + { + name: "to"; + type: "string"; + index: true; + }, + { + name: "mint"; + type: "publicKey"; + index: false; + }, + { + name: "actionId"; + type: "u128"; + index: false; + }, + { + name: "mintWith"; + type: "string"; + index: false; + }, + { + name: "lamports"; + type: "u64"; + index: false; + } + ]; + }, + { + name: "UnfreezeNft"; + fields: [ + { + name: "chainNonce"; + type: "u8"; + index: false; + }, + { + name: "to"; + type: "string"; + index: true; + }, + { + name: "actionId"; + type: "u128"; + index: false; + }, + { + name: "mint"; + type: "publicKey"; + index: false; + }, + { + name: "lamports"; + type: "u64"; + index: false; + } + ]; + } + ]; + errors: [ + { + code: 6000; + name: "Paused"; + msg: "Pausable: paused"; + }, + { + code: 6001; + name: "Unpaused"; + msg: "Pausable: unpaused"; + }, + { + code: 6002; + name: "AlreadyMinted"; + msg: "Already minted"; + }, + { + code: 6003; + name: "AlreadyBurned"; + msg: "Already burned"; + }, + { + code: 6004; + name: "InstructionAtWrongIndex"; + msg: "instruction at wrong index"; + }, + { + code: 6005; + name: "InvalidEd25519Instruction"; + msg: "invalid ed25519 instruction"; + }, + { + code: 6006; + name: "InvalidGroupKey"; + msg: "invalid group key"; + }, + { + code: 6007; + name: "InvalidProgramId"; + msg: "invalid program id"; + }, + { + code: 6008; + name: "InvalidArgs"; + msg: "invalid args"; + }, + { + code: 6009; + name: "InvalidActionId"; + msg: "invalid action id"; + }, + { + code: 6010; + name: "DuplicatedAction"; + msg: "duplicated action"; + }, + { + code: 6011; + name: "IncorrectOwner"; + msg: "incorrect owner"; + }, + { + code: 6012; + name: "InvalidMint"; + msg: "invalid mint"; + }, + { + code: 6013; + name: "InsufficientFundsForTransaction"; + msg: "insufficient funds for transaction"; + } + ]; +}; + +export const IDL: XpBridge = { + version: "0.1.0", + name: "xp_bridge", + instructions: [ + { + name: "initialize", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "groupKey", + type: { + array: ["u8", 32], + }, + }, + ], + }, + { + name: "validatePause", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "PauseData", + }, + }, + ], + }, + { + name: "validateUnpause", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UnpauseData", + }, + }, + ], + }, + { + name: "validateWithdrawFees", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "WithdrawFeesData", + }, + }, + ], + }, + { + name: "validateUpdateGroupkey", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UpdateGroupkeyData", + }, + }, + ], + }, + { + name: "validateTransferNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "payer", + isMut: true, + isSigner: true, + }, + { + name: "authority", + isMut: false, + isSigner: false, + }, + { + name: "mint", + isMut: true, + isSigner: false, + }, + { + name: "tokenAccount", + isMut: true, + isSigner: false, + }, + { + name: "metadataAccount", + isMut: true, + isSigner: false, + }, + { + name: "editionAccount", + isMut: true, + isSigner: false, + }, + { + name: "metadataProgram", + isMut: false, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "rent", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "TransferNftData", + }, + }, + ], + }, + { + name: "withdrawNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "authority", + isMut: true, + isSigner: true, + }, + { + name: "mint", + isMut: true, + isSigner: false, + }, + { + name: "tokenAccount", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "chainNonce", + type: "u8", + }, + { + name: "to", + type: "string", + }, + { + name: "lamports", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + { + name: "freezeNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "authority", + isMut: true, + isSigner: true, + }, + { + name: "from", + isMut: true, + isSigner: false, + }, + { + name: "to", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "chainNonce", + type: "u8", + }, + { + name: "to", + type: "string", + }, + { + name: "lamports", + type: "u64", + }, + { + name: "mintWith", + type: "string", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + { + name: "validateUnfreezeNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "from", + isMut: true, + isSigner: false, + }, + { + name: "to", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "payer", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UnfreezeNftData", + }, + }, + ], + }, + ], + accounts: [ + { + name: "bridge", + type: { + kind: "struct", + fields: [ + { + name: "paused", + type: "bool", + }, + { + name: "groupKey", + type: { + array: ["u8", 32], + }, + }, + { + name: "actionId", + type: "u128", + }, + ], + }, + }, + { + name: "consumedAction", + type: { + kind: "struct", + fields: [ + { + name: "consumed", + type: "bool", + }, + ], + }, + }, + ], + types: [ + { + name: "PauseData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UnpauseData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UpdateGroupkeyData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "newKey", + type: { + array: ["u8", 32], + }, + }, + ], + }, + }, + { + name: "TransferNftData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "authBump", + type: "u8", + }, + { + name: "chainNonce", + type: "u64", + }, + { + name: "name", + type: "string", + }, + { + name: "symbol", + type: "string", + }, + { + name: "uri", + type: "string", + }, + { + name: "owner", + type: "publicKey", + }, + { + name: "collection", + type: { + option: { + defined: "AnchorCollection", + }, + }, + }, + { + name: "sellerFeeBasisPoints", + type: { + option: "u16", + }, + }, + { + name: "creators", + type: { + option: { + vec: { + defined: "AnchorCreator", + }, + }, + }, + }, + ], + }, + }, + { + name: "AnchorDataV2", + type: { + kind: "struct", + fields: [ + { + name: "name", + docs: ["The name of the asset"], + type: "string", + }, + { + name: "symbol", + docs: ["The symbol for the asset"], + type: "string", + }, + { + name: "uri", + docs: ["URI pointing to JSON representing the asset"], + type: "string", + }, + { + name: "sellerFeeBasisPoints", + docs: [ + "Royalty basis points that goes to creators in secondary sales (0-10000)", + ], + type: "u16", + }, + { + name: "creators", + docs: ["Array of creators, optional"], + type: { + option: { + vec: { + defined: "AnchorCreator", + }, + }, + }, + }, + { + name: "collection", + docs: ["Collection"], + type: { + option: { + defined: "AnchorCollection", + }, + }, + }, + { + name: "uses", + docs: ["Uses"], + type: { + option: { + defined: "AnchorUses", + }, + }, + }, + ], + }, + }, + { + name: "AnchorCreator", + type: { + kind: "struct", + fields: [ + { + name: "address", + type: "publicKey", + }, + { + name: "verified", + type: "bool", + }, + { + name: "share", + type: "u8", + }, + ], + }, + }, + { + name: "AnchorCollection", + type: { + kind: "struct", + fields: [ + { + name: "verified", + type: "bool", + }, + { + name: "key", + type: "publicKey", + }, + ], + }, + }, + { + name: "AnchorUses", + type: { + kind: "struct", + fields: [ + { + name: "useMethod", + type: { + defined: "AnchorUseMethod", + }, + }, + { + name: "remaining", + type: "u64", + }, + { + name: "total", + type: "u64", + }, + ], + }, + }, + { + name: "WithdrawFeesData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UnfreezeNftData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "receiver", + type: "publicKey", + }, + { + name: "mint", + type: "publicKey", + }, + ], + }, + }, + { + name: "AnchorUseMethod", + type: { + kind: "enum", + variants: [ + { + name: "Burn", + }, + { + name: "Multiple", + }, + { + name: "Single", + }, + ], + }, + }, + ], + events: [ + { + name: "TransferNft", + fields: [ + { + name: "chainNonce", + type: "u8", + index: false, + }, + { + name: "to", + type: "string", + index: true, + }, + { + name: "mint", + type: "publicKey", + index: false, + }, + { + name: "actionId", + type: "u128", + index: false, + }, + { + name: "mintWith", + type: "string", + index: false, + }, + { + name: "lamports", + type: "u64", + index: false, + }, + ], + }, + { + name: "UnfreezeNft", + fields: [ + { + name: "chainNonce", + type: "u8", + index: false, + }, + { + name: "to", + type: "string", + index: true, + }, + { + name: "actionId", + type: "u128", + index: false, + }, + { + name: "mint", + type: "publicKey", + index: false, + }, + { + name: "lamports", + type: "u64", + index: false, + }, + ], + }, + ], + errors: [ + { + code: 6000, + name: "Paused", + msg: "Pausable: paused", + }, + { + code: 6001, + name: "Unpaused", + msg: "Pausable: unpaused", + }, + { + code: 6002, + name: "AlreadyMinted", + msg: "Already minted", + }, + { + code: 6003, + name: "AlreadyBurned", + msg: "Already burned", + }, + { + code: 6004, + name: "InstructionAtWrongIndex", + msg: "instruction at wrong index", + }, + { + code: 6005, + name: "InvalidEd25519Instruction", + msg: "invalid ed25519 instruction", + }, + { + code: 6006, + name: "InvalidGroupKey", + msg: "invalid group key", + }, + { + code: 6007, + name: "InvalidProgramId", + msg: "invalid program id", + }, + { + code: 6008, + name: "InvalidArgs", + msg: "invalid args", + }, + { + code: 6009, + name: "InvalidActionId", + msg: "invalid action id", + }, + { + code: 6010, + name: "DuplicatedAction", + msg: "duplicated action", + }, + { + code: 6011, + name: "IncorrectOwner", + msg: "incorrect owner", + }, + { + code: 6012, + name: "InvalidMint", + msg: "invalid mint", + }, + { + code: 6013, + name: "InsufficientFundsForTransaction", + msg: "insufficient funds for transaction", + }, + ], +}; diff --git a/dist/helpers/solana/index.d.ts b/dist/helpers/solana/index.d.ts new file mode 100644 index 000000000..593d9f3fc --- /dev/null +++ b/dist/helpers/solana/index.d.ts @@ -0,0 +1,44 @@ +import { Wallet } from "@project-serum/anchor"; +import { Connection } from "@solana/web3.js"; +import { EvNotifier } from "../../notifier"; +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + BalanceCheck, + MintNft, +} from "../chain"; +export type SolanaSigner = Wallet; +export type SolanaNft = { + nftMint: string; +}; +type SolanaMintArgs = { + uri: string; +}; +export type SolanaHelper = ChainNonceGet & + BalanceCheck & + MintNft & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + connection: Connection; + } & { + XpNft: string; + } & GetFeeMargins & + GetProvider; +export type SolanaParams = { + endpoint: string; + bridgeContractAddr: string; + xpnftAddr: string; + notifier: EvNotifier; + feeMargin: FeeMargins; +}; +export declare function solanaHelper(args: SolanaParams): Promise; +export {}; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/helpers/solana/index.d.ts.map b/dist/helpers/solana/index.d.ts.map new file mode 100644 index 000000000..5a884f5d9 --- /dev/null +++ b/dist/helpers/solana/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,MAAM,EAKP,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACL,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACR,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,aAAa,GACtC,YAAY,GACZ,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC7C,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,cAAc,CAAC,SAAS,CAAC,GACzB,eAAe,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GACrC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE1B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AA4DF,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuN5E"} \ No newline at end of file diff --git a/dist/helpers/solana/index.js b/dist/helpers/solana/index.js new file mode 100644 index 000000000..20abaa878 --- /dev/null +++ b/dist/helpers/solana/index.js @@ -0,0 +1,273 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.solanaHelper = void 0; +/*import { + Metaplex, + bundlrStorage, + walletAdapterIdentity, +} from "@metaplex-foundation/js";*/ +const anchor_1 = require("@project-serum/anchor"); +const spl_token_1 = require("@solana/spl-token"); +const web3_js_1 = require("@solana/web3.js"); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const __1 = require("../.."); +const idl_1 = require("./idl"); +// Based on https://github.com/solana-labs/solana-program-library/blob/118bd047aa0f1ba1930b5bc4639d40aa2a375ccb/token/js/src/actions/getOrCreateAssociatedTokenAccount.ts +async function getOrCreateAssociatedTokenAccount( + connection, + payer, + mint, + owner, + allowOwnerOffCurve = false +) { + const provider = new anchor_1.AnchorProvider(connection, payer, {}); + const associatedToken = await (0, spl_token_1.getAssociatedTokenAddress)( + mint, + owner, + allowOwnerOffCurve + ); + // This is the optimal logic, considering TX fee, client-side computation, RPC roundtrips and guaranteed idempotent. + // Sadly we can't do this atomically. + let account; + try { + account = await (0, spl_token_1.getAccount)(connection, associatedToken); + } catch (error) { + // TokenAccountNotFoundError can be possible if the associated address has already received some lamports, + // becoming a system account. Assuming program derived addressing is safe, this is the only case for the + // TokenInvalidAccountOwnerError in this code path. + if ( + error instanceof spl_token_1.TokenAccountNotFoundError || + error instanceof spl_token_1.TokenInvalidAccountOwnerError + ) { + // As this isn't atomic, it's possible others can create associated accounts meanwhile. + try { + const transaction = new web3_js_1.Transaction().add( + (0, spl_token_1.createAssociatedTokenAccountInstruction)( + payer.publicKey, + associatedToken, + owner, + mint + ) + ); + await provider.sendAndConfirm(transaction); + } catch (error) { + // Ignore all errors; for now there is no API-compatible way to selectively ignore the expected + // instruction error if the associated account exists already. + } + // Now this should always succeed + account = await (0, spl_token_1.getAccount)(connection, associatedToken); + } else { + throw error; + } + } + if (!account.mint.equals(mint)) throw new spl_token_1.TokenInvalidMintError(); + if (!account.owner.equals(owner)) + throw new spl_token_1.TokenInvalidOwnerError(); + return account; +} +async function solanaHelper(args) { + const conn = new web3_js_1.Connection(args.endpoint); + async function getOrCreateTokenAccount(mint, owner, provider) { + const tokenProgram = anchor_1.Spl.token(provider); + const program = anchor_1.Spl.associatedToken(provider); + const [associatedToken] = await web3_js_1.PublicKey.findProgramAddress( + [owner.toBuffer(), tokenProgram.programId.toBuffer(), mint.toBuffer()], + program.programId + ); + try { + const tokenAccount = await tokenProgram.account.token.fetch( + associatedToken + ); + return { + address: associatedToken, + owner: tokenAccount.authority, + ...tokenAccount, + }; + } catch (e) { + try { + await program.methods + .create() + .accounts({ + mint, + owner, + associatedAccount: associatedToken, + }) + .rpc(); + const tokenAccount = await tokenProgram.account.token.fetch( + associatedToken + ); + return { + address: associatedToken, + owner: tokenAccount.authority, + ...tokenAccount, + }; + } catch (e) { + throw e; + } + } + } + return { + XpNft: args.xpnftAddr, + connection: conn, + async balance(address) { + return new bignumber_js_1.default( + await conn.getBalance(new web3_js_1.PublicKey(address)) + ); + }, + getNonce: () => __1.Chain.SOLANA, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { + const provider = new anchor_1.AnchorProvider(conn, sender, {}); + const bridgeContract = new anchor_1.Program( + idl_1.IDL, + args.bridgeContractAddr, + provider + ); + const [bridge, bridgeBump] = await web3_js_1.PublicKey.findProgramAddress( + [Buffer.from("bridge")], + bridgeContract.programId + ); + const mintAddr = new web3_js_1.PublicKey(id.native.nftMint); + const fromTokenAcc = await getOrCreateTokenAccount( + mintAddr, + sender.publicKey, + provider + ); + const toAccount = await getOrCreateTokenAccount( + mintAddr, + bridge, + provider + ); + const tx = await bridgeContract.methods + .freezeNft( + chain_nonce, + to, + new anchor_1.BN(txFees.toString(10)), + mintWith, + bridgeBump + ) + .accounts({ + bridge, + authority: sender.publicKey, + from: fromTokenAcc.address, + to: toAccount.address, + tokenProgram: spl_token_1.TOKEN_PROGRAM_ID, + }) + .rpc(); + await args.notifier.notifySolana(tx); + return tx; + }, + getFeeMargin() { + return args.feeMargin; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + console.log(`Unfreezing`); + const provider = new anchor_1.AnchorProvider(conn, sender, {}); + const bridgeContract = new anchor_1.Program( + idl_1.IDL, + args.bridgeContractAddr, + provider + ); + const [bridge, bridgeBump] = await web3_js_1.PublicKey.findProgramAddress( + [Buffer.from("bridge")], + bridgeContract.programId + ); + const mintAddr = new web3_js_1.PublicKey(id.native.nftMint); + const tokenAcc = await getOrCreateAssociatedTokenAccount( + conn, + sender, + mintAddr, + sender.publicKey + ).catch((e) => { + console.error(e); + throw e; + }); + const tx = await bridgeContract.methods + .withdrawNft( + parseInt(nonce), + to, + new anchor_1.BN(txFees.toString(10)), + bridgeBump + ) + .accounts({ + bridge, + authority: sender.publicKey, + mint: tokenAcc.mint, + tokenAccount: tokenAcc.address, + tokenProgram: spl_token_1.TOKEN_PROGRAM_ID, + }) + .rpc(); + await args.notifier.notifySolana(tx); + return tx; + }, + getProvider() { + return conn; + }, + async mintNft() { + /*console.log(Metaplex, walletAdapterIdentity, bundlrStorage); + console.log(args, "args"); + console.log(sender, "sender"); + const provider = new AnchorProvider(conn, sender, {}); + console.log(provider.wallet, "provider"); + + /*const txn = await conn.requestAirdrop( + sender.publicKey, + LAMPORTS_PER_SOL * 2 + ); + const block = await conn.getLatestBlockhash(); + const sig = conn.confirmTransaction( + { + blockhash: block.blockhash, + lastValidBlockHeight: block.lastValidBlockHeight, + signature: txn, + }, + "finalized" + ); + console.log(`Airdrop: ${txn}`); + console.log(`sig ${sig}`); + console.log(`Waiting for 5s`); + await new Promise((r) => setTimeout(r, 5000)); + //sender.payer.secretKey. + const _metaplex = Metaplex.make(conn) + .use(walletAdapterIdentity(sender)) + .use(bundlrStorage()); + const nftc = _metaplex.nfts(); + + const _col = await nftc.create( + { + name: "Uniair1", + symbol: "UNIAIRT", + + uri: args.uri, + sellerFeeBasisPoints: 0, + }, + { + commitment: "processed", + } + ); + + console.log(_col);*/ + return ""; + }, + async estimateValidateTransferNft() { + return new bignumber_js_1.default(0); // TODO + }, + async estimateValidateUnfreezeNft() { + return new bignumber_js_1.default(0); // TODO + }, + async validateAddress(adr) { + try { + new web3_js_1.PublicKey(adr); + return true; + } catch { + return false; + } + }, + }; +} +exports.solanaHelper = solanaHelper; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9zb2xhbmEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7bUNBSW1DO0FBQ25DLGtEQU0rQjtBQUMvQixpREFVMkI7QUFDM0IsNkNBS3lCO0FBRXpCLGdFQUFxQztBQUNyQyw2QkFBOEI7QUFjOUIsK0JBQTRCO0FBK0I1Qix5S0FBeUs7QUFDekssS0FBSyxVQUFVLGlDQUFpQyxDQUM5QyxVQUFzQixFQUN0QixLQUFtQixFQUNuQixJQUFlLEVBQ2YsS0FBZ0IsRUFDaEIsa0JBQWtCLEdBQUcsS0FBSztJQUUxQixNQUFNLFFBQVEsR0FBRyxJQUFJLHVCQUFjLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUEscUNBQXlCLEVBQ3JELElBQUksRUFDSixLQUFLLEVBQ0wsa0JBQWtCLENBQ25CLENBQUM7SUFFRixvSEFBb0g7SUFDcEgscUNBQXFDO0lBQ3JDLElBQUksT0FBZ0IsQ0FBQztJQUNyQixJQUFJO1FBQ0YsT0FBTyxHQUFHLE1BQU0sSUFBQSxzQkFBVSxFQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztLQUN6RDtJQUFDLE9BQU8sS0FBYyxFQUFFO1FBQ3ZCLDBHQUEwRztRQUMxRyx3R0FBd0c7UUFDeEcsbURBQW1EO1FBQ25ELElBQ0UsS0FBSyxZQUFZLHFDQUF5QjtZQUMxQyxLQUFLLFlBQVkseUNBQTZCLEVBQzlDO1lBQ0EsdUZBQXVGO1lBQ3ZGLElBQUk7Z0JBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQkFBVyxFQUFFLENBQUMsR0FBRyxDQUN2QyxJQUFBLG1EQUF1QyxFQUNyQyxLQUFLLENBQUMsU0FBUyxFQUNmLGVBQWUsRUFDZixLQUFLLEVBQ0wsSUFBSSxDQUNMLENBQ0YsQ0FBQztnQkFFRixNQUFNLFFBQVEsQ0FBQyxjQUFj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 diff --git a/dist/helpers/solana/index.ts b/dist/helpers/solana/index.ts new file mode 100644 index 000000000..e7723945b --- /dev/null +++ b/dist/helpers/solana/index.ts @@ -0,0 +1,350 @@ +/*import { + Metaplex, + bundlrStorage, + walletAdapterIdentity, +} from "@metaplex-foundation/js";*/ +import { + Wallet, + BN, + Program, + AnchorProvider, + Spl, +} from "@project-serum/anchor"; +import { + Account, + createAssociatedTokenAccountInstruction, + getAccount, + getAssociatedTokenAddress, + TokenAccountNotFoundError, + TokenInvalidAccountOwnerError, + TokenInvalidMintError, + TokenInvalidOwnerError, + TOKEN_PROGRAM_ID, +} from "@solana/spl-token"; +import { + Connection, + PublicKey, + Transaction, + //LAMPORTS_PER_SOL, +} from "@solana/web3.js"; + +import BigNumber from "bignumber.js"; +import { Chain } from "../.."; +import { EvNotifier } from "../../notifier"; +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + BalanceCheck, + MintNft, +} from "../chain"; +import { IDL } from "./idl"; + +export type SolanaSigner = Wallet; + +export type SolanaNft = { + nftMint: string; +}; + +type SolanaMintArgs = { + uri: string; +}; + +export type SolanaHelper = ChainNonceGet & + BalanceCheck & + MintNft & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + connection: Connection; + } & { XpNft: string } & GetFeeMargins & + GetProvider; + +export type SolanaParams = { + endpoint: string; + bridgeContractAddr: string; + xpnftAddr: string; + notifier: EvNotifier; + feeMargin: FeeMargins; +}; + +// Based on https://github.com/solana-labs/solana-program-library/blob/118bd047aa0f1ba1930b5bc4639d40aa2a375ccb/token/js/src/actions/getOrCreateAssociatedTokenAccount.ts +async function getOrCreateAssociatedTokenAccount( + connection: Connection, + payer: SolanaSigner, + mint: PublicKey, + owner: PublicKey, + allowOwnerOffCurve = false +) { + const provider = new AnchorProvider(connection, payer, {}); + const associatedToken = await getAssociatedTokenAddress( + mint, + owner, + allowOwnerOffCurve + ); + + // This is the optimal logic, considering TX fee, client-side computation, RPC roundtrips and guaranteed idempotent. + // Sadly we can't do this atomically. + let account: Account; + try { + account = await getAccount(connection, associatedToken); + } catch (error: unknown) { + // TokenAccountNotFoundError can be possible if the associated address has already received some lamports, + // becoming a system account. Assuming program derived addressing is safe, this is the only case for the + // TokenInvalidAccountOwnerError in this code path. + if ( + error instanceof TokenAccountNotFoundError || + error instanceof TokenInvalidAccountOwnerError + ) { + // As this isn't atomic, it's possible others can create associated accounts meanwhile. + try { + const transaction = new Transaction().add( + createAssociatedTokenAccountInstruction( + payer.publicKey, + associatedToken, + owner, + mint + ) + ); + + await provider.sendAndConfirm(transaction); + } catch (error: unknown) { + // Ignore all errors; for now there is no API-compatible way to selectively ignore the expected + // instruction error if the associated account exists already. + } + + // Now this should always succeed + account = await getAccount(connection, associatedToken); + } else { + throw error; + } + } + + if (!account.mint.equals(mint)) throw new TokenInvalidMintError(); + if (!account.owner.equals(owner)) throw new TokenInvalidOwnerError(); + + return account; +} + +export async function solanaHelper(args: SolanaParams): Promise { + const conn = new Connection(args.endpoint); + + async function getOrCreateTokenAccount( + mint: PublicKey, + owner: PublicKey, + provider: AnchorProvider + ) { + const tokenProgram = Spl.token(provider); + const program = Spl.associatedToken(provider); + + const [associatedToken] = await PublicKey.findProgramAddress( + [owner.toBuffer(), tokenProgram.programId.toBuffer(), mint.toBuffer()], + program.programId + ); + + try { + const tokenAccount = await tokenProgram.account.token.fetch( + associatedToken + ); + return { + address: associatedToken, + owner: tokenAccount.authority, + ...tokenAccount, + }; + } catch (e) { + try { + await program.methods + .create() + .accounts({ + mint, + owner, + associatedAccount: associatedToken, + }) + .rpc(); + + const tokenAccount = await tokenProgram.account.token.fetch( + associatedToken + ); + return { + address: associatedToken, + owner: tokenAccount.authority, + ...tokenAccount, + }; + } catch (e) { + throw e; + } + } + } + + return { + XpNft: args.xpnftAddr, + connection: conn, + async balance(address: string) { + return new BigNumber(await conn.getBalance(new PublicKey(address))); + }, + getNonce: () => Chain.SOLANA, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { + const provider = new AnchorProvider(conn, sender, {}); + const bridgeContract = new Program( + IDL, + args.bridgeContractAddr, + provider + ); + + const [bridge, bridgeBump] = await PublicKey.findProgramAddress( + [Buffer.from("bridge")], + bridgeContract.programId + ); + + const mintAddr = new PublicKey(id.native.nftMint); + const fromTokenAcc = await getOrCreateTokenAccount( + mintAddr, + sender.publicKey, + provider + ); + const toAccount = await getOrCreateTokenAccount( + mintAddr, + bridge, + provider + ); + const tx = await bridgeContract.methods + .freezeNft( + chain_nonce, + to, + new BN(txFees.toString(10)), + mintWith, + bridgeBump + ) + .accounts({ + bridge, + authority: sender.publicKey, + from: fromTokenAcc.address, + to: toAccount.address, + tokenProgram: TOKEN_PROGRAM_ID, + }) + .rpc(); + + await args.notifier.notifySolana(tx); + + return tx; + }, + getFeeMargin() { + return args.feeMargin; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + console.log(`Unfreezing`); + const provider = new AnchorProvider(conn, sender, {}); + const bridgeContract = new Program( + IDL, + args.bridgeContractAddr, + provider + ); + + const [bridge, bridgeBump] = await PublicKey.findProgramAddress( + [Buffer.from("bridge")], + bridgeContract.programId + ); + + const mintAddr = new PublicKey(id.native.nftMint); + + const tokenAcc = await getOrCreateAssociatedTokenAccount( + conn, + sender, + mintAddr, + sender.publicKey + ).catch((e) => { + console.error(e); + throw e; + }); + + const tx = await bridgeContract.methods + .withdrawNft( + parseInt(nonce), + to, + new BN(txFees.toString(10)), + bridgeBump + ) + .accounts({ + bridge, + authority: sender.publicKey, + mint: tokenAcc.mint, + tokenAccount: tokenAcc.address, + tokenProgram: TOKEN_PROGRAM_ID, + }) + .rpc(); + + await args.notifier.notifySolana(tx); + + return tx; + }, + getProvider() { + return conn; + }, + async mintNft() { + /*console.log(Metaplex, walletAdapterIdentity, bundlrStorage); + console.log(args, "args"); + console.log(sender, "sender"); + const provider = new AnchorProvider(conn, sender, {}); + console.log(provider.wallet, "provider"); + + /*const txn = await conn.requestAirdrop( + sender.publicKey, + LAMPORTS_PER_SOL * 2 + ); + const block = await conn.getLatestBlockhash(); + const sig = conn.confirmTransaction( + { + blockhash: block.blockhash, + lastValidBlockHeight: block.lastValidBlockHeight, + signature: txn, + }, + "finalized" + ); + console.log(`Airdrop: ${txn}`); + console.log(`sig ${sig}`); + console.log(`Waiting for 5s`); + await new Promise((r) => setTimeout(r, 5000)); + //sender.payer.secretKey. + const _metaplex = Metaplex.make(conn) + .use(walletAdapterIdentity(sender)) + .use(bundlrStorage()); + const nftc = _metaplex.nfts(); + + const _col = await nftc.create( + { + name: "Uniair1", + symbol: "UNIAIRT", + + uri: args.uri, + sellerFeeBasisPoints: 0, + }, + { + commitment: "processed", + } + ); + + console.log(_col);*/ + return ""; + }, + async estimateValidateTransferNft() { + return new BigNumber(0); // TODO + }, + async estimateValidateUnfreezeNft() { + return new BigNumber(0); // TODO + }, + async validateAddress(adr) { + try { + new PublicKey(adr); + return true; + } catch { + return false; + } + }, + }; +} diff --git a/dist/helpers/tezos.d.ts b/dist/helpers/tezos.d.ts new file mode 100644 index 000000000..e58361606 --- /dev/null +++ b/dist/helpers/tezos.d.ts @@ -0,0 +1,74 @@ +import { + BalanceCheck, + ChainNonceGet, + EstimateTxFees, + MintNft, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from ".."; +import { Signer, TezosToolkit, WalletProvider } from "@taquito/taquito"; +import { EvNotifier } from "../notifier"; +import { + FeeMargins, + GetFeeMargins, + WhitelistCheck, + GetTokenURI, +} from "./chain"; +type TezosSigner = WalletProvider | Signer; +export type TezosNftInfo = { + contract: string; + token_id: string; +}; +type TezosMintArgs = { + identifier: string; + attrs: string; + contract: string; + uri: string; +}; +export type TezosHelper = TransferNftForeign< + TezosSigner, + TezosNftInfo, + string +> & + MintNft & + BalanceCheck & + UnfreezeForeignNft & + ValidateAddress & + EstimateTxFees & + ChainNonceGet & + Pick, "preTransfer"> & { + isApprovedForMinter( + nft: NftInfo, + signer: TezosSigner + ): Promise; + } & { + approveForMinter( + address: NftInfo, + sender: TezosSigner + ): Promise; + } & { + XpNft: string; + } & GetFeeMargins & + WhitelistCheck & + GetTokenURI; +export type TezosParams = { + Tezos: TezosToolkit; + notifier: EvNotifier; + xpnftAddress: string; + bridgeAddress: string; + validators: string[]; + feeMargin: FeeMargins; +}; +export declare function tezosHelperFactory({ + Tezos, + notifier, + xpnftAddress, + bridgeAddress, + validators, + feeMargin, +}: TezosParams): Promise; +export {}; +//# sourceMappingURL=tezos.d.ts.map diff --git a/dist/helpers/tezos.d.ts.map b/dist/helpers/tezos.d.ts.map new file mode 100644 index 000000000..5d619a376 --- /dev/null +++ b/dist/helpers/tezos.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/helpers/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAML,MAAM,EACN,YAAY,EAIZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAC1C,WAAW,EACX,YAAY,EACZ,MAAM,CACP,GACC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAC3C,YAAY,GACZ,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GACrD,eAAe,GACf,cAAc,CAAC,YAAY,CAAC,GAC5B,aAAa,GACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG;IAC1E,mBAAmB,CACjB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,GAAG;IACF,gBAAgB,CACd,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,aAAa,GACjB,cAAc,CAAC,YAAY,CAAC,GAC5B,WAAW,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA2MpC"} \ No newline at end of file diff --git a/dist/helpers/tezos.js b/dist/helpers/tezos.js new file mode 100644 index 000000000..1d541db5f --- /dev/null +++ b/dist/helpers/tezos.js @@ -0,0 +1,230 @@ +"use strict"; +var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if ( + !desc || + ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k]; + }, + }; + } + Object.defineProperty(o, k2, desc); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); +var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } + : function (o, v) { + o["default"] = v; + }); +var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tezosHelperFactory = void 0; +const __1 = require(".."); +const utils = __importStar(require("@taquito/utils")); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +async function tezosHelperFactory({ + Tezos, + notifier, + xpnftAddress, + bridgeAddress, + validators, + feeMargin, +}) { + const estimateGas = (validators, baseprice) => { + return new bignumber_js_1.default(baseprice * (validators.length + 1)); + }; + async function withContract(sender, contract, cb, params) { + if ("publicKeyHash" in sender) { + Tezos.setSignerProvider(sender); + const contractI = await Tezos.contract.at(contract); + const res = cb(contractI); + const tx = await res.send(params); + await tx.confirmation(); + return tx.hash; + } else { + Tezos.setWalletProvider(sender); + const contractI = await Tezos.wallet.at(contract); + const res = cb(contractI); + const estim = await Tezos.estimate + .transfer(res.toTransferParams(params)) + .catch(() => ({ storageLimit: 0 })); + if (params) { + if (!params.storageLimit) params.storageLimit = estim.storageLimit; + } else { + params = { storageLimit: estim.storageLimit }; + } + const tx = await res.send(params); + await tx.confirmation(); + return tx.opHash; + } + } + function withBridge(sender, cb, params) { + return withContract(sender, bridgeAddress, cb, params); + } + function getAddress(sender) { + if ("publicKeyHash" in sender) { + return sender.publicKeyHash(); + } else { + return sender.getPKH(); + } + } + async function isApprovedForMinter(nft, sender) { + const owner = await getAddress(sender); + const contract = await Tezos.contract.at(nft.native.contract); + const storage = await contract.storage(); + const storageOperator = storage.operator || storage.operators; + const args = storage.operator + ? [bridgeAddress, nft.native.token_id, owner] + : { + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }; + const op = await storageOperator?.get(args); + return op != undefined; + } + async function notifyValidator(hash) { + await notifier.notifyTezos(hash); + } + async function preTransfer(signer, nft) { + if (await isApprovedForMinter(nft, signer)) { + return; + } + const owner = await getAddress(signer); + return await withContract(signer, nft.native.contract, (contract) => + contract.methods.update_operators([ + { + add_operator: { + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }, + }, + ]) + ); + } + return { + XpNft: xpnftAddress, + async transferNftToForeign(sender, chain, to, nft, fee, mw) { + // await preTransfer(sender, nft); + const hash = await withBridge( + sender, + (bridge) => + bridge.methods.freeze_fa2( + chain, + nft.collectionIdent, + mw, + to, + parseInt(nft.native.token_id) + ), + { amount: fee.toNumber() / 1e6 } + ); + notifyValidator(hash); + return hash; + }, + async balance(address) { + return new bignumber_js_1.default( + (await Tezos.tz.getBalance(address)).toString(10) + ); + }, + async unfreezeWrappedNft(sender, to, nft, fee, nonce) { + const hash = await withBridge( + sender, + (bridge) => { + return bridge.methods.withdraw_nft( + nft.native.contract, + nonce, + to, + parseInt(nft.native.token_id) + ); + }, + { amount: fee.toNumber() / 1e6 } + ); + notifyValidator(hash); + return hash; + }, + async mintNft(signer, { identifier, attrs, contract, uri }) { + return await withContract(signer, xpnftAddress, (xpnft) => + xpnft.methods.mint({ + token_id: identifier, + address: contract, + metadata: { + uri: uri, + attrs, + }, + amount: 1, + }) + ); + }, + async validateAddress(adr) { + return Promise.resolve( + utils.validateAddress(adr) === utils.ValidationResult.VALID + ); + }, + getNonce() { + return __1.Chain.TEZOS; + }, + getFeeMargin() { + return feeMargin; + }, + async estimateValidateTransferNft() { + return estimateGas(validators, 1.2e5); + }, + async estimateValidateUnfreezeNft() { + return estimateGas(validators, 1.2e4); + }, + preTransfer, + isApprovedForMinter, + approveForMinter: (nft, sender) => preTransfer(sender, nft), + async isNftWhitelisted(nft) { + const bridge = await Tezos.contract.at(bridgeAddress); + const storage = await bridge.storage(); + const whitelisted = await storage.nft_whitelist.get(nft.native.contract); + return whitelisted == 2; + }, + async getTokenURI(contract, tokenId) { + if (utils.validateAddress(contract) && tokenId) { + const _contract = await Tezos.contract.at(contract); + const storage = await _contract.storage(); + const tokenStorage = await storage.token_metadata.get(tokenId); + if (tokenStorage) { + return utils.bytes2Char(tokenStorage.token_info?.get("")); + } + } + return ""; + }, + }; +} +exports.tezosHelperFactory = tezosHelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV6b3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90ZXpvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBCQVdZO0FBZVosc0RBQXdDO0FBQ3hDLGdFQUFxQztBQTJEOUIsS0FBSyxVQUFVLGtCQUFrQixDQUFDLEVBQ3ZDLEtBQUssRUFDTCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1YsU0FBUyxHQUNHO0lBQ1osTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFvQixFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUM5RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0lBRUYsS0FBSyxVQUFVLFlBQVksQ0FDekIsTUFBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsRUFFOEMsRUFDOUMsTUFBNEI7UUFFNUIsSUFBSSxlQUFlLElBQUksTUFBTSxFQUFFO1lBQzdCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVoQyxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXBELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQixNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsT0FBUSxFQUEyQixDQUFDLElBQUksQ0FBQztTQUMxQzthQUFNO1lBQ0wsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FBSyxDQUFDLE1B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 diff --git a/dist/helpers/tezos.ts b/dist/helpers/tezos.ts new file mode 100644 index 000000000..ab485c4fe --- /dev/null +++ b/dist/helpers/tezos.ts @@ -0,0 +1,297 @@ +import { + BalanceCheck, + Chain, + ChainNonceGet, + EstimateTxFees, + MintNft, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from ".."; +import { + BigMapAbstraction, + ContractAbstraction, + ContractMethod, + ContractProvider, + SendParams, + Signer, + TezosToolkit, + TransactionOperation, + TransactionWalletOperation, + Wallet, + WalletProvider, +} from "@taquito/taquito"; + +import * as utils from "@taquito/utils"; +import BigNumber from "bignumber.js"; +import { EvNotifier } from "../notifier"; +import { + FeeMargins, + GetFeeMargins, + WhitelistCheck, + GetTokenURI, +} from "./chain"; + +type TezosSigner = WalletProvider | Signer; + +export type TezosNftInfo = { + contract: string; + token_id: string; +}; + +type TezosMintArgs = { + identifier: string; + attrs: string; + contract: string; + uri: string; +}; + +export type TezosHelper = TransferNftForeign< + TezosSigner, + TezosNftInfo, + string +> & + MintNft & + BalanceCheck & + UnfreezeForeignNft & + ValidateAddress & + EstimateTxFees & + ChainNonceGet & + Pick, "preTransfer"> & { + isApprovedForMinter( + nft: NftInfo, + signer: TezosSigner + ): Promise; + } & { + approveForMinter( + address: NftInfo, + sender: TezosSigner + ): Promise; + } & { + XpNft: string; + } & GetFeeMargins & + WhitelistCheck & + GetTokenURI; + +export type TezosParams = { + Tezos: TezosToolkit; + notifier: EvNotifier; + xpnftAddress: string; + bridgeAddress: string; + validators: string[]; + feeMargin: FeeMargins; +}; + +export async function tezosHelperFactory({ + Tezos, + notifier, + xpnftAddress, + bridgeAddress, + validators, + feeMargin, +}: TezosParams): Promise { + const estimateGas = (validators: string[], baseprice: number) => { + return new BigNumber(baseprice * (validators.length + 1)); + }; + + async function withContract( + sender: TezosSigner, + contract: string, + cb: ( + contract: ContractAbstraction + ) => ContractMethod, + params?: Partial + ) { + if ("publicKeyHash" in sender) { + Tezos.setSignerProvider(sender); + + const contractI = await Tezos.contract.at(contract); + + const res = cb(contractI); + const tx = await res.send(params); + await tx.confirmation(); + return (tx as TransactionOperation).hash; + } else { + Tezos.setWalletProvider(sender); + const contractI = await Tezos.wallet.at(contract); + + const res = cb(contractI); + + const estim = await Tezos.estimate + .transfer(res.toTransferParams(params)) + .catch(() => ({ storageLimit: 0 })); + + if (params) { + if (!params.storageLimit) params.storageLimit = estim.storageLimit; + } else { + params = { storageLimit: estim.storageLimit }; + } + const tx = await res.send(params); + await tx.confirmation(); + return (tx as TransactionWalletOperation).opHash; + } + } + + function withBridge( + sender: TezosSigner, + cb: ( + bridge: ContractAbstraction + ) => ContractMethod, + params?: Partial + ) { + return withContract(sender, bridgeAddress, cb, params); + } + + function getAddress(sender: TezosSigner) { + if ("publicKeyHash" in sender) { + return sender.publicKeyHash(); + } else { + return sender.getPKH(); + } + } + + async function isApprovedForMinter( + nft: NftInfo, + sender: TezosSigner + ) { + const owner = await getAddress(sender); + const contract = await Tezos.contract.at(nft.native.contract); + const storage = await contract.storage<{ + operators?: BigMapAbstraction; + operator?: BigMapAbstraction; + }>(); + + const storageOperator = storage.operator || storage.operators; + const args = storage.operator + ? [bridgeAddress, nft.native.token_id, owner] + : { + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }; + + const op = await storageOperator?.get(args); + + return op != undefined; + } + + async function notifyValidator(hash: string): Promise { + await notifier.notifyTezos(hash); + } + + async function preTransfer(signer: TezosSigner, nft: NftInfo) { + if (await isApprovedForMinter(nft, signer)) { + return; + } + const owner = await getAddress(signer); + return await withContract(signer, nft.native.contract, (contract) => + contract.methods.update_operators([ + { + add_operator: { + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }, + }, + ]) + ); + } + + return { + XpNft: xpnftAddress, + async transferNftToForeign(sender, chain, to, nft, fee, mw) { + // await preTransfer(sender, nft); + const hash = await withBridge( + sender, + (bridge) => + bridge.methods.freeze_fa2( + chain, + nft.collectionIdent, + mw, + to, + parseInt(nft.native.token_id) + ), + { amount: fee.toNumber() / 1e6 } + ); + + notifyValidator(hash); + return hash; + }, + async balance(address) { + return new BigNumber((await Tezos.tz.getBalance(address)).toString(10)); + }, + async unfreezeWrappedNft(sender, to, nft, fee, nonce) { + const hash = await withBridge( + sender, + (bridge) => { + return bridge.methods.withdraw_nft( + nft.native.contract, + nonce, + to, + parseInt(nft.native.token_id) + ); + }, + { amount: fee.toNumber() / 1e6 } + ); + + notifyValidator(hash); + return hash; + }, + async mintNft(signer, { identifier, attrs, contract, uri }) { + return await withContract(signer, xpnftAddress, (xpnft) => + xpnft.methods.mint({ + token_id: identifier, + address: contract, + metadata: { + uri: uri, + attrs, + }, + amount: 1, + }) + ); + }, + async validateAddress(adr) { + return Promise.resolve( + utils.validateAddress(adr) === utils.ValidationResult.VALID + ); + }, + getNonce() { + return Chain.TEZOS; + }, + getFeeMargin() { + return feeMargin; + }, + async estimateValidateTransferNft() { + return estimateGas(validators, 1.2e5); + }, + async estimateValidateUnfreezeNft() { + return estimateGas(validators, 1.2e4); + }, + preTransfer, + isApprovedForMinter, + approveForMinter: (nft, sender) => preTransfer(sender, nft), + async isNftWhitelisted(nft) { + const bridge = await Tezos.contract.at(bridgeAddress); + const storage = await bridge.storage<{ + nft_whitelist: BigMapAbstraction; + }>(); + const whitelisted = await storage.nft_whitelist.get(nft.native.contract); + + return whitelisted == 2; + }, + async getTokenURI(contract, tokenId) { + if (utils.validateAddress(contract) && tokenId) { + const _contract = await Tezos.contract.at(contract); + + const storage = (await _contract.storage()) as any; + const tokenStorage = await storage.token_metadata.get(tokenId); + if (tokenStorage) { + return utils.bytes2Char(tokenStorage.token_info?.get("")); + } + } + return ""; + }, + }; +} diff --git a/dist/helpers/ton-bridge.d.ts b/dist/helpers/ton-bridge.d.ts new file mode 100644 index 000000000..5d0472ab2 --- /dev/null +++ b/dist/helpers/ton-bridge.d.ts @@ -0,0 +1,48 @@ +import BN from "bn.js"; +import { ContractMethods, ContractOptions } from "tonweb"; +import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; +declare const Contract: typeof import("tonweb/dist/types/contract/contract").Contract; +declare type SeqnoMethod = () => SeqnoMethodResult; +interface SeqnoMethodResult { + call: () => Promise; +} +interface BridgeOptions extends ContractOptions { + burner: string; +} +interface BridgeMethods extends ContractMethods { + seqno: SeqnoMethod; + getPublicKey: () => Promise; + isInitialized: () => Promise; + getActionId: () => Promise; + getWhitelist: () => Promise; +} +interface WithdrawParams { + chainNonce: number; + to: Uint8Array; + txFees: BN; +} +interface FreezeParams { + chainNonce: number; + to: Uint8Array; + mintWith: Uint8Array; + amount?: number | BN; +} +export declare class BridgeContract extends Contract< + BridgeOptions, + BridgeMethods +> { + constructor(provider: HttpProvider, options: BridgeOptions); + serializeUri(uri: string): Uint8Array; + createWithdrawBody( + params: WithdrawParams + ): Promise; + createFreezeBody( + params: FreezeParams + ): Promise; + getPublicKey: () => Promise; + isInitialized: () => Promise; + getActionId: () => Promise; + getWhitelist: () => Promise; +} +export {}; +//# sourceMappingURL=ton-bridge.d.ts.map diff --git a/dist/helpers/ton-bridge.d.ts.map b/dist/helpers/ton-bridge.d.ts.map new file mode 100644 index 000000000..1a1244102 --- /dev/null +++ b/dist/helpers/ton-bridge.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ton-bridge.d.ts","sourceRoot":"","sources":["../../src/helpers/ton-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAEzE,QAAA,MAAM,QAAQ,+DAAkB,CAAC;AAGjC,OAAO,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC;AAEnD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,UAAU,aAAc,SAAQ,eAAe;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,UAAU,aAAc,SAAQ,eAAe;IAC7C,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,YAAY,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;CACjC;AAED,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,EAAE,CAAC;CACZ;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;CACtB;AAED,qBAAa,cAAe,SAAQ,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;gBAC5D,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa;IAS1D,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAI/B,kBAAkB,CAAC,MAAM,EAAE,cAAc;IAoBzC,gBAAgB,CAAC,MAAM,EAAE,YAAY;IAmB3C,YAAY,qBAOV;IAEF,aAAa,qBAOX;IAEF,WAAW,qBAOT;IAEF,YAAY,qBAOV;CACH"} \ No newline at end of file diff --git a/dist/helpers/ton-bridge.js b/dist/helpers/ton-bridge.js new file mode 100644 index 000000000..cc1d0c5ca --- /dev/null +++ b/dist/helpers/ton-bridge.js @@ -0,0 +1,92 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BridgeContract = void 0; +const bn_js_1 = __importDefault(require("bn.js")); +const tonweb_1 = __importDefault(require("tonweb")); +const Contract = tonweb_1.default.Contract; +const Cell = tonweb_1.default.boc.Cell; +class BridgeContract extends Contract { + constructor(provider, options) { + super(provider, options); + this.getPublicKey = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_public_key" + ); + return result; + }; + this.isInitialized = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "is_initialized" + ); + return result; + }; + this.getActionId = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_action_id" + ); + return result; + }; + this.getWhitelist = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_whitelist" + ); + return result; + }; + this.methods.getPublicKey = this.getPublicKey; + this.methods.isInitialized = this.isInitialized; + this.methods.getActionId = this.getActionId; + this.methods.getWhitelist = this.getWhitelist; + } + serializeUri(uri) { + return new TextEncoder().encode(encodeURI(uri)); + } + async createWithdrawBody(params) { + const cell = new Cell(); + cell.bits.writeUint(0x5fcc3d14, 32); // transfer op + cell.bits.writeUint(0, 64); + cell.bits.writeAddress(new tonweb_1.default.Address(this.options.burner)); // target address + cell.bits.writeAddress(await this.getAddress()); // bridge as response address + cell.bits.writeBit(false); // null custom_payload + cell.bits.writeCoins(new bn_js_1.default(0)); // forward amount + cell.bits.writeBit(true); // forward_payload in this slice, not separate cell + const msg = new Cell(); + msg.bits.writeUint(params.chainNonce, 8); + msg.bits.writeUint(params.to.length, 16); + msg.bits.writeBytes(params.to); + msg.bits.writeBytes(new Uint8Array(12)); + cell.refs[0] = msg; + return cell; + } + async createFreezeBody(params) { + const cell = new Cell(); + cell.bits.writeUint(0x5fcc3d14, 32); // transfer op + cell.bits.writeUint(0, 64); + cell.bits.writeAddress(await this.getAddress()); // target address + cell.bits.writeAddress(undefined); // undefined as response address + cell.bits.writeBit(false); // null custom_payload + cell.bits.writeCoins(params.amount || new bn_js_1.default(0)); + cell.bits.writeBit(false); // forward_payload in this slice, not separate cell + const payload = new Cell(); + payload.bits.writeUint(params.chainNonce, 8); + payload.bits.writeUint(params.to.length, 16); + payload.bits.writeBytes(params.to); + payload.bits.writeBytes(params.mintWith); + cell.refs[0] = payload; + return cell; + } +} +exports.BridgeContract = BridgeContract; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLWJyaWRnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Rvbi1icmlkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQXVCO0FBQ3ZCLG9EQUFrRTtBQUdsRSxNQUFNLFFBQVEsR0FBRyxnQkFBTSxDQUFDLFFBQVEsQ0FBQztBQUNqQyxNQUFNLElBQUksR0FBRyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFnQzdCLE1BQWEsY0FBZSxTQUFRLFFBQXNDO0lBQ3hFLFlBQVksUUFBc0IsRUFBRSxPQUFzQjtRQUN4RCxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBbUQzQixpQkFBWSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3hCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ3RDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsZ0JBQWdCLENBQ2pCLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ3RDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsZ0JBQWdCLENBQ2pCLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRixnQkFBVyxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFD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 diff --git a/dist/helpers/ton-bridge.ts b/dist/helpers/ton-bridge.ts new file mode 100644 index 000000000..53cfdb783 --- /dev/null +++ b/dist/helpers/ton-bridge.ts @@ -0,0 +1,126 @@ +import BN from "bn.js"; +import TonWeb, { ContractMethods, ContractOptions } from "tonweb"; +import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; + +const Contract = TonWeb.Contract; +const Cell = TonWeb.boc.Cell; + +declare type SeqnoMethod = () => SeqnoMethodResult; + +interface SeqnoMethodResult { + call: () => Promise; +} + +interface BridgeOptions extends ContractOptions { + burner: string; +} +interface BridgeMethods extends ContractMethods { + seqno: SeqnoMethod; + getPublicKey: () => Promise; + isInitialized: () => Promise; + getActionId: () => Promise; + getWhitelist: () => Promise; +} + +interface WithdrawParams { + chainNonce: number; + to: Uint8Array; + txFees: BN; +} + +interface FreezeParams { + chainNonce: number; + to: Uint8Array; + mintWith: Uint8Array; + amount?: number | BN; +} + +export class BridgeContract extends Contract { + constructor(provider: HttpProvider, options: BridgeOptions) { + super(provider, options); + + this.methods.getPublicKey = this.getPublicKey; + this.methods.isInitialized = this.isInitialized; + this.methods.getActionId = this.getActionId; + this.methods.getWhitelist = this.getWhitelist; + } + + serializeUri(uri: string): Uint8Array { + return new TextEncoder().encode(encodeURI(uri)); + } + + async createWithdrawBody(params: WithdrawParams) { + const cell = new Cell(); + cell.bits.writeUint(0x5fcc3d14, 32); // transfer op + cell.bits.writeUint(0, 64); + cell.bits.writeAddress(new TonWeb.Address(this.options.burner)); // target address + cell.bits.writeAddress(await this.getAddress()); // bridge as response address + cell.bits.writeBit(false); // null custom_payload + cell.bits.writeCoins(new BN(0)); // forward amount + cell.bits.writeBit(true); // forward_payload in this slice, not separate cell + + const msg = new Cell(); + msg.bits.writeUint(params.chainNonce, 8); + msg.bits.writeUint(params.to.length, 16); + msg.bits.writeBytes(params.to); + msg.bits.writeBytes(new Uint8Array(12)); + cell.refs[0] = msg; + + return cell; + } + + async createFreezeBody(params: FreezeParams) { + const cell = new Cell(); + cell.bits.writeUint(0x5fcc3d14, 32); // transfer op + cell.bits.writeUint(0, 64); + cell.bits.writeAddress(await this.getAddress()); // target address + cell.bits.writeAddress(undefined); // undefined as response address + cell.bits.writeBit(false); // null custom_payload + cell.bits.writeCoins(params.amount || new BN(0)); + cell.bits.writeBit(false); // forward_payload in this slice, not separate cell + + const payload = new Cell(); + payload.bits.writeUint(params.chainNonce, 8); + payload.bits.writeUint(params.to.length, 16); + payload.bits.writeBytes(params.to); + payload.bits.writeBytes(params.mintWith); + cell.refs[0] = payload; + return cell; + } + + getPublicKey = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_public_key" + ); + return result; + }; + + isInitialized = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "is_initialized" + ); + return result; + }; + + getActionId = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_action_id" + ); + return result; + }; + + getWhitelist = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_whitelist" + ); + return result; + }; +} diff --git a/dist/helpers/ton.d.ts b/dist/helpers/ton.d.ts new file mode 100644 index 000000000..e0cc2917e --- /dev/null +++ b/dist/helpers/ton.d.ts @@ -0,0 +1,111 @@ +import TonWeb from "tonweb"; +import TonWebMnemonic from "tonweb-mnemonic"; +import type { Cell } from "tonweb/dist/types/boc/cell"; +import { EvNotifier } from "../notifier"; +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + BalanceCheck, +} from "./chain"; +import { PreTransfer } from ".."; +import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; +export type TonSigner = { + wallet?: TonWallet; + accIdx: number; +}; +export type TonWalletProvider = { + isTonWallet: boolean; + send(method: string, params?: any[]): Promise; + on(eventName: string, handler: (...data: any[]) => any): void; +}; +export type TonArgs = { + wallet: TonhubConnector & TonWalletProvider & Function; + config: { + seed?: string; + appPublicKey?: string; + address?: string; + [x: string]: any; + }; +}; +export type TonNft = { + nftItemAddr: string; +}; +export type TonHelper = ChainNonceGet & + BalanceCheck & + PreTransfer & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + XpNft: string; + } & { + tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; + tonHubWrapper: (args: TonArgs) => TonSigner; + tonWalletWrapper: (args: TonArgs) => TonSigner; + tonKeeperWrapper: (args: TonArgs) => TonSigner; + } & GetFeeMargins; +export type TonParams = { + tonweb: TonWeb; + notifier: EvNotifier; + bridgeAddr: string; + burnerAddr: string; + xpnftAddr: string; + feeMargin: FeeMargins; +}; +type MethodMap = { + ton_requestAccounts: [undefined, string]; + ton_sendTransaction: [ + { + value: string; + to: string; + data: Cell; + }, + unknown + ]; + ton_getBalance: [undefined, string]; +}; +type ResponseUnionType = boolean & + TonhubTransactionResponse & { + hash: string; + }; +type TonWallet = { + send( + method: M, + params: MethodMap[M][0] + ): Promise; + handleResponse(res: ResponseUnionType): Promise; +}; +export declare function tonHelper(args: TonParams): Promise; +export {}; +/** + * + * const ton = new TonWeb( + new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + }) + ); + + const trxs = await ton.provider.getTransactions( + "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", + 20 + ); + + console.log(trxs); + + let data = new Cell(); + console.log(data); + const dict = Cell.fromBoc( + Buffer.from( + "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", + "base64" + ) + )[0].hash(); + console.log("Hash: " + dict.toString("base64")); + */ +//# sourceMappingURL=ton.d.ts.map diff --git a/dist/helpers/ton.d.ts.map b/dist/helpers/ton.d.ts.map new file mode 100644 index 000000000..c2740d36e --- /dev/null +++ b/dist/helpers/ton.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/ton.js b/dist/helpers/ton.js new file mode 100644 index 000000000..d526a3911 --- /dev/null +++ b/dist/helpers/ton.js @@ -0,0 +1,327 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tonHelper = void 0; +const anchor_1 = require("@project-serum/anchor"); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const tonweb_1 = __importDefault(require("tonweb")); +const ton_1 = require("ton"); +const consts_1 = require("../consts"); +const ton_bridge_1 = require("./ton-bridge"); +const emitter_1 = require("../emitter"); +const js_base64_1 = require("js-base64"); +const axios_1 = __importDefault(require("ton/node_modules/axios")); +async function tonHelper(args) { + const bridge = new ton_bridge_1.BridgeContract(args.tonweb.provider, { + address: args.bridgeAddr, + burner: args.burnerAddr, + }); + const ton = args.tonweb; + ton.provider.sendBoc = (b) => + ton.provider.send("sendBocReturnHash", { boc: b }); + async function waitTonTrx(exBodyMsg, value, address, msgType) { + console.log(exBodyMsg, "TON:exBodyMsg"); + let body = ""; + let stop = false; + let fastResolve; + const setStop = () => { + stop = true; + emitter_1.Emitter?.removeEventListener("cancel tonKeeper", setStop); + fastResolve(true); + throw new Error("User has declined transaction"); + }; + const noTrx = setTimeout(() => { + stop = true; + throw new Error("waitTonTrx timeout"); + }, 60 * 1000 * 20); + emitter_1.Emitter?.addEventListener("cancel tonKeeper", setStop); + while (!body) { + console.log("TON:tring to find the trx..."); + await new Promise((r) => { + fastResolve = r; + setTimeout(r, 10 * 1000); + }); + if (stop) return; + //get last 20 trx of address + const trxs = await ton.provider.getTransactions(address, 20); + //find body of the trx + body = trxs.find((trx) => { + const messages = trx[msgType]; + let message = ""; + let msgVal = ""; + message = Array.isArray(messages) + ? messages?.at(0)?.msg_data?.body + : messages?.msg_data?.body; + msgVal = Array.isArray(trx["out_msgs"]) + ? trx.out_msgs?.at(0)?.value + : trx["out_msgs"].value; + trx.utime * 1000 >= +new Date(Date.now() - 1000 * 60 * 5) && + console.log(trx.utime, "trx happend no more than 5 minutes ago"); + return message === exBodyMsg && msgVal === value; + })?.data; + } + clearTimeout(noTrx); + const dict = ton_1.Cell.fromBoc(Buffer.from(body, "base64"))[0].hash(); + const exHash = dict.toString("base64"); + console.log(exHash, "exHash"); + let trxData = undefined; + while (trxData === undefined) { + await new Promise((r) => setTimeout(r, 6 * 1000)); + const res = await (0, axios_1.default)( + `https://toncenter.com/api/index/getTransactionByHash?tx_hash=${encodeURIComponent( + exHash + )}&include_msg_body=true` + ).catch(() => undefined); + trxData = res?.data; + } + return trxData[0]["in_msg"].hash; + } + return { + preTransfer: () => Promise.resolve(true), + preUnfreeze: () => Promise.resolve(true), + getNonce: () => consts_1.Chain.TON, + XpNft: args.xpnftAddr, + async balance(address) { + return new bignumber_js_1.default(await ton.getBalance(address)); + }, + async estimateValidateTransferNft() { + return new bignumber_js_1.default(0); // TODO + }, + async estimateValidateUnfreezeNft() { + return new bignumber_js_1.default(0); // TODO + }, + async validateAddress(adr) { + return tonweb_1.default.Address.isValid(adr); + }, + getFeeMargin() { + return args.feeMargin; + }, + async transferNftToForeign(signer, chainNonce, to, nft, txFees, mintWith) { + const rSigner = signer.wallet || ton; + const txFeesFull = new anchor_1.BN(txFees.toString(10)).add( + tonweb_1.default.utils.toNano((Math.random() * 0.01).toFixed(7)) + ); + const nftFee = tonweb_1.default.utils.toNano("0.07"); + const payload = await bridge.createFreezeBody({ + amount: txFeesFull.sub(nftFee), + to: Buffer.from(to), + chainNonce, + mintWith: Buffer.from(mintWith), + }); + console.log(txFeesFull.toString(10), "val"); + console.log("TON:transferNftToForeign"); + console.log(nft.native.nftItemAddr); + const res = await rSigner.send("ton_sendTransaction", { + value: txFeesFull.toString(10), + to: nft.native.nftItemAddr, + data: payload, + }); + const hash = await rSigner.handleResponse(res); + await args.notifier.notifyTon(hash); + return hash; + }, + async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { + const rSigner = signer.wallet || ton; + const value = new anchor_1.BN(_txFees.toString(10)).add( + tonweb_1.default.utils.toNano((Math.random() * 0.01).toFixed(7)) + ); + const nftFee = tonweb_1.default.utils.toNano("0.05"); + const payload = await bridge.createWithdrawBody({ + to: new Uint8Array(Buffer.from(to)), + chainNonce: parseInt(chainNonce), + txFees: value.sub(nftFee), + }); + console.log(value.toString(10), "v"); + console.log(nft.native.nftItemAddr); + console.log("TON:unfreezeWrappedNft"); + const res = await rSigner.send("ton_sendTransaction", { + value: new anchor_1.BN(value).toString(10), + to: nft.native.nftItemAddr, + data: payload, + }); + const hash = await rSigner.handleResponse(res); + await args.notifier.notifyTon(hash); + return hash; + }, + tonKeeperWrapper(args) { + console.log(args, "args"); + let payload = ""; + let value = ""; + const tonHub = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + payload = (0, js_base64_1.fromUint8Array)( + await params.data.toBoc(false) + ); + value = params.value; + return args.wallet.send( + `https://app.tonkeeper.com/transfer/${ + params.to + }?amount=${new anchor_1.BN(value).toString( + 10 + )}&bin=${encodeURIComponent(payload)}&open=1` + ); + default: + return null; + } + }, + async handleResponse(res) { + console.log(res); + return await waitTonTrx( + payload, + value, + args.config.address, + "out_msgs" + ); + }, + }; + return { + wallet: tonHub, + accIdx: 0, + }; + }, + tonWalletWrapper(args) { + let payload = ""; + let value = ""; + const tonHub = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + value = params.value; + payload = (0, js_base64_1.fromUint8Array)( + await params.data.toBoc(false) + ); + console.log(payload, "payload"); + return await args.wallet.send("ton_sendTransaction", [ + { + to: params.to, + value, + dataType: "boc", + data: payload, + }, + ]); + default: + return null; + } + }, + async handleResponse(res) { + return ( + res && + (await waitTonTrx(payload, value, args.config.address, "out_msgs")) + ); + }, + }; + return { + wallet: tonHub, + accIdx: 0, + }; + }, + tonHubWrapper(args) { + let value = ""; + const tonHub = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + value = new anchor_1.BN(params.value).toString(); + return await args.wallet.requestTransaction({ + seed: args.config.seed, + appPublicKey: args.config.appPublicKey, + to: params.to, + value, + timeout: 5 * 60 * 1000, + text: `ton_sendTransaction to ${params.to}`, + payload: (0, js_base64_1.fromUint8Array)( + await params.data.toBoc(false) + ), + }); + default: + return null; + } + }, + async handleResponse(res) { + if (res.type === "success" && res.response != undefined) { + return await waitTonTrx( + res.response, + value, + args.config.address, + "in_msg" + ); + } else { + throw new Error(`TonHub:${res.type}`); + } + }, + }; + return { + wallet: tonHub, + accIdx: 0, + }; + }, + tonKpWrapper(kp) { + const wallet = new tonweb_1.default.Wallets.all.v3R2(ton.provider, { + publicKey: kp.publicKey, + wc: 0, + }); + const wWallet = { + async send(method, params) { + switch (method) { + case "ton_getBalance": + return await ton.getBalance(await wallet.getAddress()); + case "ton_requestAccounts": + return [await wallet.getAddress()]; + case "ton_sendTransaction": + return await wallet.methods + .transfer({ + secretKey: kp.secretKey, + toAddress: params.to, + amount: new anchor_1.BN(params.value), + seqno: (await wallet.methods.seqno().call()) || 0, + sendMode: 3, + payload: params.data, + }) + .send(); + } + }, + async handleResponse(res) { + return res.hash; + }, + }; + return { + wallet: wWallet, + accIdx: 0, + }; + }, + }; +} +exports.tonHelper = tonHelper; +/** + * + * const ton = new TonWeb( + new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + }) + ); + + const trxs = await ton.provider.getTransactions( + "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", + 20 + ); + + console.log(trxs); + + let data = new Cell(); + console.log(data); + const dict = Cell.fromBoc( + Buffer.from( + "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", + "base64" + ) + )[0].hash(); + console.log("Hash: " + dict.toString("base64")); + */ +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEyQztBQUMzQyxnRUFBcUM7QUFDckMsb0RBQTRCO0FBRzVCLDZCQUFvQztBQUNwQyxzQ0FBa0M7QUFlbEMsNkNBQThDO0FBRTlDLHdDQUFxQztBQUdyQyx5Q0FBMkM7QUFDM0MsbUVBQTJDO0FBb0VwQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQWU7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUM7SUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBOEI7UUFFOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLFdBQWdCLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixpQkFBTyxFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lB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 diff --git a/dist/helpers/ton.ts b/dist/helpers/ton.ts new file mode 100644 index 000000000..bcd5e1047 --- /dev/null +++ b/dist/helpers/ton.ts @@ -0,0 +1,446 @@ +import { BN } from "@project-serum/anchor"; +import BigNumber from "bignumber.js"; +import TonWeb from "tonweb"; +import TonWebMnemonic from "tonweb-mnemonic"; +import type { Cell } from "tonweb/dist/types/boc/cell"; +import { Cell as CellF } from "ton"; +import { Chain } from "../consts"; +import { EvNotifier } from "../notifier"; +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + BalanceCheck, +} from "./chain"; + +import { PreTransfer } from ".."; + +import { BridgeContract } from "./ton-bridge"; + +import { Emitter } from "../emitter"; + +import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; +import { fromUint8Array } from "js-base64"; +import axios from "ton/node_modules/axios"; + +export type TonSigner = { + wallet?: TonWallet; + accIdx: number; +}; + +export type TonWalletProvider = { + isTonWallet: boolean; + send(method: string, params?: any[]): Promise; + on(eventName: string, handler: (...data: any[]) => any): void; +}; + +export type TonArgs = { + wallet: TonhubConnector & TonWalletProvider & Function; + config: { + seed?: string; + appPublicKey?: string; + address?: string; + [x: string]: any; + }; +}; + +export type TonNft = { + nftItemAddr: string; +}; + +export type TonHelper = ChainNonceGet & + BalanceCheck & + PreTransfer & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { XpNft: string } & { + tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; + tonHubWrapper: (args: TonArgs) => TonSigner; + tonWalletWrapper: (args: TonArgs) => TonSigner; + tonKeeperWrapper: (args: TonArgs) => TonSigner; + } & GetFeeMargins; + +export type TonParams = { + tonweb: TonWeb; + notifier: EvNotifier; + bridgeAddr: string; + burnerAddr: string; + xpnftAddr: string; + feeMargin: FeeMargins; +}; + +type MethodMap = { + ton_requestAccounts: [undefined, string]; + ton_sendTransaction: [{ value: string; to: string; data: Cell }, unknown]; + ton_getBalance: [undefined, string]; +}; + +type ResponseUnionType = boolean & + TonhubTransactionResponse & { + hash: string; + }; + +type TonWallet = { + send( + method: M, + params: MethodMap[M][0] + ): Promise; + handleResponse(res: ResponseUnionType): Promise; +}; + +export async function tonHelper(args: TonParams): Promise { + const bridge = new BridgeContract(args.tonweb.provider, { + address: args.bridgeAddr, + burner: args.burnerAddr, + }); + + const ton = args.tonweb as TonWeb & TonWallet; + ton.provider.sendBoc = (b) => + ton.provider.send("sendBocReturnHash", { boc: b }); + + async function waitTonTrx( + exBodyMsg: string, + value: string, + address: string, + msgType: "in_msg" | "out_msgs" + ) { + console.log(exBodyMsg, "TON:exBodyMsg"); + + let body: string = ""; + let stop = false; + let fastResolve: any; + const setStop = () => { + stop = true; + Emitter?.removeEventListener("cancel tonKeeper", setStop); + fastResolve(true); + throw new Error("User has declined transaction"); + }; + const noTrx = setTimeout(() => { + stop = true; + throw new Error("waitTonTrx timeout"); + }, 60 * 1000 * 20); + + Emitter?.addEventListener("cancel tonKeeper", setStop); + + while (!body) { + console.log("TON:tring to find the trx..."); + await new Promise((r) => { + fastResolve = r; + setTimeout(r, 10 * 1000); + }); + if (stop) return; + //get last 20 trx of address + const trxs = await ton.provider.getTransactions(address, 20); + //find body of the trx + body = trxs.find((trx: any) => { + const messages = trx[msgType]; + let message: string = ""; + let msgVal: string = ""; + + message = Array.isArray(messages) + ? messages?.at(0)?.msg_data?.body + : messages?.msg_data?.body; + msgVal = Array.isArray(trx["out_msgs"]) + ? trx.out_msgs?.at(0)?.value + : trx["out_msgs"].value; + + trx.utime * 1000 >= +new Date(Date.now() - 1000 * 60 * 5) && + console.log(trx.utime, "trx happend no more than 5 minutes ago"); + + return message === exBodyMsg && msgVal === value; + })?.data; + } + + clearTimeout(noTrx); + + const dict = CellF.fromBoc(Buffer.from(body, "base64"))[0].hash(); + + const exHash = dict.toString("base64"); + console.log(exHash, "exHash"); + + let trxData: any = undefined; + + while (trxData === undefined) { + await new Promise((r) => setTimeout(r, 6 * 1000)); + const res = await axios( + `https://toncenter.com/api/index/getTransactionByHash?tx_hash=${encodeURIComponent( + exHash + )}&include_msg_body=true` + ).catch(() => undefined); + + trxData = res?.data; + } + + return trxData[0]["in_msg"].hash; + } + + return { + preTransfer: () => Promise.resolve(true), + preUnfreeze: () => Promise.resolve(true), + getNonce: () => Chain.TON, + XpNft: args.xpnftAddr, + async balance(address: string) { + return new BigNumber(await ton.getBalance(address)); + }, + async estimateValidateTransferNft() { + return new BigNumber(0); // TODO + }, + async estimateValidateUnfreezeNft() { + return new BigNumber(0); // TODO + }, + async validateAddress(adr) { + return TonWeb.Address.isValid(adr); + }, + getFeeMargin() { + return args.feeMargin; + }, + async transferNftToForeign(signer, chainNonce, to, nft, txFees, mintWith) { + const rSigner = signer.wallet || ton; + + const txFeesFull = new BN(txFees.toString(10)).add( + TonWeb.utils.toNano((Math.random() * 0.01).toFixed(7)) + ); + + const nftFee = TonWeb.utils.toNano("0.07"); + + const payload = await bridge.createFreezeBody({ + amount: txFeesFull.sub(nftFee), + to: Buffer.from(to), + chainNonce, + mintWith: Buffer.from(mintWith), + }); + + console.log(txFeesFull.toString(10), "val"); + + console.log("TON:transferNftToForeign"); + console.log(nft.native.nftItemAddr); + const res = (await rSigner.send("ton_sendTransaction", { + value: txFeesFull.toString(10), + to: nft.native.nftItemAddr, + data: payload, + })) as ResponseUnionType; + + const hash = await rSigner.handleResponse(res); + + await args.notifier.notifyTon(hash); + + return hash; + }, + async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { + const rSigner = signer.wallet || ton; + + const value = new BN(_txFees.toString(10)).add( + TonWeb.utils.toNano((Math.random() * 0.01).toFixed(7)) + ); + + const nftFee = TonWeb.utils.toNano("0.05"); + + const payload = await bridge.createWithdrawBody({ + to: new Uint8Array(Buffer.from(to)), + chainNonce: parseInt(chainNonce), + txFees: value.sub(nftFee), + }); + + console.log(value.toString(10), "v"); + console.log(nft.native.nftItemAddr); + console.log("TON:unfreezeWrappedNft"); + + const res = (await rSigner.send("ton_sendTransaction", { + value: new BN(value).toString(10), + to: nft.native.nftItemAddr, + data: payload, + })) as ResponseUnionType; + + const hash = await rSigner.handleResponse(res); + + await args.notifier.notifyTon(hash); + + return hash; + }, + tonKeeperWrapper(args: TonArgs) { + console.log(args, "args"); + let payload: string = ""; + let value = ""; + const tonHub: TonWallet = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + payload = fromUint8Array(await params!.data.toBoc(false)); + value = params!.value; + return args.wallet.send( + `https://app.tonkeeper.com/transfer/${ + params!.to + }?amount=${new BN(value).toString(10)}&bin=${encodeURIComponent( + payload + )}&open=1` + ); + + default: + return null; + } + }, + + async handleResponse(res: boolean) { + console.log(res); + return await waitTonTrx( + payload, + value, + args.config.address!, + "out_msgs" + ); + }, + }; + + return { + wallet: tonHub, + accIdx: 0, + }; + }, + tonWalletWrapper(args: TonArgs) { + let payload: string = ""; + let value = ""; + const tonHub: TonWallet = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + value = params!.value; + + payload = fromUint8Array(await params!.data.toBoc(false)); + console.log(payload, "payload"); + return await args.wallet.send("ton_sendTransaction", [ + { + to: params!.to, + value, + dataType: "boc", + data: payload, + }, + ]); + default: + return null; + } + }, + + async handleResponse(res: boolean) { + return ( + res && + (await waitTonTrx(payload, value, args.config.address!, "out_msgs")) + ); + }, + }; + + return { + wallet: tonHub, + accIdx: 0, + }; + }, + tonHubWrapper(args: TonArgs) { + let value = ""; + const tonHub: TonWallet = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + value = new BN(params!.value).toString(); + return await args.wallet.requestTransaction({ + seed: args.config.seed!, + appPublicKey: args.config.appPublicKey!, + to: params!.to, + value, + timeout: 5 * 60 * 1000, + text: `ton_sendTransaction to ${params!.to}`, + payload: fromUint8Array(await params!.data.toBoc(false)), + }); + + default: + return null; + } + }, + + async handleResponse(res: TonhubTransactionResponse) { + if (res.type === "success" && res.response != undefined) { + return await waitTonTrx( + res.response, + value, + args.config.address!, + "in_msg" + ); + } else { + throw new Error(`TonHub:${res.type}`); + } + }, + }; + + return { + wallet: tonHub, + accIdx: 0, + }; + }, + tonKpWrapper(kp: TonWebMnemonic.KeyPair): TonSigner { + const wallet = new TonWeb.Wallets.all.v3R2(ton.provider, { + publicKey: kp.publicKey, + wc: 0, + }); + + const wWallet: TonWallet = { + async send(method, params) { + switch (method) { + case "ton_getBalance": + return await ton.getBalance(await wallet.getAddress()); + case "ton_requestAccounts": + return [await wallet.getAddress()]; + case "ton_sendTransaction": + return await wallet.methods + .transfer({ + secretKey: kp.secretKey, + toAddress: params!.to, + amount: new BN(params!.value), + seqno: (await wallet.methods.seqno().call()) || 0, + sendMode: 3, + payload: params!.data, + }) + .send(); + } + }, + async handleResponse(res: { hash: string }) { + return res.hash; + }, + }; + + return { + wallet: wWallet, + accIdx: 0, + }; + }, + }; +} + +/** + * + * const ton = new TonWeb( + new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + }) + ); + + const trxs = await ton.provider.getTransactions( + "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", + 20 + ); + + console.log(trxs); + + let data = new Cell(); + console.log(data); + const dict = Cell.fromBoc( + Buffer.from( + "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", + "base64" + ) + )[0].hash(); + console.log("Hash: " + dict.toString("base64")); + */ diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts new file mode 100644 index 000000000..7a10600f1 --- /dev/null +++ b/dist/helpers/tron.d.ts @@ -0,0 +1,115 @@ +import { + BalanceCheck, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + MintNft, + TransferNftForeign, + UnfreezeForeignNft, +} from "./chain"; +import { TronWeb } from "tronweb"; +import { EthNftInfo, MintArgs } from "./web3"; +import { + Approve, + ExtractAction, + ExtractTxnStatus, + IsApproved, + PreTransfer, + PreTransferRawTxn, + ValidateAddress, + WhitelistCheck, + GetTokenURI, +} from ".."; +import { ChainNonceGet } from ".."; +import { EvNotifier } from "../notifier"; +type TronSender = string | undefined; +export type MinterRes = { + minter: string; + xpnft: string; + xpnft1155: string; + whitelist: string[]; +}; +export type BaseTronHelper = BalanceCheck & + MintNft & { + /** + * + * Deploy an ERC721 user minter smart contract + * + * @argument deployer deployer of this smart contract + * @returns Address of the deployed smart contract + */ + deployErc721(deployer: TronSender): Promise; + /** + * Deploy Minter Smart Contract + * + * @argument deployer deployer of the smart contract + * @argument frostGroupKey FROST SECP256k1 Group Key + * @argument xpnftPrefix XP Wrapped NFT backend with "/" suffix + * @argument xpnftPrefix1155 XP Wrapped NFT Backend in erc1155 format (with {id}) + * @argument whitelist List of NFTs to whitelist + */ + deployMinter( + deployer: TronSender, + frostGroupKey: string, + xpnftPrefix: string, + xpnftPrefix1155: string, + whitelist?: string[] + ): Promise; + }; +export type TronHelper = BaseTronHelper & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ChainNonceGet & + Approve & + ValidateAddress & + IsApproved & + ExtractAction & + Pick, "preTransfer"> & + PreTransferRawTxn & + ExtractTxnStatus & + WhitelistCheck & { + XpNft: string; + XpNft1155: string; + } & GetFeeMargins & + GetTokenURI; +export declare function baseTronHelperFactory( + provider: TronWeb +): Promise; +export interface TronParams { + provider: TronWeb; + notifier: EvNotifier; + minter_addr: string; + erc721_addr: string; + erc1155_addr: string; + validators: string[]; + feeMargin: FeeMargins; +} +export interface TronRawTxn { + readonly visible: boolean; + readonly txID: string; + readonly raw_data: { + readonly ref_block_bytes: string; + readonly ref_block_hash: string; + expiration: number; + readonly fee_limit: number; + readonly timestamp: number; + readonly contract: { + readonly parameter: { + readonly value: { + readonly data: string; + readonly owner_address: string; + readonly contract_address: string; + }; + readonly type_url: string; + }; + readonly type: string; + }[]; + }; + readonly raw_data_hex: string; +} +export declare function tronHelperFactory( + tronParams: TronParams +): Promise; +export {}; +//# sourceMappingURL=tron.d.ts.map diff --git a/dist/helpers/tron.d.ts.map b/dist/helpers/tron.d.ts.map new file mode 100644 index 000000000..a2f186c72 --- /dev/null +++ b/dist/helpers/tron.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/helpers/tron.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js new file mode 100644 index 000000000..135b4f822 --- /dev/null +++ b/dist/helpers/tron.js @@ -0,0 +1,300 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tronHelperFactory = exports.baseTronHelperFactory = void 0; +const bignumber_js_1 = require("bignumber.js"); +const ethers_1 = require("ethers"); +const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); +const __1 = require(".."); +async function baseTronHelperFactory(provider) { + const setSigner = (signer) => { + return signer && provider.setPrivateKey(signer); + }; + const deployErc721_i = async (deployer) => { + setSigner(deployer); + const contract = await provider.contract().new({ + abi: xpnet_web3_contracts_1.UserNftMinter__factory.abi, + bytecode: xpnet_web3_contracts_1.UserNftMinter__factory.bytecode, + feeLimit: 3000000000, + }); + return contract; + }; + const deployXpNft = async (deployer, nftPrefix) => { + setSigner(deployer); + const contract = await provider.contract().new({ + abi: xpnet_web3_contracts_1.XPNft__factory.abi, + bytecode: xpnet_web3_contracts_1.XPNft__factory.bytecode, + feeLimit: 3000000000, + parameters: ["XPNFT", "XPNFT", nftPrefix], + }); + return contract; + }; + const deployXpNft1155 = async (deployer, nftPrefix) => { + setSigner(deployer); + const contract = await provider.contract().new({ + abi: xpnet_web3_contracts_1.XPNft1155__factory.abi, + bytecode: xpnet_web3_contracts_1.XPNft1155__factory.bytecode, + feeLimit: 3000000000, + parameters: [nftPrefix], + }); + return contract; + }; + return { + async mintNft(owner, options) { + setSigner(owner); + const erc = await provider.contract( + xpnet_web3_contracts_1.UserNftMinter__factory.abi, + options.contract + ); + const res = await erc.mint(options.uri).send(); + return res; + }, + async balance(address) { + const balance = await provider.trx.getBalance(address); + return new bignumber_js_1.BigNumber(balance); + }, + deployErc721: async (owner) => + await deployErc721_i(owner).then((c) => c.address), + async deployMinter( + deployer, + frostGroupKey, + xpnftPrefix, + xpnftPrefix1155, + whitelist = [] + ) { + if (whitelist.length == 0) { + const unft = await deployErc721_i(deployer); + console.log(provider.address.fromHex(unft.address)); + whitelist.push(provider.address.fromHex(unft.address)); + } + const gk = Buffer.from(frostGroupKey, "hex"); + const gkx = ethers_1.BigNumber.from(`0x${gk.slice(1).toString("hex")}`); + // gkyp is either 0 or 1 + const gkyp = ethers_1.BigNumber.from(`0x${gk[0] & 1}`); + const erc721 = await deployXpNft(deployer, xpnftPrefix); + const erc1155 = await deployXpNft1155(deployer, xpnftPrefix1155); + const minter = await provider.contract().new({ + abi: xpnet_web3_contracts_1.Minter__factory.abi, + bytecode: xpnet_web3_contracts_1.Minter__factory.bytecode, + feeLimit: 6000000000, + parameters: [gkx, gkyp, whitelist], + }); + await erc721.transferOwnership(minter.address).send(); + await erc1155.transferOwnership(minter.address).send(); + const minterAddress = provider.address.fromHex(minter.address); + const erc721Address = provider.address.fromHex(erc721.address); + const erc1155Address = provider.address.fromHex(erc1155.address); + return { + minter: minterAddress, + xpnft: erc721Address, + xpnft1155: erc1155Address, + whitelist, + }; + }, + }; +} +exports.baseTronHelperFactory = baseTronHelperFactory; +async function tronHelperFactory(tronParams) { + const { provider, minter_addr } = tronParams; + // const station = new TronStation(provider); + const base = await baseTronHelperFactory(provider); + const minter = await provider.contract( + xpnet_web3_contracts_1.Minter__factory.abi, + minter_addr + ); + const setSigner = (signer) => { + return signer && provider.setPrivateKey(signer); + }; + async function notifyValidator(hash) { + await tronParams.notifier.notifyTron(hash); + } + async function extractAction(hash) { + await new Promise((r) => setTimeout(r, 10000)); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const getEv = async (retries = 0) => { + const res = await provider.getEventByTransactionID(hash); + if (res.length !== 0) { + return res; + } + if (retries > 15) { + throw Error("Couldn't fetch transaction after more than 15 retries!"); + } + await new Promise((r) => setTimeout(r, 3000)); + return getEv(retries + 1); + }; + const evs = await getEv(); + const ev = evs.find((e) => e?.contract == minter_addr); + const action_id = ev.result["actionId"].toString(); + return action_id; + } + // const _randomAction = () => + // Math.floor( + // Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000) + // ).toString(); + // async function _estimateGas( + // addrs: string[], + // func_sig: string, + // params: { type: string; value: any }[] + // ): Promise { + // let energy = 0; + // let bandwidth = 0; + // const nrgSun = await station.energy.burnedEnergy2Trx(1, { unit: "sun" }); + // const bandSun = 10; + // for (const [i, addr] of addrs.entries()) { + // const res = await provider.transactionBuilder.triggerConstantContract( + // minter.address, + // func_sig, + // {}, + // params, + // provider.address.toHex(addr) + // ); + // let nrg: number = res["energy_used"]; + // if (i == addrs.length - 1 && addrs.length != 1) nrg *= 2; + // energy += nrg; + // const tx_raw: string = res["transaction"]["raw_data_hex"]; + // bandwidth += tx_raw.length; + // } + // // Fee = energy * (sun per energy) + bandwidth * (sun per bandwidth) + // // bandwidth = raw tx byte length + // const fee = new BigNumber(energy).times(nrgSun).plus(bandwidth * bandSun); + // return fee; + // } + const isApprovedForMinter = async (id, _sender) => { + const erc = await provider.contract( + xpnet_web3_contracts_1.UserNftMinter__factory.abi, + id.native.contract + ); + const approvedAddress = await erc.getApproved(id.native.tokenId).call({ + from: tronParams.provider.defaultAddress.base58, + }); + if (approvedAddress === minter_addr) { + return true; + } + return false; + }; + const approveForMinter = async (id, sender) => { + await setSigner(sender); + const erc = await provider.contract( + xpnet_web3_contracts_1.UserNftMinter__factory.abi, + id.native.contract + ); + const isApproved = await isApprovedForMinter(id, sender); + if (isApproved) { + return undefined; + } + const txHash = await erc.approve(minter_addr, id.native.tokenId).send(); + return txHash; + }; + const addMinToExpirationTime = (txn, minutes) => { + const expiration = txn.raw_data.expiration; + const newExpiration = new Date(expiration).getTime() + minutes * 60000; + txn.raw_data.expiration = newExpiration; + return txn; + }; + return { + ...base, + extractAction, + XpNft1155: tronParams.erc721_addr, + XpNft: tronParams.erc721_addr, + getFeeMargin() { + return tronParams.feeMargin; + }, + approveForMinter, + preTransfer: (s, nft, _fee) => approveForMinter(nft, s), + async preTransferRawTxn(nft, address, _value) { + await setSigner(address); + const isApproved = await isApprovedForMinter(nft, address); + if (isApproved) { + return undefined; + } + const { transaction, result } = + await provider.transactionBuilder.triggerSmartContract( + nft.native.contract, + "approve(address,uint256)", + { + feeLimit: 1000000, + callValue: 0, + }, + [ + { + type: "address", + value: minter_addr, + }, + { + type: "uint256", + value: nft.native.tokenId, + }, + ], + address + ); + if (!result.result) { + throw new Error(result.toString()); + } + return addMinToExpirationTime(transaction, 15); + }, + isApprovedForMinter, + async extractTxnStatus(txnHash) { + const txn = await provider.trx.getConfirmedTransaction(txnHash); + const status = txn["ret"][0]["contractRet"]; + if (status === "SUCCESS") { + return __1.TransactionStatus.SUCCESS; + } else if (status === "FAIL") { + return __1.TransactionStatus.FAILURE; + } + return __1.TransactionStatus.PENDING; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + setSigner(sender); + const res = await minter + .withdrawNft(to, nonce, id.native.tokenId, id.native.contract) + .send({ callValue: ethers_1.BigNumber.from(txFees.toString(10)) }); + await notifyValidator(res); + return res; + }, + getNonce() { + return __1.Chain.TRON; + }, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { + setSigner(sender); + await approveForMinter(id, sender); + const txr = await minter + .freezeErc721( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith + ) + .send({ callValue: ethers_1.BigNumber.from(txFees.toString(10)) }); + await notifyValidator(txr); + return txr; + }, + async estimateValidateTransferNft(_to, _nftUri) { + return new bignumber_js_1.BigNumber(0); // TODO + }, + async estimateValidateUnfreezeNft(_to, _nft) { + return new bignumber_js_1.BigNumber(0); // TODO + }, + async validateAddress(adr) { + return provider.isAddress(adr); + }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract).call({ + from: tronParams.provider.defaultAddress.base58, + }); + }, + // const minter = await provider.contract(Minter__factory.abi, minter_addr); + async getTokenURI(contract, tokenId) { + return ""; + if (provider.isAddress(contract) && tokenId) { + const _contract = await provider.contract( + xpnet_web3_contracts_1.UserNftMinter__factory.abi, + contract + ); + return await _contract.tokenURI(+tokenId).call(); + } + return ""; + }, + }; +} +exports.tronHelperFactory = tronHelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQXlDO0FBZ0J6QyxtQ0FBNEM7QUFFNUMsK0RBSzhCO0FBQzlCLDBCQVlZO0FBZ0VMLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFrQixFQUFFLEVBQUU7UUFDdkMsT0FBTyxNQUFNLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsUUFBb0IsRUFBRSxFQUFFO1FBQ3BELFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLDZDQUFzQixDQUFDLEdBQUc7WUFDL0IsUUFBUSxFQUFFLDZDQUFzQixDQUFDLFFBQVE7WUFDekMsUUFBUSxFQUFFLFVBQVU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLFFBQW9CLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ3BFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLHFDQUFjLENBQUMsR0FBRztZQUN2QixRQUFRLEVBQUUscUNBQWMsQ0FBQyxRQUFRO1lBQ2pDLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1NBQzFDLENBQUMsQ0FBQztRQUVILE9BQU8s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 diff --git a/dist/helpers/tron.ts b/dist/helpers/tron.ts new file mode 100644 index 000000000..1cbe50f75 --- /dev/null +++ b/dist/helpers/tron.ts @@ -0,0 +1,483 @@ +import { BigNumber } from "bignumber.js"; +import { + BalanceCheck, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + MintNft, + TransferNftForeign, + UnfreezeForeignNft, +} from "./chain"; + +// @ts-expect-error no types cope +import { TronWeb } from "tronweb"; +// @ts-expect-error no types cope +import TronStation from "tronstation"; +import { EthNftInfo, MintArgs } from "./web3"; +import { BigNumber as EthBN } from "ethers"; + +import { + Minter__factory, + UserNftMinter__factory, + XPNft__factory, + XPNft1155__factory, +} from "xpnet-web3-contracts"; +import { + Approve, + Chain, + ExtractAction, + ExtractTxnStatus, + IsApproved, + PreTransfer, + PreTransferRawTxn, + TransactionStatus, + ValidateAddress, + WhitelistCheck, + GetTokenURI, +} from ".."; +import { ChainNonceGet, NftInfo } from ".."; +import { EvNotifier } from "../notifier"; + +// Uses default private key in provider if sender is undefinedd +type TronSender = string | undefined; + +export type MinterRes = { + // Minter smart contract + minter: string; + // XPNFT (Wrapper for foreign NFTs) contracte + xpnft: string; + // XPNFT1155 (Wrapper for ERC1155 Foreign NFTs) contract + xpnft1155: string; + // Whitelisted Native NFT contracts + whitelist: string[]; +}; + +export type BaseTronHelper = BalanceCheck & + MintNft & { + /** + * + * Deploy an ERC721 user minter smart contract + * + * @argument deployer deployer of this smart contract + * @returns Address of the deployed smart contract + */ + deployErc721(deployer: TronSender): Promise; + /** + * Deploy Minter Smart Contract + * + * @argument deployer deployer of the smart contract + * @argument frostGroupKey FROST SECP256k1 Group Key + * @argument xpnftPrefix XP Wrapped NFT backend with "/" suffix + * @argument xpnftPrefix1155 XP Wrapped NFT Backend in erc1155 format (with {id}) + * @argument whitelist List of NFTs to whitelist + */ + deployMinter( + deployer: TronSender, + frostGroupKey: string, + xpnftPrefix: string, + xpnftPrefix1155: string, + whitelist?: string[] + ): Promise; + }; + +export type TronHelper = BaseTronHelper & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ChainNonceGet & + Approve & + ValidateAddress & + IsApproved & + ExtractAction & + Pick, "preTransfer"> & + PreTransferRawTxn & + ExtractTxnStatus & + WhitelistCheck & { + XpNft: string; + XpNft1155: string; + } & GetFeeMargins & + GetTokenURI; + +export async function baseTronHelperFactory( + provider: TronWeb +): Promise { + const setSigner = (signer: TronSender) => { + return signer && provider.setPrivateKey(signer); + }; + + const deployErc721_i = async (deployer: TronSender) => { + setSigner(deployer); + + const contract = await provider.contract().new({ + abi: UserNftMinter__factory.abi, + bytecode: UserNftMinter__factory.bytecode, + feeLimit: 3000000000, + }); + + return contract; + }; + + const deployXpNft = async (deployer: TronSender, nftPrefix: string) => { + setSigner(deployer); + + const contract = await provider.contract().new({ + abi: XPNft__factory.abi, + bytecode: XPNft__factory.bytecode, + feeLimit: 3000000000, + parameters: ["XPNFT", "XPNFT", nftPrefix], + }); + + return contract; + }; + + const deployXpNft1155 = async (deployer: TronSender, nftPrefix: string) => { + setSigner(deployer); + const contract = await provider.contract().new({ + abi: XPNft1155__factory.abi, + bytecode: XPNft1155__factory.bytecode, + feeLimit: 3000000000, + parameters: [nftPrefix], + }); + + return contract; + }; + + return { + async mintNft(owner: TronSender, options: MintArgs): Promise { + setSigner(owner); + const erc = await provider.contract( + UserNftMinter__factory.abi, + options.contract + ); + const res = await erc.mint(options.uri).send(); + return res; + }, + async balance(address: string): Promise { + const balance = await provider.trx.getBalance(address); + return new BigNumber(balance); + }, + deployErc721: async (owner) => + await deployErc721_i(owner).then((c) => c.address), + async deployMinter( + deployer: TronSender, + frostGroupKey, + xpnftPrefix, + xpnftPrefix1155, + whitelist: string[] = [] + ): Promise { + if (whitelist.length == 0) { + const unft = await deployErc721_i(deployer); + console.log(provider.address.fromHex(unft.address)); + whitelist.push(provider.address.fromHex(unft.address)); + } + + const gk = Buffer.from(frostGroupKey, "hex"); + const gkx = EthBN.from(`0x${gk.slice(1).toString("hex")}`); + // gkyp is either 0 or 1 + const gkyp = EthBN.from(`0x${gk[0] & 1}`); + + const erc721 = await deployXpNft(deployer, xpnftPrefix); + const erc1155 = await deployXpNft1155(deployer, xpnftPrefix1155); + + const minter = await provider.contract().new({ + abi: Minter__factory.abi, + bytecode: Minter__factory.bytecode, + feeLimit: 6000000000, + parameters: [gkx, gkyp, whitelist], + }); + + await erc721.transferOwnership(minter.address).send(); + await erc1155.transferOwnership(minter.address).send(); + const minterAddress: string = provider.address.fromHex(minter.address); + const erc721Address: string = provider.address.fromHex(erc721.address); + const erc1155Address: string = provider.address.fromHex(erc1155.address); + return { + minter: minterAddress, + xpnft: erc721Address, + xpnft1155: erc1155Address, + whitelist, + }; + }, + }; +} + +export interface TronParams { + provider: TronWeb; + notifier: EvNotifier; + minter_addr: string; + erc721_addr: string; + erc1155_addr: string; + validators: string[]; + feeMargin: FeeMargins; +} + +export interface TronRawTxn { + readonly visible: boolean; + readonly txID: string; + readonly raw_data: { + readonly ref_block_bytes: string; + readonly ref_block_hash: string; + expiration: number; + readonly fee_limit: number; + readonly timestamp: number; + readonly contract: { + readonly parameter: { + readonly value: { + readonly data: string; + readonly owner_address: string; + readonly contract_address: string; + }; + readonly type_url: string; + }; + readonly type: string; + }[]; + }; + readonly raw_data_hex: string; +} + +export async function tronHelperFactory( + tronParams: TronParams +): Promise { + const { provider, minter_addr } = tronParams; + // const station = new TronStation(provider); + const base = await baseTronHelperFactory(provider); + const minter = await provider.contract(Minter__factory.abi, minter_addr); + + const setSigner = (signer: TronSender) => { + return signer && provider.setPrivateKey(signer); + }; + + async function notifyValidator(hash: string): Promise { + await tronParams.notifier.notifyTron(hash); + } + + async function extractAction(hash: string): Promise { + await new Promise((r) => setTimeout(r, 10000)); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const getEv: (retries?: number) => Promise = async (retries = 0) => { + const res = await provider.getEventByTransactionID(hash); + if (res.length !== 0) { + return res; + } + if (retries > 15) { + throw Error("Couldn't fetch transaction after more than 15 retries!"); + } + await new Promise((r) => setTimeout(r, 3000)); + return getEv(retries + 1); + }; + + const evs = await getEv(); + const ev = evs.find((e: any) => e?.contract == minter_addr); + const action_id: string = ev.result["actionId"].toString(); + return action_id; + } + + // const _randomAction = () => + // Math.floor( + // Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000) + // ).toString(); + + // async function _estimateGas( + // addrs: string[], + // func_sig: string, + // params: { type: string; value: any }[] + // ): Promise { + // let energy = 0; + // let bandwidth = 0; + // const nrgSun = await station.energy.burnedEnergy2Trx(1, { unit: "sun" }); + // const bandSun = 10; + + // for (const [i, addr] of addrs.entries()) { + // const res = await provider.transactionBuilder.triggerConstantContract( + // minter.address, + // func_sig, + // {}, + // params, + // provider.address.toHex(addr) + // ); + // let nrg: number = res["energy_used"]; + // if (i == addrs.length - 1 && addrs.length != 1) nrg *= 2; + // energy += nrg; + // const tx_raw: string = res["transaction"]["raw_data_hex"]; + // bandwidth += tx_raw.length; + // } + // // Fee = energy * (sun per energy) + bandwidth * (sun per bandwidth) + // // bandwidth = raw tx byte length + // const fee = new BigNumber(energy).times(nrgSun).plus(bandwidth * bandSun); + + // return fee; + // } + + const isApprovedForMinter = async ( + id: NftInfo, + _sender: TronSender + ) => { + const erc = await provider.contract( + UserNftMinter__factory.abi, + id.native.contract + ); + const approvedAddress = await erc.getApproved(id.native.tokenId).call({ + from: tronParams.provider.defaultAddress.base58, + }); + if (approvedAddress === minter_addr) { + return true; + } + return false; + }; + + const approveForMinter = async ( + id: NftInfo, + sender: TronSender | undefined + ) => { + await setSigner(sender); + const erc = await provider.contract( + UserNftMinter__factory.abi, + id.native.contract + ); + const isApproved = await isApprovedForMinter(id, sender); + if (isApproved) { + return undefined; + } + + const txHash: string = await erc + .approve(minter_addr, id.native.tokenId) + .send(); + return txHash; + }; + + const addMinToExpirationTime = (txn: TronRawTxn, minutes: number) => { + const expiration = txn.raw_data.expiration; + const newExpiration = new Date(expiration).getTime() + minutes * 60000; + txn.raw_data.expiration = newExpiration; + return txn; + }; + + return { + ...base, + extractAction, + XpNft1155: tronParams.erc721_addr, + XpNft: tronParams.erc721_addr, + getFeeMargin() { + return tronParams.feeMargin; + }, + approveForMinter, + preTransfer: (s, nft, _fee) => approveForMinter(nft, s), + async preTransferRawTxn(nft, address, _value) { + await setSigner(address); + const isApproved = await isApprovedForMinter(nft, address); + if (isApproved) { + return undefined; + } + const { transaction, result } = + await provider.transactionBuilder.triggerSmartContract( + nft.native.contract, + "approve(address,uint256)", + { + feeLimit: 1_000_000, + callValue: 0, + }, + [ + { + type: "address", + value: minter_addr, + }, + { + type: "uint256", + value: nft.native.tokenId, + }, + ], + address + ); + if (!result.result) { + throw new Error(result.toString()); + } + return addMinToExpirationTime(transaction, 15); + }, + isApprovedForMinter, + async extractTxnStatus(txnHash) { + const txn = await provider.trx.getConfirmedTransaction(txnHash); + const status = txn["ret"][0]["contractRet"]; + if (status === "SUCCESS") { + return TransactionStatus.SUCCESS; + } else if (status === "FAIL") { + return TransactionStatus.FAILURE; + } + return TransactionStatus.PENDING; + }, + async unfreezeWrappedNft( + sender: TronSender, + to: string, + id: NftInfo, + txFees: BigNumber, + nonce + ): Promise { + setSigner(sender); + const res = await minter + .withdrawNft(to, nonce, id.native.tokenId, id.native.contract) + .send({ callValue: EthBN.from(txFees.toString(10)) }); + + await notifyValidator(res); + return res; + }, + getNonce() { + return Chain.TRON; + }, + async transferNftToForeign( + sender: TronSender, + chain_nonce: number, + to: string, + id: NftInfo, + txFees: BigNumber, + mintWith + ): Promise { + setSigner(sender); + await approveForMinter(id, sender); + + const txr = await minter + .freezeErc721( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith + ) + .send({ callValue: EthBN.from(txFees.toString(10)) }); + + await notifyValidator(txr); + return txr; + }, + async estimateValidateTransferNft( + _to: string, + _nftUri: NftInfo + ): Promise { + return new BigNumber(0); // TODO + }, + async estimateValidateUnfreezeNft( + _to: string, + _nft: NftInfo + ): Promise { + return new BigNumber(0); // TODO + }, + async validateAddress(adr: string): Promise { + return provider.isAddress(adr); + }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract).call({ + from: tronParams.provider.defaultAddress.base58, + }); + }, + // const minter = await provider.contract(Minter__factory.abi, minter_addr); + async getTokenURI(contract, tokenId) { + return ""; + if (provider.isAddress(contract) && tokenId) { + const _contract = await provider.contract( + UserNftMinter__factory.abi, + contract + ); + return await _contract.tokenURI(+tokenId).call(); + } + return ""; + }, + }; +} diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts new file mode 100644 index 000000000..f1cb26e14 --- /dev/null +++ b/dist/helpers/web3.d.ts @@ -0,0 +1,190 @@ +/** + * Web3 Implementation for cross chain traits + * @module + */ +import BigNumber from "bignumber.js"; +import { + BalanceCheck, + EstimateTxFeesBatch, + FeeMargins, + GetFeeMargins, + GetProvider, + IsContractAddress, + MintNft, + TransferNftForeign, + TransferNftForeignBatch, + UnfreezeForeignNft, + UnfreezeForeignNftBatch, +} from "./chain"; +import { + ContractTransaction, + PopulatedTransaction, + providers, + Signer, + Wallet, +} from "ethers"; +import { Provider, TransactionResponse } from "@ethersproject/providers"; +import { + Erc1155Minter, + Erc1155Minter__factory, + UserNftMinter, + UserNftMinter__factory, +} from "xpnet-web3-contracts"; +import { + ChainNonceGet, + EstimateTxFees, + ExtractAction, + ExtractTxnStatus, + GetTokenURI, + NftInfo, + PreTransfer, + PreTransferRawTxn, + ValidateAddress, + WhitelistCheck, +} from ".."; +import { ChainNonce } from "../type-utils"; +import { EvNotifier } from "../notifier"; +/** + * Information required to perform NFT transfers in this chain + */ +export type EthNftInfo = { + chainId: string; + tokenId: string; + owner: string; + uri: string; + contract: string; + contractType: "ERC721" | "ERC1155"; +}; +/** + * Arguments required for minting a new nft + * + * contract: address of the sc + * token: token ID of the newly minted nft + * owner: Owner of the newly minted nft + * uri: uri of the nft + */ +export type MintArgs = { + contract: string; + uri: string; +}; +export interface IsApproved { + isApprovedForMinter( + address: NftInfo, + sender: Sender, + txFee: BigNumber + ): Promise; +} +export interface Approve { + approveForMinter( + address: NftInfo, + sender: Sender, + txFee: BigNumber + ): Promise; +} +type NullableCustomData = Record | undefined; +/** + * Base util traits + */ +export type BaseWeb3Helper = BalanceCheck & + /** + * Mint an nft in the given ERC1155 smart contract + * + * @argument signer owner of the smart contract + * @argument args See [[MintArgs]] + */ MintNft & { + /** + * Deploy an ERC721 smart contract + * + * @argument owner Owner of this smart contract + * @returns Address of the deployed smart contract + */ + deployErc721(owner: Signer): Promise; + } & { + mintNftErc1155( + owner: Signer, + options: MintArgs + ): Promise; + }; +/** + * Traits implemented by this module + */ +export type Web3Helper = BaseWeb3Helper & + TransferNftForeign & + UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFees & + EstimateTxFeesBatch & + ChainNonceGet & + IsApproved & + Approve & + ValidateAddress & + ExtractAction & { + createWallet(privateKey: string): Wallet; + } & Pick, "preTransfer"> & + PreTransferRawTxn & + ExtractTxnStatus & + GetProvider & { + XpNft: string; + XpNft1155: string; + } & WhitelistCheck & + GetFeeMargins & + IsContractAddress & + GetTokenURI; +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +export declare function baseWeb3HelperFactory( + provider: Provider, + nonce: number +): Promise; +/** + * Create an object implementing cross chain utilities for a web3 chain + * + * @param provider An ethers.js provider object + * @param minter_addr Address of the minter smart contract + * @param minter_abi ABI of the minter smart contract + */ +export interface Web3Params { + provider: Provider; + notifier: EvNotifier; + minter_addr: string; + erc721_addr: string; + erc1155_addr: string; + erc721Minter: string; + erc1155Minter: string; + nonce: ChainNonce; + feeMargin: FeeMargins; +} +type NftMethodVal = { + freeze: "freezeErc1155" | "freezeErc721"; + validateUnfreeze: "validateUnfreezeErc1155" | "validateUnfreezeErc721"; + umt: typeof Erc1155Minter__factory | typeof UserNftMinter__factory; + approved: ( + umt: T, + sender: string, + minterAddr: string, + tok: string, + customData: NullableCustomData + ) => Promise; + approve: ( + umt: T, + forAddr: string, + tok: string, + txnUp: (tx: PopulatedTransaction) => Promise, + customData: NullableCustomData + ) => Promise; +}; +type EthNftMethodVal = NftMethodVal; +type NftMethodMap = Record< + "ERC1155" | "ERC721", + EthNftMethodVal | EthNftMethodVal +>; +export declare const NFT_METHOD_MAP: NftMethodMap; +export declare function web3HelperFactory( + params: Web3Params +): Promise; +export {}; +//# sourceMappingURL=web3.d.ts.map diff --git a/dist/helpers/web3.d.ts.map b/dist/helpers/web3.d.ts.map new file mode 100644 index 000000000..bf7667e29 --- /dev/null +++ b/dist/helpers/web3.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/helpers/web3.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js new file mode 100644 index 000000000..fa1a7993f --- /dev/null +++ b/dist/helpers/web3.js @@ -0,0 +1,496 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.web3HelperFactory = + exports.NFT_METHOD_MAP = + exports.baseWeb3HelperFactory = + void 0; +/** + * Web3 Implementation for cross chain traits + * @module + */ +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const ethers_1 = require("ethers"); +const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); +const __1 = require(".."); +const axios_1 = __importDefault(require("axios")); +const hethers_1 = require("@hashgraph/hethers"); +hethers_1.hethers.providers.BaseProvider.prototype.getGasPrice = async () => { + return ethers_1.BigNumber.from("1"); +}; +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +async function baseWeb3HelperFactory(provider, nonce) { + const w3 = provider; + return { + async balance(address) { + const bal = await w3.getBalance(address); + // ethers BigNumber is not compatible with our bignumber + return new bignumber_js_1.default(bal.toString()); + }, + async deployErc721(owner) { + const factory = new xpnet_web3_contracts_1.UserNftMinter__factory(owner); + const contract = await factory.deploy(); + return contract.address; + }, + async mintNftErc1155(owner, { contract }) { + const erc1155 = xpnet_web3_contracts_1.Erc1155Minter__factory.connect( + contract, + owner + ); + const tx = await erc1155.mintNft(await owner.getAddress()); + return tx; + }, + async mintNft(owner, { contract, uri }) { + const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + contract, + owner + ); + const txm = await erc721 + .mint(uri, { gasLimit: 1000000 }) + .catch(async (e) => { + if (nonce === 33) { + let tx; + while (!tx) { + tx = await provider.getTransaction(e["returnedHash"]); + } + return tx; + } + throw e; + }); + return txm; + }, + }; +} +exports.baseWeb3HelperFactory = baseWeb3HelperFactory; +exports.NFT_METHOD_MAP = { + ERC1155: { + freeze: "freezeErc1155", + validateUnfreeze: "validateUnfreezeErc1155", + umt: xpnet_web3_contracts_1.Erc1155Minter__factory, + approved: (umt, sender, minterAddr, _tok, customData) => { + return umt.isApprovedForAll(sender, minterAddr, { + gasLimit: "1000000", + customData, + }); + }, + approve: async (umt, forAddr, _tok, txnUp, customData) => { + const tx = await umt.populateTransaction.setApprovalForAll( + forAddr, + true, + { + gasLimit: "1000000", + customData, + } + ); + await txnUp(tx); + return await umt.signer.sendTransaction(tx); + }, + }, + ERC721: { + freeze: "freezeErc721", + validateUnfreeze: "validateUnfreezeErc721", + umt: xpnet_web3_contracts_1.UserNftMinter__factory, + approved: async (umt, _, minterAddr, tok, customData) => { + return ( + ( + await umt.getApproved(tok, { + gasLimit: "1000000", + customData, + //@ts-ignore + }) + ).toLowerCase() == minterAddr.toLowerCase() + ); + }, + approve: async (umt, forAddr, tok, txnUp) => { + const tx = await umt.populateTransaction.approve(forAddr, tok, { + gasLimit: "1000000", + }); + await txnUp(tx); + return await umt.signer.sendTransaction(tx); + }, + }, +}; +async function web3HelperFactory(params) { + const txnUnderpricedPolyWorkaround = + params.nonce == 7 + ? async (utx) => { + const res = await axios_1.default + .get( + "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" + ) + .catch(async () => { + return await axios_1.default.get( + "https://gasstation-mainnet.matic.network/v2" + ); + }); + const { result, fast } = res.data; + const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; + if (trackerGas) { + const sixtyGwei = ethers_1.ethers.utils.parseUnits( + Math.ceil(trackerGas).toString(), + "gwei" + ); + utx.maxFeePerGas = sixtyGwei; + utx.maxPriorityFeePerGas = sixtyGwei; + } + } + : () => Promise.resolve(); + const w3 = params.provider; + const { minter_addr, provider } = params; + const minter = xpnet_web3_contracts_1.Minter__factory.connect( + minter_addr, + provider + ); + async function notifyValidator( + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ) { + await params.notifier.notifyWeb3( + params.nonce, + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ); + } + //@ts-ignore + async function getTransaction(hash) { + let trx; + let fails = 0; + while (!trx && fails < 7) { + trx = await provider.getTransaction(hash); + await new Promise((resolve) => + setTimeout(() => resolve("wait"), 5000 + fails * 2) + ); + fails++; + } + return trx; + } + async function extractAction(txr) { + const receipt = await txr.wait(); + const log = receipt.logs.find((log) => log.address === minter.address); + if (log === undefined) { + throw Error("Couldn't extract action_id"); + } + const evdat = minter.interface.parseLog(log); + const action_id = evdat.args[0].toString(); + return action_id; + } + const isApprovedForMinter = async (id, signer) => { + const erc = exports.NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + signer + ); + const toApprove = + params.nonce !== 0x1d + ? minter_addr + : id.native.uri.includes("herokuapp.com") + ? params.minter_addr + : params.erc721_addr; + return await exports.NFT_METHOD_MAP[id.native.contractType].approved( + erc, + await signer.getAddress(), + toApprove, + id.native.tokenId, + params.nonce === 0x1d ? {} : undefined + ); + }; + const approveForMinter = async (id, sender) => { + const isApproved = await isApprovedForMinter(id, sender); + if (isApproved) { + return undefined; + } + const erc = exports.NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + sender + ); + const toApprove = + params.nonce !== 0x1d + ? minter_addr + : id.native.uri.includes("herokuapp.com") + ? params.minter_addr + : params.erc721_addr; + const receipt = await exports.NFT_METHOD_MAP[ + id.native.contractType + ].approve( + erc, + toApprove, + id.native.tokenId, + txnUnderpricedPolyWorkaround, + params.nonce === 0x1d ? {} : undefined + ); + await receipt.wait(); + return receipt.hash; + }; + const base = await baseWeb3HelperFactory(params.provider, params.nonce); + return { + ...base, + XpNft: params.erc721_addr, + XpNft1155: params.erc1155_addr, + approveForMinter, + getProvider: () => provider, + async estimateValidateUnfreezeNft(_to, _id, _mW) { + const gas = await provider.getGasPrice(); + return new bignumber_js_1.default(gas.mul(150000).toString()); + }, + getFeeMargin() { + return params.feeMargin; + }, + isApprovedForMinter, + preTransfer: (s, id, _fee) => approveForMinter(id, s), + extractAction, + async isContractAddress(address) { + const code = await provider.getCode(address); + return code !== "0x"; + }, + getNonce: () => params.nonce, + async preTransferRawTxn(id, address, _value) { + const isApproved = await isApprovedForMinter( + id, + new ethers_1.VoidSigner(address, provider) + ); + if (isApproved) { + return undefined; + } + const erc = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + id.native.contract, + new ethers_1.VoidSigner(address, provider) + ); + const approvetxn = await erc.populateTransaction.approve( + minter_addr, + id.native.tokenId + ); + return approvetxn; + }, + async extractTxnStatus(txn) { + const status = (await (await provider.getTransaction(txn)).wait()).status; + if (status === undefined) { + return __1.TransactionStatus.PENDING; + } + if (status === 1) { + return __1.TransactionStatus.SUCCESS; + } else if (status === 0) { + return __1.TransactionStatus.FAILURE; + } + return __1.TransactionStatus.UNKNOWN; + }, + async getTokenURI(contract, tokenId) { + if (ethers_1.ethers.utils.isAddress(contract) && tokenId) { + const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + contract, + provider + ); + return await erc721.tokenURI(tokenId).catch(() => ""); + } + return ""; + }, + async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { + const tx = await minter + .connect(signer) + .populateTransaction.withdrawNftBatch( + to, + chainNonce, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + nfts[0].native.contract, + { + value: ethers_1.BigNumber.from(txFees.toString()), + } + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + // await notifyValidator( + // res.hash, + // await extractAction(res), + // "Unfreeze", + // chainNonce.toString(), + // txFees.toString(), + // await signer.getAddress(), + // to, + // res.data + // ); + await notifyValidator(res.hash); + return res; + }, + async transferNftBatchToForeign( + signer, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const tx = await minter + .connect(signer) + .populateTransaction.freezeErc1155Batch( + nfts[0].native.contract, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + chainNonce, + to, + mintWith, + { + value: ethers_1.BigNumber.from(txFees.toString()), + } + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + await notifyValidator(res.hash); + return res; + }, + async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { + const gasPrice = await w3.getGasPrice(); + const gas = 40000 + 60000 * nfts.length; + return new bignumber_js_1.default(gasPrice.mul(gas).toString()); + }, + async estimateValidateUnfreezeNftBatch(_to, nfts) { + const gasPrice = await w3.getGasPrice(); + const gas = 40000 + 60000 * nfts.length; + return new bignumber_js_1.default(gasPrice.mul(gas).toString()); + }, + createWallet(privateKey) { + return new ethers_1.Wallet(privateKey, provider); + }, + async transferNftToForeign( + sender, + chain_nonce, + to, + id, + txFees, + mintWith, + gasLimit = undefined + ) { + await approveForMinter(id, sender); + const method = exports.NFT_METHOD_MAP[id.native.contractType].freeze; + // Chain is Hedera + if (params.nonce === 0x1d) { + id.native.tokenId = ethers_1.ethers.utils.solidityPack( + ["uint160", "int96"], + [id.collectionIdent, id.native.tokenId] + ); + id.native.contract = params.erc721_addr; + } + const tx = await minter + .connect(sender) + .populateTransaction[method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + { + value: ethers_1.BigNumber.from(txFees.toString()), + gasLimit, + } + ); + await txnUnderpricedPolyWorkaround(tx); + const txr = await sender.sendTransaction(tx).catch((e) => { + if (params.nonce === 33) { + return e; + } else throw e; + }); + let txHash; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = txr["transactionId"]; + } else if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = txr["returnedHash"] || txr.hash; + } else { + //@ts-ignore checked normal evm + txHash = txr.hash; + } + await notifyValidator( + //@ts-ignore + txHash + ); + if (params.nonce === 33) { + return await provider.getTransaction(txHash); + } + return txr; + }, + async unfreezeWrappedNft( + sender, + to, + id, + txFees, + nonce, + gasLimit = undefined + ) { + await approveForMinter(id, sender); + // Chain is Hedera + if (params.nonce === 0x1d) { + id.native.tokenId = ethers_1.ethers.utils.solidityPack( + ["uint160", "int96"], + [ethers_1.BigNumber.from(id.collectionIdent), id.native.tokenId] + ); + id.native.contract = params.erc721_addr; + } + const txn = await minter + .connect(sender) + .populateTransaction.withdrawNft( + to, + nonce, + id.native.tokenId, + id.native.contract, + { + value: ethers_1.BigNumber.from(txFees.toString(10)), + gasLimit, + } + ); + await txnUnderpricedPolyWorkaround(txn); + const res = await sender.sendTransaction(txn); + console.log(res, "res"); + let txHash; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = res["transactionId"]; + } else if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = res["returnedHash"] || res.hash; + } else { + //@ts-ignore checked normal evm + txHash = res.hash; + } + await notifyValidator(txHash); + if (params.nonce === 33) { + return await provider.getTransaction(txHash); + } + return res; + }, + async estimateValidateTransferNft(_to, _nftUri, _mintWith) { + const gas = await provider.getGasPrice(); + return new bignumber_js_1.default(gas.mul(150000).toString()); + }, + validateAddress(adr) { + return Promise.resolve(ethers_1.ethers.utils.isAddress(adr)); + }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract); + }, + }; +} +exports.web3HelperFactory = web3HelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBY3JDLG1DQVNnQjtBQUVoQiwrREFNOEI7QUFDOUIsMEJBWVk7QUFHWixrREFBMEI7QUFDMUIsZ0RBQTZDO0FBMEM3QyxpQkFBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNoRSxPQUFPLGtCQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQXVERjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQixFQUNsQixLQUFhO0lBRWIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxD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 diff --git a/dist/helpers/web3.ts b/dist/helpers/web3.ts new file mode 100644 index 000000000..3e1194488 --- /dev/null +++ b/dist/helpers/web3.ts @@ -0,0 +1,729 @@ +/** + * Web3 Implementation for cross chain traits + * @module + */ +import BigNumber from "bignumber.js"; +import { + BalanceCheck, + EstimateTxFeesBatch, + FeeMargins, + GetFeeMargins, + GetProvider, + IsContractAddress, + MintNft, + TransferNftForeign, + TransferNftForeignBatch, + UnfreezeForeignNft, + UnfreezeForeignNftBatch, +} from "./chain"; +import { + BigNumber as EthBN, + ContractTransaction, + ethers, + PopulatedTransaction, + providers, + Signer, + VoidSigner, + Wallet, +} from "ethers"; +import { Provider, TransactionResponse } from "@ethersproject/providers"; +import { + Erc1155Minter, + Erc1155Minter__factory, + Minter__factory, + UserNftMinter, + UserNftMinter__factory, +} from "xpnet-web3-contracts"; +import { + ChainNonceGet, + EstimateTxFees, + ExtractAction, + ExtractTxnStatus, + GetTokenURI, + NftInfo, + PreTransfer, + PreTransferRawTxn, + TransactionStatus, + ValidateAddress, + WhitelistCheck, +} from ".."; +import { ChainNonce } from "../type-utils"; +import { EvNotifier } from "../notifier"; +import axios from "axios"; +import { hethers } from "@hashgraph/hethers"; +/** + * Information required to perform NFT transfers in this chain + */ +export type EthNftInfo = { + chainId: string; + tokenId: string; + owner: string; + uri: string; + contract: string; + contractType: "ERC721" | "ERC1155"; +}; + +/** + * Arguments required for minting a new nft + * + * contract: address of the sc + * token: token ID of the newly minted nft + * owner: Owner of the newly minted nft + * uri: uri of the nft + */ +export type MintArgs = { + contract: string; + uri: string; +}; + +export interface IsApproved { + isApprovedForMinter( + address: NftInfo, + sender: Sender, + txFee: BigNumber + ): Promise; +} + +export interface Approve { + approveForMinter( + address: NftInfo, + sender: Sender, + txFee: BigNumber + ): Promise; +} + +hethers.providers.BaseProvider.prototype.getGasPrice = async () => { + return EthBN.from("1"); +}; + +type NullableCustomData = Record | undefined; + +/** + * Base util traits + */ +export type BaseWeb3Helper = BalanceCheck & + /** + * Mint an nft in the given ERC1155 smart contract + * + * @argument signer owner of the smart contract + * @argument args See [[MintArgs]] + */ MintNft & { + /** + * Deploy an ERC721 smart contract + * + * @argument owner Owner of this smart contract + * @returns Address of the deployed smart contract + */ + deployErc721(owner: Signer): Promise; + } & { + mintNftErc1155( + owner: Signer, + options: MintArgs + ): Promise; + }; + +/** + * Traits implemented by this module + */ +export type Web3Helper = BaseWeb3Helper & + TransferNftForeign & + UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFees & + EstimateTxFeesBatch & + ChainNonceGet & + IsApproved & + Approve & + ValidateAddress & + ExtractAction & { + createWallet(privateKey: string): Wallet; + } & Pick, "preTransfer"> & + PreTransferRawTxn & + ExtractTxnStatus & + GetProvider & { + XpNft: string; + XpNft1155: string; + } & WhitelistCheck & + GetFeeMargins & + IsContractAddress & + GetTokenURI; + +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +export async function baseWeb3HelperFactory( + provider: Provider, + nonce: number +): Promise { + const w3 = provider; + + return { + async balance(address: string): Promise { + const bal = await w3.getBalance(address); + + // ethers BigNumber is not compatible with our bignumber + return new BigNumber(bal.toString()); + }, + async deployErc721(owner: Signer): Promise { + const factory = new UserNftMinter__factory(owner); + const contract = await factory.deploy(); + + return contract.address; + }, + async mintNftErc1155(owner: Signer, { contract }) { + const erc1155 = Erc1155Minter__factory.connect(contract!, owner); + const tx = await erc1155.mintNft(await owner.getAddress()); + + return tx; + }, + async mintNft( + owner: Signer, + { contract, uri }: MintArgs + ): Promise { + const erc721 = UserNftMinter__factory.connect(contract!, owner); + const txm = await erc721 + .mint(uri, { gasLimit: 1000000 }) + .catch(async (e) => { + if (nonce === 33) { + let tx; + while (!tx) { + tx = await provider.getTransaction(e["returnedHash"]); + } + return tx; + } + throw e; + }); + return txm; + }, + }; +} + +/** + * Create an object implementing cross chain utilities for a web3 chain + * + * @param provider An ethers.js provider object + * @param minter_addr Address of the minter smart contract + * @param minter_abi ABI of the minter smart contract + */ +export interface Web3Params { + provider: Provider; + notifier: EvNotifier; + minter_addr: string; + erc721_addr: string; + erc1155_addr: string; + erc721Minter: string; + erc1155Minter: string; + nonce: ChainNonce; + feeMargin: FeeMargins; +} + +type NftMethodVal = { + freeze: "freezeErc1155" | "freezeErc721"; + validateUnfreeze: "validateUnfreezeErc1155" | "validateUnfreezeErc721"; + umt: typeof Erc1155Minter__factory | typeof UserNftMinter__factory; + approved: ( + umt: T, + sender: string, + minterAddr: string, + tok: string, + customData: NullableCustomData + ) => Promise; + approve: ( + umt: T, + forAddr: string, + tok: string, + txnUp: (tx: PopulatedTransaction) => Promise, + customData: NullableCustomData + ) => Promise; +}; + +type EthNftMethodVal = NftMethodVal; + +type NftMethodMap = Record< + "ERC1155" | "ERC721", + EthNftMethodVal | EthNftMethodVal +>; + +export const NFT_METHOD_MAP: NftMethodMap = { + ERC1155: { + freeze: "freezeErc1155", + validateUnfreeze: "validateUnfreezeErc1155", + umt: Erc1155Minter__factory, + approved: ( + umt: Erc1155Minter, + sender: string, + minterAddr: string, + _tok: string, + customData: NullableCustomData + ) => { + return umt.isApprovedForAll(sender, minterAddr, { + gasLimit: "1000000", + customData, + }); + }, + approve: async ( + umt: Erc1155Minter, + forAddr: string, + _tok: string, + txnUp: (tx: PopulatedTransaction) => Promise, + customData: NullableCustomData + ) => { + const tx = await umt.populateTransaction.setApprovalForAll( + forAddr, + true, + { + gasLimit: "1000000", + customData, + } + ); + await txnUp(tx); + return await umt.signer.sendTransaction(tx); + }, + }, + ERC721: { + freeze: "freezeErc721", + validateUnfreeze: "validateUnfreezeErc721", + umt: UserNftMinter__factory, + approved: async ( + umt: UserNftMinter, + _: string, + minterAddr: string, + tok: string, + customData: NullableCustomData + ) => { + return ( + ( + await umt.getApproved(tok, { + gasLimit: "1000000", + customData, + //@ts-ignore + }) + ).toLowerCase() == minterAddr.toLowerCase() + ); + }, + approve: async ( + umt: UserNftMinter, + forAddr: string, + tok: string, + txnUp: (tx: PopulatedTransaction) => Promise + ) => { + const tx = await umt.populateTransaction.approve(forAddr, tok, { + gasLimit: "1000000", + }); + await txnUp(tx); + return await umt.signer.sendTransaction(tx); + }, + }, +}; + +export async function web3HelperFactory( + params: Web3Params +): Promise { + const txnUnderpricedPolyWorkaround = + params.nonce == 7 + ? async (utx: PopulatedTransaction) => { + const res = await axios + .get( + "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" + ) + .catch(async () => { + return await axios.get( + "https://gasstation-mainnet.matic.network/v2" + ); + }); + const { result, fast } = res.data; + const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; + + if (trackerGas) { + const sixtyGwei = ethers.utils.parseUnits( + Math.ceil(trackerGas).toString(), + "gwei" + ); + utx.maxFeePerGas = sixtyGwei; + utx.maxPriorityFeePerGas = sixtyGwei; + } + } + : () => Promise.resolve(); + const w3 = params.provider; + const { minter_addr, provider } = params; + const minter = Minter__factory.connect(minter_addr, provider); + + async function notifyValidator( + fromHash: string, + actionId?: string, + type?: string, + toChain?: number, + txFees?: string, + senderAddress?: string, + targetAddress?: string, + nftUri?: string, + tokenId?: string, + contract?: string + ): Promise { + await params.notifier.notifyWeb3( + params.nonce, + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ); + } + + //@ts-ignore + async function getTransaction(hash: string) { + let trx; + let fails = 0; + while (!trx && fails < 7) { + trx = await provider.getTransaction(hash); + await new Promise((resolve) => + setTimeout(() => resolve("wait"), 5000 + fails * 2) + ); + fails++; + } + + return trx as TransactionResponse; + } + + async function extractAction(txr: TransactionResponse): Promise { + const receipt = await txr.wait(); + const log = receipt.logs.find((log) => log.address === minter.address); + if (log === undefined) { + throw Error("Couldn't extract action_id"); + } + + const evdat = minter.interface.parseLog(log); + const action_id: string = evdat.args[0].toString(); + return action_id; + } + + const isApprovedForMinter = async ( + id: NftInfo, + signer: Signer + ) => { + const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + signer + ); + const toApprove = + params.nonce !== 0x1d + ? minter_addr + : id.native.uri.includes("herokuapp.com") + ? params.minter_addr + : params.erc721_addr; + return await NFT_METHOD_MAP[id.native.contractType].approved( + erc as any, + await signer.getAddress(), + toApprove, + id.native.tokenId, + params.nonce === 0x1d ? {} : undefined + ); + }; + + const approveForMinter = async (id: NftInfo, sender: Signer) => { + const isApproved = await isApprovedForMinter(id, sender); + if (isApproved) { + return undefined; + } + const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + sender + ); + + const toApprove = + params.nonce !== 0x1d + ? minter_addr + : id.native.uri.includes("herokuapp.com") + ? params.minter_addr + : params.erc721_addr; + + const receipt = await NFT_METHOD_MAP[id.native.contractType].approve( + erc as any, + toApprove, + id.native.tokenId, + txnUnderpricedPolyWorkaround, + params.nonce === 0x1d ? {} : undefined + ); + await receipt.wait(); + return receipt.hash; + }; + + const base = await baseWeb3HelperFactory(params.provider, params.nonce); + + return { + ...base, + XpNft: params.erc721_addr, + XpNft1155: params.erc1155_addr, + approveForMinter, + getProvider: () => provider, + async estimateValidateUnfreezeNft(_to, _id, _mW) { + const gas = await provider.getGasPrice(); + return new BigNumber(gas.mul(150_000).toString()); + }, + getFeeMargin() { + return params.feeMargin; + }, + isApprovedForMinter, + preTransfer: (s, id, _fee) => approveForMinter(id, s), + extractAction, + async isContractAddress(address) { + const code = await provider.getCode(address); + return code !== "0x"; + }, + getNonce: () => params.nonce, + async preTransferRawTxn(id, address, _value) { + const isApproved = await isApprovedForMinter( + id, + new VoidSigner(address, provider) + ); + + if (isApproved) { + return undefined; + } + + const erc = UserNftMinter__factory.connect( + id.native.contract, + new VoidSigner(address, provider) + ); + + const approvetxn = await erc.populateTransaction.approve( + minter_addr, + id.native.tokenId + ); + + return approvetxn; + }, + + async extractTxnStatus(txn) { + const status = (await (await provider.getTransaction(txn)).wait()).status; + if (status === undefined) { + return TransactionStatus.PENDING; + } + if (status === 1) { + return TransactionStatus.SUCCESS; + } else if (status === 0) { + return TransactionStatus.FAILURE; + } + return TransactionStatus.UNKNOWN; + }, + async getTokenURI(contract, tokenId) { + if (ethers.utils.isAddress(contract) && tokenId) { + const erc721 = UserNftMinter__factory.connect(contract!, provider); + return await erc721.tokenURI(tokenId).catch(() => ""); + } + return ""; + }, + async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { + const tx = await minter + .connect(signer) + .populateTransaction.withdrawNftBatch( + to, + chainNonce, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + nfts[0].native.contract, + { + value: EthBN.from(txFees.toString()), + } + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + + // await notifyValidator( + // res.hash, + // await extractAction(res), + // "Unfreeze", + // chainNonce.toString(), + // txFees.toString(), + // await signer.getAddress(), + // to, + // res.data + // ); + await notifyValidator(res.hash); + + return res; + }, + async transferNftBatchToForeign( + signer, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const tx = await minter + .connect(signer) + .populateTransaction.freezeErc1155Batch( + nfts[0].native.contract, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + chainNonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString()), + } + ); + await txnUnderpricedPolyWorkaround(tx); + + const res = await signer.sendTransaction(tx); + + await notifyValidator(res.hash); + + return res; + }, + async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { + const gasPrice = await w3.getGasPrice(); + const gas = 40_000 + 60_000 * nfts.length; + return new BigNumber(gasPrice.mul(gas).toString()); + }, + async estimateValidateUnfreezeNftBatch(_to, nfts) { + const gasPrice = await w3.getGasPrice(); + const gas = 40_000 + 60_000 * nfts.length; + return new BigNumber(gasPrice.mul(gas).toString()); + }, + createWallet(privateKey: string): Wallet { + return new Wallet(privateKey, provider); + }, + async transferNftToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: NftInfo, + txFees: BigNumber, + mintWith: string, + gasLimit: ethers.BigNumberish | undefined = undefined + ): Promise { + await approveForMinter(id, sender); + const method = NFT_METHOD_MAP[id.native.contractType].freeze; + + // Chain is Hedera + if (params.nonce === 0x1d) { + id.native.tokenId = ethers.utils.solidityPack( + ["uint160", "int96"], + [id.collectionIdent, id.native.tokenId] + ); + id.native.contract = params.erc721_addr; + } + + const tx = await minter + .connect(sender) + .populateTransaction[method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + { + value: EthBN.from(txFees.toString()), + gasLimit, + } + ); + await txnUnderpricedPolyWorkaround(tx); + + const txr: TransactionResponse | unknown = await sender + .sendTransaction(tx) + .catch((e) => { + if (params.nonce === 33) { + return e; + } else throw e; + }); + let txHash: string; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = txr["transactionId"]; + } else if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = txr["returnedHash"] || txr.hash; + } else { + //@ts-ignore checked normal evm + txHash = txr.hash; + } + + await notifyValidator( + //@ts-ignore + txHash + ); + if (params.nonce === 33) { + return await provider.getTransaction(txHash); + } + return txr as any; + }, + async unfreezeWrappedNft( + sender: Signer, + to: string, + id: NftInfo, + txFees: BigNumber, + nonce, + gasLimit = undefined + ): Promise { + await approveForMinter(id, sender); + + // Chain is Hedera + if (params.nonce === 0x1d) { + id.native.tokenId = ethers.utils.solidityPack( + ["uint160", "int96"], + [EthBN.from(id.collectionIdent), id.native.tokenId] + ); + id.native.contract = params.erc721_addr; + } + + const txn = await minter + .connect(sender) + .populateTransaction.withdrawNft( + to, + nonce, + id.native.tokenId, + id.native.contract, + { + value: EthBN.from(txFees.toString(10)), + gasLimit, + } + ); + + await txnUnderpricedPolyWorkaround(txn); + const res = await sender.sendTransaction(txn); + console.log(res, "res"); + let txHash: string; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = res["transactionId"]; + } else if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = res["returnedHash"] || res.hash; + } else { + //@ts-ignore checked normal evm + txHash = res.hash; + } + + await notifyValidator(txHash); + if (params.nonce === 33) { + return await provider.getTransaction(txHash); + } + return res as any; + }, + async estimateValidateTransferNft( + _to: string, + _nftUri: NftInfo, + _mintWith + ): Promise { + const gas = await provider.getGasPrice(); + + return new BigNumber(gas.mul(150_000).toString()); + }, + validateAddress(adr) { + return Promise.resolve(ethers.utils.isAddress(adr)); + }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract); + }, + }; +} diff --git a/dist/helpers/web3_erc20.d.ts b/dist/helpers/web3_erc20.d.ts new file mode 100644 index 000000000..b506e5dbb --- /dev/null +++ b/dist/helpers/web3_erc20.d.ts @@ -0,0 +1,17 @@ +import { Provider } from "@ethersproject/providers"; +import { BaseWeb3Helper, Web3Helper, Web3Params } from ".."; +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +export declare function baseWeb3HelperFactory( + provider: Provider +): Promise; +export type Web3ERC20Params = Web3Params & { + paymentTokenAddress: string; +}; +export declare function web3ERC20HelperFactory( + params: Web3ERC20Params +): Promise; +//# sourceMappingURL=web3_erc20.d.ts.map diff --git a/dist/helpers/web3_erc20.d.ts.map b/dist/helpers/web3_erc20.d.ts.map new file mode 100644 index 000000000..da9d58f69 --- /dev/null +++ b/dist/helpers/web3_erc20.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"web3_erc20.d.ts","sourceRoot":"","sources":["../../src/helpers/web3_erc20.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAOzE,OAAO,EACL,cAAc,EAMd,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AAGZ;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CAiYrB"} \ No newline at end of file diff --git a/dist/helpers/web3_erc20.js b/dist/helpers/web3_erc20.js new file mode 100644 index 000000000..ed5ffbb19 --- /dev/null +++ b/dist/helpers/web3_erc20.js @@ -0,0 +1,396 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.web3ERC20HelperFactory = exports.baseWeb3HelperFactory = void 0; +/** + * Web3 Implementation for cross chain traits + * @module + */ +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const ethers_1 = require("ethers"); +const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); +const __1 = require(".."); +const axios_1 = __importDefault(require("axios")); +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +async function baseWeb3HelperFactory(provider) { + const w3 = provider; + return { + async balance(address) { + const bal = await w3.getBalance(address); + // ethers BigNumber is not compatible with our bignumber + return new bignumber_js_1.default(bal.toString()); + }, + async deployErc721(owner) { + const factory = new xpnet_web3_contracts_1.UserNftMinter__factory(owner); + const contract = await factory.deploy(); + return contract.address; + }, + async mintNftErc1155(owner, { contract }) { + const erc1155 = xpnet_web3_contracts_1.Erc1155Minter__factory.connect( + contract, + owner + ); + const tx = await erc1155.mintNft(await owner.getAddress()); + return tx; + }, + async mintNft(owner, { contract, uri }) { + const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + contract, + owner + ); + const txm = await erc721.mint(uri, { gasLimit: 1000000 }); + return txm; + }, + }; +} +exports.baseWeb3HelperFactory = baseWeb3HelperFactory; +async function web3ERC20HelperFactory(params) { + const txnUnderpricedPolyWorkaround = + params.nonce == 7 + ? async (utx) => { + const res = await axios_1.default + .get( + "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" + ) + .catch(async () => { + return await axios_1.default.get( + "https://gasstation-mainnet.matic.network/v2" + ); + }); + const { result, fast } = res.data; + const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; + if (trackerGas) { + const sixtyGwei = ethers_1.ethers.utils.parseUnits( + Math.ceil(trackerGas).toString(), + "gwei" + ); + utx.maxFeePerGas = sixtyGwei; + utx.maxPriorityFeePerGas = sixtyGwei; + } + } + : () => Promise.resolve(); + const w3 = params.provider; + const { minter_addr, provider } = params; + const minter = xpnet_web3_contracts_1.MinterERC20__factory.connect( + minter_addr, + provider + ); + async function notifyValidator( + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ) { + await params.notifier.notifyWeb3( + params.nonce, + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ); + } + async function getTransaction(hash) { + let trx; + let fails = 0; + while (!trx && fails < 7) { + trx = await provider.getTransaction(hash); + await new Promise((resolve) => + setTimeout(() => resolve("wait"), 5000 + fails * 2) + ); + fails++; + } + return trx; + } + async function extractAction(txr) { + const receipt = await txr.wait(); + const log = receipt.logs.find((log) => log.address === minter.address); + if (log === undefined) { + throw Error("Couldn't extract action_id"); + } + const evdat = minter.interface.parseLog(log); + const action_id = evdat.args[0].toString(); + return action_id; + } + const isApprovedForMinter = async (id, signer, _txFees) => { + const erc = __1.NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + signer + ); + return await __1.NFT_METHOD_MAP[id.native.contractType].approved( + erc, + await signer.getAddress(), + minter_addr, + id.native.tokenId, + params.nonce === 0x1d ? {} : undefined + ); + }; + const approveForMinter = async (id, sender, txFees) => { + const isApproved = await isApprovedForMinter(id, sender, txFees); + if (isApproved) { + return undefined; + } + const erc = __1.NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + sender + ); + const receipt = await __1.NFT_METHOD_MAP[id.native.contractType].approve( + erc, + minter_addr, + id.native.tokenId, + txnUnderpricedPolyWorkaround, + params.nonce === 0x1d ? {} : undefined + ); + await receipt.wait(); + const erc20 = xpnet_web3_contracts_1.PaymentToken__factory.connect( + params.paymentTokenAddress, + sender + ); + const approval = await erc20.approve( + minter_addr, + ethers_1.BigNumber.from(txFees.toString()) + ); + return approval.hash; + }; + const base = await baseWeb3HelperFactory(params.provider); + return { + ...base, + XpNft: params.erc721_addr, + XpNft1155: params.erc1155_addr, + approveForMinter, + getProvider: () => provider, + async estimateValidateUnfreezeNft(_to, _id, _mW) { + const gas = await provider.getGasPrice(); + return new bignumber_js_1.default(gas.mul(150000).toString()); + }, + getFeeMargin() { + return params.feeMargin; + }, + isApprovedForMinter, + preTransfer: (s, id, _fee) => approveForMinter(id, s, _fee), + extractAction, + async isContractAddress(address) { + const code = await provider.getCode(address); + return code !== "0x"; + }, + getNonce: () => params.nonce, + async preTransferRawTxn(id, address, _value) { + const isApproved = await isApprovedForMinter( + id, + new ethers_1.VoidSigner(address, provider), + _value + ); + if (isApproved) { + return undefined; + } + const erc = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + id.native.contract, + new ethers_1.VoidSigner(address, provider) + ); + const approvetxn = await erc.populateTransaction.approve( + minter_addr, + id.native.tokenId + ); + return approvetxn; + }, + async extractTxnStatus(txn) { + const status = (await (await provider.getTransaction(txn)).wait()).status; + if (status === undefined) { + return __1.TransactionStatus.PENDING; + } + if (status === 1) { + return __1.TransactionStatus.SUCCESS; + } else if (status === 0) { + return __1.TransactionStatus.FAILURE; + } + return __1.TransactionStatus.UNKNOWN; + }, + async getTokenURI(contract, tokenId) { + if (ethers_1.ethers.utils.isAddress(contract) && tokenId) { + const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + contract, + provider + ); + return await erc721.tokenURI(tokenId).catch(() => ""); + } + return ""; + }, + async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { + const tx = await minter + .connect(signer) + .populateTransaction.withdrawNftBatch( + to, + chainNonce, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + nfts[0].native.contract, + ethers_1.BigNumber.from(txFees.toString()) + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + // await notifyValidator( + // res.hash, + // await extractAction(res), + // "Unfreeze", + // chainNonce.toString(), + // txFees.toString(), + // await signer.getAddress(), + // to, + // res.data + // ); + await notifyValidator(res.hash); + return res; + }, + async transferNftBatchToForeign( + signer, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const tx = await minter + .connect(signer) + .populateTransaction.freezeErc1155Batch( + nfts[0].native.contract, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + chainNonce, + to, + mintWith, + ethers_1.BigNumber.from(txFees.toString()) + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + await notifyValidator(res.hash); + return res; + }, + async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { + const gasPrice = await w3.getGasPrice(); + const gas = 40000 + 60000 * nfts.length; + return new bignumber_js_1.default(gasPrice.mul(gas).toString()); + }, + async estimateValidateUnfreezeNftBatch(_to, nfts) { + const gasPrice = await w3.getGasPrice(); + const gas = 40000 + 60000 * nfts.length; + return new bignumber_js_1.default(gasPrice.mul(gas).toString()); + }, + createWallet(privateKey) { + return new ethers_1.Wallet(privateKey, provider); + }, + async transferNftToForeign( + sender, + chain_nonce, + to, + id, + txFees, + mintWith, + gasLimit = undefined + ) { + await approveForMinter(id, sender, txFees); + const method = __1.NFT_METHOD_MAP[id.native.contractType].freeze; + const tx = await minter + .connect(sender) + .populateTransaction[method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + ethers_1.BigNumber.from(txFees.toString()), + { + gasLimit, + } + ); + await txnUnderpricedPolyWorkaround(tx); + const txr = await sender.sendTransaction(tx).catch((e) => { + if (params.nonce === 33) { + return e; + } else throw e; + }); + let txHash; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = txr["transactionId"]; + } + if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = txr["returnedHash"] || txr.hash; + } else { + //@ts-ignore checked normal evm + txHash = txr.hash; + } + await notifyValidator( + //@ts-ignore + txHash, + await extractAction(await getTransaction(txHash)), + "Transfer", + chain_nonce, + txFees.toString(), + await sender.getAddress(), + to, + id.uri, + id.native.tokenId, + id.native.contract + ); + return params.nonce === 33 ? await provider.getTransaction(txHash) : txr; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const txn = await minter + .connect(sender) + .populateTransaction.withdrawNft( + to, + nonce, + id.native.tokenId, + id.native.contract, + ethers_1.BigNumber.from(txFees.toString()) + ); + await txnUnderpricedPolyWorkaround(txn); + const res = await sender.sendTransaction(txn); + await notifyValidator( + res.hash, + await extractAction(res), + "Unfreeze", + Number(nonce), + txFees.toString(), + await sender.getAddress(), + to, + id.uri, + id.native.tokenId, + id.native.contract + ); + return res; + }, + async estimateValidateTransferNft(_to, _nftUri, _mintWith) { + const gas = await provider.getGasPrice(); + return new bignumber_js_1.default(gas.mul(150000).toString()); + }, + validateAddress(adr) { + return Promise.resolve(ethers_1.ethers.utils.isAddress(adr)); + }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract); + }, + }; +} +exports.web3ERC20HelperFactory = web3ERC20HelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViM19lcmMyMC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjNfZXJjMjAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBQ3JDLG1DQVFnQjtBQUVoQiwrREFLOEI7QUFDOUIsMEJBU1k7QUFDWixrREFBMEI7QUFFMUI7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBa0I7SUFFbEIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBRTNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBYSxF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 diff --git a/dist/helpers/web3_erc20.ts b/dist/helpers/web3_erc20.ts new file mode 100644 index 000000000..d9077db42 --- /dev/null +++ b/dist/helpers/web3_erc20.ts @@ -0,0 +1,466 @@ +/** + * Web3 Implementation for cross chain traits + * @module + */ +import BigNumber from "bignumber.js"; +import { + BigNumber as EthBN, + ContractTransaction, + ethers, + PopulatedTransaction, + Signer, + VoidSigner, + Wallet, +} from "ethers"; +import { Provider, TransactionResponse } from "@ethersproject/providers"; +import { + Erc1155Minter__factory, + MinterERC20__factory, + UserNftMinter__factory, + PaymentToken__factory, +} from "xpnet-web3-contracts"; +import { + BaseWeb3Helper, + EthNftInfo, + MintArgs, + NFT_METHOD_MAP, + NftInfo, + TransactionStatus, + Web3Helper, + Web3Params, +} from ".."; +import axios from "axios"; + +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +export async function baseWeb3HelperFactory( + provider: Provider +): Promise { + const w3 = provider; + + return { + async balance(address: string): Promise { + const bal = await w3.getBalance(address); + + // ethers BigNumber is not compatible with our bignumber + return new BigNumber(bal.toString()); + }, + async deployErc721(owner: Signer): Promise { + const factory = new UserNftMinter__factory(owner); + const contract = await factory.deploy(); + + return contract.address; + }, + async mintNftErc1155(owner: Signer, { contract }) { + const erc1155 = Erc1155Minter__factory.connect(contract!, owner); + const tx = await erc1155.mintNft(await owner.getAddress()); + + return tx; + }, + async mintNft( + owner: Signer, + { contract, uri }: MintArgs + ): Promise { + const erc721 = UserNftMinter__factory.connect(contract!, owner); + + const txm = await erc721.mint(uri, { gasLimit: 1000000 }); + return txm; + }, + }; +} + +export type Web3ERC20Params = Web3Params & { + paymentTokenAddress: string; +}; + +export async function web3ERC20HelperFactory( + params: Web3ERC20Params +): Promise { + const txnUnderpricedPolyWorkaround = + params.nonce == 7 + ? async (utx: PopulatedTransaction) => { + const res = await axios + .get( + "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" + ) + .catch(async () => { + return await axios.get( + "https://gasstation-mainnet.matic.network/v2" + ); + }); + const { result, fast } = res.data; + const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; + + if (trackerGas) { + const sixtyGwei = ethers.utils.parseUnits( + Math.ceil(trackerGas).toString(), + "gwei" + ); + utx.maxFeePerGas = sixtyGwei; + utx.maxPriorityFeePerGas = sixtyGwei; + } + } + : () => Promise.resolve(); + const w3 = params.provider; + const { minter_addr, provider } = params; + const minter = MinterERC20__factory.connect(minter_addr, provider); + + async function notifyValidator( + fromHash: string, + actionId?: string, + type?: string, + toChain?: number, + txFees?: string, + senderAddress?: string, + targetAddress?: string, + nftUri?: string, + tokenId?: string, + contract?: string + ): Promise { + await params.notifier.notifyWeb3( + params.nonce, + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ); + } + + async function getTransaction(hash: string) { + let trx; + let fails = 0; + while (!trx && fails < 7) { + trx = await provider.getTransaction(hash); + await new Promise((resolve) => + setTimeout(() => resolve("wait"), 5000 + fails * 2) + ); + fails++; + } + + return trx as TransactionResponse; + } + + async function extractAction(txr: TransactionResponse): Promise { + const receipt = await txr.wait(); + const log = receipt.logs.find((log) => log.address === minter.address); + if (log === undefined) { + throw Error("Couldn't extract action_id"); + } + + const evdat = minter.interface.parseLog(log); + const action_id: string = evdat.args[0].toString(); + return action_id; + } + + const isApprovedForMinter = async ( + id: NftInfo, + signer: Signer, + _txFees: BigNumber + ) => { + const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + signer + ); + return await NFT_METHOD_MAP[id.native.contractType].approved( + erc as any, + await signer.getAddress(), + minter_addr, + id.native.tokenId, + params.nonce === 0x1d ? {} : undefined + ); + }; + + const approveForMinter = async ( + id: NftInfo, + sender: Signer, + txFees: BigNumber + ) => { + const isApproved = await isApprovedForMinter(id, sender, txFees); + if (isApproved) { + return undefined; + } + const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + sender + ); + + const receipt = await NFT_METHOD_MAP[id.native.contractType].approve( + erc as any, + minter_addr, + id.native.tokenId, + txnUnderpricedPolyWorkaround, + params.nonce === 0x1d ? {} : undefined + ); + await receipt.wait(); + + const erc20 = PaymentToken__factory.connect( + params.paymentTokenAddress, + sender + ); + const approval = await erc20.approve( + minter_addr, + EthBN.from(txFees.toString()) + ); + + return approval.hash; + }; + + const base = await baseWeb3HelperFactory(params.provider); + + return { + ...base, + XpNft: params.erc721_addr, + XpNft1155: params.erc1155_addr, + approveForMinter, + getProvider: () => provider, + async estimateValidateUnfreezeNft(_to, _id, _mW) { + const gas = await provider.getGasPrice(); + return new BigNumber(gas.mul(150_000).toString()); + }, + getFeeMargin() { + return params.feeMargin; + }, + isApprovedForMinter, + preTransfer: (s, id, _fee) => approveForMinter(id, s, _fee), + extractAction, + async isContractAddress(address) { + const code = await provider.getCode(address); + return code !== "0x"; + }, + getNonce: () => params.nonce, + async preTransferRawTxn(id, address, _value) { + const isApproved = await isApprovedForMinter( + id, + new VoidSigner(address, provider), + _value! + ); + + if (isApproved) { + return undefined; + } + + const erc = UserNftMinter__factory.connect( + id.native.contract, + new VoidSigner(address, provider) + ); + + const approvetxn = await erc.populateTransaction.approve( + minter_addr, + id.native.tokenId + ); + + return approvetxn; + }, + + async extractTxnStatus(txn) { + const status = (await (await provider.getTransaction(txn)).wait()).status; + if (status === undefined) { + return TransactionStatus.PENDING; + } + if (status === 1) { + return TransactionStatus.SUCCESS; + } else if (status === 0) { + return TransactionStatus.FAILURE; + } + return TransactionStatus.UNKNOWN; + }, + async getTokenURI(contract, tokenId) { + if (ethers.utils.isAddress(contract) && tokenId) { + const erc721 = UserNftMinter__factory.connect(contract!, provider); + return await erc721.tokenURI(tokenId).catch(() => ""); + } + return ""; + }, + async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { + const tx = await minter + .connect(signer) + .populateTransaction.withdrawNftBatch( + to, + chainNonce, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + nfts[0].native.contract, + EthBN.from(txFees.toString()) + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + + // await notifyValidator( + // res.hash, + // await extractAction(res), + // "Unfreeze", + // chainNonce.toString(), + // txFees.toString(), + // await signer.getAddress(), + // to, + // res.data + // ); + await notifyValidator(res.hash); + + return res; + }, + async transferNftBatchToForeign( + signer, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const tx = await minter + .connect(signer) + .populateTransaction.freezeErc1155Batch( + nfts[0].native.contract, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + chainNonce, + to, + mintWith, + EthBN.from(txFees.toString()) + ); + await txnUnderpricedPolyWorkaround(tx); + + const res = await signer.sendTransaction(tx); + + await notifyValidator(res.hash); + + return res; + }, + async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { + const gasPrice = await w3.getGasPrice(); + const gas = 40_000 + 60_000 * nfts.length; + return new BigNumber(gasPrice.mul(gas).toString()); + }, + async estimateValidateUnfreezeNftBatch(_to, nfts) { + const gasPrice = await w3.getGasPrice(); + const gas = 40_000 + 60_000 * nfts.length; + return new BigNumber(gasPrice.mul(gas).toString()); + }, + createWallet(privateKey: string): Wallet { + return new Wallet(privateKey, provider); + }, + async transferNftToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: NftInfo, + txFees: BigNumber, + mintWith: string, + gasLimit: ethers.BigNumberish | undefined = undefined + ): Promise { + await approveForMinter(id, sender, txFees); + const method = NFT_METHOD_MAP[id.native.contractType].freeze; + + const tx = await minter + .connect(sender) + .populateTransaction[method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + EthBN.from(txFees.toString()), + { + gasLimit, + } + ); + await txnUnderpricedPolyWorkaround(tx); + + const txr: TransactionResponse | unknown = await sender + .sendTransaction(tx) + .catch((e) => { + if (params.nonce === 33) { + return e; + } else throw e; + }); + let txHash: string; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = txr["transactionId"]; + } + if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = txr["returnedHash"] || txr.hash; + } else { + //@ts-ignore checked normal evm + txHash = txr.hash; + } + + await notifyValidator( + //@ts-ignore + txHash, + await extractAction(await getTransaction(txHash)), + "Transfer", + chain_nonce, + txFees.toString(), + await sender.getAddress(), + to, + id.uri, + id.native.tokenId, + id.native.contract + ); + return params.nonce === 33 + ? await provider.getTransaction(txHash) + : (txr as TransactionResponse); + }, + async unfreezeWrappedNft( + sender: Signer, + to: string, + id: NftInfo, + txFees: BigNumber, + nonce + ): Promise { + const txn = await minter + .connect(sender) + .populateTransaction.withdrawNft( + to, + nonce, + id.native.tokenId, + id.native.contract, + EthBN.from(txFees.toString()) + ); + + await txnUnderpricedPolyWorkaround(txn); + const res = await sender.sendTransaction(txn); + + await notifyValidator( + res.hash, + await extractAction(res), + "Unfreeze", + Number(nonce), + txFees.toString(), + await sender.getAddress(), + to, + id.uri, + id.native.tokenId, + id.native.contract + ); + + return res; + }, + async estimateValidateTransferNft( + _to: string, + _nftUri: NftInfo, + _mintWith + ): Promise { + const gas = await provider.getGasPrice(); + + return new BigNumber(gas.mul(150_000).toString()); + }, + validateAddress(adr) { + return Promise.resolve(ethers.utils.isAddress(adr)); + }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract); + }, + }; +} diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 000000000..eab1c8f9d --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,11 @@ +export * from "./helpers/chain"; +export * from "./helpers/elrond"; +export * from "./helpers/web3"; +export * from "./helpers/tron"; +export * from "./socket"; +export * from "./emitter"; +export * from "./factory"; +export * from "./consts"; +export * from "./config"; +export { ChainNonce } from "./type-utils"; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map new file mode 100644 index 000000000..a50ed3812 --- /dev/null +++ b/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 000000000..a4bdf69ff --- /dev/null +++ b/dist/index.js @@ -0,0 +1,42 @@ +"use strict"; +var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if ( + !desc || + ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k]; + }, + }; + } + Object.defineProperty(o, k2, desc); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); +var __exportStar = + (this && this.__exportStar) || + function (m, exports) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) + __createBinding(exports, m, p); + }; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./helpers/chain"), exports); +__exportStar(require("./helpers/elrond"), exports); +__exportStar(require("./helpers/web3"), exports); +__exportStar(require("./helpers/tron"), exports); +__exportStar(require("./socket"), exports); +__exportStar(require("./emitter"), exports); +__exportStar(require("./factory"), exports); +__exportStar(require("./consts"), exports); +__exportStar(require("./config"), exports); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQyxtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLDRDQUEwQjtBQUMxQiwyQ0FBeUI7QUFDekIsMkNBQXlCIn0= diff --git a/dist/index.ts b/dist/index.ts new file mode 100644 index 000000000..493bce929 --- /dev/null +++ b/dist/index.ts @@ -0,0 +1,10 @@ +export * from "./helpers/chain"; +export * from "./helpers/elrond"; +export * from "./helpers/web3"; +export * from "./helpers/tron"; +export * from "./socket"; +export * from "./emitter"; +export * from "./factory"; +export * from "./consts"; +export * from "./config"; +export { ChainNonce } from "./type-utils"; diff --git a/dist/notifier/index.d.ts b/dist/notifier/index.d.ts new file mode 100644 index 000000000..ea992af4a --- /dev/null +++ b/dist/notifier/index.d.ts @@ -0,0 +1,33 @@ +export type EvNotifier = ReturnType; +export declare function evNotifier(url: string): { + notifyWeb3( + fromChain: number, + fromHash: string, + actionId?: string, + type?: string, + toChain?: number, + txFees?: string, + senderAddress?: string, + targetAddress?: string, + nftUri?: string, + tokenId?: string, + contract?: string + ): Promise; + notifyTron(txHash: string): Promise; + notifyElrond( + txHash: string, + sender: string, + uris: string[], + action_id: string | undefined + ): Promise; + notifyTezos(txHash: string): Promise; + notifyAlgorand(txHash: string): Promise; + notifySecret(txHash: string, vk: string): Promise; + notifySolana(txHash: string): Promise; + notifyNear(txHash: string): Promise; + notifyDfinity(actionId: string): Promise; + notifyTon(txHash: string): Promise; + notifyAptos(txHash: string): Promise; + notifyEVM(nonce: number, address: string): Promise; +}; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/notifier/index.d.ts.map b/dist/notifier/index.d.ts.map new file mode 100644 index 000000000..801276c09 --- /dev/null +++ b/dist/notifier/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM,aACL,MAAM,SACV,MAAM,YACH,MAAM,WACP,MAAM,kBACC,MAAM,kBACN,MAAM,WACb,MAAM,YACL,MAAM,aACL,MAAM;uBAgBM,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAIjD"} \ No newline at end of file diff --git a/dist/notifier/index.js b/dist/notifier/index.js new file mode 100644 index 000000000..8baddfced --- /dev/null +++ b/dist/notifier/index.js @@ -0,0 +1,89 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.evNotifier = void 0; +const axios_1 = __importDefault(require("axios")); +function evNotifier(url) { + const api = axios_1.default.create({ + baseURL: url, + }); + return { + async notifyWeb3( + fromChain, + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ) { + await api.post("/tx/web3", { + chain_nonce: fromChain, + tx_hash: fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract, + }); + }, + async notifyTron(txHash) { + await api.post("/tx/tron", { + tx_hash: txHash, + }); + }, + async notifyElrond(txHash, sender, uris, action_id) { + await api.post("/tx/elrond", { + tx_hash: txHash, + sender, + uris, + action_id, + }); + }, + async notifyTezos(txHash) { + await api.post("/tx/tezos", { + tx_hash: txHash, + }); + }, + async notifyAlgorand(txHash) { + await api.post("/tx/algorand", { + tx_hash: txHash, + }); + }, + async notifySecret(txHash, vk) { + await api.post("/tx/scrt", { tx_hash: txHash, vk: vk }); + }, + async notifySolana(txHash) { + await api.post("/tx/solana", { tx_hash: txHash }); + }, + async notifyNear(txHash) { + await api.post("/tx/near", { tx_hash: txHash }); + }, + async notifyDfinity(actionId) { + await api.post("/tx/dfinity", { action_id: actionId }); + }, + async notifyTon(txHash) { + await api.post("/tx/ton", { tx_hash: txHash }); + }, + async notifyAptos(txHash) { + await api.post("/tx/aptos", { tx_hash: txHash }); + }, + async notifyEVM(nonce, address) { + await api.post("/whitelist", { contract: address, chain_nonce: nonce }); + }, + }; +} +exports.evNotifier = evNotifier; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSTFCLFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtZQUVqQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sYUFBYTtnQkFDYixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBYyxFQUNkLE1BQWMsRUFDZCxJQUFjLEVBQ2QsU0FBNkI7WUFFN0IsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsTUFBTTtnQkFDTixJQUFJO2dCQUNKLFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1lBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQWM7WUFDakMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLE1BQU07YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLEVBQVU7WUFDM0MsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYztZQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7WUFDbEMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQWM7WUFDNUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlO1lBQzVDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQW5GRCxnQ0FtRkMifQ== diff --git a/dist/notifier/index.ts b/dist/notifier/index.ts new file mode 100644 index 000000000..2d15f528b --- /dev/null +++ b/dist/notifier/index.ts @@ -0,0 +1,88 @@ +import axios from "axios"; + +export type EvNotifier = ReturnType; + +export function evNotifier(url: string) { + const api = axios.create({ + baseURL: url, + }); + + return { + async notifyWeb3( + fromChain: number, + fromHash: string, + actionId?: string, + type?: string, + toChain?: number, + txFees?: string, + senderAddress?: string, + targetAddress?: string, + nftUri?: string, + tokenId?: string, + contract?: string + ) { + await api.post("/tx/web3", { + chain_nonce: fromChain, + tx_hash: fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract, + }); + }, + async notifyTron(txHash: string) { + await api.post("/tx/tron", { + tx_hash: txHash, + }); + }, + async notifyElrond( + txHash: string, + sender: string, + uris: string[], + action_id: string | undefined + ) { + await api.post("/tx/elrond", { + tx_hash: txHash, + sender, + uris, + action_id, + }); + }, + async notifyTezos(txHash: string) { + await api.post("/tx/tezos", { + tx_hash: txHash, + }); + }, + async notifyAlgorand(txHash: string) { + await api.post("/tx/algorand", { + tx_hash: txHash, + }); + }, + async notifySecret(txHash: string, vk: string) { + await api.post("/tx/scrt", { tx_hash: txHash, vk: vk }); + }, + async notifySolana(txHash: string) { + await api.post("/tx/solana", { tx_hash: txHash }); + }, + async notifyNear(txHash: string) { + await api.post("/tx/near", { tx_hash: txHash }); + }, + async notifyDfinity(actionId: string) { + await api.post("/tx/dfinity", { action_id: actionId }); + }, + async notifyTon(txHash: string) { + await api.post("/tx/ton", { tx_hash: txHash }); + }, + async notifyAptos(txHash: string) { + await api.post("/tx/aptos", { tx_hash: txHash }); + }, + async notifyEVM(nonce: number, address: string) { + await api.post("/whitelist", { contract: address, chain_nonce: nonce }); + }, + }; +} diff --git a/dist/scripts/deploy_tron.d.ts b/dist/scripts/deploy_tron.d.ts new file mode 100644 index 000000000..32f4d23b0 --- /dev/null +++ b/dist/scripts/deploy_tron.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=deploy_tron.d.ts.map diff --git a/dist/scripts/deploy_tron.d.ts.map b/dist/scripts/deploy_tron.d.ts.map new file mode 100644 index 000000000..d44822911 --- /dev/null +++ b/dist/scripts/deploy_tron.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"deploy_tron.d.ts","sourceRoot":"","sources":["../../src/scripts/deploy_tron.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/scripts/deploy_tron.js b/dist/scripts/deploy_tron.js new file mode 100644 index 000000000..421e9b895 --- /dev/null +++ b/dist/scripts/deploy_tron.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +const tron_1 = require("../helpers/tron"); +//@ts-expect-error no typings, cope +const tronweb_1 = __importDefault(require("tronweb")); +const dotenv_1 = require("dotenv"); +(0, dotenv_1.config)(); +(async () => { + // Testnet + // const api = "https://api.shasta.trongrid.io"; + // const signer = process.env.TRON_SK!; + // const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; + // const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; + // const frostGroupKey = process.env.FROST_GROUP_KEY!; + // Mainnet + const api = "https://api.trongrid.io"; + const signer = process.env.TRON_SK; + const xpnftWrappedUri = "https://wnfts.xp.network/w/"; + const xpnft1155WrappedUri = "https://wnfts.xp.network/w/{id}"; + const frostGroupKey = process.env.FROST_GROUP_KEY; + const prov = new tronweb_1.default({ fullHost: api }); + const tron = await (0, tron_1.baseTronHelperFactory)(prov); + const contracts = await tron.deployMinter( + signer, + frostGroupKey, + xpnftWrappedUri, + xpnft1155WrappedUri + ); + console.log(contracts); +})().catch((e) => console.error(e)); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3Ryb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9kZXBsb3lfdHJvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBDQUF3RDtBQUN4RCxtQ0FBbUM7QUFDbkMsc0RBQThCO0FBQzlCLG1DQUFnQztBQUNoQyxJQUFBLGVBQU0sR0FBRSxDQUFDO0FBRVQsQ0FBQyxLQUFLLElBQUksRUFBRTtJQUNWLFVBQVU7SUFDVixnREFBZ0Q7SUFDaEQsdUNBQXVDO0lBQ3ZDLHFFQUFxRTtJQUNyRSw2RUFBNkU7SUFDN0Usc0RBQXNEO0lBRXRELFVBQVU7SUFDVixNQUFNLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQztJQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQVEsQ0FBQztJQUNwQyxNQUFNLGVBQWUsR0FBRyw2QkFBNkIsQ0FBQztJQUN0RCxNQUFNLG1CQUFtQixHQUFHLGlDQUFpQyxDQUFDO0lBQzlELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZ0IsQ0FBQztJQUVuRCxNQUFNLElBQUksR0FBRyxJQUFJLGlCQUFPLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsNEJBQXFCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFL0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUN2QyxNQUFNLEVBQ04sYUFBYSxFQUNiLGVBQWUsRUFDZixtQkFBbUIsQ0FDcEIsQ0FBQztJQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyJ9 diff --git a/dist/scripts/deploy_tron.ts b/dist/scripts/deploy_tron.ts new file mode 100644 index 000000000..8169bb09a --- /dev/null +++ b/dist/scripts/deploy_tron.ts @@ -0,0 +1,33 @@ +import { baseTronHelperFactory } from "../helpers/tron"; +//@ts-expect-error no typings, cope +import TronWeb from "tronweb"; +import { config } from "dotenv"; +config(); + +(async () => { + // Testnet + // const api = "https://api.shasta.trongrid.io"; + // const signer = process.env.TRON_SK!; + // const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; + // const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; + // const frostGroupKey = process.env.FROST_GROUP_KEY!; + + // Mainnet + const api = "https://api.trongrid.io"; + const signer = process.env.TRON_SK!; + const xpnftWrappedUri = "https://wnfts.xp.network/w/"; + const xpnft1155WrappedUri = "https://wnfts.xp.network/w/{id}"; + const frostGroupKey = process.env.FROST_GROUP_KEY!; + + const prov = new TronWeb({ fullHost: api }); + const tron = await baseTronHelperFactory(prov); + + const contracts = await tron.deployMinter( + signer, + frostGroupKey, + xpnftWrappedUri, + xpnft1155WrappedUri + ); + + console.log(contracts); +})().catch((e) => console.error(e)); diff --git a/dist/socket.d.ts b/dist/socket.d.ts new file mode 100644 index 000000000..50d6a1134 --- /dev/null +++ b/dist/socket.d.ts @@ -0,0 +1,42 @@ +import { ManagerOptions, SocketOptions } from "socket.io-client"; +import { ClaimNftInfo } from "./helpers/algorand"; +/** + * Tracker for cross chain transaction + */ +export type TxnSocketHelper = { + /** + * + * @param chain Nonce of the target chain + * @param action_id Identifier for tracking a cross chain transaction + * @returns transaction hash on the foreign chain + */ + waitTxHash(chain: number, action_id: string): Promise; +}; +export type AlgorandSocketHelper = { + waitAlgorandNft( + sourceChain: number, + receiver: string, + action_id: string + ): Promise; + claimNfts(receiver: string): Promise; + cleanNfts(owner: string): Promise; +}; +type DbClaimInfo = { + receiver: string; + app_id: string; + nft_id: string; + action_id: string; + inserted_at: Date; +}; +/** + * Create a [[SocketHelper]] + * + * @param uri URI of the Migration-Validator socket api + * @param options socket.io options + */ +export declare function socketHelper( + uri: string, + options?: Partial +): TxnSocketHelper & AlgorandSocketHelper; +export {}; +//# sourceMappingURL=socket.d.ts.map diff --git a/dist/socket.d.ts.map b/dist/socket.d.ts.map new file mode 100644 index 000000000..a37ab3a5b --- /dev/null +++ b/dist/socket.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BlD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC;AAsFF,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,cAAc,CAAC,GAChD,eAAe,GAAG,oBAAoB,CA0DxC"} \ No newline at end of file diff --git a/dist/socket.js b/dist/socket.js new file mode 100644 index 000000000..9a5fe10d1 --- /dev/null +++ b/dist/socket.js @@ -0,0 +1,115 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.socketHelper = void 0; +const axios_1 = __importDefault(require("axios")); +const socket_io_client_1 = require("socket.io-client"); +function pairAction(sourceChain, action_id) { + const numId = parseInt(action_id); + return numId >= sourceChain + ? numId * numId + sourceChain + numId + : numId + sourceChain * sourceChain; +} +function socketResBuf() { + const inner = {}; + const requireChain = (chain_id) => { + if (inner[chain_id] === undefined) { + inner[chain_id] = {}; + } + }; + return { + getResolver(chain_id, action_id) { + requireChain(chain_id); + return inner[chain_id][action_id]?.resolve; + }, + setResolver(chain_id, action_id, resolver) { + requireChain(chain_id); + inner[chain_id][action_id] = { resolve: resolver }; + }, + getEventRes(chain_id, action_id) { + requireChain(chain_id); + return inner[chain_id][action_id]?.event_res; + }, + setEventRes(chain_id, action_id, res) { + requireChain(chain_id); + inner[chain_id][action_id] = { event_res: res }; + }, + unsetAction(chain_id, action_id) { + requireChain(chain_id); + inner[chain_id][action_id] = undefined; + }, + }; +} +function add_event(buf, chain, id, data) { + const resolve = buf.getResolver(chain, id); + if (resolve === undefined) { + buf.setEventRes(chain, id, data); + return; + } + resolve(data); +} +async function waitSocketData(buf, chain, action_id) { + const data = buf.getEventRes(chain, action_id); + if (data !== undefined) { + buf.unsetAction(chain, action_id); + return data; + } + const dataP = new Promise((r) => { + buf.setResolver(chain, action_id, r); + }); + return await dataP; +} +/** + * Create a [[SocketHelper]] + * + * @param uri URI of the Migration-Validator socket api + * @param options socket.io options + */ +function socketHelper(uri, options) { + const socket = (0, socket_io_client_1.io)(uri, options); + const txbuf = socketResBuf(); + const algoBuf = socketResBuf(); + const dbApi = axios_1.default.create({ + baseURL: uri, + }); + socket.on("tx_executed_event", (chain, action_id, hash) => { + add_event(txbuf, chain, action_id, hash); + }); + socket.on("algorand_minted_event", (_, action_id, app_id, nft_id) => + add_event(algoBuf, 15, action_id, { + appId: app_id, + nftId: nft_id, + }) + ); + return { + async waitTxHash(chain, action_id) { + return await waitSocketData(txbuf, chain, action_id); + }, + async waitAlgorandNft(sourceChain, receiver, action_id) { + // Validator sends a an action paired with chain id + // this is implementation dependent on validator + const paired = pairAction(sourceChain, action_id).toString(); + const dbData = await dbApi.get(`/algorand_event/${receiver}/${paired}`); + if (dbData.data.app_id) { + return { + appId: parseInt(dbData.data.app_id), + nftId: parseInt(dbData.data.nft_id), + }; + } + return await waitSocketData(algoBuf, 15, paired); + }, + async claimNfts(receiver) { + const dbData = await dbApi.get(`/algorand_event/${receiver}`); + return dbData.data.result; + }, + async cleanNfts(owner) { + await dbApi.delete(`/algorand_event/${owner}`); + }, + }; +} +exports.socketHelper = socketHelper; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsdURBQXFFO0FBc0RyRSxTQUFTLFVBQVUsQ0FBQyxXQUFtQixFQUFFLFNBQWlCO0lBQ3hELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxPQUFPLEtBQUssSUFBSSxXQUFXO1FBQ3pCLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLFdBQVcsR0FBRyxLQUFLO1FBQ3JDLENBQUMsQ0FBQyxLQUFLLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxZQUFZO0lBQ25CLE1BQU0sS0FBSyxHQUF5QixFQUFFLENBQUM7SUFFdkMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsV0FBVyxDQUNULFFBQWdCLEVBQ2hCLFNBQWlCO1lBRWpCLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUM7UUFDN0MsQ0FBQztRQUNELFdBQVcsQ0FDVCxRQUFnQixFQUNoQixTQUFpQixFQUNqQixRQUEyQjtZQUUzQixZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFDRCxXQUFXLENBQUMsUUFBZ0IsRUFBRSxTQUFpQjtZQUM3QyxZQUFZ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 diff --git a/dist/socket.ts b/dist/socket.ts new file mode 100644 index 000000000..c5f56deb0 --- /dev/null +++ b/dist/socket.ts @@ -0,0 +1,215 @@ +import axios from "axios"; +import { io, ManagerOptions, SocketOptions } from "socket.io-client"; +import { ClaimNftInfo } from "./helpers/algorand"; + +type ChainAwaiter = { + [action_id: string]: + | { + resolve?: (data: T) => void; + event_res?: T; + } + | undefined; +}; + +type SocketResInnerBuf = { + [chain: number]: ChainAwaiter; +}; + +type SocketResBuf = { + getResolver( + chain_id: number, + action_id: string + ): ((data: T) => void) | undefined; + setResolver( + chain_id: number, + action_id: string, + resolver: (data: T) => void + ): void; + getEventRes(chain_id: number, action_id: string): T | undefined; + setEventRes(chain_id: number, action_id: string, res: T): void; + unsetAction(chain_id: number, action_id: string): void; +}; + +/** + * Tracker for cross chain transaction + */ +export type TxnSocketHelper = { + /** + * + * @param chain Nonce of the target chain + * @param action_id Identifier for tracking a cross chain transaction + * @returns transaction hash on the foreign chain + */ + waitTxHash(chain: number, action_id: string): Promise; +}; + +export type AlgorandSocketHelper = { + waitAlgorandNft( + sourceChain: number, + receiver: string, + action_id: string + ): Promise; + claimNfts(receiver: string): Promise; + cleanNfts(owner: string): Promise; +}; + +function pairAction(sourceChain: number, action_id: string): number { + const numId = parseInt(action_id); + return numId >= sourceChain + ? numId * numId + sourceChain + numId + : numId + sourceChain * sourceChain; +} + +function socketResBuf(): SocketResBuf { + const inner: SocketResInnerBuf = {}; + + const requireChain = (chain_id: number) => { + if (inner[chain_id] === undefined) { + inner[chain_id] = {}; + } + }; + + return { + getResolver( + chain_id: number, + action_id: string + ): ((data: T) => void) | undefined { + requireChain(chain_id); + + return inner[chain_id][action_id]?.resolve; + }, + setResolver( + chain_id: number, + action_id: string, + resolver: (data: T) => void + ): void { + requireChain(chain_id); + + inner[chain_id][action_id] = { resolve: resolver }; + }, + getEventRes(chain_id: number, action_id: string): T | undefined { + requireChain(chain_id); + + return inner[chain_id][action_id]?.event_res; + }, + setEventRes(chain_id: number, action_id: string, res: T): void { + requireChain(chain_id); + + inner[chain_id][action_id] = { event_res: res }; + }, + unsetAction(chain_id: number, action_id: string): void { + requireChain(chain_id); + + inner[chain_id][action_id] = undefined; + }, + }; +} + +function add_event( + buf: SocketResBuf, + chain: number, + id: string, + data: T +) { + const resolve = buf.getResolver(chain, id); + if (resolve === undefined) { + buf.setEventRes(chain, id, data); + return; + } + resolve(data); +} + +async function waitSocketData( + buf: SocketResBuf, + chain: number, + action_id: string +): Promise { + const data = buf.getEventRes(chain, action_id); + if (data !== undefined) { + buf.unsetAction(chain, action_id); + return data; + } + + const dataP: Promise = new Promise((r) => { + buf.setResolver(chain, action_id, r); + }); + + return await dataP; +} + +type DbClaimInfo = { + receiver: string; + app_id: string; + nft_id: string; + action_id: string; + inserted_at: Date; +}; + +/** + * Create a [[SocketHelper]] + * + * @param uri URI of the Migration-Validator socket api + * @param options socket.io options + */ +export function socketHelper( + uri: string, + options?: Partial +): TxnSocketHelper & AlgorandSocketHelper { + const socket = io(uri, options); + const txbuf: SocketResBuf = socketResBuf(); + const algoBuf: SocketResBuf = socketResBuf(); + const dbApi = axios.create({ + baseURL: uri, + }); + + socket.on( + "tx_executed_event", + (chain: number, action_id: string, hash: string) => { + add_event(txbuf, chain, action_id, hash); + } + ); + + socket.on( + "algorand_minted_event", + (_: number, action_id: string, app_id: number, nft_id: number) => + add_event(algoBuf, 15, action_id, { + appId: app_id, + nftId: nft_id, + }) + ); + + return { + async waitTxHash(chain: number, action_id: string): Promise { + return await waitSocketData(txbuf, chain, action_id); + }, + async waitAlgorandNft( + sourceChain: number, + receiver: string, + action_id: string + ): Promise { + // Validator sends a an action paired with chain id + // this is implementation dependent on validator + const paired = pairAction(sourceChain, action_id).toString(); + const dbData = await dbApi.get>( + `/algorand_event/${receiver}/${paired}` + ); + if (dbData.data.app_id) { + return { + appId: parseInt(dbData.data.app_id!), + nftId: parseInt(dbData.data.nft_id!), + }; + } + + return await waitSocketData(algoBuf, 15, paired); + }, + async claimNfts(receiver: string): Promise { + const dbData = await dbApi.get<{ result: DbClaimInfo[] }>( + `/algorand_event/${receiver}` + ); + return dbData.data.result; + }, + async cleanNfts(owner: string): Promise { + await dbApi.delete(`/algorand_event/${owner}`); + }, + }; +} diff --git a/dist/type-utils.d.ts b/dist/type-utils.d.ts new file mode 100644 index 000000000..8aa85ee2c --- /dev/null +++ b/dist/type-utils.d.ts @@ -0,0 +1,36 @@ +import { MetaMap, TransferNftForeign } from "."; +type TransferNftChain = TransferNftForeign< + Signer, + RawNft, + Resp +>; +export type ChainNonce = keyof MetaMap; +export type InferChainParam = MetaMap[K][1]; +export type InferChainH = MetaMap[K][0]; +export type InferSigner = K extends TransferNftChain< + infer S, + unknown, + unknown +> + ? S + : never; +export type InferNativeNft = K extends TransferNftChain< + any, + infer RawNft, + any +> + ? RawNft + : never; +export type ParamMap = { + set(k: T, v: InferChainParam | undefined): void; + get(k: T): InferChainParam | undefined; +}; +export type HelperMap = Map< + K, + InferChainH | undefined +>; +export type Mutable = { + -readonly [Key in keyof Type]: Type[Key]; +}; +export {}; +//# sourceMappingURL=type-utils.d.ts.map diff --git a/dist/type-utils.d.ts.map b/dist/type-utils.d.ts.map new file mode 100644 index 000000000..3d672292e --- /dev/null +++ b/dist/type-utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAEhD,KAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,kBAAkB,CAC9D,MAAM,EACN,MAAM,EACN,IAAI,CACL,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACrD,MAAM,CAAC,EACP,OAAO,EACP,OAAO,CACR,GACG,CAAC,GACD,KAAK,CAAC;AAEV,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACxD,GAAG,EACH,MAAM,MAAM,EACZ,GAAG,CACJ,GACG,MAAM,GACN,KAAK,CAAC;AAEV,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACzE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,GAAG,CAC/C,CAAC,EACD,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAC3B,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI;IAC1B,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;CACzC,CAAC"} \ No newline at end of file diff --git a/dist/type-utils.js b/dist/type-utils.js new file mode 100644 index 000000000..0a41d923f --- /dev/null +++ b/dist/type-utils.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ== diff --git a/dist/type-utils.ts b/dist/type-utils.ts new file mode 100644 index 000000000..df8dad30f --- /dev/null +++ b/dist/type-utils.ts @@ -0,0 +1,41 @@ +import { MetaMap, TransferNftForeign } from "."; + +type TransferNftChain = TransferNftForeign< + Signer, + RawNft, + Resp +>; + +export type ChainNonce = keyof MetaMap; + +export type InferChainParam = MetaMap[K][1]; +export type InferChainH = MetaMap[K][0]; +export type InferSigner = K extends TransferNftChain< + infer S, + unknown, + unknown +> + ? S + : never; + +export type InferNativeNft = K extends TransferNftChain< + any, + infer RawNft, + any +> + ? RawNft + : never; + +export type ParamMap = { + set(k: T, v: InferChainParam | undefined): void; + get(k: T): InferChainParam | undefined; +}; + +export type HelperMap = Map< + K, + InferChainH | undefined +>; + +export type Mutable = { + -readonly [Key in keyof Type]: Type[Key]; +}; From 8dd8a5219adb7f71b6c0480d148bf0c849864458 Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 14:20:06 +0500 Subject: [PATCH 829/956] testing --- dist/factory/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/factory/index.ts b/dist/factory/index.ts index ecc82ba0f..4e2f01115 100644 --- a/dist/factory/index.ts +++ b/dist/factory/index.ts @@ -705,7 +705,7 @@ export function ChainFactory( if (!chainLocal) throw new Error("Chain not found"); const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); - if (!params) throw new Error("An error occured"); + if (!params) throw new Error("Unable to get params"); const isAddressValid = await params.validateAddress(address); if (!isAddressValid) throw new Error("Address is not valid"); @@ -713,7 +713,7 @@ export function ChainFactory( await chainLocal.notifier.notifyEVM(chain, address); return { success: true }; } catch (error) { - throw new Error("An error occured"); + throw new Error("An error occured: " + error); } }, async transferSft(from, to, nft, sender, receiver, amt, fee?, mintWith?) { From 017e07ad1b576a5883812b3191d9b846528da888 Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 14:28:34 +0500 Subject: [PATCH 830/956] testing From 7866688af9222d41e1fc070f264acf8122e35a88 Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 14:50:15 +0500 Subject: [PATCH 831/956] testing --- dist/factory/index.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/factory/index.ts b/dist/factory/index.ts index 4e2f01115..d926be75a 100644 --- a/dist/factory/index.ts +++ b/dist/factory/index.ts @@ -704,16 +704,16 @@ export function ChainFactory( const chainLocal = cToP.get(chain); if (!chainLocal) throw new Error("Chain not found"); - const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); - if (!params) throw new Error("Unable to get params"); - const isAddressValid = await params.validateAddress(address); - if (!isAddressValid) throw new Error("Address is not valid"); + // const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); + // if (!params) throw new Error("Unable to get params"); + // const isAddressValid = await params.validateAddress(address); + // if (!isAddressValid) throw new Error("Address is not valid"); try { await chainLocal.notifier.notifyEVM(chain, address); return { success: true }; } catch (error) { - throw new Error("An error occured: " + error); + throw new Error("An error occured: " + error.message); } }, async transferSft(from, to, nft, sender, receiver, amt, fee?, mintWith?) { From 2440f3c7b11edb97affa22c3651019ae73eb3943 Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 16:39:55 +0500 Subject: [PATCH 832/956] refactor: remove checks temp --- src/factory/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index ecc82ba0f..c037c6c2d 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -704,10 +704,10 @@ export function ChainFactory( const chainLocal = cToP.get(chain); if (!chainLocal) throw new Error("Chain not found"); - const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); - if (!params) throw new Error("An error occured"); - const isAddressValid = await params.validateAddress(address); - if (!isAddressValid) throw new Error("Address is not valid"); + // const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); + // if (!params) throw new Error("An error occured"); + // const isAddressValid = await params.validateAddress(address); + // if (!isAddressValid) throw new Error("Address is not valid"); try { await chainLocal.notifier.notifyEVM(chain, address); From cda2b845fa93e7734b496aaa2ef56c5f04091c1c Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 16:52:05 +0500 Subject: [PATCH 833/956] build: update dist --- dist/factory/index.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/dist/factory/index.js b/dist/factory/index.js index dac316533..eec3e5c22 100644 --- a/dist/factory/index.js +++ b/dist/factory/index.js @@ -346,12 +346,10 @@ function ChainFactory(appConfig, chainParams) { async whitelistEVM(chain, address) { const chainLocal = cToP.get(chain); if (!chainLocal) throw new Error("Chain not found"); - const params = await consts_1.CHAIN_INFO.get(chain)?.constructor( - chainLocal - ); - if (!params) throw new Error("An error occured"); - const isAddressValid = await params.validateAddress(address); - if (!isAddressValid) throw new Error("Address is not valid"); + // const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); + // if (!params) throw new Error("An error occured"); + // const isAddressValid = await params.validateAddress(address); + // if (!isAddressValid) throw new Error("Address is not valid"); try { await chainLocal.notifier.notifyEVM(chain, address); return { success: true }; @@ -610,4 +608,4 @@ function ChainFactory(appConfig, chainParams) { exports.ChainFactory = ChainFactory; __exportStar(require("./factories"), exports); __exportStar(require("./cons"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLHNDQUE4QztBQUU5Qyw4Q0FBNEI7QUFFNUIsMEJBWVk7QUFDWixnRUFBcUM7QUFFckMsa0RBQTBCO0FBQzFCLGlDQU1nQjtBQUNoQixrREFBc0Q7QUFDdEQsNENBQStDO0FBQy9DLG1DQUF1QztBQUN2QyxrREFNNkI7QUFDN0Isc0RBQThCO0FBQzlCLHlDQUFtQztBQXdCbkMsZ0RBQTZEO0FBQzdELHVEQUltQztBQWdSbkMsU0FBUyxnQkFBZ0IsQ0FBQyxXQUFpQztJQUN6RCxNQUFNLElBQUksR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcs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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLHNDQUE4QztBQUU5Qyw4Q0FBNEI7QUFFNUIsMEJBWVk7QUFDWixnRUFBcUM7QUFFckMsa0RBQTBCO0FBQzFCLGlDQU1nQjtBQUNoQixrREFBc0Q7QUFDdEQsNENBQStDO0FBQy9DLG1DQUF1QztBQUN2QyxrREFNNkI7QUFDN0Isc0RBQThCO0FBQzlCLHlDQUFtQztBQXdCbkMsZ0RBQTZEO0FBQzdELHVEQUltQztBQWdSbkMsU0FBUyxnQkFBZ0IsQ0FBQyxXQUFpQztJQUN6RCxNQUFNLElBQUksR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcs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 From 57cdfb9eb1263162a95dcc46af5a5f943cff2efb Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 17:35:56 +0500 Subject: [PATCH 834/956] feat: add actionId --- src/factory/index.ts | 7 +++++-- src/notifier/index.ts | 9 +++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index c037c6c2d..1a35b293f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -2,6 +2,7 @@ import { ElrondParams } from "../helpers/elrond"; import { TronParams } from "../helpers/tron"; import { Web3Params } from "../helpers/web3"; import { Chain, CHAIN_INFO } from "../consts"; +import * as crypto from "node:crypto"; export * from "./factories"; @@ -708,9 +709,11 @@ export function ChainFactory( // if (!params) throw new Error("An error occured"); // const isAddressValid = await params.validateAddress(address); // if (!isAddressValid) throw new Error("Address is not valid"); - + const actionIdRaw = crypto.randomBytes(16).toString("hex"); + const actionId = new BigNumber(actionIdRaw, 16); + console.log({ actionId, actionIdRaw }); try { - await chainLocal.notifier.notifyEVM(chain, address); + await chainLocal.notifier.notifyEVM(chain, address, actionId); return { success: true }; } catch (error) { throw new Error("An error occured"); diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 2d15f528b..583d2dcdf 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -1,4 +1,5 @@ import axios from "axios"; +import BigNumber from "bignumber.js"; export type EvNotifier = ReturnType; @@ -81,8 +82,12 @@ export function evNotifier(url: string) { async notifyAptos(txHash: string) { await api.post("/tx/aptos", { tx_hash: txHash }); }, - async notifyEVM(nonce: number, address: string) { - await api.post("/whitelist", { contract: address, chain_nonce: nonce }); + async notifyEVM(nonce: number, address: string, actionId: BigNumber) { + await api.post("/whitelist", { + contract: address, + chain_nonce: nonce, + action_id: actionId, + }); }, }; } From b81aaaf230c26012ee337c3515718af92b544248 Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 18:36:03 +0500 Subject: [PATCH 835/956] build: update dist --- dist/factory/index.d.ts.map | 2 +- dist/factory/index.js | 29 +++++++++++++++++++++++++++-- dist/notifier/index.d.ts | 3 ++- dist/notifier/index.d.ts.map | 2 +- dist/notifier/index.js | 10 +++++++--- 5 files changed, 38 insertions(+), 8 deletions(-) diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map index 32166d400..8eea01673 100644 --- a/dist/factory/index.d.ts.map +++ b/dist/factory/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js index eec3e5c22..c876a5f71 100644 --- a/dist/factory/index.js +++ b/dist/factory/index.js @@ -22,6 +22,27 @@ var __createBinding = if (k2 === undefined) k2 = k; o[k2] = m[k]; }); +var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } + : function (o, v) { + o["default"] = v; + }); +var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; var __exportStar = (this && this.__exportStar) || function (m, exports) { @@ -37,6 +58,7 @@ var __importDefault = Object.defineProperty(exports, "__esModule", { value: true }); exports.ChainFactory = void 0; const consts_1 = require("../consts"); +const crypto = __importStar(require("node:crypto")); __exportStar(require("./factories"), exports); const __1 = require(".."); const bignumber_js_1 = __importDefault(require("bignumber.js")); @@ -350,8 +372,11 @@ function ChainFactory(appConfig, chainParams) { // if (!params) throw new Error("An error occured"); // const isAddressValid = await params.validateAddress(address); // if (!isAddressValid) throw new Error("Address is not valid"); + const actionIdRaw = crypto.randomBytes(16).toString("hex"); + const actionId = new bignumber_js_1.default(actionIdRaw, 16); + console.log({ actionId, actionIdRaw }); try { - await chainLocal.notifier.notifyEVM(chain, address); + await chainLocal.notifier.notifyEVM(chain, address, actionId); return { success: true }; } catch (error) { throw new Error("An error occured"); @@ -608,4 +633,4 @@ function ChainFactory(appConfig, chainParams) { exports.ChainFactory = ChainFactory; __exportStar(require("./factories"), exports); __exportStar(require("./cons"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLHNDQUE4QztBQUU5Qyw4Q0FBNEI7QUFFNUIsMEJBWVk7QUFDWixnRUFBcUM7QUFFckMsa0RBQTBCO0FBQzFCLGlDQU1nQjtBQUNoQixrREFBc0Q7QUFDdEQsNENBQStDO0FBQy9DLG1DQUF1QztBQUN2QyxrREFNNkI7QUFDN0Isc0RBQThCO0FBQzlCLHlDQUFtQztBQXdCbkMsZ0RBQTZEO0FBQzdELHVEQUltQztBQWdSbkMsU0FBUyxnQkFBZ0IsQ0FBQyxXQUFpQztJQUN6RCxNQUFNLElBQUksR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcs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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLHNDQUE4QztBQUM5QyxvREFBc0M7QUFFdEMsOENBQTRCO0FBRTVCLDBCQVlZO0FBQ1osZ0VBQXFDO0FBRXJDLGtEQUEwQjtBQUMxQixpQ0FNZ0I7QUFDaEIsa0RBQXNEO0FBQ3RELDRDQUErQztBQUMvQyxtQ0FBdUM7QUFDdkMsa0RBTTZCO0FBQzdCLHNEQUE4QjtBQUM5Qix5Q0FBbUM7QUF3Qm5DLGdEQUE2RDtBQUM3RCx1REFJbUM7QUFnUm5DLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxD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 diff --git a/dist/notifier/index.d.ts b/dist/notifier/index.d.ts index ea992af4a..74783f8e8 100644 --- a/dist/notifier/index.d.ts +++ b/dist/notifier/index.d.ts @@ -1,3 +1,4 @@ +import BigNumber from "bignumber.js"; export type EvNotifier = ReturnType; export declare function evNotifier(url: string): { notifyWeb3( @@ -28,6 +29,6 @@ export declare function evNotifier(url: string): { notifyDfinity(actionId: string): Promise; notifyTon(txHash: string): Promise; notifyAptos(txHash: string): Promise; - notifyEVM(nonce: number, address: string): Promise; + notifyEVM(nonce: number, address: string, actionId: BigNumber): Promise; }; //# sourceMappingURL=index.d.ts.map diff --git a/dist/notifier/index.d.ts.map b/dist/notifier/index.d.ts.map index 801276c09..1b69f7539 100644 --- a/dist/notifier/index.d.ts.map +++ b/dist/notifier/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM,aACL,MAAM,SACV,MAAM,YACH,MAAM,WACP,MAAM,kBACC,MAAM,kBACN,MAAM,WACb,MAAM,YACL,MAAM,aACL,MAAM;uBAgBM,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAIjD"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM,aACL,MAAM,SACV,MAAM,YACH,MAAM,WACP,MAAM,kBACC,MAAM,kBACN,MAAM,WACb,MAAM,YACL,MAAM,aACL,MAAM;uBAgBM,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM,YAAY,SAAS;EAQtE"} \ No newline at end of file diff --git a/dist/notifier/index.js b/dist/notifier/index.js index 8baddfced..a2a364698 100644 --- a/dist/notifier/index.js +++ b/dist/notifier/index.js @@ -80,10 +80,14 @@ function evNotifier(url) { async notifyAptos(txHash) { await api.post("/tx/aptos", { tx_hash: txHash }); }, - async notifyEVM(nonce, address) { - await api.post("/whitelist", { contract: address, chain_nonce: nonce }); + async notifyEVM(nonce, address, actionId) { + await api.post("/whitelist", { + contract: address, + chain_nonce: nonce, + action_id: actionId, + }); }, }; } exports.evNotifier = evNotifier; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSTFCLFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtZQUVqQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sYUFBYTtnQkFDYixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBYyxFQUNkLE1BQWMsRUFDZCxJQUFjLEVBQ2QsU0FBNkI7WUFFN0IsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsTUFBTTtnQkFDTixJQUFJO2dCQUNKLFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1lBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQWM7WUFDakMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLE1BQU07YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLEVBQVU7WUFDM0MsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYztZQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7WUFDbEMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQWM7WUFDNUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlO1lBQzVDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQW5GRCxnQ0FtRkMifQ== +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSzFCLFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtZQUVqQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sYUFBYTtnQkFDYixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBYyxFQUNkLE1BQWMsRUFDZCxJQUFjLEVBQ2QsU0FBNkI7WUFFN0IsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsTUFBTTtnQkFDTixJQUFJO2dCQUNKLFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1lBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQWM7WUFDakMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLE1BQU07YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLEVBQVU7WUFDM0MsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYztZQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7WUFDbEMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQWM7WUFDNUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsUUFBbUI7WUFDakUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixTQUFTLEVBQUUsUUFBUTthQUNwQixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUF2RkQsZ0NBdUZDIn0= From ac6c90865469669e499fdcbc769fc04828110341 Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 18:44:13 +0500 Subject: [PATCH 836/956] fix: remove crypto --- src/factory/index.ts | 65 +++++++++++++++++++++---------------------- src/notifier/index.ts | 4 +-- 2 files changed, 33 insertions(+), 36 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 1a35b293f..d1ec5b342 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -1,11 +1,12 @@ +import { Chain, CHAIN_INFO } from "../consts"; import { ElrondParams } from "../helpers/elrond"; import { TronParams } from "../helpers/tron"; import { Web3Params } from "../helpers/web3"; -import { Chain, CHAIN_INFO } from "../consts"; -import * as crypto from "node:crypto"; +export * from "./cons"; export * from "./factories"; +import BigNumber from "bignumber.js"; import { ChainNonceGet, EstimateTxFees, @@ -19,19 +20,14 @@ import { UnfreezeForeignNft, ValidateAddress, } from ".."; -import BigNumber from "bignumber.js"; -import axios from "axios"; -import { - _headers, - exchangeRateRepo, - getDefaultContract, - prepareTokenId, - checkBlockedContracts, -} from "./cons"; import { UserSigner } from "@elrondnetwork/erdjs/out"; -import { bridgeHeartbeat } from "../heartbeat"; +import { ContractFactory, Wallet } from "@hashgraph/hethers"; +import algosdk from "algosdk"; +import axios from "axios"; import { ethers, utils } from "ethers"; +import { Base64 } from "js-base64"; +import { bridgeHeartbeat } from "../heartbeat"; import { AlgorandHelper, AlgorandParams, @@ -39,9 +35,7 @@ import { algoSignerWrapper, ClaimNftInfo, } from "../helpers/algorand"; -import algosdk from "algosdk"; -import { Base64 } from "js-base64"; -import { TezosParams } from "../helpers/tezos"; +import { AptosParams } from "../helpers/aptos"; import { BalanceCheck, EstimateTxFeesBatch, @@ -51,6 +45,18 @@ import { UnfreezeForeignNftBatch, WhitelistCheck, } from "../helpers/chain"; +import { DfinityParams } from "../helpers/dfinity/dfinity"; +import { + HEDERA_PROXY_ABI, + HEDERA_PROXY_BC, + HEDERA_TOKEN_SERVICE_ABI, +} from "../helpers/hedera/hts_abi"; +import { NearParams } from "../helpers/near"; +import { SecretParams } from "../helpers/secret"; +import { SolanaParams } from "../helpers/solana"; +import { TezosParams } from "../helpers/tezos"; +import { TonParams } from "../helpers/ton"; +import { Web3ERC20Params } from "../helpers/web3_erc20"; import { ChainNonce, HelperMap, @@ -60,19 +66,13 @@ import { InferSigner, ParamMap, } from "../type-utils"; -import { SecretParams } from "../helpers/secret"; -import { DfinityParams } from "../helpers/dfinity/dfinity"; -import { NearParams } from "../helpers/near"; -import { TonParams } from "../helpers/ton"; -import { ContractFactory, Wallet } from "@hashgraph/hethers"; import { - HEDERA_PROXY_ABI, - HEDERA_PROXY_BC, - HEDERA_TOKEN_SERVICE_ABI, -} from "../helpers/hedera/hts_abi"; -import { AptosParams } from "../helpers/aptos"; -import { Web3ERC20Params } from "../helpers/web3_erc20"; -import { SolanaParams } from "../helpers/solana"; + checkBlockedContracts, + exchangeRateRepo, + getDefaultContract, + prepareTokenId, + _headers, +} from "./cons"; export type FullChain = TransferNftForeign< Signer, @@ -709,11 +709,11 @@ export function ChainFactory( // if (!params) throw new Error("An error occured"); // const isAddressValid = await params.validateAddress(address); // if (!isAddressValid) throw new Error("Address is not valid"); - const actionIdRaw = crypto.randomBytes(16).toString("hex"); - const actionId = new BigNumber(actionIdRaw, 16); - console.log({ actionId, actionIdRaw }); + // const actionIdRaw = crypto.randomBytes(16).toString("hex"); + // const actionId = new BigNumber(actionIdRaw, 16); + // console.log({ actionId, actionIdRaw }); try { - await chainLocal.notifier.notifyEVM(chain, address, actionId); + await chainLocal.notifier.notifyEVM(chain, address); return { success: true }; } catch (error) { throw new Error("An error occured"); @@ -985,6 +985,3 @@ export function ChainFactory( setProvider, }; } - -export * from "./factories"; -export * from "./cons"; diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 583d2dcdf..aa3103f29 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -82,11 +82,11 @@ export function evNotifier(url: string) { async notifyAptos(txHash: string) { await api.post("/tx/aptos", { tx_hash: txHash }); }, - async notifyEVM(nonce: number, address: string, actionId: BigNumber) { + async notifyEVM(nonce: number, address: string) { await api.post("/whitelist", { contract: address, chain_nonce: nonce, - action_id: actionId, + // action_id: actionId, }); }, }; From 81af11fe741ce4ca5acff4f8d4d1048f42fbceef Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 18:44:56 +0500 Subject: [PATCH 837/956] build: update dist --- dist/factory/index.d.ts | 23 ++++++++--------- dist/factory/index.d.ts.map | 2 +- dist/factory/index.js | 49 ++++++++++-------------------------- dist/notifier/index.d.ts | 3 +-- dist/notifier/index.d.ts.map | 2 +- dist/notifier/index.js | 6 ++--- src/notifier/index.ts | 1 - 7 files changed, 30 insertions(+), 56 deletions(-) diff --git a/dist/factory/index.d.ts b/dist/factory/index.d.ts index 432e91ef4..b0bc1cc47 100644 --- a/dist/factory/index.d.ts +++ b/dist/factory/index.d.ts @@ -1,7 +1,9 @@ import { ElrondParams } from "../helpers/elrond"; import { TronParams } from "../helpers/tron"; import { Web3Params } from "../helpers/web3"; +export * from "./cons"; export * from "./factories"; +import BigNumber from "bignumber.js"; import { ChainNonceGet, EstimateTxFees, @@ -14,10 +16,10 @@ import { UnfreezeForeignNft, ValidateAddress, } from ".."; -import BigNumber from "bignumber.js"; +import { Wallet } from "@hashgraph/hethers"; import { ethers } from "ethers"; import { AlgorandParams, AlgoSignerH, ClaimNftInfo } from "../helpers/algorand"; -import { TezosParams } from "../helpers/tezos"; +import { AptosParams } from "../helpers/aptos"; import { BalanceCheck, EstimateTxFeesBatch, @@ -26,6 +28,13 @@ import { UnfreezeForeignNftBatch, WhitelistCheck, } from "../helpers/chain"; +import { DfinityParams } from "../helpers/dfinity/dfinity"; +import { NearParams } from "../helpers/near"; +import { SecretParams } from "../helpers/secret"; +import { SolanaParams } from "../helpers/solana"; +import { TezosParams } from "../helpers/tezos"; +import { TonParams } from "../helpers/ton"; +import { Web3ERC20Params } from "../helpers/web3_erc20"; import { ChainNonce, InferChainH, @@ -33,14 +42,6 @@ import { InferNativeNft, InferSigner, } from "../type-utils"; -import { SecretParams } from "../helpers/secret"; -import { DfinityParams } from "../helpers/dfinity/dfinity"; -import { NearParams } from "../helpers/near"; -import { TonParams } from "../helpers/ton"; -import { Wallet } from "@hashgraph/hethers"; -import { AptosParams } from "../helpers/aptos"; -import { Web3ERC20Params } from "../helpers/web3_erc20"; -import { SolanaParams } from "../helpers/solana"; export type FullChain = TransferNftForeign< Signer, RawNft, @@ -307,6 +308,4 @@ export declare function ChainFactory( appConfig: AppConfig, chainParams: Partial ): ChainFactory; -export * from "./factories"; -export * from "./cons"; //# sourceMappingURL=index.d.ts.map diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map index 8eea01673..0c9018d16 100644 --- a/dist/factory/index.d.ts.map +++ b/dist/factory/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js index c876a5f71..ad0a9e2ef 100644 --- a/dist/factory/index.js +++ b/dist/factory/index.js @@ -22,27 +22,6 @@ var __createBinding = if (k2 === undefined) k2 = k; o[k2] = m[k]; }); -var __setModuleDefault = - (this && this.__setModuleDefault) || - (Object.create - ? function (o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } - : function (o, v) { - o["default"] = v; - }); -var __importStar = - (this && this.__importStar) || - function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; var __exportStar = (this && this.__exportStar) || function (m, exports) { @@ -58,20 +37,20 @@ var __importDefault = Object.defineProperty(exports, "__esModule", { value: true }); exports.ChainFactory = void 0; const consts_1 = require("../consts"); -const crypto = __importStar(require("node:crypto")); +__exportStar(require("./cons"), exports); __exportStar(require("./factories"), exports); -const __1 = require(".."); const bignumber_js_1 = __importDefault(require("bignumber.js")); -const axios_1 = __importDefault(require("axios")); -const cons_1 = require("./cons"); +const __1 = require(".."); const out_1 = require("@elrondnetwork/erdjs/out"); -const heartbeat_1 = require("../heartbeat"); -const ethers_1 = require("ethers"); -const algorand_1 = require("../helpers/algorand"); +const hethers_1 = require("@hashgraph/hethers"); const algosdk_1 = __importDefault(require("algosdk")); +const axios_1 = __importDefault(require("axios")); +const ethers_1 = require("ethers"); const js_base64_1 = require("js-base64"); -const hethers_1 = require("@hashgraph/hethers"); +const heartbeat_1 = require("../heartbeat"); +const algorand_1 = require("../helpers/algorand"); const hts_abi_1 = require("../helpers/hedera/hts_abi"); +const cons_1 = require("./cons"); function mapNonceToParams(chainParams) { const cToP = new Map(); cToP.set(consts_1.Chain.ELROND, chainParams.elrondParams); @@ -372,11 +351,11 @@ function ChainFactory(appConfig, chainParams) { // if (!params) throw new Error("An error occured"); // const isAddressValid = await params.validateAddress(address); // if (!isAddressValid) throw new Error("Address is not valid"); - const actionIdRaw = crypto.randomBytes(16).toString("hex"); - const actionId = new bignumber_js_1.default(actionIdRaw, 16); - console.log({ actionId, actionIdRaw }); + // const actionIdRaw = crypto.randomBytes(16).toString("hex"); + // const actionId = new BigNumber(actionIdRaw, 16); + // console.log({ actionId, actionIdRaw }); try { - await chainLocal.notifier.notifyEVM(chain, address, actionId); + await chainLocal.notifier.notifyEVM(chain, address); return { success: true }; } catch (error) { throw new Error("An error occured"); @@ -631,6 +610,4 @@ function ChainFactory(appConfig, chainParams) { }; } exports.ChainFactory = ChainFactory; -__exportStar(require("./factories"), exports); -__exportStar(require("./cons"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLHNDQUE4QztBQUM5QyxvREFBc0M7QUFFdEMsOENBQTRCO0FBRTVCLDBCQVlZO0FBQ1osZ0VBQXFDO0FBRXJDLGtEQUEwQjtBQUMxQixpQ0FNZ0I7QUFDaEIsa0RBQXNEO0FBQ3RELDRDQUErQztBQUMvQyxtQ0FBdUM7QUFDdkMsa0RBTTZCO0FBQzdCLHNEQUE4QjtBQUM5Qix5Q0FBbUM7QUF3Qm5DLGdEQUE2RDtBQUM3RCx1REFJbUM7QUFnUm5DLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxD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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUE2UWhCLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElB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 diff --git a/dist/notifier/index.d.ts b/dist/notifier/index.d.ts index 74783f8e8..ea992af4a 100644 --- a/dist/notifier/index.d.ts +++ b/dist/notifier/index.d.ts @@ -1,4 +1,3 @@ -import BigNumber from "bignumber.js"; export type EvNotifier = ReturnType; export declare function evNotifier(url: string): { notifyWeb3( @@ -29,6 +28,6 @@ export declare function evNotifier(url: string): { notifyDfinity(actionId: string): Promise; notifyTon(txHash: string): Promise; notifyAptos(txHash: string): Promise; - notifyEVM(nonce: number, address: string, actionId: BigNumber): Promise; + notifyEVM(nonce: number, address: string): Promise; }; //# sourceMappingURL=index.d.ts.map diff --git a/dist/notifier/index.d.ts.map b/dist/notifier/index.d.ts.map index 1b69f7539..450177da5 100644 --- a/dist/notifier/index.d.ts.map +++ b/dist/notifier/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM,aACL,MAAM,SACV,MAAM,YACH,MAAM,WACP,MAAM,kBACC,MAAM,kBACN,MAAM,WACb,MAAM,YACL,MAAM,aACL,MAAM;uBAgBM,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM,YAAY,SAAS;EAQtE"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM,aACL,MAAM,SACV,MAAM,YACH,MAAM,WACP,MAAM,kBACC,MAAM,kBACN,MAAM,WACb,MAAM,YACL,MAAM,aACL,MAAM;uBAgBM,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAQjD"} \ No newline at end of file diff --git a/dist/notifier/index.js b/dist/notifier/index.js index a2a364698..0eecefeee 100644 --- a/dist/notifier/index.js +++ b/dist/notifier/index.js @@ -80,14 +80,14 @@ function evNotifier(url) { async notifyAptos(txHash) { await api.post("/tx/aptos", { tx_hash: txHash }); }, - async notifyEVM(nonce, address, actionId) { + async notifyEVM(nonce, address) { await api.post("/whitelist", { contract: address, chain_nonce: nonce, - action_id: actionId, + // action_id: actionId, }); }, }; } exports.evNotifier = evNotifier; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSzFCLFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtZQUVqQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sYUFBYTtnQkFDYixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBYyxFQUNkLE1BQWMsRUFDZCxJQUFjLEVBQ2QsU0FBNkI7WUFFN0IsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsTUFBTTtnQkFDTixJQUFJO2dCQUNKLFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1lBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQWM7WUFDakMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLE1BQU07YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLEVBQVU7WUFDM0MsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYztZQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7WUFDbEMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQWM7WUFDNUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsUUFBbUI7WUFDakUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixTQUFTLEVBQUUsUUFBUTthQUNwQixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUF2RkQsZ0NBdUZDIn0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSTFCLFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtZQUVqQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sYUFBYTtnQkFDYixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBYyxFQUNkLE1BQWMsRUFDZCxJQUFjLEVBQ2QsU0FBNkI7WUFFN0IsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsTUFBTTtnQkFDTixJQUFJO2dCQUNKLFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1lBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQWM7WUFDakMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLE1BQU07YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLEVBQVU7WUFDM0MsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYztZQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7WUFDbEMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQWM7WUFDNUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlO1lBQzVDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzNCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixXQUFXLEVBQUUsS0FBSztnQkFDbEIsdUJBQXVCO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQXZGRCxnQ0F1RkMifQ== diff --git a/src/notifier/index.ts b/src/notifier/index.ts index aa3103f29..759c089ac 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -1,5 +1,4 @@ import axios from "axios"; -import BigNumber from "bignumber.js"; export type EvNotifier = ReturnType; From 71cf63dea99bd636a4544bea0242bb1e56e5c8c4 Mon Sep 17 00:00:00 2001 From: Fassih Haider Date: Mon, 19 Dec 2022 20:17:37 +0500 Subject: [PATCH 838/956] feat: add extrac checks --- src/factory/index.ts | 12 +++++------- src/notifier/index.ts | 1 - 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d1ec5b342..d0069f842 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -705,13 +705,11 @@ export function ChainFactory( const chainLocal = cToP.get(chain); if (!chainLocal) throw new Error("Chain not found"); - // const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); - // if (!params) throw new Error("An error occured"); - // const isAddressValid = await params.validateAddress(address); - // if (!isAddressValid) throw new Error("Address is not valid"); - // const actionIdRaw = crypto.randomBytes(16).toString("hex"); - // const actionId = new BigNumber(actionIdRaw, 16); - // console.log({ actionId, actionIdRaw }); + const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); + if (!params) throw new Error("An error occured"); + const isAddressValid = await params.validateAddress(address); + if (!isAddressValid) throw new Error("Address is not valid"); + try { await chainLocal.notifier.notifyEVM(chain, address); return { success: true }; diff --git a/src/notifier/index.ts b/src/notifier/index.ts index 759c089ac..eb4628945 100644 --- a/src/notifier/index.ts +++ b/src/notifier/index.ts @@ -85,7 +85,6 @@ export function evNotifier(url: string) { await api.post("/whitelist", { contract: address, chain_nonce: nonce, - // action_id: actionId, }); }, }; From a590e3f6f9cf4ac9a7eebffa27a3cddfa6bc41f9 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 20 Dec 2022 02:29:07 +0200 Subject: [PATCH 839/956] TON: sleep for 30 seconds after commit trx --- src/helpers/ton.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index bcd5e1047..5ef6b53a5 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -127,6 +127,11 @@ export async function tonHelper(args: TonParams): Promise { Emitter?.addEventListener("cancel tonKeeper", setStop); + await new Promise((r) => { + fastResolve = r; + setTimeout(r, 30 * 1000); + }); + while (!body) { console.log("TON:tring to find the trx..."); await new Promise((r) => { From 18c810ae4ad73f32e2db5af0a04c9ac67c10651e Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 20 Dec 2022 12:19:45 +0200 Subject: [PATCH 840/956] TON: sleep for 30 seconds after commit trx --- src/helpers/ton.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index bcd5e1047..5ef6b53a5 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -127,6 +127,11 @@ export async function tonHelper(args: TonParams): Promise { Emitter?.addEventListener("cancel tonKeeper", setStop); + await new Promise((r) => { + fastResolve = r; + setTimeout(r, 30 * 1000); + }); + while (!body) { console.log("TON:tring to find the trx..."); await new Promise((r) => { From df4924f923acc9471260cbed0b249eea5196010c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 20 Dec 2022 16:10:05 +0530 Subject: [PATCH 841/956] factory: add gasPrice parameter for transfernft --- src/factory/index.ts | 12 ++++++++---- src/helpers/chain.ts | 6 ++++-- src/helpers/web3.ts | 8 ++++++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 83344d051..75417ecce 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -131,7 +131,8 @@ export type ChainFactory = { fee?: BigNumber.Value, mintWith?: string, gasLimit?: ethers.BigNumberish | undefined, - extraFee?: BigNumber.Value + extraFee?: BigNumber.Value, + gasPrice?: ethers.BigNumberish | undefined ): Promise; transferBatchNft( @@ -804,7 +805,8 @@ export function ChainFactory( fee, mintWith, gasLimit, - extraFee + extraFee, + gasPrice ) => { //@ts-ignore if (nft.native.contract) { @@ -839,7 +841,8 @@ export function ChainFactory( nft, new BigNumber(fee), toChain.getNonce().toString(), - gasLimit + gasLimit, + gasPrice ); return res; @@ -871,7 +874,8 @@ export function ChainFactory( nft, new BigNumber(fee), mw, - gasLimit + gasLimit, + gasPrice ); return res; diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index d2d388f93..2a1cda600 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -48,7 +48,8 @@ export interface TransferNftForeign { id: NftInfo, txFees: BigNumber, mintWith: string, - gasLimit?: ethers.BigNumberish | undefined + gasLimit?: ethers.BigNumberish | undefined, + gasPrice?: ethers.BigNumberish | undefined ): Promise; } @@ -69,7 +70,8 @@ export interface UnfreezeForeignNft { id: NftInfo, txFees: BigNumber, nonce: string, - gasLimit: ethers.BigNumberish | undefined + gasLimit: ethers.BigNumberish | undefined, + gasPrice: ethers.BigNumberish | undefined ): Promise; } diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 3e1194488..46f0df69d 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -600,7 +600,8 @@ export async function web3HelperFactory( id: NftInfo, txFees: BigNumber, mintWith: string, - gasLimit: ethers.BigNumberish | undefined = undefined + gasLimit: ethers.BigNumberish | undefined = undefined, + gasPrice ): Promise { await approveForMinter(id, sender); const method = NFT_METHOD_MAP[id.native.contractType].freeze; @@ -625,6 +626,7 @@ export async function web3HelperFactory( { value: EthBN.from(txFees.toString()), gasLimit, + gasPrice, } ); await txnUnderpricedPolyWorkaround(tx); @@ -663,7 +665,8 @@ export async function web3HelperFactory( id: NftInfo, txFees: BigNumber, nonce, - gasLimit = undefined + gasLimit = undefined, + gasPrice ): Promise { await approveForMinter(id, sender); @@ -686,6 +689,7 @@ export async function web3HelperFactory( { value: EthBN.from(txFees.toString(10)), gasLimit, + gasPrice, } ); From de697d4dfa250afaff8d3f195705b9bef679fc22 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 20 Dec 2022 13:13:48 +0200 Subject: [PATCH 842/956] build --- dist/factory/index.d.ts.map | 2 +- dist/factory/index.js | 15 +++++++-------- dist/helpers/ton.d.ts.map | 2 +- dist/helpers/ton.js | 6 +++++- dist/notifier/index.d.ts.map | 2 +- dist/notifier/index.js | 3 +-- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map index 0c9018d16..1cf9c5f4b 100644 --- a/dist/factory/index.d.ts.map +++ b/dist/factory/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js index ad0a9e2ef..7cf3d1d6c 100644 --- a/dist/factory/index.js +++ b/dist/factory/index.js @@ -347,13 +347,12 @@ function ChainFactory(appConfig, chainParams) { async whitelistEVM(chain, address) { const chainLocal = cToP.get(chain); if (!chainLocal) throw new Error("Chain not found"); - // const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); - // if (!params) throw new Error("An error occured"); - // const isAddressValid = await params.validateAddress(address); - // if (!isAddressValid) throw new Error("Address is not valid"); - // const actionIdRaw = crypto.randomBytes(16).toString("hex"); - // const actionId = new BigNumber(actionIdRaw, 16); - // console.log({ actionId, actionIdRaw }); + const params = await consts_1.CHAIN_INFO.get(chain)?.constructor( + chainLocal + ); + if (!params) throw new Error("An error occured"); + const isAddressValid = await params.validateAddress(address); + if (!isAddressValid) throw new Error("Address is not valid"); try { await chainLocal.notifier.notifyEVM(chain, address); return { success: true }; @@ -610,4 +609,4 @@ function ChainFactory(appConfig, chainParams) { }; } exports.ChainFactory = ChainFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUE2UWhCLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUE2UWhCLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElB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 diff --git a/dist/helpers/ton.d.ts.map b/dist/helpers/ton.d.ts.map index c2740d36e..b1c5795e7 100644 --- a/dist/helpers/ton.d.ts.map +++ b/dist/helpers/ton.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/ton.js b/dist/helpers/ton.js index d526a3911..b3a0f7f16 100644 --- a/dist/helpers/ton.js +++ b/dist/helpers/ton.js @@ -39,6 +39,10 @@ async function tonHelper(args) { throw new Error("waitTonTrx timeout"); }, 60 * 1000 * 20); emitter_1.Emitter?.addEventListener("cancel tonKeeper", setStop); + await new Promise((r) => { + fastResolve = r; + setTimeout(r, 30 * 1000); + }); while (!body) { console.log("TON:tring to find the trx..."); await new Promise((r) => { @@ -324,4 +328,4 @@ exports.tonHelper = tonHelper; )[0].hash(); console.log("Hash: " + dict.toString("base64")); */ -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEyQztBQUMzQyxnRUFBcUM7QUFDckMsb0RBQTRCO0FBRzVCLDZCQUFvQztBQUNwQyxzQ0FBa0M7QUFlbEMsNkNBQThDO0FBRTlDLHdDQUFxQztBQUdyQyx5Q0FBMkM7QUFDM0MsbUVBQTJDO0FBb0VwQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQWU7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUM7SUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBOEI7UUFFOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLFdBQWdCLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixpQkFBTyxFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEyQztBQUMzQyxnRUFBcUM7QUFDckMsb0RBQTRCO0FBRzVCLDZCQUFvQztBQUNwQyxzQ0FBa0M7QUFlbEMsNkNBQThDO0FBRTlDLHdDQUFxQztBQUdyQyx5Q0FBMkM7QUFDM0MsbUVBQTJDO0FBb0VwQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQWU7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUM7SUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBOEI7UUFFOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLFdBQWdCLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixpQkFBTyxFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lB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 diff --git a/dist/notifier/index.d.ts.map b/dist/notifier/index.d.ts.map index 450177da5..78444595a 100644 --- a/dist/notifier/index.d.ts.map +++ b/dist/notifier/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM,aACL,MAAM,SACV,MAAM,YACH,MAAM,WACP,MAAM,kBACC,MAAM,kBACN,MAAM,WACb,MAAM,YACL,MAAM,aACL,MAAM;uBAgBM,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAQjD"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM,aACL,MAAM,SACV,MAAM,YACH,MAAM,WACP,MAAM,kBACC,MAAM,kBACN,MAAM,WACb,MAAM,YACL,MAAM,aACL,MAAM;uBAgBM,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAOjD"} \ No newline at end of file diff --git a/dist/notifier/index.js b/dist/notifier/index.js index 0eecefeee..78914d8b9 100644 --- a/dist/notifier/index.js +++ b/dist/notifier/index.js @@ -84,10 +84,9 @@ function evNotifier(url) { await api.post("/whitelist", { contract: address, chain_nonce: nonce, - // action_id: actionId, }); }, }; } exports.evNotifier = evNotifier; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSTFCLFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtZQUVqQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sYUFBYTtnQkFDYixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBYyxFQUNkLE1BQWMsRUFDZCxJQUFjLEVBQ2QsU0FBNkI7WUFFN0IsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsTUFBTTtnQkFDTixJQUFJO2dCQUNKLFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1lBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQWM7WUFDakMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLE1BQU07YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLEVBQVU7WUFDM0MsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYztZQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7WUFDbEMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQWM7WUFDNUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlO1lBQzVDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzNCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixXQUFXLEVBQUUsS0FBSztnQkFDbEIsdUJBQXVCO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQXZGRCxnQ0F1RkMifQ== +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSTFCLFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtZQUVqQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sYUFBYTtnQkFDYixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBYyxFQUNkLE1BQWMsRUFDZCxJQUFjLEVBQ2QsU0FBNkI7WUFFN0IsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsTUFBTTtnQkFDTixJQUFJO2dCQUNKLFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1lBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQWM7WUFDakMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLE1BQU07YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLEVBQVU7WUFDM0MsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYztZQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7WUFDbEMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQWM7WUFDNUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlO1lBQzVDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzNCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixXQUFXLEVBQUUsS0FBSzthQUNuQixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUF0RkQsZ0NBc0ZDIn0= From 96dcfba3f5cde1a5d0657bdb76b03bb69bcdc9b0 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 20 Dec 2022 17:43:11 +0530 Subject: [PATCH 843/956] chains: web3: add okc --- package.json | 2 +- src/consts.ts | 17 +++++++++++++++++ src/factory/factories.ts | 11 +++++++++++ src/factory/index.ts | 2 ++ yarn.lock | 5 +++-- 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 0bbb63a61..098c081a6 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#7e1266d8ab36354c50e80141692beb53625aaaef", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#0fe687a60ed884c129c87f93028c7b057543d09b", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/src/consts.ts b/src/consts.ts index 037f9bd23..de4df5f18 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -61,6 +61,7 @@ export enum TestNetRpcUri { TON = "https://testnet.toncenter.com/api/v2/jsonRPC", SOLANA = "https://api.devnet.solana.com", CADUCEUS = "https://galaxy.block.caduceus.foundation", + OKC = "https://exchaintestrpc.okex.org", // TODO: Algorand // TODO: Fuse } @@ -146,6 +147,7 @@ export type MetaMap = { 0x21: Web3Meta; 0x22: AptosMeta; 0x23: Web3Meta; + 0x24: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -182,6 +184,7 @@ export namespace Chain { export const ABEYCHAIN = 0x21; // 33 export const APTOS = 0x22; // 34 export const CADUCEUS = 0x23; // 35 + export const OKC = 0x24; // 36 } interface ChainData { @@ -663,3 +666,17 @@ CHAIN_INFO.set(Chain.CADUCEUS, { chainId: 256256, tnChainId: 512512, }); +CHAIN_INFO.set(Chain.OKC, { + blockExplorerUrl: "https://www.oklink.com/okc/", + constructor: web3HelperFactory, + currency: SupportedCurrency.OKT, + decimals: 1e18, + name: "OKC", + nonce: Chain.OKC, + type: ChainType.EVM, + chainId: 66, + blockExplorerUrlAddr: "https://www.oklink.com/en/okc/address/", + tnBlockExplorerUrl: "https://www.oklink.com/okc-test/", + tnBlockExplorerUrlAddr: "https://www.oklink.com/en/okc-test/address/", + tnChainId: 65, +}); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index bb5e6f9e0..41956630a 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -238,6 +238,17 @@ export namespace ChainFactoryConfigs { nonce: Chain.ETHEREUM, feeMargin, }, + okcParams: { + erc721Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc1155Minter: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc1155_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + erc721_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + minter_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + feeMargin, + nonce: Chain.OKC, + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.OKC), + }, xDaiParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), diff --git a/src/factory/index.ts b/src/factory/index.ts index 75417ecce..de638be2a 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -312,6 +312,7 @@ export interface ChainParams { aptosParams: AptosParams; solanaParams: SolanaParams; caduceusParams: Web3Params; + okcParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -370,6 +371,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.APTOS, chainParams.aptosParams); cToP.set(Chain.SOLANA, chainParams.solanaParams); cToP.set(Chain.CADUCEUS, chainParams.caduceusParams); + cToP.set(Chain.OKC, chainParams.okcParams); return cToP; } /** diff --git a/yarn.lock b/yarn.lock index 119716ff7..a0447d86a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3809,9 +3809,10 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#7e1266d8ab36354c50e80141692beb53625aaaef": +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#0fe687a60ed884c129c87f93028c7b057543d09b", "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#7e1266d8ab36354c50e80141692beb53625aaaef" + uid "0fe687a60ed884c129c87f93028c7b057543d09b" + resolved "git+https://github.com/xp-network/exchange-rate#0fe687a60ed884c129c87f93028c7b057543d09b" dependencies: axios "^0.21.1" From dd82f6c204d524444b437725bc35547a7298203f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 21 Dec 2022 18:29:00 +0530 Subject: [PATCH 844/956] chains: web3: add gasPrice to approve method --- src/helpers/web3.ts | 30 +++++++++++++++++++++--------- src/helpers/web3_erc20.ts | 14 +++++++++----- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 46f0df69d..4adf099f5 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -80,7 +80,8 @@ export interface IsApproved { isApprovedForMinter( address: NftInfo, sender: Sender, - txFee: BigNumber + txFee: BigNumber, + gasPrice?: ethers.BigNumber ): Promise; } @@ -88,7 +89,8 @@ export interface Approve { approveForMinter( address: NftInfo, sender: Sender, - txFee: BigNumber + txFee: BigNumber, + gasPrice?: ethers.BigNumber ): Promise; } @@ -122,6 +124,8 @@ export type BaseWeb3Helper = BalanceCheck & ): Promise; }; +type ExtraArgs = { gasPrice: ethers.BigNumber }; + /** * Traits implemented by this module */ @@ -138,7 +142,7 @@ export type Web3Helper = BaseWeb3Helper & ValidateAddress & ExtractAction & { createWallet(privateKey: string): Wallet; - } & Pick, "preTransfer"> & + } & Pick, "preTransfer"> & PreTransferRawTxn & ExtractTxnStatus & GetProvider & { @@ -236,7 +240,8 @@ type NftMethodVal = { forAddr: string, tok: string, txnUp: (tx: PopulatedTransaction) => Promise, - customData: NullableCustomData + customData: NullableCustomData, + gasPrice: ethers.BigNumberish | undefined ) => Promise; }; @@ -428,7 +433,12 @@ export async function web3HelperFactory( ); }; - const approveForMinter = async (id: NftInfo, sender: Signer) => { + const approveForMinter = async ( + id: NftInfo, + sender: Signer, + _txFees: BigNumber, + gasPrice: ethers.BigNumberish | undefined + ) => { const isApproved = await isApprovedForMinter(id, sender); if (isApproved) { return undefined; @@ -450,7 +460,8 @@ export async function web3HelperFactory( toApprove, id.native.tokenId, txnUnderpricedPolyWorkaround, - params.nonce === 0x1d ? {} : undefined + params.nonce === 0x1d ? {} : undefined, + gasPrice ); await receipt.wait(); return receipt.hash; @@ -472,7 +483,8 @@ export async function web3HelperFactory( return params.feeMargin; }, isApprovedForMinter, - preTransfer: (s, id, _fee) => approveForMinter(id, s), + preTransfer: (s, id, fee, args) => + approveForMinter(id, s, fee, args?.gasPrice), extractAction, async isContractAddress(address) { const code = await provider.getCode(address); @@ -603,7 +615,7 @@ export async function web3HelperFactory( gasLimit: ethers.BigNumberish | undefined = undefined, gasPrice ): Promise { - await approveForMinter(id, sender); + await approveForMinter(id, sender, txFees, gasPrice); const method = NFT_METHOD_MAP[id.native.contractType].freeze; // Chain is Hedera @@ -668,7 +680,7 @@ export async function web3HelperFactory( gasLimit = undefined, gasPrice ): Promise { - await approveForMinter(id, sender); + await approveForMinter(id, sender, txFees, gasPrice); // Chain is Hedera if (params.nonce === 0x1d) { diff --git a/src/helpers/web3_erc20.ts b/src/helpers/web3_erc20.ts index d9077db42..818e39d82 100644 --- a/src/helpers/web3_erc20.ts +++ b/src/helpers/web3_erc20.ts @@ -182,7 +182,8 @@ export async function web3ERC20HelperFactory( const approveForMinter = async ( id: NftInfo, sender: Signer, - txFees: BigNumber + txFees: BigNumber, + gasPrice: ethers.BigNumberish | undefined ) => { const isApproved = await isApprovedForMinter(id, sender, txFees); if (isApproved) { @@ -198,7 +199,8 @@ export async function web3ERC20HelperFactory( minter_addr, id.native.tokenId, txnUnderpricedPolyWorkaround, - params.nonce === 0x1d ? {} : undefined + params.nonce === 0x1d ? {} : undefined, + gasPrice ); await receipt.wait(); @@ -230,7 +232,8 @@ export async function web3ERC20HelperFactory( return params.feeMargin; }, isApprovedForMinter, - preTransfer: (s, id, _fee) => approveForMinter(id, s, _fee), + preTransfer: (s, id, _fee, args) => + approveForMinter(id, s, _fee, args?.gasPrice), extractAction, async isContractAddress(address) { const code = await provider.getCode(address); @@ -355,9 +358,10 @@ export async function web3ERC20HelperFactory( id: NftInfo, txFees: BigNumber, mintWith: string, - gasLimit: ethers.BigNumberish | undefined = undefined + gasLimit: ethers.BigNumberish | undefined = undefined, + gasPrice ): Promise { - await approveForMinter(id, sender, txFees); + await approveForMinter(id, sender, txFees, gasPrice); const method = NFT_METHOD_MAP[id.native.contractType].freeze; const tx = await minter From b4086dd19a08bc6294ce2fb1ca4f22000810941d Mon Sep 17 00:00:00 2001 From: "awkwardman.dev" Date: Wed, 21 Dec 2022 20:09:38 +0500 Subject: [PATCH 845/956] Update factories.ts --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 41956630a..253346cdd 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -414,7 +414,7 @@ export namespace ChainFactoryConfigs { return { tonParams: { - bridgeAddr: "kQD3Fic8toRl0SIMswto8wmy5H41CDZUGAIyIK95Al5BBUiX", + bridgeAddr: "kQCFhew-rg17dlBjJ4VmU8nkyMlijUtGh-xMG7Gb438LJgZK", burnerAddr: "kQBCnW4TO466p7YzKGZebnsylUSHTyxTKuwMDXo5JEQbIEOF", notifier, tonweb: new TonWeb( From bc51d0672d50b1c562066323301b224ddb7bd2b3 Mon Sep 17 00:00:00 2001 From: "awkwardman.dev" Date: Wed, 21 Dec 2022 20:12:02 +0500 Subject: [PATCH 846/956] Update factories.ts --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index bb5e6f9e0..99a7419e1 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -403,7 +403,7 @@ export namespace ChainFactoryConfigs { return { tonParams: { - bridgeAddr: "kQD3Fic8toRl0SIMswto8wmy5H41CDZUGAIyIK95Al5BBUiX", + bridgeAddr: "kQCFhew-rg17dlBjJ4VmU8nkyMlijUtGh-xMG7Gb438LJgZK", burnerAddr: "kQBCnW4TO466p7YzKGZebnsylUSHTyxTKuwMDXo5JEQbIEOF", notifier, tonweb: new TonWeb( From 9ebe399375e72016cbf4cef00815028dd1402a5d Mon Sep 17 00:00:00 2001 From: "awkwardman.dev" Date: Wed, 21 Dec 2022 20:26:05 +0500 Subject: [PATCH 847/956] Update factories.ts --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 99a7419e1..40b8253a1 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -403,8 +403,8 @@ export namespace ChainFactoryConfigs { return { tonParams: { - bridgeAddr: "kQCFhew-rg17dlBjJ4VmU8nkyMlijUtGh-xMG7Gb438LJgZK", - burnerAddr: "kQBCnW4TO466p7YzKGZebnsylUSHTyxTKuwMDXo5JEQbIEOF", + bridgeAddr: "kQDuN8nvYr2yjsbV9jQIricuGUECtY-z21uOeZFVfPAAnAuy", + burnerAddr: "kQDUmYu97JTNB6o4bUmnUq3fPq7LQWinU7HqdjVgopPn5dx7", notifier, tonweb: new TonWeb( new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { From 417031ff0dde9458ba9a3c12aca17982044ed2c6 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 21 Dec 2022 19:08:49 +0200 Subject: [PATCH 848/956] build --- dist/factory/factories.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/factory/factories.js b/dist/factory/factories.js index ba2291bb9..849b12616 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -489,8 +489,8 @@ var ChainFactoryConfigs; ); return { tonParams: { - bridgeAddr: "kQD3Fic8toRl0SIMswto8wmy5H41CDZUGAIyIK95Al5BBUiX", - burnerAddr: "kQBCnW4TO466p7YzKGZebnsylUSHTyxTKuwMDXo5JEQbIEOF", + bridgeAddr: "kQDuN8nvYr2yjsbV9jQIricuGUECtY-z21uOeZFVfPAAnAuy", + burnerAddr: "kQDUmYu97JTNB6o4bUmnUq3fPq7LQWinU7HqdjVgopPn5dx7", notifier, tonweb: new tonweb_1.default( new tonweb_1.default.HttpProvider( From 0ffc4ae0bad00c896321e4f7436ec432d29e2705 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 22 Dec 2022 13:48:06 +0200 Subject: [PATCH 849/956] catch ton.provider.getTransactions --- dist/helpers/ton.d.ts.map | 2 +- dist/helpers/ton.js | 27 ++++++++++++++++++++------- src/helpers/ton.ts | 28 ++++++++++++++++++++++------ 3 files changed, 43 insertions(+), 14 deletions(-) diff --git a/dist/helpers/ton.d.ts.map b/dist/helpers/ton.d.ts.map index b1c5795e7..a856787a7 100644 --- a/dist/helpers/ton.d.ts.map +++ b/dist/helpers/ton.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/ton.js b/dist/helpers/ton.js index b3a0f7f16..d043d2131 100644 --- a/dist/helpers/ton.js +++ b/dist/helpers/ton.js @@ -40,18 +40,31 @@ async function tonHelper(args) { }, 60 * 1000 * 20); emitter_1.Emitter?.addEventListener("cancel tonKeeper", setStop); await new Promise((r) => { - fastResolve = r; setTimeout(r, 30 * 1000); }); + async function getUserTrxs(address) { + try { + await new Promise((r) => { + setTimeout(r, 30 * 1000); + }); + const trxs = await ton.provider.getTransactions(address, 20); + return trxs; + } catch (e) { + console.log(e, "new iterration 30 sec"); + return await getUserTrxs(address); + } + } while (!body) { console.log("TON:tring to find the trx..."); - await new Promise((r) => { - fastResolve = r; - setTimeout(r, 10 * 1000); - }); if (stop) return; //get last 20 trx of address - const trxs = await ton.provider.getTransactions(address, 20); + const timeout = setTimeout(() => { + throw new Error("TON: timeout when trying to send trx"); + }, 60 * 1000 * 10); + const trxs = await getUserTrxs(address); + if (trxs) { + clearTimeout(timeout); + } //find body of the trx body = trxs.find((trx) => { const messages = trx[msgType]; @@ -328,4 +341,4 @@ exports.tonHelper = tonHelper; )[0].hash(); console.log("Hash: " + dict.toString("base64")); */ -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEyQztBQUMzQyxnRUFBcUM7QUFDckMsb0RBQTRCO0FBRzVCLDZCQUFvQztBQUNwQyxzQ0FBa0M7QUFlbEMsNkNBQThDO0FBRTlDLHdDQUFxQztBQUdyQyx5Q0FBMkM7QUFDM0MsbUVBQTJDO0FBb0VwQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQWU7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUM7SUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBOEI7UUFFOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLFdBQWdCLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixpQkFBTyxFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEyQztBQUMzQyxnRUFBcUM7QUFDckMsb0RBQTRCO0FBRzVCLDZCQUFvQztBQUNwQyxzQ0FBa0M7QUFlbEMsNkNBQThDO0FBRTlDLHdDQUFxQztBQUdyQyx5Q0FBMkM7QUFDM0MsbUVBQTJDO0FBb0VwQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQWU7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUM7SUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBOEI7UUFFOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLFdBQWdCLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixpQkFBTyxFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lB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 diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 5ef6b53a5..bb106795e 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -128,19 +128,35 @@ export async function tonHelper(args: TonParams): Promise { Emitter?.addEventListener("cancel tonKeeper", setStop); await new Promise((r) => { - fastResolve = r; setTimeout(r, 30 * 1000); }); + async function getUserTrxs(address: string): Promise { + try { + await new Promise((r) => { + setTimeout(r, 30 * 1000); + }); + const trxs = await ton.provider.getTransactions(address, 20); + return trxs; + } catch (e) { + console.log(e, "new iterration 30 sec"); + return await getUserTrxs(address); + } + } + while (!body) { console.log("TON:tring to find the trx..."); - await new Promise((r) => { - fastResolve = r; - setTimeout(r, 10 * 1000); - }); + if (stop) return; //get last 20 trx of address - const trxs = await ton.provider.getTransactions(address, 20); + const timeout = setTimeout(() => { + throw new Error("TON: timeout when trying to send trx"); + }, 60 * 1000 * 10); + const trxs = await getUserTrxs(address); + if (trxs) { + clearTimeout(timeout); + } + //find body of the trx body = trxs.find((trx: any) => { const messages = trx[msgType]; From 50a86ede9a299d2cbdca53bfd833681314fef38f Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 22 Dec 2022 13:50:55 +0200 Subject: [PATCH 850/956] fix --- dist/helpers/ton.js | 2 +- src/helpers/ton.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/helpers/ton.js b/dist/helpers/ton.js index d043d2131..9c49c612e 100644 --- a/dist/helpers/ton.js +++ b/dist/helpers/ton.js @@ -40,7 +40,7 @@ async function tonHelper(args) { }, 60 * 1000 * 20); emitter_1.Emitter?.addEventListener("cancel tonKeeper", setStop); await new Promise((r) => { - setTimeout(r, 30 * 1000); + setTimeout(r, 10 * 1000); }); async function getUserTrxs(address) { try { diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index bb106795e..621cd572d 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -128,7 +128,7 @@ export async function tonHelper(args: TonParams): Promise { Emitter?.addEventListener("cancel tonKeeper", setStop); await new Promise((r) => { - setTimeout(r, 30 * 1000); + setTimeout(r, 10 * 1000); }); async function getUserTrxs(address: string): Promise { From 5198f292487e24dfb13c2e55f95cc47b50e0331c Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 26 Dec 2022 00:01:36 +0530 Subject: [PATCH 851/956] Constants: Move Decimal Data to Crypto Exchange Rate --- package.json | 2 +- src/consts.ts | 69 ++++++++++++++++++++++++++------------------------- yarn.lock | 11 +++++--- 3 files changed, 44 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index 098c081a6..b21021a54 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#0fe687a60ed884c129c87f93028c7b057543d09b", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#023cc027bbece225f87d98fc2b5111838b52c19d", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/src/consts.ts b/src/consts.ts index de4df5f18..4cd51bbca 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -7,6 +7,7 @@ import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; +import { DecimalsByCurrency as Decimals } from "crypto-exchange-rate/dist/model/domain/Decimals"; import { AlgorandParams, AlgorandHelper, @@ -227,7 +228,7 @@ export const CHAIN_INFO: ChainInfo = new Map(); CHAIN_INFO.set(Chain.ELROND, { name: "Elrond", nonce: 2, - decimals: 1e18, + decimals: Decimals.EGLD, constructor: elrondHelperFactory, blockExplorerUrl: "https://explorer.elrond.com/transactions/", blockExplorerUrlAddr: "https://explorer.elrond.com/address/", @@ -240,7 +241,7 @@ CHAIN_INFO.set(Chain.HECO, { name: "HECO", nonce: 3, chainId: 256, - decimals: 1e18, + decimals: Decimals.HT, blockExplorerUrl: "https://testnet.hecoinfo.com/tx", constructor: web3HelperFactory, currency: SupportedCurrency.HT, @@ -250,7 +251,7 @@ CHAIN_INFO.set(Chain.BSC, { name: "BSC", nonce: 4, chainId: 97, - decimals: 1e18, + decimals: Decimals.BNB, blockExplorerUrl: "https://bscscan.com/tx/", blockExplorerUrlAddr: "https://bscscan.com/address/", tnBlockExplorerUrl: "https://testnet.bscscan.com/tx/", @@ -264,7 +265,7 @@ CHAIN_INFO.set(Chain.ETHEREUM, { nonce: 5, currency: SupportedCurrency.ETH, chainId: 5, - decimals: 1e18, + decimals: Decimals.ETH, blockExplorerUrl: "https://etherscan.io/tx/", blockExplorerUrlAddr: "https://etherscan.io/address/", tnBlockExplorerUrl: "https://goerli.etherscan.io/tx/", @@ -276,7 +277,7 @@ CHAIN_INFO.set(Chain.AVALANCHE, { name: "Avalanche", nonce: 6, chainId: 43113, - decimals: 1e18, + decimals: Decimals.AVAX, blockExplorerUrl: "https://snowtrace.io/tx/", tnBlockExplorerUrl: "https://testnet.snowtrace.io/tx/", blockExplorerUrlAddr: "https://snowtrace.io/address/", @@ -289,7 +290,7 @@ CHAIN_INFO.set(Chain.POLYGON, { name: "Polygon", nonce: 0x7, chainId: 80001, - decimals: 1e18, + decimals: Decimals.MATIC, blockExplorerUrl: "https://polygonscan.com/tx/", tnBlockExplorerUrl: "https://mumbai.polygonscan.com/tx/", blockExplorerUrlAddr: "https://polygonscan.com/address/", @@ -301,7 +302,7 @@ CHAIN_INFO.set(Chain.POLYGON, { CHAIN_INFO.set(Chain.FANTOM, { name: "Fantom", nonce: 0x8, - decimals: 1e18, + decimals: Decimals.FTM, chainId: 4002, blockExplorerUrl: "https://ftmscan.com/tx/", blockExplorerUrlAddr: "https://ftmscan.com/address/", @@ -314,7 +315,7 @@ CHAIN_INFO.set(Chain.FANTOM, { CHAIN_INFO.set(Chain.TRON, { name: "Tron", nonce: 0x9, - decimals: 1e6, + decimals: Decimals.TRX, blockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", tnBlockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", blockExplorerUrlAddr: "https://tronscan.io/#/address/", @@ -326,7 +327,7 @@ CHAIN_INFO.set(Chain.TRON, { CHAIN_INFO.set(Chain.CELO, { name: "Celo", nonce: 0xb, - decimals: 1e18, + decimals: Decimals.CELO, chainId: 44787, blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", constructor: web3HelperFactory, @@ -336,7 +337,7 @@ CHAIN_INFO.set(Chain.CELO, { CHAIN_INFO.set(Chain.HARMONY, { name: "Harmony", nonce: 0xc, - decimals: 1e18, + decimals: Decimals.ONE, chainId: 1666700000, blockExplorerUrl: "https://explorer.harmony.one/tx/", tnBlockExplorerUrl: "https://explorer.testnet.harmony.one/tx/", @@ -353,7 +354,7 @@ CHAIN_INFO.set(Chain.HARMONY, { CHAIN_INFO.set(Chain.ONT, { name: "Ontology", nonce: 0xd, - decimals: 1e18, + decimals: Decimals.ONT, chainId: 1666700000, blockExplorerUrl: "https://explorer.pops.one/tx", constructor: web3HelperFactory, @@ -363,7 +364,7 @@ CHAIN_INFO.set(Chain.ONT, { CHAIN_INFO.set(Chain.XDAI, { name: "xDai", nonce: 0xe, - decimals: 1e18, + decimals: Decimals.XDAI, chainId: 0x64, blockExplorerUrl: "https://blockscout.com/xdai/mainnet/tx/", blockExplorerUrlAddr: "https://blockscout.com/xdai/mainnet/address/", @@ -376,7 +377,7 @@ CHAIN_INFO.set(Chain.XDAI, { CHAIN_INFO.set(Chain.ALGORAND, { name: "Algorand", nonce: 0xf, - decimals: 1e6, + decimals: Decimals.ALGO, chainId: undefined, blockExplorerUrl: "https://algoexplorer.io/tx/", tnBlockExplorerUrl: "https://testnet.algoexplorer.io/tx/", @@ -389,7 +390,7 @@ CHAIN_INFO.set(Chain.ALGORAND, { CHAIN_INFO.set(Chain.FUSE, { name: "FUSE", nonce: 0x10, - decimals: 1e18, + decimals: Decimals.FUSE, chainId: undefined, blockExplorerUrl: "https://explorer.fuse.io/tx/", tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", @@ -403,7 +404,7 @@ CHAIN_INFO.set(Chain.FUSE, { CHAIN_INFO.set(Chain.UNIQUE, { name: "Unique", nonce: 0x11, - decimals: 1e18, + decimals: Decimals.OPL, chainId: 8888, blockExplorerUrl: "CANT FIND", constructor: web3HelperFactory, @@ -413,7 +414,7 @@ CHAIN_INFO.set(Chain.UNIQUE, { CHAIN_INFO.set(Chain.TEZOS, { name: "Tezos", nonce: 0x12, - decimals: 1e6, + decimals: Decimals.XTZ, constructor: tezosHelperFactory, currency: SupportedCurrency.XTZ, blockExplorerUrl: "https://tzkt.io/", @@ -429,7 +430,7 @@ CHAIN_INFO.set(Chain.VELAS, { blockExplorerUrlAddr: "https://explorer.velas.com/address/", tnBlockExplorerUrl: "https://explorer.testnet.velas.com/tx/", nonce: 0x13, - decimals: 1e18, + decimals: Decimals.VLX, constructor: web3HelperFactory, currency: SupportedCurrency.VLX, chainId: 111, @@ -442,7 +443,7 @@ CHAIN_INFO.set(Chain.AURORA, { blockExplorerUrlAddr: "https://aurorascan.dev/address/", tnBlockExplorerUrlAddr: "https://testnet.aurorascan.dev/address", nonce: Chain.AURORA, - decimals: 1e18, + decimals: Decimals.AURORA, constructor: web3HelperFactory, currency: SupportedCurrency.AURORA, chainId: 1313161554, @@ -455,7 +456,7 @@ CHAIN_INFO.set(Chain.IOTEX, { tnBlockExplorerUrl: "https://testnet.iotexscan.io/tx/", tnBlockExplorerUrlAddr: "https://testnet.iotexscan.io/address/", nonce: 0x14, - decimals: 1e18, + decimals: Decimals.IOTX, constructor: web3HelperFactory, currency: SupportedCurrency.IOTX, chainId: 4689, @@ -469,7 +470,7 @@ CHAIN_INFO.set(Chain.GODWOKEN, { tnBlockExplorerUrlAddr: "https://v1.testnet.gwscan.com/account/", constructor: web3HelperFactory, nonce: 0x16, - decimals: 1e18, + decimals: Decimals.CKB, currency: SupportedCurrency.CKB, chainId: 868455272153094, type: ChainType.EVM, @@ -483,7 +484,7 @@ CHAIN_INFO.set(Chain.GATECHAIN, { tnBlockExplorerUrlAddr: "https://gatescan.org/testnet/address/", constructor: web3HelperFactory, nonce: 0x17, - decimals: 1e18, + decimals: Decimals.GT, currency: SupportedCurrency.GT, chainId: 85, type: ChainType.EVM, @@ -497,7 +498,7 @@ CHAIN_INFO.set(Chain.VECHAIN, { constructor: web3HelperFactory, nonce: 0x19, currency: SupportedCurrency.VET, - decimals: 1e18, + decimals: Decimals.VET, chainId: 39, type: ChainType.EVM, }); @@ -507,7 +508,7 @@ CHAIN_INFO.set(Chain.SECRET, { constructor: secretHelperFactory, nonce: Chain.SECRET, currency: SupportedCurrency.SCRT, - decimals: 1e6, + decimals: Decimals.SCRT, type: ChainType.COSMOS, blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", blockExplorerUrlAddr: "https://atomscan.com/secret-network/accounts/", @@ -523,7 +524,7 @@ CHAIN_INFO.set(Chain.SOLANA, { constructor: solanaHelper, nonce: Chain.SOLANA, currency: SupportedCurrency.SOL, - decimals: 1e9, + decimals: Decimals.SOL, type: ChainType.SOLANA, }); /*CHAIN_INFO.set(Chain.TON, { @@ -550,7 +551,7 @@ CHAIN_INFO.set(Chain.HEDERA, { tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", constructor: web3HelperFactory, currency: SupportedCurrency.HBAR, - decimals: 1e6, + decimals: Decimals.HBAR, nonce: Chain.HEDERA, name: "Hedera", type: ChainType.HEDERA, @@ -571,7 +572,7 @@ CHAIN_INFO.set(Chain.SKALE, { "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", constructor: web3ERC20HelperFactory, currency: SupportedCurrency.SKL, - decimals: 1e18, + decimals: Decimals.SKL, chainId: 1564830818, nonce: Chain.SKALE, type: ChainType.EVM, @@ -581,7 +582,7 @@ CHAIN_INFO.set(Chain.DFINITY, { blockExplorerUrl: "", // TODO constructor: dfinityHelper, currency: SupportedCurrency.ICP, - decimals: 1e8, + decimals: Decimals.ICP, name: "DFINITY", nonce: Chain.DFINITY, type: ChainType.DFINITY, @@ -592,7 +593,7 @@ CHAIN_INFO.set(Chain.NEAR, { tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", constructor: nearHelperFactory, currency: SupportedCurrency.NEAR, - decimals: 1e24, + decimals: Decimals.NEAR, name: "NEAR", nonce: Chain.NEAR, type: ChainType.NEAR, @@ -603,7 +604,7 @@ CHAIN_INFO.set(Chain.NEAR, { CHAIN_INFO.set(Chain.MOONBEAM, { constructor: web3HelperFactory, currency: SupportedCurrency.GLMR, - decimals: 1e18, + decimals: Decimals.GLMR, name: "MoonBeam", nonce: Chain.MOONBEAM, chainId: 0x507, @@ -621,7 +622,7 @@ CHAIN_INFO.set(Chain.ABEYCHAIN, { blockExplorerUrlAddr: "https://scan.abeychain.com/address/", constructor: web3HelperFactory, currency: SupportedCurrency.ABEY, - decimals: 1e18, + decimals: Decimals.ABEY, name: "AbeyChain", nonce: Chain.ABEYCHAIN, chainId: 178, @@ -630,7 +631,7 @@ CHAIN_INFO.set(Chain.ABEYCHAIN, { CHAIN_INFO.set(Chain.APTOS, { constructor: aptosHelper, currency: SupportedCurrency.APTOS, - decimals: 1e6, + decimals: Decimals.APTOS, name: "Aptos", nonce: Chain.APTOS, type: ChainType.APTOS, @@ -644,7 +645,7 @@ CHAIN_INFO.set(Chain.TON, { name: "TON", constructor: tonHelper, currency: SupportedCurrency.TON, - decimals: 1e9, + decimals: Decimals.TON, nonce: Chain.TON, type: ChainType.TON, tnBlockExplorerUrl: "https://testnet.tonscan.org/tx/", @@ -655,7 +656,7 @@ CHAIN_INFO.set(Chain.TON, { CHAIN_INFO.set(Chain.CADUCEUS, { constructor: web3HelperFactory, currency: SupportedCurrency.CMP, - decimals: 1e18, + decimals: Decimals.CMP, name: "Caduceus", nonce: Chain.CADUCEUS, blockExplorerUrl: "https://mainnet.scan.caduceus.foundation/tx/", @@ -670,7 +671,7 @@ CHAIN_INFO.set(Chain.OKC, { blockExplorerUrl: "https://www.oklink.com/okc/", constructor: web3HelperFactory, currency: SupportedCurrency.OKT, - decimals: 1e18, + decimals: Decimals.OKT, name: "OKC", nonce: Chain.OKC, type: ChainType.EVM, diff --git a/yarn.lock b/yarn.lock index a0447d86a..45a3e7c0f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3809,10 +3809,15 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#0fe687a60ed884c129c87f93028c7b057543d09b", "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#master-dist": +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#023cc027bbece225f87d98fc2b5111838b52c19d": version "1.0.0" - uid "0fe687a60ed884c129c87f93028c7b057543d09b" - resolved "git+https://github.com/xp-network/exchange-rate#0fe687a60ed884c129c87f93028c7b057543d09b" + resolved "git+https://github.com/xp-network/exchange-rate#023cc027bbece225f87d98fc2b5111838b52c19d" + dependencies: + axios "^0.21.1" + +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#083676f281d6a5ec2253df153a463c4fd3695f20": + version "1.0.0" + resolved "git+https://github.com/xp-network/exchange-rate#083676f281d6a5ec2253df153a463c4fd3695f20" dependencies: axios "^0.21.1" From 06abfe92fba28fc4a0948ddf477e947b4d1d770d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 26 Dec 2022 16:38:44 +0530 Subject: [PATCH 852/956] Factory: Testnet: Vechain: Update Contracts --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 253346cdd..8c8de8a2d 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -86,11 +86,11 @@ export namespace ChainFactoryConfigs { feeMargin, nonce: Chain.VECHAIN, provider, - minter_addr: "0xd9145CCE52D386f254917e481eB44e9943F39138", - erc721_addr: "0xD7ACd2a9FD159E69Bb102A1ca21C9a3e3A5F771B", - erc1155_addr: "0xf8e81D47203A594245E36C48e151709F0C19fBe8", - erc721Minter: "0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47", - erc1155Minter: "0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8", + minter_addr: "0x5142f6Cc88a9a91b4F6a1972Ce412d57245092A8", + erc721_addr: "0x1cCF127eB11bD9bdbf2b4000dCef04c34C13850B", + erc1155_addr: "0x1109b0CAB4C4e51aBA040a8A6d16273c305941F8", + erc721Minter: "0x1E749e1580889334Bd61254fFab15c1B3ADe1Afd", + erc1155Minter: "0xDA5e020bA795191ff97A5AF97631bACbdcD1354b", }, tronParams: { provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), From b4e882230622073c57b6098c328ea237cfe4d550 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Wed, 28 Dec 2022 10:33:38 +0200 Subject: [PATCH 853/956] change algorand params staging --- src/factory/factories.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 8c8de8a2d..2bbb1d42d 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -438,10 +438,9 @@ export namespace ChainFactoryConfigs { nonce: Chain.CADUCEUS, }, algorandParams: { - algodApiKey: - "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", - algodUri: "https://algorand-node.xp.network/", - indexerUri: "https://algoindexer.algoexplorerapi.io", + algodApiKey: "kZWDAxYR7Y6S6RoyfGIi28SATZ5DfTIs5pF0UMW4", + algodUri: "https://mainnet-algorand.api.purestake.io/ps2", + indexerUri: "https://mainnet-algorand.api.purestake.io/idx2", nonce: Chain.ALGORAND, sendNftAppId: 942656248, algodPort: 443, From 96a1918a002cc540e8e6918d400a3ca0f6619d95 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 3 Jan 2023 13:49:31 +0200 Subject: [PATCH 854/956] add fantom to staging --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 2bbb1d42d..96d664a79 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -447,6 +447,17 @@ export namespace ChainFactoryConfigs { notifier, feeMargin, }, + fantomParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), + erc721Minter: "", + erc1155Minter: "", + erc1155_addr: "0xAE3bF9a0abd3D753aBB579c6E8BFD5D5F5e89c70", + erc721_addr: "0x3CF207B7E4633400B8A29B3c758296d290a51345", + minter_addr: "0xD0060e9d327fCeF5A0B0919e3624eABa56565348", + nonce: Chain.FANTOM, + feeMargin, + }, elrondParams: { node_uri: MainNetRpcUri.ELROND, minter_address: From 75c77057c2e14079487f6a61915d24de9198c00a Mon Sep 17 00:00:00 2001 From: Yura Dukhno Date: Thu, 5 Jan 2023 12:09:28 +0200 Subject: [PATCH 855/956] builded From 48630f3876dd5a7ee8737b98b7ab4a704f1614d9 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Thu, 5 Jan 2023 14:36:27 +0200 Subject: [PATCH 856/956] add fantom --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 40b8253a1..b162142ed 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -437,6 +437,17 @@ export namespace ChainFactoryConfigs { notifier, feeMargin, }, + fantomParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), + erc721Minter: "", + erc1155Minter: "", + erc1155_addr: "0xAE3bF9a0abd3D753aBB579c6E8BFD5D5F5e89c70", + erc721_addr: "0x3CF207B7E4633400B8A29B3c758296d290a51345", + minter_addr: "0xD0060e9d327fCeF5A0B0919e3624eABa56565348", + nonce: Chain.FANTOM, + feeMargin, + }, elrondParams: { node_uri: MainNetRpcUri.ELROND, minter_address: From f4a4182f5281e91303ac75defd34f04d938d9171 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 9 Jan 2023 14:06:39 +0200 Subject: [PATCH 857/956] add okc mainnet and fix caduceus --- src/consts.ts | 1 + src/factory/factories.ts | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 4cd51bbca..aa37b2a99 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -95,6 +95,7 @@ export enum MainNetRpcUri { TON = "https://toncenter.com/api/v2/jsonRPC", APTOS = "https://fullnode.mainnet.aptoslabs.com/", CADUCEUS = "https://mainnet.block.caduceus.foundation/", + OKC = "https://exchainrpc.okex.org/", // TODO: Algorand } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 96d664a79..e97391f32 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -624,13 +624,24 @@ export namespace ChainFactoryConfigs { notifier, feeMargin, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CADUCEUS), - erc1155_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", - erc721_addr: "0x3410b0e0b1aBAe452b3F031AdE8dab347f5Fb60b", - erc1155Minter: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", - erc721Minter: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", - minter_addr: "0xd3f55Dd3da582E8E55AcE14e28352a95334E8feb", + erc1155_addr: "0xF8AE68714fF6704883281603a22b56f47eB23511", + erc721_addr: "0x97799bEDB7AD04d61899F0255BA12EAF641d666D", + erc1155Minter: "0xFbA4cB4B617328cfE7a92907e4fb34bf1d798eBA", + erc721Minter: "0x6b3b43029dD4695f8780d7f16E0313dA02d9507B", + minter_addr: "0x98e9510261F34438e340c03cD35b492f87f628A8", nonce: Chain.CADUCEUS, }, + okcParams: { + erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", + erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", + erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", + erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + feeMargin, + nonce: Chain.OKC, + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.OKC), + }, dfinityParams: { agent: new HttpAgent({ host: "https://ic0.app", From 8220109f5853fc5783ffb7c583be147171e130eb Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 11 Jan 2023 16:00:31 +0200 Subject: [PATCH 858/956] cleanup --- src/helpers/web3.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 4adf099f5..484dcaf3b 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -529,6 +529,8 @@ export async function web3HelperFactory( async getTokenURI(contract, tokenId) { if (ethers.utils.isAddress(contract) && tokenId) { const erc721 = UserNftMinter__factory.connect(contract!, provider); + //const erc1155 = Erc1155Minter__factory.connect(contract!, provider) + //erc1155.uri() return await erc721.tokenURI(tokenId).catch(() => ""); } return ""; From a0e597dcc4171f7a544afc46c54d84870766ffb9 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 11 Jan 2023 16:10:03 +0200 Subject: [PATCH 859/956] elrond tokenId --- src/factory/cons.ts | 7 ++++++- src/factory/index.ts | 6 +----- yarn.lock | 6 ------ 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index fb1f138a6..48dc91b7a 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -97,12 +97,17 @@ export function getDefaultContract( return contract; } -export function prepareTokenId(tokenId: string | undefined, from: number) { +export function prepareTokenId(nft: NftInfo, from: number) { + const tokenId = + //@ts-ignore + nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); + if (tokenId) { const notNumber = isNaN(Number(tokenId)); if (notNumber) { if (from === Chain.ELROND) { + if (nft.native.nonce) return String(nft.native.nonce); const hex = tokenId.split("-")?.at(2); return String(hex ? parseInt(hex, 16) : ""); } diff --git a/src/factory/index.ts b/src/factory/index.ts index de638be2a..9f2cf4455 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -818,10 +818,6 @@ export function ChainFactory( } } - const tokenId = - //@ts-ignore - nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); - if (appConfig.network === "mainnet") { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); } @@ -858,7 +854,7 @@ export function ChainFactory( mintWith, toChain.getNonce(), fromChain.getNonce(), - prepareTokenId(tokenId, fromChain.getNonce()) + prepareTokenId(nft, fromChain.getNonce()) )) ? mintWith : getDefaultContract(nft, fromChain, toChain); diff --git a/yarn.lock b/yarn.lock index 45a3e7c0f..119d21911 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3815,12 +3815,6 @@ crypto-browserify@3.12.0: dependencies: axios "^0.21.1" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#083676f281d6a5ec2253df153a463c4fd3695f20": - version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#083676f281d6a5ec2253df153a463c4fd3695f20" - dependencies: - axios "^0.21.1" - crypto-hash@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" From 50e0b965ad3d78898f53feb3f42b2c90d1ca52b9 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 12 Jan 2023 18:33:57 +0200 Subject: [PATCH 860/956] rebuild --- dist/factory/factories.d.ts.map | 2 +- dist/factory/factories.js | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map index 9e069ba76..c44b6e50f 100644 --- a/dist/factory/factories.d.ts.map +++ b/dist/factory/factories.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAwWvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAiKvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAiVvD,CAAC;CACH"} \ No newline at end of file +{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAwWvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA4KvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAiVvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js index 849b12616..7cc121f04 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -528,6 +528,19 @@ var ChainFactoryConfigs; notifier, feeMargin, }, + fantomParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.FANTOM + ), + erc721Minter: "", + erc1155Minter: "", + erc1155_addr: "0xAE3bF9a0abd3D753aBB579c6E8BFD5D5F5e89c70", + erc721_addr: "0x3CF207B7E4633400B8A29B3c758296d290a51345", + minter_addr: "0xD0060e9d327fCeF5A0B0919e3624eABa56565348", + nonce: consts_1.Chain.FANTOM, + feeMargin, + }, elrondParams: { node_uri: consts_1.MainNetRpcUri.ELROND, minter_address: @@ -1049,4 +1062,4 @@ var ChainFactoryConfigs; (ChainFactoryConfigs = exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) ); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0FnMkJuQztBQWgyQkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0EyMkJuQztBQTMyQkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 From 284058524382986a380a2f247e8ce9d49eeea012 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 16 Jan 2023 10:43:18 +0200 Subject: [PATCH 861/956] fix double fantom --- src/factory/factories.ts | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 4c8045a8c..809925bc1 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -458,17 +458,6 @@ export namespace ChainFactoryConfigs { nonce: Chain.FANTOM, feeMargin, }, - fantomParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), - erc721Minter: "", - erc1155Minter: "", - erc1155_addr: "0xAE3bF9a0abd3D753aBB579c6E8BFD5D5F5e89c70", - erc721_addr: "0x3CF207B7E4633400B8A29B3c758296d290a51345", - minter_addr: "0xD0060e9d327fCeF5A0B0919e3624eABa56565348", - nonce: Chain.FANTOM, - feeMargin, - }, elrondParams: { node_uri: MainNetRpcUri.ELROND, minter_address: From 63ea6d11693b05e3dd12169f3cf4d4725787a175 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 16 Jan 2023 10:45:04 +0200 Subject: [PATCH 862/956] build --- dist/consts.d.ts | 4 ++ dist/consts.d.ts.map | 2 +- dist/consts.js | 86 +++++++++++++++++++------------- dist/factory/cons.d.ts | 5 +- dist/factory/cons.d.ts.map | 2 +- dist/factory/cons.js | 8 ++- dist/factory/factories.d.ts.map | 2 +- dist/factory/factories.js | 55 ++++++++++++++------ dist/factory/index.d.ts | 4 +- dist/factory/index.d.ts.map | 2 +- dist/factory/index.js | 17 ++++--- dist/helpers/chain.d.ts | 6 ++- dist/helpers/chain.d.ts.map | 2 +- dist/helpers/chain.js | 2 +- dist/helpers/web3.d.ts | 15 ++++-- dist/helpers/web3.d.ts.map | 2 +- dist/helpers/web3.js | 24 ++++++--- dist/helpers/web3_erc20.d.ts.map | 2 +- dist/helpers/web3_erc20.js | 15 +++--- 19 files changed, 163 insertions(+), 92 deletions(-) diff --git a/dist/consts.d.ts b/dist/consts.d.ts index 1ae0e273a..120715a63 100644 --- a/dist/consts.d.ts +++ b/dist/consts.d.ts @@ -42,6 +42,7 @@ export declare enum TestNetRpcUri { TON = "https://testnet.toncenter.com/api/v2/jsonRPC", SOLANA = "https://api.devnet.solana.com", CADUCEUS = "https://galaxy.block.caduceus.foundation", + OKC = "https://exchaintestrpc.okex.org", } export declare enum MainNetRpcUri { ELROND = "https://gateway.elrond.com", @@ -71,6 +72,7 @@ export declare enum MainNetRpcUri { TON = "https://toncenter.com/api/v2/jsonRPC", APTOS = "https://fullnode.mainnet.aptoslabs.com/", CADUCEUS = "https://mainnet.block.caduceus.foundation/", + OKC = "https://exchainrpc.okex.org/", } type ElrondMeta = [ElrondHelper, ElrondParams]; type Web3Meta = [Web3Helper, Web3Params]; @@ -121,6 +123,7 @@ export type MetaMap = { 0x21: Web3Meta; 0x22: AptosMeta; 0x23: Web3Meta; + 0x24: Web3Meta; } & MetaMapAssert; export declare namespace Chain { const ELROND = 2; @@ -156,6 +159,7 @@ export declare namespace Chain { const ABEYCHAIN = 33; const APTOS = 34; const CADUCEUS = 35; + const OKC = 36; } interface ChainData { name: string; diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map index f9b735a56..5e95114ed 100644 --- a/dist/consts.d.ts.map +++ b/dist/consts.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js index 35faaada6..d9937bbe0 100644 --- a/dist/consts.js +++ b/dist/consts.js @@ -10,6 +10,7 @@ const elrond_1 = require("./helpers/elrond"); const tron_1 = require("./helpers/tron"); const web3_1 = require("./helpers/web3"); const domain_1 = require("crypto-exchange-rate/dist/model/domain"); +const Decimals_1 = require("crypto-exchange-rate/dist/model/domain/Decimals"); const algorand_1 = require("./helpers/algorand"); const tezos_1 = require("./helpers/tezos"); const secret_1 = require("./helpers/secret"); @@ -53,6 +54,7 @@ var TestNetRpcUri; TestNetRpcUri["TON"] = "https://testnet.toncenter.com/api/v2/jsonRPC"; TestNetRpcUri["SOLANA"] = "https://api.devnet.solana.com"; TestNetRpcUri["CADUCEUS"] = "https://galaxy.block.caduceus.foundation"; + TestNetRpcUri["OKC"] = "https://exchaintestrpc.okex.org"; // TODO: Algorand // TODO: Fuse })((TestNetRpcUri = exports.TestNetRpcUri || (exports.TestNetRpcUri = {}))); @@ -87,6 +89,7 @@ var MainNetRpcUri; MainNetRpcUri["TON"] = "https://toncenter.com/api/v2/jsonRPC"; MainNetRpcUri["APTOS"] = "https://fullnode.mainnet.aptoslabs.com/"; MainNetRpcUri["CADUCEUS"] = "https://mainnet.block.caduceus.foundation/"; + MainNetRpcUri["OKC"] = "https://exchainrpc.okex.org/"; // TODO: Algorand })((MainNetRpcUri = exports.MainNetRpcUri || (exports.MainNetRpcUri = {}))); var Chain; @@ -124,6 +127,7 @@ var Chain; Chain.ABEYCHAIN = 0x21; // 33 Chain.APTOS = 0x22; // 34 Chain.CADUCEUS = 0x23; // 35 + Chain.OKC = 0x24; // 36 })((Chain = exports.Chain || (exports.Chain = {}))); var ChainType; (function (ChainType) { @@ -144,7 +148,7 @@ exports.CHAIN_INFO = new Map(); exports.CHAIN_INFO.set(Chain.ELROND, { name: "Elrond", nonce: 2, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.EGLD, constructor: elrond_1.elrondHelperFactory, blockExplorerUrl: "https://explorer.elrond.com/transactions/", blockExplorerUrlAddr: "https://explorer.elrond.com/address/", @@ -157,7 +161,7 @@ exports.CHAIN_INFO.set(Chain.HECO, { name: "HECO", nonce: 3, chainId: 256, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.HT, blockExplorerUrl: "https://testnet.hecoinfo.com/tx", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.HT, @@ -167,7 +171,7 @@ exports.CHAIN_INFO.set(Chain.BSC, { name: "BSC", nonce: 4, chainId: 97, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.BNB, blockExplorerUrl: "https://bscscan.com/tx/", blockExplorerUrlAddr: "https://bscscan.com/address/", tnBlockExplorerUrl: "https://testnet.bscscan.com/tx/", @@ -181,7 +185,7 @@ exports.CHAIN_INFO.set(Chain.ETHEREUM, { nonce: 5, currency: domain_1.SupportedCurrency.ETH, chainId: 5, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.ETH, blockExplorerUrl: "https://etherscan.io/tx/", blockExplorerUrlAddr: "https://etherscan.io/address/", tnBlockExplorerUrl: "https://goerli.etherscan.io/tx/", @@ -193,7 +197,7 @@ exports.CHAIN_INFO.set(Chain.AVALANCHE, { name: "Avalanche", nonce: 6, chainId: 43113, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.AVAX, blockExplorerUrl: "https://snowtrace.io/tx/", tnBlockExplorerUrl: "https://testnet.snowtrace.io/tx/", blockExplorerUrlAddr: "https://snowtrace.io/address/", @@ -206,7 +210,7 @@ exports.CHAIN_INFO.set(Chain.POLYGON, { name: "Polygon", nonce: 0x7, chainId: 80001, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.MATIC, blockExplorerUrl: "https://polygonscan.com/tx/", tnBlockExplorerUrl: "https://mumbai.polygonscan.com/tx/", blockExplorerUrlAddr: "https://polygonscan.com/address/", @@ -218,7 +222,7 @@ exports.CHAIN_INFO.set(Chain.POLYGON, { exports.CHAIN_INFO.set(Chain.FANTOM, { name: "Fantom", nonce: 0x8, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.FTM, chainId: 4002, blockExplorerUrl: "https://ftmscan.com/tx/", blockExplorerUrlAddr: "https://ftmscan.com/address/", @@ -231,7 +235,7 @@ exports.CHAIN_INFO.set(Chain.FANTOM, { exports.CHAIN_INFO.set(Chain.TRON, { name: "Tron", nonce: 0x9, - decimals: 1e6, + decimals: Decimals_1.DecimalsByCurrency.TRX, blockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", tnBlockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", blockExplorerUrlAddr: "https://tronscan.io/#/address/", @@ -243,7 +247,7 @@ exports.CHAIN_INFO.set(Chain.TRON, { exports.CHAIN_INFO.set(Chain.CELO, { name: "Celo", nonce: 0xb, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.CELO, chainId: 44787, blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", constructor: web3_1.web3HelperFactory, @@ -253,7 +257,7 @@ exports.CHAIN_INFO.set(Chain.CELO, { exports.CHAIN_INFO.set(Chain.HARMONY, { name: "Harmony", nonce: 0xc, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.ONE, chainId: 1666700000, blockExplorerUrl: "https://explorer.harmony.one/tx/", tnBlockExplorerUrl: "https://explorer.testnet.harmony.one/tx/", @@ -270,7 +274,7 @@ exports.CHAIN_INFO.set(Chain.HARMONY, { exports.CHAIN_INFO.set(Chain.ONT, { name: "Ontology", nonce: 0xd, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.ONT, chainId: 1666700000, blockExplorerUrl: "https://explorer.pops.one/tx", constructor: web3_1.web3HelperFactory, @@ -280,7 +284,7 @@ exports.CHAIN_INFO.set(Chain.ONT, { exports.CHAIN_INFO.set(Chain.XDAI, { name: "xDai", nonce: 0xe, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.XDAI, chainId: 0x64, blockExplorerUrl: "https://blockscout.com/xdai/mainnet/tx/", blockExplorerUrlAddr: "https://blockscout.com/xdai/mainnet/address/", @@ -293,7 +297,7 @@ exports.CHAIN_INFO.set(Chain.XDAI, { exports.CHAIN_INFO.set(Chain.ALGORAND, { name: "Algorand", nonce: 0xf, - decimals: 1e6, + decimals: Decimals_1.DecimalsByCurrency.ALGO, chainId: undefined, blockExplorerUrl: "https://algoexplorer.io/tx/", tnBlockExplorerUrl: "https://testnet.algoexplorer.io/tx/", @@ -306,7 +310,7 @@ exports.CHAIN_INFO.set(Chain.ALGORAND, { exports.CHAIN_INFO.set(Chain.FUSE, { name: "FUSE", nonce: 0x10, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.FUSE, chainId: undefined, blockExplorerUrl: "https://explorer.fuse.io/tx/", tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", @@ -319,7 +323,7 @@ exports.CHAIN_INFO.set(Chain.FUSE, { exports.CHAIN_INFO.set(Chain.UNIQUE, { name: "Unique", nonce: 0x11, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.OPL, chainId: 8888, blockExplorerUrl: "CANT FIND", constructor: web3_1.web3HelperFactory, @@ -329,7 +333,7 @@ exports.CHAIN_INFO.set(Chain.UNIQUE, { exports.CHAIN_INFO.set(Chain.TEZOS, { name: "Tezos", nonce: 0x12, - decimals: 1e6, + decimals: Decimals_1.DecimalsByCurrency.XTZ, constructor: tezos_1.tezosHelperFactory, currency: domain_1.SupportedCurrency.XTZ, blockExplorerUrl: "https://tzkt.io/", @@ -345,7 +349,7 @@ exports.CHAIN_INFO.set(Chain.VELAS, { blockExplorerUrlAddr: "https://explorer.velas.com/address/", tnBlockExplorerUrl: "https://explorer.testnet.velas.com/tx/", nonce: 0x13, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.VLX, constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.VLX, chainId: 111, @@ -358,7 +362,7 @@ exports.CHAIN_INFO.set(Chain.AURORA, { blockExplorerUrlAddr: "https://aurorascan.dev/address/", tnBlockExplorerUrlAddr: "https://testnet.aurorascan.dev/address", nonce: Chain.AURORA, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.AURORA, constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.AURORA, chainId: 1313161554, @@ -371,7 +375,7 @@ exports.CHAIN_INFO.set(Chain.IOTEX, { tnBlockExplorerUrl: "https://testnet.iotexscan.io/tx/", tnBlockExplorerUrlAddr: "https://testnet.iotexscan.io/address/", nonce: 0x14, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.IOTX, constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.IOTX, chainId: 4689, @@ -385,7 +389,7 @@ exports.CHAIN_INFO.set(Chain.GODWOKEN, { tnBlockExplorerUrlAddr: "https://v1.testnet.gwscan.com/account/", constructor: web3_1.web3HelperFactory, nonce: 0x16, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.CKB, currency: domain_1.SupportedCurrency.CKB, chainId: 868455272153094, type: ChainType.EVM, @@ -398,7 +402,7 @@ exports.CHAIN_INFO.set(Chain.GATECHAIN, { tnBlockExplorerUrlAddr: "https://gatescan.org/testnet/address/", constructor: web3_1.web3HelperFactory, nonce: 0x17, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.GT, currency: domain_1.SupportedCurrency.GT, chainId: 85, type: ChainType.EVM, @@ -412,7 +416,7 @@ exports.CHAIN_INFO.set(Chain.VECHAIN, { constructor: web3_1.web3HelperFactory, nonce: 0x19, currency: domain_1.SupportedCurrency.VET, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.VET, chainId: 39, type: ChainType.EVM, }); @@ -422,7 +426,7 @@ exports.CHAIN_INFO.set(Chain.SECRET, { constructor: secret_1.secretHelperFactory, nonce: Chain.SECRET, currency: domain_1.SupportedCurrency.SCRT, - decimals: 1e6, + decimals: Decimals_1.DecimalsByCurrency.SCRT, type: ChainType.COSMOS, blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", blockExplorerUrlAddr: "https://atomscan.com/secret-network/accounts/", @@ -437,7 +441,7 @@ exports.CHAIN_INFO.set(Chain.SOLANA, { constructor: solana_1.solanaHelper, nonce: Chain.SOLANA, currency: domain_1.SupportedCurrency.SOL, - decimals: 1e9, + decimals: Decimals_1.DecimalsByCurrency.SOL, type: ChainType.SOLANA, }); /*CHAIN_INFO.set(Chain.TON, { @@ -463,7 +467,7 @@ exports.CHAIN_INFO.set(Chain.HEDERA, { tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.HBAR, - decimals: 1e6, + decimals: Decimals_1.DecimalsByCurrency.HBAR, nonce: Chain.HEDERA, name: "Hedera", type: ChainType.HEDERA, @@ -483,7 +487,7 @@ exports.CHAIN_INFO.set(Chain.SKALE, { "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", constructor: web3_erc20_1.web3ERC20HelperFactory, currency: domain_1.SupportedCurrency.SKL, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.SKL, chainId: 1564830818, nonce: Chain.SKALE, type: ChainType.EVM, @@ -492,7 +496,7 @@ exports.CHAIN_INFO.set(Chain.DFINITY, { blockExplorerUrl: "", constructor: dfinity_1.dfinityHelper, currency: domain_1.SupportedCurrency.ICP, - decimals: 1e8, + decimals: Decimals_1.DecimalsByCurrency.ICP, name: "DFINITY", nonce: Chain.DFINITY, type: ChainType.DFINITY, @@ -502,7 +506,7 @@ exports.CHAIN_INFO.set(Chain.NEAR, { tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", constructor: near_1.nearHelperFactory, currency: domain_1.SupportedCurrency.NEAR, - decimals: 1e24, + decimals: Decimals_1.DecimalsByCurrency.NEAR, name: "NEAR", nonce: Chain.NEAR, type: ChainType.NEAR, @@ -512,7 +516,7 @@ exports.CHAIN_INFO.set(Chain.NEAR, { exports.CHAIN_INFO.set(Chain.MOONBEAM, { constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.GLMR, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.GLMR, name: "MoonBeam", nonce: Chain.MOONBEAM, chainId: 0x507, @@ -529,7 +533,7 @@ exports.CHAIN_INFO.set(Chain.ABEYCHAIN, { blockExplorerUrlAddr: "https://scan.abeychain.com/address/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.ABEY, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.ABEY, name: "AbeyChain", nonce: Chain.ABEYCHAIN, chainId: 178, @@ -538,7 +542,7 @@ exports.CHAIN_INFO.set(Chain.ABEYCHAIN, { exports.CHAIN_INFO.set(Chain.APTOS, { constructor: aptos_1.aptosHelper, currency: domain_1.SupportedCurrency.APTOS, - decimals: 1e6, + decimals: Decimals_1.DecimalsByCurrency.APTOS, name: "Aptos", nonce: Chain.APTOS, type: ChainType.APTOS, @@ -552,7 +556,7 @@ exports.CHAIN_INFO.set(Chain.TON, { name: "TON", constructor: ton_1.tonHelper, currency: domain_1.SupportedCurrency.TON, - decimals: 1e9, + decimals: Decimals_1.DecimalsByCurrency.TON, nonce: Chain.TON, type: ChainType.TON, tnBlockExplorerUrl: "https://testnet.tonscan.org/tx/", @@ -563,7 +567,7 @@ exports.CHAIN_INFO.set(Chain.TON, { exports.CHAIN_INFO.set(Chain.CADUCEUS, { constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.CMP, - decimals: 1e18, + decimals: Decimals_1.DecimalsByCurrency.CMP, name: "Caduceus", nonce: Chain.CADUCEUS, blockExplorerUrl: "https://mainnet.scan.caduceus.foundation/tx/", @@ -574,4 +578,18 @@ exports.CHAIN_INFO.set(Chain.CADUCEUS, { chainId: 256256, tnChainId: 512512, }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsaURBSTRCO0FBQzVCLDJDQUErRTtBQUUvRSw2Q0FJMEI7QUFDMUIsNkNBQTRFO0FBQzVFLHVDQUFnRTtBQUNoRSx1REFJbUM7QUFDbkMseUNBQTJFO0FBQzNFLDJDQUF3RTtBQUN4RSxxREFBK0U7QUFFL0UsNENBQTRDO0FBQzVDLElBQVksYUFnQ1g7QUFoQ0QsV0FBWSxhQUFhO0lBQ3ZCLDZEQUE0QyxDQUFBO0lBQzVDLDREQUEyQyxDQUFBO0lBQzNDLHdFQUF1RCxDQUFBO0lBQ3ZELHlGQUF3RSxDQUFBO0lBQ3hFLHlFQUF3RCxDQUFBO0lBQ3hELG9FQUFtRCxDQUFBO0lBQ25ELCtEQUE4QyxDQUFBO0lBQzlDLHlEQUF3QyxDQUFBO0lBQ3hDLGtFQUFpRCxDQUFBO0lBQ2pELHFEQUFvQyxDQUFBO0lBQ3BDLG1EQUFrQyxDQUFBO0lBQ2xDLDREQUEyQyxDQUFBO0lBQzNDLHNEQUFxQyxDQUFBO0lBQ3JDLGlFQUFnRCxDQUFBO0lBQ2hELDZEQUE0QyxDQUFBO0lBQzVDLHVEQUFzQyxDQUFBO0lBQ3RDLG9FQUFtRCxDQUFBO0lBQ25ELDhEQUE2QyxDQUFBO0lBQzdDLDhEQUE2QyxDQUFBO0lBQzdDLHNFQUFxRCxDQUFBO0lBQ3JELHNGQUFxRSxDQUFBO0lBQ3JFLHlEQUF3QyxDQUFBO0lBQ3hDLHNEQUFxQyxDQUFBO0lBQ3JDLHVFQUFzRCxDQUFBO0lBQ3RELDREQUEyQyxDQUFBO0lBQzNDLGlFQUFnRCxDQUFBO0lBQ2hELHFFQUFvRCxDQUFBO0lBQ3BELHlEQUF3QyxDQUFBO0lBQ3hDLHNFQUFxRCxDQUFBO0lBQ3JELGlCQUFpQjtJQUNqQixhQUFhO0FBQ2YsQ0FBQyxFQWhDVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQWdDeEI7QUFFRCxJQUFZLGFBNkJYO0FBN0JELFdBQVksYUFBYTtJQUN2QixzREFBcUMsQ0FBQTtJQUNyQyxrRUFBaUQsQ0FBQTtJQUNqRCwwREFBeUMsQ0FBQTtJQUN6QywyRkFBMEUsQ0FBQTtJQUMxRSxvRUFBbUQsQ0FBQTtJQUNuRCxvREFBbUMsQ0FBQTtJQUNuQyxrREFBaUMsQ0FBQTtJQUNqQyxrREFBaUMsQ0FBQTtJQUNqQyxnREFBK0IsQ0FBQTtJQUMvQixxREFBb0MsQ0FBQTtJQUNwQyx3REFBdUMsQ0FBQTtJQUN2Qyw4Q0FBNkIsQ0FBQTtJQUM3Qix3REFBdUMsQ0FBQTtJQUN2QyxxREFBb0MsQ0FBQTtJQUNwQyw2REFBNEMsQ0FBQTtJQUM1QyxzREFBcUMsQ0FBQTtJQUNyQyxnRUFBK0MsQ0FBQTtJQUMvQyxzREFBcUMsQ0FBQTtJQUNyQyw4REFBNkMsQ0FBQTtJQUM3QyxpRUFBZ0QsQ0FBQTtJQUNoRCx1RkFBc0UsQ0FBQTtJQUN0RSxzREFBcUMsQ0FBQTtJQUNyQyw4REFBNkMsQ0FBQTtJQUM3Qyx3REFBdUMsQ0FBQTtJQUN2Qyw2REFBNEMsQ0FBQTtJQUM1QyxrRUFBaUQsQ0FBQTtJQUNqRCx3RUFBdUQsQ0FBQTtJQUN2RCxpQkFBaUI7QUFDbkIsQ0FBQyxFQTdCVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQTZCeEI7QUFzREQsSUFBaUIsS0FBSyxDQWtDckI7QUFsQ0QsV0FBaUIsS0FBSztJQUNQLFlBQU0sR0FBRyxDQUFDLENBQUM7SUFDWCxVQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsU0FBRyxHQUFHLENBQUMsQ0FBQztJQUNSLGNBQVEsR0FBRyxDQUFDLENBQUM7SUFDYixlQUFTLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLGFBQU8sR0FBRyxDQUFDLENBQUM7SUFDWixZQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsVUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFVBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ2hCLGFBQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ25CLFNBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ2YsVUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUk7SUFDaEIsY0FBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUk7SUFDcEIsVUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbEIsWUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDcEIsV0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbkIsV0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbkIsV0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbkIsWUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDcEIsY0FBUSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDdEIsZUFBUyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDdkIsWUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDcEIsYUFBTyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDckIsWUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDcEIsU0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDakIsYUFBTyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDckIsWUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDcEIsV0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbkIsVUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbEIsY0FBUSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDdEIsZUFBUyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDdkIsV0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7SUFDbkIsY0FBUSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUs7QUFDckMsQ0FBQyxFQWxDZ0IsS0FBSyxHQUFMLGFBQUssS0FBTCxhQUFLLFFBa0NyQjtBQXVCRCxJQUFZLFNB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 +exports.CHAIN_INFO.set(Chain.OKC, { + blockExplorerUrl: "https://www.oklink.com/okc/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.OKT, + decimals: Decimals_1.DecimalsByCurrency.OKT, + name: "OKC", + nonce: Chain.OKC, + type: ChainType.EVM, + chainId: 66, + blockExplorerUrlAddr: "https://www.oklink.com/en/okc/address/", + tnBlockExplorerUrl: "https://www.oklink.com/okc-test/", + tnBlockExplorerUrlAddr: "https://www.oklink.com/en/okc-test/address/", + tnChainId: 65, +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBaUNYO0FBakNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCwrREFBOEMsQ0FBQTtJQUM5Qyx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QyxzRUFBcUQsQ0FBQTtJQUNyRCxzRkFBcUUsQ0FBQTtJQUNyRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxpQkFBaUI7SUFDakIsYUFBYTtBQUNmLENBQUMsRUFqQ1csYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFpQ3hCO0FBRUQsSUFBWSxhQThCWDtBQTlCRCxXQUFZLGFBQWE7SUFDdkIsc0RBQXFDLENBQUE7SUFDckMsa0VBQWlELENBQUE7SUFDakQsMERBQXlDLENBQUE7SUFDekMsMkZBQTBFLENBQUE7SUFDMUUsb0VBQW1ELENBQUE7SUFDbkQsb0RBQW1DLENBQUE7SUFDbkMsa0RBQWlDLENBQUE7SUFDakMsa0RBQWlDLENBQUE7SUFDakMsZ0RBQStCLENBQUE7SUFDL0IscURBQW9DLENBQUE7SUFDcEMsd0RBQXVDLENBQUE7SUFDdkMsOENBQTZCLENBQUE7SUFDN0Isd0RBQXVDLENBQUE7SUFDdkMscURBQW9DLENBQUE7SUFDcEMsNkRBQTRDLENBQUE7SUFDNUMsc0RBQXFDLENBQUE7SUFDckMsZ0VBQStDLENBQUE7SUFDL0Msc0RBQXFDLENBQUE7SUFDckMsOERBQTZDLENBQUE7SUFDN0MsaUVBQWdELENBQUE7SUFDaEQsdUZBQXNFLENBQUE7SUFDdEUsc0RBQXFDLENBQUE7SUFDckMsOERBQTZDLENBQUE7SUFDN0Msd0RBQXVDLENBQUE7SUFDdkMsNkRBQTRDLENBQUE7SUFDNUMsa0VBQWlELENBQUE7SUFDakQsd0VBQXVELENBQUE7SUFDdkQscURBQW9DLENBQUE7SUFDcEMsaUJBQWlCO0FBQ25CLENBQUMsRUE5QlcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUE4QnhCO0FBdURELElBQWlCLEtBQUssQ0FtQ3JCO0FBbkNELFdBQWlCLEtBQUs7SUFDUCxZQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsVUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFNBQUcsR0FBRyxDQUFDLENBQUM7SUFDUixjQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsZUFBUyxHQUFHLEdBQUcsQ0FBQztJQUNoQixhQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ1osWUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLFVBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxVQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNoQixhQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNuQixTQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNmLFVBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ2hCLGNBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ3BCLFVBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2xCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLGVBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3ZCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3JCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFNBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2pCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3JCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFVBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2xCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLGVBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3ZCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLFNBQUcsR0FB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 diff --git a/dist/factory/cons.d.ts b/dist/factory/cons.d.ts index b0d1c789a..41b83692d 100644 --- a/dist/factory/cons.d.ts +++ b/dist/factory/cons.d.ts @@ -13,8 +13,5 @@ export declare function getDefaultContract( fromChain: FullChain, toChain: FullChain ): string | undefined; -export declare function prepareTokenId( - tokenId: string | undefined, - from: number -): string | undefined; +export declare function prepareTokenId(nft: NftInfo, from: number): any; //# sourceMappingURL=cons.d.ts.map diff --git a/dist/factory/cons.d.ts.map b/dist/factory/cons.d.ts.map index ea425a0a0..8a2330027 100644 --- a/dist/factory/cons.d.ts.map +++ b/dist/factory/cons.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"cons.d.ts","sourceRoot":"","sources":["../../src/factory/cons.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIxC,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,qBAAqB,CAS1C;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAO9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAChE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GACzC,MAAM,GAAG,SAAS,CAsDpB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,sBAkBvE"} \ No newline at end of file +{"version":3,"file":"cons.d.ts","sourceRoot":"","sources":["../../src/factory/cons.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIxC,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,qBAAqB,CAS1C;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAO9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAChE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GACzC,MAAM,GAAG,SAAS,CAsDpB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,OAuB7D"} \ No newline at end of file diff --git a/dist/factory/cons.js b/dist/factory/cons.js index 12254b62f..cc8f8deae 100644 --- a/dist/factory/cons.js +++ b/dist/factory/cons.js @@ -82,11 +82,15 @@ function getDefaultContract(nft, fromChain, toChain) { return contract; } exports.getDefaultContract = getDefaultContract; -function prepareTokenId(tokenId, from) { +function prepareTokenId(nft, from) { + const tokenId = + //@ts-ignore + nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); if (tokenId) { const notNumber = isNaN(Number(tokenId)); if (notNumber) { if (from === consts_1.Chain.ELROND) { + if (nft.native.nonce) return String(nft.native.nonce); const hex = tokenId.split("-")?.at(2); return String(hex ? parseInt(hex, 16) : ""); } @@ -100,4 +104,4 @@ function prepareTokenId(tokenId, from) { return undefined; } exports.prepareTokenId = prepareTokenId; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3J5L2NvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBTThCO0FBSTlCLHNDQUF5RDtBQUU1QyxRQUFBLFFBQVEsR0FBRztJQUN0QixjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLFNBQWdCLGdCQUFnQixDQUM5QixPQUFlO0lBRWYsTUFBTSxXQUFXLEdBQUcsbUNBQVksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRSxPQUFPLElBQUEsNkNBQXNCLEVBQzNCLElBQUEsbURBQTRCLEVBQzFCLFdBQVcsRUFDWCxtQ0FBWSxDQUFDLHFCQUFxQixFQUFFLENBQ3JDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFYRCw0Q0FXQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLEVBQU8sRUFBRSxRQUFnQjtJQUM3RCxNQUFNLEtBQUssR0FBRyxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxJQUFJLEtBQUssRUFBRSxjQUFjLElBQUksS0FBSyxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDckUsTUFBTSxJQUFJLEtBQUssQ0FDYixrQkFBa0IsS0FBSyxDQUFDLElBQUksd0NBQXdDLENBQ3JFLENBQUM7S0FDSDtBQUNILENBQUM7QUFQRCxzREFPQztBQUVELFNBQWdCLGtCQUFrQixDQUNoQyxHQUFxQixFQUNyQixTQUE0QyxFQUM1QyxPQUEwQztJQUUxQyxNQUFNLGdCQUFnQixHQUFHLElBQUksS0FBSyxDQUNoQyx5R0FBeUcsQ0FDMUcsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFOUIsTUFBTSxRQUFRLEdB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3J5L2NvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBTThCO0FBSTlCLHNDQUF5RDtBQUU1QyxRQUFBLFFBQVEsR0FBRztJQUN0QixjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLFNBQWdCLGdCQUFnQixDQUM5QixPQUFlO0lBRWYsTUFBTSxXQUFXLEdBQUcsbUNBQVksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRSxPQUFPLElBQUEsNkNBQXNCLEVBQzNCLElBQUEsbURBQTRCLEVBQzFCLFdBQVcsRUFDWCxtQ0FBWSxDQUFDLHFCQUFxQixFQUFFLENBQ3JDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFYRCw0Q0FXQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLEVBQU8sRUFBRSxRQUFnQjtJQUM3RCxNQUFNLEtBQUssR0FBRyxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxJQUFJLEtBQUssRUFBRSxjQUFjLElBQUksS0FBSyxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDckUsTUFBTSxJQUFJLEtBQUssQ0FDYixrQkFBa0IsS0FBSyxDQUFDLElBQUksd0NBQXdDLENBQ3JFLENBQUM7S0FDSDtBQUNILENBQUM7QUFQRCxzREFPQztBQUVELFNBQWdCLGtCQUFrQixDQUNoQyxHQUFxQixFQUNyQixTQUE0QyxFQUM1QyxPQUEwQztJQUUxQyxNQUFNLGdCQUFnQixHQUFHLElBQUksS0FBSyxDQUNoQyx5R0FBeUcsQ0FDMUcsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFOUIsTUFBTSxRQUFRLEdB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 diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map index c44b6e50f..19766d215 100644 --- a/dist/factory/factories.d.ts.map +++ b/dist/factory/factories.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAwWvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA4KvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAiVvD,CAAC;CACH"} \ No newline at end of file +{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAmXvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA2KvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA4VvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js index 7cc121f04..e6277eebc 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -133,11 +133,11 @@ var ChainFactoryConfigs; feeMargin, nonce: consts_1.Chain.VECHAIN, provider, - minter_addr: "0xd9145CCE52D386f254917e481eB44e9943F39138", - erc721_addr: "0xD7ACd2a9FD159E69Bb102A1ca21C9a3e3A5F771B", - erc1155_addr: "0xf8e81D47203A594245E36C48e151709F0C19fBe8", - erc721Minter: "0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47", - erc1155Minter: "0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8", + minter_addr: "0x5142f6Cc88a9a91b4F6a1972Ce412d57245092A8", + erc721_addr: "0x1cCF127eB11bD9bdbf2b4000dCef04c34C13850B", + erc1155_addr: "0x1109b0CAB4C4e51aBA040a8A6d16273c305941F8", + erc721Minter: "0x1E749e1580889334Bd61254fFab15c1B3ADe1Afd", + erc1155Minter: "0xDA5e020bA795191ff97A5AF97631bACbdcD1354b", }, tronParams: { provider: new tronweb_1.default({ @@ -309,6 +309,19 @@ var ChainFactoryConfigs; nonce: consts_1.Chain.ETHEREUM, feeMargin, }, + okcParams: { + erc721Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc1155Minter: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc1155_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + erc721_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + minter_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + feeMargin, + nonce: consts_1.Chain.OKC, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.OKC + ), + }, xDaiParams: { notifier, provider: new ethers_1.ethers.providers.JsonRpcProvider( @@ -518,10 +531,9 @@ var ChainFactoryConfigs; nonce: consts_1.Chain.CADUCEUS, }, algorandParams: { - algodApiKey: - "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", - algodUri: "https://algorand-node.xp.network/", - indexerUri: "https://algoindexer.algoexplorerapi.io", + algodApiKey: "kZWDAxYR7Y6S6RoyfGIi28SATZ5DfTIs5pF0UMW4", + algodUri: "https://mainnet-algorand.api.purestake.io/ps2", + indexerUri: "https://mainnet-algorand.api.purestake.io/idx2", nonce: consts_1.Chain.ALGORAND, sendNftAppId: 942656248, algodPort: 443, @@ -725,13 +737,26 @@ var ChainFactoryConfigs; provider: new ethers_1.ethers.providers.JsonRpcProvider( consts_1.MainNetRpcUri.CADUCEUS ), - erc1155_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", - erc721_addr: "0x3410b0e0b1aBAe452b3F031AdE8dab347f5Fb60b", - erc1155Minter: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", - erc721Minter: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", - minter_addr: "0xd3f55Dd3da582E8E55AcE14e28352a95334E8feb", + erc1155_addr: "0xF8AE68714fF6704883281603a22b56f47eB23511", + erc721_addr: "0x97799bEDB7AD04d61899F0255BA12EAF641d666D", + erc1155Minter: "0xFbA4cB4B617328cfE7a92907e4fb34bf1d798eBA", + erc721Minter: "0x6b3b43029dD4695f8780d7f16E0313dA02d9507B", + minter_addr: "0x98e9510261F34438e340c03cD35b492f87f628A8", nonce: consts_1.Chain.CADUCEUS, }, + okcParams: { + erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", + erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", + erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", + erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + feeMargin, + nonce: consts_1.Chain.OKC, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.OKC + ), + }, dfinityParams: { agent: new agent_1.HttpAgent({ host: "https://ic0.app", @@ -1062,4 +1087,4 @@ var ChainFactoryConfigs; (ChainFactoryConfigs = exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) ); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0EyMkJuQztBQTMyQkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0FnNEJuQztBQWg0QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 diff --git a/dist/factory/index.d.ts b/dist/factory/index.d.ts index b0bc1cc47..1303003b2 100644 --- a/dist/factory/index.d.ts +++ b/dist/factory/index.d.ts @@ -102,7 +102,8 @@ export type ChainFactory = { fee?: BigNumber.Value, mintWith?: string, gasLimit?: ethers.BigNumberish | undefined, - extraFee?: BigNumber.Value + extraFee?: BigNumber.Value, + gasPrice?: ethers.BigNumberish | undefined ): Promise; transferBatchNft( fromChain: FullChainBatch, @@ -278,6 +279,7 @@ export interface ChainParams { aptosParams: AptosParams; solanaParams: SolanaParams; caduceusParams: Web3Params; + okcParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; /** diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map index 1cf9c5f4b..594e5c00f 100644 --- a/dist/factory/index.d.ts.map +++ b/dist/factory/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js index 7cf3d1d6c..7df802469 100644 --- a/dist/factory/index.js +++ b/dist/factory/index.js @@ -86,6 +86,7 @@ function mapNonceToParams(chainParams) { cToP.set(consts_1.Chain.APTOS, chainParams.aptosParams); cToP.set(consts_1.Chain.SOLANA, chainParams.solanaParams); cToP.set(consts_1.Chain.CADUCEUS, chainParams.caduceusParams); + cToP.set(consts_1.Chain.OKC, chainParams.okcParams); return cToP; } /** @@ -459,7 +460,8 @@ function ChainFactory(appConfig, chainParams) { fee, mintWith, gasLimit, - extraFee + extraFee, + gasPrice ) => { //@ts-ignore if (nft.native.contract) { @@ -470,9 +472,6 @@ function ChainFactory(appConfig, chainParams) { ); } } - const tokenId = - //@ts-ignore - nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); if (appConfig.network === "mainnet") { await requireBridge([fromChain.getNonce(), toChain.getNonce()]); } @@ -491,7 +490,8 @@ function ChainFactory(appConfig, chainParams) { nft, new bignumber_js_1.default(fee), toChain.getNonce().toString(), - gasLimit + gasLimit, + gasPrice ); return res; } else { @@ -504,7 +504,7 @@ function ChainFactory(appConfig, chainParams) { mintWith, toChain.getNonce(), fromChain.getNonce(), - (0, cons_1.prepareTokenId)(tokenId, fromChain.getNonce()) + (0, cons_1.prepareTokenId)(nft, fromChain.getNonce()) )) ? mintWith : (0, cons_1.getDefaultContract)(nft, fromChain, toChain); @@ -519,7 +519,8 @@ function ChainFactory(appConfig, chainParams) { nft, new bignumber_js_1.default(fee), mw, - gasLimit + gasLimit, + gasPrice ); return res; } @@ -609,4 +610,4 @@ function ChainFactory(appConfig, chainParams) { }; } exports.ChainFactory = ChainFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUE2UWhCLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUErUWhCLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElB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 diff --git a/dist/helpers/chain.d.ts b/dist/helpers/chain.d.ts index c2fc758c7..825a0d92f 100644 --- a/dist/helpers/chain.d.ts +++ b/dist/helpers/chain.d.ts @@ -44,7 +44,8 @@ export interface TransferNftForeign { id: NftInfo, txFees: BigNumber, mintWith: string, - gasLimit?: ethers.BigNumberish | undefined + gasLimit?: ethers.BigNumberish | undefined, + gasPrice?: ethers.BigNumberish | undefined ): Promise; } /** @@ -64,7 +65,8 @@ export interface UnfreezeForeignNft { id: NftInfo, txFees: BigNumber, nonce: string, - gasLimit: ethers.BigNumberish | undefined + gasLimit: ethers.BigNumberish | undefined, + gasPrice: ethers.BigNumberish | undefined ): Promise; } /** diff --git a/dist/helpers/chain.d.ts.map b/dist/helpers/chain.d.ts.map index b37f1df49..6ca5445bd 100644 --- a/dist/helpers/chain.d.ts.map +++ b/dist/helpers/chain.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/helpers/chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/helpers/chain.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,GAAG,IAAI;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS;IACtD,WAAW,CACT,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EACjB,GAAG,EAAE,SAAS,EACd,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAC5B,WAAW,CACT,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EACjB,GAAG,EAAE,SAAS,EACd,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI;IACtD,oBAAoB,CAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EACnB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,YAAY,GAAG,SAAS,EAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,YAAY,GAAG,SAAS,GACzC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI;IACtD,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EACnB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,YAAY,GAAG,SAAS,EACzC,QAAQ,EAAE,MAAM,CAAC,YAAY,GAAG,SAAS,GACxC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU;IAC/C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,cAAc,CAAC,OAAO;IACrC,2BAA2B,CACzB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB,2BAA2B,CACzB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAAC;CACvB;AAED,wBAAgB,mBAAmB,IAAI,KAAK,CAE3C;AAED,MAAM,WAAW,iBAAiB,CAAC,SAAS,EAAE,GAAG;IAC/C,iBAAiB,CACf,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,SAAS,GAChB,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,IAAI,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,aAAa,CAAC,GAAG;IAChC,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AACD,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI;IAC3D,yBAAyB,CACvB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI;IAC3D,uBAAuB,CACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EACvB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB,CAAC,OAAO;IAC1C,gCAAgC,CAC9B,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC7B,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB,gCAAgC,CAC9B,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAC5B,OAAO,CAAC,SAAS,CAAC,CAAC;CACvB;AAED,MAAM,MAAM,cAAc,CAAC,MAAM,IAAI;IACnC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,WAAW,WAAW,CAAC,QAAQ;IACnC,WAAW,IAAI,QAAQ,CAAC;CACzB;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,oBAKvD;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,IAAI,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACzD"} \ No newline at end of file diff --git a/dist/helpers/chain.js b/dist/helpers/chain.js index c5a2c61c2..f6da907cd 100644 --- a/dist/helpers/chain.js +++ b/dist/helpers/chain.js @@ -31,4 +31,4 @@ async function isWrappedNft(nft) { ); } exports.isWrappedNft = isWrappedNft; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUE0RzFCLFNBQWdCLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUZELGtEQUVDO0FBa0JELElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUMzQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFLNUI7QUFrRE0sS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFxQjtJQUN0RCxPQUFPLENBQ0wsT0FBTyxDQUFDLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDdEUsV0FBVyxDQUNaLENBQUM7QUFDSixDQUFDO0FBTEQsb0NBS0MifQ== +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUE4RzFCLFNBQWdCLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUZELGtEQUVDO0FBa0JELElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUMzQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFLNUI7QUFrRE0sS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFxQjtJQUN0RCxPQUFPLENBQ0wsT0FBTyxDQUFDLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDdEUsV0FBVyxDQUNaLENBQUM7QUFDSixDQUFDO0FBTEQsb0NBS0MifQ== diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index f1cb26e14..be577b1db 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -18,6 +18,7 @@ import { } from "./chain"; import { ContractTransaction, + ethers, PopulatedTransaction, providers, Signer, @@ -71,14 +72,16 @@ export interface IsApproved { isApprovedForMinter( address: NftInfo, sender: Sender, - txFee: BigNumber + txFee: BigNumber, + gasPrice?: ethers.BigNumber ): Promise; } export interface Approve { approveForMinter( address: NftInfo, sender: Sender, - txFee: BigNumber + txFee: BigNumber, + gasPrice?: ethers.BigNumber ): Promise; } type NullableCustomData = Record | undefined; @@ -105,6 +108,9 @@ export type BaseWeb3Helper = BalanceCheck & options: MintArgs ): Promise; }; +type ExtraArgs = { + gasPrice: ethers.BigNumber; +}; /** * Traits implemented by this module */ @@ -121,7 +127,7 @@ export type Web3Helper = BaseWeb3Helper & ValidateAddress & ExtractAction & { createWallet(privateKey: string): Wallet; - } & Pick, "preTransfer"> & + } & Pick, "preTransfer"> & PreTransferRawTxn & ExtractTxnStatus & GetProvider & { @@ -174,7 +180,8 @@ type NftMethodVal = { forAddr: string, tok: string, txnUp: (tx: PopulatedTransaction) => Promise, - customData: NullableCustomData + customData: NullableCustomData, + gasPrice: ethers.BigNumberish | undefined ) => Promise; }; type EthNftMethodVal = NftMethodVal; diff --git a/dist/helpers/web3.d.ts.map b/dist/helpers/web3.d.ts.map index bf7667e29..ca6c0e18c 100644 --- a/dist/helpers/web3.d.ts.map +++ b/dist/helpers/web3.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/helpers/web3.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/helpers/web3.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index fa1a7993f..717ef595a 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -217,7 +217,7 @@ async function web3HelperFactory(params) { params.nonce === 0x1d ? {} : undefined ); }; - const approveForMinter = async (id, sender) => { + const approveForMinter = async (id, sender, _txFees, gasPrice) => { const isApproved = await isApprovedForMinter(id, sender); if (isApproved) { return undefined; @@ -239,7 +239,8 @@ async function web3HelperFactory(params) { toApprove, id.native.tokenId, txnUnderpricedPolyWorkaround, - params.nonce === 0x1d ? {} : undefined + params.nonce === 0x1d ? {} : undefined, + gasPrice ); await receipt.wait(); return receipt.hash; @@ -259,7 +260,8 @@ async function web3HelperFactory(params) { return params.feeMargin; }, isApprovedForMinter, - preTransfer: (s, id, _fee) => approveForMinter(id, s), + preTransfer: (s, id, fee, args) => + approveForMinter(id, s, fee, args?.gasPrice), extractAction, async isContractAddress(address) { const code = await provider.getCode(address); @@ -302,6 +304,8 @@ async function web3HelperFactory(params) { contract, provider ); + //const erc1155 = Erc1155Minter__factory.connect(contract!, provider) + //erc1155.uri() return await erc721.tokenURI(tokenId).catch(() => ""); } return ""; @@ -380,9 +384,10 @@ async function web3HelperFactory(params) { id, txFees, mintWith, - gasLimit = undefined + gasLimit = undefined, + gasPrice ) { - await approveForMinter(id, sender); + await approveForMinter(id, sender, txFees, gasPrice); const method = exports.NFT_METHOD_MAP[id.native.contractType].freeze; // Chain is Hedera if (params.nonce === 0x1d) { @@ -403,6 +408,7 @@ async function web3HelperFactory(params) { { value: ethers_1.BigNumber.from(txFees.toString()), gasLimit, + gasPrice, } ); await txnUnderpricedPolyWorkaround(tx); @@ -437,9 +443,10 @@ async function web3HelperFactory(params) { id, txFees, nonce, - gasLimit = undefined + gasLimit = undefined, + gasPrice ) { - await approveForMinter(id, sender); + await approveForMinter(id, sender, txFees, gasPrice); // Chain is Hedera if (params.nonce === 0x1d) { id.native.tokenId = ethers_1.ethers.utils.solidityPack( @@ -458,6 +465,7 @@ async function web3HelperFactory(params) { { value: ethers_1.BigNumber.from(txFees.toString(10)), gasLimit, + gasPrice, } ); await txnUnderpricedPolyWorkaround(txn); @@ -493,4 +501,4 @@ async function web3HelperFactory(params) { }; } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBY3JDLG1DQVNnQjtBQUVoQiwrREFNOEI7QUFDOUIsMEJBWVk7QUFHWixrREFBMEI7QUFDMUIsZ0RBQTZDO0FBMEM3QyxpQkFBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNoRSxPQUFPLGtCQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQXVERjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQixFQUNsQixLQUFhO0lBRWIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxD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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBY3JDLG1DQVNnQjtBQUVoQiwrREFNOEI7QUFDOUIsMEJBWVk7QUFHWixrREFBMEI7QUFDMUIsZ0RBQTZDO0FBNEM3QyxpQkFBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNoRSxPQUFPLGtCQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQXlERjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQixFQUNsQixLQUFhO0lBRWIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxD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 diff --git a/dist/helpers/web3_erc20.d.ts.map b/dist/helpers/web3_erc20.d.ts.map index da9d58f69..502a20a95 100644 --- a/dist/helpers/web3_erc20.d.ts.map +++ b/dist/helpers/web3_erc20.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"web3_erc20.d.ts","sourceRoot":"","sources":["../../src/helpers/web3_erc20.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAOzE,OAAO,EACL,cAAc,EAMd,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AAGZ;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CAiYrB"} \ No newline at end of file +{"version":3,"file":"web3_erc20.d.ts","sourceRoot":"","sources":["../../src/helpers/web3_erc20.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAOzE,OAAO,EACL,cAAc,EAMd,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AAGZ;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CAqYrB"} \ No newline at end of file diff --git a/dist/helpers/web3_erc20.js b/dist/helpers/web3_erc20.js index ed5ffbb19..236fd4bfd 100644 --- a/dist/helpers/web3_erc20.js +++ b/dist/helpers/web3_erc20.js @@ -144,7 +144,7 @@ async function web3ERC20HelperFactory(params) { params.nonce === 0x1d ? {} : undefined ); }; - const approveForMinter = async (id, sender, txFees) => { + const approveForMinter = async (id, sender, txFees, gasPrice) => { const isApproved = await isApprovedForMinter(id, sender, txFees); if (isApproved) { return undefined; @@ -158,7 +158,8 @@ async function web3ERC20HelperFactory(params) { minter_addr, id.native.tokenId, txnUnderpricedPolyWorkaround, - params.nonce === 0x1d ? {} : undefined + params.nonce === 0x1d ? {} : undefined, + gasPrice ); await receipt.wait(); const erc20 = xpnet_web3_contracts_1.PaymentToken__factory.connect( @@ -186,7 +187,8 @@ async function web3ERC20HelperFactory(params) { return params.feeMargin; }, isApprovedForMinter, - preTransfer: (s, id, _fee) => approveForMinter(id, s, _fee), + preTransfer: (s, id, _fee, args) => + approveForMinter(id, s, _fee, args?.gasPrice), extractAction, async isContractAddress(address) { const code = await provider.getCode(address); @@ -304,9 +306,10 @@ async function web3ERC20HelperFactory(params) { id, txFees, mintWith, - gasLimit = undefined + gasLimit = undefined, + gasPrice ) { - await approveForMinter(id, sender, txFees); + await approveForMinter(id, sender, txFees, gasPrice); const method = __1.NFT_METHOD_MAP[id.native.contractType].freeze; const tx = await minter .connect(sender) @@ -393,4 +396,4 @@ async function web3ERC20HelperFactory(params) { }; } exports.web3ERC20HelperFactory = web3ERC20HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViM19lcmMyMC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjNfZXJjMjAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBQ3JDLG1DQVFnQjtBQUVoQiwrREFLOEI7QUFDOUIsMEJBU1k7QUFDWixrREFBMEI7QUFFMUI7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBa0I7SUFFbEIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBRTNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBYSxF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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViM19lcmMyMC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjNfZXJjMjAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBQ3JDLG1DQVFnQjtBQUVoQiwrREFLOEI7QUFDOUIsMEJBU1k7QUFDWixrREFBMEI7QUFFMUI7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBa0I7SUFFbEIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBRTNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBYSxF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 From 7721a5b3e22acfcdc7a5b8a3b9945f785418ec19 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 18 Jan 2023 15:42:49 +0200 Subject: [PATCH 863/956] evm Arbitrum: add configs --- src/consts.ts | 20 +++++++++++++++++++- src/factory/factories.ts | 22 ++++++++++++++++++++++ src/factory/index.ts | 2 ++ 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index aa37b2a99..e7c5716d6 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -39,7 +39,7 @@ export enum TestNetRpcUri { ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-mumbai.chainstacklabs.com", - FANTOM = "https://rpc.testnet.fantom.network/", + FANTOM = "https://fantom-testnet.public.blastapi.io", TRON = "https://api.shasta.trongrid.io/", CELO = "https://alfajores-forno.celo-testnet.org", HARMONY = "https://api.s0.b.hmny.io", @@ -63,6 +63,7 @@ export enum TestNetRpcUri { SOLANA = "https://api.devnet.solana.com", CADUCEUS = "https://galaxy.block.caduceus.foundation", OKC = "https://exchaintestrpc.okex.org", + ARBITRUM = "https://goerli-rollup.arbitrum.io/rpc", // TODO: Algorand // TODO: Fuse } @@ -96,6 +97,7 @@ export enum MainNetRpcUri { APTOS = "https://fullnode.mainnet.aptoslabs.com/", CADUCEUS = "https://mainnet.block.caduceus.foundation/", OKC = "https://exchainrpc.okex.org/", + ARBITRUM = "string", // TODO: Algorand } @@ -150,6 +152,7 @@ export type MetaMap = { 0x22: AptosMeta; 0x23: Web3Meta; 0x24: Web3Meta; + 0x25: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -187,6 +190,7 @@ export namespace Chain { export const APTOS = 0x22; // 34 export const CADUCEUS = 0x23; // 35 export const OKC = 0x24; // 36 + export const ARBITRUM = 0x25; //37 } interface ChainData { @@ -682,3 +686,17 @@ CHAIN_INFO.set(Chain.OKC, { tnBlockExplorerUrlAddr: "https://www.oklink.com/en/okc-test/address/", tnChainId: 65, }); +CHAIN_INFO.set(Chain.ARBITRUM, { + blockExplorerUrl: "https://explorer.arbitrum.io/tx/", + constructor: web3HelperFactory, + currency: SupportedCurrency.ETH, + decimals: Decimals.ETH, + name: "Arbitrum", + nonce: Chain.ARBITRUM, + type: ChainType.EVM, + chainId: 42161, + blockExplorerUrlAddr: "https://explorer.arbitrum.io/address/", + tnBlockExplorerUrl: "https://goerli-rollup-explorer.arbitrum.io/tx/", + tnBlockExplorerUrlAddr: "https://goerli-rollup-explorer.arbitrum.io/address/", + tnChainId: 421613, +}); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index e97391f32..4bbb851b0 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -249,6 +249,17 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.OKC), }, + arbitrumParams: { + erc721Minter: "0xf185759aDb97977b419e3bc25b14E751c93865eA", + erc1155Minter: "0xf11db8Cd2A24d203E28e440D26664ed48a263D4c", + erc1155_addr: "0x7b7Bb6ba1796f2C766cFae6A2C60463766615c69", + erc721_addr: "0xb0801bffD146c21EF91E86625756aAa7f74aDB3a", + minter_addr: "0xBB840fC6C649Eb61Fd474886998e65DA80AfEFF2", + feeMargin, + nonce: Chain.ARBITRUM, + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ARBITRUM), + }, xDaiParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), @@ -642,6 +653,17 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.OKC), }, + arbitrumParams: { + erc721Minter: "string", + erc1155Minter: "string", + erc1155_addr: "string", + erc721_addr: "string", + minter_addr: "string", + feeMargin, + nonce: Chain.ARBITRUM, + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ARBITRUM), + }, dfinityParams: { agent: new HttpAgent({ host: "https://ic0.app", diff --git a/src/factory/index.ts b/src/factory/index.ts index 9f2cf4455..ee3b61119 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -313,6 +313,7 @@ export interface ChainParams { solanaParams: SolanaParams; caduceusParams: Web3Params; okcParams: Web3Params; + arbitrumParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -372,6 +373,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.SOLANA, chainParams.solanaParams); cToP.set(Chain.CADUCEUS, chainParams.caduceusParams); cToP.set(Chain.OKC, chainParams.okcParams); + cToP.set(Chain.ARBITRUM, chainParams.arbitrumParams); return cToP; } /** From c7cb35655d58dd1694e7bb73f0312414a5310525 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 18 Jan 2023 15:44:49 +0200 Subject: [PATCH 864/956] merge with secretjs --- dist/consts.d.ts | 6 +++++- dist/consts.d.ts.map | 2 +- dist/consts.js | 21 +++++++++++++++++++-- dist/factory/factories.d.ts.map | 2 +- dist/factory/factories.js | 28 +++++++++++++++++++++++++++- dist/factory/index.d.ts | 1 + dist/factory/index.d.ts.map | 2 +- dist/factory/index.js | 3 ++- 8 files changed, 57 insertions(+), 8 deletions(-) diff --git a/dist/consts.d.ts b/dist/consts.d.ts index 120715a63..8e8efd27c 100644 --- a/dist/consts.d.ts +++ b/dist/consts.d.ts @@ -19,7 +19,7 @@ export declare enum TestNetRpcUri { ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-mumbai.chainstacklabs.com", - FANTOM = "https://rpc.testnet.fantom.network/", + FANTOM = "https://fantom-testnet.public.blastapi.io", TRON = "https://api.shasta.trongrid.io/", CELO = "https://alfajores-forno.celo-testnet.org", HARMONY = "https://api.s0.b.hmny.io", @@ -43,6 +43,7 @@ export declare enum TestNetRpcUri { SOLANA = "https://api.devnet.solana.com", CADUCEUS = "https://galaxy.block.caduceus.foundation", OKC = "https://exchaintestrpc.okex.org", + ARBITRUM = "https://goerli-rollup.arbitrum.io/rpc", } export declare enum MainNetRpcUri { ELROND = "https://gateway.elrond.com", @@ -73,6 +74,7 @@ export declare enum MainNetRpcUri { APTOS = "https://fullnode.mainnet.aptoslabs.com/", CADUCEUS = "https://mainnet.block.caduceus.foundation/", OKC = "https://exchainrpc.okex.org/", + ARBITRUM = "string", } type ElrondMeta = [ElrondHelper, ElrondParams]; type Web3Meta = [Web3Helper, Web3Params]; @@ -124,6 +126,7 @@ export type MetaMap = { 0x22: AptosMeta; 0x23: Web3Meta; 0x24: Web3Meta; + 0x25: Web3Meta; } & MetaMapAssert; export declare namespace Chain { const ELROND = 2; @@ -160,6 +163,7 @@ export declare namespace Chain { const APTOS = 34; const CADUCEUS = 35; const OKC = 36; + const ARBITRUM = 37; } interface ChainData { name: string; diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map index 5e95114ed..424e0e5dc 100644 --- a/dist/consts.d.ts.map +++ b/dist/consts.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js index d9937bbe0..28712a961 100644 --- a/dist/consts.js +++ b/dist/consts.js @@ -30,7 +30,7 @@ var TestNetRpcUri; "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467"; TestNetRpcUri["AVALANCHE"] = "https://api.avax-test.network/ext/bc/C/rpc"; TestNetRpcUri["POLYGON"] = "https://matic-mumbai.chainstacklabs.com"; - TestNetRpcUri["FANTOM"] = "https://rpc.testnet.fantom.network/"; + TestNetRpcUri["FANTOM"] = "https://fantom-testnet.public.blastapi.io"; TestNetRpcUri["TRON"] = "https://api.shasta.trongrid.io/"; TestNetRpcUri["CELO"] = "https://alfajores-forno.celo-testnet.org"; TestNetRpcUri["HARMONY"] = "https://api.s0.b.hmny.io"; @@ -55,6 +55,7 @@ var TestNetRpcUri; TestNetRpcUri["SOLANA"] = "https://api.devnet.solana.com"; TestNetRpcUri["CADUCEUS"] = "https://galaxy.block.caduceus.foundation"; TestNetRpcUri["OKC"] = "https://exchaintestrpc.okex.org"; + TestNetRpcUri["ARBITRUM"] = "https://goerli-rollup.arbitrum.io/rpc"; // TODO: Algorand // TODO: Fuse })((TestNetRpcUri = exports.TestNetRpcUri || (exports.TestNetRpcUri = {}))); @@ -90,6 +91,7 @@ var MainNetRpcUri; MainNetRpcUri["APTOS"] = "https://fullnode.mainnet.aptoslabs.com/"; MainNetRpcUri["CADUCEUS"] = "https://mainnet.block.caduceus.foundation/"; MainNetRpcUri["OKC"] = "https://exchainrpc.okex.org/"; + MainNetRpcUri["ARBITRUM"] = "string"; // TODO: Algorand })((MainNetRpcUri = exports.MainNetRpcUri || (exports.MainNetRpcUri = {}))); var Chain; @@ -128,6 +130,7 @@ var Chain; Chain.APTOS = 0x22; // 34 Chain.CADUCEUS = 0x23; // 35 Chain.OKC = 0x24; // 36 + Chain.ARBITRUM = 0x25; //37 })((Chain = exports.Chain || (exports.Chain = {}))); var ChainType; (function (ChainType) { @@ -592,4 +595,18 @@ exports.CHAIN_INFO.set(Chain.OKC, { tnBlockExplorerUrlAddr: "https://www.oklink.com/en/okc-test/address/", tnChainId: 65, }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBaUNYO0FBakNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCwrREFBOEMsQ0FBQTtJQUM5Qyx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QyxzRUFBcUQsQ0FBQTtJQUNyRCxzRkFBcUUsQ0FBQTtJQUNyRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxpQkFBaUI7SUFDakIsYUFBYTtBQUNmLENBQUMsRUFqQ1csYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFpQ3hCO0FBRUQsSUFBWSxhQThCWDtBQTlCRCxXQUFZLGFBQWE7SUFDdkIsc0RBQXFDLENBQUE7SUFDckMsa0VBQWlELENBQUE7SUFDakQsMERBQXlDLENBQUE7SUFDekMsMkZBQTBFLENBQUE7SUFDMUUsb0VBQW1ELENBQUE7SUFDbkQsb0RBQW1DLENBQUE7SUFDbkMsa0RBQWlDLENBQUE7SUFDakMsa0RBQWlDLENBQUE7SUFDakMsZ0RBQStCLENBQUE7SUFDL0IscURBQW9DLENBQUE7SUFDcEMsd0RBQXVDLENBQUE7SUFDdkMsOENBQTZCLENBQUE7SUFDN0Isd0RBQXVDLENBQUE7SUFDdkMscURBQW9DLENBQUE7SUFDcEMsNkRBQTRDLENBQUE7SUFDNUMsc0RBQXFDLENBQUE7SUFDckMsZ0VBQStDLENBQUE7SUFDL0Msc0RBQXFDLENBQUE7SUFDckMsOERBQTZDLENBQUE7SUFDN0MsaUVBQWdELENBQUE7SUFDaEQsdUZBQXNFLENBQUE7SUFDdEUsc0RBQXFDLENBQUE7SUFDckMsOERBQTZDLENBQUE7SUFDN0Msd0RBQXVDLENBQUE7SUFDdkMsNkRBQTRDLENBQUE7SUFDNUMsa0VBQWlELENBQUE7SUFDakQsd0VBQXVELENBQUE7SUFDdkQscURBQW9DLENBQUE7SUFDcEMsaUJBQWlCO0FBQ25CLENBQUMsRUE5QlcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUE4QnhCO0FBdURELElBQWlCLEtBQUssQ0FtQ3JCO0FBbkNELFdBQWlCLEtBQUs7SUFDUCxZQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsVUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFNBQUcsR0FBRyxDQUFDLENBQUM7SUFDUixjQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsZUFBUyxHQUFHLEdBQUcsQ0FBQztJQUNoQixhQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ1osWUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLFVBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxVQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNoQixhQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNuQixTQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNmLFVBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ2hCLGNBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ3BCLFVBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2xCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLGVBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3ZCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3JCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFNBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2pCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3JCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFVBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2xCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLGVBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3ZCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLFNBQUcsR0FB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 +exports.CHAIN_INFO.set(Chain.ARBITRUM, { + blockExplorerUrl: "https://explorer.arbitrum.io/tx/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.ETH, + decimals: Decimals_1.DecimalsByCurrency.ETH, + name: "Arbitrum", + nonce: Chain.ARBITRUM, + type: ChainType.EVM, + chainId: 42161, + blockExplorerUrlAddr: "https://explorer.arbitrum.io/address/", + tnBlockExplorerUrl: "https://goerli-rollup-explorer.arbitrum.io/tx/", + tnBlockExplorerUrlAddr: "https://goerli-rollup-explorer.arbitrum.io/address/", + tnChainId: 421613, +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBa0NYO0FBbENELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QyxzRUFBcUQsQ0FBQTtJQUNyRCxzRkFBcUUsQ0FBQTtJQUNyRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCxpQkFB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 diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map index 19766d215..403e1d1a4 100644 --- a/dist/factory/factories.d.ts.map +++ b/dist/factory/factories.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAmXvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA2KvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA4VvD,CAAC;CACH"} \ No newline at end of file +{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA8XvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA2KvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAuWvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js index e6277eebc..9191d672b 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -322,6 +322,19 @@ var ChainFactoryConfigs; consts_1.TestNetRpcUri.OKC ), }, + arbitrumParams: { + erc721Minter: "0xf185759aDb97977b419e3bc25b14E751c93865eA", + erc1155Minter: "0xf11db8Cd2A24d203E28e440D26664ed48a263D4c", + erc1155_addr: "0x7b7Bb6ba1796f2C766cFae6A2C60463766615c69", + erc721_addr: "0xb0801bffD146c21EF91E86625756aAa7f74aDB3a", + minter_addr: "0xBB840fC6C649Eb61Fd474886998e65DA80AfEFF2", + feeMargin, + nonce: consts_1.Chain.ARBITRUM, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.ARBITRUM + ), + }, xDaiParams: { notifier, provider: new ethers_1.ethers.providers.JsonRpcProvider( @@ -757,6 +770,19 @@ var ChainFactoryConfigs; consts_1.MainNetRpcUri.OKC ), }, + arbitrumParams: { + erc721Minter: "string", + erc1155Minter: "string", + erc1155_addr: "string", + erc721_addr: "string", + minter_addr: "string", + feeMargin, + nonce: consts_1.Chain.ARBITRUM, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.ARBITRUM + ), + }, dfinityParams: { agent: new agent_1.HttpAgent({ host: "https://ic0.app", @@ -1087,4 +1113,4 @@ var ChainFactoryConfigs; (ChainFactoryConfigs = exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) ); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0FnNEJuQztBQWg0QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0FzNUJuQztBQXQ1QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 diff --git a/dist/factory/index.d.ts b/dist/factory/index.d.ts index 1303003b2..b907f14b2 100644 --- a/dist/factory/index.d.ts +++ b/dist/factory/index.d.ts @@ -280,6 +280,7 @@ export interface ChainParams { solanaParams: SolanaParams; caduceusParams: Web3Params; okcParams: Web3Params; + arbitrumParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; /** diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map index 594e5c00f..d186437a6 100644 --- a/dist/factory/index.d.ts.map +++ b/dist/factory/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAE5B,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,OAAO,EAEP,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AAGZ,OAAO,EAAmB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAEL,cAAc,EACd,WAAW,EAEX,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,mBAAmB,EAEnB,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,UAAU,EAEV,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EAEZ,MAAM,eAAe,CAAC;AASvB,MAAM,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,kBAAkB,CAC9D,MAAM,EACN,MAAM,EACN,IAAI,CACL,GACC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GACxC,cAAc,CAAC,MAAM,CAAC,GACtB,aAAa,GACb,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC;AAE1E,KAAK,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GACzE,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GAC7C,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GAC7C,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;OAGG;IACH,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClE;;;;;;;;;;;OAWG;IAEH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAChC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAC3C,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,YAAY,GAAG,SAAS,EAC1C,QAAQ,CAAC,EAAE,SAAS,CAAC,KAAK,EAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,YAAY,GAAG,SAAS,GACzC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EACrC,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EACjD,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAChD,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAEnB,cAAc,CACZ,YAAY,EAAE,MAAM,CAAC,YAAY,EACjC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhB,sBAAsB,CACpB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAE/B,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAChC,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EACjD,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAChD,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EACpB,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,EACjC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,GAAG,CAAC,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,CAAC,EACP,KAAK,EAAE,aAAa,GAAG,CAAC,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EACnD,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC1C,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EACpC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EACxD,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC1C,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,CAAC,SAAS,UAAU,EAC/B,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GACzB,IAAI,CAAC;IACR,YAAY,CAAC,CAAC,SAAS,UAAU,EAC/B,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC;;;;;;;;;OASG;IACH,yBAAyB,CAAC,GAAG,EAC3B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,gBAAgB,EAC5C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,eAAe,CAAC,GAAG,EACjB,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,EAC/C,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEhE,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE/B,cAAc,CAAC,MAAM,EACnB,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,EACtD,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GACnB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,YAAY,CAAC,CAAC,SAAS,UAAU,EAC/B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;IACtB,aAAa,EAAE,UAAU,CAAC;IAC1B,eAAe,EAAE,UAAU,CAAC;IAC5B,aAAa,EAAE,UAAU,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,UAAU,CAAC;IAC1B,cAAc,EAAE,UAAU,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,UAAU,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,UAAU,CAAC;IACxB,aAAa,EAAE,UAAU,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,cAAc,EAAE,UAAU,CAAC;IAC3B,eAAe,EAAE,UAAU,CAAC;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,UAAU,CAAC;IACzB,WAAW,EAAE,eAAe,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,UAAU,CAAC;IAC3B,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,UAAU,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C;AAwCD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAChC,YAAY,CAklBd"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js index 7df802469..be62fa517 100644 --- a/dist/factory/index.js +++ b/dist/factory/index.js @@ -87,6 +87,7 @@ function mapNonceToParams(chainParams) { cToP.set(consts_1.Chain.SOLANA, chainParams.solanaParams); cToP.set(consts_1.Chain.CADUCEUS, chainParams.caduceusParams); cToP.set(consts_1.Chain.OKC, chainParams.okcParams); + cToP.set(consts_1.Chain.ARBITRUM, chainParams.arbitrumParams); return cToP; } /** @@ -610,4 +611,4 @@ function ChainFactory(appConfig, chainParams) { }; } exports.ChainFactory = ChainFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUErUWhCLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUFnUmhCLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFXLENBQUMsQ0FBQztJQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBQ0Q7Ozs7O0dBS0c7QUFDSCxTQUFnQixZQUFZLENBQzFCLFNBQW9CLEVBQ3BCLFdBQWlDO0lBRWpDLElBQUksT0FBTyxHQUEwQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQy9DLElBQUksSUFBSSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXpDLE1BQU0sYUFBYSxHQUFHLElBQUEsMkJBQWUsRUFBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFOUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHVCQUFnQixFQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUV2RSxNQUFNLFFBQVEsR0FBRyxJQUFBLGdCQUFZLEVBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXJELE1BQU0sV0FBVyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDL0IsT0FBTyxFQUFFLFNBQVMsQ0FBQyxVQUFVO1FBQzdCLE9BQU8sRUFBRTtZQUNQLGFBQWEsRUFBRSxVQUFVLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtTQUN0RDtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sS0FBSyxHQUFHLEtBQUssRUFDakIsS0FBUSxFQUNpQixFQUFFO1FBQzNCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sR0FBRyxNQUFNLG1CQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDLENBQUM7WUFDcEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDNUI7UUFDRCxPQUFPLE1BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQXdCLEtBQVEsRUFBRSxRQUFhLEVBQUUsRUFBRTtRQUMxRSxNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUU7WUFDbkIsUUFBUTtTQUNULENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLG1CQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUM7SUFFRixLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLFNBQVksRUFDWixPQUFVLEVBQ1YsR0FBYyxFQUNkLFVBQXNCO1FBRXRCLE1BQU0sSUFBSSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsY0FBYyxDQUFDO1lBQ25ELG1CQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBRSxDQUFDLFFBQVE7WUFDakMsbUJBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFFLENBQUMsUUFBUTtTQUNwQyxDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFFLENBQUMsUUFBUSxDQUFFLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxRQUFRLENBQUUsQ0FBQztRQUM5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDL0QsVUFBVSxDQUFDLEdBQUcsQ0FDZixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUV0QyxPQUFPLElBQUk7YUFDUixLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQzthQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQzthQUNyQixLQUFLLENBQUMsbUJBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFFLENBQUMsUUFBUSxDQUFDO2FBQzFDLFlBQVksQ0FBQyxzQkFBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQ3hCLFNBQTRDLEVBQzVDLE9BQTBDLEVBQzFDLEdBQXFCLEVBQ3JCLFFBQWdCLEVBQ2hCLFFBQTBCLEVBQzFCLEVBQUU7UUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQywyQkFBMkIsQ0FDeEQsUUFBUSxFQUNSLEdBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUVGLElBQUksSUFBSSxHQUFHLE1BQU0sZ0JBQWdCLENBQy9CLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFDcEIsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUNsQixRQUFRLEVBQ1IsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUN2QixDQUFDO1FBRUYsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsc0JBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzNCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRixNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQzNCLFNBQTRDLEVBQzVDLE1BQWMsRUFDZCxRQUFnQixJQUFJLEVBQ3BCLEVBQUU7UUFDRixNQUFNLElBQUksR0FBRyxNQUFNLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztZQUNuRCxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUUsQ0FBQyxRQUFRO1NBQy9DLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3pCLG1CQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBRSxDQUFDLFFBQVEsQ0FDOUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxVQUFVLENBQUM7UUFFN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFJLHNCQUFTLENBQUMsT0FBTyxDQUFDO2FBQzFCLFlBQVksQ0FBQyxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUUsQ0FBQyxRQUFRLENBQUM7YUFDNUQsWUFBWSxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDO0lBRUYsS0FBSyxVQUFVLFlBQVk7UUFDekIsTUFBTSxHQUFHLEdBQUcsTUFBTSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNO1NBQ2xDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssVUFBVSxpQkFBaUIsQ0FDOUIsU0FBaUQsRUFDakQsT0FBK0MsRUFDL0MsR0FBdUIsRUFDdkIsUUFBZ0I7UUFFaEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsZ0NBQWdDLENBQzdELFFBQVEsRUFDUixHQUFVLEVBQ1YsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQzFDLENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxNQUFNLGdCQUFnQixDQUNqQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQ3BCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQzFCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FDdkIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssVUFBVSxhQUFhLENBQUMsTUFBZ0I7UUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUMsSUFBSSxTQUE2QixDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsU0FBUyxHQUFHLENBQUMsQ0FBQzthQUNmO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixNQUFNLEtBQUssQ0FBQyxTQUFTLFNBQVMsd0NBQXdDLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQztRQUN6Qiw0Q0FBNEM7UUFDNUMsNENBQTRDO1FBQzVDLDRDQUE0QztRQUM1Qyw0Q0FBNEM7UUFDNUMsNENBQTRDO1FBQzVDLDRDQUE0QztRQUM1Qyw0Q0FBNEM7UUFDNUMsNENBQTRDO1FBQzVDLDRDQUE0QztLQUM3QyxDQUFDLENBQUM7SUFFSCxTQUFTLHFCQUFxQixDQUFDLFFBQWdCO1FBQzdDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsUUFBUSx3QkFBd0IsQ0FBQyxDQUFDO1NBQ3REO0lBQ0gsQ0FBQztJQUVELEtBQUssVUFBVSxZQUFZLENBQUMsR0FBcUIsRUFBRSxFQUFVLEVBQUUsRUFBVztRQUN4RSxJQUFJLEVBQUUsS0FBSyxjQUFLLENBQUMsS0FBSyxFQUFFO1lBQ3RCLE9BQU8sQ0FDTCxPQUFRLEdBQUcsQ0FBQyxNQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTztnQkFDekQsV0FBVyxDQUNaLENBQUM7U0FDSDtRQUNELElBQUk7WUFDRixxQkFBcUIsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDNUM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSTthQUNyRSxPQUFPLENBQUM7UUFDWCxNQUFNLFFBQVEsR0FBRyxRQUFRLEVBQUUsUUFBUSxJQUFJLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQztRQUNuRSxFQUFFLElBQUksUUFBUSxJQUFJLElBQUEsNEJBQXFCLEVBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXRELE9BQU8sT0FBTyxRQUFRLEtBQUssV0FBVyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLFVBQVUsY0FBYyxDQUMzQixHQUFxQixFQUNyQixPQUE2QyxFQUM3QyxRQUFnQjtRQUVoQixJQUFJLE1BQU0sSUFBSyxHQUFHLENBQUMsTUFBOEI7WUFBRSxPQUFPO1FBQzFELE1BQU0sTUFBTSxHQUFHLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksY0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDdkQsU0FBUyxJQUFJLE9BQU87WUFDcEIsQ0FBQyxDQUFDLE1BQU8sT0FBMEIsQ0FBQyxPQUFPLENBQ3pDLFFBQVEsRUFDUixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQ3RDLENBQUMsRUFDRjtZQUNBLE1BQU0sS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRUQsS0FBSyxVQUFVLG1CQUFtQixDQUNoQyxJQUFZLEVBQ1osRUFBVSxFQUNWLEVBQVUsRUFDVixPQUFnQjtRQUVoQixNQUFNLEdBQUcsR0FBRyxNQUFNLGVBQUs7YUFDcEIsSUFBSSxDQUNILEdBQUcsU0FBUyxDQUFDLFdBQVcsV0FBVyxFQUNuQztZQUNFLEVBQUUsRUFBRSxJQUFJO1lBQ1IsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsRUFBRTtZQUNiLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUztTQUNsRSxFQUNEO1lBQ0UsT0FBTyxFQUFFLGVBQVE7U0FDbEIsQ0FDRjthQUNBLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNMLE9BQU8sR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUssVUFBVSxhQUFhLENBQzFCLElBQVksRUFDWixFQUFVLEVBQ1YsV0FBbUIsRUFDbkIsU0FBaUIsRUFDakIsT0FBZ0I7UUFFaEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxlQUFLO2FBQ3BCLElBQUksQ0FDSCxHQUFHLFNBQVMsQ0FBQyxXQUFXLFNBQVMsRUFDakMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQzdDO1lBQ0UsT0FBTyxFQUFFLGVBQVE7U0FDbEIsQ0FDRjthQUNBLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxQixPQUFPLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTztRQUNMLG1CQUFtQjtRQUNuQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMvQixLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUU5RCxJQUFJLE1BQU0sR0FBYSxFQUFFLENBQUM7WUFDMUIsSUFBSSxTQUFTLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDbkMsTUFBTSxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN2RDtZQUVELElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsR0FBRyxHQUFHLE1BQU0saUJBQWlCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDekQ7WUFDRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRTtnQkFDekMsTUFBTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUNoQztZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLENBQUMsU0FBVSxFQUFFLENBQUMsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBbUIsRUFBRSxDQUFDO1lBQ25DLE1BQU0sU0FBUyxHQUFtQixFQUFFLENBQUM7WUFDckMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNuQixhQUFhO2dCQUNiLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEtBQUssUUFBUSxFQUFFO29CQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7aUJBQzVDO2dCQUNELElBQUksTUFBTSxZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFO29CQUMxQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNqQjtxQkFBTTtvQkFDTCxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNuQjtZQUNILENBQUMsQ0FBQyxDQUNILENBQUM7WUFDRixTQUFTLENBQUMsTUFBTTtnQkFDZCxNQUFNLENBQUMsSUFBSSxDQUNULElBQUksQ0FBQyx5QkFBeUIsQ0FDNUIsTUFBTSxFQUNOLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFDYixRQUFRLEVBQ1IsU0FBUyxFQUNULEVBQUUsSUFBSSxFQUFFLENBQUMsU0FBVSxFQUNuQixJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLENBQ25CLENBQ0YsQ0FBQztZQUNKLE9BQU8sQ0FBQyxNQUFNO2dCQUNaLE1BQU0sQ0FBQyxJQUFJLENBQ1QsSUFBSSxDQUFDLHVCQUF1QixDQUMxQixNQUFNLEVBQ04sRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUNiLFFBQVEsRUFDUixPQUFPLEVBQ1AsSUFBSSxzQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUNuQixDQUNGLENBQUM7WUFDSixPQUFPLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsaUJBQWlCO1FBQ2pCLEtBQUssQ0FBQyxZQUFZLENBQXVCLEtBQVEsRUFBRSxPQUFlO1lBQ2hFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLFVBQVU7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sTUFBTSxHQUFHLE1BQU0sbUJBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxNQUFNO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNqRCxNQUFNLGNBQWMsR0FBRyxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLGNBQWM7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBRTdELElBQUk7Z0JBQ0YsTUFBTSxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDMUI7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFJLEVBQUUsUUFBUztZQUNyRSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7WUFDakUsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNSLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUM1RDtZQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLEdBQUcsSUFBSSxzQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUUzQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRTFCLElBQUksR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDckIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FDL0IsSUFBSSxFQUNKLEVBQUUsRUFDRixHQUFHLEVBQ0gsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLHNCQUFTLENBQUMsQ0FBRSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQ2hDLFFBQVEsQ0FDVCxDQUFDO2dCQUNGLE9BQU8sUUFBZSxDQUFDO2FBQ3hCO2lCQUFNO2dCQUNMLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FDcEMsSUFBSSxFQUNKLEVBQUUsRUFDRixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLHNCQUFTLENBQUMsQ0FBRSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQ2hDLFFBQVEsQ0FDVCxDQUFDO2dCQUNGLE9BQU8sUUFBZSxDQUFDO2FBQ3hCO1lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUNwQyxJQUFJLEVBQ0osRUFBRSxFQUNGLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUNSLElBQUksc0JBQVMsQ0FBQyxDQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFDaEMsUUFBUSxDQUNULENBQUM7WUFDRixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBQ0QsS0FBSyxDQUFDLHlCQUF5QixDQUM3QixLQUEwQyxFQUMxQyxXQUFtQixFQUNuQixHQUFNO1lBRU4sTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDNUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBdUIsS0FBUSxFQUFFLEdBQVc7WUFDNUQsUUFBUSxLQUFLLEVBQUU7Z0JBQ2IsS0FBSyxjQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pCLE9BQU8sZ0JBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2hDO2dCQUNELEtBQUssY0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNmLE9BQU8sR0FBRyxDQUFDO2lCQUNaO2dCQUNELEtBQUssY0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNuQixNQUFNLElBQUksR0FBRyxNQUFNLEtBQUssQ0FBQyxjQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3pDLE1BQU0sSUFBSSxHQUFHLGlCQUFPLENBQUMsbUJBQW1CLENBQUMsa0JBQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDbkUsT0FBTyxJQUFBLDRCQUFpQixFQUN0QixJQUFJLENBQUMsS0FBSyxFQUNWLGlCQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQ2xDLENBQUM7aUJBQ0g7Z0JBQ0QsT0FBTyxDQUFDLENBQUM7b0JBQ1AsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBUSxDQUFDO29CQUMzQyxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2pDO2FBQ0Y7UUFDSCxDQUFDO1FBQ0QsWUFBWTtRQUNaLGVBQWU7UUFDZixLQUFLO1FBQ0wsWUFBWTtRQUNaLFlBQVksQ0FDVixVQUFhLEVBQ2IsTUFBMEI7WUFFMUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBSSxLQUF3QixFQUFFLEtBQWE7WUFDdEQsSUFBSSxHQUFHLEdBQUcsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUM3QixTQUFTLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FDckMsQ0FBQztZQUVGLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDOUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDekM7WUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxXQUFXLEVBQUUsS0FBSyxFQUNoQixTQUFTLEVBQ1QsT0FBTyxFQUNQLEdBQUcsRUFDSCxNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsRUFBRTtZQUNGLFlBQVk7WUFDWixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUN2QixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFO29CQUN2RCxZQUFZO29CQUNaLHFCQUFxQixDQUFDLElBQUksY0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7aUJBQ2xFO2FBQ0Y7WUFFRCxJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO2dCQUNuQyxNQUFNLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ2pFO1lBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUN0RSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzVDO1lBQ0Qsb0RBQW9EO1lBQ3BELG9DQUFvQztZQUNwQyxJQUFJO1lBRUosSUFBSSxNQUFNLFlBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFO2dCQUNyRSxNQUFNLGNBQWMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUU3QyxNQUFNLEdBQUcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxrQkFBa0IsQ0FDNUMsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsSUFBSSxzQkFBUyxDQUFDLEdBQUcsQ0FBQyxFQUNsQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQzdCLFFBQVEsRUFDUixRQUFRLENBQ1QsQ0FBQztnQkFFRixPQUFPLEdBQUcsQ0FBQzthQUNaO2lCQUFNO2dCQUNMLE1BQU0sRUFBRTtnQkFDTixnQ0FBZ0M7Z0JBQ2hDLFVBQVUsSUFBSSxHQUFHLENBQUMsTUFBTTtvQkFDeEIsUUFBUTtvQkFDUixDQUFDLE1BQU0sYUFBYSxDQUNsQixHQUFHLENBQUMsZUFBZSxFQUNuQixRQUFRLEVBQ1IsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUNsQixTQUFTLENBQUMsUUFBUSxFQUFFLEVBQ3BCLElBQUEscUJBQWMsRUFBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQzFDLENBQUM7b0JBQ0EsQ0FBQyxDQUFDLFFBQVE7b0JBQ1YsQ0FBQyxDQUFDLElBQUEseUJBQWtCLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFFbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFFcEMsSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFO29CQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7aUJBQ3pDO2dCQUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sU0FBUyxDQUFDLG9CQUFvQixDQUM5QyxNQUFNLEVBQ04sT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUNsQixRQUFRLEVBQ1IsR0FBRyxFQUNILElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsRUFDbEIsRUFBRSxFQUNGLFFBQVEsRUFDUixRQUFRLENBQ1QsQ0FBQztnQkFFRixPQUFPLEdBQUcsQ0FBQzthQUNaO1FBQ0gsQ0FBQztRQUNELElBQUksRUFBRSxLQUFLLEVBQ1QsS0FBaUMsRUFDakMsS0FBYSxFQUNiLElBQVUsRUFDSSxFQUFFO1lBQ2hCLE9BQU8sTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0Q7Ozs7OztXQU1HO1FBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNO1lBQ2xFLE1BQU0sS0FBSyxHQUFHLElBQUkseUJBQWUsQ0FDL0IsMEJBQWdCLEVBQ2hCLHlCQUFlLEVBQ2YsTUFBTSxDQUNQLENBQUM7WUFDRixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sRUFBRSxHQUFHLElBQUkseUJBQWUsQ0FBQyxrQ0FBd0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdkUsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQ3pFLENBQ0UsTUFBTSxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRTtnQkFDakUsUUFBUSxFQUFFLE9BQU87YUFDbEIsQ0FBQyxDQUNILENBQUMsSUFBSSxFQUFFLENBQUM7WUFFVCxNQUFNLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUMvQyxZQUFZLEVBQ1osUUFBUSxFQUNSO2dCQUNFLFFBQVEsRUFBRSxPQUFPO2FBQ2xCLENBQ0YsQ0FBQztZQUNGLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNEOzs7OztXQUtHO1FBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTTtZQUMxRCxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFlLENBQUMsMEJBQWdCLEVBQUUseUJBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxRSxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FDdEQsTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQ3pCLFFBQVEsRUFDUjtnQkFDRSxRQUFRLEVBQUUsT0FBTzthQUNsQixDQUNGLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQy9DLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVoRCxPQUFPLE1BQU0sUUFBUSxDQUFDLGVBQWUsQ0FDbkMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUNqQixPQUFPLENBQUMsT0FBTyxFQUNmLE1BQU0sQ0FDUCxDQUFDO1FBQ0osQ0FBQztRQUNELHFCQUFxQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN2QyxNQUFNLElBQUksR0FBbUIsTUFBTSxLQUFLLENBQUMsY0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsR0FBRztZQUM3QixJQUNFLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtnQkFDdkIsQ0FBQyxNQUFNLFlBQVksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFDM0M7Z0JBQ0EsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELE9BQU8sTUFBTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELFlBQVk7UUFDWixXQUFXO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFybEJELG9DQXFsQkMifQ== From 7221d29905899b5555016a1bdedb23e4fd153678 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 20 Jan 2023 15:07:41 +0530 Subject: [PATCH 865/956] Factory: Testnet: Skale: Update Contracts and Use wETH as currency for monetary value --- src/consts.ts | 8 ++++---- src/factory/factories.ts | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index e7c5716d6..d7920b9f4 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -53,7 +53,7 @@ export enum TestNetRpcUri { GATECHAIN = "https://meteora-evm.gatenode.cc", VECHAIN = "https://sync-testnet.veblocks.net", SECRET = "https://pulsar-2.api.trivium.network:9091/", - SKALE = "https://staging-v2.skalenodes.com/v1/actual-secret-cebalrai", + SKALE = "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar", HEDERA = "https://0.testnet.hedera.com/", NEAR = "https://rpc.testnet.near.org", MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", @@ -576,9 +576,9 @@ CHAIN_INFO.set(Chain.SKALE, { tnBlockExplorerUrlAddr: "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", constructor: web3ERC20HelperFactory, - currency: SupportedCurrency.SKL, - decimals: Decimals.SKL, - chainId: 1564830818, + currency: SupportedCurrency.ETH, + decimals: Decimals.ETH, + tnChainId: 0x1482a7b2, nonce: Chain.SKALE, type: ChainType.EVM, }); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 4bbb851b0..50a5f7707 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -354,12 +354,12 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.SKALE), feeMargin, - erc1155_addr: "0x34c34E0808dC25c43cD41Cdba5049F7C370b7093", - erc1155Minter: "0x19F5cb72DBEdBAd6622FcC4244E238F207d7Bcb6", - erc721Minter: "0x79CcaA9FF641e848437C1855fd6c217Dc2204B09", - erc721_addr: "0x753993a3220eB7EFb837c26b14F3EFffF271F886", - minter_addr: "0xF50d791fb0427442287AA574bacADBf5C964f38c", - paymentTokenAddress: "0x3F3894e65B9EcAAa1F099ECb82e9Cca3a0e86E9E", + erc1155_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + erc1155Minter: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc721Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc721_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + minter_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + paymentTokenAddress: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", }, godwokenParams: { notifier, From 77df26d217af479d2ff6a5f28113eae9b63c2b3b Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 22 Jan 2023 12:17:48 +0200 Subject: [PATCH 866/956] BITGERT: add testnet config, contracts --- package.json | 2 +- src/consts.ts | 18 ++++++++++++++++++ src/factory/factories.ts | 22 ++++++++++++++++++++++ src/factory/index.ts | 2 ++ yarn.lock | 4 ++-- 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index b21021a54..16d689f0f 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#023cc027bbece225f87d98fc2b5111838b52c19d", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#bec675e143f6a54209b1a546279aa64e029903aa", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/src/consts.ts b/src/consts.ts index d7920b9f4..8260cf218 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -64,6 +64,7 @@ export enum TestNetRpcUri { CADUCEUS = "https://galaxy.block.caduceus.foundation", OKC = "https://exchaintestrpc.okex.org", ARBITRUM = "https://goerli-rollup.arbitrum.io/rpc", + BITGERT = "https://testnet-rpc.brisescan.com", // TODO: Algorand // TODO: Fuse } @@ -98,6 +99,7 @@ export enum MainNetRpcUri { CADUCEUS = "https://mainnet.block.caduceus.foundation/", OKC = "https://exchainrpc.okex.org/", ARBITRUM = "string", + BITGERT = "https://dedicated.brisescan.com", // TODO: Algorand } @@ -153,6 +155,7 @@ export type MetaMap = { 0x23: Web3Meta; 0x24: Web3Meta; 0x25: Web3Meta; + 0x26: Web3Meta; } & MetaMapAssert; export namespace Chain { @@ -191,6 +194,7 @@ export namespace Chain { export const CADUCEUS = 0x23; // 35 export const OKC = 0x24; // 36 export const ARBITRUM = 0x25; //37 + export const BITGERT = 0x26; //37 } interface ChainData { @@ -700,3 +704,17 @@ CHAIN_INFO.set(Chain.ARBITRUM, { tnBlockExplorerUrlAddr: "https://goerli-rollup-explorer.arbitrum.io/address/", tnChainId: 421613, }); +CHAIN_INFO.set(Chain.BITGERT, { + blockExplorerUrl: "https://brisescan.com/tx/", + constructor: web3HelperFactory, + currency: SupportedCurrency.BRISE, + decimals: Decimals.ETH, + name: "Bitgert", + nonce: Chain.BITGERT, + type: ChainType.EVM, + chainId: 3250, + blockExplorerUrlAddr: "https://brisescan.com/address/", + tnBlockExplorerUrl: "https://testnet-explorer.brisescan.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.brisescan.com/address/", + tnChainId: 64668, +}); diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 50a5f7707..5f6d537f5 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -260,6 +260,17 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ARBITRUM), }, + bitgertParams: { + erc721Minter: "0xf185759aDb97977b419e3bc25b14E751c93865e", + erc1155Minter: "0xb0801bffD146c21EF91E86625756aAa7f74aDB3a", + erc1155_addr: "0x7b7Bb6ba1796f2C766cFae6A2C60463766615c69", + erc721_addr: "0x56E5298Ba72125DbF8180b199f74aC2B51d31Deb", + minter_addr: "0x39d4F26213245D33f506ECA1ce68D08dCF4d8d14", + feeMargin, + nonce: Chain.BITGERT, + notifier, + provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BITGERT), + }, xDaiParams: { notifier, provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), @@ -664,6 +675,17 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ARBITRUM), }, + bitgertParams: { + erc721Minter: "string", + erc1155Minter: "string", + erc1155_addr: "string", + erc721_addr: "string", + minter_addr: "string", + feeMargin, + nonce: Chain.BITGERT, + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BITGERT), + }, dfinityParams: { agent: new HttpAgent({ host: "https://ic0.app", diff --git a/src/factory/index.ts b/src/factory/index.ts index ee3b61119..1c875817a 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -314,6 +314,7 @@ export interface ChainParams { caduceusParams: Web3Params; okcParams: Web3Params; arbitrumParams: Web3Params; + bitgertParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; @@ -374,6 +375,7 @@ function mapNonceToParams(chainParams: Partial): ParamMap { cToP.set(Chain.CADUCEUS, chainParams.caduceusParams); cToP.set(Chain.OKC, chainParams.okcParams); cToP.set(Chain.ARBITRUM, chainParams.arbitrumParams); + cToP.set(Chain.BITGERT, chainParams.bitgertParams); return cToP; } /** diff --git a/yarn.lock b/yarn.lock index 119d21911..68503a0bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3809,9 +3809,9 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#023cc027bbece225f87d98fc2b5111838b52c19d": +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#bec675e143f6a54209b1a546279aa64e029903aa": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#023cc027bbece225f87d98fc2b5111838b52c19d" + resolved "git+https://github.com/xp-network/exchange-rate#bec675e143f6a54209b1a546279aa64e029903aa" dependencies: axios "^0.21.1" From acb78bda66969a9fc41bfd792c6342b2ec083f3d Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 22 Jan 2023 12:23:46 +0200 Subject: [PATCH 867/956] merged with main and build --- dist/consts.d.ts | 6 ++++- dist/consts.d.ts.map | 2 +- dist/consts.js | 27 +++++++++++++++++----- dist/factory/factories.d.ts.map | 2 +- dist/factory/factories.js | 40 +++++++++++++++++++++++++++------ dist/factory/index.d.ts | 1 + dist/factory/index.d.ts.map | 2 +- dist/factory/index.js | 3 ++- 8 files changed, 66 insertions(+), 17 deletions(-) diff --git a/dist/consts.d.ts b/dist/consts.d.ts index 8e8efd27c..9ff753119 100644 --- a/dist/consts.d.ts +++ b/dist/consts.d.ts @@ -33,7 +33,7 @@ export declare enum TestNetRpcUri { GATECHAIN = "https://meteora-evm.gatenode.cc", VECHAIN = "https://sync-testnet.veblocks.net", SECRET = "https://pulsar-2.api.trivium.network:9091/", - SKALE = "https://staging-v2.skalenodes.com/v1/actual-secret-cebalrai", + SKALE = "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar", HEDERA = "https://0.testnet.hedera.com/", NEAR = "https://rpc.testnet.near.org", MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", @@ -44,6 +44,7 @@ export declare enum TestNetRpcUri { CADUCEUS = "https://galaxy.block.caduceus.foundation", OKC = "https://exchaintestrpc.okex.org", ARBITRUM = "https://goerli-rollup.arbitrum.io/rpc", + BITGERT = "https://testnet-rpc.brisescan.com", } export declare enum MainNetRpcUri { ELROND = "https://gateway.elrond.com", @@ -75,6 +76,7 @@ export declare enum MainNetRpcUri { CADUCEUS = "https://mainnet.block.caduceus.foundation/", OKC = "https://exchainrpc.okex.org/", ARBITRUM = "string", + BITGERT = "https://dedicated.brisescan.com", } type ElrondMeta = [ElrondHelper, ElrondParams]; type Web3Meta = [Web3Helper, Web3Params]; @@ -127,6 +129,7 @@ export type MetaMap = { 0x23: Web3Meta; 0x24: Web3Meta; 0x25: Web3Meta; + 0x26: Web3Meta; } & MetaMapAssert; export declare namespace Chain { const ELROND = 2; @@ -164,6 +167,7 @@ export declare namespace Chain { const CADUCEUS = 35; const OKC = 36; const ARBITRUM = 37; + const BITGERT = 38; } interface ChainData { name: string; diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map index 424e0e5dc..703026d7e 100644 --- a/dist/consts.d.ts.map +++ b/dist/consts.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js index 28712a961..ee3c11cec 100644 --- a/dist/consts.js +++ b/dist/consts.js @@ -45,7 +45,7 @@ var TestNetRpcUri; TestNetRpcUri["VECHAIN"] = "https://sync-testnet.veblocks.net"; TestNetRpcUri["SECRET"] = "https://pulsar-2.api.trivium.network:9091/"; TestNetRpcUri["SKALE"] = - "https://staging-v2.skalenodes.com/v1/actual-secret-cebalrai"; + "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar"; TestNetRpcUri["HEDERA"] = "https://0.testnet.hedera.com/"; TestNetRpcUri["NEAR"] = "https://rpc.testnet.near.org"; TestNetRpcUri["MOONBEAM"] = "https://rpc.api.moonbase.moonbeam.network"; @@ -56,6 +56,7 @@ var TestNetRpcUri; TestNetRpcUri["CADUCEUS"] = "https://galaxy.block.caduceus.foundation"; TestNetRpcUri["OKC"] = "https://exchaintestrpc.okex.org"; TestNetRpcUri["ARBITRUM"] = "https://goerli-rollup.arbitrum.io/rpc"; + TestNetRpcUri["BITGERT"] = "https://testnet-rpc.brisescan.com"; // TODO: Algorand // TODO: Fuse })((TestNetRpcUri = exports.TestNetRpcUri || (exports.TestNetRpcUri = {}))); @@ -92,6 +93,7 @@ var MainNetRpcUri; MainNetRpcUri["CADUCEUS"] = "https://mainnet.block.caduceus.foundation/"; MainNetRpcUri["OKC"] = "https://exchainrpc.okex.org/"; MainNetRpcUri["ARBITRUM"] = "string"; + MainNetRpcUri["BITGERT"] = "https://dedicated.brisescan.com"; // TODO: Algorand })((MainNetRpcUri = exports.MainNetRpcUri || (exports.MainNetRpcUri = {}))); var Chain; @@ -131,6 +133,7 @@ var Chain; Chain.CADUCEUS = 0x23; // 35 Chain.OKC = 0x24; // 36 Chain.ARBITRUM = 0x25; //37 + Chain.BITGERT = 0x26; //37 })((Chain = exports.Chain || (exports.Chain = {}))); var ChainType; (function (ChainType) { @@ -489,9 +492,9 @@ exports.CHAIN_INFO.set(Chain.SKALE, { tnBlockExplorerUrlAddr: "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", constructor: web3_erc20_1.web3ERC20HelperFactory, - currency: domain_1.SupportedCurrency.SKL, - decimals: Decimals_1.DecimalsByCurrency.SKL, - chainId: 1564830818, + currency: domain_1.SupportedCurrency.ETH, + decimals: Decimals_1.DecimalsByCurrency.ETH, + tnChainId: 0x1482a7b2, nonce: Chain.SKALE, type: ChainType.EVM, }); @@ -609,4 +612,18 @@ exports.CHAIN_INFO.set(Chain.ARBITRUM, { tnBlockExplorerUrlAddr: "https://goerli-rollup-explorer.arbitrum.io/address/", tnChainId: 421613, }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBa0NYO0FBbENELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QyxzRUFBcUQsQ0FBQTtJQUNyRCxzRkFBcUUsQ0FBQTtJQUNyRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCxpQkFBaUI7SUFDakIsYUFBYTtBQUNmLENBQUMsRUFsQ1csYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFrQ3hCO0FBRUQsSUFBWSxhQStCWDtBQS9CRCxXQUFZLGFBQWE7SUFDdkIsc0RBQXFDLENBQUE7SUFDckMsa0VBQWlELENBQUE7SUFDakQsMERBQXlDLENBQUE7SUFDekMsMkZBQTBFLENBQUE7SUFDMUUsb0VBQW1ELENBQUE7SUFDbkQsb0RBQW1DLENBQUE7SUFDbkMsa0RBQWlDLENBQUE7SUFDakMsa0RBQWlDLENBQUE7SUFDakMsZ0RBQStCLENBQUE7SUFDL0IscURBQW9DLENBQUE7SUFDcEMsd0RBQXVDLENBQUE7SUFDdkMsOENBQTZCLENBQUE7SUFDN0Isd0RBQXVDLENBQUE7SUFDdkMscURBQW9DLENBQUE7SUFDcEMsNkRBQTRDLENBQUE7SUFDNUMsc0RBQXFDLENBQUE7SUFDckMsZ0VBQStDLENBQUE7SUFDL0Msc0RBQXFDLENBQUE7SUFDckMsOERBQTZDLENBQUE7SUFDN0MsaUVBQWdELENBQUE7SUFDaEQsdUZBQXNFLENBQUE7SUFDdEUsc0RBQXFDLENBQUE7SUFDckMsOERBQTZDLENBQUE7SUFDN0Msd0RBQXVDLENBQUE7SUFDdkMsNkRBQTRDLENBQUE7SUFDNUMsa0VBQWlELENBQUE7SUFDakQsd0VBQXVELENBQUE7SUFDdkQscURBQW9DLENBQUE7SUFDcEMsb0NBQW1CLENBQUE7SUFDbkIsaUJBQWlCO0FBQ25CLENBQUMsRUEvQlcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUErQnhCO0FBd0RELElBQWlCLEtBQUssQ0FvQ3JCO0FBcENELFdBQWlCLEtBQUs7SUFDUCxZQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsVUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFNBQUcsR0FBRyxDQUFDLENBQUM7SUFDUixjQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsZUFBUyxHQUFHLEdBQUcsQ0FBQztJQUNoQixhQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ1osWUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLFVBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxVQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNoQixhQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNuQixTQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNmLFVBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ2hCLGNBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ3BCLFVBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2xCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLGVBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3ZCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3JCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFNBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2pCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3JCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFVBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2xCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLGVBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3ZCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLFNBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2pCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJO0FBQ3BDLENBQUMsRUFwQ2dCLEtBQUssR0FBTCxhQUFLLEtBQUwsYUFBSyxRQW9DckI7QUF1QkQsSUFBWSxTQWFYO0FBYkQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCw4QkFBaUIsQ0FBQTtJQUNqQiwwQkFBYSxDQUFBO0lBQ2IsNEJBQWUsQ0FBQTtJQUNmLGtDQUFxQixDQUFBO0lBQ3JCLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLHdCQUFXLENBQUE7SUFDWCwwQkFBYSxDQUFBO0lBQ2IsOEJBQWlCLENBQUE7SUFDakIsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBYlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFhcEI7QUFFWSxRQUFBLFVBQVUsR0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQy9DLGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsV0FBVyxFQUFFLDRCQUFtQjtJQUNoQyxnQkFBZ0IsRUFBRSwyQ0FBMkM7SUFDN0Qsb0JBQW9CLEVBQUUsc0NBQXNDO0lBQzVELGtCQUFrQixFQUFFLG1EQUFtRDtJQUN2RSxzQkFBc0IsRUFBRSw4Q0FBOEM7SUFDdEUsUUFBUSxFQUFFLDBCQUFpQixDQUFDLElBQUk7SUFDaEMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQ3ZCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsQ0FBQztJQUNSLE9BQU8sRUFBRSxHQUFHO0lBQ1osUUFBUSxFQUFFLDZCQUFRLENBQUMsRUFBRTtJQUNyQixnQkFBZ0IsRUFBRSxpQ0FBaUM7SUFDbkQsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsRUFBRTtJQUM5QixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUN4QixJQUFJLEVBQUUsS0FBSztJQUNYLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxvQkFBb0IsRUFBRSw4QkFBOEI7SUFDcEQsa0JBQWtCLEVBQUUsaUNBQWlDO0lBQ3JELHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0lBQzdCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxDQUFDO0lBQ1IsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsT0FBTyxFQUFFLENBQUM7SUFDVixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxvQkFBb0IsRUFBRSwrQkFBK0I7SUFDckQsa0JBQWtCLEVBQUUsaUNBQWlDO0lBQ3JELHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO0lBQzlCLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsb0JBQW9CLEVBQUUsK0JBQStCO0lBQ3JELHNCQUFzQixFQUFFLHVDQUF1QztJQUMvRCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLEdBQUc7SUFDVixPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEtBQUs7SUFDeEIsZ0JBQWdCLEVBQUUsNkJBQTZCO0lBQy9DLGtCQUFrQixFQUFFLG9DQUFvQztJQUN4RCxvQkFBb0IsRUFBRSxrQ0FBa0M7SUFDeEQsc0JBQXNCLEVBQUUseUNBQXlDO0lBQ2pFLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEtBQUs7SUFDakMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsT0FBTyxFQUFFLElBQUk7SUFDYixnQkFBZ0IsRUFBRSx5QkFBeUI7SUFDM0Msb0JBQW9CLEVBQUUsOEJBQThCO0lBQ3BELHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxrQkFBa0IsRUFBRSxpQ0FBaUM7SUFDckQsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtJQUN6QixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsUUFBUSxFQUFFLDZCQUFRLENBQUMsR0FBRztJQUN0QixnQkFBZ0IsRUFBRSw0Q0FBNEM7SUFDOUQsa0JBQWtCLEVBQUUsNENBQTRDO0lBQ2hFLG9CQUFvQixFQUFFLGdDQUFnQztJQUN0RCxzQkFBc0IsRUFBRSx3Q0FBd0M7SUFDaEUsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7Q0FDckIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtJQUN6QixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsUUFBUSxFQUFFLDZCQUFRLENBQUMsSUFBSTtJQUN2QixPQUFPLEVBQUUsS0FBSztJQUNkLGdCQUFnQixFQUFFLGtEQUFrRDtJQUNwRSxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLEdBQUc7SUFDVixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLGdCQUFnQixFQUFFLGtDQUFrQztJQUNwRCxrQkFBa0IsRUFBRSwwQ0FBMEM7SUFDOUQsb0JBQW9CLEVBQUUsdUNBQXVDO0lBQzdELHNCQUFzQixFQUFFLCtDQUErQztJQUN2RSxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztJQUNuQixjQUFjLEVBQUU7UUFDZCw0Q0FBNEM7UUFDNUMsNENBQTRDO0tBQzdDO0NBQ0YsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUN4QixJQUFJLEVBQUUsVUFBVTtJQUNoQixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsT0FBTyxFQUFFLFVBQVU7SUFDbkIsZ0JBQWdCLEVBQUUsOEJBQThCO0lBQ2hELFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsT0FBTyxFQUFFLElBQUk7SUFDYixnQkFBZ0IsRUFBRSx5Q0FBeUM7SUFDM0Qsb0JBQW9CLEVBQUUsOENBQThDO0lBQ3BFLGtCQUFrQixFQUFFLHlDQUF5QztJQUM3RCxzQkFBc0IsRUFBRSw4Q0FBOEM7SUFDdEUsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtJQUM3QixJQUFJLEVBQUUsVUFBVTtJQUNoQixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZ0JBQWdCLEVBQUUsNkJBQTZCO0lBQy9DLGtCQUFrQixFQUFFLHFDQUFxQztJQUN6RCxvQkFBb0IsRUFBRSxrQ0FBa0M7SUFDeEQsc0JBQXNCLEVBQUUsMENBQTBDO0lBQ2xFLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFBLHlCQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsSUFBSSxFQUFFLFNBQVMsQ0FBQyxRQUFRO0NBQ3pCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZ0JBQWdCLEVBQUUsOEJBQThCO0lBQ2hELGtCQUFrQixFQUFFLG1DQUFtQztJQUN2RCxvQkFBb0IsRUFBRSxtQ0FBbUM7SUFDekQsc0JBQXNCLEVBQUUsd0NBQXdDO0lBRWhFLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsT0FBTyxFQUFFLElBQUk7SUFDYixnQkFBZ0IsRUFBRSxXQUFXO0lBQzdCLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7SUFDMUIsSUFBSSxFQUFFLE9BQU87SUFDYixLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsV0FBVyxFQUFFLDBCQUFrQjtJQUMvQixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixnQkFBZ0IsRUFBRSxrQkFBa0I7SUFDcEMsa0JBQWtCLEVBQUUsMkJBQTJCO0lBQy9DLHNCQUFzQixFQUFFLDJCQUEyQjtJQUNuRCxvQkFBb0IsRUFBRSxrQkFBa0I7SUFDeEMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLO0NBQ3RCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7SUFDMUIsSUFBSSxFQUFFLE9BQU87SUFDYixnQkFBZ0IsRUFBRSxnQ0FBZ0M7SUFDbEQsc0JBQXNCLEVBQUUsNkNBQTZDO0lBQ3JFLG9CQUFvQixFQUFFLHFDQUFxQztJQUMzRCxrQkFBa0IsRUFBRSx3Q0FBd0M7SUFDNUQsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsT0FBTyxFQUFFLEdBQUc7SUFDWixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtJQUMzQixJQUFJLEVBQUUsUUFBUTtJQUNkLGdCQUFnQixFQUFFLDRCQUE0QjtJQUM5QyxrQkFBa0IsRUFBRSxxQ0FBcUM7SUFDekQsb0JBQW9CLEVBQUUsaUNBQWlDO0lBQ3ZELHNCQUFzQixFQUFFLHdDQUF3QztJQUNoRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU07SUFDbkIsUUFBUSxFQUFFLDZCQUFRLENBQUMsTUFBTTtJQUN6QixXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxNQUFNO0lBQ2xDLE9BQU8sRUFBRSxVQUFVO0lBQ25CLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO0lBQzFCLElBQUksRUFBRSxPQUFPO0lBQ2IsZ0JBQWdCLEVBQUUsMEJBQTBCO0lBQzVDLG9CQUFvQixFQUFFLCtCQUErQjtJQUNyRCxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsc0JBQXNCLEVBQUUsdUNBQXVDO0lBQy9ELEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLDZCQUFRLENBQUMsSUFBSTtJQUN2QixXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7SUFDN0IsSUFBSSxFQUFFLFVBQVU7SUFDaEIsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBQzFDLGtCQUFrQixFQUFFLG1DQUFtQztJQUN2RCxvQkFBb0IsRUFBRSw2QkFBNkI7SUFDbkQsc0JBQXNCLEVBQUUsd0NBQXdDO0lBQ2hFLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO0lBQzlCLElBQUksRUFBRSxXQUFXO0lBRWpCLGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsb0JBQW9CLEVBQUUsK0JBQStCO0lBQ3JELHNCQUFzQixFQUFFLHVDQUF1QztJQUMvRCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLDZCQUFRLENBQUMsRUFBRTtJQUNyQixRQUFRLEVBQUUsMEJBQWlCLENBQUMsRUFBRTtJQUM5QixPQUFPLEVBQUUsRUFBRTtJQUNYLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLElBQUksRUFBRSxTQUFTO0lBQ2Ysa0JBQWtCLEVBQUUsbURBQW1EO0lBQ3ZFLG9CQUFvQixFQUFFLHVDQUF1QztJQUM3RCxnQkFBZ0IsRUFBRSwyQ0FBMkM7SUFDN0Qsc0JBQXNCLEVBQUUsK0NBQStDO0lBQ3ZFLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCwrQkFBK0I7SUFDL0IsV0FBVyxFQUFFLDRCQUFtQjtJQUNoQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU07SUFDbkIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLElBQUk7SUFDaEMsUUFBUSxFQUFFLDZCQUFRLENBQUMsSUFBSTtJQUN2QixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDdEIsZ0JBQWdCLEVBQUUsbURBQW1EO0lBQ3JFLG9CQUFvQixFQUFFLCtDQUErQztDQUN0RSxDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO0lBQzNCLElBQUksRUFBRSxRQUFRO0lBQ2QsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBQzFDLG9CQUFvQixFQUFFLDZCQUE2QjtJQUNuRCxrQkFBa0IsRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQ2pDLHlCQUF5QixFQUFFLGlCQUFpQjtJQUM5QyxzQkFBc0IsRUFBRSxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQzFDLDhCQUE4QixPQUFPLGlCQUFpQjtJQUN4RCxXQUFXLEVBQUUscUJBQVk7SUFDekIsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNO0lBQ25CLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQ3ZCLENBQUMsQ0FBQztBQUNIOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCSztBQUVMLGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsZ0JBQWdCLEVBQUUsNENBQTRDO0lBQzlELGtCQUFrQixFQUFFLDRDQUE0QztJQUNoRSxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNO0lBQ25CLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0lBQ3RCLG9CQUFvQixFQUFFLHdDQUF3QztJQUM5RCxzQkFBc0IsRUFBRSx3Q0FBd0M7Q0FDakUsQ0FBQyxDQUFDO0FBRUgsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtJQUMxQixJQUFJLEVBQUUsT0FBTztJQUNiLCtCQUErQjtJQUMvQixnQkFBZ0IsRUFDZCx3RUFBd0U7SUFDMUUsa0JBQWtCLEVBQ2hCLHNFQUFzRTtJQUN4RSxvQkFBb0IsRUFDbEIsNkVBQTZFO0lBQy9FLHNCQUFzQixFQUNwQiwyRUFBMkU7SUFDN0UsV0FBVyxFQUFFLG1DQUFzQjtJQUNuQyxRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztJQUNsQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBRUgsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtJQUM1QixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLFdBQVcsRUFBRSx1QkFBYTtJQUMxQixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPO0lBQ3BCLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTztDQUN4QixDQUFDLENBQUM7QUFFSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3pCLGdCQUFnQixFQUFFLGlEQUFpRDtJQUNuRSxrQkFBa0IsRUFBRSxpREFBaUQ7SUFDckUsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO0lBQ2pCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtJQUNwQixvQkFBb0IsRUFBRSw2Q0FBNkM7SUFDbkUsc0JBQXNCLEVBQUUsNkNBQTZDO0NBQ3RFLENBQUMsQ0FBQztBQUVILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7SUFDN0IsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtJQUNyQixPQUFPLEVBQUUsS0FBSztJQUNkLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztJQUNuQixvQkFBb0IsRUFBRSx1Q0FBdUM7SUFDN0Qsc0JBQXNCLEVBQUUsdUNBQXVDO0lBQy9ELGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxrQkFBa0IsRUFBRSxrQ0FBa0M7Q0FDdkQsQ0FBQyxDQUFDO0FBRUgsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtJQUM5QixrQkFBa0IsRUFBRSw0Q0FBNEM7SUFDaEUsc0JBQXNCLEVBQUUsaURBQWlEO0lBQ3pFLGdCQUFnQixFQUFFLGdDQUFnQztJQUNsRCxvQkFBb0IsRUFBRSxxQ0FBcUM7SUFDM0QsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztJQUN0QixPQUFPLEVBQUUsR0FBRztJQUNaLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO0lBQzFCLFdBQVcsRUFBRSxtQkFBVztJQUN4QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsS0FBSztJQUNqQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxLQUFLO0lBQ3hCLElBQUksRUFBRSxPQUFPO0lBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO0lBQ2xCLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSztJQUNyQiwrQkFBK0I7SUFDL0IsZ0JBQWdCLEVBQUUscUNBQXFDO0lBQ3ZELG9CQUFvQixFQUFFLHlDQUF5QztJQUMvRCxrQkFBa0IsRUFBRSxxQ0FBcUM7SUFDekQsc0JBQXNCLEVBQUUseUNBQXlDO0NBQ2xFLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7SUFDeEIsSUFBSSxFQUFFLEtBQUs7SUFDWCxXQUFXLEVBQUUsZUFBUztJQUN0QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRztJQUNoQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7SUFDbkIsa0JBQWtCLEVBQUUsaUNBQWlDO0lBQ3JELGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxvQkFBb0IsRUFBRSw4QkFBOEI7SUFDcEQsc0JBQXNCLEVBQUUsc0NBQXNDO0NBQy9ELENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7SUFDN0IsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtJQUNyQixnQkFBZ0IsRUFBRSw4Q0FBOEM7SUFDaEUsa0JBQWtCLEVBQUUsNkNBQTZDO0lBQ2pFLG9CQUFvQixFQUFFLG1EQUFtRDtJQUN6RSxzQkFBc0IsRUFBRSxrREFBa0Q7SUFDMUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxNQUFNO0lBQ2YsU0FBUyxFQUFFLE1BQU07Q0FDbEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUN4QixnQkFBZ0IsRUFBRSw2QkFBNkI7SUFDL0MsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxLQUFLO0lBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHO0lBQ2hCLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztJQUNuQixPQUFPLEVBQUUsRUFBRTtJQUNYLG9CQUFvQixFQUFFLHdDQUF3QztJQUM5RCxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsc0JBQXNCLEVBQUUsNkNBQTZDO0lBQ3JFLFNBQVMsRUFBRSxFQUFFO0NBQ2QsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtJQUM3QixnQkFBZ0IsRUFBRSxrQ0FBa0M7SUFDcEQsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtJQUNyQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxvQkFBb0IsRUFBRSx1Q0FBdUM7SUFDN0Qsa0JBQWtCLEVBQUUsZ0RBQWdEO0lBQ3BFLHNCQUFzQixFQUFFLHFEQUFxRDtJQUM3RSxTQUFTLEVBQUUsTUFBTTtDQUNsQixDQUFDLENBQUMifQ== +exports.CHAIN_INFO.set(Chain.BITGERT, { + blockExplorerUrl: "https://brisescan.com/tx/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.BRISE, + decimals: Decimals_1.DecimalsByCurrency.ETH, + name: "Bitgert", + nonce: Chain.BITGERT, + type: ChainType.EVM, + chainId: 3250, + blockExplorerUrlAddr: "https://brisescan.com/address/", + tnBlockExplorerUrl: "https://testnet-explorer.brisescan.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.brisescan.com/address/", + tnChainId: 64668, +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QyxzRUFBcUQsQ0FBQTtJQUNyRCwyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map index 403e1d1a4..ec661597f 100644 --- a/dist/factory/factories.d.ts.map +++ b/dist/factory/factories.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA8XvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA2KvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAuWvD,CAAC;CACH"} \ No newline at end of file +{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAyYvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA2KvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAkXvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js index 9191d672b..364d89ed1 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -335,6 +335,19 @@ var ChainFactoryConfigs; consts_1.TestNetRpcUri.ARBITRUM ), }, + bitgertParams: { + erc721Minter: "0xf185759aDb97977b419e3bc25b14E751c93865e", + erc1155Minter: "0xb0801bffD146c21EF91E86625756aAa7f74aDB3a", + erc1155_addr: "0x7b7Bb6ba1796f2C766cFae6A2C60463766615c69", + erc721_addr: "0x56E5298Ba72125DbF8180b199f74aC2B51d31Deb", + minter_addr: "0x39d4F26213245D33f506ECA1ce68D08dCF4d8d14", + feeMargin, + nonce: consts_1.Chain.BITGERT, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.BITGERT + ), + }, xDaiParams: { notifier, provider: new ethers_1.ethers.providers.JsonRpcProvider( @@ -441,12 +454,12 @@ var ChainFactoryConfigs; consts_1.TestNetRpcUri.SKALE ), feeMargin, - erc1155_addr: "0x34c34E0808dC25c43cD41Cdba5049F7C370b7093", - erc1155Minter: "0x19F5cb72DBEdBAd6622FcC4244E238F207d7Bcb6", - erc721Minter: "0x79CcaA9FF641e848437C1855fd6c217Dc2204B09", - erc721_addr: "0x753993a3220eB7EFb837c26b14F3EFffF271F886", - minter_addr: "0xF50d791fb0427442287AA574bacADBf5C964f38c", - paymentTokenAddress: "0x3F3894e65B9EcAAa1F099ECb82e9Cca3a0e86E9E", + erc1155_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + erc1155Minter: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc721Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc721_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + minter_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + paymentTokenAddress: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", }, godwokenParams: { notifier, @@ -783,6 +796,19 @@ var ChainFactoryConfigs; consts_1.MainNetRpcUri.ARBITRUM ), }, + bitgertParams: { + erc721Minter: "string", + erc1155Minter: "string", + erc1155_addr: "string", + erc721_addr: "string", + minter_addr: "string", + feeMargin, + nonce: consts_1.Chain.BITGERT, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.BITGERT + ), + }, dfinityParams: { agent: new agent_1.HttpAgent({ host: "https://ic0.app", @@ -1113,4 +1139,4 @@ var ChainFactoryConfigs; (ChainFactoryConfigs = exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) ); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0FzNUJuQztBQXQ1QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0E0NkJuQztBQTU2QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 diff --git a/dist/factory/index.d.ts b/dist/factory/index.d.ts index b907f14b2..019afe80f 100644 --- a/dist/factory/index.d.ts +++ b/dist/factory/index.d.ts @@ -281,6 +281,7 @@ export interface ChainParams { caduceusParams: Web3Params; okcParams: Web3Params; arbitrumParams: Web3Params; + bitgertParams: Web3Params; } export type MoralisNetwork = "mainnet" | "testnet"; /** diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map index d186437a6..a12a35029 100644 --- a/dist/factory/index.d.ts.map +++ b/dist/factory/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js index be62fa517..815ea8338 100644 --- a/dist/factory/index.js +++ b/dist/factory/index.js @@ -88,6 +88,7 @@ function mapNonceToParams(chainParams) { cToP.set(consts_1.Chain.CADUCEUS, chainParams.caduceusParams); cToP.set(consts_1.Chain.OKC, chainParams.okcParams); cToP.set(consts_1.Chain.ARBITRUM, chainParams.arbitrumParams); + cToP.set(consts_1.Chain.BITGERT, chainParams.bitgertParams); return cToP; } /** @@ -611,4 +612,4 @@ function ChainFactory(appConfig, chainParams) { }; } exports.ChainFactory = ChainFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUFnUmhCLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUFpUmhCLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElB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 From 5bff7fac15ff9ce4d42ff4fefd9a90c707330db2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 23 Jan 2023 15:58:31 +0530 Subject: [PATCH 868/956] Web3: Handler: Reduce gas limit for approval --- src/helpers/web3.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 484dcaf3b..3e3a2044d 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -265,7 +265,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { customData: NullableCustomData ) => { return umt.isApprovedForAll(sender, minterAddr, { - gasLimit: "1000000", + gasLimit: "100000", customData, }); }, @@ -280,7 +280,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { forAddr, true, { - gasLimit: "1000000", + gasLimit: "100000", customData, } ); @@ -302,7 +302,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { return ( ( await umt.getApproved(tok, { - gasLimit: "1000000", + gasLimit: "100000", customData, //@ts-ignore }) @@ -316,7 +316,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { txnUp: (tx: PopulatedTransaction) => Promise ) => { const tx = await umt.populateTransaction.approve(forAddr, tok, { - gasLimit: "1000000", + gasLimit: "100000", }); await txnUp(tx); return await umt.signer.sendTransaction(tx); From 163e0a9334a7a933b2561d5bd085b0dc99053b0a Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 23 Jan 2023 14:31:17 +0200 Subject: [PATCH 869/956] ARBITRUM: add testnet contracts --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 5f6d537f5..5608153ac 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -250,11 +250,11 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.OKC), }, arbitrumParams: { - erc721Minter: "0xf185759aDb97977b419e3bc25b14E751c93865eA", - erc1155Minter: "0xf11db8Cd2A24d203E28e440D26664ed48a263D4c", - erc1155_addr: "0x7b7Bb6ba1796f2C766cFae6A2C60463766615c69", - erc721_addr: "0xb0801bffD146c21EF91E86625756aAa7f74aDB3a", - minter_addr: "0xBB840fC6C649Eb61Fd474886998e65DA80AfEFF2", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", feeMargin, nonce: Chain.ARBITRUM, notifier, From 40a3a3166b75a2352a5ae3ef52d5d8ed87de1c60 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 23 Jan 2023 14:38:31 +0200 Subject: [PATCH 870/956] change txFees.toString() to txFees.toFixed(0) to avoid Scientific notation --- src/helpers/tron.ts | 4 ++-- src/helpers/web3.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/helpers/tron.ts b/src/helpers/tron.ts index 1cbe50f75..254df7352 100644 --- a/src/helpers/tron.ts +++ b/src/helpers/tron.ts @@ -415,7 +415,7 @@ export async function tronHelperFactory( setSigner(sender); const res = await minter .withdrawNft(to, nonce, id.native.tokenId, id.native.contract) - .send({ callValue: EthBN.from(txFees.toString(10)) }); + .send({ callValue: EthBN.from(txFees.toFixed(0)) }); await notifyValidator(res); return res; @@ -442,7 +442,7 @@ export async function tronHelperFactory( to, mintWith ) - .send({ callValue: EthBN.from(txFees.toString(10)) }); + .send({ callValue: EthBN.from(txFees.toFixed(0)) }); await notifyValidator(txr); return txr; diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 3e3a2044d..b50b0ccbf 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -545,7 +545,7 @@ export async function web3HelperFactory( new Array(nfts.length).fill(1), nfts[0].native.contract, { - value: EthBN.from(txFees.toString()), + value: EthBN.from(txFees.toFixed(0)), } ); await txnUnderpricedPolyWorkaround(tx); @@ -583,7 +583,7 @@ export async function web3HelperFactory( to, mintWith, { - value: EthBN.from(txFees.toString()), + value: EthBN.from(txFees.toFixed(0)), } ); await txnUnderpricedPolyWorkaround(tx); @@ -638,7 +638,7 @@ export async function web3HelperFactory( to, mintWith, { - value: EthBN.from(txFees.toString()), + value: EthBN.from(txFees.toFixed(0)), gasLimit, gasPrice, } @@ -701,7 +701,7 @@ export async function web3HelperFactory( id.native.tokenId, id.native.contract, { - value: EthBN.from(txFees.toString(10)), + value: EthBN.from(txFees.toFixed(0)), gasLimit, gasPrice, } From 227006cb5db28514aa32980f39b3c8e18f9fb39d Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 23 Jan 2023 16:29:37 +0200 Subject: [PATCH 871/956] approve gasLimit dec to 60_000 --- src/helpers/web3.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index b50b0ccbf..19b165612 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -265,7 +265,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { customData: NullableCustomData ) => { return umt.isApprovedForAll(sender, minterAddr, { - gasLimit: "100000", + gasLimit: "60000", customData, }); }, @@ -280,7 +280,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { forAddr, true, { - gasLimit: "100000", + gasLimit: "60000", customData, } ); @@ -302,7 +302,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { return ( ( await umt.getApproved(tok, { - gasLimit: "100000", + gasLimit: "60000", customData, //@ts-ignore }) @@ -316,7 +316,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { txnUp: (tx: PopulatedTransaction) => Promise ) => { const tx = await umt.populateTransaction.approve(forAddr, tok, { - gasLimit: "100000", + gasLimit: "60000", }); await txnUp(tx); return await umt.signer.sendTransaction(tx); From d5c321e4105203ef0b77c5d83841acac19deaa13 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 24 Jan 2023 17:14:25 +0530 Subject: [PATCH 872/956] Handler: Secret: Adapt for new version of secretjs --- package.json | 2 +- src/helpers/secret.ts | 48 +++++++++++++++++++------------------------ yarn.lock | 45 ++++++++++++++++++++++++++++++++-------- 3 files changed, 59 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 16d689f0f..a32a545d8 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "1.0.0", - "secretjs": "^1.4.5", + "secretjs": "^1.4.6", "socket.io-client": "^4.1.3", "ton-x": "^2.0.0", "tonweb": "^0.0.57", diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index fa2ddd0e0..445987872 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,5 +1,5 @@ import BigNumber from "bignumber.js"; -import { Bech32, SecretNetworkClient, TxResponse } from "secretjs"; +import { Bech32, SecretNetworkClient, Tx } from "secretjs"; import { Extension, Snip721MintOptions, @@ -40,19 +40,15 @@ type GetOwnedTokensResponse = Snip721GetTokensResponse & { generic_err?: { msg: string }; }; -export type SecretHelper = TransferNftForeign< - SecretSigner, - SecretNftInfo, - TxResponse -> & - UnfreezeForeignNft & +export type SecretHelper = TransferNftForeign & + UnfreezeForeignNft & ValidateAddress & EstimateTxFees & ChainNonceGet & PreTransfer & BalanceCheck & GetFeeMargins & { XpNft: string } & GetProvider & - MintNft & { + MintNft & { nftList( owner: string, @@ -64,7 +60,7 @@ export type SecretHelper = TransferNftForeign< client: SecretNetworkClient, contract: string, vk: string - ): Promise; + ): Promise; isApprovedForMinter( sender: SecretSigner, nft: NftInfo @@ -95,9 +91,9 @@ const UNFREEZE_GASL = new BigNumber(0); export async function secretHelperFactory( p: SecretParams ): Promise { - const queryClient = new SecretNetworkClient({ - url: p.rpcUrl, + const queryClient = await SecretNetworkClient.create({ chainId: p.chainId, + grpcWebUrl: p.rpcUrl, }); // TODO @@ -142,8 +138,8 @@ export async function secretHelperFactory( const res = await sender.tx.compute.executeContract( { sender: sender.address, - contract_address: nft.native.contract, - code_hash: nft.native.contractHash, + contractAddress: nft.native.contract, + codeHash: nft.native.contractHash, msg: { approve: { spender: p.bridge.contractAddress, @@ -180,8 +176,8 @@ export async function secretHelperFactory( const minter = args.contract ? args.contract : p.umt; const tx = await signer.tx.compute.executeContract( { - contract_address: minter.contractAddress, - code_hash: minter.codeHash, + contractAddress: minter.contractAddress, + codeHash: minter.codeHash, msg: { mint_nft: { public_metadata: { @@ -217,11 +213,9 @@ export async function secretHelperFactory( }, }; if (!codeHash) { - codeHash = ( - await queryClient.query.compute.codeHashByContractAddress({ - contract_address: contractAddress, - }) - ).code_hash; + codeHash = await queryClient.query.compute.contractCodeHash( + contractAddress + ); } const contract = { address: contractAddress, @@ -272,7 +266,7 @@ export async function secretHelperFactory( async setViewingKey(client, contract, vk) { const tx = await client.tx.snip721.setViewingKey( { - contract_address: contract, + contractAddress: contract, msg: { set_viewing_key: { key: vk, @@ -293,8 +287,8 @@ export async function secretHelperFactory( const tx = await wallet.tx.compute.executeContract( { sender: wallet.address, - contract_address: p.bridge.contractAddress, - code_hash: p.bridge.codeHash, + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, msg: { freeze_nft: { contract: nft.native.contract, @@ -309,7 +303,7 @@ export async function secretHelperFactory( minter: mw, }, }, - sent_funds: [ + sentFunds: [ { denom: "uscrt", amount: fee.toString(10), @@ -327,8 +321,8 @@ export async function secretHelperFactory( const tx = await wallet.tx.compute.executeContract( { sender: wallet.address, - contract_address: p.bridge.contractAddress, - code_hash: p.bridge.codeHash, + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, msg: { withdraw_nft: { burner: nft.native.contract, @@ -338,7 +332,7 @@ export async function secretHelperFactory( chain_nonce: Number(chainNonce), }, }, - sent_funds: [ + sentFunds: [ { denom: "uscrt", amount: fee.toString(10), diff --git a/yarn.lock b/yarn.lock index 68503a0bd..8147d65d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1033,6 +1033,18 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@improbable-eng/grpc-web-node-http-transport@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz#5a064472ef43489cbd075a91fb831c2abeb09d68" + integrity sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA== + +"@improbable-eng/grpc-web@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz#3e47e9fdd90381a74abd4b7d26e67422a2a04bef" + integrity sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg== + dependencies: + browser-headers "^0.4.1" + "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" @@ -1386,7 +1398,12 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.4.tgz#2611ebf5764c1bf754da7c7794de4fb30512336d" integrity sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA== -"@noble/secp256k1@1.7.0", "@noble/secp256k1@^1.6.3": +"@noble/secp256k1@1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" + integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== + +"@noble/secp256k1@^1.6.3": version "1.7.0" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== @@ -3233,6 +3250,11 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== +browser-headers@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" + integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== + browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -3762,7 +3784,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-fetch@3.1.5, cross-fetch@^3.1.4, cross-fetch@^3.1.5: +cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -5741,6 +5763,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-gzip@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-2.0.0.tgz#f4fed2bbd9f96bf2cb39e19262797fdb15aad933" + integrity sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA== + is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" @@ -7603,24 +7630,26 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secretjs@^1.4.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.5.1.tgz#d3363dba472064feb0117452a5042df220fad6b4" - integrity sha512-R4FNh0RIoyHa1gaVs+utTWogOcGUu+UW85pX8k0KRzWUmxjDUGjutPztwY5Wl3O0LIyOiqvBpaDBxooxfe6FKw== +secretjs@^1.4.6: + version "1.4.6" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.4.6.tgz#5ef667ea026bd510c0c8942b3fae8cfde7c4ea1f" + integrity sha512-rdxrJr6C2weD7huiO4dKngQAJzRJe4xocVxq50GAE6Q+Ds5F3VLG3gvKcmuVahZDsE78pyqCnqluCU6JfpWkuQ== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" + "@improbable-eng/grpc-web" "0.15.0" + "@improbable-eng/grpc-web-node-http-transport" "0.15.0" "@noble/hashes" "1.0.0" - "@noble/secp256k1" "1.7.0" + "@noble/secp256k1" "1.6.3" "@osmonauts/helpers" "0.3.8" bech32 "2.0.0" big-integer "1.6.51" bignumber.js "9.0.2" bip32 "2.0.6" bip39 "3.0.4" - cross-fetch "3.1.5" curve25519-js "0.0.4" google-protobuf "^3.14.0" + is-gzip "2.0.0" miscreant "0.3.2" pako "2.0.4" protobufjs "6.11.3" From 3ca1117818d957945d246af62f3e8d1f72979d06 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 24 Jan 2023 17:17:13 +0200 Subject: [PATCH 873/956] ARBITRUM: new testnet contracts --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 5608153ac..ac0319760 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -250,11 +250,11 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.OKC), }, arbitrumParams: { - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc721Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + erc1155Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + erc1155_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc721_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", + minter_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", feeMargin, nonce: Chain.ARBITRUM, notifier, From 1461dc55c2c5f1f0b0790ac66e2d04c0919ba3cf Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 25 Jan 2023 12:21:57 +0200 Subject: [PATCH 874/956] new contracts arbitrum testnet, skale mainnet --- src/factory/factories.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index ac0319760..0495f56a9 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -250,11 +250,11 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.OKC), }, arbitrumParams: { - erc721Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - erc1155Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", - erc1155_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - erc721_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", - minter_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + erc721Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + erc1155Minter: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", + erc1155_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + erc721_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + minter_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", feeMargin, nonce: Chain.ARBITRUM, notifier, @@ -912,12 +912,12 @@ export namespace ChainFactoryConfigs { notifier, provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.SKALE), feeMargin, - erc1155_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc1155Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", - erc721Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - erc721_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - minter_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - paymentTokenAddress: "0x0000000000000000000000000000000000000000", + erc1155_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc1155Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + erc721Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + erc721_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", + minter_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", }, moonbeamParams: { nonce: Chain.MOONBEAM, From ea1665994a17d757cba2a0d55b5f8b1b3b0d800f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 25 Jan 2023 14:05:25 +0530 Subject: [PATCH 875/956] Revert "Handler: Secret: Adapt for new version of secretjs" This reverts commit d5c321e4105203ef0b77c5d83841acac19deaa13. --- package.json | 2 +- src/helpers/secret.ts | 48 ++++++++++++++++++++++++------------------- yarn.lock | 45 ++++++++-------------------------------- 3 files changed, 36 insertions(+), 59 deletions(-) diff --git a/package.json b/package.json index a32a545d8..16d689f0f 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "1.0.0", - "secretjs": "^1.4.6", + "secretjs": "^1.4.5", "socket.io-client": "^4.1.3", "ton-x": "^2.0.0", "tonweb": "^0.0.57", diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 445987872..fa2ddd0e0 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,5 +1,5 @@ import BigNumber from "bignumber.js"; -import { Bech32, SecretNetworkClient, Tx } from "secretjs"; +import { Bech32, SecretNetworkClient, TxResponse } from "secretjs"; import { Extension, Snip721MintOptions, @@ -40,15 +40,19 @@ type GetOwnedTokensResponse = Snip721GetTokensResponse & { generic_err?: { msg: string }; }; -export type SecretHelper = TransferNftForeign & - UnfreezeForeignNft & +export type SecretHelper = TransferNftForeign< + SecretSigner, + SecretNftInfo, + TxResponse +> & + UnfreezeForeignNft & ValidateAddress & EstimateTxFees & ChainNonceGet & PreTransfer & BalanceCheck & GetFeeMargins & { XpNft: string } & GetProvider & - MintNft & { + MintNft & { nftList( owner: string, @@ -60,7 +64,7 @@ export type SecretHelper = TransferNftForeign & client: SecretNetworkClient, contract: string, vk: string - ): Promise; + ): Promise; isApprovedForMinter( sender: SecretSigner, nft: NftInfo @@ -91,9 +95,9 @@ const UNFREEZE_GASL = new BigNumber(0); export async function secretHelperFactory( p: SecretParams ): Promise { - const queryClient = await SecretNetworkClient.create({ + const queryClient = new SecretNetworkClient({ + url: p.rpcUrl, chainId: p.chainId, - grpcWebUrl: p.rpcUrl, }); // TODO @@ -138,8 +142,8 @@ export async function secretHelperFactory( const res = await sender.tx.compute.executeContract( { sender: sender.address, - contractAddress: nft.native.contract, - codeHash: nft.native.contractHash, + contract_address: nft.native.contract, + code_hash: nft.native.contractHash, msg: { approve: { spender: p.bridge.contractAddress, @@ -176,8 +180,8 @@ export async function secretHelperFactory( const minter = args.contract ? args.contract : p.umt; const tx = await signer.tx.compute.executeContract( { - contractAddress: minter.contractAddress, - codeHash: minter.codeHash, + contract_address: minter.contractAddress, + code_hash: minter.codeHash, msg: { mint_nft: { public_metadata: { @@ -213,9 +217,11 @@ export async function secretHelperFactory( }, }; if (!codeHash) { - codeHash = await queryClient.query.compute.contractCodeHash( - contractAddress - ); + codeHash = ( + await queryClient.query.compute.codeHashByContractAddress({ + contract_address: contractAddress, + }) + ).code_hash; } const contract = { address: contractAddress, @@ -266,7 +272,7 @@ export async function secretHelperFactory( async setViewingKey(client, contract, vk) { const tx = await client.tx.snip721.setViewingKey( { - contractAddress: contract, + contract_address: contract, msg: { set_viewing_key: { key: vk, @@ -287,8 +293,8 @@ export async function secretHelperFactory( const tx = await wallet.tx.compute.executeContract( { sender: wallet.address, - contractAddress: p.bridge.contractAddress, - codeHash: p.bridge.codeHash, + contract_address: p.bridge.contractAddress, + code_hash: p.bridge.codeHash, msg: { freeze_nft: { contract: nft.native.contract, @@ -303,7 +309,7 @@ export async function secretHelperFactory( minter: mw, }, }, - sentFunds: [ + sent_funds: [ { denom: "uscrt", amount: fee.toString(10), @@ -321,8 +327,8 @@ export async function secretHelperFactory( const tx = await wallet.tx.compute.executeContract( { sender: wallet.address, - contractAddress: p.bridge.contractAddress, - codeHash: p.bridge.codeHash, + contract_address: p.bridge.contractAddress, + code_hash: p.bridge.codeHash, msg: { withdraw_nft: { burner: nft.native.contract, @@ -332,7 +338,7 @@ export async function secretHelperFactory( chain_nonce: Number(chainNonce), }, }, - sentFunds: [ + sent_funds: [ { denom: "uscrt", amount: fee.toString(10), diff --git a/yarn.lock b/yarn.lock index 8147d65d1..68503a0bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1033,18 +1033,6 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@improbable-eng/grpc-web-node-http-transport@0.15.0": - version "0.15.0" - resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz#5a064472ef43489cbd075a91fb831c2abeb09d68" - integrity sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA== - -"@improbable-eng/grpc-web@0.15.0": - version "0.15.0" - resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz#3e47e9fdd90381a74abd4b7d26e67422a2a04bef" - integrity sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg== - dependencies: - browser-headers "^0.4.1" - "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" @@ -1398,12 +1386,7 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.4.tgz#2611ebf5764c1bf754da7c7794de4fb30512336d" integrity sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA== -"@noble/secp256k1@1.6.3": - version "1.6.3" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" - integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== - -"@noble/secp256k1@^1.6.3": +"@noble/secp256k1@1.7.0", "@noble/secp256k1@^1.6.3": version "1.7.0" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== @@ -3250,11 +3233,6 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-headers@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" - integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== - browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -3784,7 +3762,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-fetch@^3.1.4, cross-fetch@^3.1.5: +cross-fetch@3.1.5, cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -5763,11 +5741,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-gzip@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-2.0.0.tgz#f4fed2bbd9f96bf2cb39e19262797fdb15aad933" - integrity sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA== - is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" @@ -7630,26 +7603,24 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secretjs@^1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.4.6.tgz#5ef667ea026bd510c0c8942b3fae8cfde7c4ea1f" - integrity sha512-rdxrJr6C2weD7huiO4dKngQAJzRJe4xocVxq50GAE6Q+Ds5F3VLG3gvKcmuVahZDsE78pyqCnqluCU6JfpWkuQ== +secretjs@^1.4.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.5.1.tgz#d3363dba472064feb0117452a5042df220fad6b4" + integrity sha512-R4FNh0RIoyHa1gaVs+utTWogOcGUu+UW85pX8k0KRzWUmxjDUGjutPztwY5Wl3O0LIyOiqvBpaDBxooxfe6FKw== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" - "@improbable-eng/grpc-web" "0.15.0" - "@improbable-eng/grpc-web-node-http-transport" "0.15.0" "@noble/hashes" "1.0.0" - "@noble/secp256k1" "1.6.3" + "@noble/secp256k1" "1.7.0" "@osmonauts/helpers" "0.3.8" bech32 "2.0.0" big-integer "1.6.51" bignumber.js "9.0.2" bip32 "2.0.6" bip39 "3.0.4" + cross-fetch "3.1.5" curve25519-js "0.0.4" google-protobuf "^3.14.0" - is-gzip "2.0.0" miscreant "0.3.2" pako "2.0.4" protobufjs "6.11.3" From 3665f06c301bd2caf84cb5abca4483be67c69978 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 25 Jan 2023 16:06:58 +0530 Subject: [PATCH 876/956] Handler: Secret: Fix Issues --- package.json | 2 +- src/consts.ts | 2 +- src/factory/factories.ts | 2 +- yarn.lock | 114 ++++++++++++++++++++++++++++++++++++--- 4 files changed, 110 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 16d689f0f..cd266a35f 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "1.0.0", - "secretjs": "^1.4.5", + "secretjs": "^1.6.10", "socket.io-client": "^4.1.3", "ton-x": "^2.0.0", "tonweb": "^0.0.57", diff --git a/src/consts.ts b/src/consts.ts index 8260cf218..0308ea779 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -52,7 +52,7 @@ export enum TestNetRpcUri { GODWOKEN = "https://godwoken-testnet-v1.ckbapp.dev", GATECHAIN = "https://meteora-evm.gatenode.cc", VECHAIN = "https://sync-testnet.veblocks.net", - SECRET = "https://pulsar-2.api.trivium.network:9091/", + SECRET = "https://api.pulsar.scrttestnet.com", SKALE = "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar", HEDERA = "https://0.testnet.hedera.com/", NEAR = "https://rpc.testnet.near.org", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 0495f56a9..b6a7cc13e 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -412,7 +412,7 @@ export namespace ChainFactoryConfigs { codeHash: "af076a49141264ec048270318f1358c9be193893c3f829425cab53ee5eb05e5c", }, - chainId: "24", + chainId: "pulsar-2", feeMargin, }, diff --git a/yarn.lock b/yarn.lock index 68503a0bd..60070c3f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,13 +37,20 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2": version "7.20.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.18.3": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" + integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== + dependencies: + regenerator-runtime "^0.13.11" + "@bundlr-network/client@^0.8.8": version "0.8.9" resolved "https://registry.yarnpkg.com/@bundlr-network/client/-/client-0.8.9.tgz#58e969a5d80f8d25d212d46bb7a060730a3c1736" @@ -1688,6 +1695,48 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/commons@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" + integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== + dependencies: + "@sinonjs/commons" "^2.0.0" + +"@sinonjs/fake-timers@^9.1.2": + version "9.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" + integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/samsam@^6.1.1": + version "6.1.3" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-6.1.3.tgz#4e30bcd4700336363302a7d72cbec9b9ab87b104" + integrity sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ== + dependencies: + "@sinonjs/commons" "^1.6.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" + integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== + "@socket.io/component-emitter@~3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" @@ -4030,6 +4079,11 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -5848,6 +5902,11 @@ is-windows@^1.0.1: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -6068,6 +6127,11 @@ jssha@3.2.0: resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16" integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q== +just-extend@^4.0.2: + version "4.2.1" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" + integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== + keccak@^3.0.0, keccak@^3.0.1, keccak@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" @@ -6148,6 +6212,11 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" @@ -6643,6 +6712,17 @@ next-tick@^1.1.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== +nise@^5.1.1: + version "5.1.4" + resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.4.tgz#491ce7e7307d4ec546f5a659b2efe94a18b4bbc0" + integrity sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg== + dependencies: + "@sinonjs/commons" "^2.0.0" + "@sinonjs/fake-timers" "^10.0.2" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + path-to-regexp "^1.7.0" + nmtree@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/nmtree/-/nmtree-1.0.6.tgz#953e057ad545e9e627f1275bd25fea4e92c1cf63" @@ -6985,6 +7065,13 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -7603,10 +7690,10 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secretjs@^1.4.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.5.1.tgz#d3363dba472064feb0117452a5042df220fad6b4" - integrity sha512-R4FNh0RIoyHa1gaVs+utTWogOcGUu+UW85pX8k0KRzWUmxjDUGjutPztwY5Wl3O0LIyOiqvBpaDBxooxfe6FKw== +secretjs@^1.6.10: + version "1.6.10" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.6.10.tgz#ee98cb4c0b81f715cfba576062410266672ac65d" + integrity sha512-XFjNbn1akifwE5ceSVhzPj1V95gKjuXmyFr8X3dFmGNd7L4pyDOvgpR+32uwK7GVz5PMDvusVIff16a8D43/bw== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" @@ -7625,6 +7712,7 @@ secretjs@^1.4.5: pako "2.0.4" protobufjs "6.11.3" secure-random "1.1.2" + sinon "14.0.0" secure-random@1.1.2: version "1.1.2" @@ -7800,6 +7888,18 @@ simple-get@^3.0.3: once "^1.3.1" simple-concat "^1.0.0" +sinon@14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-14.0.0.tgz#203731c116d3a2d58dc4e3cbe1f443ba9382a031" + integrity sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw== + dependencies: + "@sinonjs/commons" "^1.8.3" + "@sinonjs/fake-timers" "^9.1.2" + "@sinonjs/samsam" "^6.1.1" + diff "^5.0.0" + nise "^5.1.1" + supports-color "^7.2.0" + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -8041,7 +8141,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -8411,7 +8511,7 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== From 3f853c2471cd7f206d3da3b6fad6ec936ca89dc3 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 25 Jan 2023 14:52:52 +0200 Subject: [PATCH 877/956] secret change rpc --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 0308ea779..9e1b2a69b 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -89,7 +89,7 @@ export enum MainNetRpcUri { GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "https://grpc.mainnet.secretsaturn.net", + SECRET = "https://secret-4.api.trivium.network:1317", SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", NEAR = "https://rpc.mainnet.near.org", MOONBEAM = "https://rpc.api.moonbeam.network", From 4cc6f790c19efa239c3565fa2f349b69c274db9b Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 26 Jan 2023 12:07:02 +0200 Subject: [PATCH 878/956] new BSC testnet node --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 9e1b2a69b..23dc0795e 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -35,7 +35,7 @@ import { web3ERC20HelperFactory, Web3ERC20Params } from "./helpers/web3_erc20"; export enum TestNetRpcUri { ELROND = "https://devnet-gateway.elrond.com", HECO = "https://http-testnet.hecochain.com", - BSC = "https://data-seed-prebsc-2-s2.binance.org:8545/", + BSC = "https://data-seed-prebsc-2-s3.binance.org:8545/", ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-mumbai.chainstacklabs.com", From 8cf904a0f4fbffb9bc9e4e7bc400b4bec172958c Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 29 Jan 2023 18:50:01 +0200 Subject: [PATCH 879/956] add avalance to staging --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index de12baa00..bc45eb28d 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -459,6 +459,17 @@ export namespace ChainFactoryConfigs { minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", nonce: Chain.CADUCEUS, }, + avalancheParams: { + notifier, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), + erc721Minter: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", + erc1155Minter: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", + erc721_addr: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", + minter_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", + erc1155_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", + nonce: Chain.AVALANCHE, + feeMargin, + }, algorandParams: { algodApiKey: "kZWDAxYR7Y6S6RoyfGIi28SATZ5DfTIs5pF0UMW4", algodUri: "https://mainnet-algorand.api.purestake.io/ps2", From 065092b5092bf440b4a4835d1140006ceab2fae0 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 29 Jan 2023 18:55:54 +0200 Subject: [PATCH 880/956] build --- dist/factory/factories.d.ts.map | 2 +- dist/factory/factories.js | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map index ec661597f..a9b9bbc85 100644 --- a/dist/factory/factories.d.ts.map +++ b/dist/factory/factories.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAyYvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA2KvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAkXvD,CAAC;CACH"} \ No newline at end of file +{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAyYvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAsLvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAkXvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js index 364d89ed1..c9680fc21 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -556,6 +556,19 @@ var ChainFactoryConfigs; minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", nonce: consts_1.Chain.CADUCEUS, }, + avalancheParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.AVALANCHE + ), + erc721Minter: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", + erc1155Minter: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", + erc721_addr: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", + minter_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", + erc1155_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", + nonce: consts_1.Chain.AVALANCHE, + feeMargin, + }, algorandParams: { algodApiKey: "kZWDAxYR7Y6S6RoyfGIi28SATZ5DfTIs5pF0UMW4", algodUri: "https://mainnet-algorand.api.purestake.io/ps2", @@ -1139,4 +1152,4 @@ var ChainFactoryConfigs; (ChainFactoryConfigs = exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) ); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0E0NkJuQztBQTU2QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0F1N0JuQztBQXY3QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 From b7005ed33c01e9b48009e50ef98e4430e1018321 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 29 Jan 2023 19:21:49 +0200 Subject: [PATCH 881/956] add contracts mainnet SKALE --- src/factory/factories.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index b6a7cc13e..4cffabb42 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -908,16 +908,16 @@ export namespace ChainFactoryConfigs { feeMargin, }, skaleParams: { - nonce: Chain.SKALE, notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.SKALE), feeMargin, - erc1155_addr: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - erc1155Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", - erc721Minter: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - erc721_addr: "0xCbA56d441da86dEfe31d3AdDeEc2bA04f7e27d9e", - minter_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", - paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", + nonce: Chain.SKALE, + provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.SKALE), + erc721Minter: "0xC71C2e7b5Ee01f2cb08b41E240976E8Be6012fB0", + erc1155Minter: "0xbe6cB5C730C07a788dAB0aD7ed629d9c418a9c14", + erc1155_addr: "0x783cA58315336dD646aCeCF0b55f728099ee73ec", + erc721_addr: "0xf4C24d031C336CdcC5CC251E5abbE777235A65f3", + minter_addr: "0xa8440b0702923A54bb0FF3B55f458Cfe8142C1A0", + paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token }, moonbeamParams: { nonce: Chain.MOONBEAM, From fbb53a50b995b2473bbcf76430de51573f405034 Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Wed, 1 Feb 2023 16:11:03 +0200 Subject: [PATCH 882/956] compiled for ui --- dist/consts.d.ts | 6 +++--- dist/consts.d.ts.map | 2 +- dist/consts.js | 8 ++++---- dist/factory/factories.js | 30 +++++++++++++++--------------- dist/helpers/tron.js | 6 +++--- dist/helpers/web3.js | 18 +++++++++--------- 6 files changed, 35 insertions(+), 35 deletions(-) diff --git a/dist/consts.d.ts b/dist/consts.d.ts index 9ff753119..389f6cfda 100644 --- a/dist/consts.d.ts +++ b/dist/consts.d.ts @@ -15,7 +15,7 @@ import { Web3ERC20Params } from "./helpers/web3_erc20"; export declare enum TestNetRpcUri { ELROND = "https://devnet-gateway.elrond.com", HECO = "https://http-testnet.hecochain.com", - BSC = "https://data-seed-prebsc-2-s2.binance.org:8545/", + BSC = "https://data-seed-prebsc-2-s3.binance.org:8545/", ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", POLYGON = "https://matic-mumbai.chainstacklabs.com", @@ -32,7 +32,7 @@ export declare enum TestNetRpcUri { GODWOKEN = "https://godwoken-testnet-v1.ckbapp.dev", GATECHAIN = "https://meteora-evm.gatenode.cc", VECHAIN = "https://sync-testnet.veblocks.net", - SECRET = "https://pulsar-2.api.trivium.network:9091/", + SECRET = "https://api.pulsar.scrttestnet.com", SKALE = "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar", HEDERA = "https://0.testnet.hedera.com/", NEAR = "https://rpc.testnet.near.org", @@ -66,7 +66,7 @@ export declare enum MainNetRpcUri { GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "https://grpc.mainnet.secretsaturn.net", + SECRET = "https://secret-4.api.trivium.network:1317", SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", NEAR = "https://rpc.mainnet.near.org", MOONBEAM = "https://rpc.api.moonbeam.network", diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map index 703026d7e..c575d1696 100644 --- a/dist/consts.d.ts.map +++ b/dist/consts.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACZ,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAqB,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAqB,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EACL,cAAc,EACd,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAsB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EACL,YAAY,EAEZ,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAgB,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAa,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAEL,aAAa,EACb,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAqB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAe,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAA0B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG/E,oBAAY,aAAa;IACvB,MAAM,sCAAsC;IAC5C,IAAI,uCAAuC;IAC3C,GAAG,oDAAoD;IACvD,OAAO,iEAAiE;IACxE,SAAS,+CAA+C;IACxD,OAAO,4CAA4C;IACnD,MAAM,8CAA8C;IACpD,IAAI,oCAAoC;IACxC,IAAI,6CAA6C;IACjD,OAAO,6BAA6B;IACpC,IAAI,8BAA8B;IAClC,MAAM,qCAAqC;IAC3C,KAAK,gCAAgC;IACrC,KAAK,2CAA2C;IAChD,KAAK,uCAAuC;IAC5C,MAAM,gCAAgC;IACtC,QAAQ,2CAA2C;IACnD,SAAS,oCAAoC;IAC7C,OAAO,sCAAsC;IAC7C,MAAM,+CAA+C;IACrD,KAAK,qEAAqE;IAC1E,MAAM,kCAAkC;IACxC,IAAI,iCAAiC;IACrC,QAAQ,8CAA8C;IACtD,SAAS,kCAAkC;IAC3C,KAAK,2CAA2C;IAChD,GAAG,iDAAiD;IACpD,MAAM,kCAAkC;IACxC,QAAQ,6CAA6C;IACrD,GAAG,oCAAoC;IACvC,QAAQ,0CAA0C;IAClD,OAAO,sCAAsC;CAG9C;AAED,oBAAY,aAAa;IACvB,MAAM,+BAA+B;IACrC,IAAI,6CAA6C;IACjD,GAAG,sCAAsC;IACzC,QAAQ,kEAAkE;IAC1E,SAAS,0CAA0C;IACnD,OAAO,4BAA4B;IACnC,MAAM,2BAA2B;IACjC,IAAI,6BAA6B;IACjC,IAAI,2BAA2B;IAC/B,OAAO,6BAA6B;IACpC,IAAI,mCAAmC;IACvC,IAAI,yBAAyB;IAC7B,KAAK,kCAAkC;IACvC,KAAK,+BAA+B;IACpC,KAAK,uCAAuC;IAC5C,MAAM,+BAA+B;IACrC,QAAQ,uCAAuC;IAC/C,SAAS,4BAA4B;IACrC,OAAO,sCAAsC;IAC7C,MAAM,0CAA0C;IAChD,KAAK,iEAAiE;IACtE,IAAI,iCAAiC;IACrC,QAAQ,qCAAqC;IAC7C,SAAS,8BAA8B;IACvC,GAAG,yCAAyC;IAC5C,KAAK,4CAA4C;IACjD,QAAQ,+CAA+C;IACvD,GAAG,iCAAiC;IACpC,QAAQ,WAAW;IACnB,OAAO,oCAAoC;CAE5C;AAED,KAAK,UAAU,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAC/C,KAAK,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACzC,KAAK,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACzC,KAAK,QAAQ,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AACjD,KAAK,SAAS,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC5C,KAAK,UAAU,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAC/C,KAAK,UAAU,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAC/C,KAAK,OAAO,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACtC,KAAK,WAAW,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAClD,KAAK,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACzC,KAAK,aAAa,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AACnD,KAAK,SAAS,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAG5C,KAAK,aAAa,GAAG;KAAG,GAAG,IAAI,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,GAAG,OAAO;CAAE,CAAC;AAE5E,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,EAAE,UAAU,CAAC;IACd,CAAC,EAAE,QAAQ,CAAC;IACZ,CAAC,EAAE,QAAQ,CAAC;IACZ,CAAC,EAAE,QAAQ,CAAC;IACZ,CAAC,EAAE,QAAQ,CAAC;IACZ,CAAC,EAAE,QAAQ,CAAC;IACZ,CAAC,EAAE,QAAQ,CAAC;IACZ,CAAC,EAAE,QAAQ,CAAC;IACZ,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;CAChB,GAAG,aAAa,CAAC;AAElB,yBAAiB,KAAK,CAAC;IACd,MAAM,MAAM,IAAI,CAAC;IACjB,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,GAAG,IAAI,CAAC;IACd,MAAM,QAAQ,IAAI,CAAC;IACnB,MAAM,SAAS,IAAM,CAAC;IACtB,MAAM,OAAO,IAAI,CAAC;IAClB,MAAM,MAAM,IAAI,CAAC;IACjB,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,KAAM,CAAC;IACjB,MAAM,OAAO,KAAM,CAAC;IACpB,MAAM,GAAG,KAAM,CAAC;IAChB,MAAM,IAAI,KAAM,CAAC;IACjB,MAAM,QAAQ,KAAM,CAAC;IACrB,MAAM,IAAI,KAAO,CAAC;IAClB,MAAM,MAAM,KAAO,CAAC;IACpB,MAAM,KAAK,KAAO,CAAC;IACnB,MAAM,KAAK,KAAO,CAAC;IACnB,MAAM,KAAK,KAAO,CAAC;IACnB,MAAM,MAAM,KAAO,CAAC;IACpB,MAAM,QAAQ,KAAO,CAAC;IACtB,MAAM,SAAS,KAAO,CAAC;IACvB,MAAM,MAAM,KAAO,CAAC;IACpB,MAAM,OAAO,KAAO,CAAC;IACrB,MAAM,MAAM,KAAO,CAAC;IACpB,MAAM,GAAG,KAAO,CAAC;IACjB,MAAM,OAAO,KAAO,CAAC;IACrB,MAAM,MAAM,KAAO,CAAC;IACpB,MAAM,KAAK,KAAO,CAAC;IACnB,MAAM,IAAI,KAAO,CAAC;IAClB,MAAM,QAAQ,KAAO,CAAC;IACtB,MAAM,SAAS,KAAO,CAAC;IACvB,MAAM,KAAK,KAAO,CAAC;IACnB,MAAM,QAAQ,KAAO,CAAC;IACtB,MAAM,GAAG,KAAO,CAAC;IACjB,MAAM,QAAQ,KAAO,CAAC;IACtB,MAAM,OAAO,KAAO,CAAC;CAC7B;AAED,UAAU,SAAS,CAAC,CAAC,SAAS,UAAU;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,KAAK,SAAS,GAAG;IACf,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACnE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAC3D,GAAG,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AAE3C,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,UAAU,EAAE,SAAqB,CAAC"} \ No newline at end of file +{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js index ee3c11cec..5a11d1328 100644 --- a/dist/consts.js +++ b/dist/consts.js @@ -25,7 +25,7 @@ var TestNetRpcUri; (function (TestNetRpcUri) { TestNetRpcUri["ELROND"] = "https://devnet-gateway.elrond.com"; TestNetRpcUri["HECO"] = "https://http-testnet.hecochain.com"; - TestNetRpcUri["BSC"] = "https://data-seed-prebsc-2-s2.binance.org:8545/"; + TestNetRpcUri["BSC"] = "https://data-seed-prebsc-2-s3.binance.org:8545/"; TestNetRpcUri["ROPSTEN"] = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467"; TestNetRpcUri["AVALANCHE"] = "https://api.avax-test.network/ext/bc/C/rpc"; @@ -43,7 +43,7 @@ var TestNetRpcUri; TestNetRpcUri["GODWOKEN"] = "https://godwoken-testnet-v1.ckbapp.dev"; TestNetRpcUri["GATECHAIN"] = "https://meteora-evm.gatenode.cc"; TestNetRpcUri["VECHAIN"] = "https://sync-testnet.veblocks.net"; - TestNetRpcUri["SECRET"] = "https://pulsar-2.api.trivium.network:9091/"; + TestNetRpcUri["SECRET"] = "https://api.pulsar.scrttestnet.com"; TestNetRpcUri["SKALE"] = "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar"; TestNetRpcUri["HEDERA"] = "https://0.testnet.hedera.com/"; @@ -82,7 +82,7 @@ var MainNetRpcUri; MainNetRpcUri["GODWOKEN"] = "https://v1.mainnet.godwoken.io/rpc"; MainNetRpcUri["GATECHAIN"] = "https://evm.gatenode.cc"; MainNetRpcUri["VECHAIN"] = "https://sync-mainnet.veblocks.net"; - MainNetRpcUri["SECRET"] = "https://grpc.mainnet.secretsaturn.net"; + MainNetRpcUri["SECRET"] = "https://secret-4.api.trivium.network:1317"; MainNetRpcUri["SKALE"] = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague"; MainNetRpcUri["NEAR"] = "https://rpc.mainnet.near.org"; @@ -626,4 +626,4 @@ exports.CHAIN_INFO.set(Chain.BITGERT, { tnBlockExplorerUrlAddr: "https://testnet-explorer.brisescan.com/address/", tnChainId: 64668, }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QyxzRUFBcUQsQ0FBQTtJQUNyRCwyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 diff --git a/dist/factory/factories.js b/dist/factory/factories.js index c9680fc21..3f54dcb15 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -323,11 +323,11 @@ var ChainFactoryConfigs; ), }, arbitrumParams: { - erc721Minter: "0xf185759aDb97977b419e3bc25b14E751c93865eA", - erc1155Minter: "0xf11db8Cd2A24d203E28e440D26664ed48a263D4c", - erc1155_addr: "0x7b7Bb6ba1796f2C766cFae6A2C60463766615c69", - erc721_addr: "0xb0801bffD146c21EF91E86625756aAa7f74aDB3a", - minter_addr: "0xBB840fC6C649Eb61Fd474886998e65DA80AfEFF2", + erc721Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + erc1155Minter: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", + erc1155_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + erc721_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + minter_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", feeMargin, nonce: consts_1.Chain.ARBITRUM, notifier, @@ -505,7 +505,7 @@ var ChainFactoryConfigs; codeHash: "af076a49141264ec048270318f1358c9be193893c3f829425cab53ee5eb05e5c", }, - chainId: "24", + chainId: "pulsar-2", feeMargin, }, nearParams: { @@ -1076,18 +1076,18 @@ var ChainFactoryConfigs; feeMargin, }, skaleParams: { - nonce: consts_1.Chain.SKALE, notifier, + feeMargin, + nonce: consts_1.Chain.SKALE, provider: new ethers_1.ethers.providers.JsonRpcProvider( consts_1.MainNetRpcUri.SKALE ), - feeMargin, - erc1155_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc1155Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", - erc721Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - erc721_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - minter_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - paymentTokenAddress: "0x0000000000000000000000000000000000000000", + erc721Minter: "0xC71C2e7b5Ee01f2cb08b41E240976E8Be6012fB0", + erc1155Minter: "0xbe6cB5C730C07a788dAB0aD7ed629d9c418a9c14", + erc1155_addr: "0x783cA58315336dD646aCeCF0b55f728099ee73ec", + erc721_addr: "0xf4C24d031C336CdcC5CC251E5abbE777235A65f3", + minter_addr: "0xa8440b0702923A54bb0FF3B55f458Cfe8142C1A0", + paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token }, moonbeamParams: { nonce: consts_1.Chain.MOONBEAM, @@ -1152,4 +1152,4 @@ var ChainFactoryConfigs; (ChainFactoryConfigs = exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) ); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0F1N0JuQztBQXY3QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0F1N0JuQztBQXY3QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js index 135b4f822..0563084c7 100644 --- a/dist/helpers/tron.js +++ b/dist/helpers/tron.js @@ -246,7 +246,7 @@ async function tronHelperFactory(tronParams) { setSigner(sender); const res = await minter .withdrawNft(to, nonce, id.native.tokenId, id.native.contract) - .send({ callValue: ethers_1.BigNumber.from(txFees.toString(10)) }); + .send({ callValue: ethers_1.BigNumber.from(txFees.toFixed(0)) }); await notifyValidator(res); return res; }, @@ -264,7 +264,7 @@ async function tronHelperFactory(tronParams) { to, mintWith ) - .send({ callValue: ethers_1.BigNumber.from(txFees.toString(10)) }); + .send({ callValue: ethers_1.BigNumber.from(txFees.toFixed(0)) }); await notifyValidator(txr); return txr; }, @@ -297,4 +297,4 @@ async function tronHelperFactory(tronParams) { }; } exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQXlDO0FBZ0J6QyxtQ0FBNEM7QUFFNUMsK0RBSzhCO0FBQzlCLDBCQVlZO0FBZ0VMLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFrQixFQUFFLEVBQUU7UUFDdkMsT0FBTyxNQUFNLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsUUFBb0IsRUFBRSxFQUFFO1FBQ3BELFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLDZDQUFzQixDQUFDLEdBQUc7WUFDL0IsUUFBUSxFQUFFLDZDQUFzQixDQUFDLFFBQVE7WUFDekMsUUFBUSxFQUFFLFVBQVU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLFFBQW9CLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ3BFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLHFDQUFjLENBQUMsR0FBRztZQUN2QixRQUFRLEVBQUUscUNBQWMsQ0FBQyxRQUFRO1lBQ2pDLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1NBQzFDLENBQUMsQ0FBQztRQUVILE9BQU8s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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQXlDO0FBZ0J6QyxtQ0FBNEM7QUFFNUMsK0RBSzhCO0FBQzlCLDBCQVlZO0FBZ0VMLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFrQixFQUFFLEVBQUU7UUFDdkMsT0FBTyxNQUFNLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsUUFBb0IsRUFBRSxFQUFFO1FBQ3BELFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLDZDQUFzQixDQUFDLEdBQUc7WUFDL0IsUUFBUSxFQUFFLDZDQUFzQixDQUFDLFFBQVE7WUFDekMsUUFBUSxFQUFFLFVBQVU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLFFBQW9CLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ3BFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLHFDQUFjLENBQUMsR0FBRztZQUN2QixRQUFRLEVBQUUscUNBQWMsQ0FBQyxRQUFRO1lBQ2pDLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1NBQzFDLENBQUMsQ0FBQztRQUVILE9BQU8s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 diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 717ef595a..9a8f0abed 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -77,7 +77,7 @@ exports.NFT_METHOD_MAP = { umt: xpnet_web3_contracts_1.Erc1155Minter__factory, approved: (umt, sender, minterAddr, _tok, customData) => { return umt.isApprovedForAll(sender, minterAddr, { - gasLimit: "1000000", + gasLimit: "60000", customData, }); }, @@ -86,7 +86,7 @@ exports.NFT_METHOD_MAP = { forAddr, true, { - gasLimit: "1000000", + gasLimit: "60000", customData, } ); @@ -102,7 +102,7 @@ exports.NFT_METHOD_MAP = { return ( ( await umt.getApproved(tok, { - gasLimit: "1000000", + gasLimit: "60000", customData, //@ts-ignore }) @@ -111,7 +111,7 @@ exports.NFT_METHOD_MAP = { }, approve: async (umt, forAddr, tok, txnUp) => { const tx = await umt.populateTransaction.approve(forAddr, tok, { - gasLimit: "1000000", + gasLimit: "60000", }); await txnUp(tx); return await umt.signer.sendTransaction(tx); @@ -320,7 +320,7 @@ async function web3HelperFactory(params) { new Array(nfts.length).fill(1), nfts[0].native.contract, { - value: ethers_1.BigNumber.from(txFees.toString()), + value: ethers_1.BigNumber.from(txFees.toFixed(0)), } ); await txnUnderpricedPolyWorkaround(tx); @@ -356,7 +356,7 @@ async function web3HelperFactory(params) { to, mintWith, { - value: ethers_1.BigNumber.from(txFees.toString()), + value: ethers_1.BigNumber.from(txFees.toFixed(0)), } ); await txnUnderpricedPolyWorkaround(tx); @@ -406,7 +406,7 @@ async function web3HelperFactory(params) { to, mintWith, { - value: ethers_1.BigNumber.from(txFees.toString()), + value: ethers_1.BigNumber.from(txFees.toFixed(0)), gasLimit, gasPrice, } @@ -463,7 +463,7 @@ async function web3HelperFactory(params) { id.native.tokenId, id.native.contract, { - value: ethers_1.BigNumber.from(txFees.toString(10)), + value: ethers_1.BigNumber.from(txFees.toFixed(0)), gasLimit, gasPrice, } @@ -501,4 +501,4 @@ async function web3HelperFactory(params) { }; } exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBY3JDLG1DQVNnQjtBQUVoQiwrREFNOEI7QUFDOUIsMEJBWVk7QUFHWixrREFBMEI7QUFDMUIsZ0RBQTZDO0FBNEM3QyxpQkFBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNoRSxPQUFPLGtCQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQXlERjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQixFQUNsQixLQUFhO0lBRWIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBRTNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBYSxFQUNiLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBWTtZQUUzQixNQUFNLE1BQU0sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTTtpQkFDckIsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztpQkFDaEMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO29CQUNoQixJQUFJLEVBQUUsQ0FBQztvQkFDUCxPQUFPLENBQUMsRUFBRSxFQUFFO3dCQUNWLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7cUJBQ3ZEO29CQUNELE9BQU8sRUFBRSxDQUFDO2lCQUNYO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQyxDQUFDLENBQUM7WUFDTCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQTdDRCxzREE2Q0M7QUFpRFksUUFBQSxjQUFjLEdBQWlCO0lBQzFDLE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLGdCQUFnQixFQUFFLHlCQUF5QjtRQUMzQyxHQUFHLEVBQUUsNkNBQXNCO1FBQzNCLFFBQVEsRUFBRSxDQUNSLEdBQWtCLEVBQ2xCLE1BQWMsRUFDZCxVQUFrQixFQUNsQixJQUFZLEVBQ1osVUFBOEIsRUFDOUIsRUFBRTtZQUNGLE9BQU8sR0FBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUU7Z0JBQzlDLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixVQUFVO2FBQ1gsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQ1osR0FBa0IsRUFDbEIsT0FBZSxFQUNmLElBQVksRUFDWixLQUFrRCxFQUNsRCxVQUE4QixFQUM5QixFQUFFO1lBQ0YsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQ3hELE9BQU8sRUFDUCxJQUFJLEVBQ0o7Z0JBQ0UsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFVBQVU7YUFDWCxDQUNGLENBQUM7WUFDRixNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQixPQUFPLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztLQUNGO0lBQ0QsTUFBTSxFQUFFO1FBQ04sTUFBTSxFQUFFLGNBQWM7UUFDdEIsZ0JBQWdCLEVBQUUsd0JBQXdCO1FBQzFDLEdBQUcsRUFBRSw2Q0FBc0I7UUFDM0IsUUFBUSxFQUFFLEtBQUssRUFDYixHQUFrQixFQUNsQixDQUFTLEVBQ1QsVUFBa0IsRUFDbEIsR0FBVyxFQUNYLFVBQThCLEVBQzlCLEVBQUU7WUFDRixPQUFPLENBQ0wsQ0FDRSxNQUFNLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUN6QixRQUFRLEVBQUUsU0FBUztnQkFDbkIsVUFBVTtnQkFDVixZQUFZO2FBQ2IsQ0FBQyxDQUNILENBQUMsV0FBVyxFQUFFLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUM1QyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQ1osR0FBa0IsRUFDbEIsT0FBZSxFQUNmLEdBQVcsRUFDWCxLQUFrRCxFQUNsRCxFQUFFO1lBQ0YsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQzdELFFBQVEsRUFBRSxTQUFTO2FBQ3BCLENBQUMsQ0FBQztZQUNILE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO0tBQ0Y7Q0FDRixDQUFDO0FBRUssS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxNQUFrQjtJQUVsQixNQUFNLDRCQUE0QixHQUNoQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUM7UUFDZixDQUFDLENBQUMsS0FBSyxFQUFFLEdBQXlCLEVBQUUsRUFBRTtZQUNsQyxNQUFNLEdBQUcsR0FBRyxNQUFNLGVBQUs7aUJBQ3BCLEdBQUcsQ0FDRixpRkFBaUYsQ0FDbEY7aUJBQ0EsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNoQixPQUFPLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FDcEIsNkNBQTZDLENBQzlDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUNMLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLEVBQUUsaUJBQWlCLElBQUksSUFBSSxFQUFFLE1BQU0sQ0FBQztZQUU3RCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxNQUFNLFNBQVMsR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFDaEMsTUFBTSxDQUNQLENBQUM7Z0JBQ0YsR0FBRyxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7Z0JBQzdCLEdBQUcsQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUM7YUFDdEM7UUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQzNCLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLHNDQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUU5RCxLQUFLLFVBQVUsZUFBZSxDQUM1QixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtRQUVqQixNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUM5QixNQUFNLENBQUMsS0FBSyxFQUNaLFFBQVEsRUFDUixRQUFRLEVBQ1IsSUFBSSxFQUNKLE9BQU8sRUFDUCxNQUFNLEVBQ04sYUFBYSxFQUNiLGFBQWEsRUFDYixNQUFNLEVBQ04sT0FBTyxFQUNQLFFBQVEsQ0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVk7SUFDWixLQUFLLFVBQVUsY0FBYyxDQUFDLElBQVk7UUFDeEMsSUFBSSxHQUFHLENBQUM7UUFDUixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLENBQUMsR0FBRyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDeEIsR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDNUIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUNwRCxDQUFDO1lBQ0YsS0FBSyxFQUFFLENBQUM7U0FDVDtRQUVELE9BQU8sR0FBMEIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUF3QjtRQUNuRCxNQUFNLE9BQU8sR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkUsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQ3JCLE1BQU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDM0M7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxNQUFNLFNBQVMsR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLG1CQUFtQixHQUFHLEtBQUssRUFDL0IsRUFBdUIsRUFDdkIsTUFBYyxFQUNkLEVBQUU7UUFDRixNQUFNLEdBQUcsR0FBRyxzQkFBYyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FDNUQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQ2xCLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQ2IsTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJO1lBQ25CLENBQUMsQ0FBQyxXQUFXO1lBQ2IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVztnQkFDcEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDekIsT0FBTyxNQUFNLHNCQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQzFELEdBQVUsRUFDVixNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFDekIsU0FBUyxFQUNULEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUNqQixNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3ZDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFDNUIsRUFBdUIsRUFDdkIsTUFBYyxFQUNkLE9BQWtCLEVBQ2xCLFFBQXlDLEVBQ3pDLEVBQUU7UUFDRixNQUFNLFVBQVUsR0FBRyxNQUFNLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6RCxJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxHQUFHLEdBQUcsc0JBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQzVELEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUNsQixNQUFNLENBQ1AsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUNiLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSTtZQUNuQixDQUFDLENBQUMsV0FBVztZQUNiLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO2dCQUN6QyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVc7Z0JBQ3BCLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBRXpCLE1BQU0sT0FBTyxHQUFHLE1BQU0sc0JBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FDbEUsR0FBVSxFQUNWLFNBQVMsRUFDVCxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDakIsNEJBQTRCLEVBQzVCLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDdEMsUUFBUSxDQUNULENBQUM7UUFDRixNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDdEIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RSxPQUFPO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsS0FBSyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1FBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUMsWUFBWTtRQUM5QixnQkFBZ0I7UUFDaEIsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVE7UUFDM0IsS0FBSyxDQUFDLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRztZQUM3QyxNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6QyxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELFlBQVk7WUFDVixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDMUIsQ0FBQztRQUNELG1CQUFtQjtRQUNuQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUNoQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDO1FBQzlDLGFBQWE7UUFDYixLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTztZQUM3QixNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0MsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUs7UUFDNUIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTTtZQUN6QyxNQUFNLFVBQVUsR0FBRyxNQUFNLG1CQUFtQixDQUMxQyxFQUFFLEVBQ0YsSUFBSSxtQkFBVSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FDbEMsQ0FBQztZQUVGLElBQUksVUFBVSxFQUFFO2dCQUNkLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxHQUFHLEdBQUcsNkNBQXNCLENBQUMsT0FBTyxDQUN4QyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFDbEIsSUFBSSxtQkFBVSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FDbEMsQ0FBQztZQUVGLE1BQU0sVUFBVSxHQUFHLE1BQU0sR0FBRyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FDdEQsV0FBVyxFQUNYLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUNsQixDQUFDO1lBRUYsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3hCLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzFFLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDeEIsT0FBTyxxQkFBaUIsQ0FBQyxPQUFPLENBQUM7YUFDbEM7WUFDRCxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ2hCLE9BQU8scUJBQWlCLENBQUMsT0FBTyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDdkIsT0FBTyxxQkFBaUIsQ0FBQyxPQUFPLENBQUM7YUFDbEM7WUFDRCxPQUFPLHFCQUFpQixDQUFDLE9BQU8sQ0FBQztRQUNuQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsT0FBTztZQUNqQyxJQUFJLGVBQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sRUFBRTtnQkFDL0MsTUFBTSxNQUFNLEdBQUcsNkNBQXNCLENBQUMsT0FBTyxDQUFDLFFBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDbkUscUVBQXFFO2dCQUNyRSxlQUFlO2dCQUNmLE9BQU8sTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN2RDtZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTTtZQUNoRSxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU07aUJBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUM7aUJBQ2YsbUJBQW1CLENBQUMsZ0JBQWdCLENBQ25DLEVBQUUsRUFDRixVQUFVLEVBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDckMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDOUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQ3ZCO2dCQUNFLEtBQUssRUFBRSxrQkFBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDckMsQ0FDRixDQUFDO1lBQ0osTUFBTSw0QkFBNEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFN0MseUJBQXlCO1lBQ3pCLGNBQWM7WUFDZCw4QkFBOEI7WUFDOUIsZ0JBQWdCO1lBQ2hCLDJCQUEyQjtZQUMzQix1QkFBdUI7WUFDdkIsK0JBQStCO1lBQy9CLFFBQVE7WUFDUixhQUFhO1lBQ2IsS0FBSztZQUNMLE1BQU0sZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVoQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDRCxLQUFLLENBQUMseUJBQXlCLENBQzdCLE1BQU0sRUFDTixVQUFVLEVBQ1YsRUFBRSxFQUNGLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTTtZQUVOLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTTtpQkFDcEIsT0FBTyxDQUFDLE1BQU0sQ0FBQztpQkFDZixtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FDckMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ3JDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQzlCLFVBQVUsRUFDVixFQUFFLEVBQ0YsUUFBUSxFQUNSO2dCQUNFLEtBQUssRUFBRSxrQkFBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDckMsQ0FDRixDQUFDO1lBQ0osTUFBTSw0QkFBNEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUV2QyxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFN0MsTUFBTSxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWhDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVM7WUFDekQsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEMsTUFBTSxHQUFHLEdBQUcsS0FBTSxHQUFHLEtBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzFDLE9BQU8sSUFBSSxzQkFBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLEdBQUcsRUFBRSxJQUFJO1lBQzlDLE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sR0FBRyxHQUFHLEtBQU0sR0FBRyxLQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMxQyxPQUFPLElBQUksc0JBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELFlBQVksQ0FBQyxVQUFrQjtZQUM3QixPQUFPLElBQUksZUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixNQUFjLEVBQ2QsV0FBbUIsRUFDbkIsRUFBVSxFQUNWLEVBQXVCLEVBQ3ZCLE1BQWlCLEVBQ2pCLFFBQWdCLEVBQ2hCLFdBQTRDLFNBQVMsRUFDckQsUUFBUTtZQUVSLE1BQU0sZ0JBQWdCLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDckQsTUFBTSxNQUFNLEdBQUcsc0JBQWMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUU3RCxrQkFBa0I7WUFDbEIsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDekIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQzNDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUNwQixDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDeEMsQ0FBQztnQkFDRixFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO2FBQ3pDO1lBRUQsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNO2lCQUNwQixPQUFPLENBQUMsTUFBTSxDQUFDO2lCQUNmLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUMxQixFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFDbEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQ2pCLFdBQVcsRUFDWCxFQUFFLEVBQ0YsUUFBUSxFQUNSO2dCQUNFLEtBQUssRUFBRSxrQkFBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLFFBQVE7Z0JBQ1IsUUFBUTthQUNULENBQ0YsQ0FBQztZQUNKLE1BQU0sNEJBQTRCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFdkMsTUFBTSxHQUFHLEdBQWtDLE1BQU0sTUFBTTtpQkFDcEQsZUFBZSxDQUFDLEVBQUUsQ0FBQztpQkFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtvQkFDdkIsT0FBTyxDQUFDLENBQUM7aUJBQ1Y7O29CQUFNLE1BQU0sQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsSUFBSSxNQUFjLENBQUM7WUFDbkIsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDekIsMkJBQTJCO2dCQUMzQixNQUFNLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQy9CO2lCQUFNLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7Z0JBQzlCLDhCQUE4QjtnQkFDOUIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDO2FBQzFDO2lCQUFNO2dCQUNMLCtCQUErQjtnQkFDL0IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7YUFDbkI7WUFFRCxNQUFNLGVBQWU7WUFDbkIsWUFBWTtZQUNaLE1BQU0sQ0FDUCxDQUFDO1lBQ0YsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDdkIsT0FBTyxNQUFNLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDOUM7WUFDRCxPQUFPLEdBQVUsQ0FBQztRQUNwQixDQUFDO1FBQ0QsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixNQUFjLEVBQ2QsRUFBVSxFQUNWLEVBQXVCLEVBQ3ZCLE1BQWlCLEVBQ2pCLEtBQUssRUFDTCxRQUFRLEdBQUcsU0FBUyxFQUNwQixRQUFRO1lBRVIsTUFBTSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUVyRCxrQkFBa0I7WUFDbEIsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDekIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQzNDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUNwQixDQUFDLGtCQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUNwRCxDQUFDO2dCQUNGLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7YUFDekM7WUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU07aUJBQ3JCLE9BQU8sQ0FBQyxNQUFNLENBQUM7aUJBQ2YsbUJBQW1CLENBQUMsV0FBVyxDQUM5QixFQUFFLEVBQ0YsS0FBSyxFQUNMLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUNqQixFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFDbEI7Z0JBQ0UsS0FBSyxFQUFFLGtCQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLFFBQVE7Z0JBQ1IsUUFBUTthQUNULENBQ0YsQ0FBQztZQUVKLE1BQU0sNEJBQTRCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLElBQUksTUFBYyxDQUFDO1lBQ25CLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQ3pCLDJCQUEyQjtnQkFDM0IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUMvQjtpQkFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO2dCQUM5Qiw4QkFBOEI7Z0JBQzlCLE1BQU0sR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQzthQUMxQztpQkFBTTtnQkFDTCwrQkFBK0I7Z0JBQy9CLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2FBQ25CO1lBRUQsTUFBTSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDdkIsT0FBTyxNQUFNLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDOUM7WUFDRCxPQUFPLEdBQVUsQ0FBQztRQUNwQixDQUFDO1FBQ0QsS0FBSyxDQUFDLDJCQUEyQixDQUMvQixHQUFXLEVBQ1gsT0FBNEIsRUFDNUIsU0FBUztZQUVULE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRXpDLE9BQU8sSUFBSSxzQkFBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsZUFBZSxDQUFDLEdBQUc7WUFDakIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELGdCQUFnQixDQUFDLEdBQUc7WUFDbEIsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBcGFELDhDQW9hQyJ9 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBY3JDLG1DQVNnQjtBQUVoQiwrREFNOEI7QUFDOUIsMEJBWVk7QUFHWixrREFBMEI7QUFDMUIsZ0RBQTZDO0FBNEM3QyxpQkFBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNoRSxPQUFPLGtCQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQXlERjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQixFQUNsQixLQUFhO0lBRWIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxD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 From 6ea51c6e8a651cb33f9bdd92a75dbed562d41b9f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 4 Feb 2023 18:31:17 +0530 Subject: [PATCH 883/956] Handlers: Near: New Smart Contract Fixes --- src/factory/factories.ts | 4 ++-- src/helpers/near.ts | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 4cffabb42..289555a18 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -420,8 +420,8 @@ export namespace ChainFactoryConfigs { networkId: "testnet", nonce: Chain.NEAR, rpcUrl: TestNetRpcUri.NEAR, - bridge: "xp_bridge_1.testnet", - xpnft: "xp_nft_1.testnet", + bridge: "xp_new_bridge.testnet", + xpnft: "xp_new_nft.testnet", walletUrl: "https://wallet.testnet.near.org", helperUrl: "https://helper.testnet.near.org", feeMargin, diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 2dfe97d7b..01e9ceff7 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -130,13 +130,12 @@ export async function nearHelperFactory({ contractId: contract, methodName: "nft_is_approved", }); - console.log(`Is approved: ${result}`); return result; }; const getWalletCallbackUrl = (params: string) => { let walletCallbackUrl: string | undefined = undefined; - if (typeof window?.location !== "undefined") { + if (globalThis.window !== undefined) { const network = location.pathname.match(/^\/(staging|testnet)\/.+/)?.at(1) || ""; @@ -241,7 +240,7 @@ export async function nearHelperFactory({ }, methodName: "freeze_nft", attachedDeposit: new BN(txFees.toString(10)), - gas: new BN("30000000000000"), + gas: new BN("46000000000000"), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); await notifier.notifyNear(result.transaction.hash); @@ -273,7 +272,7 @@ export async function nearHelperFactory({ }, methodName: "withdraw_nft", attachedDeposit: new BN(txFees.toString(10)), - gas: new BN("30000000000000"), + gas: new BN(65_000_000_000_000), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); await notifier.notifyNear(result.transaction.hash); From ead42e6632298c4104c07a41d0376a8f15945e25 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 7 Feb 2023 13:22:30 +0530 Subject: [PATCH 884/956] Helpers: Tezos: Implement Batch Methods --- src/helpers/tezos.ts | 116 ++++++++++++++++++++++++++++++------------- 1 file changed, 82 insertions(+), 34 deletions(-) diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index ab485c4fe..5f1fa5630 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -32,6 +32,9 @@ import { GetFeeMargins, WhitelistCheck, GetTokenURI, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + EstimateTxFeesBatch, } from "./chain"; type TezosSigner = WalletProvider | Signer; @@ -39,6 +42,7 @@ type TezosSigner = WalletProvider | Signer; export type TezosNftInfo = { contract: string; token_id: string; + amt: number; }; type TezosMintArgs = { @@ -56,6 +60,9 @@ export type TezosHelper = TransferNftForeign< MintNft & BalanceCheck & UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFeesBatch & ValidateAddress & EstimateTxFees & ChainNonceGet & @@ -199,46 +206,81 @@ export async function tezosHelperFactory({ ); } + let transferNft = async ( + sender: TezosSigner, + chain: number, + to: string, + nft: NftInfo, + fee: BigNumber, + mw: string, + amt: number + ) => { + // await preTransfer(sender, nft); + const hash = await withBridge( + sender, + (bridge) => + bridge.methods.freeze_fa2( + chain, + nft.collectionIdent, + mw, + to, + parseInt(nft.native.token_id), + amt + ), + { amount: fee.toNumber() / 1e6 } + ); + + notifyValidator(hash); + return hash; + }; + + let unfreezeWrappedNft = async ( + sender: TezosSigner, + to: string, + nft: NftInfo, + fee: BigNumber, + nonce: number, + amt: number + ) => { + const hash = await withBridge( + sender, + (bridge) => { + return bridge.methods.withdraw_nft( + nft.native.contract, + nonce, + to, + parseInt(nft.native.token_id), + amt + ); + }, + { amount: fee.toNumber() / 1e6 } + ); + + notifyValidator(hash); + return hash; + }; + return { XpNft: xpnftAddress, - async transferNftToForeign(sender, chain, to, nft, fee, mw) { - // await preTransfer(sender, nft); - const hash = await withBridge( - sender, - (bridge) => - bridge.methods.freeze_fa2( - chain, - nft.collectionIdent, - mw, - to, - parseInt(nft.native.token_id) - ), - { amount: fee.toNumber() / 1e6 } - ); + transferNftToForeign: (sender, chain, to, nft, fee, mw) => + transferNft(sender, chain, to, nft, fee, mw, 1), - notifyValidator(hash); - return hash; - }, + transferNftBatchToForeign: ( + sender, + chain_nonce, + to, + id, + mintWith, + txFees + ) => + transferNft(sender, chain_nonce, to, id[0], txFees, mintWith, id.length), async balance(address) { return new BigNumber((await Tezos.tz.getBalance(address)).toString(10)); }, - async unfreezeWrappedNft(sender, to, nft, fee, nonce) { - const hash = await withBridge( - sender, - (bridge) => { - return bridge.methods.withdraw_nft( - nft.native.contract, - nonce, - to, - parseInt(nft.native.token_id) - ); - }, - { amount: fee.toNumber() / 1e6 } - ); - - notifyValidator(hash); - return hash; - }, + unfreezeWrappedNftBatch: (sender, chainNonce, to, nfts, txFees) => + unfreezeWrappedNft(sender, to, nfts[0], txFees, chainNonce, nfts.length), + unfreezeWrappedNft: (sender, to, nft, txFees, chainNonce) => + unfreezeWrappedNft(sender, to, nft, txFees, parseInt(chainNonce), 1), async mintNft(signer, { identifier, attrs, contract, uri }) { return await withContract(signer, xpnftAddress, (xpnft) => xpnft.methods.mint({ @@ -269,6 +311,12 @@ export async function tezosHelperFactory({ async estimateValidateUnfreezeNft() { return estimateGas(validators, 1.2e4); }, + async estimateValidateTransferNftBatch(_, ids) { + return estimateGas(validators, 1.2e5 * ids.length); + }, + async estimateValidateUnfreezeNftBatch(_, ids) { + return estimateGas(validators, 1.2e4 * ids.length); + }, preTransfer, isApprovedForMinter, approveForMinter: (nft, sender) => preTransfer(sender, nft), From 341108f7f4e21435f66184d703d5c6b2f673dad9 Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Tue, 7 Feb 2023 11:02:20 +0200 Subject: [PATCH 885/956] apros reinstalled and builed --- package.json | 2 +- tsconfig.json | 2 +- yarn.lock | 15 ++++++++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index cd266a35f..635e9c38d 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "@vechain/ethers": "^4.0.27-5", "@walletconnect/client": "^1.7.0", "algosdk": "^1.15.0-beta.1", - "aptos": "^1.3.16", + "aptos": "^1.6.0", "axios": "^0.21.1", "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", diff --git a/tsconfig.json b/tsconfig.json index e40fc5c03..c373d8bbe 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "incremental": false, "target": "ES2021", "outDir": "./dist", - //"outDir": "../bridge-interface/node_modules/xp.network/dist", + // "outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs", diff --git a/yarn.lock b/yarn.lock index 60070c3f4..5cad3c26b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1388,11 +1388,16 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111" integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== -"@noble/hashes@^1.1.2", "@noble/hashes@^1.1.3", "@noble/hashes@~1.1.1": +"@noble/hashes@^1.1.2", "@noble/hashes@^1.1.3": version "1.1.4" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.4.tgz#2611ebf5764c1bf754da7c7794de4fb30512336d" integrity sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA== +"@noble/hashes@~1.1.1": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.5.tgz#1a0377f3b9020efe2fae03290bd2a12140c95c11" + integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== + "@noble/secp256k1@1.7.0", "@noble/secp256k1@^1.6.3": version "1.7.0" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" @@ -2679,10 +2684,10 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -aptos@^1.3.16: - version "1.4.0" - resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.4.0.tgz#983709ebf875f9069277a8d72b22b133812395d4" - integrity sha512-D1yBXeyhiBKgJnUQX8iDXckZMPFwdJ9YfUZtRcDhUoR7qLX4hfmLQYemvLqtJvyTCf/Nggfp66hXX1Z8FdlEiQ== +aptos@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.6.0.tgz#177fad94667503df0b911a5ea7b8e542b612be8b" + integrity sha512-5khjDwrDeNMDBFRcZAmETW20D+V2AqTdsgqkh6bvvl70BtRXdkitN0saM05gf1rK3atnO9PyUKO8iRaBDG5qtA== dependencies: "@noble/hashes" "1.1.3" "@scure/bip39" "1.1.0" From 823393c8a482ad640d1439258701065eb13bb6eb Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Tue, 7 Feb 2023 11:04:28 +0200 Subject: [PATCH 886/956] outdir .dist From f6c4a5d7490e5a7da14cb212dddc375266d451c6 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 8 Feb 2023 18:12:09 +0530 Subject: [PATCH 887/956] tezos: handler: fix issues in batch methods --- src/factory/factories.ts | 4 ++-- src/helpers/tezos.ts | 47 +++++++++++++++++++--------------------- 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 289555a18..93d9f7512 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -316,10 +316,10 @@ export namespace ChainFactoryConfigs { feeMargin, }, tezosParams: { - bridgeAddress: "KT1KbL9kWPM8GkMr5M38vF1eHdsNxTc4WkyQ", + bridgeAddress: "KT1NJG7j4Z5LbU3obL5TUaJPGNT45ukRTQrH", notifier, Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), - xpnftAddress: "KT1WR4fe9wFGPgNViK5feigMGyXKG9gCX8n4", + xpnftAddress: "KT1EDdaYT3aAbWCfGXfC3RGLqyQgsHYasZXw", validators: [ "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index 5f1fa5630..af50c2f43 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -15,6 +15,7 @@ import { ContractAbstraction, ContractMethod, ContractProvider, + MichelsonMap, SendParams, Signer, TezosToolkit, @@ -47,9 +48,10 @@ export type TezosNftInfo = { type TezosMintArgs = { identifier: string; - attrs: string; contract: string; uri: string; + to: string; + amt: number; }; export type TezosHelper = TransferNftForeign< @@ -219,14 +221,14 @@ export async function tezosHelperFactory({ const hash = await withBridge( sender, (bridge) => - bridge.methods.freeze_fa2( - chain, - nft.collectionIdent, - mw, + bridge.methodsObject.freeze_fa2({ + fa2_address: nft.collectionIdent, + token_id: parseInt(nft.native.token_id), + chain_nonce: chain, to, - parseInt(nft.native.token_id), - amt - ), + mint_with: mw, + amt, + }) as any, { amount: fee.toNumber() / 1e6 } ); @@ -245,13 +247,14 @@ export async function tezosHelperFactory({ const hash = await withBridge( sender, (bridge) => { - return bridge.methods.withdraw_nft( - nft.native.contract, - nonce, + console.log({ amt }); + return bridge.methodsObject.withdraw_nft({ + amt, + burner: nft.native.contract, + chain_nonce: nonce, to, - parseInt(nft.native.token_id), - amt - ); + token_id: parseInt(nft.native.token_id), + }) as any; }, { amount: fee.toNumber() / 1e6 } ); @@ -281,17 +284,11 @@ export async function tezosHelperFactory({ unfreezeWrappedNft(sender, to, nfts[0], txFees, chainNonce, nfts.length), unfreezeWrappedNft: (sender, to, nft, txFees, chainNonce) => unfreezeWrappedNft(sender, to, nft, txFees, parseInt(chainNonce), 1), - async mintNft(signer, { identifier, attrs, contract, uri }) { - return await withContract(signer, xpnftAddress, (xpnft) => - xpnft.methods.mint({ - token_id: identifier, - address: contract, - metadata: { - uri: uri, - attrs, - }, - amount: 1, - }) + async mintNft(signer, { identifier, contract, uri, to, amt }) { + const metadata = new MichelsonMap(); + metadata.set("", utils.char2Bytes(uri)); + return await withContract(signer, contract, (umt) => + umt.methods.mint(to, amt, metadata, identifier) ); }, async validateAddress(adr) { From 7def37b4f512ddaf458ed9ea8c66ca72e853e35d Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sat, 11 Feb 2023 20:13:16 +0200 Subject: [PATCH 888/956] update ton --- dist/factory/factories.js | 4 ++-- src/factory/factories.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/factory/factories.js b/dist/factory/factories.js index 3f54dcb15..7acaf0945 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -743,8 +743,8 @@ var ChainFactoryConfigs; ); return { tonParams: { - bridgeAddr: "kQAhH1me417YvScu9Rn8BXjsW_9HcalciG5LmCDT04HMJt6L", - burnerAddr: "kQDuSGRY8g6TCLC4QhlhqgLr4G_nNXTGHoXy38Mwxx-r1aGY", + bridgeAddr: "kQAV8Z_aSl_e3PUMwXAb-mdE9l5Bsf83vn40NKc2LtsiFlGm", + burnerAddr: "kQDsF-yKhKqg4ygCynLfYRaw_QJeSoK2BeRpamO-nXeuuSiT", notifier, tonweb: new tonweb_1.default( new tonweb_1.default.HttpProvider( diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 7244e8380..1facdf1d7 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -629,8 +629,8 @@ export namespace ChainFactoryConfigs { return { tonParams: { - bridgeAddr: "kQAhH1me417YvScu9Rn8BXjsW_9HcalciG5LmCDT04HMJt6L", - burnerAddr: "kQDuSGRY8g6TCLC4QhlhqgLr4G_nNXTGHoXy38Mwxx-r1aGY", + bridgeAddr: "kQAV8Z_aSl_e3PUMwXAb-mdE9l5Bsf83vn40NKc2LtsiFlGm", + burnerAddr: "kQDsF-yKhKqg4ygCynLfYRaw_QJeSoK2BeRpamO-nXeuuSiT", notifier, tonweb: new TonWeb( new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { From fb61c826dfab90a58d50bb66fb5dc969b0ac9ea7 Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Sun, 12 Feb 2023 11:58:27 +0200 Subject: [PATCH 889/956] ton wallet provided calball onSuccess to show off the qrcode modal in ui when transaction is over --- src/helpers/ton.ts | 8 ++++++-- tsconfig.json | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/helpers/ton.ts b/src/helpers/ton.ts index 621cd572d..27fef3afd 100644 --- a/src/helpers/ton.ts +++ b/src/helpers/ton.ts @@ -35,6 +35,7 @@ export type TonSigner = { export type TonWalletProvider = { isTonWallet: boolean; send(method: string, params?: any[]): Promise; + onSuccess?(): Promise; on(eventName: string, handler: (...data: any[]) => any): void; }; @@ -90,6 +91,7 @@ type TonWallet = { method: M, params: MethodMap[M][0] ): Promise; + onSuccess?(): Function; handleResponse(res: ResponseUnionType): Promise; }; @@ -300,7 +302,7 @@ export async function tonHelper(args: TonParams): Promise { payload )}&open=1` ); - + //! default: return null; } @@ -308,12 +310,14 @@ export async function tonHelper(args: TonParams): Promise { async handleResponse(res: boolean) { console.log(res); - return await waitTonTrx( + const result = await waitTonTrx( payload, value, args.config.address!, "out_msgs" ); + args.wallet.onSuccess && args.wallet.onSuccess(); + return result; }, }; diff --git a/tsconfig.json b/tsconfig.json index c373d8bbe..d6349c14f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,8 @@ "compilerOptions": { "incremental": false, "target": "ES2021", - "outDir": "./dist", - // "outDir": "../bridge-interface/node_modules/xp.network/dist", + // "outDir": "./dist", + "outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs", From 2c811e8f457727a2dacde76a2d16cef600a4d10c Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Sun, 12 Feb 2023 12:01:37 +0200 Subject: [PATCH 890/956] tsconfig outDir changed back to ./dist --- tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index d6349c14f..c373d8bbe 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,8 @@ "compilerOptions": { "incremental": false, "target": "ES2021", - // "outDir": "./dist", - "outDir": "../bridge-interface/node_modules/xp.network/dist", + "outDir": "./dist", + // "outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs", From 7e6a6e2896380a6c09a98cad69fcc59002e9885b Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 12 Feb 2023 12:26:51 +0200 Subject: [PATCH 891/956] update xdai node --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 23dc0795e..95cd7a0f3 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -80,7 +80,7 @@ export enum MainNetRpcUri { TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", HARMONY = "https://rpc.s0.t.hmny.io", - XDAI = "https://gnosis.xp.network/node", + XDAI = "https://gnosischain-rpc.gateway.pokt.network/", FUSE = "https://rpc.fuse.io/", VELAS = "https://mainnet.velas.com/rpc", TEZOS = "https://mainnet.smartpy.io", From 4234d209d4649d1266341c8300cfb75bbef58624 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 12 Feb 2023 12:28:22 +0200 Subject: [PATCH 892/956] update xdai node --- dist/consts.d.ts | 2 +- dist/consts.d.ts.map | 2 +- dist/consts.js | 4 ++-- dist/helpers/ton.d.ts | 2 ++ dist/helpers/ton.d.ts.map | 2 +- dist/helpers/ton.js | 7 +++++-- 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/dist/consts.d.ts b/dist/consts.d.ts index 389f6cfda..e04305701 100644 --- a/dist/consts.d.ts +++ b/dist/consts.d.ts @@ -57,7 +57,7 @@ export declare enum MainNetRpcUri { TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", HARMONY = "https://rpc.s0.t.hmny.io", - XDAI = "https://gnosis.xp.network/node", + XDAI = "https://gnosischain-rpc.gateway.pokt.network/", FUSE = "https://rpc.fuse.io/", VELAS = "https://mainnet.velas.com/rpc", TEZOS = "https://mainnet.smartpy.io", diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map index c575d1696..df0bb666a 100644 --- a/dist/consts.d.ts.map +++ b/dist/consts.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js index 5a11d1328..02af8382b 100644 --- a/dist/consts.js +++ b/dist/consts.js @@ -73,7 +73,7 @@ var MainNetRpcUri; MainNetRpcUri["TRON"] = "https://api.trongrid.io/"; MainNetRpcUri["CELO"] = "https://forno.celo.org"; MainNetRpcUri["HARMONY"] = "https://rpc.s0.t.hmny.io"; - MainNetRpcUri["XDAI"] = "https://gnosis.xp.network/node"; + MainNetRpcUri["XDAI"] = "https://gnosischain-rpc.gateway.pokt.network/"; MainNetRpcUri["FUSE"] = "https://rpc.fuse.io/"; MainNetRpcUri["VELAS"] = "https://mainnet.velas.com/rpc"; MainNetRpcUri["TEZOS"] = "https://mainnet.smartpy.io"; @@ -626,4 +626,4 @@ exports.CHAIN_INFO.set(Chain.BITGERT, { tnBlockExplorerUrlAddr: "https://testnet-explorer.brisescan.com/address/", tnChainId: 64668, }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 diff --git a/dist/helpers/ton.d.ts b/dist/helpers/ton.d.ts index e0cc2917e..4ee883afc 100644 --- a/dist/helpers/ton.d.ts +++ b/dist/helpers/ton.d.ts @@ -21,6 +21,7 @@ export type TonSigner = { export type TonWalletProvider = { isTonWallet: boolean; send(method: string, params?: any[]): Promise; + onSuccess?(): Promise; on(eventName: string, handler: (...data: any[]) => any): void; }; export type TonArgs = { @@ -78,6 +79,7 @@ type TonWallet = { method: M, params: MethodMap[M][0] ): Promise; + onSuccess?(): Function; handleResponse(res: ResponseUnionType): Promise; }; export declare function tonHelper(args: TonParams): Promise; diff --git a/dist/helpers/ton.d.ts.map b/dist/helpers/ton.d.ts.map index a856787a7..5752b1e90 100644 --- a/dist/helpers/ton.d.ts.map +++ b/dist/helpers/ton.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/ton.js b/dist/helpers/ton.js index 9c49c612e..a642b41fd 100644 --- a/dist/helpers/ton.js +++ b/dist/helpers/ton.js @@ -183,18 +183,21 @@ async function tonHelper(args) { 10 )}&bin=${encodeURIComponent(payload)}&open=1` ); + //! default: return null; } }, async handleResponse(res) { console.log(res); - return await waitTonTrx( + const result = await waitTonTrx( payload, value, args.config.address, "out_msgs" ); + args.wallet.onSuccess && args.wallet.onSuccess(); + return result; }, }; return { @@ -341,4 +344,4 @@ exports.tonHelper = tonHelper; )[0].hash(); console.log("Hash: " + dict.toString("base64")); */ -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEyQztBQUMzQyxnRUFBcUM7QUFDckMsb0RBQTRCO0FBRzVCLDZCQUFvQztBQUNwQyxzQ0FBa0M7QUFlbEMsNkNBQThDO0FBRTlDLHdDQUFxQztBQUdyQyx5Q0FBMkM7QUFDM0MsbUVBQTJDO0FBb0VwQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQWU7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUM7SUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBOEI7UUFFOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLFdBQWdCLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixpQkFBTyxFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEyQztBQUMzQyxnRUFBcUM7QUFDckMsb0RBQTRCO0FBRzVCLDZCQUFvQztBQUNwQyxzQ0FBa0M7QUFlbEMsNkNBQThDO0FBRTlDLHdDQUFxQztBQUdyQyx5Q0FBMkM7QUFDM0MsbUVBQTJDO0FBc0VwQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQWU7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUM7SUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBOEI7UUFFOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLFdBQWdCLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixpQkFBTyxFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFELFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUM1QixJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRW5CLGlCQUFPLEVBQUUsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdkQsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3RCLFVBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxVQUFVLFdBQVcsQ0FBQyxPQUFlO1lBQ3hDLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN0QixVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzdELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQztRQUVELE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7WUFFNUMsSUFBSSxJQUFJO2dCQUFFLE9BQU87WUFDakIsNEJBQTRCO1lBQzVCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRCxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNuQixNQUFNLElBQUksR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QyxJQUFJLElBQUksRUFBRTtnQkFDUixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdkI7WUFFRCxzQkFBc0I7WUFDdEIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDNUIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QixJQUFJLE9BQU8sR0FBVyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksTUFBTSxHQUFXLEVBQUUsQ0FBQztnQkFFeEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO29CQUMvQixDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSTtvQkFDakMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDO2dCQUM3QixNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3JDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLO29CQUM1QixDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFFMUIsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSx3Q0FBd0MsQ0FBQyxDQUFDO2dCQUVuRSxPQUFPLE9BQU8sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQztZQUNuRCxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7U0FDVjtRQUVELFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQixNQUFNLElBQUksR0FBRyxVQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUU5QixJQUFJLE9BQU8sR0FBUSxTQUFTLENBQUM7UUFFN0IsT0FBTyxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQzVCLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFBLGVBQUssRUFDckIsZ0VBQWdFLGtCQUFrQixDQUNoRixNQUFNLENBQ1Asd0JBQXdCLENBQzFCLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXpCLE9BQU8sR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO1NBQ3JCO1FBRUQsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxPQUFPO1FBQ0wsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3hDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN4QyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsY0FBSyxDQUFDLEdBQUc7UUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTO1FBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZTtZQUMzQixPQUFPLElBQUksc0JBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsS0FBSyxDQUFDLDJCQUEyQjtZQUMvQixPQUFPLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87UUFDbEMsQ0FBQztRQUNELEtBQUssQ0FBQywyQkFBMkI7WUFDL0IsT0FBTyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO1FBQ2xDLENBQUM7UUFDRCxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUc7WUFDdkIsT0FBTyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELFlBQVk7WUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEIsQ0FBQztRQUNELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVE7WUFDdEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUM7WUFFckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxXQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FDaEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN2RCxDQUFDO1lBRUYsTUFBTSxNQUFNLEdBQUcsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM1QyxNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7Z0JBQzlCLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsVUFBVTtnQkFDVixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDaEMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRTVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7Z0JBQ3JELEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVztnQkFDMUIsSUFBSSxFQUFFLE9BQU87YUFDZCxDQUFDLENBQXNCLENBQUM7WUFFekIsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRS9DLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFcEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVO1lBQzNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO1lBRXJDLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQzVDLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdkQsQ0FBQztZQUVGLE1BQU0sTUFBTSxHQUFHLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztnQkFDOUMsRUFBRSxFQUFFLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ25DLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUNoQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7YUFDMUIsQ0FBQyxDQUFDO1lBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFFdEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7Z0JBQ3JELEtBQUssRUFBRSxJQUFJLFdBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXO2dCQUMxQixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUMsQ0FBc0IsQ0FBQztZQUV6QixNQUFNLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFL0MsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVwQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxnQkFBZ0IsQ0FBQyxJQUFhO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLElBQUksT0FBTyxHQUFXLEVBQUUsQ0FBQztZQUN6QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDZixNQUFNLE1BQU0sR0FBYztnQkFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTTtvQkFDdkIsUUFBUSxNQUFNLEVBQUU7d0JBQ2QsS0FBSyxxQkFBcUI7NEJBQ3hCLE9BQU8sR0FBRyxJQUFBLDBCQUFjLEVBQUMsTUFBTSxNQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDOzRCQUMxRCxLQUFLLEdBQUcsTUFBTyxDQUFDLEtBQUssQ0FBQzs0QkFDdEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDckIsc0NBQ0UsTUFBTyxDQUFDLEVBQ1YsV0FBVyxJQUFJLFdBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsa0JBQWtCLENBQzdELE9BQU8sQ0FDUixTQUFTLENBQ1gsQ0FBQzt3QkFDSixHQUFHO3dCQUNIOzRCQUNFLE9BQU8sSUFBSSxDQUFDO3FCQUNmO2dCQUNILENBQUM7Z0JBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFZO29CQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNqQixNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FDN0IsT0FBTyxFQUNQLEtBQUssRUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQVEsRUFDcEIsVUFBVSxDQUNYLENBQUM7b0JBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDakQsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUM7YUFDRixDQUFDO1lBRUYsT0FBTztnQkFDTCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxNQUFNLEVBQUUsQ0FBQzthQUNWLENBQUM7UUFDSixDQUFDO1FBQ0QsZ0JBQWdCLENBQUMsSUFBYTtZQUM1QixJQUFJLE9BQU8sR0FBVyxFQUFFLENBQUM7WUFDekIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2YsTUFBTSxNQUFNLEdBQWM7Z0JBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU07b0JBQ3ZCLFFBQVEsTUFBTSxFQUFFO3dCQUNkLEtBQUsscUJBQXFCOzRCQUN4QixLQUFLLEdBQUcsTUFBTyxDQUFDLEtBQUssQ0FBQzs0QkFFdEIsT0FBTyxHQUFHLElBQUEsMEJBQWMsRUFBQyxNQUFNLE1BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7NEJBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDOzRCQUNoQyxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7Z0NBQ25EO29DQUNFLEVBQUUsRUFBRSxNQUFPLENBQUMsRUFBRTtvQ0FDZCxLQUFLO29DQUNMLFFBQVEsRUFBRSxLQUFLO29DQUNmLElBQUksRUFBRSxPQUFPO2lDQUNkOzZCQUNGLENBQUMsQ0FBQzt3QkFDTDs0QkFDRSxPQUFPLElBQUksQ0FBQztxQkFDZjtnQkFDSCxDQUFDO2dCQUVELEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBWTtvQkFDL0IsT0FBTyxDQUNMLEdBQUc7d0JBQ0gsQ0FBQyxNQUFNLFVBQVUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQ3JFLENBQUM7Z0JBQ0osQ0FBQzthQUNGLENBQUM7WUFFRixPQUFPO2dCQUNMLE1BQU0sRUFBRSxNQUFNO2dCQUNkLE1BQU0sRUFBRSxDQUFDO2FBQ1YsQ0FBQztRQUNKLENBQUM7UUFDRCxhQUFhLENBQUMsSUFBYTtZQUN6QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDZixNQUFNLE1BQU0sR0FBYztnQkFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTTtvQkFDdkIsUUFBUSxNQUFNLEVBQUU7d0JBQ2QsS0FBSyxxQkFBcUI7NEJBQ3hCLEtBQUssR0FBRyxJQUFJLFdBQUUsQ0FBQyxNQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7NEJBQ3pDLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO2dDQUMxQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFLO2dDQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFhO2dDQUN2QyxFQUFFLEVBQUUsTUFBTyxDQUFDLEVBQUU7Z0NBQ2QsS0FBSztnQ0FDTCxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJO2dDQUN0QixJQUFJLEVBQUUsMEJBQTBCLE1BQU8sQ0FBQyxFQUFFLEVBQUU7Z0NBQzVDLE9BQU8sRUFBRSxJQUFBLDBCQUFjLEVBQUMsTUFBTSxNQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzs2QkFDekQsQ0FBQyxDQUFDO3dCQUVMOzRCQUNFLE9BQU8sSUFBSSxDQUFDO3FCQUNmO2dCQUNILENBQUM7Z0JBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUE4QjtvQkFDakQsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLFNBQVMsRUFBRTt3QkFDdkQsT0FBTyxNQUFNLFVBQVUsQ0FDckIsR0FBRyxDQUFDLFFBQVEsRUFDWixLQUFLLEVBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFRLEVBQ3BCLFFBQVEsQ0FDVCxDQUFDO3FCQUNIO3lCQUFNO3dCQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztxQkFDdkM7Z0JBQ0gsQ0FBQzthQUNGLENBQUM7WUFFRixPQUFPO2dCQUNMLE1BQU0sRUFBRSxNQUFNO2dCQUNkLE1BQU0sRUFBRSxDQUFDO2FBQ1YsQ0FBQztRQUNKLENBQUM7UUFDRCxZQUFZLENBQUMsRUFBMEI7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZELFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUztnQkFDdkIsRUFBRSxFQUFFLENBQUM7YUFDTixDQUFDLENBQUM7WUFFSCxNQUFNLE9BQU8sR0FBYztnQkFDekIsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTTtvQkFDdkIsUUFBUSxNQUFNLEVBQUU7d0JBQ2QsS0FBSyxnQkFBZ0I7NEJBQ25CLE9BQU8sTUFBTSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7d0JBQ3pELEtBQUsscUJBQXFCOzRCQUN4QixPQUFPLENBQUMsTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQzt3QkFDckMsS0FBSyxxQkFBcUI7NEJBQ3hCLE9BQU8sTUFBTSxNQUFNLENBQUMsT0FBTztpQ0FDeEIsUUFBUSxDQUFDO2dDQUNSLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUztnQ0FDdkIsU0FBUyxFQUFFLE1BQU8sQ0FBQyxFQUFFO2dDQUNyQixNQUFNLEVBQUUsSUFBSSxXQUFFLENBQUMsTUFBTyxDQUFDLEtBQUssQ0FBQztnQ0FDN0IsS0FBSyxFQUFFLENBQUMsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQztnQ0FDakQsUUFBUSxFQUFFLENBQUM7Z0NBQ1gsT0FBTyxFQUFFLE1BQU8sQ0FBQyxJQUFJOzZCQUN0QixDQUFDO2lDQUNELElBQUksRUFBRSxDQUFDO3FCQUNiO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFxQjtvQkFDeEMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUNsQixDQUFDO2FBQ0YsQ0FBQztZQUVGLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsTUFBTSxFQUFFLENBQUM7YUFDVixDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBMVZELDhCQTBWQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHIn0= From 2bb279d21d4f63e3c0c670ccac41d67881a7ccf2 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Mon, 13 Feb 2023 18:52:00 +0530 Subject: [PATCH 893/956] Helpers: Tezos: Add XpNft1155 for batch transfers --- src/factory/factories.ts | 2 +- src/helpers/tezos.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 93d9f7512..f1ea9a1bd 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -319,7 +319,7 @@ export namespace ChainFactoryConfigs { bridgeAddress: "KT1NJG7j4Z5LbU3obL5TUaJPGNT45ukRTQrH", notifier, Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), - xpnftAddress: "KT1EDdaYT3aAbWCfGXfC3RGLqyQgsHYasZXw", + xpnftAddress: "KT1GRqXuUpGJGDLCRsgQ9nDvVu7tap6LPxTC", validators: [ "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", diff --git a/src/helpers/tezos.ts b/src/helpers/tezos.ts index af50c2f43..3ab0276e2 100644 --- a/src/helpers/tezos.ts +++ b/src/helpers/tezos.ts @@ -80,6 +80,7 @@ export type TezosHelper = TransferNftForeign< ): Promise; } & { XpNft: string; + XpNft1155: string; } & GetFeeMargins & WhitelistCheck & GetTokenURI; @@ -247,7 +248,6 @@ export async function tezosHelperFactory({ const hash = await withBridge( sender, (bridge) => { - console.log({ amt }); return bridge.methodsObject.withdraw_nft({ amt, burner: nft.native.contract, @@ -265,6 +265,7 @@ export async function tezosHelperFactory({ return { XpNft: xpnftAddress, + XpNft1155: xpnftAddress, transferNftToForeign: (sender, chain, to, nft, fee, mw) => transferNft(sender, chain, to, nft, fee, mw, 1), From f40ae2a2ceb0aa285cfd7e9a3ed44bc16f4059e9 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 13 Feb 2023 17:45:16 +0200 Subject: [PATCH 894/956] add solana staging devnet and arbitrum mainnet --- dist/consts.d.ts | 3 ++- dist/consts.d.ts.map | 2 +- dist/consts.js | 5 +++-- dist/factory/factories.d.ts.map | 2 +- dist/factory/factories.js | 19 +++++++++++++------ src/consts.ts | 3 ++- src/factory/factories.ts | 18 +++++++++++++----- 7 files changed, 35 insertions(+), 17 deletions(-) diff --git a/dist/consts.d.ts b/dist/consts.d.ts index e04305701..07901490f 100644 --- a/dist/consts.d.ts +++ b/dist/consts.d.ts @@ -75,8 +75,9 @@ export declare enum MainNetRpcUri { APTOS = "https://fullnode.mainnet.aptoslabs.com/", CADUCEUS = "https://mainnet.block.caduceus.foundation/", OKC = "https://exchainrpc.okex.org/", - ARBITRUM = "string", + ARBITRUM = "https://nova.arbitrum.io/rpc", BITGERT = "https://dedicated.brisescan.com", + SOLANA = "https://api.mainnet-beta.solana.com", } type ElrondMeta = [ElrondHelper, ElrondParams]; type Web3Meta = [Web3Helper, Web3Params]; diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map index df0bb666a..2285d2125 100644 --- a/dist/consts.d.ts.map +++ b/dist/consts.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js index 02af8382b..96cb28bc2 100644 --- a/dist/consts.js +++ b/dist/consts.js @@ -92,8 +92,9 @@ var MainNetRpcUri; MainNetRpcUri["APTOS"] = "https://fullnode.mainnet.aptoslabs.com/"; MainNetRpcUri["CADUCEUS"] = "https://mainnet.block.caduceus.foundation/"; MainNetRpcUri["OKC"] = "https://exchainrpc.okex.org/"; - MainNetRpcUri["ARBITRUM"] = "string"; + MainNetRpcUri["ARBITRUM"] = "https://nova.arbitrum.io/rpc"; MainNetRpcUri["BITGERT"] = "https://dedicated.brisescan.com"; + MainNetRpcUri["SOLANA"] = "https://api.mainnet-beta.solana.com"; // TODO: Algorand })((MainNetRpcUri = exports.MainNetRpcUri || (exports.MainNetRpcUri = {}))); var Chain; @@ -626,4 +627,4 @@ exports.CHAIN_INFO.set(Chain.BITGERT, { tnBlockExplorerUrlAddr: "https://testnet-explorer.brisescan.com/address/", tnChainId: 64668, }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFBNkMsQ0FBQTtJQUM3QyxpQkFBaUI7SUFDakIsYUFBYTtBQUNmLENBQUMsRUFuQ1csYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFtQ3hCO0FBRUQsSUFBWSxhQWlDWDtBQWpDRCxXQUFZLGFBQWE7SUFDdkIsc0RBQXFDLENBQUE7SUFDckMsa0VBQWlELENBQUE7SUFDakQsMERBQXlDLENBQUE7SUFDekMsMkZBQTBFLENBQUE7SUFDMUUsb0VBQW1ELENBQUE7SUFDbkQsb0RBQW1DLENBQUE7SUFDbkMsa0RBQWlDLENBQUE7SUFDakMsa0RBQWlDLENBQUE7SUFDakMsZ0RBQStCLENBQUE7SUFDL0IscURBQW9DLENBQUE7SUFDcEMsdUVBQXNELENBQUE7SUFDdEQsOENBQTZCLENBQUE7SUFDN0Isd0RBQXVDLENBQUE7SUFDdkMscURBQW9DLENBQUE7SUFDcEMsNkRBQTRDLENBQUE7SUFDNUMsc0RBQXFDLENBQUE7SUFDckMsZ0VBQStDLENBQUE7SUFDL0Msc0RBQXFDLENBQUE7SUFDckMsOERBQTZDLENBQUE7SUFDN0MscUVBQW9ELENBQUE7SUFDcEQsdUZBQXNFLENBQUE7SUFDdEUsc0RBQXFDLENBQUE7SUFDckMsOERBQTZDLENBQUE7SUFDN0Msd0RBQXVDLENBQUE7SUFDdkMsNkRBQTRDLENBQUE7SUFDNUMsa0VBQWlELENBQUE7SUFDakQsd0VBQXVELENBQUE7SUFDdkQscURBQW9DLENBQUE7SUFDcEMsMERBQXlDLENBQUE7SUFDekMsNERBQTJDLENBQUE7SUFDM0MsK0RBQThDLENBQUE7SUFDOUMsaUJBQWlCO0FBQ25CLENBQUMsRUFqQ1csYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFpQ3hCO0FBeURELElBQWlCLEtBQUssQ0FxQ3JCO0FBckNELFdBQWlCLEtBQUs7SUFDUCxZQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsVUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFNBQUcsR0FBRyxDQUFDLENBQUM7SUFDUixjQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsZUFBUyxHQUFHLEdBQUcsQ0FBQztJQUNoQixhQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ1osWUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLFVBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxVQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNoQixhQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNuQixTQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNmLFVBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ2hCLGNBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ3BCLFVBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2xCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLGVBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3ZCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3JCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFNBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2pCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3JCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFVBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2xCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLGVBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3ZCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLFNBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2pCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJO0lBQ3JCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJO0FBQ25DLENBQUMsRUFyQ2dCLEtBQUssR0FBTCxhQUFLLEtBQUwsYUFBSyxRQXFDckI7QUF1QkQsSUFBWSxTQWFYO0FBYkQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCw4QkFBaUIsQ0FBQTtJQUNqQiwwQkFBYSxDQUFBO0lBQ2IsNEJBQWUsQ0FBQTtJQUNmLGtDQUFxQixDQUFBO0lBQ3JCLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLHdCQUFXLENBQUE7SUFDWCwwQkFBYSxDQUFBO0lBQ2IsOEJBQWlCLENBQUE7SUFDakIsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBYlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFhcEI7QUFFWSxRQUFBLFVBQVUsR0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQy9DLGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsV0FBVyxFQUFFLDRCQUFtQjtJQUNoQyxnQkFBZ0IsRUFBRSwyQ0FBMkM7SUFDN0Qsb0JBQW9CLEVBQUUsc0NBQXNDO0lBQzVELGtCQUFrQixFQUFFLG1EQUFtRDtJQUN2RSxzQkFBc0IsRUFBRSw4Q0FBOEM7SUFDdEUsUUFBUSxFQUFFLDBCQUFpQixDQUFDLElBQUk7SUFDaEMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQ3ZCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsQ0FBQztJQUNSLE9BQU8sRUFBRSxHQUFHO0lBQ1osUUFBUSxFQUFFLDZCQUFRLENBQUMsRUFBRTtJQUNyQixnQkFBZ0IsRUFBRSxpQ0FBaUM7SUFDbkQsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsRUFBRTtJQUM5QixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUN4QixJQUFJLEVBQUUsS0FBSztJQUNYLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxvQkFBb0IsRUFBRSw4QkFBOEI7SUFDcEQsa0JBQWtCLEVBQUUsaUNBQWlDO0lBQ3JELHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0lBQzdCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxDQUFDO0lBQ1IsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsT0FBTyxFQUFFLENBQUM7SUFDVixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxvQkFBb0IsRUFBRSwrQkFBK0I7SUFDckQsa0JBQWtCLEVBQUUsaUNBQWlDO0lBQ3JELHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO0lBQzlCLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsb0JBQW9CLEVBQUUsK0JBQStCO0lBQ3JELHNCQUFzQixFQUFFLHVDQUF1QztJQUMvRCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLEdBQUc7SUFDVixPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEtBQUs7SUFDeEIsZ0JBQWdCLEVBQUUsNkJBQTZCO0lBQy9DLGtCQUFrQixFQUFFLG9DQUFvQztJQUN4RCxvQkFBb0IsRUFBRSxrQ0FBa0M7SUFDeEQsc0JBQXNCLEVBQUUseUNBQXlDO0lBQ2pFLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEtBQUs7SUFDakMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsT0FBTyxFQUFFLElBQUk7SUFDYixnQkFBZ0IsRUFBRSx5QkFBeUI7SUFDM0Msb0JBQW9CLEVBQUUsOEJBQThCO0lBQ3BELHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxrQkFBa0IsRUFBRSxpQ0FBaUM7SUFDckQsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtJQUN6QixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsUUFBUSxFQUFFLDZCQUFRLENBQUMsR0FBRztJQUN0QixnQkFBZ0IsRUFBRSw0Q0FBNEM7SUFDOUQsa0JBQWtCLEVBQUUsNENBQTRDO0lBQ2hFLG9CQUFvQixFQUFFLGdDQUFnQztJQUN0RCxzQkFBc0IsRUFBRSx3Q0FBd0M7SUFDaEUsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7Q0FDckIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtJQUN6QixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsUUFBUSxFQUFFLDZCQUFRLENBQUMsSUFBSTtJQUN2QixPQUFPLEVBQUUsS0FBSztJQUNkLGdCQUFnQixFQUFFLGtEQUFrRDtJQUNwRSxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLEdBQUc7SUFDVixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLGdCQUFnQixFQUFFLGtDQUFrQztJQUNwRCxrQkFBa0IsRUFBRSwwQ0FBMEM7SUFDOUQsb0JBQW9CLEVBQUUsdUNBQXVDO0lBQzdELHNCQUFzQixFQUFFLCtDQUErQztJQUN2RSxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztJQUNuQixjQUFjLEVBQUU7UUFDZCw0Q0FBNEM7UUFDNUMsNENBQTRDO0tBQzdDO0NBQ0YsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUN4QixJQUFJLEVBQUUsVUFBVTtJQUNoQixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsT0FBTyxFQUFFLFVBQVU7SUFDbkIsZ0JBQWdCLEVBQUUsOEJBQThCO0lBQ2hELFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsT0FBTyxFQUFFLElBQUk7SUFDYixnQkFBZ0IsRUFBRSx5Q0FBeUM7SUFDM0Qsb0JBQW9CLEVBQUUsOENBQThDO0lBQ3BFLGtCQUFrQixFQUFFLHlDQUF5QztJQUM3RCxzQkFBc0IsRUFBRSw4Q0FBOEM7SUFDdEUsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtJQUM3QixJQUFJLEVBQUUsVUFBVTtJQUNoQixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZ0JBQWdCLEVBQUUsNkJBQTZCO0lBQy9DLGtCQUFrQixFQUFFLHFDQUFxQztJQUN6RCxvQkFBb0IsRUFBRSxrQ0FBa0M7SUFDeEQsc0JBQXNCLEVBQUUsMENBQTBDO0lBQ2xFLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFBLHlCQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsSUFBSSxFQUFFLFNBQVMsQ0FBQyxRQUFRO0NBQ3pCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZ0JBQWdCLEVBQUUsOEJBQThCO0lBQ2hELGtCQUFrQixFQUFFLG1DQUFtQztJQUN2RCxvQkFBb0IsRUFBRSxtQ0FBbUM7SUFDekQsc0JBQXNCLEVBQUUsd0NBQXdDO0lBRWhFLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsT0FBTyxFQUFFLElBQUk7SUFDYixnQkFBZ0IsRUFBRSxXQUFXO0lBQzdCLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7SUFDMUIsSUFBSSxFQUFFLE9BQU87SUFDYixLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsV0FBVyxFQUFFLDBCQUFrQjtJQUMvQixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixnQkFBZ0IsRUFBRSxrQkFBa0I7SUFDcEMsa0JBQWtCLEVBQUUsMkJBQTJCO0lBQy9DLHNCQUFzQixFQUFFLDJCQUEyQjtJQUNuRCxvQkFBb0IsRUFBRSxrQkFBa0I7SUFDeEMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLO0NBQ3RCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7SUFDMUIsSUFBSSxFQUFFLE9BQU87SUFDYixnQkFBZ0IsRUFBRSxnQ0FBZ0M7SUFDbEQsc0JBQXNCLEVBQUUsNkNBQTZDO0lBQ3JFLG9CQUFvQixFQUFFLHFDQUFxQztJQUMzRCxrQkFBa0IsRUFBRSx3Q0FBd0M7SUFDNUQsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsT0FBTyxFQUFFLEdBQUc7SUFDWixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtJQUMzQixJQUFJLEVBQUUsUUFBUTtJQUNkLGdCQUFnQixFQUFFLDRCQUE0QjtJQUM5QyxrQkFBa0IsRUFBRSxxQ0FBcUM7SUFDekQsb0JBQW9CLEVBQUUsaUNBQWlDO0lBQ3ZELHNCQUFzQixFQUFFLHdDQUF3QztJQUNoRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU07SUFDbkIsUUFBUSxFQUFFLDZCQUFRLENBQUMsTUFBTTtJQUN6QixXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxNQUFNO0lBQ2xDLE9BQU8sRUFBRSxVQUFVO0lBQ25CLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO0lBQzFCLElBQUksRUFBRSxPQUFPO0lBQ2IsZ0JBQWdCLEVBQUUsMEJBQTBCO0lBQzVDLG9CQUFvQixFQUFFLCtCQUErQjtJQUNyRCxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsc0JBQXNCLEVBQUUsdUNBQXVDO0lBQy9ELEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLDZCQUFRLENBQUMsSUFBSTtJQUN2QixXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7SUFDN0IsSUFBSSxFQUFFLFVBQVU7SUFDaEIsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBQzFDLGtCQUFrQixFQUFFLG1DQUFtQztJQUN2RCxvQkFBb0IsRUFBRSw2QkFBNkI7SUFDbkQsc0JBQXNCLEVBQUUsd0NBQXdDO0lBQ2hFLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO0lBQzlCLElBQUksRUFBRSxXQUFXO0lBRWpCLGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsb0JBQW9CLEVBQUUsK0JBQStCO0lBQ3JELHNCQUFzQixFQUFFLHVDQUF1QztJQUMvRCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLDZCQUFRLENBQUMsRUFBRTtJQUNyQixRQUFRLEVBQUUsMEJBQWlCLENBQUMsRUFBRTtJQUM5QixPQUFPLEVBQUUsRUFBRTtJQUNYLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLElBQUksRUFBRSxTQUFTO0lBQ2Ysa0JBQWtCLEVBQUUsbURBQW1EO0lBQ3ZFLG9CQUFvQixFQUFFLHVDQUF1QztJQUM3RCxnQkFBZ0IsRUFBRSwyQ0FBMkM7SUFDN0Qsc0JBQXNCLEVBQUUsK0NBQStDO0lBQ3ZFLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCwrQkFBK0I7SUFDL0IsV0FBVyxFQUFFLDRCQUFtQjtJQUNoQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU07SUFDbkIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLElBQUk7SUFDaEMsUUFBUSxFQUFFLDZCQUFRLENBQUMsSUFBSTtJQUN2QixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDdEIsZ0JBQWdCLEVBQUUsbURBQW1EO0lBQ3JFLG9CQUFvQixFQUFFLCtDQUErQztDQUN0RSxDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO0lBQzNCLElBQUksRUFBRSxRQUFRO0lBQ2QsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBQzFDLG9CQUFvQixFQUFFLDZCQUE2QjtJQUNuRCxrQkFBa0IsRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQ2pDLHlCQUF5QixFQUFFLGlCQUFpQjtJQUM5QyxzQkFBc0IsRUFBRSxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQzFDLDhCQUE4QixPQUFPLGlCQUFpQjtJQUN4RCxXQUFXLEVBQUUscUJBQVk7SUFDekIsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNO0lBQ25CLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQ3ZCLENBQUMsQ0FBQztBQUNIOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCSztBQUVMLGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsZ0JBQWdCLEVBQUUsNENBQTRDO0lBQzlELGtCQUFrQixFQUFFLDRDQUE0QztJQUNoRSxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNO0lBQ25CLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0lBQ3RCLG9CQUFvQixFQUFFLHdDQUF3QztJQUM5RCxzQkFBc0IsRUFBRSx3Q0FBd0M7Q0FDakUsQ0FBQyxDQUFDO0FBRUgsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtJQUMxQixJQUFJLEVBQUUsT0FBTztJQUNiLCtCQUErQjtJQUMvQixnQkFBZ0IsRUFDZCx3RUFBd0U7SUFDMUUsa0JBQWtCLEVBQ2hCLHNFQUFzRTtJQUN4RSxvQkFBb0IsRUFDbEIsNkVBQTZFO0lBQy9FLHNCQUFzQixFQUNwQiwyRUFBMkU7SUFDN0UsV0FBVyxFQUFFLG1DQUFzQjtJQUNuQyxRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztJQUNsQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBRUgsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtJQUM1QixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLFdBQVcsRUFBRSx1QkFBYTtJQUMxQixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPO0lBQ3BCLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTztDQUN4QixDQUFDLENBQUM7QUFFSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3pCLGdCQUFnQixFQUFFLGlEQUFpRDtJQUNuRSxrQkFBa0IsRUFBRSxpREFBaUQ7SUFDckUsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO0lBQ2pCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtJQUNwQixvQkFBb0IsRUFBRSw2Q0FBNkM7SUFDbkUsc0JBQXNCLEVBQUUsNkNBQTZDO0NBQ3RFLENBQUMsQ0FBQztBQUVILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7SUFDN0IsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtJQUNyQixPQUFPLEVBQUUsS0FBSztJQUNkLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztJQUNuQixvQkFBb0IsRUFBRSx1Q0FBdUM7SUFDN0Qsc0JBQXNCLEVBQUUsdUNBQXVDO0lBQy9ELGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxrQkFBa0IsRUFBRSxrQ0FBa0M7Q0FDdkQsQ0FBQyxDQUFDO0FBRUgsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtJQUM5QixrQkFBa0IsRUFBRSw0Q0FBNEM7SUFDaEUsc0JBQXNCLEVBQUUsaURBQWlEO0lBQ3pFLGdCQUFnQixFQUFFLGdDQUFnQztJQUNsRCxvQkFBb0IsRUFBRSxxQ0FBcUM7SUFDM0QsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztJQUN0QixPQUFPLEVBQUUsR0FBRztJQUNaLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO0lBQzFCLFdBQVcsRUFBRSxtQkFBVztJQUN4QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsS0FBSztJQUNqQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxLQUFLO0lBQ3hCLElBQUksRUFBRSxPQUFPO0lBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO0lBQ2xCLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSztJQUNyQiwrQkFBK0I7SUFDL0IsZ0JBQWdCLEVBQUUscUNBQXFDO0lBQ3ZELG9CQUFvQixFQUFFLHlDQUF5QztJQUMvRCxrQkFBa0IsRUFBRSxxQ0FBcUM7SUFDekQsc0JBQXNCLEVBQUUseUNBQXlDO0NBQ2xFLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7SUFDeEIsSUFBSSxFQUFFLEtBQUs7SUFDWCxXQUFXLEVBQUUsZUFBUztJQUN0QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRztJQUNoQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7SUFDbkIsa0JBQWtCLEVBQUUsaUNBQWlDO0lBQ3JELGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxvQkFBb0IsRUFBRSw4QkFBOEI7SUFDcEQsc0JBQXNCLEVBQUUsc0NBQXNDO0NBQy9ELENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7SUFDN0IsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtJQUNyQixnQkFBZ0IsRUFBRSw4Q0FBOEM7SUFDaEUsa0JBQWtCLEVBQUUsNkNBQTZDO0lBQ2pFLG9CQUFvQixFQUFFLG1EQUFtRDtJQUN6RSxzQkFBc0IsRUFBRSxrREFBa0Q7SUFDMUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxNQUFNO0lBQ2YsU0FBUyxFQUFFLE1BQU07Q0FDbEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUN4QixnQkFBZ0IsRUFBRSw2QkFBNkI7SUFDL0MsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxLQUFLO0lBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHO0lBQ2hCLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztJQUNuQixPQUFPLEVBQUUsRUFBRTtJQUNYLG9CQUFvQixFQUFFLHdDQUF3QztJQUM5RCxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsc0JBQXNCLEVBQUUsNkNBQTZDO0lBQ3JFLFNBQVMsRUFBRSxFQUFFO0NBQ2QsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtJQUM3QixnQkFBZ0IsRUFBRSxrQ0FBa0M7SUFDcEQsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtJQUNyQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxvQkFBb0IsRUFBRSx1Q0FBdUM7SUFDN0Qsa0JBQWtCLEVBQUUsZ0RBQWdEO0lBQ3BFLHNCQUFzQixFQUFFLHFEQUFxRDtJQUM3RSxTQUFTLEVBQUUsTUFBTTtDQUNsQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLGdCQUFnQixFQUFFLDJCQUEyQjtJQUM3QyxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxLQUFLO0lBQ2pDLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsSUFBSSxFQUFFLFNBQVM7SUFDZixLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU87SUFDcEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2Isb0JBQW9CLEVBQUUsZ0NBQWdDO0lBQ3RELGtCQUFrQixFQUFFLDRDQUE0QztJQUNoRSxzQkFBc0IsRUFBRSxpREFBaUQ7SUFDekUsU0FBUyxFQUFFLEtBQUs7Q0FDakIsQ0FBQyxDQUFDIn0= diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map index a9b9bbc85..e7c161b97 100644 --- a/dist/factory/factories.d.ts.map +++ b/dist/factory/factories.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAyYvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAsLvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAkXvD,CAAC;CACH"} \ No newline at end of file +{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAyYvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA6LvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAmXvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js index 7acaf0945..8887834a3 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -543,6 +543,13 @@ var ChainFactoryConfigs; xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", feeMargin, }, + solanaParams: { + xpnftAddr: "", + bridgeContractAddr: "CHgXhvxk3dVyMh8kTVjvPboBfgiCH1ajkdKyWMpo6dn6", + endpoint: consts_1.TestNetRpcUri.SOLANA, + notifier, + feeMargin, + }, caduceusParams: { notifier, feeMargin, @@ -797,11 +804,11 @@ var ChainFactoryConfigs; ), }, arbitrumParams: { - erc721Minter: "string", - erc1155Minter: "string", - erc1155_addr: "string", - erc721_addr: "string", - minter_addr: "string", + erc721Minter: "0x536dDc3Be14A980d3cd15635b3D05985C297FD07", + erc1155Minter: "0x4F4F48f70892475b0D4863f61F47157Dd1Db9F1a", + erc1155_addr: "0xBd2005050a99142d7B77B415e7b603633f3B3746", + erc721_addr: "0x445712E8dcf35E42FFAbb79b900aADcE2284fB65", + minter_addr: "0x72d270bb71A90B82260b12c31D427C3F33AC0692", feeMargin, nonce: consts_1.Chain.ARBITRUM, notifier, @@ -1152,4 +1159,4 @@ var ChainFactoryConfigs; (ChainFactoryConfigs = exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) ); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0F1N0JuQztBQXY3QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0ErN0JuQztBQS83QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 diff --git a/src/consts.ts b/src/consts.ts index 95cd7a0f3..fe54571e6 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -98,8 +98,9 @@ export enum MainNetRpcUri { APTOS = "https://fullnode.mainnet.aptoslabs.com/", CADUCEUS = "https://mainnet.block.caduceus.foundation/", OKC = "https://exchainrpc.okex.org/", - ARBITRUM = "string", + ARBITRUM = "https://nova.arbitrum.io/rpc", BITGERT = "https://dedicated.brisescan.com", + SOLANA = "https://api.mainnet-beta.solana.com", // TODO: Algorand } diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 1facdf1d7..d0779122e 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -448,6 +448,13 @@ export namespace ChainFactoryConfigs { xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", feeMargin, }, + solanaParams: { + xpnftAddr: "", + bridgeContractAddr: "CHgXhvxk3dVyMh8kTVjvPboBfgiCH1ajkdKyWMpo6dn6", + endpoint: TestNetRpcUri.SOLANA, + notifier, + feeMargin, + }, caduceusParams: { notifier, feeMargin, @@ -676,11 +683,11 @@ export namespace ChainFactoryConfigs { provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.OKC), }, arbitrumParams: { - erc721Minter: "string", - erc1155Minter: "string", - erc1155_addr: "string", - erc721_addr: "string", - minter_addr: "string", + erc721Minter: "0x536dDc3Be14A980d3cd15635b3D05985C297FD07", + erc1155Minter: "0x4F4F48f70892475b0D4863f61F47157Dd1Db9F1a", + erc1155_addr: "0xBd2005050a99142d7B77B415e7b603633f3B3746", + erc721_addr: "0x445712E8dcf35E42FFAbb79b900aADcE2284fB65", + minter_addr: "0x72d270bb71A90B82260b12c31D427C3F33AC0692", feeMargin, nonce: Chain.ARBITRUM, notifier, @@ -952,6 +959,7 @@ export namespace ChainFactoryConfigs { erc721_addr: "0x55B1D1891ABb21A5d245d149B49007b55Bd3746D", minter_addr: "0x4ceDb46481d7118E1D292C318E37510E5919bBe6", }, + secretParams: { notifier, rpcUrl: MainNetRpcUri.SECRET, From df78926f839a67d7f17aba603d9a45e8b7034eeb Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 14 Feb 2023 17:54:07 +0200 Subject: [PATCH 895/956] gasLimit for approve EVM inc to 85k --- dist/helpers/web3.js | 8 ++++---- src/helpers/web3.ts | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js index 9a8f0abed..4b1ce8c26 100644 --- a/dist/helpers/web3.js +++ b/dist/helpers/web3.js @@ -77,7 +77,7 @@ exports.NFT_METHOD_MAP = { umt: xpnet_web3_contracts_1.Erc1155Minter__factory, approved: (umt, sender, minterAddr, _tok, customData) => { return umt.isApprovedForAll(sender, minterAddr, { - gasLimit: "60000", + gasLimit: "85000", customData, }); }, @@ -86,7 +86,7 @@ exports.NFT_METHOD_MAP = { forAddr, true, { - gasLimit: "60000", + gasLimit: "85000", customData, } ); @@ -102,7 +102,7 @@ exports.NFT_METHOD_MAP = { return ( ( await umt.getApproved(tok, { - gasLimit: "60000", + gasLimit: "85000", customData, //@ts-ignore }) @@ -111,7 +111,7 @@ exports.NFT_METHOD_MAP = { }, approve: async (umt, forAddr, tok, txnUp) => { const tx = await umt.populateTransaction.approve(forAddr, tok, { - gasLimit: "60000", + gasLimit: "85000", }); await txnUp(tx); return await umt.signer.sendTransaction(tx); diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 19b165612..c7a06a3aa 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -265,7 +265,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { customData: NullableCustomData ) => { return umt.isApprovedForAll(sender, minterAddr, { - gasLimit: "60000", + gasLimit: "85000", customData, }); }, @@ -280,7 +280,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { forAddr, true, { - gasLimit: "60000", + gasLimit: "85000", customData, } ); @@ -302,7 +302,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { return ( ( await umt.getApproved(tok, { - gasLimit: "60000", + gasLimit: "85000", customData, //@ts-ignore }) @@ -316,7 +316,7 @@ export const NFT_METHOD_MAP: NftMethodMap = { txnUp: (tx: PopulatedTransaction) => Promise ) => { const tx = await umt.populateTransaction.approve(forAddr, tok, { - gasLimit: "60000", + gasLimit: "85000", }); await txnUp(tx); return await umt.signer.sendTransaction(tx); From 5a8e7d0b34741dc9f8a1c87c892988b544a56269 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 15 Feb 2023 16:31:42 +0530 Subject: [PATCH 896/956] ci: only push to bleeding-edge for production branch --- .github/workflows/release.yml | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index aa1eeab82..1bec86e53 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,6 @@ jobs: node-version: 16.x # cache: yarn # cache-dependency-path: yarn.lock - - name: dep run: yarn @@ -35,18 +34,9 @@ jobs: - name: prepare package run: mkdir out && mv package.json out && mv dist out && mv README.md out && mv LICENSE out && mv docs out - - name: Prepare Master Release + - name: Prepare Production Release uses: s0/git-publish-subdir-action@develop - if: ${{ github.ref == 'refs/heads/master' }} - env: - REPO: self - BRANCH: master-dist - FOLDER: out - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - MESSAGE: "Build: ({sha}) {msg}" - - name: Prepare Branch Release - uses: s0/git-publish-subdir-action@develop - if: ${{ github.ref != 'refs/heads/master' }} + if: ${{ github.ref == 'refs/heads/production' }} env: REPO: self BRANCH: bleeding-edge From 78ad85fc2f37507602db306c3bffcec23bfc91b6 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Thu, 16 Feb 2023 11:07:38 +0200 Subject: [PATCH 897/956] update staging ton params --- dist/factory/factories.js | 14 ++--- dist/helpers/near.d.ts.map | 2 +- dist/helpers/near.js | 9 ++- dist/helpers/tezos.d.ts | 11 +++- dist/helpers/tezos.d.ts.map | 2 +- dist/helpers/tezos.js | 109 +++++++++++++++++++++--------------- src/factory/factories.ts | 4 +- 7 files changed, 89 insertions(+), 62 deletions(-) diff --git a/dist/factory/factories.js b/dist/factory/factories.js index 8887834a3..7df89fd1d 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -399,10 +399,10 @@ var ChainFactoryConfigs; feeMargin, }, tezosParams: { - bridgeAddress: "KT1KbL9kWPM8GkMr5M38vF1eHdsNxTc4WkyQ", + bridgeAddress: "KT1NJG7j4Z5LbU3obL5TUaJPGNT45ukRTQrH", notifier, Tezos: new taquito_1.TezosToolkit(consts_1.TestNetRpcUri.TEZOS), - xpnftAddress: "KT1WR4fe9wFGPgNViK5feigMGyXKG9gCX8n4", + xpnftAddress: "KT1GRqXuUpGJGDLCRsgQ9nDvVu7tap6LPxTC", validators: [ "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", @@ -512,8 +512,8 @@ var ChainFactoryConfigs; networkId: "testnet", nonce: consts_1.Chain.NEAR, rpcUrl: consts_1.TestNetRpcUri.NEAR, - bridge: "xp_bridge_1.testnet", - xpnft: "xp_nft_1.testnet", + bridge: "xp_new_bridge.testnet", + xpnft: "xp_new_nft.testnet", walletUrl: "https://wallet.testnet.near.org", helperUrl: "https://helper.testnet.near.org", feeMargin, @@ -528,8 +528,8 @@ var ChainFactoryConfigs; ); return { tonParams: { - bridgeAddr: "kQDuN8nvYr2yjsbV9jQIricuGUECtY-z21uOeZFVfPAAnAuy", - burnerAddr: "kQDUmYu97JTNB6o4bUmnUq3fPq7LQWinU7HqdjVgopPn5dx7", + bridgeAddr: "kQBGFgZOXaF7LPRxWrjd9l6Iws6KGhWiMs3BKzAZGyeMq2AS", + burnerAddr: "kQAee5m2tk_-ipbrq40Geey7_yZmjZwAYZFjuKy9CbWvVykL", notifier, tonweb: new tonweb_1.default( new tonweb_1.default.HttpProvider( @@ -1159,4 +1159,4 @@ var ChainFactoryConfigs; (ChainFactoryConfigs = exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) ); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0ErN0JuQztBQS83QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0ErN0JuQztBQS83QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 diff --git a/dist/helpers/near.d.ts.map b/dist/helpers/near.d.ts.map index 172e2948e..2dc06b636 100644 --- a/dist/helpers/near.d.ts.map +++ b/dist/helpers/near.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/helpers/near.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/helpers/near.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/near.js b/dist/helpers/near.js index 5b0df6a8a..843bfc834 100644 --- a/dist/helpers/near.js +++ b/dist/helpers/near.js @@ -37,12 +37,11 @@ async function nearHelperFactory({ contractId: contract, methodName: "nft_is_approved", }); - console.log(`Is approved: ${result}`); return result; }; const getWalletCallbackUrl = (params) => { let walletCallbackUrl = undefined; - if (typeof window?.location !== "undefined") { + if (globalThis.window !== undefined) { const network = location.pathname.match(/^\/(staging|testnet)\/.+/)?.at(1) || ""; walletCallbackUrl = `${location.protocol}//${location.host}/${network}/connect?${params}`; @@ -145,7 +144,7 @@ async function nearHelperFactory({ }, methodName: "freeze_nft", attachedDeposit: new bn_js_1.BN(txFees.toString(10)), - gas: new bn_js_1.BN("30000000000000"), + gas: new bn_js_1.BN("46000000000000"), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); await notifier.notifyNear(result.transaction.hash); @@ -176,7 +175,7 @@ async function nearHelperFactory({ }, methodName: "withdraw_nft", attachedDeposit: new bn_js_1.BN(txFees.toString(10)), - gas: new bn_js_1.BN("30000000000000"), + gas: new bn_js_1.BN(65000000000000), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); await notifier.notifyNear(result.transaction.hash); @@ -230,4 +229,4 @@ async function nearHelperFactory({ }; } exports.nearHelperFactory = nearHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL25lYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLGlDQUEyQjtBQUUzQiw2Q0FTcUI7QUFFckIseURBR21DO0FBQ25DLHNDQUFrQztBQW9GM0IsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEVBQ3RDLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEdBQ0U7SUFDWCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEscUJBQU8sRUFBQztRQUN6QixPQUFPLEVBQUUsTUFBTTtRQUNmLFNBQVM7UUFDVCxPQUFPLEVBQUUsRUFBRTtLQUNaLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLEtBQUssRUFDdEIsT0FBZ0IsRUFDaEIsR0FBcUIsRUFDSCxFQUFFO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDbkQsTUFBTSxNQUFNLEdBQVksTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ2pELElBQUksRUFBRTtnQkFDSixRQUFRO2dCQUNSLG1CQUFtQixFQUFFLE1BQU07Z0JBQzNCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCO1lBQ0QsVUFBVSxFQUFFLFFBQVE7WUFDcEIsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztJQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUM5QyxJQUFJLGlCQUFpQixHQUF1QixTQUFTLENBQUM7UUFDdEQsSUFBSSxPQUFPLE1BQU0s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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL25lYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLGlDQUEyQjtBQUUzQiw2Q0FTcUI7QUFFckIseURBR21DO0FBQ25DLHNDQUFrQztBQW9GM0IsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEVBQ3RDLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEdBQ0U7SUFDWCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEscUJBQU8sRUFBQztRQUN6QixPQUFPLEVBQUUsTUFBTTtRQUNmLFNBQVM7UUFDVCxPQUFPLEVBQUUsRUFBRTtLQUNaLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLEtBQUssRUFDdEIsT0FBZ0IsRUFDaEIsR0FBcUIsRUFDSCxFQUFFO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDbkQsTUFBTSxNQUFNLEdBQVksTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ2pELElBQUksRUFBRTtnQkFDSixRQUFRO2dCQUNSLG1CQUFtQixFQUFFLE1BQU07Z0JBQzNCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCO1lBQ0QsVUFBVSxFQUFFLFFBQVE7WUFDcEIsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QixDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7SUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDOUMsSUFBSSxpQkFBaUIsR0FBdUIsU0FBUyxDQUFDO1FBQ3RELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDbkMsTUFBTSxPQUFPLEdBQ1gsUUFBUSxDQUFDLFFB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 diff --git a/dist/helpers/tezos.d.ts b/dist/helpers/tezos.d.ts index e58361606..59818aad1 100644 --- a/dist/helpers/tezos.d.ts +++ b/dist/helpers/tezos.d.ts @@ -16,17 +16,22 @@ import { GetFeeMargins, WhitelistCheck, GetTokenURI, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + EstimateTxFeesBatch, } from "./chain"; type TezosSigner = WalletProvider | Signer; export type TezosNftInfo = { contract: string; token_id: string; + amt: number; }; type TezosMintArgs = { identifier: string; - attrs: string; contract: string; uri: string; + to: string; + amt: number; }; export type TezosHelper = TransferNftForeign< TezosSigner, @@ -36,6 +41,9 @@ export type TezosHelper = TransferNftForeign< MintNft & BalanceCheck & UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFeesBatch & ValidateAddress & EstimateTxFees & ChainNonceGet & @@ -51,6 +59,7 @@ export type TezosHelper = TransferNftForeign< ): Promise; } & { XpNft: string; + XpNft1155: string; } & GetFeeMargins & WhitelistCheck & GetTokenURI; diff --git a/dist/helpers/tezos.d.ts.map b/dist/helpers/tezos.d.ts.map index 5d619a376..6462846c6 100644 --- a/dist/helpers/tezos.d.ts.map +++ b/dist/helpers/tezos.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/helpers/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAML,MAAM,EACN,YAAY,EAIZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAC1C,WAAW,EACX,YAAY,EACZ,MAAM,CACP,GACC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAC3C,YAAY,GACZ,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GACrD,eAAe,GACf,cAAc,CAAC,YAAY,CAAC,GAC5B,aAAa,GACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG;IAC1E,mBAAmB,CACjB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,GAAG;IACF,gBAAgB,CACd,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,aAAa,GACjB,cAAc,CAAC,YAAY,CAAC,GAC5B,WAAW,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA2MpC"} \ No newline at end of file +{"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/helpers/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAOL,MAAM,EACN,YAAY,EAIZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAC1C,WAAW,EACX,YAAY,EACZ,MAAM,CACP,GACC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAC3C,YAAY,GACZ,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GACrD,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,mBAAmB,CAAC,YAAY,CAAC,GACjC,eAAe,GACf,cAAc,CAAC,YAAY,CAAC,GAC5B,aAAa,GACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG;IAC1E,mBAAmB,CACjB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,GAAG;IACF,gBAAgB,CACd,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,GACjB,cAAc,CAAC,YAAY,CAAC,GAC5B,WAAW,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA+OpC"} \ No newline at end of file diff --git a/dist/helpers/tezos.js b/dist/helpers/tezos.js index 1d541db5f..74c7e8f66 100644 --- a/dist/helpers/tezos.js +++ b/dist/helpers/tezos.js @@ -51,6 +51,7 @@ var __importDefault = Object.defineProperty(exports, "__esModule", { value: true }); exports.tezosHelperFactory = void 0; const __1 = require(".."); +const taquito_1 = require("@taquito/taquito"); const utils = __importStar(require("@taquito/utils")); const bignumber_js_1 = __importDefault(require("bignumber.js")); async function tezosHelperFactory({ @@ -134,57 +135,69 @@ async function tezosHelperFactory({ ]) ); } + let transferNft = async (sender, chain, to, nft, fee, mw, amt) => { + // await preTransfer(sender, nft); + const hash = await withBridge( + sender, + (bridge) => + bridge.methodsObject.freeze_fa2({ + fa2_address: nft.collectionIdent, + token_id: parseInt(nft.native.token_id), + chain_nonce: chain, + to, + mint_with: mw, + amt, + }), + { amount: fee.toNumber() / 1e6 } + ); + notifyValidator(hash); + return hash; + }; + let unfreezeWrappedNft = async (sender, to, nft, fee, nonce, amt) => { + const hash = await withBridge( + sender, + (bridge) => { + return bridge.methodsObject.withdraw_nft({ + amt, + burner: nft.native.contract, + chain_nonce: nonce, + to, + token_id: parseInt(nft.native.token_id), + }); + }, + { amount: fee.toNumber() / 1e6 } + ); + notifyValidator(hash); + return hash; + }; return { XpNft: xpnftAddress, - async transferNftToForeign(sender, chain, to, nft, fee, mw) { - // await preTransfer(sender, nft); - const hash = await withBridge( - sender, - (bridge) => - bridge.methods.freeze_fa2( - chain, - nft.collectionIdent, - mw, - to, - parseInt(nft.native.token_id) - ), - { amount: fee.toNumber() / 1e6 } - ); - notifyValidator(hash); - return hash; - }, + XpNft1155: xpnftAddress, + transferNftToForeign: (sender, chain, to, nft, fee, mw) => + transferNft(sender, chain, to, nft, fee, mw, 1), + transferNftBatchToForeign: ( + sender, + chain_nonce, + to, + id, + mintWith, + txFees + ) => + transferNft(sender, chain_nonce, to, id[0], txFees, mintWith, id.length), async balance(address) { return new bignumber_js_1.default( (await Tezos.tz.getBalance(address)).toString(10) ); }, - async unfreezeWrappedNft(sender, to, nft, fee, nonce) { - const hash = await withBridge( - sender, - (bridge) => { - return bridge.methods.withdraw_nft( - nft.native.contract, - nonce, - to, - parseInt(nft.native.token_id) - ); - }, - { amount: fee.toNumber() / 1e6 } - ); - notifyValidator(hash); - return hash; - }, - async mintNft(signer, { identifier, attrs, contract, uri }) { - return await withContract(signer, xpnftAddress, (xpnft) => - xpnft.methods.mint({ - token_id: identifier, - address: contract, - metadata: { - uri: uri, - attrs, - }, - amount: 1, - }) + unfreezeWrappedNftBatch: (sender, chainNonce, to, nfts, txFees) => + unfreezeWrappedNft(sender, to, nfts[0], txFees, chainNonce, nfts.length), + unfreezeWrappedNft: (sender, to, nft, txFees, chainNonce) => + unfreezeWrappedNft(sender, to, nft, txFees, parseInt(chainNonce), 1), + async mintNft(signer, { identifier, contract, uri, to, amt }) { + const metadata = new taquito_1.MichelsonMap(); + metadata.set("", utils.char2Bytes(uri)); + return await withContract(signer, contract, (umt) => + umt.methods.mint(to, amt, metadata, identifier) ); }, async validateAddress(adr) { @@ -204,6 +217,12 @@ async function tezosHelperFactory({ async estimateValidateUnfreezeNft() { return estimateGas(validators, 1.2e4); }, + async estimateValidateTransferNftBatch(_, ids) { + return estimateGas(validators, 1.2e5 * ids.length); + }, + async estimateValidateUnfreezeNftBatch(_, ids) { + return estimateGas(validators, 1.2e4 * ids.length); + }, preTransfer, isApprovedForMinter, approveForMinter: (nft, sender) => preTransfer(sender, nft), @@ -227,4 +246,4 @@ async function tezosHelperFactory({ }; } exports.tezosHelperFactory = tezosHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV6b3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90ZXpvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBCQVdZO0FBZVosc0RBQXdDO0FBQ3hDLGdFQUFxQztBQTJEOUIsS0FBSyxVQUFVLGtCQUFrQixDQUFDLEVBQ3ZDLEtBQUssRUFDTCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1YsU0FBUyxHQUNHO0lBQ1osTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFvQixFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUM5RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0lBRUYsS0FBSyxVQUFVLFlBQVksQ0FDekIsTUFBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsRUFFOEMsRUFDOUMsTUFBNEI7UUFFNUIsSUFBSSxlQUFlLElBQUksTUFBTSxFQUFFO1lBQzdCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVoQyxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXBELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQixNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsT0FBUSxFQUEyQixDQUFDLElBQUksQ0FBQztTQUMxQzthQUFNO1lBQ0wsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FBSyxDQUFDLE1B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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV6b3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90ZXpvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBCQVdZO0FBQ1osOENBYTBCO0FBRTFCLHNEQUF3QztBQUN4QyxnRUFBcUM7QUFvRTlCLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxFQUN2QyxLQUFLLEVBQ0wsUUFBUSxFQUNSLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLFNBQVMsR0FDRztJQUNaLE1BQU0sV0FBVyxHQUFHLENBQUMsVUFBb0IsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDOUQsT0FBTyxJQUFJLHNCQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQztJQUVGLEtBQUssVUFBVSxZQUFZLENBQ3pCLE1BQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLEVBRThDLEVBQzlDLE1BQTRCO1FBRTVCLElBQUksZUFBZSxJQUFJLE1BQU0sRUFBRTtZQUM3QixLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFaEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVwRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUIsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE9BQVEsRUFBMkIsQ0FBQyxJQUFJLENBQUM7U0FDMUM7YUFBTTtZQUNMLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWxELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUxQixNQUFNLEtBQUssR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRO2lCQUMvQixRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN0QyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFdEMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO29CQUFFLE1BQU0sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQzthQUNwRTtpQkFBTTtnQkFDTCxNQUFNLEdBQUcsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQy9DO1lBQ0QsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE9BQVEsRUFBaUMsQ0FBQyxNQUFNLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRUQsU0FBUyxVQUFVLENBQ2pCLE1BQW1CLEVBQ25CLEVBRThDLEVBQzlDLE1BQTRCO1FBRTVCLE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxTQUFTLFVBQVUsQ0FBQyxNQUFtQjtRQUNyQyxJQUFJLGVBQWUsSUFBSSxNQUFNLEVBQUU7WUFDN0IsT0FBTyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDL0I7YUFBTTtZQUNMLE9BQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELEtBQUssVUFBVSxtQkFBbUIsQ0FDaEMsR0FBMEIsRUFDMUIsTUFBbUI7UUFFbkIsTUFBTSxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLE9BQU8sRUFHbEMsQ0FBQztRQUVMLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUM5RCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsUUFBUTtZQUMzQixDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDO1lBQzdDLENBQUMsQ0FBQztnQkFDRSxLQUFLO2dCQUNMLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRO2FBQzlCLENBQUM7UUFFTixNQUFNLEVBQUUsR0FBRyxNQUFNLGVBQWUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUMsT0FBTyxFQUFFLElBQUksU0FBUyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLFVBQVUsZUFBZSxDQUFDLElBQVk7UUFDekMsTUFBTSxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLFVBQVUsV0FBVyxDQUFDLE1BQW1CLEVBQUUsR0FBMEI7UUFDeEUsSUFBSSxNQUFNLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUMxQyxPQUFPO1NBQ1I7UUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxPQUFPLE1BQU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ2xFLFFBQVEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7WUFDaEM7Z0JBQ0UsWUFBWSxFQUFFO29CQUNaLEtBQUs7b0JBQ0wsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVE7aUJBQzlCO2FBQ0Y7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFdBQVcsR0FBRyxLQUFLLEVBQ3JCLE1BQW1CLEVBQ25CLEtBQWEsRUFDYixFQUFVLEVBQ1YsR0FBMEIsRUFDMUIsR0FBYyxFQUNkLEVBQVUsRUFDVixHQUFXLEVBQ1gsRUFBRTtRQUNGLHdDQUF3QztRQUN4QyxNQUFNLElBQUksR0FBRyxNQUFNLFVBQVUsQ0FDM0IsTUFBTSxFQUNOLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDVCxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUM5QixXQUFXLEVBQUUsR0FBRyxDQUFDLGVBQWU7WUFDaEMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUN2QyxXQUFXLEVBQUUsS0FBSztZQUNsQixFQUFFO1lBQ0YsU0FBUyxFQUFFLEVBQUU7WUFDYixHQUFHO1NBQ0osQ0FBUSxFQUNYLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FDakMsQ0FBQztRQUVGLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLElBQUksa0JBQWtCLEdBQUcsS0FBSyxFQUM1QixNQUFtQixFQUNuQixFQUFVLEVBQ1YsR0FBMEIsRUFDMUIsR0FBYyxFQUNkLEtBQWEsRUFDYixHQUFXLEVBQ1gsRUFBRTtRQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sVUFBVSxDQUMzQixNQUFNLEVBQ04sQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNULE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZDLEdBQUc7Z0JBQ0gsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUTtnQkFDM0IsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQzthQUN4QyxDQUFRLENBQUM7UUFDWixDQUFDLEVBQ0QsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUNqQyxDQUFDO1FBRUYsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLEtBQUssRUFBRSxZQUFZO1FBQ25CLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUN4RCxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpELHlCQUF5QixFQUFFLENBQ3pCLE1BQU0sRUFDTixXQUFXLEVBQ1gsRUFBRSxFQUNGLEVBQUUsRUFDRixRQUFRLEVBQ1IsTUFBTSxFQUNOLEVBQUUsQ0FDRixXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUMxRSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU87WUFDbkIsT0FBTyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELHVCQUF1QixFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ2hFLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxRSxrQkFBa0IsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUMxRCxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUU7WUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxzQkFBWSxFQUFFLENBQUM7WUFDcEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sTUFBTSxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ2xELEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUNoRCxDQUFDO1FBQ0osQ0FBQztRQUNELEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRztZQUN2QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FDNUQsQ0FBQztRQUNKLENBQUM7UUFDRCxRQUFRO1lBQ04sT0FBTyxTQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxZQUFZO1lBQ1YsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELEtBQUssQ0FBQywyQkFBMkI7WUFDL0IsT0FBTyxXQUFXLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxLQUFLLENBQUMsMkJBQTJCO1lBQy9CLE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsRUFBRSxHQUFHO1lBQzNDLE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxFQUFFLEdBQUc7WUFDM0MsT0FBTyxXQUFXLENBQUMsVUFBVSxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztRQUMzRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRztZQUN4QixNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sRUFFaEMsQ0FBQztZQUNMLE1BQU0sV0FBVyxHQUFHLE1BQU0sT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV6RSxPQUFPLFdBQVcsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLE9BQU87WUFDakMsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sRUFBRTtnQkFDOUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFcEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBUSxDQUFDO2dCQUNuRCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLFlBQVksRUFBRTtvQkFDaEIsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzNEO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQXRQRCxnREFzUEMifQ== diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 0cab56fcb..d93822294 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -436,8 +436,8 @@ export namespace ChainFactoryConfigs { return { tonParams: { - bridgeAddr: "kQDuN8nvYr2yjsbV9jQIricuGUECtY-z21uOeZFVfPAAnAuy", - burnerAddr: "kQDUmYu97JTNB6o4bUmnUq3fPq7LQWinU7HqdjVgopPn5dx7", + bridgeAddr: "kQBGFgZOXaF7LPRxWrjd9l6Iws6KGhWiMs3BKzAZGyeMq2AS", + burnerAddr: "kQAee5m2tk_-ipbrq40Geey7_yZmjZwAYZFjuKy9CbWvVykL", notifier, tonweb: new TonWeb( new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { From 27997d6f89c8a296b14e4a60a94d678292ccac08 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 16 Feb 2023 13:40:21 +0200 Subject: [PATCH 898/956] aptos adapter for petra, change testnet bridge contract, change abi, bump exchange-rate with fixed decimals for APTOS --- dist/helpers/aptos/index.js | 2 +- package.json | 2 +- src/factory/factories.ts | 2 +- src/helpers/aptos/bridge_client_abis.ts | 33 ++++++++++++++++++------- src/helpers/aptos/index.ts | 29 ++++++++++++++++++++-- tsconfig.json | 2 +- yarn.lock | 4 +-- 7 files changed, 57 insertions(+), 17 deletions(-) diff --git a/dist/helpers/aptos/index.js b/dist/helpers/aptos/index.js index 89dbc12fa..2fb991e46 100644 --- a/dist/helpers/aptos/index.js +++ b/dist/helpers/aptos/index.js @@ -85,7 +85,7 @@ async function aptosHelper({ ); const response = await tc.createToken( owner, - "UMT", + "XPNFT", options.name, options.description, 1, diff --git a/package.json b/package.json index 635e9c38d..65abef8bf 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#bec675e143f6a54209b1a546279aa64e029903aa", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#7f19d25a4f345b48c606be00e0321f97bf4661b4", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d93822294..43c373948 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -165,7 +165,7 @@ export namespace ChainFactoryConfigs { aptosParams: { rpcUrl: TestNetRpcUri.APTOS, bridge: - "0x467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18", + "0x2b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58", xpnft: "XPNFT", notifier, feeMargin, diff --git a/src/helpers/aptos/bridge_client_abis.ts b/src/helpers/aptos/bridge_client_abis.ts index 35c2f05bd..b37ad3758 100644 --- a/src/helpers/aptos/bridge_client_abis.ts +++ b/src/helpers/aptos/bridge_client_abis.ts @@ -26,15 +26,30 @@ export const MAINNET_BRIDGE_ABIS = [ ]; export const TESTNET_BRIDGE_ABIS = [ - "010a696e697469616c697a65467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000010967726f75705f6b65790601", - "01057061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", - "0107756e7061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", - "01107570646174655f67726f75705f6b6579467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - "011676616c69646174655f77697468647261775f66656573467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - "011576616c69646174655f7472616e736665725f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", - "010c77697468647261775f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "010a667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "011576616c69646174655f756e667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/initialize.abi + "010a696e697469616c697a652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000010967726f75705f6b65790601", + // ../build/aptos-bridge/abis/bridge/pause.abi + "010570617573652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/unpause.abi + "0107756e70617573652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/update_group_key.abi + "01107570646174655f67726f75705f6b65792b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi + "011276616c69646174655f77686974656c6973742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi + "011276616c69646174655f626c61636b6c6973742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi + "011676616c69646174655f77697468647261775f666565732b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi + "011576616c69646174655f7472616e736665725f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi + "010c77697468647261775f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/freeze_nft.abi + "010a667265657a655f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi + "011576616c69646174655f756e667265657a655f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/create_collection.abi + "01116372656174655f636f6c6c656374696f6e2b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000050f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670016636f6c6c656374696f6e5f6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000e636f6c6c656374696f6e5f75726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020e6d75746174655f73657474696e670600", ]; export const STAGING_BRIDGE_ABIS = [ diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts index 4022065b3..a805aff22 100644 --- a/src/helpers/aptos/index.ts +++ b/src/helpers/aptos/index.ts @@ -9,9 +9,16 @@ import { TransferNftForeign, UnfreezeForeignNft, ValidateAddress, + BalanceCheck, } from "../chain"; -import { AptosAccount, AptosClient, HexString, TokenClient } from "aptos"; +import { + AptosAccount, + AptosClient, + HexString, + CoinClient, + TokenClient, +} from "aptos"; import { Chain } from "../../consts"; import BigNumber from "bignumber.js"; @@ -57,7 +64,10 @@ export type AptosHelper = ChainNonceGet & } & GetFeeMargins & MintNft & GetProvider & - ClaimNFT; + ClaimNFT & + BalanceCheck & { + setPetraSigner(signer: any): void; + }; export type AptosParams = { feeMargin: FeeMargins; @@ -79,6 +89,7 @@ export async function aptosHelper({ const client = new AptosClient(rpcUrl); const bridgeClient = new BridgeClient(client, bridge, network); + const coinClient = new CoinClient(client); return { getNonce() { @@ -87,6 +98,18 @@ export async function aptosHelper({ getFeeMargin() { return feeMargin; }, + setPetraSigner(signer: any) { + //imposter + client.generateSignSubmitTransaction = async function ( + _: AptosAccount, + payload: any + ) { + return signer.signAndSubmitTransaction(payload); + }; + }, + balance: async (address) => { + return new BigNumber((await coinClient.checkBalance(address)).toString()); + }, async validateAddress(adr) { try { await client.getAccount(adr); @@ -96,6 +119,7 @@ export async function aptosHelper({ } }, XpNft: xpnft, + async estimateValidateTransferNft(_to, _metadata, _mintWith) { return new BigNumber(0); }, @@ -130,6 +154,7 @@ export async function aptosHelper({ return client; }, async mintNft(owner, options) { + //AptosAccount.fromAptosAccountObject({""}) const tc = new TokenClient(client); if (options.createCollection) { await tc.createCollection( diff --git a/tsconfig.json b/tsconfig.json index c373d8bbe..e40fc5c03 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "incremental": false, "target": "ES2021", "outDir": "./dist", - // "outDir": "../bridge-interface/node_modules/xp.network/dist", + //"outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs", diff --git a/yarn.lock b/yarn.lock index 5cad3c26b..160975103 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3863,9 +3863,9 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#bec675e143f6a54209b1a546279aa64e029903aa": +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#7f19d25a4f345b48c606be00e0321f97bf4661b4": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#bec675e143f6a54209b1a546279aa64e029903aa" + resolved "git+https://github.com/xp-network/exchange-rate#7f19d25a4f345b48c606be00e0321f97bf4661b4" dependencies: axios "^0.21.1" From 640382484bae6dd27eebff4266614eebabd2c914 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 16 Feb 2023 14:04:41 +0200 Subject: [PATCH 899/956] bmp exchange rate --- package.json | 2 +- yarn.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 65abef8bf..982663851 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#7f19d25a4f345b48c606be00e0321f97bf4661b4", + "crypto-exchange-rate": "git+https://github.com/xp-network/exchange-rate#aedf7b2c152d6d25e9e6cec5d222c63a3ade18ab", "ethers": "^5.5.4", "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", diff --git a/yarn.lock b/yarn.lock index 160975103..e401af51e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3863,9 +3863,9 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" -"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#7f19d25a4f345b48c606be00e0321f97bf4661b4": +"crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#aedf7b2c152d6d25e9e6cec5d222c63a3ade18ab": version "1.0.0" - resolved "git+https://github.com/xp-network/exchange-rate#7f19d25a4f345b48c606be00e0321f97bf4661b4" + resolved "git+https://github.com/xp-network/exchange-rate#aedf7b2c152d6d25e9e6cec5d222c63a3ade18ab" dependencies: axios "^0.21.1" From aae9dcc54eeb5447a027720fe63e6d62eb344e82 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 16 Feb 2023 14:18:27 +0200 Subject: [PATCH 900/956] add SupportedCurrencyName --- .gitignore | 2 +- dist/consts.d.ts | 36 ++++++----- dist/consts.d.ts.map | 2 +- dist/consts.js | 56 +++++++++++------ dist/factory/factories.js | 23 +++---- dist/factory/index.d.ts | 12 ++-- dist/factory/index.d.ts.map | 2 +- dist/factory/index.js | 21 +++---- dist/heartbeat/index.d.ts | 2 +- dist/heartbeat/index.d.ts.map | 2 +- dist/heartbeat/resp.d.ts | 8 +-- dist/heartbeat/resp.d.ts.map | 2 +- dist/helpers/algorand.d.ts | 20 +++--- dist/helpers/algorand.d.ts.map | 2 +- .../helpers/aptos/bridge_client_abis.d.ts.map | 2 +- dist/helpers/aptos/bridge_client_abis.js | 35 ++++++++--- dist/helpers/aptos/index.d.ts | 16 +++-- dist/helpers/aptos/index.d.ts.map | 2 +- dist/helpers/aptos/index.js | 17 ++++- dist/helpers/chain.d.ts | 4 +- dist/helpers/chain.d.ts.map | 2 +- dist/helpers/dfinity/dfinity.d.ts | 12 ++-- dist/helpers/dfinity/dfinity.d.ts.map | 2 +- dist/helpers/elrond.d.ts | 14 ++--- dist/helpers/elrond.d.ts.map | 2 +- dist/helpers/near.d.ts | 12 ++-- dist/helpers/near.d.ts.map | 2 +- dist/helpers/secret.d.ts | 12 ++-- dist/helpers/secret.d.ts.map | 2 +- dist/helpers/solana/idl.d.ts | 2 +- dist/helpers/solana/idl.d.ts.map | 2 +- dist/helpers/solana/index.d.ts | 10 +-- dist/helpers/solana/index.d.ts.map | 2 +- dist/helpers/tezos.d.ts | 10 +-- dist/helpers/tezos.d.ts.map | 2 +- dist/helpers/tezos.js | 21 +++---- dist/helpers/ton.d.ts | 18 +++--- dist/helpers/ton.d.ts.map | 2 +- dist/helpers/tron.d.ts | 8 +-- dist/helpers/tron.d.ts.map | 2 +- dist/helpers/web3.d.ts | 18 +++--- dist/helpers/web3.d.ts.map | 2 +- dist/helpers/web3_erc20.d.ts | 2 +- dist/helpers/web3_erc20.d.ts.map | 2 +- dist/index.js | 21 +++---- dist/notifier/index.d.ts | 20 +++--- dist/notifier/index.d.ts.map | 2 +- dist/socket.d.ts | 6 +- dist/socket.d.ts.map | 2 +- dist/type-utils.d.ts | 18 +++--- dist/type-utils.d.ts.map | 2 +- src/consts.ts | 62 ++++++++++++------- 52 files changed, 306 insertions(+), 256 deletions(-) diff --git a/.gitignore b/.gitignore index 6776e65ec..95b8d6cb2 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ tsconfig.tsbuildinfo src/test.ts .env* test* -*.DS_Store \ No newline at end of file +*.DS_Store diff --git a/dist/consts.d.ts b/dist/consts.d.ts index 07901490f..cba25503e 100644 --- a/dist/consts.d.ts +++ b/dist/consts.d.ts @@ -1,7 +1,10 @@ import { ElrondParams, ElrondHelper } from "./helpers/elrond"; import { TronParams, TronHelper } from "./helpers/tron"; import { Web3Params, Web3Helper } from "./helpers/web3"; -import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; +import { + SupportedCurrency, + SupportedCurrencyName, +} from "crypto-exchange-rate/dist/model/domain"; import { AlgorandParams, AlgorandHelper } from "./helpers/algorand"; import { TezosHelper, TezosParams } from "./helpers/tezos"; import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; @@ -79,22 +82,22 @@ export declare enum MainNetRpcUri { BITGERT = "https://dedicated.brisescan.com", SOLANA = "https://api.mainnet-beta.solana.com", } -type ElrondMeta = [ElrondHelper, ElrondParams]; -type Web3Meta = [Web3Helper, Web3Params]; -type TronMeta = [TronHelper, TronParams]; -type AlgoMeta = [AlgorandHelper, AlgorandParams]; -type TezosMeta = [TezosHelper, TezosParams]; -type SecretMeta = [SecretHelper, SecretParams]; -type SolanaMeta = [SolanaHelper, SolanaParams]; -type TonMeta = [TonHelper, TonParams]; -type DfinityMeta = [DfinityHelper, DfinityParams]; -type NearMeta = [NearHelper, NearParams]; -type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; -type AptosMeta = [AptosHelper, AptosParams]; -type MetaMapAssert = { +declare type ElrondMeta = [ElrondHelper, ElrondParams]; +declare type Web3Meta = [Web3Helper, Web3Params]; +declare type TronMeta = [TronHelper, TronParams]; +declare type AlgoMeta = [AlgorandHelper, AlgorandParams]; +declare type TezosMeta = [TezosHelper, TezosParams]; +declare type SecretMeta = [SecretHelper, SecretParams]; +declare type SolanaMeta = [SolanaHelper, SolanaParams]; +declare type TonMeta = [TonHelper, TonParams]; +declare type DfinityMeta = [DfinityHelper, DfinityParams]; +declare type NearMeta = [NearHelper, NearParams]; +declare type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; +declare type AptosMeta = [AptosHelper, AptosParams]; +declare type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown; }; -export type MetaMap = { +export declare type MetaMap = { 2: ElrondMeta; 3: Web3Meta; 4: Web3Meta; @@ -180,12 +183,13 @@ interface ChainData { chainId?: number; tnChainId?: number; currency: SupportedCurrency; + currencySymbol: SupportedCurrencyName; type: string; blockExplorerUrlAddr?: string; tnBlockExplorerUrlAddr?: string | ((tx: string) => string); rejectUnfreeze?: string[]; } -type ChainInfo = { +declare type ChainInfo = { set(k: T, v: ChainData | undefined): void; get(k: T): ChainData | undefined; } & Map>; diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map index 2285d2125..b9f0e050e 100644 --- a/dist/consts.d.ts.map +++ b/dist/consts.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js index 96cb28bc2..0fae41f2f 100644 --- a/dist/consts.js +++ b/dist/consts.js @@ -162,6 +162,7 @@ exports.CHAIN_INFO.set(Chain.ELROND, { tnBlockExplorerUrl: "https://testnet-explorer.elrond.com/transactions/", tnBlockExplorerUrlAddr: "https://testnet-explorer.elrond.com/address/", currency: domain_1.SupportedCurrency.EGLD, + currencySymbol: domain_1.SupportedCurrencyName.EGLD, type: ChainType.ELROND, }); exports.CHAIN_INFO.set(Chain.HECO, { @@ -172,6 +173,7 @@ exports.CHAIN_INFO.set(Chain.HECO, { blockExplorerUrl: "https://testnet.hecoinfo.com/tx", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.HT, + currencySymbol: domain_1.SupportedCurrencyName.HT, type: ChainType.EVM, }); exports.CHAIN_INFO.set(Chain.BSC, { @@ -185,12 +187,14 @@ exports.CHAIN_INFO.set(Chain.BSC, { tnBlockExplorerUrlAddr: "https://testnet.bscscan.com/address/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.BNB, + currencySymbol: domain_1.SupportedCurrencyName.BNB, type: ChainType.EVM, }); exports.CHAIN_INFO.set(Chain.ETHEREUM, { name: "Ethereum", nonce: 5, currency: domain_1.SupportedCurrency.ETH, + currencySymbol: domain_1.SupportedCurrencyName.ETH, chainId: 5, decimals: Decimals_1.DecimalsByCurrency.ETH, blockExplorerUrl: "https://etherscan.io/tx/", @@ -211,6 +215,7 @@ exports.CHAIN_INFO.set(Chain.AVALANCHE, { tnBlockExplorerUrlAddr: "https://testnet.snowtrace.io/address/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.AVAX, + currencySymbol: domain_1.SupportedCurrencyName.AVAX, type: ChainType.EVM, }); exports.CHAIN_INFO.set(Chain.POLYGON, { @@ -224,6 +229,7 @@ exports.CHAIN_INFO.set(Chain.POLYGON, { tnBlockExplorerUrlAddr: "https://mumbai.polygonscan.com/address/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.MATIC, + currencySymbol: domain_1.SupportedCurrencyName.MATIC, type: ChainType.EVM, }); exports.CHAIN_INFO.set(Chain.FANTOM, { @@ -237,6 +243,7 @@ exports.CHAIN_INFO.set(Chain.FANTOM, { tnBlockExplorerUrl: "https://testnet.ftmscan.com/tx/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.FTM, + currencySymbol: domain_1.SupportedCurrencyName.FTM, type: ChainType.EVM, }); exports.CHAIN_INFO.set(Chain.TRON, { @@ -249,6 +256,7 @@ exports.CHAIN_INFO.set(Chain.TRON, { tnBlockExplorerUrlAddr: "https://shasta.tronscan.org/#/address/", constructor: tron_1.tronHelperFactory, currency: domain_1.SupportedCurrency.TRX, + currencySymbol: domain_1.SupportedCurrencyName.TRX, type: ChainType.TRON, }); exports.CHAIN_INFO.set(Chain.CELO, { @@ -259,6 +267,7 @@ exports.CHAIN_INFO.set(Chain.CELO, { blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.CELO, + currencySymbol: domain_1.SupportedCurrencyName.CELO, type: ChainType.EVM, }); exports.CHAIN_INFO.set(Chain.HARMONY, { @@ -272,6 +281,7 @@ exports.CHAIN_INFO.set(Chain.HARMONY, { tnBlockExplorerUrlAddr: "https://explorer.testnet.harmony.one/address/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.ONE, + currencySymbol: domain_1.SupportedCurrencyName.ONE, type: ChainType.EVM, rejectUnfreeze: [ "0xb90Dc9e354001e6260DE670EDD6aBaDb890C6aC9", @@ -286,6 +296,7 @@ exports.CHAIN_INFO.set(Chain.ONT, { blockExplorerUrl: "https://explorer.pops.one/tx", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.ONT, + currencySymbol: domain_1.SupportedCurrencyName.ONT, type: ChainType.EVM, }); exports.CHAIN_INFO.set(Chain.XDAI, { @@ -299,6 +310,7 @@ exports.CHAIN_INFO.set(Chain.XDAI, { tnBlockExplorerUrlAddr: "https://blockscout.com/xdai/testnet/address/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.XDAI, + currencySymbol: domain_1.SupportedCurrencyName.XDAI, type: ChainType.EVM, }); exports.CHAIN_INFO.set(Chain.ALGORAND, { @@ -311,6 +323,7 @@ exports.CHAIN_INFO.set(Chain.ALGORAND, { blockExplorerUrlAddr: "https://algoexplorer.io/address/", tnBlockExplorerUrlAddr: "https://testnet.algoexplorer.io/address/", currency: domain_1.SupportedCurrency.ALGO, + currencySymbol: domain_1.SupportedCurrencyName.ALGO, constructor: (p) => Promise.resolve((0, algorand_1.algorandHelper)(p)), type: ChainType.ALGORAND, }); @@ -323,6 +336,7 @@ exports.CHAIN_INFO.set(Chain.FUSE, { tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", blockExplorerUrlAddr: "https://explorer.fuse.io/address/", tnBlockExplorerUrlAddr: "https://explorer.fusespark.io/address/", + currencySymbol: domain_1.SupportedCurrencyName.FUSE, currency: domain_1.SupportedCurrency.FUSE, constructor: web3_1.web3HelperFactory, type: ChainType.EVM, @@ -335,6 +349,7 @@ exports.CHAIN_INFO.set(Chain.UNIQUE, { blockExplorerUrl: "CANT FIND", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.OPL, + currencySymbol: domain_1.SupportedCurrencyName.OPL, type: ChainType.EVM, }); exports.CHAIN_INFO.set(Chain.TEZOS, { @@ -343,6 +358,7 @@ exports.CHAIN_INFO.set(Chain.TEZOS, { decimals: Decimals_1.DecimalsByCurrency.XTZ, constructor: tezos_1.tezosHelperFactory, currency: domain_1.SupportedCurrency.XTZ, + currencySymbol: domain_1.SupportedCurrencyName.XTZ, blockExplorerUrl: "https://tzkt.io/", tnBlockExplorerUrl: "https://ghostnet.tzkt.io/", tnBlockExplorerUrlAddr: "https://ghostnet.tzkt.io/", @@ -359,6 +375,7 @@ exports.CHAIN_INFO.set(Chain.VELAS, { decimals: Decimals_1.DecimalsByCurrency.VLX, constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.VLX, + currencySymbol: domain_1.SupportedCurrencyName.VLX, chainId: 111, type: ChainType.EVM, }); @@ -372,6 +389,7 @@ exports.CHAIN_INFO.set(Chain.AURORA, { decimals: Decimals_1.DecimalsByCurrency.AURORA, constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.AURORA, + currencySymbol: domain_1.SupportedCurrencyName.AURORA, chainId: 1313161554, type: ChainType.EVM, }); @@ -385,6 +403,7 @@ exports.CHAIN_INFO.set(Chain.IOTEX, { decimals: Decimals_1.DecimalsByCurrency.IOTX, constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.IOTX, + currencySymbol: domain_1.SupportedCurrencyName.IOTX, chainId: 4689, type: ChainType.EVM, }); @@ -398,6 +417,7 @@ exports.CHAIN_INFO.set(Chain.GODWOKEN, { nonce: 0x16, decimals: Decimals_1.DecimalsByCurrency.CKB, currency: domain_1.SupportedCurrency.CKB, + currencySymbol: domain_1.SupportedCurrencyName.CKB, chainId: 868455272153094, type: ChainType.EVM, }); @@ -411,6 +431,7 @@ exports.CHAIN_INFO.set(Chain.GATECHAIN, { nonce: 0x17, decimals: Decimals_1.DecimalsByCurrency.GT, currency: domain_1.SupportedCurrency.GT, + currencySymbol: domain_1.SupportedCurrencyName.GT, chainId: 85, type: ChainType.EVM, }); @@ -423,6 +444,7 @@ exports.CHAIN_INFO.set(Chain.VECHAIN, { constructor: web3_1.web3HelperFactory, nonce: 0x19, currency: domain_1.SupportedCurrency.VET, + currencySymbol: domain_1.SupportedCurrencyName.VET, decimals: Decimals_1.DecimalsByCurrency.VET, chainId: 39, type: ChainType.EVM, @@ -433,6 +455,7 @@ exports.CHAIN_INFO.set(Chain.SECRET, { constructor: secret_1.secretHelperFactory, nonce: Chain.SECRET, currency: domain_1.SupportedCurrency.SCRT, + currencySymbol: domain_1.SupportedCurrencyName.SCRT, decimals: Decimals_1.DecimalsByCurrency.SCRT, type: ChainType.COSMOS, blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", @@ -448,32 +471,16 @@ exports.CHAIN_INFO.set(Chain.SOLANA, { constructor: solana_1.solanaHelper, nonce: Chain.SOLANA, currency: domain_1.SupportedCurrency.SOL, + currencySymbol: domain_1.SupportedCurrencyName.SOL, decimals: Decimals_1.DecimalsByCurrency.SOL, type: ChainType.SOLANA, }); -/*CHAIN_INFO.set(Chain.TON, { - name: "TON", - blockExplorerUrl: "", // TODO - constructor: tonHelper, - nonce: Chain.TON, - currency: SupportedCurrency.TON, - decimals: 1e9, - type: ChainType.TON, -}); -CHAIN_INFO.set(Chain.DFINITY, { - name: "DFINITY", - blockExplorerUrl: "", // TODO - constructor: dfinityHelper, - nonce: Chain.DFINITY, - currency: SupportedCurrency.ICP, - decimals: 1e8, - type: ChainType.DFINITY, -});*/ exports.CHAIN_INFO.set(Chain.HEDERA, { blockExplorerUrl: "https://hashscan.io/#/mainnet/transaction/", tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.HBAR, + currencySymbol: domain_1.SupportedCurrencyName.HBAR, decimals: Decimals_1.DecimalsByCurrency.HBAR, nonce: Chain.HEDERA, name: "Hedera", @@ -494,6 +501,7 @@ exports.CHAIN_INFO.set(Chain.SKALE, { "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", constructor: web3_erc20_1.web3ERC20HelperFactory, currency: domain_1.SupportedCurrency.ETH, + currencySymbol: domain_1.SupportedCurrencyName.ETH, decimals: Decimals_1.DecimalsByCurrency.ETH, tnChainId: 0x1482a7b2, nonce: Chain.SKALE, @@ -503,6 +511,7 @@ exports.CHAIN_INFO.set(Chain.DFINITY, { blockExplorerUrl: "", constructor: dfinity_1.dfinityHelper, currency: domain_1.SupportedCurrency.ICP, + currencySymbol: domain_1.SupportedCurrencyName.ICP, decimals: Decimals_1.DecimalsByCurrency.ICP, name: "DFINITY", nonce: Chain.DFINITY, @@ -513,6 +522,7 @@ exports.CHAIN_INFO.set(Chain.NEAR, { tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", constructor: near_1.nearHelperFactory, currency: domain_1.SupportedCurrency.NEAR, + currencySymbol: domain_1.SupportedCurrencyName.NEAR, decimals: Decimals_1.DecimalsByCurrency.NEAR, name: "NEAR", nonce: Chain.NEAR, @@ -523,6 +533,7 @@ exports.CHAIN_INFO.set(Chain.NEAR, { exports.CHAIN_INFO.set(Chain.MOONBEAM, { constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.GLMR, + currencySymbol: domain_1.SupportedCurrencyName.GLMR, decimals: Decimals_1.DecimalsByCurrency.GLMR, name: "MoonBeam", nonce: Chain.MOONBEAM, @@ -540,6 +551,7 @@ exports.CHAIN_INFO.set(Chain.ABEYCHAIN, { blockExplorerUrlAddr: "https://scan.abeychain.com/address/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.ABEY, + currencySymbol: domain_1.SupportedCurrencyName.ABEY, decimals: Decimals_1.DecimalsByCurrency.ABEY, name: "AbeyChain", nonce: Chain.ABEYCHAIN, @@ -549,6 +561,7 @@ exports.CHAIN_INFO.set(Chain.ABEYCHAIN, { exports.CHAIN_INFO.set(Chain.APTOS, { constructor: aptos_1.aptosHelper, currency: domain_1.SupportedCurrency.APTOS, + currencySymbol: domain_1.SupportedCurrencyName.APTOS, decimals: Decimals_1.DecimalsByCurrency.APTOS, name: "Aptos", nonce: Chain.APTOS, @@ -563,6 +576,7 @@ exports.CHAIN_INFO.set(Chain.TON, { name: "TON", constructor: ton_1.tonHelper, currency: domain_1.SupportedCurrency.TON, + currencySymbol: domain_1.SupportedCurrencyName.TON, decimals: Decimals_1.DecimalsByCurrency.TON, nonce: Chain.TON, type: ChainType.TON, @@ -574,6 +588,7 @@ exports.CHAIN_INFO.set(Chain.TON, { exports.CHAIN_INFO.set(Chain.CADUCEUS, { constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.CMP, + currencySymbol: domain_1.SupportedCurrencyName.CMP, decimals: Decimals_1.DecimalsByCurrency.CMP, name: "Caduceus", nonce: Chain.CADUCEUS, @@ -589,6 +604,7 @@ exports.CHAIN_INFO.set(Chain.OKC, { blockExplorerUrl: "https://www.oklink.com/okc/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.OKT, + currencySymbol: domain_1.SupportedCurrencyName.OKT, decimals: Decimals_1.DecimalsByCurrency.OKT, name: "OKC", nonce: Chain.OKC, @@ -603,6 +619,7 @@ exports.CHAIN_INFO.set(Chain.ARBITRUM, { blockExplorerUrl: "https://explorer.arbitrum.io/tx/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.ETH, + currencySymbol: domain_1.SupportedCurrencyName.ETH, decimals: Decimals_1.DecimalsByCurrency.ETH, name: "Arbitrum", nonce: Chain.ARBITRUM, @@ -617,6 +634,7 @@ exports.CHAIN_INFO.set(Chain.BITGERT, { blockExplorerUrl: "https://brisescan.com/tx/", constructor: web3_1.web3HelperFactory, currency: domain_1.SupportedCurrency.BRISE, + currencySymbol: domain_1.SupportedCurrencyName.BRISE, decimals: Decimals_1.DecimalsByCurrency.ETH, name: "Bitgert", nonce: Chain.BITGERT, @@ -627,4 +645,4 @@ exports.CHAIN_INFO.set(Chain.BITGERT, { tnBlockExplorerUrlAddr: "https://testnet-explorer.brisescan.com/address/", tnChainId: 64668, }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFBMkU7QUFDM0UsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFHZ0Q7QUFDaEQsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFBNkMsQ0FBQTtJQUM3QyxpQkFBaUI7SUFDakIsYUFBYTtBQUNmLENBQUMsRUFuQ1csYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFtQ3hCO0FBRUQsSUFBWSxhQWlDWDtBQWpDRCxXQUFZLGFBQWE7SUFDdkIsc0RBQXFDLENBQUE7SUFDckMsa0VBQWlELENBQUE7SUFDakQsMERBQXlDLENBQUE7SUFDekMsMkZBQTBFLENBQUE7SUFDMUUsb0VBQW1ELENBQUE7SUFDbkQsb0RBQW1DLENBQUE7SUFDbkMsa0RBQWlDLENBQUE7SUFDakMsa0RBQWlDLENBQUE7SUFDakMsZ0RBQStCLENBQUE7SUFDL0IscURBQW9DLENBQUE7SUFDcEMsdUVBQXNELENBQUE7SUFDdEQsOENBQTZCLENBQUE7SUFDN0Isd0RBQXVDLENBQUE7SUFDdkMscURBQW9DLENBQUE7SUFDcEMsNkRBQTRDLENBQUE7SUFDNUMsc0RBQXFDLENBQUE7SUFDckMsZ0VBQStDLENBQUE7SUFDL0Msc0RBQXFDLENBQUE7SUFDckMsOERBQTZDLENBQUE7SUFDN0MscUVBQW9ELENBQUE7SUFDcEQsdUZBQXNFLENBQUE7SUFDdEUsc0RBQXFDLENBQUE7SUFDckMsOERBQTZDLENBQUE7SUFDN0Msd0RBQXVDLENBQUE7SUFDdkMsNkRBQTRDLENBQUE7SUFDNUMsa0VBQWlELENBQUE7SUFDakQsd0VBQXVELENBQUE7SUFDdkQscURBQW9DLENBQUE7SUFDcEMsMERBQXlDLENBQUE7SUFDekMsNERBQTJDLENBQUE7SUFDM0MsK0RBQThDLENBQUE7SUFDOUMsaUJBQWlCO0FBQ25CLENBQUMsRUFqQ1csYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFpQ3hCO0FBeURELElBQWlCLEtBQUssQ0FxQ3JCO0FBckNELFdBQWlCLEtBQUs7SUFDUCxZQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsVUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFNBQUcsR0FBRyxDQUFDLENBQUM7SUFDUixjQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsZUFBUyxHQUFHLEdBQUcsQ0FBQztJQUNoQixhQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ1osWUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLFVBQUksR0FBRyxDQUFDLENBQUM7SUFDVCxVQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNoQixhQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNuQixTQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSTtJQUNmLFVBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ2hCLGNBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJO0lBQ3BCLFVBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2xCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLGVBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3ZCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3JCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFNBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2pCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3JCLFlBQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3BCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLFVBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2xCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLGVBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3ZCLFdBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ25CLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ3RCLFNBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLO0lBQ2pCLGNBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJO0lBQ3JCLGFBQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJO0FBQ25DLENBQUMsRUFyQ2dCLEtBQUssR0FBTCxhQUFLLEtBQUwsYUFBSyxRQXFDckI7QUF3QkQsSUFBWSxTQWFYO0FBYkQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCw4QkFBaUIsQ0FBQTtJQUNqQiwwQkFBYSxDQUFBO0lBQ2IsNEJBQWUsQ0FBQTtJQUNmLGtDQUFxQixDQUFBO0lBQ3JCLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLHdCQUFXLENBQUE7SUFDWCwwQkFBYSxDQUFBO0lBQ2IsOEJBQWlCLENBQUE7SUFDakIsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBYlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFhcEI7QUFFWSxRQUFBLFVBQVUsR0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQy9DLGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsV0FBVyxFQUFFLDRCQUFtQjtJQUNoQyxnQkFBZ0IsRUFBRSwyQ0FBMkM7SUFDN0Qsb0JBQW9CLEVBQUUsc0NBQXNDO0lBQzVELGtCQUFrQixFQUFFLG1EQUFtRDtJQUN2RSxzQkFBc0IsRUFBRSw4Q0FBOEM7SUFDdEUsUUFBUSxFQUFFLDBCQUFpQixDQUFDLElBQUk7SUFDaEMsY0FBYyxFQUFFLDhCQUFxQixDQUFDLElBQUk7SUFDMUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQ3ZCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsQ0FBQztJQUNSLE9BQU8sRUFBRSxHQUFHO0lBQ1osUUFBUSxFQUFFLDZCQUFRLENBQUMsRUFBRTtJQUNyQixnQkFBZ0IsRUFBRSxpQ0FBaUM7SUFDbkQsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsRUFBRTtJQUM5QixjQUFjLEVBQUUsOEJBQXFCLENBQUMsRUFBRTtJQUN4QyxJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUN4QixJQUFJLEVBQUUsS0FBSztJQUNYLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxvQkFBb0IsRUFBRSw4QkFBOEI7SUFDcEQsa0JBQWtCLEVBQUUsaUNBQWlDO0lBQ3JELHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxHQUFHO0lBQ3pDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0lBQzdCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxDQUFDO0lBQ1IsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsY0FBYyxFQUFFLDhCQUFxQixDQUFDLEdBQUc7SUFDekMsT0FBTyxFQUFFLENBQUM7SUFDVixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxvQkFBb0IsRUFBRSwrQkFBK0I7SUFDckQsa0JBQWtCLEVBQUUsaUNBQWlDO0lBQ3JELHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO0lBQzlCLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsb0JBQW9CLEVBQUUsK0JBQStCO0lBQ3JELHNCQUFzQixFQUFFLHVDQUF1QztJQUMvRCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxJQUFJO0lBQzFDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLEdBQUc7SUFDVixPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEtBQUs7SUFDeEIsZ0JBQWdCLEVBQUUsNkJBQTZCO0lBQy9DLGtCQUFrQixFQUFFLG9DQUFvQztJQUN4RCxvQkFBb0IsRUFBRSxrQ0FBa0M7SUFDeEQsc0JBQXNCLEVBQUUseUNBQXlDO0lBQ2pFLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEtBQUs7SUFDakMsY0FBYyxFQUFFLDhCQUFxQixDQUFDLEtBQUs7SUFDM0MsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsT0FBTyxFQUFFLElBQUk7SUFDYixnQkFBZ0IsRUFBRSx5QkFBeUI7SUFDM0Msb0JBQW9CLEVBQUUsOEJBQThCO0lBQ3BELHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxrQkFBa0IsRUFBRSxpQ0FBaUM7SUFDckQsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixjQUFjLEVBQUUsOEJBQXFCLENBQUMsR0FBRztJQUN6QyxJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtJQUN6QixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsUUFBUSxFQUFFLDZCQUFRLENBQUMsR0FBRztJQUN0QixnQkFBZ0IsRUFBRSw0Q0FBNEM7SUFDOUQsa0JBQWtCLEVBQUUsNENBQTRDO0lBQ2hFLG9CQUFvQixFQUFFLGdDQUFnQztJQUN0RCxzQkFBc0IsRUFBRSx3Q0FBd0M7SUFDaEUsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixjQUFjLEVBQUUsOEJBQXFCLENBQUMsR0FBRztJQUN6QyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7Q0FDckIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtJQUN6QixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsUUFBUSxFQUFFLDZCQUFRLENBQUMsSUFBSTtJQUN2QixPQUFPLEVBQUUsS0FBSztJQUNkLGdCQUFnQixFQUFFLGtEQUFrRDtJQUNwRSxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxJQUFJO0lBQzFDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLEdBQUc7SUFDVixRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLGdCQUFnQixFQUFFLGtDQUFrQztJQUNwRCxrQkFBa0IsRUFBRSwwQ0FBMEM7SUFDOUQsb0JBQW9CLEVBQUUsdUNBQXVDO0lBQzdELHNCQUFzQixFQUFFLCtDQUErQztJQUN2RSxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxHQUFHO0lBQ3pDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztJQUNuQixjQUFjLEVBQUU7UUFDZCw0Q0FBNEM7UUFDNUMsNENBQTRDO0tBQzdDO0NBQ0YsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUN4QixJQUFJLEVBQUUsVUFBVTtJQUNoQixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsT0FBTyxFQUFFLFVBQVU7SUFDbkIsZ0JBQWdCLEVBQUUsOEJBQThCO0lBQ2hELFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsY0FBYyxFQUFFLDhCQUFxQixDQUFDLEdBQUc7SUFDekMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsT0FBTyxFQUFFLElBQUk7SUFDYixnQkFBZ0IsRUFBRSx5Q0FBeUM7SUFDM0Qsb0JBQW9CLEVBQUUsOENBQThDO0lBQ3BFLGtCQUFrQixFQUFFLHlDQUF5QztJQUM3RCxzQkFBc0IsRUFBRSw4Q0FBOEM7SUFDdEUsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxjQUFjLEVBQUUsOEJBQXFCLENBQUMsSUFBSTtJQUMxQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtJQUM3QixJQUFJLEVBQUUsVUFBVTtJQUNoQixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZ0JBQWdCLEVBQUUsNkJBQTZCO0lBQy9DLGtCQUFrQixFQUFFLHFDQUFxQztJQUN6RCxvQkFBb0IsRUFBRSxrQ0FBa0M7SUFDeEQsc0JBQXNCLEVBQUUsMENBQTBDO0lBQ2xFLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxJQUFJO0lBQzFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFBLHlCQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsSUFBSSxFQUFFLFNBQVMsQ0FBQyxRQUFRO0NBQ3pCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZ0JBQWdCLEVBQUUsOEJBQThCO0lBQ2hELGtCQUFrQixFQUFFLG1DQUFtQztJQUN2RCxvQkFBb0IsRUFBRSxtQ0FBbUM7SUFDekQsc0JBQXNCLEVBQUUsd0NBQXdDO0lBQ2hFLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxJQUFJO0lBQzFDLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsT0FBTyxFQUFFLElBQUk7SUFDYixnQkFBZ0IsRUFBRSxXQUFXO0lBQzdCLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsY0FBYyxFQUFFLDhCQUFxQixDQUFDLEdBQUc7SUFDekMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7SUFDMUIsSUFBSSxFQUFFLE9BQU87SUFDYixLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsV0FBVyxFQUFFLDBCQUFrQjtJQUMvQixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixjQUFjLEVBQUUsOEJBQXFCLENBQUMsR0FBRztJQUN6QyxnQkFBZ0IsRUFBRSxrQkFBa0I7SUFDcEMsa0JBQWtCLEVBQUUsMkJBQTJCO0lBQy9DLHNCQUFzQixFQUFFLDJCQUEyQjtJQUNuRCxvQkFBb0IsRUFBRSxrQkFBa0I7SUFDeEMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLO0NBQ3RCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7SUFDMUIsSUFBSSxFQUFFLE9BQU87SUFDYixnQkFBZ0IsRUFBRSxnQ0FBZ0M7SUFDbEQsc0JBQXNCLEVBQUUsNkNBQTZDO0lBQ3JFLG9CQUFvQixFQUFFLHFDQUFxQztJQUMzRCxrQkFBa0IsRUFBRSx3Q0FBd0M7SUFDNUQsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLEdBQUc7SUFDL0IsY0FBYyxFQUFFLDhCQUFxQixDQUFDLEdBQUc7SUFDekMsT0FBTyxFQUFFLEdBQUc7SUFDWixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtJQUMzQixJQUFJLEVBQUUsUUFBUTtJQUNkLGdCQUFnQixFQUFFLDRCQUE0QjtJQUM5QyxrQkFBa0IsRUFBRSxxQ0FBcUM7SUFDekQsb0JBQW9CLEVBQUUsaUNBQWlDO0lBQ3ZELHNCQUFzQixFQUFFLHdDQUF3QztJQUNoRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU07SUFDbkIsUUFBUSxFQUFFLDZCQUFRLENBQUMsTUFBTTtJQUN6QixXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxNQUFNO0lBQ2xDLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxNQUFNO0lBQzVDLE9BQU8sRUFBRSxVQUFVO0lBQ25CLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO0lBQzFCLElBQUksRUFBRSxPQUFPO0lBQ2IsZ0JBQWdCLEVBQUUsMEJBQTBCO0lBQzVDLG9CQUFvQixFQUFFLCtCQUErQjtJQUNyRCxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsc0JBQXNCLEVBQUUsdUNBQXVDO0lBQy9ELEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLDZCQUFRLENBQUMsSUFBSTtJQUN2QixXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxJQUFJO0lBQzFDLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7SUFDN0IsSUFBSSxFQUFFLFVBQVU7SUFDaEIsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBQzFDLGtCQUFrQixFQUFFLG1DQUFtQztJQUN2RCxvQkFBb0IsRUFBRSw2QkFBNkI7SUFDbkQsc0JBQXNCLEVBQUUsd0NBQXdDO0lBQ2hFLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxHQUFHO0lBQ3pDLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO0lBQzlCLElBQUksRUFBRSxXQUFXO0lBQ2pCLGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsb0JBQW9CLEVBQUUsK0JBQStCO0lBQ3JELHNCQUFzQixFQUFFLHVDQUF1QztJQUMvRCxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLDZCQUFRLENBQUMsRUFBRTtJQUNyQixRQUFRLEVBQUUsMEJBQWlCLENBQUMsRUFBRTtJQUM5QixjQUFjLEVBQUUsOEJBQXFCLENBQUMsRUFBRTtJQUN4QyxPQUFPLEVBQUUsRUFBRTtJQUNYLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLElBQUksRUFBRSxTQUFTO0lBQ2Ysa0JBQWtCLEVBQUUsbURBQW1EO0lBQ3ZFLG9CQUFvQixFQUFFLHVDQUF1QztJQUM3RCxnQkFBZ0IsRUFBRSwyQ0FBMkM7SUFDN0Qsc0JBQXNCLEVBQUUsK0NBQStDO0lBQ3ZFLFdBQVcsRUFBRSx3QkFBaUI7SUFDOUIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixjQUFjLEVBQUUsOEJBQXFCLENBQUMsR0FBRztJQUN6QyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0NBQ3BCLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxFQUFFLFFBQVE7SUFDZCwrQkFBK0I7SUFDL0IsV0FBVyxFQUFFLDRCQUFtQjtJQUNoQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU07SUFDbkIsUUFBUSxFQUFFLDBCQUFpQixDQUFDLElBQUk7SUFDaEMsY0FBYyxFQUFFLDhCQUFxQixDQUFDLElBQUk7SUFDMUMsUUFBUSxFQUFFLDZCQUFRLENBQUMsSUFBSTtJQUN2QixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDdEIsZ0JBQWdCLEVBQUUsbURBQW1EO0lBQ3JFLG9CQUFvQixFQUFFLCtDQUErQztDQUN0RSxDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO0lBQzNCLElBQUksRUFBRSxRQUFRO0lBQ2QsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBQzFDLG9CQUFvQixFQUFFLDZCQUE2QjtJQUNuRCxrQkFBa0IsRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQ2pDLHlCQUF5QixFQUFFLGlCQUFpQjtJQUM5QyxzQkFBc0IsRUFBRSxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQzFDLDhCQUE4QixPQUFPLGlCQUFpQjtJQUN4RCxXQUFXLEVBQUUscUJBQVk7SUFDekIsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNO0lBQ25CLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxHQUFHO0lBQy9CLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxHQUFHO0lBQ3pDLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQ3ZCLENBQUMsQ0FBQztBQUVILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDM0IsZ0JBQWdCLEVBQUUsNENBQTRDO0lBQzlELGtCQUFrQixFQUFFLDRDQUE0QztJQUNoRSxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxJQUFJO0lBQ2hDLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxJQUFJO0lBQzFDLFFBQVEsRUFBRSw2QkFBUSxDQUFDLElBQUk7SUFDdkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNO0lBQ25CLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0lBQ3RCLG9CQUFvQixFQUFFLHdDQUF3QztJQUM5RCxzQkFBc0IsRUFBRSx3Q0FBd0M7Q0FDakUsQ0FBQyxDQUFDO0FBRUgsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtJQUMxQixJQUFJLEVBQUUsT0FBTztJQUNiLCtCQUErQjtJQUMvQixnQkFBZ0IsRUFDZCx3RUFBd0U7SUFDMUUsa0JBQWtCLEVBQ2hCLHNFQUFzRTtJQUN4RSxvQkFBb0IsRUFDbEIsNkVBQTZFO0lBQy9FLHNCQUFzQixFQUNwQiwyRUFBMkU7SUFDN0UsV0FBVyxFQUFFLG1DQUFzQjtJQUNuQyxRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixjQUFjLEVBQUUsOEJBQXFCLENBQUMsR0FBRztJQUN6QyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztJQUNsQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7Q0FDcEIsQ0FBQyxDQUFDO0FBRUgsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtJQUM1QixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLFdBQVcsRUFBRSx1QkFBYTtJQUMxQixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixjQUFjLEVBQUUsOEJBQXFCLENBQUMsR0FBRztJQUN6QyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPO0lBQ3BCLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTztDQUN4QixDQUFDLENBQUM7QUFFSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3pCLGdCQUFnQixFQUFFLGlEQUFpRDtJQUNuRSxrQkFBa0IsRUFBRSxpREFBaUQ7SUFDckUsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxjQUFjLEVBQUUsOEJBQXFCLENBQUMsSUFBSTtJQUMxQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO0lBQ2pCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtJQUNwQixvQkFBb0IsRUFBRSw2Q0FBNkM7SUFDbkUsc0JBQXNCLEVBQUUsNkNBQTZDO0NBQ3RFLENBQUMsQ0FBQztBQUVILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7SUFDN0IsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxjQUFjLEVBQUUsOEJBQXFCLENBQUMsSUFBSTtJQUMxQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtJQUNyQixPQUFPLEVBQUUsS0FBSztJQUNkLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztJQUNuQixvQkFBb0IsRUFBRSx1Q0FBdUM7SUFDN0Qsc0JBQXNCLEVBQUUsdUNBQXVDO0lBQy9ELGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxrQkFBa0IsRUFBRSxrQ0FBa0M7Q0FDdkQsQ0FBQyxDQUFDO0FBRUgsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtJQUM5QixrQkFBa0IsRUFBRSw0Q0FBNEM7SUFDaEUsc0JBQXNCLEVBQUUsaURBQWlEO0lBQ3pFLGdCQUFnQixFQUFFLGdDQUFnQztJQUNsRCxvQkFBb0IsRUFBRSxxQ0FBcUM7SUFDM0QsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsSUFBSTtJQUNoQyxjQUFjLEVBQUUsOEJBQXFCLENBQUMsSUFBSTtJQUMxQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxJQUFJO0lBQ3ZCLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztJQUN0QixPQUFPLEVBQUUsR0FBRztJQUNaLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztDQUNwQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO0lBQzFCLFdBQVcsRUFBRSxtQkFBVztJQUN4QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsS0FBSztJQUNqQyxjQUFjLEVBQUUsOEJBQXFCLENBQUMsS0FBSztJQUMzQyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxLQUFLO0lBQ3hCLElBQUksRUFBRSxPQUFPO0lBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO0lBQ2xCLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSztJQUNyQiwrQkFBK0I7SUFDL0IsZ0JBQWdCLEVBQUUscUNBQXFDO0lBQ3ZELG9CQUFvQixFQUFFLHlDQUF5QztJQUMvRCxrQkFBa0IsRUFBRSxxQ0FBcUM7SUFDekQsc0JBQXNCLEVBQUUseUNBQXlDO0NBQ2xFLENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7SUFDeEIsSUFBSSxFQUFFLEtBQUs7SUFDWCxXQUFXLEVBQUUsZUFBUztJQUN0QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixjQUFjLEVBQUUsOEJBQXFCLENBQUMsR0FBRztJQUN6QyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRztJQUNoQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7SUFDbkIsa0JBQWtCLEVBQUUsaUNBQWlDO0lBQ3JELGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxvQkFBb0IsRUFBRSw4QkFBOEI7SUFDcEQsc0JBQXNCLEVBQUUsc0NBQXNDO0NBQy9ELENBQUMsQ0FBQztBQUNILGtCQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7SUFDN0IsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixjQUFjLEVBQUUsOEJBQXFCLENBQUMsR0FBRztJQUN6QyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtJQUNyQixnQkFBZ0IsRUFBRSw4Q0FBOEM7SUFDaEUsa0JBQWtCLEVBQUUsNkNBQTZDO0lBQ2pFLG9CQUFvQixFQUFFLG1EQUFtRDtJQUN6RSxzQkFBc0IsRUFBRSxrREFBa0Q7SUFDMUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxNQUFNO0lBQ2YsU0FBUyxFQUFFLE1BQU07Q0FDbEIsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUN4QixnQkFBZ0IsRUFBRSw2QkFBNkI7SUFDL0MsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixjQUFjLEVBQUUsOEJBQXFCLENBQUMsR0FBRztJQUN6QyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxLQUFLO0lBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHO0lBQ2hCLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRztJQUNuQixPQUFPLEVBQUUsRUFBRTtJQUNYLG9CQUFvQixFQUFFLHdDQUF3QztJQUM5RCxrQkFBa0IsRUFBRSxrQ0FBa0M7SUFDdEQsc0JBQXNCLEVBQUUsNkNBQTZDO0lBQ3JFLFNBQVMsRUFBRSxFQUFFO0NBQ2QsQ0FBQyxDQUFDO0FBQ0gsa0JBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtJQUM3QixnQkFBZ0IsRUFBRSxrQ0FBa0M7SUFDcEQsV0FBVyxFQUFFLHdCQUFpQjtJQUM5QixRQUFRLEVBQUUsMEJBQWlCLENBQUMsR0FBRztJQUMvQixjQUFjLEVBQUUsOEJBQXFCLENBQUMsR0FBRztJQUN6QyxRQUFRLEVBQUUsNkJBQVEsQ0FBQyxHQUFHO0lBQ3RCLElBQUksRUFBRSxVQUFVO0lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUTtJQUNyQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUc7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxvQkFBb0IsRUFBRSx1Q0FBdUM7SUFDN0Qsa0JBQWtCLEVBQUUsZ0RBQWdEO0lBQ3BFLHNCQUFzQixFQUFFLHFEQUFxRDtJQUM3RSxTQUFTLEVBQUUsTUFBTTtDQUNsQixDQUFDLENBQUM7QUFDSCxrQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVCLGdCQUFnQixFQUFFLDJCQUEyQjtJQUM3QyxXQUFXLEVBQUUsd0JBQWlCO0lBQzlCLFFBQVEsRUFBRSwwQkFBaUIsQ0FBQyxLQUFLO0lBQ2pDLGNBQWMsRUFBRSw4QkFBcUIsQ0FBQyxLQUFLO0lBQzNDLFFBQVEsRUFBRSw2QkFBUSxDQUFDLEdBQUc7SUFDdEIsSUFBSSxFQUFFLFNBQVM7SUFDZixLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU87SUFDcEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2Isb0JBQW9CLEVBQUUsZ0NBQWdDO0lBQ3RELGtCQUFrQixFQUFFLDRDQUE0QztJQUNoRSxzQkFBc0IsRUFBRSxpREFBaUQ7SUFDekUsU0FBUyxFQUFFLEtBQUs7Q0FDakIsQ0FBQyxDQUFDIn0= diff --git a/dist/factory/factories.js b/dist/factory/factories.js index 7df89fd1d..d3b540ebf 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -4,19 +4,12 @@ var __createBinding = (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if ( - !desc || - ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) - ) { - desc = { - enumerable: true, - get: function () { - return m[k]; - }, - }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -224,7 +217,7 @@ var ChainFactoryConfigs; aptosParams: { rpcUrl: consts_1.TestNetRpcUri.APTOS, bridge: - "0x467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18", + "0x2b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58", xpnft: "XPNFT", notifier, feeMargin, @@ -1159,4 +1152,4 @@ var ChainFactoryConfigs; (ChainFactoryConfigs = exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) ); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0ErN0JuQztBQS83QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxZQUFZO0FBQ1osc0RBQThCO0FBQzlCLHNDQUFnRTtBQUNoRSxtQ0FBZ0M7QUFDaEMsOENBQWdEO0FBQ2hELDBDQUF5QztBQUN6QywwREFBMkQ7QUFDM0QsNERBQThDO0FBQzlDLGdFQUFzRDtBQUN0RCxnREFBNkM7QUFDN0MsMENBQTJDO0FBQzNDLGtEQUErQztBQUMvQyxvREFBNEI7QUFHNUI7Ozs7Ozs7O0lBUUk7QUFFSixvQ0FBb0M7QUFDcEMsa0RBQWtEO0FBQ2xELGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsS0FBSztBQUVMLE1BQU0sY0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBQ3JELE1BQU0sc0JBQXNCLEdBQzFCLGtEQUFrRCxDQUFDO0FBRXJELElBQWlCLG1CQUFtQixDQSs3Qm5DO0FBLzdCRCxXQUFpQixtQkFBbUI7SUFDckIsMkJBQU8sR0FBd0MsS0FBSyxJQUFJLEVBQUU7UUFDckUsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFBLHFCQUFVLEVBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVwRCxtQkFBbUI7UUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSx5QkFBUyxDQUFDLHNCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDekMsSUFBSSxlQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FDL0IsSUFBSSxJQUFJLENB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 diff --git a/dist/factory/index.d.ts b/dist/factory/index.d.ts index 019afe80f..9f1f3360f 100644 --- a/dist/factory/index.d.ts +++ b/dist/factory/index.d.ts @@ -42,7 +42,7 @@ import { InferNativeNft, InferSigner, } from "../type-utils"; -export type FullChain = TransferNftForeign< +export declare type FullChain = TransferNftForeign< Signer, RawNft, Resp @@ -54,14 +54,18 @@ export type FullChain = TransferNftForeign< XpNft: string; XpNft1155?: string; } & GetFeeMargins; -type FullChainBatch = FullChain & +declare type FullChainBatch = FullChain< + Signer, + RawNft, + Resp +> & TransferNftForeignBatch & UnfreezeForeignNftBatch & EstimateTxFeesBatch; /** * A type representing a chain factory. */ -export type ChainFactory = { +export declare type ChainFactory = { /** * Creates an helper factory for a given chain * @param chain: {@link ChainNonce} to create the helper for. @@ -283,7 +287,7 @@ export interface ChainParams { arbitrumParams: Web3Params; bitgertParams: Web3Params; } -export type MoralisNetwork = "mainnet" | "testnet"; +export declare type MoralisNetwork = "mainnet" | "testnet"; /** * A struct for the configuration of the library. * @field exchangeRateUri: The URI of the exchange rate service. diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map index a12a35029..86e92b898 100644 --- a/dist/factory/index.d.ts.map +++ b/dist/factory/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAE5B,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,OAAO,EAEP,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AAGZ,OAAO,EAAmB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAEL,cAAc,EACd,WAAW,EAEX,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,mBAAmB,EAEnB,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,UAAU,EAEV,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EAEZ,MAAM,eAAe,CAAC;AASvB,oBAAY,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,kBAAkB,CAC9D,MAAM,EACN,MAAM,EACN,IAAI,CACL,GACC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GACxC,cAAc,CAAC,MAAM,CAAC,GACtB,aAAa,GACb,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC;AAE1E,aAAK,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GACzE,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GAC7C,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GAC7C,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAE9B;;GAEG;AACH,oBAAY,YAAY,GAAG;IACzB;;;OAGG;IACH,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClE;;;;;;;;;;;OAWG;IAEH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAChC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAC3C,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,EACrB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,YAAY,GAAG,SAAS,EAC1C,QAAQ,CAAC,EAAE,SAAS,CAAC,KAAK,EAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,YAAY,GAAG,SAAS,GACzC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EACrC,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EACjD,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAChD,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAEnB,cAAc,CACZ,YAAY,EAAE,MAAM,CAAC,YAAY,EACjC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhB,sBAAsB,CACpB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAE/B,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAChC,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EACjD,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAChD,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EACpB,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,EACjC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,GAAG,CAAC,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,CAAC,EACP,KAAK,EAAE,aAAa,GAAG,CAAC,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EACnD,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC1C,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EACpC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EACxD,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC1C,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,CAAC,SAAS,UAAU,EAC/B,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GACzB,IAAI,CAAC;IACR,YAAY,CAAC,CAAC,SAAS,UAAU,EAC/B,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC;;;;;;;;;OASG;IACH,yBAAyB,CAAC,GAAG,EAC3B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,gBAAgB,EAC5C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,eAAe,CAAC,GAAG,EACjB,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,EAC/C,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEhE,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE/B,cAAc,CAAC,MAAM,EACnB,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,EACtD,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GACnB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,YAAY,CAAC,CAAC,SAAS,UAAU,EAC/B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;IACtB,aAAa,EAAE,UAAU,CAAC;IAC1B,eAAe,EAAE,UAAU,CAAC;IAC5B,aAAa,EAAE,UAAU,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,UAAU,CAAC;IAC1B,cAAc,EAAE,UAAU,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,UAAU,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,UAAU,CAAC;IACxB,aAAa,EAAE,UAAU,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,cAAc,EAAE,UAAU,CAAC;IAC3B,eAAe,EAAE,UAAU,CAAC;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,UAAU,CAAC;IACzB,WAAW,EAAE,eAAe,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,UAAU,CAAC;IAC3B,eAAe,EAAE,UAAU,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,UAAU,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC;IACtB,cAAc,EAAE,UAAU,CAAC;IAC3B,aAAa,EAAE,UAAU,CAAC;CAC3B;AAED,oBAAY,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C;AA0CD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAChC,YAAY,CAklBd"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js index 815ea8338..2221d816a 100644 --- a/dist/factory/index.js +++ b/dist/factory/index.js @@ -4,19 +4,12 @@ var __createBinding = (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if ( - !desc || - ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) - ) { - desc = { - enumerable: true, - get: function () { - return m[k]; - }, - }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -612,4 +605,4 @@ function ChainFactory(appConfig, chainParams) { }; } exports.ChainFactory = ChainFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUFpUmhCLFNBQVMsZ0JBQWdCLENBQUMsV0FBaUM7SUFDekQsTUFBTSxJQUFJLEdBQWEsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0NBQThDO0FBSzlDLHlDQUF1QjtBQUN2Qiw4Q0FBNEI7QUFFNUIsZ0VBQXFDO0FBQ3JDLDBCQVlZO0FBRVosa0RBQXNEO0FBQ3RELGdEQUE2RDtBQUM3RCxzREFBOEI7QUFDOUIsa0RBQTBCO0FBQzFCLG1DQUF1QztBQUN2Qyx5Q0FBbUM7QUFDbkMsNENBQStDO0FBQy9DLGtEQU02QjtBQVk3Qix1REFJbUM7QUFnQm5DLGlDQU1nQjtBQWlSaEIsU0FBUyxnQkFBZ0IsQ0FBQyxXQUFpQztJQUN6RCxNQUFNLElBQUksR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxD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 diff --git a/dist/heartbeat/index.d.ts b/dist/heartbeat/index.d.ts index f119e8d9b..f8964fc6a 100644 --- a/dist/heartbeat/index.d.ts +++ b/dist/heartbeat/index.d.ts @@ -1,5 +1,5 @@ import { StatusResp } from "./resp"; -export type BridgeHeartbeat = { +export declare type BridgeHeartbeat = { status(): Promise; }; export declare function bridgeHeartbeat(baseURL: string): BridgeHeartbeat; diff --git a/dist/heartbeat/index.d.ts.map b/dist/heartbeat/index.d.ts.map index a43856854..bde15c50d 100644 --- a/dist/heartbeat/index.d.ts.map +++ b/dist/heartbeat/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heartbeat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAWhE"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heartbeat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,oBAAY,eAAe,GAAG;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAWhE"} \ No newline at end of file diff --git a/dist/heartbeat/resp.d.ts b/dist/heartbeat/resp.d.ts index 978e3f406..6ffa07b84 100644 --- a/dist/heartbeat/resp.d.ts +++ b/dist/heartbeat/resp.d.ts @@ -1,16 +1,16 @@ -type DeathReason = { +declare type DeathReason = { component: "node" | "validator" | "balance"; error: string; }; -type ValidatorStatus = { +declare type ValidatorStatus = { status: "alive" | "dead"; death_reason?: DeathReason; }; -type ChainStatus = { +declare type ChainStatus = { bridge_alive: boolean; validators: ValidatorStatus[]; }; -export type StatusResp = { +export declare type StatusResp = { [chainNonce: string]: ChainStatus; }; export {}; diff --git a/dist/heartbeat/resp.d.ts.map b/dist/heartbeat/resp.d.ts.map index c3d1f3cf5..fa5f4b376 100644 --- a/dist/heartbeat/resp.d.ts.map +++ b/dist/heartbeat/resp.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"resp.d.ts","sourceRoot":"","sources":["../../src/heartbeat/resp.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC,CAAC"} \ No newline at end of file +{"version":3,"file":"resp.d.ts","sourceRoot":"","sources":["../../src/heartbeat/resp.ts"],"names":[],"mappings":"AAAA,aAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,aAAK,eAAe,GAAG;IACrB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,aAAK,WAAW,GAAG;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC,CAAC"} \ No newline at end of file diff --git a/dist/helpers/algorand.d.ts b/dist/helpers/algorand.d.ts index 5f03646e9..a74e8191c 100644 --- a/dist/helpers/algorand.d.ts +++ b/dist/helpers/algorand.d.ts @@ -12,10 +12,10 @@ import { import MyAlgoConnect from "@randlabs/myalgo-connect"; import { EvNotifier } from "../notifier"; import { BalanceCheck, FeeMargins, GetFeeMargins, GetTokenURI } from "./chain"; -type TxResp = { +declare type TxResp = { txId: string; }; -type AlgoNft = { +declare type AlgoNft = { "metadata-hash"?: string; name?: string; "unit-name"?: string; @@ -23,12 +23,12 @@ type AlgoNft = { creator: string; nftId: number; }; -type SignedTxn = { +declare type SignedTxn = { txID?: string; blob: string; }; -type Ledger = "MainNet" | "TestNet" | "any"; -type BrowserSigner = { +declare type Ledger = "MainNet" | "TestNet" | "any"; +declare type BrowserSigner = { accounts(args: { ledger: Ledger }): Promise< { address: string; @@ -41,14 +41,14 @@ type BrowserSigner = { ): Promise; send(info: { ledger: Ledger; tx: string }): Promise; }; -export type ClaimNftInfo = { +export declare type ClaimNftInfo = { appId: number; nftId: number; }; /** * Selected address & ledger must be given explicitly */ -export type AlgoSignerH = { +export declare type AlgoSignerH = { readonly algoSigner: BrowserSigner; readonly address: string; readonly ledger: Ledger; @@ -64,11 +64,11 @@ export declare function algoSignerWrapper( algod: algosdk.Algodv2, acc: algosdk.Account ): AlgoSignerH; -export type FullClaimNft = ClaimNftInfo & { +export declare type FullClaimNft = ClaimNftInfo & { name: string; uri: string; }; -export type AlgorandHelper = ChainNonceGet & +export declare type AlgorandHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & @@ -94,7 +94,7 @@ export type AlgorandHelper = ChainNonceGet & } & GetFeeMargins & BalanceCheck & GetTokenURI; -export type AlgorandParams = { +export declare type AlgorandParams = { algodApiKey: string; algodUri: string; indexerUri: string; diff --git a/dist/helpers/algorand.d.ts.map b/dist/helpers/algorand.d.ts.map index 1cc851159..a41513853 100644 --- a/dist/helpers/algorand.d.ts.map +++ b/dist/helpers/algorand.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"algorand.d.ts","sourceRoot":"","sources":["../../src/helpers/algorand.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAInD,OAAO,EACL,oBAAoB,EAEpB,aAAa,EACb,cAAc,EAEd,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/E,KAAK,MAAM,GAAG;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAE5C,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,YAAY,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,aAAa,CAQ/C;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,CAAC,OAAO,EACtB,GAAG,EAAE,OAAO,CAAC,OAAO,GACnB,WAAW,CAiCb;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,aAAa,GACxC,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,GAChD,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,GAChD,cAAc,CAAC,OAAO,CAAC,GACvB,eAAe,GAAG;IAChB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,aAAa,CACX,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,QAAQ,CACN,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/B,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5E,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;CACnE,GAAG,IAAI,CACN,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,EAC7D,aAAa,CACd,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GACrC,YAAY,GACZ,WAAW,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAWF,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAiZnE"} \ No newline at end of file +{"version":3,"file":"algorand.d.ts","sourceRoot":"","sources":["../../src/helpers/algorand.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/aptos/bridge_client_abis.d.ts.map b/dist/helpers/aptos/bridge_client_abis.d.ts.map index 115805f2f..01a6522d5 100644 --- a/dist/helpers/aptos/bridge_client_abis.d.ts.map +++ b/dist/helpers/aptos/bridge_client_abis.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"bridge_client_abis.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/bridge_client_abis.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,UAyB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAU/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAY/B,CAAC"} \ No newline at end of file +{"version":3,"file":"bridge_client_abis.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/bridge_client_abis.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,UAyB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAyB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAY/B,CAAC"} \ No newline at end of file diff --git a/dist/helpers/aptos/bridge_client_abis.js b/dist/helpers/aptos/bridge_client_abis.js index f6d24fed0..abe906c5e 100644 --- a/dist/helpers/aptos/bridge_client_abis.js +++ b/dist/helpers/aptos/bridge_client_abis.js @@ -31,15 +31,30 @@ exports.MAINNET_BRIDGE_ABIS = [ "011576616c69646174655f756e667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", ]; exports.TESTNET_BRIDGE_ABIS = [ - "010a696e697469616c697a65467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000010967726f75705f6b65790601", - "01057061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", - "0107756e7061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", - "01107570646174655f67726f75705f6b6579467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - "011676616c69646174655f77697468647261775f66656573467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - "011576616c69646174655f7472616e736665725f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", - "010c77697468647261775f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "010a667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "011576616c69646174655f756e667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/initialize.abi + "010a696e697469616c697a652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000010967726f75705f6b65790601", + // ../build/aptos-bridge/abis/bridge/pause.abi + "010570617573652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/unpause.abi + "0107756e70617573652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/update_group_key.abi + "01107570646174655f67726f75705f6b65792b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi + "011276616c69646174655f77686974656c6973742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi + "011276616c69646174655f626c61636b6c6973742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi + "011676616c69646174655f77697468647261775f666565732b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi + "011576616c69646174655f7472616e736665725f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi + "010c77697468647261775f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/freeze_nft.abi + "010a667265657a655f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi + "011576616c69646174655f756e667265657a655f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/create_collection.abi + "01116372656174655f636f6c6c656374696f6e2b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000050f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670016636f6c6c656374696f6e5f6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000e636f6c6c656374696f6e5f75726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020e6d75746174655f73657474696e670600", ]; exports.STAGING_BRIDGE_ABIS = [ "010a696e697469616c697a65813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000010967726f75705f6b65790601", @@ -54,4 +69,4 @@ exports.STAGING_BRIDGE_ABIS = [ "010a667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", "011576616c69646174655f756e667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", ]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2NsaWVudF9hYmlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvYXB0b3MvYnJpZGdlX2NsaWVudF9hYmlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsbURBQW1EO0lBQ25ELHNJQUFzSTtJQUN0SSw4Q0FBOEM7SUFDOUMsa0pBQWtKO0lBQ2xKLGdEQUFnRDtJQUNoRCxzSkFBc0o7SUFDdEoseURBQXlEO0lBQ3pELHdNQUF3TTtJQUN4TSwyREFBMkQ7SUFDM0Qsb1ZBQW9WO0lBQ3BWLDJEQUEyRDtJQUMzRCxvVkFBb1Y7SUFDcFYsK0RBQStEO0lBQy9ELDRMQUE0TDtJQUM1TCw2REFBNkQ7SUFDN0QsNG1DQUE0bUM7SUFDNW1DLHFEQUFxRDtJQUNyRCxzckJBQXNyQjtJQUN0ckIsMERBQTBEO0lBQzFELDRlQUE0ZTtJQUM1ZSxtREFBbUQ7SUFDbkQsa3JCQUFrckI7SUFDbHJCLDhEQUE4RDtJQUM5RCw0ZkFBNGY7Q0FDN2YsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsc0lBQXNJO0lBQ3RJLGtKQUFrSjtJQUNsSixzSkFBc0o7SUFDdEosd01BQXdNO0lBQ3hNLDRMQUE0TDtJQUM1TCx3MEJBQXcwQjtJQUN4MEIsc3JCQUFzckI7SUFDdHJCLGtyQkFBa3JCO0lBQ2xyQiw0ZkFBNGY7Q0FDN2YsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsc0lBQXNJO0lBQ3RJLGtKQUFrSjtJQUNsSixzSkFBc0o7SUFDdEosd01BQXdNO0lBQ3hNLG9WQUFvVjtJQUNwVixvVkFBb1Y7SUFDcFYsNExBQTRMO0lBQzVMLHcwQkFBdzBCO0lBQ3gwQixzckJBQXNyQjtJQUN0ckIsa3JCQUFrckI7SUFDbHJCLDRmQUE0ZjtDQUM3ZixDQUFDIn0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2NsaWVudF9hYmlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvYXB0b3MvYnJpZGdlX2NsaWVudF9hYmlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsbURBQW1EO0lBQ25ELHNJQUFzSTtJQUN0SSw4Q0FBOEM7SUFDOUMsa0pBQWtKO0lBQ2xKLGdEQUFnRDtJQUNoRCxzSkFBc0o7SUFDdEoseURBQXlEO0lBQ3pELHdNQUF3TTtJQUN4TSwyREFBMkQ7SUFDM0Qsb1ZBQW9WO0lBQ3BWLDJEQUEyRDtJQUMzRCxvVkFBb1Y7SUFDcFYsK0RBQStEO0lBQy9ELDRMQUE0TDtJQUM1TCw2REFBNkQ7SUFDN0QsNG1DQUE0bUM7SUFDNW1DLHFEQUFxRDtJQUNyRCxzckJBQXNyQjtJQUN0ckIsMERBQTBEO0lBQzFELDRlQUE0ZTtJQUM1ZSxtREFBbUQ7SUFDbkQsa3JCQUFrckI7SUFDbHJCLDhEQUE4RDtJQUM5RCw0ZkFBNGY7Q0FDN2YsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsbURBQW1EO0lBQ25ELHNJQUFzSTtJQUN0SSw4Q0FBOEM7SUFDOUMsa0pBQWtKO0lBQ2xKLGdEQUFnRDtJQUNoRCxzSkFBc0o7SUFDdEoseURBQXlEO0lBQ3pELHdNQUF3TTtJQUN4TSwyREFBMkQ7SUFDM0Qsb1ZBQW9WO0lBQ3BWLDJEQUEyRDtJQUMzRCxvVkFBb1Y7SUFDcFYsK0RBQStEO0lBQy9ELDRMQUE0TDtJQUM1TCw2REFBNkQ7SUFDN0QsdzBCQUF3MEI7SUFDeDBCLHFEQUFxRDtJQUNyRCxzckJBQXNyQjtJQUN0ckIsbURBQW1EO0lBQ25ELGtyQkFBa3JCO0lBQ2xyQiw4REFBOEQ7SUFDOUQsNGZBQTRmO0lBQzVmLDBEQUEwRDtJQUMxRCw0akJBQTRqQjtDQUM3akIsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsc0lBQXNJO0lBQ3RJLGtKQUFrSjtJQUNsSixzSkFBc0o7SUFDdEosd01BQXdNO0lBQ3hNLG9WQUFvVjtJQUNwVixvVkFBb1Y7SUFDcFYsNExBQTRMO0lBQzVMLHcwQkFBdzBCO0lBQ3gwQixzckJBQXNyQjtJQUN0ckIsa3JCQUFrckI7SUFDbHJCLDRmQUE0ZjtDQUM3ZixDQUFDIn0= diff --git a/dist/helpers/aptos/index.d.ts b/dist/helpers/aptos/index.d.ts index c82819d61..d9de3673b 100644 --- a/dist/helpers/aptos/index.d.ts +++ b/dist/helpers/aptos/index.d.ts @@ -9,10 +9,11 @@ import { TransferNftForeign, UnfreezeForeignNft, ValidateAddress, + BalanceCheck, } from "../chain"; import { AptosAccount, AptosClient, HexString } from "aptos"; import { EvNotifier } from "../../notifier"; -export type AptosNFT = { +export declare type AptosNFT = { collection_creator: string; collection_name: string; token_name: string; @@ -25,21 +26,21 @@ export type AptosNFT = { * @param uri The URI which the NFT points to * @param createCollection set this as true if u set collection as undefined. it will create a new collection. */ -export type AptosMintArgs = { +export declare type AptosMintArgs = { collection: string | undefined; name: string; description: string; uri: string; createCollection: boolean; }; -export type AptosClaimArgs = { +export declare type AptosClaimArgs = { sender: HexString; propertyVersion: number; collectionName: string; creator: string; name: string; }; -export type AptosHelper = ChainNonceGet & +export declare type AptosHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & @@ -48,8 +49,11 @@ export type AptosHelper = ChainNonceGet & } & GetFeeMargins & MintNft & GetProvider & - ClaimNFT; -export type AptosParams = { + ClaimNFT & + BalanceCheck & { + setPetraSigner(signer: any): void; + }; +export declare type AptosParams = { feeMargin: FeeMargins; rpcUrl: string; xpnft: string; diff --git a/dist/helpers/aptos/index.d.ts.map b/dist/helpers/aptos/index.d.ts.map index 918f85eb5..657564749 100644 --- a/dist/helpers/aptos/index.d.ts.map +++ b/dist/helpers/aptos/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAK1E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,aAAa,GACrC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,cAAc,CAAC,QAAQ,CAAC,GACxB,eAAe,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,aAAa,GACjB,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,GAC5C,WAAW,CAAC,WAAW,CAAC,GACxB,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAChC,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,GACR,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAiIpC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EAGV,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,oBAAY,QAAQ,GAAG;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,oBAAY,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,oBAAY,cAAc,GAAG;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,WAAW,GAAG,aAAa,GACrC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,cAAc,CAAC,QAAQ,CAAC,GACxB,eAAe,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,aAAa,GACjB,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,GAC5C,WAAW,CAAC,WAAW,CAAC,GACxB,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC9C,YAAY,GAAG;IACb,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CACnC,CAAC;AAEJ,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAChC,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,GACR,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAgJpC"} \ No newline at end of file diff --git a/dist/helpers/aptos/index.js b/dist/helpers/aptos/index.js index 2fb991e46..6f8d73c4b 100644 --- a/dist/helpers/aptos/index.js +++ b/dist/helpers/aptos/index.js @@ -24,6 +24,7 @@ async function aptosHelper({ bridge, network ); + const coinClient = new aptos_1.CoinClient(client); return { getNonce() { return consts_1.Chain.APTOS; @@ -31,6 +32,17 @@ async function aptosHelper({ getFeeMargin() { return feeMargin; }, + setPetraSigner(signer) { + //imposter + client.generateSignSubmitTransaction = async function (_, payload) { + return signer.signAndSubmitTransaction(payload); + }; + }, + balance: async (address) => { + return new bignumber_js_1.default( + (await coinClient.checkBalance(address)).toString() + ); + }, async validateAddress(adr) { try { await client.getAccount(adr); @@ -74,6 +86,7 @@ async function aptosHelper({ return client; }, async mintNft(owner, options) { + //AptosAccount.fromAptosAccountObject({""}) const tc = new aptos_1.TokenClient(client); if (options.createCollection) { await tc.createCollection( @@ -85,7 +98,7 @@ async function aptosHelper({ ); const response = await tc.createToken( owner, - "XPNFT", + "UMT", options.name, options.description, 1, @@ -150,4 +163,4 @@ async function aptosHelper({ }; } exports.aptosHelper = aptosHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9hcHRvcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFhQSxpQ0FBMEU7QUFFMUUseUNBQXFDO0FBQ3JDLGdFQUFxQztBQUNyQyxtREFBK0M7QUFxRHhDLEtBQUssVUFBVSxXQUFXLENBQUMsRUFDaEMsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixPQUFPLEdBQ0s7SUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLG1CQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSw0QkFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFL0QsT0FBTztRQUNMLFFBQVE7WUFDTixPQUFPLGNBQUssQ0FBQyxLQUFLLENBQUM7UUFDckIsQ0FBQztRQUNELFlBQVk7WUFDVixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHO1lBQ3ZCLElBQUk7Z0JBQ0YsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QixPQUFPLElBQUksQ0FBQzthQUNiO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxLQUFLLENBQUM7YUFDZDtRQUNILENBQUM7UUFDRCxLQUFLLEVBQUUsS0FBSztRQUNaLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVM7WUFDekQsT0FBTyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVM7WUFDekQsT0FBTyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNE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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9hcHRvcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFjQSxpQ0FNZTtBQUVmLHlDQUFxQztBQUNyQyxnRUFBcUM7QUFDckMsbURBQStDO0FBd0R4QyxLQUFLLFVBQVUsV0FBVyxDQUFDLEVBQ2hDLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxHQUNLO0lBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXZDLE1BQU0sWUFBWSxHQUFHLElBQUksNEJBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxQyxPQUFPO1FBQ0wsUUFBUTtZQUNOLE9BQU8sY0FBSyxDQUFDLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsWUFBWTtZQUNWLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxjQUFjLENBQUMsTUFBVztZQUN4QixVQUFVO1lBQ1YsTUFBTSxDQUFDLDZCQUE2QixHQUFHLEtBQUssV0FDMUMsQ0FBZSxFQUNmLE9BQVk7Z0JBRVosT0FBTyxNQUFNLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDekIsT0FBTyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxNQUFNLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFDRCxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUc7WUFDdkIsSUFBSTtnQkFDRixNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQztRQUNELEtBQUssRUFBRSxLQUFLO1FBRVosS0FBSyxDQUFDLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUztZQUN6RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsS0FBSyxDQUFDLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUztZQUN6RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixNQUFNLEVBQ04sV0FBVyxFQUNYLEVBQUUsRUFDRixFQUFFLEVBQ0YsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFVO1lBRVYsTUFBTSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUMsU0FBUyxDQUMxQyxNQUFNLEVBQ04saUJBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFDekIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQ3BCLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDekIsV0FBVyxFQUNYLEVBQUUsRUFDRixRQUFRLENBQ1QsQ0FBQztZQUNGLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMvQyxNQUFNLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELFdBQVc7WUFDVCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTztZQUMxQiwyQ0FBMkM7WUFDM0MsTUFBTSxFQUFFLEdBQUcsSUFBSSxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFO2dCQUM1QixNQUFNLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FDdkIsS0FBSyxFQUNMLEtBQUssRUFDTCw2Q0FBNkMsRUFDN0MscUJBQXFCLEVBQ3JCLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUM1QixDQUFDO2dCQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FDbkMsS0FBSyxFQUNMLEtBQUssRUFDTCxPQUFPLENBQUMsSUFBSSxFQUNaLE9BQU8sQ0FBQyxXQUFXLEVBQ25CLENBQUMsRUFDRCxPQUFPLENBQUMsR0FBRyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsQ0FDVixDQUFDO2dCQUNGLE9BQU8sUUFBUSxDQUFDO2FBQ2pCO2lCQUFNO2dCQUNMLE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FDbkMsS0FBSyxFQUNMLE9BQU8sQ0FBQyxVQUFXLEVBQ25CLE9BQU8sQ0FBQyxJQUFJLEVBQ1osT0FBTyxDQUFDLFdBQVcsRUFDbkIsQ0FBQyxFQUNELE9BQU8sQ0FBQyxHQUFHLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxDQUNWLENBQUM7Z0JBQ0YsT0FBTyxRQUFRLENBQUM7YUFDakI7UUFDSCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTTtZQUMzQixNQUFNLFdBQVcsR0FBRyxJQUFJLG1CQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUMsVUFBVSxDQUN4QyxNQUFNLEVBQ04sTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsT0FBTyxFQUNkLE1BQU0sQ0FBQyxjQUFjLEVBQ3JCLE1BQU0sQ0FBQyxJQUFJLEVBQ1gsTUFBTSxDQUFDLGVBQWUsQ0FDdkIsQ0FBQztZQUNGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSztZQUNwRCxNQUFNLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQyxXQUFXLENBQzVDLE1BQU0sRUFDTixpQkFBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFDeEIsaUJBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFDekIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQ3BCLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEVBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDekIsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUNmLEVBQUUsRUFDRixFQUFFLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUM3QixDQUFDO1lBQ0YsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9DLE1BQU0sUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUF2SkQsa0NBdUpDIn0= diff --git a/dist/helpers/chain.d.ts b/dist/helpers/chain.d.ts index 825a0d92f..15dd9c53e 100644 --- a/dist/helpers/chain.d.ts +++ b/dist/helpers/chain.d.ts @@ -4,7 +4,7 @@ import { ChainNonce } from "../type-utils"; /** * NFT Info */ -export type NftInfo = { +export declare type NftInfo = { readonly uri: string; readonly native: Raw; readonly collectionIdent: string; @@ -154,7 +154,7 @@ export interface EstimateTxFeesBatch { metadatas: NftInfo[] ): Promise; } -export type WhitelistCheck = { +export declare type WhitelistCheck = { isNftWhitelisted(nft: NftInfo): Promise; }; export interface GetProvider { diff --git a/dist/helpers/chain.d.ts.map b/dist/helpers/chain.d.ts.map index 6ca5445bd..7891c87c2 100644 --- a/dist/helpers/chain.d.ts.map +++ b/dist/helpers/chain.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/helpers/chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/helpers/chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/dfinity/dfinity.d.ts b/dist/helpers/dfinity/dfinity.d.ts index 701923752..2794e4eeb 100644 --- a/dist/helpers/dfinity/dfinity.d.ts +++ b/dist/helpers/dfinity/dfinity.d.ts @@ -15,16 +15,16 @@ import { UnfreezeForeignNft, ValidateAddress, } from "../chain"; -export type DfinitySigner = Identity; -export type DfinityNft = { +export declare type DfinitySigner = Identity; +export declare type DfinityNft = { canisterId: string; tokenId: string; }; -export type DfinityMintArgs = { +export declare type DfinityMintArgs = { canisterId?: string; uri: string; }; -export type User = +export declare type User = | { principal: Principal; } @@ -35,7 +35,7 @@ export interface MintRequest { to: User; metadata: [] | [Array]; } -export type DfinityHelper = ChainNonceGet & +export declare type DfinityHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & @@ -50,7 +50,7 @@ export type DfinityHelper = ChainNonceGet & MintNft & { nftList(owner: string, contract: string): Promise[]>; }; -export type DfinityParams = { +export declare type DfinityParams = { agent: HttpAgent; bridgeContract: Principal; xpnftId: Principal; diff --git a/dist/helpers/dfinity/dfinity.d.ts.map b/dist/helpers/dfinity/dfinity.d.ts.map index efb495904..88ea7d404 100644 --- a/dist/helpers/dfinity/dfinity.d.ts.map +++ b/dist/helpers/dfinity/dfinity.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"dfinity.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/dfinity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,QAAQ,EACR,cAAc,EACf,MAAM,gBAAgB,CAAC;AAexB,OAAO,EAAE,iBAAiB,EAAuB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAyBF,MAAM,MAAM,IAAI,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC7E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAChC;AAcD,MAAM,MAAM,aAAa,GAAG,aAAa,GACvC,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,cAAc,CAAC,UAAU,CAAC,GAC1B,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CACxC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EACzD,aAAa,CACd,GACD,YAAY,GACZ,aAAa,GACb,OAAO,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG;IACxD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;CAC1E,CAAC;AAEJ,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,aAAa,CAAC,CA8NxB"} \ No newline at end of file +{"version":3,"file":"dfinity.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/dfinity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,QAAQ,EACR,cAAc,EACf,MAAM,gBAAgB,CAAC;AAexB,OAAO,EAAE,iBAAiB,EAAuB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,UAAU,CAAC;AAIlB,oBAAY,aAAa,GAAG,QAAQ,CAAC;AAErC,oBAAY,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAyBF,oBAAY,IAAI,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC7E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAChC;AAcD,oBAAY,aAAa,GAAG,aAAa,GACvC,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,cAAc,CAAC,UAAU,CAAC,GAC1B,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CACxC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EACzD,aAAa,CACd,GACD,YAAY,GACZ,aAAa,GACb,OAAO,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG;IACxD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;CAC1E,CAAC;AAEJ,oBAAY,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,aAAa,CAAC,CA8NxB"} \ No newline at end of file diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts index 57f9ae847..702c0e82b 100644 --- a/dist/helpers/elrond.d.ts +++ b/dist/helpers/elrond.d.ts @@ -35,15 +35,15 @@ import { ValidateAddress, } from ".."; import { EvNotifier } from "../notifier"; -type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; +declare type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; /** * Information associated with an ESDT Token */ -export type EsdtTokenInfo = { +export declare type EsdtTokenInfo = { readonly balance: 1 | string; readonly tokenIdentifier: string; }; -type BEsdtNftInfo = { +declare type BEsdtNftInfo = { readonly attributes?: string[]; readonly creator: string; readonly name: string; @@ -54,11 +54,11 @@ type BEsdtNftInfo = { /** * Information associated with an ESDT NFT */ -export type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; +export declare type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; /** * arguments required to issue an NFT */ -export type NftIssueArgs = { +export declare type NftIssueArgs = { readonly identifier: string; readonly uris: Array; readonly name: string; @@ -99,7 +99,7 @@ export interface IssueESDTNFT { * ESDTRoleNFTBurn: Allow burning NFTs * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) */ -export type ESDTRole = +export declare type ESDTRole = | "ESDTRoleNFTCreate" | "ESDTRoleNFTBurn" | "ESDTRoleNFTAddQuantity"; @@ -143,7 +143,7 @@ export interface ElrondRawUnsignedTxn { /** * Traits implemented by this module */ -export type ElrondHelper = BalanceCheck & +export declare type ElrondHelper = BalanceCheck & TransferNftForeign & UnfreezeForeignNft & TransferNftForeignBatch & diff --git a/dist/helpers/elrond.d.ts.map b/dist/helpers/elrond.d.ts.map index c9093644b..07e725763 100644 --- a/dist/helpers/elrond.d.ts.map +++ b/dist/helpers/elrond.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"elrond.d.ts","sourceRoot":"","sources":["../../src/helpers/elrond.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"elrond.d.ts","sourceRoot":"","sources":["../../src/helpers/elrond.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAEL,OAAO,EAOP,iBAAiB,EAEjB,OAAO,EAIP,WAAW,EAKX,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,YAAY,EAEZ,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAElB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,WAAW,EACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAEL,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAEhB,WAAW,EACX,iBAAiB,EACjB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,aAAK,YAAY,GAAG,OAAO,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAgBxE;;GAEG;AACH,oBAAY,aAAa,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,aAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AAIF;;GAEG;AACH,oBAAY,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAEvD;;GAEG;AACH,oBAAY,YAAY,GAAG;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;OAWG;IACH,YAAY,CACV,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,wBAAwB,EAAE,OAAO,GAAG,SAAS,GAC5C,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED;;;;;;GAMG;AACH,oBAAY,QAAQ,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,wBAAwB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,WAAW,CACT,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,QAAQ,EAAE,GAChB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,qBAAqB,CACnB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,WAAW,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,oBAAY,YAAY,GAAG,YAAY,GACrC,kBAAkB,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,GAC1D,kBAAkB,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,GAC1D,uBAAuB,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,GAC/D,uBAAuB,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,GAC/D,YAAY,GACZ,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG;IAC5C,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACpD,GAAG,aAAa,GACjB,eAAe,GACf,aAAa,CAAC,WAAW,CAAC,GAC1B,WAAW,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,GACzD,cAAc,CAAC,WAAW,CAAC,GAC3B,mBAAmB,CAAC,WAAW,CAAC,GAChC,iBAAiB,CAAC,WAAW,EAAE,oBAAoB,CAAC,GACpD,gBAAgB,GAChB,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GAAG;IACjD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpE,GAAG,iBAAiB,GACrB,WAAW,CAAC;AAEd;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,YAAY,CAAC,CAgoBvB"} \ No newline at end of file diff --git a/dist/helpers/near.d.ts b/dist/helpers/near.d.ts index 99a5fdb0e..c4386e117 100644 --- a/dist/helpers/near.d.ts +++ b/dist/helpers/near.d.ts @@ -15,12 +15,12 @@ import { BalanceCheck, PreTransfer, } from "./chain"; -type NearTxResult = [FinalExecutionOutcome, any]; -type NearPreTransferArgs = { +declare type NearTxResult = [FinalExecutionOutcome, any]; +declare type NearPreTransferArgs = { to: string; receiver: string; }; -export type NearParams = { +export declare type NearParams = { readonly networkId: string; readonly nonce: number; readonly rpcUrl: string; @@ -31,11 +31,11 @@ export type NearParams = { readonly walletUrl: string; readonly helperUrl: string; }; -export type NearNFT = { +export declare type NearNFT = { tokenId: string; contract: string; }; -export type Metadata = { +export declare type Metadata = { title?: string; description?: string; media?: string; @@ -59,7 +59,7 @@ interface BrowserMethods { getContract(signer: Account, _contract: string): Promise; getUserMinter(keypair: string, address: string): Promise; } -export type NearHelper = ChainNonceGet & +export declare type NearHelper = ChainNonceGet & BalanceCheck & TransferNftForeign & UnfreezeForeignNft & diff --git a/dist/helpers/near.d.ts.map b/dist/helpers/near.d.ts.map index 2dc06b636..f74ef6fc1 100644 --- a/dist/helpers/near.d.ts.map +++ b/dist/helpers/near.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/helpers/near.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/helpers/near.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/secret.d.ts b/dist/helpers/secret.d.ts index 937ab831b..d706a7e96 100644 --- a/dist/helpers/secret.d.ts +++ b/dist/helpers/secret.d.ts @@ -15,7 +15,7 @@ import { UnfreezeForeignNft, ValidateAddress, } from "./chain"; -export type SecretNftInfo = { +export declare type SecretNftInfo = { contract: string; contractHash: string; chainId: string; @@ -23,12 +23,12 @@ export type SecretNftInfo = { vk: string; metadata: Extension | undefined; }; -export type SecretMintArgs = { +export declare type SecretMintArgs = { url: string; contract?: SecretContract; }; -type SecretSigner = SecretNetworkClient; -export type SecretHelper = TransferNftForeign< +declare type SecretSigner = SecretNetworkClient; +export declare type SecretHelper = TransferNftForeign< SecretSigner, SecretNftInfo, TxResponse @@ -59,11 +59,11 @@ export type SecretHelper = TransferNftForeign< nft: NftInfo ): Promise; }; -export type SecretContract = { +export declare type SecretContract = { contractAddress: string; codeHash: string; }; -export type SecretParams = { +export declare type SecretParams = { rpcUrl: string; chainId: string; notifier: EvNotifier; diff --git a/dist/helpers/secret.d.ts.map b/dist/helpers/secret.d.ts.map index 67297ee75..2d8231bee 100644 --- a/dist/helpers/secret.d.ts.map +++ b/dist/helpers/secret.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/helpers/secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,mBAAmB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EACL,SAAS,EAEV,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG,mBAAmB,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAC3C,YAAY,EACZ,aAAa,EACb,UAAU,CACX,GACC,kBAAkB,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,GAC3D,eAAe,GACf,cAAc,CAAC,aAAa,CAAC,GAC7B,aAAa,GACb,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,GAC3D,YAAY,GACZ,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC,mBAAmB,CAAC,GACpE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG;IAClD,OAAO,CACL,KAAK,EAAE,MAAM,EAEb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrC,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,mBAAmB,CACjB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAQF,wBAAsB,mBAAmB,CACvC,CAAC,EAAE,YAAY,GACd,OAAO,CAAC,YAAY,CAAC,CAmQvB"} \ No newline at end of file +{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/helpers/secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,mBAAmB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EACL,SAAS,EAEV,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,oBAAY,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC;AACF,oBAAY,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,aAAK,YAAY,GAAG,mBAAmB,CAAC;AAMxC,oBAAY,YAAY,GAAG,kBAAkB,CAC3C,YAAY,EACZ,aAAa,EACb,UAAU,CACX,GACC,kBAAkB,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,GAC3D,eAAe,GACf,cAAc,CAAC,aAAa,CAAC,GAC7B,aAAa,GACb,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,GAC3D,YAAY,GACZ,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC,mBAAmB,CAAC,GACpE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG;IAClD,OAAO,CACL,KAAK,EAAE,MAAM,EAEb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrC,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,mBAAmB,CACjB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAEJ,oBAAY,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAQF,wBAAsB,mBAAmB,CACvC,CAAC,EAAE,YAAY,GACd,OAAO,CAAC,YAAY,CAAC,CAmQvB"} \ No newline at end of file diff --git a/dist/helpers/solana/idl.d.ts b/dist/helpers/solana/idl.d.ts index 5e3e77a39..4b53ae552 100644 --- a/dist/helpers/solana/idl.d.ts +++ b/dist/helpers/solana/idl.d.ts @@ -1,4 +1,4 @@ -export type XpBridge = { +export declare type XpBridge = { version: "0.1.0"; name: "xp_bridge"; instructions: [ diff --git a/dist/helpers/solana/idl.d.ts.map b/dist/helpers/solana/idl.d.ts.map index 0abc367e8..eb7db4f2e 100644 --- a/dist/helpers/solana/idl.d.ts.map +++ b/dist/helpers/solana/idl.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/idl.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/idl.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/solana/index.d.ts b/dist/helpers/solana/index.d.ts index 593d9f3fc..b61ebba2e 100644 --- a/dist/helpers/solana/index.d.ts +++ b/dist/helpers/solana/index.d.ts @@ -13,14 +13,14 @@ import { BalanceCheck, MintNft, } from "../chain"; -export type SolanaSigner = Wallet; -export type SolanaNft = { +export declare type SolanaSigner = Wallet; +export declare type SolanaNft = { nftMint: string; }; -type SolanaMintArgs = { +declare type SolanaMintArgs = { uri: string; }; -export type SolanaHelper = ChainNonceGet & +export declare type SolanaHelper = ChainNonceGet & BalanceCheck & MintNft & TransferNftForeign & @@ -32,7 +32,7 @@ export type SolanaHelper = ChainNonceGet & XpNft: string; } & GetFeeMargins & GetProvider; -export type SolanaParams = { +export declare type SolanaParams = { endpoint: string; bridgeContractAddr: string; xpnftAddr: string; diff --git a/dist/helpers/solana/index.d.ts.map b/dist/helpers/solana/index.d.ts.map index 5a884f5d9..c906f3033 100644 --- a/dist/helpers/solana/index.d.ts.map +++ b/dist/helpers/solana/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,MAAM,EAKP,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACL,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACR,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,aAAa,GACtC,YAAY,GACZ,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC7C,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,cAAc,CAAC,SAAS,CAAC,GACzB,eAAe,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GACrC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE1B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AA4DF,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuN5E"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,MAAM,EAKP,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACL,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACR,MAAM,UAAU,CAAC;AAGlB,oBAAY,YAAY,GAAG,MAAM,CAAC;AAElC,oBAAY,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,aAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,YAAY,GAAG,aAAa,GACtC,YAAY,GACZ,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC7C,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,cAAc,CAAC,SAAS,CAAC,GACzB,eAAe,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GACrC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE1B,oBAAY,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AA4DF,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuN5E"} \ No newline at end of file diff --git a/dist/helpers/tezos.d.ts b/dist/helpers/tezos.d.ts index 59818aad1..b17c82785 100644 --- a/dist/helpers/tezos.d.ts +++ b/dist/helpers/tezos.d.ts @@ -20,20 +20,20 @@ import { UnfreezeForeignNftBatch, EstimateTxFeesBatch, } from "./chain"; -type TezosSigner = WalletProvider | Signer; -export type TezosNftInfo = { +declare type TezosSigner = WalletProvider | Signer; +export declare type TezosNftInfo = { contract: string; token_id: string; amt: number; }; -type TezosMintArgs = { +declare type TezosMintArgs = { identifier: string; contract: string; uri: string; to: string; amt: number; }; -export type TezosHelper = TransferNftForeign< +export declare type TezosHelper = TransferNftForeign< TezosSigner, TezosNftInfo, string @@ -63,7 +63,7 @@ export type TezosHelper = TransferNftForeign< } & GetFeeMargins & WhitelistCheck & GetTokenURI; -export type TezosParams = { +export declare type TezosParams = { Tezos: TezosToolkit; notifier: EvNotifier; xpnftAddress: string; diff --git a/dist/helpers/tezos.d.ts.map b/dist/helpers/tezos.d.ts.map index 6462846c6..92475acf3 100644 --- a/dist/helpers/tezos.d.ts.map +++ b/dist/helpers/tezos.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/helpers/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAOL,MAAM,EACN,YAAY,EAIZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAC1C,WAAW,EACX,YAAY,EACZ,MAAM,CACP,GACC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAC3C,YAAY,GACZ,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GACrD,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,mBAAmB,CAAC,YAAY,CAAC,GACjC,eAAe,GACf,cAAc,CAAC,YAAY,CAAC,GAC5B,aAAa,GACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG;IAC1E,mBAAmB,CACjB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,GAAG;IACF,gBAAgB,CACd,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,GACjB,cAAc,CAAC,YAAY,CAAC,GAC5B,WAAW,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA+OpC"} \ No newline at end of file +{"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/helpers/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAOL,MAAM,EACN,YAAY,EAIZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,aAAK,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3C,oBAAY,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,aAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,WAAW,GAAG,kBAAkB,CAC1C,WAAW,EACX,YAAY,EACZ,MAAM,CACP,GACC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAC3C,YAAY,GACZ,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GACrD,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,mBAAmB,CAAC,YAAY,CAAC,GACjC,eAAe,GACf,cAAc,CAAC,YAAY,CAAC,GAC5B,aAAa,GACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG;IAC1E,mBAAmB,CACjB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,GAAG;IACF,gBAAgB,CACd,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,GACjB,cAAc,CAAC,YAAY,CAAC,GAC5B,WAAW,CAAC;AAEd,oBAAY,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA+OpC"} \ No newline at end of file diff --git a/dist/helpers/tezos.js b/dist/helpers/tezos.js index 74c7e8f66..dd8ff421a 100644 --- a/dist/helpers/tezos.js +++ b/dist/helpers/tezos.js @@ -4,19 +4,12 @@ var __createBinding = (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if ( - !desc || - ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) - ) { - desc = { - enumerable: true, - get: function () { - return m[k]; - }, - }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -246,4 +239,4 @@ async function tezosHelperFactory({ }; } exports.tezosHelperFactory = tezosHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV6b3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90ZXpvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBCQVdZO0FBQ1osOENBYTBCO0FBRTFCLHNEQUF3QztBQUN4QyxnRUFBcUM7QUFvRTlCLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxFQUN2QyxLQUFLLEVBQ0wsUUFBUSxFQUNSLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLFNBQVMsR0FDRztJQUNaLE1BQU0sV0FBVyxHQUFHLENBQUMsVUFBb0IsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDOUQsT0FBTyxJQUFJLHNCQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQztJQUVGLEtBQUssVUFBVSxZQUFZLENBQ3pCLE1BQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLEVBRThDLEVBQzlDLE1BQTRCO1FBRTVCLElBQUksZUFBZSxJQUFJLE1BQU0sRUFBRTtZQUM3QixLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFaEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVwRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUIsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE9BQVEsRUFBMkIsQ0FBQyxJQUFJLENBQUM7U0FDMUM7YUFBTTtZQUNMLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxNQUFN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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV6b3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90ZXpvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMEJBV1k7QUFDWiw4Q0FhMEI7QUFFMUIsc0RBQXdDO0FBQ3hDLGdFQUFxQztBQW9FOUIsS0FBSyxVQUFVLGtCQUFrQixDQUFDLEVBQ3ZDLEtBQUssRUFDTCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1YsU0FBUyxHQUNHO0lBQ1osTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFvQixFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUM5RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0lBRUYsS0FBSyxVQUFVLFlBQVksQ0FDekIsTUFBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsRUFFOEMsRUFDOUMsTUFBNEI7UUFFNUIsSUFBSSxlQUFlLElBQUksTUFBTSxFQUFFO1lBQzdCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVoQyxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXBELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQixNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsT0FBUSxFQUEyQixDQUFDLElBQUksQ0FBQztTQUMxQzthQUFNO1lBQ0wsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FB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 diff --git a/dist/helpers/ton.d.ts b/dist/helpers/ton.d.ts index 4ee883afc..3933f63ca 100644 --- a/dist/helpers/ton.d.ts +++ b/dist/helpers/ton.d.ts @@ -14,17 +14,17 @@ import { } from "./chain"; import { PreTransfer } from ".."; import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; -export type TonSigner = { +export declare type TonSigner = { wallet?: TonWallet; accIdx: number; }; -export type TonWalletProvider = { +export declare type TonWalletProvider = { isTonWallet: boolean; send(method: string, params?: any[]): Promise; onSuccess?(): Promise; on(eventName: string, handler: (...data: any[]) => any): void; }; -export type TonArgs = { +export declare type TonArgs = { wallet: TonhubConnector & TonWalletProvider & Function; config: { seed?: string; @@ -33,10 +33,10 @@ export type TonArgs = { [x: string]: any; }; }; -export type TonNft = { +export declare type TonNft = { nftItemAddr: string; }; -export type TonHelper = ChainNonceGet & +export declare type TonHelper = ChainNonceGet & BalanceCheck & PreTransfer & TransferNftForeign & @@ -50,7 +50,7 @@ export type TonHelper = ChainNonceGet & tonWalletWrapper: (args: TonArgs) => TonSigner; tonKeeperWrapper: (args: TonArgs) => TonSigner; } & GetFeeMargins; -export type TonParams = { +export declare type TonParams = { tonweb: TonWeb; notifier: EvNotifier; bridgeAddr: string; @@ -58,7 +58,7 @@ export type TonParams = { xpnftAddr: string; feeMargin: FeeMargins; }; -type MethodMap = { +declare type MethodMap = { ton_requestAccounts: [undefined, string]; ton_sendTransaction: [ { @@ -70,11 +70,11 @@ type MethodMap = { ]; ton_getBalance: [undefined, string]; }; -type ResponseUnionType = boolean & +declare type ResponseUnionType = boolean & TonhubTransactionResponse & { hash: string; }; -type TonWallet = { +declare type TonWallet = { send( method: M, params: MethodMap[M][0] diff --git a/dist/helpers/ton.d.ts.map b/dist/helpers/ton.d.ts.map index 5752b1e90..0f4ca60ca 100644 --- a/dist/helpers/ton.d.ts.map +++ b/dist/helpers/ton.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts index 7a10600f1..06b4aa487 100644 --- a/dist/helpers/tron.d.ts +++ b/dist/helpers/tron.d.ts @@ -22,14 +22,14 @@ import { } from ".."; import { ChainNonceGet } from ".."; import { EvNotifier } from "../notifier"; -type TronSender = string | undefined; -export type MinterRes = { +declare type TronSender = string | undefined; +export declare type MinterRes = { minter: string; xpnft: string; xpnft1155: string; whitelist: string[]; }; -export type BaseTronHelper = BalanceCheck & +export declare type BaseTronHelper = BalanceCheck & MintNft & { /** * @@ -56,7 +56,7 @@ export type BaseTronHelper = BalanceCheck & whitelist?: string[] ): Promise; }; -export type TronHelper = BaseTronHelper & +export declare type TronHelper = BaseTronHelper & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & diff --git a/dist/helpers/tron.d.ts.map b/dist/helpers/tron.d.ts.map index a2f186c72..626b89f0a 100644 --- a/dist/helpers/tron.d.ts.map +++ b/dist/helpers/tron.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/helpers/tron.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/helpers/tron.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index be577b1db..64120ca0d 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -48,7 +48,7 @@ import { EvNotifier } from "../notifier"; /** * Information required to perform NFT transfers in this chain */ -export type EthNftInfo = { +export declare type EthNftInfo = { chainId: string; tokenId: string; owner: string; @@ -64,7 +64,7 @@ export type EthNftInfo = { * owner: Owner of the newly minted nft * uri: uri of the nft */ -export type MintArgs = { +export declare type MintArgs = { contract: string; uri: string; }; @@ -84,11 +84,11 @@ export interface Approve { gasPrice?: ethers.BigNumber ): Promise; } -type NullableCustomData = Record | undefined; +declare type NullableCustomData = Record | undefined; /** * Base util traits */ -export type BaseWeb3Helper = BalanceCheck & +export declare type BaseWeb3Helper = BalanceCheck & /** * Mint an nft in the given ERC1155 smart contract * @@ -108,13 +108,13 @@ export type BaseWeb3Helper = BalanceCheck & options: MintArgs ): Promise; }; -type ExtraArgs = { +declare type ExtraArgs = { gasPrice: ethers.BigNumber; }; /** * Traits implemented by this module */ -export type Web3Helper = BaseWeb3Helper & +export declare type Web3Helper = BaseWeb3Helper & TransferNftForeign & UnfreezeForeignNft & TransferNftForeignBatch & @@ -164,7 +164,7 @@ export interface Web3Params { nonce: ChainNonce; feeMargin: FeeMargins; } -type NftMethodVal = { +declare type NftMethodVal = { freeze: "freezeErc1155" | "freezeErc721"; validateUnfreeze: "validateUnfreezeErc1155" | "validateUnfreezeErc721"; umt: typeof Erc1155Minter__factory | typeof UserNftMinter__factory; @@ -184,8 +184,8 @@ type NftMethodVal = { gasPrice: ethers.BigNumberish | undefined ) => Promise; }; -type EthNftMethodVal = NftMethodVal; -type NftMethodMap = Record< +declare type EthNftMethodVal = NftMethodVal; +declare type NftMethodMap = Record< "ERC1155" | "ERC721", EthNftMethodVal | EthNftMethodVal >; diff --git a/dist/helpers/web3.d.ts.map b/dist/helpers/web3.d.ts.map index ca6c0e18c..09625ab04 100644 --- a/dist/helpers/web3.d.ts.map +++ b/dist/helpers/web3.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/helpers/web3.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/helpers/web3.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/web3_erc20.d.ts b/dist/helpers/web3_erc20.d.ts index b506e5dbb..6d86156bd 100644 --- a/dist/helpers/web3_erc20.d.ts +++ b/dist/helpers/web3_erc20.d.ts @@ -8,7 +8,7 @@ import { BaseWeb3Helper, Web3Helper, Web3Params } from ".."; export declare function baseWeb3HelperFactory( provider: Provider ): Promise; -export type Web3ERC20Params = Web3Params & { +export declare type Web3ERC20Params = Web3Params & { paymentTokenAddress: string; }; export declare function web3ERC20HelperFactory( diff --git a/dist/helpers/web3_erc20.d.ts.map b/dist/helpers/web3_erc20.d.ts.map index 502a20a95..e73a938d8 100644 --- a/dist/helpers/web3_erc20.d.ts.map +++ b/dist/helpers/web3_erc20.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"web3_erc20.d.ts","sourceRoot":"","sources":["../../src/helpers/web3_erc20.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAOzE,OAAO,EACL,cAAc,EAMd,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AAGZ;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CAqYrB"} \ No newline at end of file +{"version":3,"file":"web3_erc20.d.ts","sourceRoot":"","sources":["../../src/helpers/web3_erc20.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAOzE,OAAO,EACL,cAAc,EAMd,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AAGZ;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,oBAAY,eAAe,GAAG,UAAU,GAAG;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CAqYrB"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index a4bdf69ff..2fd192d9e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4,19 +4,12 @@ var __createBinding = (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if ( - !desc || - ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) - ) { - desc = { - enumerable: true, - get: function () { - return m[k]; - }, - }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -39,4 +32,4 @@ __exportStar(require("./emitter"), exports); __exportStar(require("./factory"), exports); __exportStar(require("./consts"), exports); __exportStar(require("./config"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQyxtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLDRDQUEwQjtBQUMxQiwyQ0FBeUI7QUFDekIsMkNBQXlCIn0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0IsaURBQStCO0FBQy9CLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6QiwyQ0FBeUIifQ== diff --git a/dist/notifier/index.d.ts b/dist/notifier/index.d.ts index ea992af4a..b1e7086fb 100644 --- a/dist/notifier/index.d.ts +++ b/dist/notifier/index.d.ts @@ -1,17 +1,17 @@ -export type EvNotifier = ReturnType; +export declare type EvNotifier = ReturnType; export declare function evNotifier(url: string): { notifyWeb3( fromChain: number, fromHash: string, - actionId?: string, - type?: string, - toChain?: number, - txFees?: string, - senderAddress?: string, - targetAddress?: string, - nftUri?: string, - tokenId?: string, - contract?: string + actionId?: string | undefined, + type?: string | undefined, + toChain?: number | undefined, + txFees?: string | undefined, + senderAddress?: string | undefined, + targetAddress?: string | undefined, + nftUri?: string | undefined, + tokenId?: string | undefined, + contract?: string | undefined ): Promise; notifyTron(txHash: string): Promise; notifyElrond( diff --git a/dist/notifier/index.d.ts.map b/dist/notifier/index.d.ts.map index 78444595a..8ab65439c 100644 --- a/dist/notifier/index.d.ts.map +++ b/dist/notifier/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM,aACL,MAAM,SACV,MAAM,YACH,MAAM,WACP,MAAM,kBACC,MAAM,kBACN,MAAM,WACb,MAAM,YACL,MAAM,aACL,MAAM;uBAgBM,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAOjD"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,oBAAY,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM;uBAyBO,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAOjD"} \ No newline at end of file diff --git a/dist/socket.d.ts b/dist/socket.d.ts index 50d6a1134..c6b1ba0ec 100644 --- a/dist/socket.d.ts +++ b/dist/socket.d.ts @@ -3,7 +3,7 @@ import { ClaimNftInfo } from "./helpers/algorand"; /** * Tracker for cross chain transaction */ -export type TxnSocketHelper = { +export declare type TxnSocketHelper = { /** * * @param chain Nonce of the target chain @@ -12,7 +12,7 @@ export type TxnSocketHelper = { */ waitTxHash(chain: number, action_id: string): Promise; }; -export type AlgorandSocketHelper = { +export declare type AlgorandSocketHelper = { waitAlgorandNft( sourceChain: number, receiver: string, @@ -21,7 +21,7 @@ export type AlgorandSocketHelper = { claimNfts(receiver: string): Promise; cleanNfts(owner: string): Promise; }; -type DbClaimInfo = { +declare type DbClaimInfo = { receiver: string; app_id: string; nft_id: string; diff --git a/dist/socket.d.ts.map b/dist/socket.d.ts.map index a37ab3a5b..e097b3e0a 100644 --- a/dist/socket.d.ts.map +++ b/dist/socket.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BlD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC;AAsFF,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,cAAc,CAAC,GAChD,eAAe,GAAG,oBAAoB,CA0DxC"} \ No newline at end of file +{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BlD;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/D,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC;AAsFF,aAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,cAAc,CAAC,GAChD,eAAe,GAAG,oBAAoB,CA0DxC"} \ No newline at end of file diff --git a/dist/type-utils.d.ts b/dist/type-utils.d.ts index 8aa85ee2c..be8931598 100644 --- a/dist/type-utils.d.ts +++ b/dist/type-utils.d.ts @@ -1,35 +1,35 @@ import { MetaMap, TransferNftForeign } from "."; -type TransferNftChain = TransferNftForeign< +declare type TransferNftChain = TransferNftForeign< Signer, RawNft, Resp >; -export type ChainNonce = keyof MetaMap; -export type InferChainParam = MetaMap[K][1]; -export type InferChainH = MetaMap[K][0]; -export type InferSigner = K extends TransferNftChain< +export declare type ChainNonce = keyof MetaMap; +export declare type InferChainParam = MetaMap[K][1]; +export declare type InferChainH = MetaMap[K][0]; +export declare type InferSigner = K extends TransferNftChain< infer S, unknown, unknown > ? S : never; -export type InferNativeNft = K extends TransferNftChain< +export declare type InferNativeNft = K extends TransferNftChain< any, infer RawNft, any > ? RawNft : never; -export type ParamMap = { +export declare type ParamMap = { set(k: T, v: InferChainParam | undefined): void; get(k: T): InferChainParam | undefined; }; -export type HelperMap = Map< +export declare type HelperMap = Map< K, InferChainH | undefined >; -export type Mutable = { +export declare type Mutable = { -readonly [Key in keyof Type]: Type[Key]; }; export {}; diff --git a/dist/type-utils.d.ts.map b/dist/type-utils.d.ts.map index 3d672292e..5a3f73e6d 100644 --- a/dist/type-utils.d.ts.map +++ b/dist/type-utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAEhD,KAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,kBAAkB,CAC9D,MAAM,EACN,MAAM,EACN,IAAI,CACL,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACrD,MAAM,CAAC,EACP,OAAO,EACP,OAAO,CACR,GACG,CAAC,GACD,KAAK,CAAC;AAEV,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACxD,GAAG,EACH,MAAM,MAAM,EACZ,GAAG,CACJ,GACG,MAAM,GACN,KAAK,CAAC;AAEV,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACzE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,GAAG,CAC/C,CAAC,EACD,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAC3B,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI;IAC1B,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;CACzC,CAAC"} \ No newline at end of file +{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAEhD,aAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,kBAAkB,CAC9D,MAAM,EACN,MAAM,EACN,IAAI,CACL,CAAC;AAEF,oBAAY,UAAU,GAAG,MAAM,OAAO,CAAC;AAEvC,oBAAY,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,oBAAY,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,oBAAY,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACrD,MAAM,CAAC,EACP,OAAO,EACP,OAAO,CACR,GACG,CAAC,GACD,KAAK,CAAC;AAEV,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACxD,GAAG,EACH,MAAM,MAAM,EACZ,GAAG,CACJ,GACG,MAAM,GACN,KAAK,CAAC;AAEV,oBAAY,QAAQ,GAAG;IACrB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACzE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACjE,CAAC;AAEF,oBAAY,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,GAAG,CAC/C,CAAC,EACD,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAC3B,CAAC;AAEF,oBAAY,OAAO,CAAC,IAAI,IAAI;IAC1B,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;CACzC,CAAC"} \ No newline at end of file diff --git a/src/consts.ts b/src/consts.ts index fe54571e6..1f9c8bdfa 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -6,7 +6,10 @@ import { import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; -import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; +import { + SupportedCurrency, + SupportedCurrencyName, +} from "crypto-exchange-rate/dist/model/domain"; import { DecimalsByCurrency as Decimals } from "crypto-exchange-rate/dist/model/domain/Decimals"; import { AlgorandParams, @@ -208,6 +211,7 @@ interface ChainData { chainId?: number; tnChainId?: number; currency: SupportedCurrency; + currencySymbol: SupportedCurrencyName; type: string; blockExplorerUrlAddr?: string; tnBlockExplorerUrlAddr?: string | ((tx: string) => string); @@ -245,6 +249,7 @@ CHAIN_INFO.set(Chain.ELROND, { tnBlockExplorerUrl: "https://testnet-explorer.elrond.com/transactions/", tnBlockExplorerUrlAddr: "https://testnet-explorer.elrond.com/address/", currency: SupportedCurrency.EGLD, + currencySymbol: SupportedCurrencyName.EGLD, type: ChainType.ELROND, }); CHAIN_INFO.set(Chain.HECO, { @@ -255,6 +260,7 @@ CHAIN_INFO.set(Chain.HECO, { blockExplorerUrl: "https://testnet.hecoinfo.com/tx", constructor: web3HelperFactory, currency: SupportedCurrency.HT, + currencySymbol: SupportedCurrencyName.HT, type: ChainType.EVM, }); CHAIN_INFO.set(Chain.BSC, { @@ -268,12 +274,14 @@ CHAIN_INFO.set(Chain.BSC, { tnBlockExplorerUrlAddr: "https://testnet.bscscan.com/address/", constructor: web3HelperFactory, currency: SupportedCurrency.BNB, + currencySymbol: SupportedCurrencyName.BNB, type: ChainType.EVM, }); CHAIN_INFO.set(Chain.ETHEREUM, { name: "Ethereum", nonce: 5, currency: SupportedCurrency.ETH, + currencySymbol: SupportedCurrencyName.ETH, chainId: 5, decimals: Decimals.ETH, blockExplorerUrl: "https://etherscan.io/tx/", @@ -294,6 +302,7 @@ CHAIN_INFO.set(Chain.AVALANCHE, { tnBlockExplorerUrlAddr: "https://testnet.snowtrace.io/address/", constructor: web3HelperFactory, currency: SupportedCurrency.AVAX, + currencySymbol: SupportedCurrencyName.AVAX, type: ChainType.EVM, }); CHAIN_INFO.set(Chain.POLYGON, { @@ -307,6 +316,7 @@ CHAIN_INFO.set(Chain.POLYGON, { tnBlockExplorerUrlAddr: "https://mumbai.polygonscan.com/address/", constructor: web3HelperFactory, currency: SupportedCurrency.MATIC, + currencySymbol: SupportedCurrencyName.MATIC, type: ChainType.EVM, }); CHAIN_INFO.set(Chain.FANTOM, { @@ -320,6 +330,7 @@ CHAIN_INFO.set(Chain.FANTOM, { tnBlockExplorerUrl: "https://testnet.ftmscan.com/tx/", constructor: web3HelperFactory, currency: SupportedCurrency.FTM, + currencySymbol: SupportedCurrencyName.FTM, type: ChainType.EVM, }); CHAIN_INFO.set(Chain.TRON, { @@ -332,6 +343,7 @@ CHAIN_INFO.set(Chain.TRON, { tnBlockExplorerUrlAddr: "https://shasta.tronscan.org/#/address/", constructor: tronHelperFactory, currency: SupportedCurrency.TRX, + currencySymbol: SupportedCurrencyName.TRX, type: ChainType.TRON, }); CHAIN_INFO.set(Chain.CELO, { @@ -342,6 +354,7 @@ CHAIN_INFO.set(Chain.CELO, { blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", constructor: web3HelperFactory, currency: SupportedCurrency.CELO, + currencySymbol: SupportedCurrencyName.CELO, type: ChainType.EVM, }); CHAIN_INFO.set(Chain.HARMONY, { @@ -355,6 +368,7 @@ CHAIN_INFO.set(Chain.HARMONY, { tnBlockExplorerUrlAddr: "https://explorer.testnet.harmony.one/address/", constructor: web3HelperFactory, currency: SupportedCurrency.ONE, + currencySymbol: SupportedCurrencyName.ONE, type: ChainType.EVM, rejectUnfreeze: [ "0xb90Dc9e354001e6260DE670EDD6aBaDb890C6aC9", @@ -369,6 +383,7 @@ CHAIN_INFO.set(Chain.ONT, { blockExplorerUrl: "https://explorer.pops.one/tx", constructor: web3HelperFactory, currency: SupportedCurrency.ONT, + currencySymbol: SupportedCurrencyName.ONT, type: ChainType.EVM, }); CHAIN_INFO.set(Chain.XDAI, { @@ -382,6 +397,7 @@ CHAIN_INFO.set(Chain.XDAI, { tnBlockExplorerUrlAddr: "https://blockscout.com/xdai/testnet/address/", constructor: web3HelperFactory, currency: SupportedCurrency.XDAI, + currencySymbol: SupportedCurrencyName.XDAI, type: ChainType.EVM, }); CHAIN_INFO.set(Chain.ALGORAND, { @@ -394,6 +410,7 @@ CHAIN_INFO.set(Chain.ALGORAND, { blockExplorerUrlAddr: "https://algoexplorer.io/address/", tnBlockExplorerUrlAddr: "https://testnet.algoexplorer.io/address/", currency: SupportedCurrency.ALGO, + currencySymbol: SupportedCurrencyName.ALGO, constructor: (p) => Promise.resolve(algorandHelper(p)), type: ChainType.ALGORAND, }); @@ -406,7 +423,7 @@ CHAIN_INFO.set(Chain.FUSE, { tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", blockExplorerUrlAddr: "https://explorer.fuse.io/address/", tnBlockExplorerUrlAddr: "https://explorer.fusespark.io/address/", - + currencySymbol: SupportedCurrencyName.FUSE, currency: SupportedCurrency.FUSE, constructor: web3HelperFactory, type: ChainType.EVM, @@ -419,6 +436,7 @@ CHAIN_INFO.set(Chain.UNIQUE, { blockExplorerUrl: "CANT FIND", constructor: web3HelperFactory, currency: SupportedCurrency.OPL, + currencySymbol: SupportedCurrencyName.OPL, type: ChainType.EVM, }); CHAIN_INFO.set(Chain.TEZOS, { @@ -427,6 +445,7 @@ CHAIN_INFO.set(Chain.TEZOS, { decimals: Decimals.XTZ, constructor: tezosHelperFactory, currency: SupportedCurrency.XTZ, + currencySymbol: SupportedCurrencyName.XTZ, blockExplorerUrl: "https://tzkt.io/", tnBlockExplorerUrl: "https://ghostnet.tzkt.io/", tnBlockExplorerUrlAddr: "https://ghostnet.tzkt.io/", @@ -443,6 +462,7 @@ CHAIN_INFO.set(Chain.VELAS, { decimals: Decimals.VLX, constructor: web3HelperFactory, currency: SupportedCurrency.VLX, + currencySymbol: SupportedCurrencyName.VLX, chainId: 111, type: ChainType.EVM, }); @@ -456,6 +476,7 @@ CHAIN_INFO.set(Chain.AURORA, { decimals: Decimals.AURORA, constructor: web3HelperFactory, currency: SupportedCurrency.AURORA, + currencySymbol: SupportedCurrencyName.AURORA, chainId: 1313161554, type: ChainType.EVM, }); @@ -469,6 +490,7 @@ CHAIN_INFO.set(Chain.IOTEX, { decimals: Decimals.IOTX, constructor: web3HelperFactory, currency: SupportedCurrency.IOTX, + currencySymbol: SupportedCurrencyName.IOTX, chainId: 4689, type: ChainType.EVM, }); @@ -482,12 +504,12 @@ CHAIN_INFO.set(Chain.GODWOKEN, { nonce: 0x16, decimals: Decimals.CKB, currency: SupportedCurrency.CKB, + currencySymbol: SupportedCurrencyName.CKB, chainId: 868455272153094, type: ChainType.EVM, }); CHAIN_INFO.set(Chain.GATECHAIN, { name: "GateChain", - blockExplorerUrl: "https://gatescan.org/tx/", tnBlockExplorerUrl: "https://gatescan.org/testnet/tx/", blockExplorerUrlAddr: "https://gatescan.org/address/", @@ -496,6 +518,7 @@ CHAIN_INFO.set(Chain.GATECHAIN, { nonce: 0x17, decimals: Decimals.GT, currency: SupportedCurrency.GT, + currencySymbol: SupportedCurrencyName.GT, chainId: 85, type: ChainType.EVM, }); @@ -508,6 +531,7 @@ CHAIN_INFO.set(Chain.VECHAIN, { constructor: web3HelperFactory, nonce: 0x19, currency: SupportedCurrency.VET, + currencySymbol: SupportedCurrencyName.VET, decimals: Decimals.VET, chainId: 39, type: ChainType.EVM, @@ -518,6 +542,7 @@ CHAIN_INFO.set(Chain.SECRET, { constructor: secretHelperFactory, nonce: Chain.SECRET, currency: SupportedCurrency.SCRT, + currencySymbol: SupportedCurrencyName.SCRT, decimals: Decimals.SCRT, type: ChainType.COSMOS, blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", @@ -534,33 +559,17 @@ CHAIN_INFO.set(Chain.SOLANA, { constructor: solanaHelper, nonce: Chain.SOLANA, currency: SupportedCurrency.SOL, + currencySymbol: SupportedCurrencyName.SOL, decimals: Decimals.SOL, type: ChainType.SOLANA, }); -/*CHAIN_INFO.set(Chain.TON, { - name: "TON", - blockExplorerUrl: "", // TODO - constructor: tonHelper, - nonce: Chain.TON, - currency: SupportedCurrency.TON, - decimals: 1e9, - type: ChainType.TON, -}); -CHAIN_INFO.set(Chain.DFINITY, { - name: "DFINITY", - blockExplorerUrl: "", // TODO - constructor: dfinityHelper, - nonce: Chain.DFINITY, - currency: SupportedCurrency.ICP, - decimals: 1e8, - type: ChainType.DFINITY, -});*/ CHAIN_INFO.set(Chain.HEDERA, { blockExplorerUrl: "https://hashscan.io/#/mainnet/transaction/", tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", constructor: web3HelperFactory, currency: SupportedCurrency.HBAR, + currencySymbol: SupportedCurrencyName.HBAR, decimals: Decimals.HBAR, nonce: Chain.HEDERA, name: "Hedera", @@ -582,6 +591,7 @@ CHAIN_INFO.set(Chain.SKALE, { "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", constructor: web3ERC20HelperFactory, currency: SupportedCurrency.ETH, + currencySymbol: SupportedCurrencyName.ETH, decimals: Decimals.ETH, tnChainId: 0x1482a7b2, nonce: Chain.SKALE, @@ -592,6 +602,7 @@ CHAIN_INFO.set(Chain.DFINITY, { blockExplorerUrl: "", // TODO constructor: dfinityHelper, currency: SupportedCurrency.ICP, + currencySymbol: SupportedCurrencyName.ICP, decimals: Decimals.ICP, name: "DFINITY", nonce: Chain.DFINITY, @@ -603,6 +614,7 @@ CHAIN_INFO.set(Chain.NEAR, { tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", constructor: nearHelperFactory, currency: SupportedCurrency.NEAR, + currencySymbol: SupportedCurrencyName.NEAR, decimals: Decimals.NEAR, name: "NEAR", nonce: Chain.NEAR, @@ -614,6 +626,7 @@ CHAIN_INFO.set(Chain.NEAR, { CHAIN_INFO.set(Chain.MOONBEAM, { constructor: web3HelperFactory, currency: SupportedCurrency.GLMR, + currencySymbol: SupportedCurrencyName.GLMR, decimals: Decimals.GLMR, name: "MoonBeam", nonce: Chain.MOONBEAM, @@ -632,6 +645,7 @@ CHAIN_INFO.set(Chain.ABEYCHAIN, { blockExplorerUrlAddr: "https://scan.abeychain.com/address/", constructor: web3HelperFactory, currency: SupportedCurrency.ABEY, + currencySymbol: SupportedCurrencyName.ABEY, decimals: Decimals.ABEY, name: "AbeyChain", nonce: Chain.ABEYCHAIN, @@ -641,6 +655,7 @@ CHAIN_INFO.set(Chain.ABEYCHAIN, { CHAIN_INFO.set(Chain.APTOS, { constructor: aptosHelper, currency: SupportedCurrency.APTOS, + currencySymbol: SupportedCurrencyName.APTOS, decimals: Decimals.APTOS, name: "Aptos", nonce: Chain.APTOS, @@ -655,6 +670,7 @@ CHAIN_INFO.set(Chain.TON, { name: "TON", constructor: tonHelper, currency: SupportedCurrency.TON, + currencySymbol: SupportedCurrencyName.TON, decimals: Decimals.TON, nonce: Chain.TON, type: ChainType.TON, @@ -666,6 +682,7 @@ CHAIN_INFO.set(Chain.TON, { CHAIN_INFO.set(Chain.CADUCEUS, { constructor: web3HelperFactory, currency: SupportedCurrency.CMP, + currencySymbol: SupportedCurrencyName.CMP, decimals: Decimals.CMP, name: "Caduceus", nonce: Chain.CADUCEUS, @@ -681,6 +698,7 @@ CHAIN_INFO.set(Chain.OKC, { blockExplorerUrl: "https://www.oklink.com/okc/", constructor: web3HelperFactory, currency: SupportedCurrency.OKT, + currencySymbol: SupportedCurrencyName.OKT, decimals: Decimals.OKT, name: "OKC", nonce: Chain.OKC, @@ -695,6 +713,7 @@ CHAIN_INFO.set(Chain.ARBITRUM, { blockExplorerUrl: "https://explorer.arbitrum.io/tx/", constructor: web3HelperFactory, currency: SupportedCurrency.ETH, + currencySymbol: SupportedCurrencyName.ETH, decimals: Decimals.ETH, name: "Arbitrum", nonce: Chain.ARBITRUM, @@ -709,6 +728,7 @@ CHAIN_INFO.set(Chain.BITGERT, { blockExplorerUrl: "https://brisescan.com/tx/", constructor: web3HelperFactory, currency: SupportedCurrency.BRISE, + currencySymbol: SupportedCurrencyName.BRISE, decimals: Decimals.ETH, name: "Bitgert", nonce: Chain.BITGERT, From 0f82b84913ce34cc5a44a58bed3f9d32bacb34e6 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 16 Feb 2023 15:38:28 +0200 Subject: [PATCH 901/956] aptos: petra trx result hash fix --- src/helpers/aptos/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/helpers/aptos/index.ts b/src/helpers/aptos/index.ts index a805aff22..4f0d46c90 100644 --- a/src/helpers/aptos/index.ts +++ b/src/helpers/aptos/index.ts @@ -104,7 +104,8 @@ export async function aptosHelper({ _: AptosAccount, payload: any ) { - return signer.signAndSubmitTransaction(payload); + const trx = await signer.signAndSubmitTransaction(payload); + return trx.hash; }; }, balance: async (address) => { From 45a7aea4895b2948ba466e06bbfe4b91035a4657 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 19 Feb 2023 10:44:19 +0200 Subject: [PATCH 902/956] delete dist --- dist/config.d.ts | 12 - dist/config.d.ts.map | 1 - dist/config.js | 71 - dist/config.ts | 69 - dist/consts.d.ts | 212 - dist/consts.d.ts.map | 1 - dist/consts.js | 648 --- dist/consts.ts | 665 --- dist/emitter.d.ts | 2 - dist/emitter.d.ts.map | 1 - dist/emitter.js | 5 - dist/emitter.ts | 2 - dist/factory/cons.d.ts | 17 - dist/factory/cons.d.ts.map | 1 - dist/factory/cons.js | 107 - dist/factory/cons.ts | 118 - dist/factory/factories.d.ts | 7 - dist/factory/factories.d.ts.map | 1 - dist/factory/factories.js | 1155 ------ dist/factory/factories.ts | 901 ----- dist/factory/index.d.ts | 319 -- dist/factory/index.d.ts.map | 1 - dist/factory/index.js | 608 --- dist/factory/index.ts | 987 ----- dist/heartbeat/index.d.ts | 6 - dist/heartbeat/index.d.ts.map | 1 - dist/heartbeat/index.js | 22 - dist/heartbeat/index.ts | 19 - dist/heartbeat/resp.d.ts | 17 - dist/heartbeat/resp.d.ts.map | 1 - dist/heartbeat/resp.js | 3 - dist/heartbeat/resp.ts | 18 - dist/helpers/algorand.d.ts | 108 - dist/helpers/algorand.d.ts.map | 1 - dist/helpers/algorand.js | 452 --- dist/helpers/algorand.ts | 565 --- dist/helpers/aptos/bridge_client.d.ts | 130 - dist/helpers/aptos/bridge_client.d.ts.map | 1 - dist/helpers/aptos/bridge_client.js | 265 -- dist/helpers/aptos/bridge_client.ts | 345 -- dist/helpers/aptos/bridge_client_abis.d.ts | 4 - .../helpers/aptos/bridge_client_abis.d.ts.map | 1 - dist/helpers/aptos/bridge_client_abis.js | 72 - dist/helpers/aptos/bridge_client_abis.ts | 52 - dist/helpers/aptos/index.d.ts | 72 - dist/helpers/aptos/index.d.ts.map | 1 - dist/helpers/aptos/index.js | 166 - dist/helpers/aptos/index.ts | 207 - dist/helpers/bridge_pool.teal.d.ts | 3 - dist/helpers/bridge_pool.teal.d.ts.map | 1 - dist/helpers/bridge_pool.teal.js | 69 - dist/helpers/bridge_pool.teal.ts | 65 - dist/helpers/chain.d.ts | 177 - dist/helpers/chain.d.ts.map | 1 - dist/helpers/chain.js | 34 - dist/helpers/chain.ts | 206 - dist/helpers/dfinity/dfinity.d.ts | 64 - dist/helpers/dfinity/dfinity.d.ts.map | 1 - dist/helpers/dfinity/dfinity.js | 256 -- dist/helpers/dfinity/dfinity.ts | 344 -- dist/helpers/dfinity/idl.d.ts | 2 - dist/helpers/dfinity/idl.d.ts.map | 1 - dist/helpers/dfinity/idl.js | 174 - dist/helpers/dfinity/idl.ts | 169 - dist/helpers/dfinity/minter.did.d.ts | 172 - dist/helpers/elrond.d.ts | 190 - dist/helpers/elrond.d.ts.map | 1 - dist/helpers/elrond.js | 647 --- dist/helpers/elrond.ts | 895 ----- dist/helpers/hedera/hts_abi.d.ts | 238 -- dist/helpers/hedera/hts_abi.d.ts.map | 1 - dist/helpers/hedera/hts_abi.js | 3571 ----------------- dist/helpers/hedera/hts_abi.ts | 3565 ---------------- dist/helpers/near.d.ts | 89 - dist/helpers/near.d.ts.map | 1 - dist/helpers/near.js | 232 -- dist/helpers/near.ts | 331 -- dist/helpers/secret.d.ts | 79 - dist/helpers/secret.d.ts.map | 1 - dist/helpers/secret.js | 255 -- dist/helpers/secret.ts | 356 -- dist/helpers/solana/idl.d.ts | 898 ----- dist/helpers/solana/idl.d.ts.map | 1 - dist/helpers/solana/idl.js | 900 ----- dist/helpers/solana/idl.ts | 1793 --------- dist/helpers/solana/index.d.ts | 44 - dist/helpers/solana/index.d.ts.map | 1 - dist/helpers/solana/index.js | 273 -- dist/helpers/solana/index.ts | 350 -- dist/helpers/tezos.d.ts | 83 - dist/helpers/tezos.d.ts.map | 1 - dist/helpers/tezos.js | 242 -- dist/helpers/tezos.ts | 297 -- dist/helpers/ton-bridge.d.ts | 48 - dist/helpers/ton-bridge.d.ts.map | 1 - dist/helpers/ton-bridge.js | 92 - dist/helpers/ton-bridge.ts | 126 - dist/helpers/ton.d.ts | 113 - dist/helpers/ton.d.ts.map | 1 - dist/helpers/ton.js | 347 -- dist/helpers/ton.ts | 446 -- dist/helpers/tron.d.ts | 115 - dist/helpers/tron.d.ts.map | 1 - dist/helpers/tron.js | 300 -- dist/helpers/tron.ts | 483 --- dist/helpers/web3.d.ts | 197 - dist/helpers/web3.d.ts.map | 1 - dist/helpers/web3.js | 504 --- dist/helpers/web3.ts | 729 ---- dist/helpers/web3_erc20.d.ts | 17 - dist/helpers/web3_erc20.d.ts.map | 1 - dist/helpers/web3_erc20.js | 399 -- dist/helpers/web3_erc20.ts | 466 --- dist/index.d.ts | 11 - dist/index.d.ts.map | 1 - dist/index.js | 35 - dist/index.ts | 10 - dist/notifier/index.d.ts | 33 - dist/notifier/index.d.ts.map | 1 - dist/notifier/index.js | 92 - dist/notifier/index.ts | 88 - dist/scripts/deploy_tron.d.ts | 2 - dist/scripts/deploy_tron.d.ts.map | 1 - dist/scripts/deploy_tron.js | 36 - dist/scripts/deploy_tron.ts | 33 - dist/socket.d.ts | 42 - dist/socket.d.ts.map | 1 - dist/socket.js | 115 - dist/socket.ts | 215 - dist/type-utils.d.ts | 36 - dist/type-utils.d.ts.map | 1 - dist/type-utils.js | 3 - dist/type-utils.ts | 41 - 133 files changed, 30698 deletions(-) delete mode 100644 dist/config.d.ts delete mode 100644 dist/config.d.ts.map delete mode 100644 dist/config.js delete mode 100644 dist/config.ts delete mode 100644 dist/consts.d.ts delete mode 100644 dist/consts.d.ts.map delete mode 100644 dist/consts.js delete mode 100644 dist/consts.ts delete mode 100644 dist/emitter.d.ts delete mode 100644 dist/emitter.d.ts.map delete mode 100644 dist/emitter.js delete mode 100644 dist/emitter.ts delete mode 100644 dist/factory/cons.d.ts delete mode 100644 dist/factory/cons.d.ts.map delete mode 100644 dist/factory/cons.js delete mode 100644 dist/factory/cons.ts delete mode 100644 dist/factory/factories.d.ts delete mode 100644 dist/factory/factories.d.ts.map delete mode 100644 dist/factory/factories.js delete mode 100644 dist/factory/factories.ts delete mode 100644 dist/factory/index.d.ts delete mode 100644 dist/factory/index.d.ts.map delete mode 100644 dist/factory/index.js delete mode 100644 dist/factory/index.ts delete mode 100644 dist/heartbeat/index.d.ts delete mode 100644 dist/heartbeat/index.d.ts.map delete mode 100644 dist/heartbeat/index.js delete mode 100644 dist/heartbeat/index.ts delete mode 100644 dist/heartbeat/resp.d.ts delete mode 100644 dist/heartbeat/resp.d.ts.map delete mode 100644 dist/heartbeat/resp.js delete mode 100644 dist/heartbeat/resp.ts delete mode 100644 dist/helpers/algorand.d.ts delete mode 100644 dist/helpers/algorand.d.ts.map delete mode 100644 dist/helpers/algorand.js delete mode 100644 dist/helpers/algorand.ts delete mode 100644 dist/helpers/aptos/bridge_client.d.ts delete mode 100644 dist/helpers/aptos/bridge_client.d.ts.map delete mode 100644 dist/helpers/aptos/bridge_client.js delete mode 100644 dist/helpers/aptos/bridge_client.ts delete mode 100644 dist/helpers/aptos/bridge_client_abis.d.ts delete mode 100644 dist/helpers/aptos/bridge_client_abis.d.ts.map delete mode 100644 dist/helpers/aptos/bridge_client_abis.js delete mode 100644 dist/helpers/aptos/bridge_client_abis.ts delete mode 100644 dist/helpers/aptos/index.d.ts delete mode 100644 dist/helpers/aptos/index.d.ts.map delete mode 100644 dist/helpers/aptos/index.js delete mode 100644 dist/helpers/aptos/index.ts delete mode 100644 dist/helpers/bridge_pool.teal.d.ts delete mode 100644 dist/helpers/bridge_pool.teal.d.ts.map delete mode 100644 dist/helpers/bridge_pool.teal.js delete mode 100644 dist/helpers/bridge_pool.teal.ts delete mode 100644 dist/helpers/chain.d.ts delete mode 100644 dist/helpers/chain.d.ts.map delete mode 100644 dist/helpers/chain.js delete mode 100644 dist/helpers/chain.ts delete mode 100644 dist/helpers/dfinity/dfinity.d.ts delete mode 100644 dist/helpers/dfinity/dfinity.d.ts.map delete mode 100644 dist/helpers/dfinity/dfinity.js delete mode 100644 dist/helpers/dfinity/dfinity.ts delete mode 100644 dist/helpers/dfinity/idl.d.ts delete mode 100644 dist/helpers/dfinity/idl.d.ts.map delete mode 100644 dist/helpers/dfinity/idl.js delete mode 100644 dist/helpers/dfinity/idl.ts delete mode 100644 dist/helpers/dfinity/minter.did.d.ts delete mode 100644 dist/helpers/elrond.d.ts delete mode 100644 dist/helpers/elrond.d.ts.map delete mode 100644 dist/helpers/elrond.js delete mode 100644 dist/helpers/elrond.ts delete mode 100644 dist/helpers/hedera/hts_abi.d.ts delete mode 100644 dist/helpers/hedera/hts_abi.d.ts.map delete mode 100644 dist/helpers/hedera/hts_abi.js delete mode 100644 dist/helpers/hedera/hts_abi.ts delete mode 100644 dist/helpers/near.d.ts delete mode 100644 dist/helpers/near.d.ts.map delete mode 100644 dist/helpers/near.js delete mode 100644 dist/helpers/near.ts delete mode 100644 dist/helpers/secret.d.ts delete mode 100644 dist/helpers/secret.d.ts.map delete mode 100644 dist/helpers/secret.js delete mode 100644 dist/helpers/secret.ts delete mode 100644 dist/helpers/solana/idl.d.ts delete mode 100644 dist/helpers/solana/idl.d.ts.map delete mode 100644 dist/helpers/solana/idl.js delete mode 100644 dist/helpers/solana/idl.ts delete mode 100644 dist/helpers/solana/index.d.ts delete mode 100644 dist/helpers/solana/index.d.ts.map delete mode 100644 dist/helpers/solana/index.js delete mode 100644 dist/helpers/solana/index.ts delete mode 100644 dist/helpers/tezos.d.ts delete mode 100644 dist/helpers/tezos.d.ts.map delete mode 100644 dist/helpers/tezos.js delete mode 100644 dist/helpers/tezos.ts delete mode 100644 dist/helpers/ton-bridge.d.ts delete mode 100644 dist/helpers/ton-bridge.d.ts.map delete mode 100644 dist/helpers/ton-bridge.js delete mode 100644 dist/helpers/ton-bridge.ts delete mode 100644 dist/helpers/ton.d.ts delete mode 100644 dist/helpers/ton.d.ts.map delete mode 100644 dist/helpers/ton.js delete mode 100644 dist/helpers/ton.ts delete mode 100644 dist/helpers/tron.d.ts delete mode 100644 dist/helpers/tron.d.ts.map delete mode 100644 dist/helpers/tron.js delete mode 100644 dist/helpers/tron.ts delete mode 100644 dist/helpers/web3.d.ts delete mode 100644 dist/helpers/web3.d.ts.map delete mode 100644 dist/helpers/web3.js delete mode 100644 dist/helpers/web3.ts delete mode 100644 dist/helpers/web3_erc20.d.ts delete mode 100644 dist/helpers/web3_erc20.d.ts.map delete mode 100644 dist/helpers/web3_erc20.js delete mode 100644 dist/helpers/web3_erc20.ts delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.d.ts.map delete mode 100644 dist/index.js delete mode 100644 dist/index.ts delete mode 100644 dist/notifier/index.d.ts delete mode 100644 dist/notifier/index.d.ts.map delete mode 100644 dist/notifier/index.js delete mode 100644 dist/notifier/index.ts delete mode 100644 dist/scripts/deploy_tron.d.ts delete mode 100644 dist/scripts/deploy_tron.d.ts.map delete mode 100644 dist/scripts/deploy_tron.js delete mode 100644 dist/scripts/deploy_tron.ts delete mode 100644 dist/socket.d.ts delete mode 100644 dist/socket.d.ts.map delete mode 100644 dist/socket.js delete mode 100644 dist/socket.ts delete mode 100644 dist/type-utils.d.ts delete mode 100644 dist/type-utils.d.ts.map delete mode 100644 dist/type-utils.js delete mode 100644 dist/type-utils.ts diff --git a/dist/config.d.ts b/dist/config.d.ts deleted file mode 100644 index e9d1ceede..000000000 --- a/dist/config.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { AppConfig, ChainFactory } from "."; -export declare namespace AppConfigs { - const MainNet: () => AppConfig; - const TestNet: () => AppConfig; - const Staging: () => AppConfig; -} -export declare namespace ChainFactories { - const MainNet: () => Promise; - const TestNet: () => Promise; - const Staging: () => Promise; -} -//# sourceMappingURL=config.d.ts.map diff --git a/dist/config.d.ts.map b/dist/config.d.ts.map deleted file mode 100644 index 8af4855d1..000000000 --- a/dist/config.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAuB,MAAM,GAAG,CAAC;AAEjE,yBAAiB,UAAU,CAAC;IACnB,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;IACK,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;CACH;AAED,yBAAiB,cAAc,CAAC;IACvB,MAAM,OAAO,6BAKnB,CAAC;IAEK,MAAM,OAAO,6BAKnB,CAAC;IACK,MAAM,OAAO,6BAKnB,CAAC;CACH"} \ No newline at end of file diff --git a/dist/config.js b/dist/config.js deleted file mode 100644 index 77ef07484..000000000 --- a/dist/config.js +++ /dev/null @@ -1,71 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ChainFactories = exports.AppConfigs = void 0; -const _1 = require("."); -var AppConfigs; -(function (AppConfigs) { - AppConfigs.MainNet = () => { - return { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://nft-index.xp.network/index/", - nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", - txSocketUri: "https://transaction-socket.xp.network", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com", - wrappedNftPrefix: "https://nft.xp.network/w/", - scVerifyUri: "https://sc-verify.xp.network", - network: "mainnet", - }; - }; - AppConfigs.TestNet = () => { - return { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://testnet-notifier.xp.network/testnet-indexer/", - nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1MjA4NzAwNiwiZXhwIjoxNjU5ODYzMDA2fQ.ERjXpljkyuklPTJCSXQXZ-Wh09oxQwA4u8HKIbIwO1TSajvLIlNgxseqBVEd5D4lkqXYGwcezkuezuRc3kKkKg", - txSocketUri: "https://testnet-tx-socket.herokuapp.com", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", - wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", - scVerifyUri: "https://testnet-sc-verify.herokuapp.com", - network: "testnet", - }; - }; - AppConfigs.Staging = () => { - return { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://tools.xp.network/index", - nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", - txSocketUri: "https://bridge1.xp.network/tx-socket", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com", - wrappedNftPrefix: "https://staging-nft.xp.network/w/", - scVerifyUri: "https://bridge1.xp.network/sc-verify", - network: "staging", - }; - }; -})((AppConfigs = exports.AppConfigs || (exports.AppConfigs = {}))); -var ChainFactories; -(function (ChainFactories) { - ChainFactories.MainNet = async () => { - return (0, _1.ChainFactory)( - AppConfigs.MainNet(), - await _1.ChainFactoryConfigs.MainNet() - ); - }; - ChainFactories.TestNet = async () => { - return (0, _1.ChainFactory)( - AppConfigs.TestNet(), - await _1.ChainFactoryConfigs.TestNet() - ); - }; - ChainFactories.Staging = async () => { - return (0, _1.ChainFactory)( - AppConfigs.Staging(), - await _1.ChainFactoryConfigs.Staging() - ); - }; -})((ChainFactories = exports.ChainFactories || (exports.ChainFactories = {}))); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3QkFBaUU7QUFFakUsSUFBaUIsVUFBVSxDQTRDMUI7QUE1Q0QsV0FBaUIsVUFBVTtJQUNaLGtCQUFPLEdBQW9CLEdBQUcsRUFBRTtRQUMzQyxPQUFPO1lBQ0wsZUFBZSxFQUFFLDZDQUE2QztZQUM5RCxVQUFVLEVBQUUscUNBQXFDO1lBQ2pELGdCQUFnQixFQUNkLGdMQUFnTDtZQUNsTCxXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELFdBQVcsRUFBRSxtQ0FBbUM7WUFDaEQsWUFBWSxFQUFFLG1DQUFtQztZQUNqRCxnQkFBZ0IsRUFBRSwyQkFBMkI7WUFDN0MsV0FBVyxFQUFFLDhCQUE4QjtZQUMzQyxPQUFPLEVBQUUsU0FBUztTQUNuQixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBQ1csa0JBQU8sR0FBb0IsR0FBRyxFQUFFO1FBQzNDLE9BQU87WUFDTCxlQUFlLEVBQUUsNkNBQTZDO1lBQzlELFVBQVUsRUFBRSxzREFBc0Q7WUFDbEUsZ0JBQWdCLEVBQ2QsZ0xBQWdMO1lBQ2xMLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsV0FBVyxFQUFFLG1DQUFtQztZQUNoRCxZQUFZLEVBQUUsaURBQWlEO1lBQy9ELGdCQUFnQixFQUFFLDBDQUEwQztZQUM1RCxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUM7SUFDSixDQUFDLENBQUM7SUFFVyxrQkFBTyxHQUFvQixHQUFHLEVBQUU7UUFDM0MsT0FBTztZQUNMLGVBQWUsRUFBRSw2Q0FBNkM7WUFDOUQsVUFBVSxFQUFFLGdDQUFnQztZQUM1QyxnQkFBZ0IsRUFDZCxnTEFBZ0w7WUFDbEwsV0FBVyxFQUFFLHNDQUFzQztZQUNuRCxXQUFXLEVBQUUsbUNBQW1DO1lBQ2hELFlBQVksRUFBRSxtQ0FBbUM7WUFDakQsZ0JBQWdCLEVBQUUsbUNBQW1DO1lBQ3JELFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsRUE1Q2dCLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBNEMxQjtBQUVELElBQWlCLGNBQWMsQ0FvQjlCO0FBcEJELFdBQWlCLGNBQWM7SUFDaEIsc0JBQU8sR0FBRyxLQUFLLElBQUksRUFBRTtRQUNoQyxPQUFPLElBQUEsZUFBWSxFQUNqQixVQUFVLENBQUMsT0FBTyxFQUFFLEVBQ3BCLE1BQU0sc0JBQW1CLENBQUMsT0FBTyxFQUFFLENBQ3BDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFVyxzQkFBTyxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ2hDLE9BQU8sSUFBQSxlQUFZLEVBQ2pCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFDcEIsTUFBTSxzQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FDcEMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUNXLHNCQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDaEMsT0FBTyxJQUFBLGVBQVksRUFDakIsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUNwQixNQUFNLHNCQUFtQixDQUFDLE9BQU8sRUFBRSxDQUNwQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxFQXBCZ0IsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFvQjlCIn0= diff --git a/dist/config.ts b/dist/config.ts deleted file mode 100644 index c0cffcc0a..000000000 --- a/dist/config.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { AppConfig, ChainFactory, ChainFactoryConfigs } from "."; - -export namespace AppConfigs { - export const MainNet: () => AppConfig = () => { - return { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://nft-index.xp.network/index/", - nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", - txSocketUri: "https://transaction-socket.xp.network", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com", - wrappedNftPrefix: "https://nft.xp.network/w/", - scVerifyUri: "https://sc-verify.xp.network", - network: "mainnet", - }; - }; - export const TestNet: () => AppConfig = () => { - return { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://testnet-notifier.xp.network/testnet-indexer/", - nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1MjA4NzAwNiwiZXhwIjoxNjU5ODYzMDA2fQ.ERjXpljkyuklPTJCSXQXZ-Wh09oxQwA4u8HKIbIwO1TSajvLIlNgxseqBVEd5D4lkqXYGwcezkuezuRc3kKkKg", - txSocketUri: "https://testnet-tx-socket.herokuapp.com", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", - wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", - scVerifyUri: "https://testnet-sc-verify.herokuapp.com", - network: "testnet", - }; - }; - - export const Staging: () => AppConfig = () => { - return { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://tools.xp.network/index", - nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", - txSocketUri: "https://bridge1.xp.network/tx-socket", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com", - wrappedNftPrefix: "https://staging-nft.xp.network/w/", - scVerifyUri: "https://bridge1.xp.network/sc-verify", - network: "staging", - }; - }; -} - -export namespace ChainFactories { - export const MainNet = async () => { - return ChainFactory( - AppConfigs.MainNet(), - await ChainFactoryConfigs.MainNet() - ); - }; - - export const TestNet = async () => { - return ChainFactory( - AppConfigs.TestNet(), - await ChainFactoryConfigs.TestNet() - ); - }; - export const Staging = async () => { - return ChainFactory( - AppConfigs.Staging(), - await ChainFactoryConfigs.Staging() - ); - }; -} diff --git a/dist/consts.d.ts b/dist/consts.d.ts deleted file mode 100644 index cba25503e..000000000 --- a/dist/consts.d.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { ElrondParams, ElrondHelper } from "./helpers/elrond"; -import { TronParams, TronHelper } from "./helpers/tron"; -import { Web3Params, Web3Helper } from "./helpers/web3"; -import { - SupportedCurrency, - SupportedCurrencyName, -} from "crypto-exchange-rate/dist/model/domain"; -import { AlgorandParams, AlgorandHelper } from "./helpers/algorand"; -import { TezosHelper, TezosParams } from "./helpers/tezos"; -import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; -import { SecretHelper, SecretParams } from "./helpers/secret"; -import { SolanaHelper, SolanaParams } from "./helpers/solana"; -import { TonHelper, TonParams } from "./helpers/ton"; -import { DfinityHelper, DfinityParams } from "./helpers/dfinity/dfinity"; -import { NearHelper, NearParams } from "./helpers/near"; -import { AptosHelper, AptosParams } from "./helpers/aptos"; -import { Web3ERC20Params } from "./helpers/web3_erc20"; -export declare enum TestNetRpcUri { - ELROND = "https://devnet-gateway.elrond.com", - HECO = "https://http-testnet.hecochain.com", - BSC = "https://data-seed-prebsc-2-s3.binance.org:8545/", - ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", - AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", - POLYGON = "https://matic-mumbai.chainstacklabs.com", - FANTOM = "https://fantom-testnet.public.blastapi.io", - TRON = "https://api.shasta.trongrid.io/", - CELO = "https://alfajores-forno.celo-testnet.org", - HARMONY = "https://api.s0.b.hmny.io", - XDAI = "https://sokol.poa.network", - UNIQUE = "https://rpc-opal.unique.network/", - TEZOS = "https://ghostnet.smartpy.io", - VELAS = "https://explorer.testnet.velas.com/rpc", - IOTEX = "https://babel-api.testnet.iotex.io", - AURORA = "https://testnet.aurora.dev/", - GODWOKEN = "https://godwoken-testnet-v1.ckbapp.dev", - GATECHAIN = "https://meteora-evm.gatenode.cc", - VECHAIN = "https://sync-testnet.veblocks.net", - SECRET = "https://api.pulsar.scrttestnet.com", - SKALE = "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar", - HEDERA = "https://0.testnet.hedera.com/", - NEAR = "https://rpc.testnet.near.org", - MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", - ABEYCHAIN = "https://testrpc.abeychain.com", - APTOS = "https://fullnode.testnet.aptoslabs.com", - TON = "https://testnet.toncenter.com/api/v2/jsonRPC", - SOLANA = "https://api.devnet.solana.com", - CADUCEUS = "https://galaxy.block.caduceus.foundation", - OKC = "https://exchaintestrpc.okex.org", - ARBITRUM = "https://goerli-rollup.arbitrum.io/rpc", - BITGERT = "https://testnet-rpc.brisescan.com", -} -export declare enum MainNetRpcUri { - ELROND = "https://gateway.elrond.com", - HECO = "https://http-mainnet-node.huobichain.com", - BSC = "https://bsc-dataseed.binance.org/", - ETHEREUM = "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", - AVALANCHE = "https://api.avax.network/ext/bc/C/rpc", - POLYGON = "https://polygon-rpc.com", - FANTOM = "https://rpc.ftm.tools/", - TRON = "https://api.trongrid.io/", - CELO = "https://forno.celo.org", - HARMONY = "https://rpc.s0.t.hmny.io", - XDAI = "https://gnosischain-rpc.gateway.pokt.network/", - FUSE = "https://rpc.fuse.io/", - VELAS = "https://mainnet.velas.com/rpc", - TEZOS = "https://mainnet.smartpy.io", - IOTEX = "https://babel-api.mainnet.iotex.io", - AURORA = "https://mainnet.aurora.dev", - GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", - GATECHAIN = "https://evm.gatenode.cc", - VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "https://secret-4.api.trivium.network:1317", - SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", - NEAR = "https://rpc.mainnet.near.org", - MOONBEAM = "https://rpc.api.moonbeam.network", - ABEYCHAIN = "https://rpc.abeychain.com", - TON = "https://toncenter.com/api/v2/jsonRPC", - APTOS = "https://fullnode.mainnet.aptoslabs.com/", - CADUCEUS = "https://mainnet.block.caduceus.foundation/", - OKC = "https://exchainrpc.okex.org/", - ARBITRUM = "https://nova.arbitrum.io/rpc", - BITGERT = "https://dedicated.brisescan.com", - SOLANA = "https://api.mainnet-beta.solana.com", -} -declare type ElrondMeta = [ElrondHelper, ElrondParams]; -declare type Web3Meta = [Web3Helper, Web3Params]; -declare type TronMeta = [TronHelper, TronParams]; -declare type AlgoMeta = [AlgorandHelper, AlgorandParams]; -declare type TezosMeta = [TezosHelper, TezosParams]; -declare type SecretMeta = [SecretHelper, SecretParams]; -declare type SolanaMeta = [SolanaHelper, SolanaParams]; -declare type TonMeta = [TonHelper, TonParams]; -declare type DfinityMeta = [DfinityHelper, DfinityParams]; -declare type NearMeta = [NearHelper, NearParams]; -declare type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; -declare type AptosMeta = [AptosHelper, AptosParams]; -declare type MetaMapAssert = { - [idx in typeof Chain[keyof typeof Chain]]: unknown; -}; -export declare type MetaMap = { - 2: ElrondMeta; - 3: Web3Meta; - 4: Web3Meta; - 5: Web3Meta; - 6: Web3Meta; - 7: Web3Meta; - 8: Web3Meta; - 9: TronMeta; - 0xb: Web3Meta; - 0xc: Web3Meta; - 0xd: Web3Meta; - 0xe: Web3Meta; - 0xf: AlgoMeta; - 0x10: Web3Meta; - 0x11: Web3Meta; - 0x12: TezosMeta; - 0x13: Web3Meta; - 0x14: Web3Meta; - 0x15: Web3Meta; - 0x16: Web3Meta; - 0x17: Web3Meta; - 0x18: SecretMeta; - 0x19: Web3Meta; - 0x1a: SolanaMeta; - 0x1b: TonMeta; - 0x1c: DfinityMeta; - 0x1d: Web3Meta; - 0x1e: Web3ERC20Meta; - 0x1f: NearMeta; - 0x20: Web3Meta; - 0x21: Web3Meta; - 0x22: AptosMeta; - 0x23: Web3Meta; - 0x24: Web3Meta; - 0x25: Web3Meta; - 0x26: Web3Meta; -} & MetaMapAssert; -export declare namespace Chain { - const ELROND = 2; - const HECO = 3; - const BSC = 4; - const ETHEREUM = 5; - const AVALANCHE = 6; - const POLYGON = 7; - const FANTOM = 8; - const TRON = 9; - const CELO = 11; - const HARMONY = 12; - const ONT = 13; - const XDAI = 14; - const ALGORAND = 15; - const FUSE = 16; - const UNIQUE = 17; - const TEZOS = 18; - const VELAS = 19; - const IOTEX = 20; - const AURORA = 21; - const GODWOKEN = 22; - const GATECHAIN = 23; - const SECRET = 24; - const VECHAIN = 25; - const SOLANA = 26; - const TON = 27; - const DFINITY = 28; - const HEDERA = 29; - const SKALE = 30; - const NEAR = 31; - const MOONBEAM = 32; - const ABEYCHAIN = 33; - const APTOS = 34; - const CADUCEUS = 35; - const OKC = 36; - const ARBITRUM = 37; - const BITGERT = 38; -} -interface ChainData { - name: string; - nonce: number; - decimals: number; - constructor: (p: InferChainParam) => Promise>; - blockExplorerUrl: string; - tnBlockExplorerUrl?: string | ((tx: string) => string); - chainId?: number; - tnChainId?: number; - currency: SupportedCurrency; - currencySymbol: SupportedCurrencyName; - type: string; - blockExplorerUrlAddr?: string; - tnBlockExplorerUrlAddr?: string | ((tx: string) => string); - rejectUnfreeze?: string[]; -} -declare type ChainInfo = { - set(k: T, v: ChainData | undefined): void; - get(k: T): ChainData | undefined; -} & Map>; -export declare enum ChainType { - EVM = "EVM", - ELROND = "ELROND", - TRON = "TRON", - TEZOS = "TEZOS", - ALGORAND = "ALGORAND", - COSMOS = "COSMOS", - DFINITY = "DFINITY", - SOLANA = "SOLANA", - TON = "TON", - NEAR = "NEAR", - HEDERA = "HEDERA", - APTOS = "APTOS", -} -export declare const CHAIN_INFO: ChainInfo; -export {}; -//# sourceMappingURL=consts.d.ts.map diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map deleted file mode 100644 index b9f0e050e..000000000 --- a/dist/consts.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js deleted file mode 100644 index 0fae41f2f..000000000 --- a/dist/consts.js +++ /dev/null @@ -1,648 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.CHAIN_INFO = - exports.ChainType = - exports.Chain = - exports.MainNetRpcUri = - exports.TestNetRpcUri = - void 0; -const elrond_1 = require("./helpers/elrond"); -const tron_1 = require("./helpers/tron"); -const web3_1 = require("./helpers/web3"); -const domain_1 = require("crypto-exchange-rate/dist/model/domain"); -const Decimals_1 = require("crypto-exchange-rate/dist/model/domain/Decimals"); -const algorand_1 = require("./helpers/algorand"); -const tezos_1 = require("./helpers/tezos"); -const secret_1 = require("./helpers/secret"); -const solana_1 = require("./helpers/solana"); -const ton_1 = require("./helpers/ton"); -const dfinity_1 = require("./helpers/dfinity/dfinity"); -const near_1 = require("./helpers/near"); -const aptos_1 = require("./helpers/aptos"); -const web3_erc20_1 = require("./helpers/web3_erc20"); -// All the supported testnet uri's are here. -var TestNetRpcUri; -(function (TestNetRpcUri) { - TestNetRpcUri["ELROND"] = "https://devnet-gateway.elrond.com"; - TestNetRpcUri["HECO"] = "https://http-testnet.hecochain.com"; - TestNetRpcUri["BSC"] = "https://data-seed-prebsc-2-s3.binance.org:8545/"; - TestNetRpcUri["ROPSTEN"] = - "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467"; - TestNetRpcUri["AVALANCHE"] = "https://api.avax-test.network/ext/bc/C/rpc"; - TestNetRpcUri["POLYGON"] = "https://matic-mumbai.chainstacklabs.com"; - TestNetRpcUri["FANTOM"] = "https://fantom-testnet.public.blastapi.io"; - TestNetRpcUri["TRON"] = "https://api.shasta.trongrid.io/"; - TestNetRpcUri["CELO"] = "https://alfajores-forno.celo-testnet.org"; - TestNetRpcUri["HARMONY"] = "https://api.s0.b.hmny.io"; - TestNetRpcUri["XDAI"] = "https://sokol.poa.network"; - TestNetRpcUri["UNIQUE"] = "https://rpc-opal.unique.network/"; - TestNetRpcUri["TEZOS"] = "https://ghostnet.smartpy.io"; - TestNetRpcUri["VELAS"] = "https://explorer.testnet.velas.com/rpc"; - TestNetRpcUri["IOTEX"] = "https://babel-api.testnet.iotex.io"; - TestNetRpcUri["AURORA"] = "https://testnet.aurora.dev/"; - TestNetRpcUri["GODWOKEN"] = "https://godwoken-testnet-v1.ckbapp.dev"; - TestNetRpcUri["GATECHAIN"] = "https://meteora-evm.gatenode.cc"; - TestNetRpcUri["VECHAIN"] = "https://sync-testnet.veblocks.net"; - TestNetRpcUri["SECRET"] = "https://api.pulsar.scrttestnet.com"; - TestNetRpcUri["SKALE"] = - "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar"; - TestNetRpcUri["HEDERA"] = "https://0.testnet.hedera.com/"; - TestNetRpcUri["NEAR"] = "https://rpc.testnet.near.org"; - TestNetRpcUri["MOONBEAM"] = "https://rpc.api.moonbase.moonbeam.network"; - TestNetRpcUri["ABEYCHAIN"] = "https://testrpc.abeychain.com"; - TestNetRpcUri["APTOS"] = "https://fullnode.testnet.aptoslabs.com"; - TestNetRpcUri["TON"] = "https://testnet.toncenter.com/api/v2/jsonRPC"; - TestNetRpcUri["SOLANA"] = "https://api.devnet.solana.com"; - TestNetRpcUri["CADUCEUS"] = "https://galaxy.block.caduceus.foundation"; - TestNetRpcUri["OKC"] = "https://exchaintestrpc.okex.org"; - TestNetRpcUri["ARBITRUM"] = "https://goerli-rollup.arbitrum.io/rpc"; - TestNetRpcUri["BITGERT"] = "https://testnet-rpc.brisescan.com"; - // TODO: Algorand - // TODO: Fuse -})((TestNetRpcUri = exports.TestNetRpcUri || (exports.TestNetRpcUri = {}))); -var MainNetRpcUri; -(function (MainNetRpcUri) { - MainNetRpcUri["ELROND"] = "https://gateway.elrond.com"; - MainNetRpcUri["HECO"] = "https://http-mainnet-node.huobichain.com"; - MainNetRpcUri["BSC"] = "https://bsc-dataseed.binance.org/"; - MainNetRpcUri["ETHEREUM"] = - "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161"; - MainNetRpcUri["AVALANCHE"] = "https://api.avax.network/ext/bc/C/rpc"; - MainNetRpcUri["POLYGON"] = "https://polygon-rpc.com"; - MainNetRpcUri["FANTOM"] = "https://rpc.ftm.tools/"; - MainNetRpcUri["TRON"] = "https://api.trongrid.io/"; - MainNetRpcUri["CELO"] = "https://forno.celo.org"; - MainNetRpcUri["HARMONY"] = "https://rpc.s0.t.hmny.io"; - MainNetRpcUri["XDAI"] = "https://gnosischain-rpc.gateway.pokt.network/"; - MainNetRpcUri["FUSE"] = "https://rpc.fuse.io/"; - MainNetRpcUri["VELAS"] = "https://mainnet.velas.com/rpc"; - MainNetRpcUri["TEZOS"] = "https://mainnet.smartpy.io"; - MainNetRpcUri["IOTEX"] = "https://babel-api.mainnet.iotex.io"; - MainNetRpcUri["AURORA"] = "https://mainnet.aurora.dev"; - MainNetRpcUri["GODWOKEN"] = "https://v1.mainnet.godwoken.io/rpc"; - MainNetRpcUri["GATECHAIN"] = "https://evm.gatenode.cc"; - MainNetRpcUri["VECHAIN"] = "https://sync-mainnet.veblocks.net"; - MainNetRpcUri["SECRET"] = "https://secret-4.api.trivium.network:1317"; - MainNetRpcUri["SKALE"] = - "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague"; - MainNetRpcUri["NEAR"] = "https://rpc.mainnet.near.org"; - MainNetRpcUri["MOONBEAM"] = "https://rpc.api.moonbeam.network"; - MainNetRpcUri["ABEYCHAIN"] = "https://rpc.abeychain.com"; - MainNetRpcUri["TON"] = "https://toncenter.com/api/v2/jsonRPC"; - MainNetRpcUri["APTOS"] = "https://fullnode.mainnet.aptoslabs.com/"; - MainNetRpcUri["CADUCEUS"] = "https://mainnet.block.caduceus.foundation/"; - MainNetRpcUri["OKC"] = "https://exchainrpc.okex.org/"; - MainNetRpcUri["ARBITRUM"] = "https://nova.arbitrum.io/rpc"; - MainNetRpcUri["BITGERT"] = "https://dedicated.brisescan.com"; - MainNetRpcUri["SOLANA"] = "https://api.mainnet-beta.solana.com"; - // TODO: Algorand -})((MainNetRpcUri = exports.MainNetRpcUri || (exports.MainNetRpcUri = {}))); -var Chain; -(function (Chain) { - Chain.ELROND = 2; - Chain.HECO = 3; - Chain.BSC = 4; - Chain.ETHEREUM = 5; - Chain.AVALANCHE = 0x6; - Chain.POLYGON = 7; - Chain.FANTOM = 8; - Chain.TRON = 9; - Chain.CELO = 0xb; //11 - Chain.HARMONY = 0xc; //12 - Chain.ONT = 0xd; //13 - Chain.XDAI = 0xe; //14 - Chain.ALGORAND = 0xf; //15 - Chain.FUSE = 0x10; // 16 - Chain.UNIQUE = 0x11; // 17 - Chain.TEZOS = 0x12; // 18 - Chain.VELAS = 0x13; // 19 - Chain.IOTEX = 0x14; // 20 - Chain.AURORA = 0x15; // 21 - Chain.GODWOKEN = 0x16; // 22 - Chain.GATECHAIN = 0x17; // 23 - Chain.SECRET = 0x18; // 24 - Chain.VECHAIN = 0x19; // 25 - Chain.SOLANA = 0x1a; // 26 - Chain.TON = 0x1b; // 27 - Chain.DFINITY = 0x1c; // 28 - Chain.HEDERA = 0x1d; // 29 - Chain.SKALE = 0x1e; // 30 - Chain.NEAR = 0x1f; // 31 - Chain.MOONBEAM = 0x20; // 32 - Chain.ABEYCHAIN = 0x21; // 33 - Chain.APTOS = 0x22; // 34 - Chain.CADUCEUS = 0x23; // 35 - Chain.OKC = 0x24; // 36 - Chain.ARBITRUM = 0x25; //37 - Chain.BITGERT = 0x26; //37 -})((Chain = exports.Chain || (exports.Chain = {}))); -var ChainType; -(function (ChainType) { - ChainType["EVM"] = "EVM"; - ChainType["ELROND"] = "ELROND"; - ChainType["TRON"] = "TRON"; - ChainType["TEZOS"] = "TEZOS"; - ChainType["ALGORAND"] = "ALGORAND"; - ChainType["COSMOS"] = "COSMOS"; - ChainType["DFINITY"] = "DFINITY"; - ChainType["SOLANA"] = "SOLANA"; - ChainType["TON"] = "TON"; - ChainType["NEAR"] = "NEAR"; - ChainType["HEDERA"] = "HEDERA"; - ChainType["APTOS"] = "APTOS"; -})((ChainType = exports.ChainType || (exports.ChainType = {}))); -exports.CHAIN_INFO = new Map(); -exports.CHAIN_INFO.set(Chain.ELROND, { - name: "Elrond", - nonce: 2, - decimals: Decimals_1.DecimalsByCurrency.EGLD, - constructor: elrond_1.elrondHelperFactory, - blockExplorerUrl: "https://explorer.elrond.com/transactions/", - blockExplorerUrlAddr: "https://explorer.elrond.com/address/", - tnBlockExplorerUrl: "https://testnet-explorer.elrond.com/transactions/", - tnBlockExplorerUrlAddr: "https://testnet-explorer.elrond.com/address/", - currency: domain_1.SupportedCurrency.EGLD, - currencySymbol: domain_1.SupportedCurrencyName.EGLD, - type: ChainType.ELROND, -}); -exports.CHAIN_INFO.set(Chain.HECO, { - name: "HECO", - nonce: 3, - chainId: 256, - decimals: Decimals_1.DecimalsByCurrency.HT, - blockExplorerUrl: "https://testnet.hecoinfo.com/tx", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.HT, - currencySymbol: domain_1.SupportedCurrencyName.HT, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.BSC, { - name: "BSC", - nonce: 4, - chainId: 97, - decimals: Decimals_1.DecimalsByCurrency.BNB, - blockExplorerUrl: "https://bscscan.com/tx/", - blockExplorerUrlAddr: "https://bscscan.com/address/", - tnBlockExplorerUrl: "https://testnet.bscscan.com/tx/", - tnBlockExplorerUrlAddr: "https://testnet.bscscan.com/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.BNB, - currencySymbol: domain_1.SupportedCurrencyName.BNB, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.ETHEREUM, { - name: "Ethereum", - nonce: 5, - currency: domain_1.SupportedCurrency.ETH, - currencySymbol: domain_1.SupportedCurrencyName.ETH, - chainId: 5, - decimals: Decimals_1.DecimalsByCurrency.ETH, - blockExplorerUrl: "https://etherscan.io/tx/", - blockExplorerUrlAddr: "https://etherscan.io/address/", - tnBlockExplorerUrl: "https://goerli.etherscan.io/tx/", - tnBlockExplorerUrlAddr: "https://goerli.etherscan.io/address/", - constructor: web3_1.web3HelperFactory, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.AVALANCHE, { - name: "Avalanche", - nonce: 6, - chainId: 43113, - decimals: Decimals_1.DecimalsByCurrency.AVAX, - blockExplorerUrl: "https://snowtrace.io/tx/", - tnBlockExplorerUrl: "https://testnet.snowtrace.io/tx/", - blockExplorerUrlAddr: "https://snowtrace.io/address/", - tnBlockExplorerUrlAddr: "https://testnet.snowtrace.io/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.AVAX, - currencySymbol: domain_1.SupportedCurrencyName.AVAX, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.POLYGON, { - name: "Polygon", - nonce: 0x7, - chainId: 80001, - decimals: Decimals_1.DecimalsByCurrency.MATIC, - blockExplorerUrl: "https://polygonscan.com/tx/", - tnBlockExplorerUrl: "https://mumbai.polygonscan.com/tx/", - blockExplorerUrlAddr: "https://polygonscan.com/address/", - tnBlockExplorerUrlAddr: "https://mumbai.polygonscan.com/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.MATIC, - currencySymbol: domain_1.SupportedCurrencyName.MATIC, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.FANTOM, { - name: "Fantom", - nonce: 0x8, - decimals: Decimals_1.DecimalsByCurrency.FTM, - chainId: 4002, - blockExplorerUrl: "https://ftmscan.com/tx/", - blockExplorerUrlAddr: "https://ftmscan.com/address/", - tnBlockExplorerUrlAddr: "https://testnet.ftmscan.com/address/", - tnBlockExplorerUrl: "https://testnet.ftmscan.com/tx/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.FTM, - currencySymbol: domain_1.SupportedCurrencyName.FTM, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.TRON, { - name: "Tron", - nonce: 0x9, - decimals: Decimals_1.DecimalsByCurrency.TRX, - blockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", - tnBlockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", - blockExplorerUrlAddr: "https://tronscan.io/#/address/", - tnBlockExplorerUrlAddr: "https://shasta.tronscan.org/#/address/", - constructor: tron_1.tronHelperFactory, - currency: domain_1.SupportedCurrency.TRX, - currencySymbol: domain_1.SupportedCurrencyName.TRX, - type: ChainType.TRON, -}); -exports.CHAIN_INFO.set(Chain.CELO, { - name: "Celo", - nonce: 0xb, - decimals: Decimals_1.DecimalsByCurrency.CELO, - chainId: 44787, - blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.CELO, - currencySymbol: domain_1.SupportedCurrencyName.CELO, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.HARMONY, { - name: "Harmony", - nonce: 0xc, - decimals: Decimals_1.DecimalsByCurrency.ONE, - chainId: 1666700000, - blockExplorerUrl: "https://explorer.harmony.one/tx/", - tnBlockExplorerUrl: "https://explorer.testnet.harmony.one/tx/", - blockExplorerUrlAddr: "https://explorer.harmony.one/address/", - tnBlockExplorerUrlAddr: "https://explorer.testnet.harmony.one/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.ONE, - currencySymbol: domain_1.SupportedCurrencyName.ONE, - type: ChainType.EVM, - rejectUnfreeze: [ - "0xb90Dc9e354001e6260DE670EDD6aBaDb890C6aC9", - "0xAd6f94bDefB6D5ae941392Da5224ED083AE33adc", - ], -}); -exports.CHAIN_INFO.set(Chain.ONT, { - name: "Ontology", - nonce: 0xd, - decimals: Decimals_1.DecimalsByCurrency.ONT, - chainId: 1666700000, - blockExplorerUrl: "https://explorer.pops.one/tx", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.ONT, - currencySymbol: domain_1.SupportedCurrencyName.ONT, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.XDAI, { - name: "xDai", - nonce: 0xe, - decimals: Decimals_1.DecimalsByCurrency.XDAI, - chainId: 0x64, - blockExplorerUrl: "https://blockscout.com/xdai/mainnet/tx/", - blockExplorerUrlAddr: "https://blockscout.com/xdai/mainnet/address/", - tnBlockExplorerUrl: "https://blockscout.com/xdai/testnet/tx/", - tnBlockExplorerUrlAddr: "https://blockscout.com/xdai/testnet/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.XDAI, - currencySymbol: domain_1.SupportedCurrencyName.XDAI, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.ALGORAND, { - name: "Algorand", - nonce: 0xf, - decimals: Decimals_1.DecimalsByCurrency.ALGO, - chainId: undefined, - blockExplorerUrl: "https://algoexplorer.io/tx/", - tnBlockExplorerUrl: "https://testnet.algoexplorer.io/tx/", - blockExplorerUrlAddr: "https://algoexplorer.io/address/", - tnBlockExplorerUrlAddr: "https://testnet.algoexplorer.io/address/", - currency: domain_1.SupportedCurrency.ALGO, - currencySymbol: domain_1.SupportedCurrencyName.ALGO, - constructor: (p) => Promise.resolve((0, algorand_1.algorandHelper)(p)), - type: ChainType.ALGORAND, -}); -exports.CHAIN_INFO.set(Chain.FUSE, { - name: "FUSE", - nonce: 0x10, - decimals: Decimals_1.DecimalsByCurrency.FUSE, - chainId: undefined, - blockExplorerUrl: "https://explorer.fuse.io/tx/", - tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", - blockExplorerUrlAddr: "https://explorer.fuse.io/address/", - tnBlockExplorerUrlAddr: "https://explorer.fusespark.io/address/", - currencySymbol: domain_1.SupportedCurrencyName.FUSE, - currency: domain_1.SupportedCurrency.FUSE, - constructor: web3_1.web3HelperFactory, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.UNIQUE, { - name: "Unique", - nonce: 0x11, - decimals: Decimals_1.DecimalsByCurrency.OPL, - chainId: 8888, - blockExplorerUrl: "CANT FIND", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.OPL, - currencySymbol: domain_1.SupportedCurrencyName.OPL, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.TEZOS, { - name: "Tezos", - nonce: 0x12, - decimals: Decimals_1.DecimalsByCurrency.XTZ, - constructor: tezos_1.tezosHelperFactory, - currency: domain_1.SupportedCurrency.XTZ, - currencySymbol: domain_1.SupportedCurrencyName.XTZ, - blockExplorerUrl: "https://tzkt.io/", - tnBlockExplorerUrl: "https://ghostnet.tzkt.io/", - tnBlockExplorerUrlAddr: "https://ghostnet.tzkt.io/", - blockExplorerUrlAddr: "https://tzkt.io/", - type: ChainType.TEZOS, -}); -exports.CHAIN_INFO.set(Chain.VELAS, { - name: "Velas", - blockExplorerUrl: "https://explorer.velas.com/tx/", - tnBlockExplorerUrlAddr: "https://explorer.testnet.velas.com/address/", - blockExplorerUrlAddr: "https://explorer.velas.com/address/", - tnBlockExplorerUrl: "https://explorer.testnet.velas.com/tx/", - nonce: 0x13, - decimals: Decimals_1.DecimalsByCurrency.VLX, - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.VLX, - currencySymbol: domain_1.SupportedCurrencyName.VLX, - chainId: 111, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.AURORA, { - name: "Aurora", - blockExplorerUrl: "https://aurorascan.dev/tx/", - tnBlockExplorerUrl: "hhttps://testnet.aurorascan.dev/tx/", - blockExplorerUrlAddr: "https://aurorascan.dev/address/", - tnBlockExplorerUrlAddr: "https://testnet.aurorascan.dev/address", - nonce: Chain.AURORA, - decimals: Decimals_1.DecimalsByCurrency.AURORA, - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.AURORA, - currencySymbol: domain_1.SupportedCurrencyName.AURORA, - chainId: 1313161554, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.IOTEX, { - name: "IoTeX", - blockExplorerUrl: "https://iotexscan.io/tx/", - blockExplorerUrlAddr: "https://iotexscan.io/address/", - tnBlockExplorerUrl: "https://testnet.iotexscan.io/tx/", - tnBlockExplorerUrlAddr: "https://testnet.iotexscan.io/address/", - nonce: 0x14, - decimals: Decimals_1.DecimalsByCurrency.IOTX, - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.IOTX, - currencySymbol: domain_1.SupportedCurrencyName.IOTX, - chainId: 4689, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.GODWOKEN, { - name: "GodWoken", - blockExplorerUrl: "https://gwscan.com/tx/", - tnBlockExplorerUrl: "https://v1.testnet.gwscan.com/tx/", - blockExplorerUrlAddr: "https://gwscan.com/account/", - tnBlockExplorerUrlAddr: "https://v1.testnet.gwscan.com/account/", - constructor: web3_1.web3HelperFactory, - nonce: 0x16, - decimals: Decimals_1.DecimalsByCurrency.CKB, - currency: domain_1.SupportedCurrency.CKB, - currencySymbol: domain_1.SupportedCurrencyName.CKB, - chainId: 868455272153094, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.GATECHAIN, { - name: "GateChain", - blockExplorerUrl: "https://gatescan.org/tx/", - tnBlockExplorerUrl: "https://gatescan.org/testnet/tx/", - blockExplorerUrlAddr: "https://gatescan.org/address/", - tnBlockExplorerUrlAddr: "https://gatescan.org/testnet/address/", - constructor: web3_1.web3HelperFactory, - nonce: 0x17, - decimals: Decimals_1.DecimalsByCurrency.GT, - currency: domain_1.SupportedCurrency.GT, - currencySymbol: domain_1.SupportedCurrencyName.GT, - chainId: 85, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.VECHAIN, { - name: "VeChain", - tnBlockExplorerUrl: "https://explore-testnet.vechain.org/transactions/", - blockExplorerUrlAddr: "https://explore.vechain.org/accounts/", - blockExplorerUrl: "https://explore.vechain.org/transactions/", - tnBlockExplorerUrlAddr: "https://explore-testnet.vechain.org/accounts/", - constructor: web3_1.web3HelperFactory, - nonce: 0x19, - currency: domain_1.SupportedCurrency.VET, - currencySymbol: domain_1.SupportedCurrencyName.VET, - decimals: Decimals_1.DecimalsByCurrency.VET, - chainId: 39, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.SECRET, { - name: "Secret", - //blockExplorerUrl: "", // TODO - constructor: secret_1.secretHelperFactory, - nonce: Chain.SECRET, - currency: domain_1.SupportedCurrency.SCRT, - currencySymbol: domain_1.SupportedCurrencyName.SCRT, - decimals: Decimals_1.DecimalsByCurrency.SCRT, - type: ChainType.COSMOS, - blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", - blockExplorerUrlAddr: "https://atomscan.com/secret-network/accounts/", -}); -exports.CHAIN_INFO.set(Chain.SOLANA, { - name: "Solana", - blockExplorerUrl: "https://solscan.io/tx/", - blockExplorerUrlAddr: "https://solscan.io/account/", - tnBlockExplorerUrl: (tx) => `https://solscan.io/tx/${tx}?cluster=devnet`, - tnBlockExplorerUrlAddr: (address) => - `https://solscan.io/account/${address}?cluster=devnet`, - constructor: solana_1.solanaHelper, - nonce: Chain.SOLANA, - currency: domain_1.SupportedCurrency.SOL, - currencySymbol: domain_1.SupportedCurrencyName.SOL, - decimals: Decimals_1.DecimalsByCurrency.SOL, - type: ChainType.SOLANA, -}); -exports.CHAIN_INFO.set(Chain.HEDERA, { - blockExplorerUrl: "https://hashscan.io/#/mainnet/transaction/", - tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.HBAR, - currencySymbol: domain_1.SupportedCurrencyName.HBAR, - decimals: Decimals_1.DecimalsByCurrency.HBAR, - nonce: Chain.HEDERA, - name: "Hedera", - type: ChainType.HEDERA, - blockExplorerUrlAddr: "https://hashscan.io/#/mainnet/account/", - tnBlockExplorerUrlAddr: "https://hashscan.io/#/testnet/account/", -}); -exports.CHAIN_INFO.set(Chain.SKALE, { - name: "Skale", - //needs additional query params - blockExplorerUrl: - "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/tx/", - tnBlockExplorerUrl: - "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", - blockExplorerUrlAddr: - "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/address/", - tnBlockExplorerUrlAddr: - "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", - constructor: web3_erc20_1.web3ERC20HelperFactory, - currency: domain_1.SupportedCurrency.ETH, - currencySymbol: domain_1.SupportedCurrencyName.ETH, - decimals: Decimals_1.DecimalsByCurrency.ETH, - tnChainId: 0x1482a7b2, - nonce: Chain.SKALE, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.DFINITY, { - blockExplorerUrl: "", - constructor: dfinity_1.dfinityHelper, - currency: domain_1.SupportedCurrency.ICP, - currencySymbol: domain_1.SupportedCurrencyName.ICP, - decimals: Decimals_1.DecimalsByCurrency.ICP, - name: "DFINITY", - nonce: Chain.DFINITY, - type: ChainType.DFINITY, -}); -exports.CHAIN_INFO.set(Chain.NEAR, { - blockExplorerUrl: "https://explorer.mainnet.near.org/transactions/", - tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", - constructor: near_1.nearHelperFactory, - currency: domain_1.SupportedCurrency.NEAR, - currencySymbol: domain_1.SupportedCurrencyName.NEAR, - decimals: Decimals_1.DecimalsByCurrency.NEAR, - name: "NEAR", - nonce: Chain.NEAR, - type: ChainType.NEAR, - blockExplorerUrlAddr: "https://explorer.mainnet.near.org/accounts/", - tnBlockExplorerUrlAddr: "https://explorer.testnet.near.org/accounts/", -}); -exports.CHAIN_INFO.set(Chain.MOONBEAM, { - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.GLMR, - currencySymbol: domain_1.SupportedCurrencyName.GLMR, - decimals: Decimals_1.DecimalsByCurrency.GLMR, - name: "MoonBeam", - nonce: Chain.MOONBEAM, - chainId: 0x507, - type: ChainType.EVM, - blockExplorerUrlAddr: "https://moonbeam.moonscan.io/address/", - tnBlockExplorerUrlAddr: "https://moonbase.moonscan.io/address/", - blockExplorerUrl: "https://moonscan.io/tx/", - tnBlockExplorerUrl: "https://moonbase.moonscan.io/tx/", -}); -exports.CHAIN_INFO.set(Chain.ABEYCHAIN, { - tnBlockExplorerUrl: "https://testnet-explorer.abeychain.com/tx/", - tnBlockExplorerUrlAddr: "https://testnet-explorer.abeychain.com/address/", - blockExplorerUrl: "https://scan.abeychain.com/tx/", - blockExplorerUrlAddr: "https://scan.abeychain.com/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.ABEY, - currencySymbol: domain_1.SupportedCurrencyName.ABEY, - decimals: Decimals_1.DecimalsByCurrency.ABEY, - name: "AbeyChain", - nonce: Chain.ABEYCHAIN, - chainId: 178, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.APTOS, { - constructor: aptos_1.aptosHelper, - currency: domain_1.SupportedCurrency.APTOS, - currencySymbol: domain_1.SupportedCurrencyName.APTOS, - decimals: Decimals_1.DecimalsByCurrency.APTOS, - name: "Aptos", - nonce: Chain.APTOS, - type: ChainType.APTOS, - //needs additional query params - blockExplorerUrl: "https://explorer.aptoslabs.com/txn/", - blockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", - tnBlockExplorerUrl: "https://explorer.aptoslabs.com/txn/", - tnBlockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", -}); -exports.CHAIN_INFO.set(Chain.TON, { - name: "TON", - constructor: ton_1.tonHelper, - currency: domain_1.SupportedCurrency.TON, - currencySymbol: domain_1.SupportedCurrencyName.TON, - decimals: Decimals_1.DecimalsByCurrency.TON, - nonce: Chain.TON, - type: ChainType.TON, - tnBlockExplorerUrl: "https://testnet.tonscan.org/tx/", - blockExplorerUrl: "https://tonscan.org/tx/", - blockExplorerUrlAddr: "https://tonscan.org/address/", - tnBlockExplorerUrlAddr: "https://testnet.tonscan.org/address/", -}); -exports.CHAIN_INFO.set(Chain.CADUCEUS, { - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.CMP, - currencySymbol: domain_1.SupportedCurrencyName.CMP, - decimals: Decimals_1.DecimalsByCurrency.CMP, - name: "Caduceus", - nonce: Chain.CADUCEUS, - blockExplorerUrl: "https://mainnet.scan.caduceus.foundation/tx/", - tnBlockExplorerUrl: "https://galaxy.scan.caduceus.foundation/tx/", - blockExplorerUrlAddr: "https://mainnet.scan.caduceus.foundation/address/", - tnBlockExplorerUrlAddr: "https://galaxy.scan.caduceus.foundation/address/", - type: ChainType.EVM, - chainId: 256256, - tnChainId: 512512, -}); -exports.CHAIN_INFO.set(Chain.OKC, { - blockExplorerUrl: "https://www.oklink.com/okc/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.OKT, - currencySymbol: domain_1.SupportedCurrencyName.OKT, - decimals: Decimals_1.DecimalsByCurrency.OKT, - name: "OKC", - nonce: Chain.OKC, - type: ChainType.EVM, - chainId: 66, - blockExplorerUrlAddr: "https://www.oklink.com/en/okc/address/", - tnBlockExplorerUrl: "https://www.oklink.com/okc-test/", - tnBlockExplorerUrlAddr: "https://www.oklink.com/en/okc-test/address/", - tnChainId: 65, -}); -exports.CHAIN_INFO.set(Chain.ARBITRUM, { - blockExplorerUrl: "https://explorer.arbitrum.io/tx/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.ETH, - currencySymbol: domain_1.SupportedCurrencyName.ETH, - decimals: Decimals_1.DecimalsByCurrency.ETH, - name: "Arbitrum", - nonce: Chain.ARBITRUM, - type: ChainType.EVM, - chainId: 42161, - blockExplorerUrlAddr: "https://explorer.arbitrum.io/address/", - tnBlockExplorerUrl: "https://goerli-rollup-explorer.arbitrum.io/tx/", - tnBlockExplorerUrlAddr: "https://goerli-rollup-explorer.arbitrum.io/address/", - tnChainId: 421613, -}); -exports.CHAIN_INFO.set(Chain.BITGERT, { - blockExplorerUrl: "https://brisescan.com/tx/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.BRISE, - currencySymbol: domain_1.SupportedCurrencyName.BRISE, - decimals: Decimals_1.DecimalsByCurrency.ETH, - name: "Bitgert", - nonce: Chain.BITGERT, - type: ChainType.EVM, - chainId: 3250, - blockExplorerUrlAddr: "https://brisescan.com/address/", - tnBlockExplorerUrl: "https://testnet-explorer.brisescan.com/tx/", - tnBlockExplorerUrlAddr: "https://testnet-explorer.brisescan.com/address/", - tnChainId: 64668, -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFHZ0Q7QUFDaEQsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 diff --git a/dist/consts.ts b/dist/consts.ts deleted file mode 100644 index 037f9bd23..000000000 --- a/dist/consts.ts +++ /dev/null @@ -1,665 +0,0 @@ -import { - elrondHelperFactory, - ElrondParams, - ElrondHelper, -} from "./helpers/elrond"; -import { tronHelperFactory, TronParams, TronHelper } from "./helpers/tron"; -import { web3HelperFactory, Web3Params, Web3Helper } from "./helpers/web3"; - -import { SupportedCurrency } from "crypto-exchange-rate/dist/model/domain"; -import { - AlgorandParams, - AlgorandHelper, - algorandHelper, -} from "./helpers/algorand"; -import { TezosHelper, tezosHelperFactory, TezosParams } from "./helpers/tezos"; -import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; -import { - SecretHelper, - secretHelperFactory, - SecretParams, -} from "./helpers/secret"; -import { solanaHelper, SolanaHelper, SolanaParams } from "./helpers/solana"; -import { tonHelper, TonHelper, TonParams } from "./helpers/ton"; -import { - dfinityHelper, - DfinityHelper, - DfinityParams, -} from "./helpers/dfinity/dfinity"; -import { NearHelper, NearParams, nearHelperFactory } from "./helpers/near"; -import { aptosHelper, AptosHelper, AptosParams } from "./helpers/aptos"; -import { web3ERC20HelperFactory, Web3ERC20Params } from "./helpers/web3_erc20"; - -// All the supported testnet uri's are here. -export enum TestNetRpcUri { - ELROND = "https://devnet-gateway.elrond.com", - HECO = "https://http-testnet.hecochain.com", - BSC = "https://data-seed-prebsc-2-s2.binance.org:8545/", - ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", - AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", - POLYGON = "https://matic-mumbai.chainstacklabs.com", - FANTOM = "https://rpc.testnet.fantom.network/", - TRON = "https://api.shasta.trongrid.io/", - CELO = "https://alfajores-forno.celo-testnet.org", - HARMONY = "https://api.s0.b.hmny.io", - XDAI = "https://sokol.poa.network", - UNIQUE = "https://rpc-opal.unique.network/", - TEZOS = "https://ghostnet.smartpy.io", - VELAS = "https://explorer.testnet.velas.com/rpc", - IOTEX = "https://babel-api.testnet.iotex.io", - AURORA = "https://testnet.aurora.dev/", - GODWOKEN = "https://godwoken-testnet-v1.ckbapp.dev", - GATECHAIN = "https://meteora-evm.gatenode.cc", - VECHAIN = "https://sync-testnet.veblocks.net", - SECRET = "https://pulsar-2.api.trivium.network:9091/", - SKALE = "https://staging-v2.skalenodes.com/v1/actual-secret-cebalrai", - HEDERA = "https://0.testnet.hedera.com/", - NEAR = "https://rpc.testnet.near.org", - MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", - ABEYCHAIN = "https://testrpc.abeychain.com", - APTOS = "https://fullnode.testnet.aptoslabs.com", - TON = "https://testnet.toncenter.com/api/v2/jsonRPC", - SOLANA = "https://api.devnet.solana.com", - CADUCEUS = "https://galaxy.block.caduceus.foundation", - // TODO: Algorand - // TODO: Fuse -} - -export enum MainNetRpcUri { - ELROND = "https://gateway.elrond.com", - HECO = "https://http-mainnet-node.huobichain.com", - BSC = "https://bsc-dataseed.binance.org/", - ETHEREUM = "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", - AVALANCHE = "https://api.avax.network/ext/bc/C/rpc", - POLYGON = "https://polygon-rpc.com", - FANTOM = "https://rpc.ftm.tools/", - TRON = "https://api.trongrid.io/", - CELO = "https://forno.celo.org", - HARMONY = "https://rpc.s0.t.hmny.io", - XDAI = "https://gnosis.xp.network/node", - FUSE = "https://rpc.fuse.io/", - VELAS = "https://mainnet.velas.com/rpc", - TEZOS = "https://mainnet.smartpy.io", - IOTEX = "https://babel-api.mainnet.iotex.io", - AURORA = "https://mainnet.aurora.dev", - GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", - GATECHAIN = "https://evm.gatenode.cc", - VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "https://grpc.mainnet.secretsaturn.net", - SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", - NEAR = "https://rpc.mainnet.near.org", - MOONBEAM = "https://rpc.api.moonbeam.network", - ABEYCHAIN = "https://rpc.abeychain.com", - TON = "https://toncenter.com/api/v2/jsonRPC", - APTOS = "https://fullnode.mainnet.aptoslabs.com/", - CADUCEUS = "https://mainnet.block.caduceus.foundation/", - // TODO: Algorand -} - -type ElrondMeta = [ElrondHelper, ElrondParams]; -type Web3Meta = [Web3Helper, Web3Params]; -type TronMeta = [TronHelper, TronParams]; -type AlgoMeta = [AlgorandHelper, AlgorandParams]; -type TezosMeta = [TezosHelper, TezosParams]; -type SecretMeta = [SecretHelper, SecretParams]; -type SolanaMeta = [SolanaHelper, SolanaParams]; -type TonMeta = [TonHelper, TonParams]; -type DfinityMeta = [DfinityHelper, DfinityParams]; -type NearMeta = [NearHelper, NearParams]; -type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; -type AptosMeta = [AptosHelper, AptosParams]; - -// Static Assert to Ensure all values of Chain are in MetaMap -type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; - -export type MetaMap = { - 2: ElrondMeta; - 3: Web3Meta; - 4: Web3Meta; - 5: Web3Meta; - 6: Web3Meta; - 7: Web3Meta; - 8: Web3Meta; - 9: TronMeta; - 0xb: Web3Meta; - 0xc: Web3Meta; - 0xd: Web3Meta; - 0xe: Web3Meta; - 0xf: AlgoMeta; - 0x10: Web3Meta; - 0x11: Web3Meta; - 0x12: TezosMeta; - 0x13: Web3Meta; - 0x14: Web3Meta; - 0x15: Web3Meta; - 0x16: Web3Meta; - 0x17: Web3Meta; - 0x18: SecretMeta; - 0x19: Web3Meta; - 0x1a: SolanaMeta; - 0x1b: TonMeta; - 0x1c: DfinityMeta; - 0x1d: Web3Meta; - 0x1e: Web3ERC20Meta; - 0x1f: NearMeta; - 0x20: Web3Meta; - 0x21: Web3Meta; - 0x22: AptosMeta; - 0x23: Web3Meta; -} & MetaMapAssert; - -export namespace Chain { - export const ELROND = 2; - export const HECO = 3; - export const BSC = 4; - export const ETHEREUM = 5; - export const AVALANCHE = 0x6; - export const POLYGON = 7; - export const FANTOM = 8; - export const TRON = 9; - export const CELO = 0xb; //11 - export const HARMONY = 0xc; //12 - export const ONT = 0xd; //13 - export const XDAI = 0xe; //14 - export const ALGORAND = 0xf; //15 - export const FUSE = 0x10; // 16 - export const UNIQUE = 0x11; // 17 - export const TEZOS = 0x12; // 18 - export const VELAS = 0x13; // 19 - export const IOTEX = 0x14; // 20 - export const AURORA = 0x15; // 21 - export const GODWOKEN = 0x16; // 22 - export const GATECHAIN = 0x17; // 23 - export const SECRET = 0x18; // 24 - export const VECHAIN = 0x19; // 25 - export const SOLANA = 0x1a; // 26 - export const TON = 0x1b; // 27 - export const DFINITY = 0x1c; // 28 - export const HEDERA = 0x1d; // 29 - export const SKALE = 0x1e; // 30 - export const NEAR = 0x1f; // 31 - export const MOONBEAM = 0x20; // 32 - export const ABEYCHAIN = 0x21; // 33 - export const APTOS = 0x22; // 34 - export const CADUCEUS = 0x23; // 35 -} - -interface ChainData { - name: string; - nonce: number; - decimals: number; - constructor: (p: InferChainParam) => Promise>; - blockExplorerUrl: string; - tnBlockExplorerUrl?: string | ((tx: string) => string); - chainId?: number; - tnChainId?: number; - currency: SupportedCurrency; - type: string; - blockExplorerUrlAddr?: string; - tnBlockExplorerUrlAddr?: string | ((tx: string) => string); - rejectUnfreeze?: string[]; -} - -type ChainInfo = { - set(k: T, v: ChainData | undefined): void; - get(k: T): ChainData | undefined; -} & Map>; - -export enum ChainType { - EVM = "EVM", - ELROND = "ELROND", - TRON = "TRON", - TEZOS = "TEZOS", - ALGORAND = "ALGORAND", - COSMOS = "COSMOS", - DFINITY = "DFINITY", - SOLANA = "SOLANA", - TON = "TON", - NEAR = "NEAR", - HEDERA = "HEDERA", - APTOS = "APTOS", -} - -export const CHAIN_INFO: ChainInfo = new Map(); -CHAIN_INFO.set(Chain.ELROND, { - name: "Elrond", - nonce: 2, - decimals: 1e18, - constructor: elrondHelperFactory, - blockExplorerUrl: "https://explorer.elrond.com/transactions/", - blockExplorerUrlAddr: "https://explorer.elrond.com/address/", - tnBlockExplorerUrl: "https://testnet-explorer.elrond.com/transactions/", - tnBlockExplorerUrlAddr: "https://testnet-explorer.elrond.com/address/", - currency: SupportedCurrency.EGLD, - type: ChainType.ELROND, -}); -CHAIN_INFO.set(Chain.HECO, { - name: "HECO", - nonce: 3, - chainId: 256, - decimals: 1e18, - blockExplorerUrl: "https://testnet.hecoinfo.com/tx", - constructor: web3HelperFactory, - currency: SupportedCurrency.HT, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.BSC, { - name: "BSC", - nonce: 4, - chainId: 97, - decimals: 1e18, - blockExplorerUrl: "https://bscscan.com/tx/", - blockExplorerUrlAddr: "https://bscscan.com/address/", - tnBlockExplorerUrl: "https://testnet.bscscan.com/tx/", - tnBlockExplorerUrlAddr: "https://testnet.bscscan.com/address/", - constructor: web3HelperFactory, - currency: SupportedCurrency.BNB, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.ETHEREUM, { - name: "Ethereum", - nonce: 5, - currency: SupportedCurrency.ETH, - chainId: 5, - decimals: 1e18, - blockExplorerUrl: "https://etherscan.io/tx/", - blockExplorerUrlAddr: "https://etherscan.io/address/", - tnBlockExplorerUrl: "https://goerli.etherscan.io/tx/", - tnBlockExplorerUrlAddr: "https://goerli.etherscan.io/address/", - constructor: web3HelperFactory, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.AVALANCHE, { - name: "Avalanche", - nonce: 6, - chainId: 43113, - decimals: 1e18, - blockExplorerUrl: "https://snowtrace.io/tx/", - tnBlockExplorerUrl: "https://testnet.snowtrace.io/tx/", - blockExplorerUrlAddr: "https://snowtrace.io/address/", - tnBlockExplorerUrlAddr: "https://testnet.snowtrace.io/address/", - constructor: web3HelperFactory, - currency: SupportedCurrency.AVAX, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.POLYGON, { - name: "Polygon", - nonce: 0x7, - chainId: 80001, - decimals: 1e18, - blockExplorerUrl: "https://polygonscan.com/tx/", - tnBlockExplorerUrl: "https://mumbai.polygonscan.com/tx/", - blockExplorerUrlAddr: "https://polygonscan.com/address/", - tnBlockExplorerUrlAddr: "https://mumbai.polygonscan.com/address/", - constructor: web3HelperFactory, - currency: SupportedCurrency.MATIC, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.FANTOM, { - name: "Fantom", - nonce: 0x8, - decimals: 1e18, - chainId: 4002, - blockExplorerUrl: "https://ftmscan.com/tx/", - blockExplorerUrlAddr: "https://ftmscan.com/address/", - tnBlockExplorerUrlAddr: "https://testnet.ftmscan.com/address/", - tnBlockExplorerUrl: "https://testnet.ftmscan.com/tx/", - constructor: web3HelperFactory, - currency: SupportedCurrency.FTM, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.TRON, { - name: "Tron", - nonce: 0x9, - decimals: 1e6, - blockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", - tnBlockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", - blockExplorerUrlAddr: "https://tronscan.io/#/address/", - tnBlockExplorerUrlAddr: "https://shasta.tronscan.org/#/address/", - constructor: tronHelperFactory, - currency: SupportedCurrency.TRX, - type: ChainType.TRON, -}); -CHAIN_INFO.set(Chain.CELO, { - name: "Celo", - nonce: 0xb, - decimals: 1e18, - chainId: 44787, - blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", - constructor: web3HelperFactory, - currency: SupportedCurrency.CELO, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.HARMONY, { - name: "Harmony", - nonce: 0xc, - decimals: 1e18, - chainId: 1666700000, - blockExplorerUrl: "https://explorer.harmony.one/tx/", - tnBlockExplorerUrl: "https://explorer.testnet.harmony.one/tx/", - blockExplorerUrlAddr: "https://explorer.harmony.one/address/", - tnBlockExplorerUrlAddr: "https://explorer.testnet.harmony.one/address/", - constructor: web3HelperFactory, - currency: SupportedCurrency.ONE, - type: ChainType.EVM, - rejectUnfreeze: [ - "0xb90Dc9e354001e6260DE670EDD6aBaDb890C6aC9", - "0xAd6f94bDefB6D5ae941392Da5224ED083AE33adc", - ], -}); -CHAIN_INFO.set(Chain.ONT, { - name: "Ontology", - nonce: 0xd, - decimals: 1e18, - chainId: 1666700000, - blockExplorerUrl: "https://explorer.pops.one/tx", - constructor: web3HelperFactory, - currency: SupportedCurrency.ONT, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.XDAI, { - name: "xDai", - nonce: 0xe, - decimals: 1e18, - chainId: 0x64, - blockExplorerUrl: "https://blockscout.com/xdai/mainnet/tx/", - blockExplorerUrlAddr: "https://blockscout.com/xdai/mainnet/address/", - tnBlockExplorerUrl: "https://blockscout.com/xdai/testnet/tx/", - tnBlockExplorerUrlAddr: "https://blockscout.com/xdai/testnet/address/", - constructor: web3HelperFactory, - currency: SupportedCurrency.XDAI, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.ALGORAND, { - name: "Algorand", - nonce: 0xf, - decimals: 1e6, - chainId: undefined, - blockExplorerUrl: "https://algoexplorer.io/tx/", - tnBlockExplorerUrl: "https://testnet.algoexplorer.io/tx/", - blockExplorerUrlAddr: "https://algoexplorer.io/address/", - tnBlockExplorerUrlAddr: "https://testnet.algoexplorer.io/address/", - currency: SupportedCurrency.ALGO, - constructor: (p) => Promise.resolve(algorandHelper(p)), - type: ChainType.ALGORAND, -}); -CHAIN_INFO.set(Chain.FUSE, { - name: "FUSE", - nonce: 0x10, - decimals: 1e18, - chainId: undefined, - blockExplorerUrl: "https://explorer.fuse.io/tx/", - tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", - blockExplorerUrlAddr: "https://explorer.fuse.io/address/", - tnBlockExplorerUrlAddr: "https://explorer.fusespark.io/address/", - - currency: SupportedCurrency.FUSE, - constructor: web3HelperFactory, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.UNIQUE, { - name: "Unique", - nonce: 0x11, - decimals: 1e18, - chainId: 8888, - blockExplorerUrl: "CANT FIND", - constructor: web3HelperFactory, - currency: SupportedCurrency.OPL, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.TEZOS, { - name: "Tezos", - nonce: 0x12, - decimals: 1e6, - constructor: tezosHelperFactory, - currency: SupportedCurrency.XTZ, - blockExplorerUrl: "https://tzkt.io/", - tnBlockExplorerUrl: "https://ghostnet.tzkt.io/", - tnBlockExplorerUrlAddr: "https://ghostnet.tzkt.io/", - blockExplorerUrlAddr: "https://tzkt.io/", - type: ChainType.TEZOS, -}); -CHAIN_INFO.set(Chain.VELAS, { - name: "Velas", - blockExplorerUrl: "https://explorer.velas.com/tx/", - tnBlockExplorerUrlAddr: "https://explorer.testnet.velas.com/address/", - blockExplorerUrlAddr: "https://explorer.velas.com/address/", - tnBlockExplorerUrl: "https://explorer.testnet.velas.com/tx/", - nonce: 0x13, - decimals: 1e18, - constructor: web3HelperFactory, - currency: SupportedCurrency.VLX, - chainId: 111, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.AURORA, { - name: "Aurora", - blockExplorerUrl: "https://aurorascan.dev/tx/", - tnBlockExplorerUrl: "hhttps://testnet.aurorascan.dev/tx/", - blockExplorerUrlAddr: "https://aurorascan.dev/address/", - tnBlockExplorerUrlAddr: "https://testnet.aurorascan.dev/address", - nonce: Chain.AURORA, - decimals: 1e18, - constructor: web3HelperFactory, - currency: SupportedCurrency.AURORA, - chainId: 1313161554, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.IOTEX, { - name: "IoTeX", - blockExplorerUrl: "https://iotexscan.io/tx/", - blockExplorerUrlAddr: "https://iotexscan.io/address/", - tnBlockExplorerUrl: "https://testnet.iotexscan.io/tx/", - tnBlockExplorerUrlAddr: "https://testnet.iotexscan.io/address/", - nonce: 0x14, - decimals: 1e18, - constructor: web3HelperFactory, - currency: SupportedCurrency.IOTX, - chainId: 4689, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.GODWOKEN, { - name: "GodWoken", - blockExplorerUrl: "https://gwscan.com/tx/", - tnBlockExplorerUrl: "https://v1.testnet.gwscan.com/tx/", - blockExplorerUrlAddr: "https://gwscan.com/account/", - tnBlockExplorerUrlAddr: "https://v1.testnet.gwscan.com/account/", - constructor: web3HelperFactory, - nonce: 0x16, - decimals: 1e18, - currency: SupportedCurrency.CKB, - chainId: 868455272153094, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.GATECHAIN, { - name: "GateChain", - - blockExplorerUrl: "https://gatescan.org/tx/", - tnBlockExplorerUrl: "https://gatescan.org/testnet/tx/", - blockExplorerUrlAddr: "https://gatescan.org/address/", - tnBlockExplorerUrlAddr: "https://gatescan.org/testnet/address/", - constructor: web3HelperFactory, - nonce: 0x17, - decimals: 1e18, - currency: SupportedCurrency.GT, - chainId: 85, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.VECHAIN, { - name: "VeChain", - tnBlockExplorerUrl: "https://explore-testnet.vechain.org/transactions/", - blockExplorerUrlAddr: "https://explore.vechain.org/accounts/", - blockExplorerUrl: "https://explore.vechain.org/transactions/", - tnBlockExplorerUrlAddr: "https://explore-testnet.vechain.org/accounts/", - constructor: web3HelperFactory, - nonce: 0x19, - currency: SupportedCurrency.VET, - decimals: 1e18, - chainId: 39, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.SECRET, { - name: "Secret", - //blockExplorerUrl: "", // TODO - constructor: secretHelperFactory, - nonce: Chain.SECRET, - currency: SupportedCurrency.SCRT, - decimals: 1e6, - type: ChainType.COSMOS, - blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", - blockExplorerUrlAddr: "https://atomscan.com/secret-network/accounts/", -}); -CHAIN_INFO.set(Chain.SOLANA, { - name: "Solana", - blockExplorerUrl: "https://solscan.io/tx/", - blockExplorerUrlAddr: "https://solscan.io/account/", - tnBlockExplorerUrl: (tx: string) => - `https://solscan.io/tx/${tx}?cluster=devnet`, - tnBlockExplorerUrlAddr: (address: string) => - `https://solscan.io/account/${address}?cluster=devnet`, - constructor: solanaHelper, - nonce: Chain.SOLANA, - currency: SupportedCurrency.SOL, - decimals: 1e9, - type: ChainType.SOLANA, -}); -/*CHAIN_INFO.set(Chain.TON, { - name: "TON", - blockExplorerUrl: "", // TODO - constructor: tonHelper, - nonce: Chain.TON, - currency: SupportedCurrency.TON, - decimals: 1e9, - type: ChainType.TON, -}); -CHAIN_INFO.set(Chain.DFINITY, { - name: "DFINITY", - blockExplorerUrl: "", // TODO - constructor: dfinityHelper, - nonce: Chain.DFINITY, - currency: SupportedCurrency.ICP, - decimals: 1e8, - type: ChainType.DFINITY, -});*/ - -CHAIN_INFO.set(Chain.HEDERA, { - blockExplorerUrl: "https://hashscan.io/#/mainnet/transaction/", - tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", - constructor: web3HelperFactory, - currency: SupportedCurrency.HBAR, - decimals: 1e6, - nonce: Chain.HEDERA, - name: "Hedera", - type: ChainType.HEDERA, - blockExplorerUrlAddr: "https://hashscan.io/#/mainnet/account/", - tnBlockExplorerUrlAddr: "https://hashscan.io/#/testnet/account/", -}); - -CHAIN_INFO.set(Chain.SKALE, { - name: "Skale", - //needs additional query params - blockExplorerUrl: - "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/tx/", - tnBlockExplorerUrl: - "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", - blockExplorerUrlAddr: - "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/address/", - tnBlockExplorerUrlAddr: - "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", - constructor: web3ERC20HelperFactory, - currency: SupportedCurrency.SKL, - decimals: 1e18, - chainId: 1564830818, - nonce: Chain.SKALE, - type: ChainType.EVM, -}); - -CHAIN_INFO.set(Chain.DFINITY, { - blockExplorerUrl: "", // TODO - constructor: dfinityHelper, - currency: SupportedCurrency.ICP, - decimals: 1e8, - name: "DFINITY", - nonce: Chain.DFINITY, - type: ChainType.DFINITY, -}); - -CHAIN_INFO.set(Chain.NEAR, { - blockExplorerUrl: "https://explorer.mainnet.near.org/transactions/", - tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", - constructor: nearHelperFactory, - currency: SupportedCurrency.NEAR, - decimals: 1e24, - name: "NEAR", - nonce: Chain.NEAR, - type: ChainType.NEAR, - blockExplorerUrlAddr: "https://explorer.mainnet.near.org/accounts/", - tnBlockExplorerUrlAddr: "https://explorer.testnet.near.org/accounts/", -}); - -CHAIN_INFO.set(Chain.MOONBEAM, { - constructor: web3HelperFactory, - currency: SupportedCurrency.GLMR, - decimals: 1e18, - name: "MoonBeam", - nonce: Chain.MOONBEAM, - chainId: 0x507, - type: ChainType.EVM, - blockExplorerUrlAddr: "https://moonbeam.moonscan.io/address/", - tnBlockExplorerUrlAddr: "https://moonbase.moonscan.io/address/", - blockExplorerUrl: "https://moonscan.io/tx/", - tnBlockExplorerUrl: "https://moonbase.moonscan.io/tx/", -}); - -CHAIN_INFO.set(Chain.ABEYCHAIN, { - tnBlockExplorerUrl: "https://testnet-explorer.abeychain.com/tx/", - tnBlockExplorerUrlAddr: "https://testnet-explorer.abeychain.com/address/", - blockExplorerUrl: "https://scan.abeychain.com/tx/", - blockExplorerUrlAddr: "https://scan.abeychain.com/address/", - constructor: web3HelperFactory, - currency: SupportedCurrency.ABEY, - decimals: 1e18, - name: "AbeyChain", - nonce: Chain.ABEYCHAIN, - chainId: 178, - type: ChainType.EVM, -}); -CHAIN_INFO.set(Chain.APTOS, { - constructor: aptosHelper, - currency: SupportedCurrency.APTOS, - decimals: 1e6, - name: "Aptos", - nonce: Chain.APTOS, - type: ChainType.APTOS, - //needs additional query params - blockExplorerUrl: "https://explorer.aptoslabs.com/txn/", - blockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", - tnBlockExplorerUrl: "https://explorer.aptoslabs.com/txn/", - tnBlockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", -}); -CHAIN_INFO.set(Chain.TON, { - name: "TON", - constructor: tonHelper, - currency: SupportedCurrency.TON, - decimals: 1e9, - nonce: Chain.TON, - type: ChainType.TON, - tnBlockExplorerUrl: "https://testnet.tonscan.org/tx/", - blockExplorerUrl: "https://tonscan.org/tx/", - blockExplorerUrlAddr: "https://tonscan.org/address/", - tnBlockExplorerUrlAddr: "https://testnet.tonscan.org/address/", -}); -CHAIN_INFO.set(Chain.CADUCEUS, { - constructor: web3HelperFactory, - currency: SupportedCurrency.CMP, - decimals: 1e18, - name: "Caduceus", - nonce: Chain.CADUCEUS, - blockExplorerUrl: "https://mainnet.scan.caduceus.foundation/tx/", - tnBlockExplorerUrl: "https://galaxy.scan.caduceus.foundation/tx/", - blockExplorerUrlAddr: "https://mainnet.scan.caduceus.foundation/address/", - tnBlockExplorerUrlAddr: "https://galaxy.scan.caduceus.foundation/address/", - type: ChainType.EVM, - chainId: 256256, - tnChainId: 512512, -}); diff --git a/dist/emitter.d.ts b/dist/emitter.d.ts deleted file mode 100644 index a0ebebdb7..000000000 --- a/dist/emitter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const Emitter: EventTarget | undefined; -//# sourceMappingURL=emitter.d.ts.map diff --git a/dist/emitter.d.ts.map b/dist/emitter.d.ts.map deleted file mode 100644 index c05eaa4b0..000000000 --- a/dist/emitter.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,yBAC2C,CAAC"} \ No newline at end of file diff --git a/dist/emitter.js b/dist/emitter.js deleted file mode 100644 index 286e80f6b..000000000 --- a/dist/emitter.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Emitter = void 0; -exports.Emitter = typeof window !== "undefined" ? new EventTarget() : undefined; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsT0FBTyxHQUNsQixPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyJ9 diff --git a/dist/emitter.ts b/dist/emitter.ts deleted file mode 100644 index 908802616..000000000 --- a/dist/emitter.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const Emitter = - typeof window !== "undefined" ? new EventTarget() : undefined; diff --git a/dist/factory/cons.d.ts b/dist/factory/cons.d.ts deleted file mode 100644 index 41b83692d..000000000 --- a/dist/factory/cons.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { BatchExchangeRateRepo, ExchangeRateRepo } from "crypto-exchange-rate"; -import { NftInfo, FullChain } from ".."; -export declare const _headers: { - "Content-Type": string; - Accept: string; -}; -export declare function exchangeRateRepo( - baseUrl: string -): ExchangeRateRepo & BatchExchangeRateRepo; -export declare function checkBlockedContracts(to: any, contract: string): void; -export declare function getDefaultContract( - nft: NftInfo, - fromChain: FullChain, - toChain: FullChain -): string | undefined; -export declare function prepareTokenId(nft: NftInfo, from: number): any; -//# sourceMappingURL=cons.d.ts.map diff --git a/dist/factory/cons.d.ts.map b/dist/factory/cons.d.ts.map deleted file mode 100644 index 8a2330027..000000000 --- a/dist/factory/cons.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cons.d.ts","sourceRoot":"","sources":["../../src/factory/cons.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIxC,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,qBAAqB,CAS1C;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAO9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAChE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GACzC,MAAM,GAAG,SAAS,CAsDpB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,OAuB7D"} \ No newline at end of file diff --git a/dist/factory/cons.js b/dist/factory/cons.js deleted file mode 100644 index cc8f8deae..000000000 --- a/dist/factory/cons.js +++ /dev/null @@ -1,107 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.prepareTokenId = - exports.getDefaultContract = - exports.checkBlockedContracts = - exports.exchangeRateRepo = - exports._headers = - void 0; -const crypto_exchange_rate_1 = require("crypto-exchange-rate"); -const consts_1 = require("../consts"); -exports._headers = { - "Content-Type": "application/json", - Accept: "*/*", -}; -function exchangeRateRepo(baseUrl) { - const baseService = - crypto_exchange_rate_1.NetworkModel.batchExchangeRateService(baseUrl); - return (0, crypto_exchange_rate_1.cachedExchangeRateRepo)( - (0, crypto_exchange_rate_1.networkBatchExchangeRateRepo)( - baseService, - crypto_exchange_rate_1.NetworkModel.exchangeRateDtoMapper() - ) - ); -} -exports.exchangeRateRepo = exchangeRateRepo; -function checkBlockedContracts(to, contract) { - const chain = consts_1.CHAIN_INFO.get(to); - if (chain?.rejectUnfreeze && chain?.rejectUnfreeze.includes(contract)) { - throw new Error( - `Transfering to ${chain.name} is prohibited by the NFT project team` - ); - } -} -exports.checkBlockedContracts = checkBlockedContracts; -function getDefaultContract(nft, fromChain, toChain) { - const defaultMintError = new Error( - `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` - ); - const from = fromChain.getNonce(); - const to = toChain.getNonce(); - const fromType = consts_1.CHAIN_INFO.get(from)?.type; - const toType = consts_1.CHAIN_INFO.get(to)?.type; - const contract = - //@ts-ignore contractType is checked - "contractType" in nft.native && - //@ts-ignore contractType is checked - nft.native.contractType === "ERC1155" && - toChain.XpNft1155 - ? toChain.XpNft1155 - : toChain.XpNft; - if ( - typeof window !== "undefined" && - (/(allowDefaultMint=true)/.test(window.location.search) || - /testnet/.test(window.location.pathname)) - ) { - return contract; - } - if ( - (from === consts_1.Chain.VECHAIN && toType === consts_1.ChainType.EVM) || - (to === consts_1.Chain.VECHAIN && fromType === consts_1.ChainType.EVM) - ) { - throw defaultMintError; - } - if ( - (fromType === consts_1.ChainType.EVM && - toType === consts_1.ChainType.ELROND) || - (fromType === consts_1.ChainType.ELROND && - toType === consts_1.ChainType.EVM) - ) { - throw defaultMintError; - } - if ( - (fromType === consts_1.ChainType.EVM && - toType === consts_1.ChainType.TEZOS) || - (fromType === consts_1.ChainType.TEZOS && toType === consts_1.ChainType.EVM) - ) { - throw defaultMintError; - } - if (fromType === consts_1.ChainType.TRON) { - throw defaultMintError; - } - return contract; -} -exports.getDefaultContract = getDefaultContract; -function prepareTokenId(nft, from) { - const tokenId = - //@ts-ignore - nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); - if (tokenId) { - const notNumber = isNaN(Number(tokenId)); - if (notNumber) { - if (from === consts_1.Chain.ELROND) { - if (nft.native.nonce) return String(nft.native.nonce); - const hex = tokenId.split("-")?.at(2); - return String(hex ? parseInt(hex, 16) : ""); - } - if (from === consts_1.Chain.TON) { - return "1"; - } - } else { - return tokenId; - } - } - return undefined; -} -exports.prepareTokenId = prepareTokenId; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3J5L2NvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBTThCO0FBSTlCLHNDQUF5RDtBQUU1QyxRQUFBLFFBQVEsR0FBRztJQUN0QixjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLFNBQWdCLGdCQUFnQixDQUM5QixPQUFlO0lBRWYsTUFBTSxXQUFXLEdBQUcsbUNBQVksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRSxPQUFPLElBQUEsNkNBQXNCLEVBQzNCLElBQUEsbURBQTRCLEVBQzFCLFdBQVcsRUFDWCxtQ0FBWSxDQUFDLHFCQUFxQixFQUFFLENBQ3JDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFYRCw0Q0FXQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLEVBQU8sRUFBRSxRQUFnQjtJQUM3RCxNQUFNLEtBQUssR0FBRyxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxJQUFJLEtBQUssRUFBRSxjQUFjLElBQUksS0FBSyxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDckUsTUFBTSxJQUFJLEtBQUssQ0FDYixrQkFBa0IsS0FBSyxDQUFDLElBQUksd0NBQXdDLENBQ3JFLENBQUM7S0FDSDtBQUNILENBQUM7QUFQRCxzREFPQztBQUVELFNBQWdCLGtCQUFrQixDQUNoQyxHQUFxQixFQUNyQixTQUE0QyxFQUM1QyxPQUEwQztJQUUxQyxNQUFNLGdCQUFnQixHQUFHLElBQUksS0FBSyxDQUNoQyx5R0FBeUcsQ0FDMUcsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFOUIsTUFBTSxRQUFRLEdB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 diff --git a/dist/factory/cons.ts b/dist/factory/cons.ts deleted file mode 100644 index fb1f138a6..000000000 --- a/dist/factory/cons.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { - BatchExchangeRateRepo, - cachedExchangeRateRepo, - ExchangeRateRepo, - networkBatchExchangeRateRepo, - NetworkModel, -} from "crypto-exchange-rate"; - -import { NftInfo, FullChain } from ".."; - -import { CHAIN_INFO, ChainType, Chain } from "../consts"; - -export const _headers = { - "Content-Type": "application/json", - Accept: "*/*", -}; - -export function exchangeRateRepo( - baseUrl: string -): ExchangeRateRepo & BatchExchangeRateRepo { - const baseService = NetworkModel.batchExchangeRateService(baseUrl); - - return cachedExchangeRateRepo( - networkBatchExchangeRateRepo( - baseService, - NetworkModel.exchangeRateDtoMapper() - ) - ); -} - -export function checkBlockedContracts(to: any, contract: string) { - const chain = CHAIN_INFO.get(to); - if (chain?.rejectUnfreeze && chain?.rejectUnfreeze.includes(contract)) { - throw new Error( - `Transfering to ${chain.name} is prohibited by the NFT project team` - ); - } -} - -export function getDefaultContract( - nft: NftInfo, - fromChain: FullChain, - toChain: FullChain -): string | undefined { - const defaultMintError = new Error( - `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` - ); - - const from = fromChain.getNonce(); - const to = toChain.getNonce(); - - const fromType = CHAIN_INFO.get(from)?.type; - const toType = CHAIN_INFO.get(to)?.type; - - const contract = - //@ts-ignore contractType is checked - "contractType" in nft.native && - //@ts-ignore contractType is checked - nft.native.contractType === "ERC1155" && - toChain.XpNft1155 - ? toChain.XpNft1155 - : toChain.XpNft; - - if ( - typeof window !== "undefined" && - (/(allowDefaultMint=true)/.test(window.location.search) || - /testnet/.test(window.location.pathname)) - ) { - return contract; - } - - if ( - (from === Chain.VECHAIN && toType === ChainType.EVM) || - (to === Chain.VECHAIN && fromType === ChainType.EVM) - ) { - throw defaultMintError; - } - - if ( - (fromType === ChainType.EVM && toType === ChainType.ELROND) || - (fromType === ChainType.ELROND && toType === ChainType.EVM) - ) { - throw defaultMintError; - } - - if ( - (fromType === ChainType.EVM && toType === ChainType.TEZOS) || - (fromType === ChainType.TEZOS && toType === ChainType.EVM) - ) { - throw defaultMintError; - } - - if (fromType === ChainType.TRON) { - throw defaultMintError; - } - - return contract; -} - -export function prepareTokenId(tokenId: string | undefined, from: number) { - if (tokenId) { - const notNumber = isNaN(Number(tokenId)); - - if (notNumber) { - if (from === Chain.ELROND) { - const hex = tokenId.split("-")?.at(2); - return String(hex ? parseInt(hex, 16) : ""); - } - - if (from === Chain.TON) { - return "1"; - } - } else { - return tokenId; - } - } - return undefined; -} diff --git a/dist/factory/factories.d.ts b/dist/factory/factories.d.ts deleted file mode 100644 index dc49c8ce0..000000000 --- a/dist/factory/factories.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ChainParams } from "."; -export declare namespace ChainFactoryConfigs { - const TestNet: () => Promise>; - const Staging: () => Promise>; - const MainNet: () => Promise>; -} -//# sourceMappingURL=factories.d.ts.map diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map deleted file mode 100644 index e7c161b97..000000000 --- a/dist/factory/factories.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAyYvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA6LvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAmXvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js deleted file mode 100644 index d3b540ebf..000000000 --- a/dist/factory/factories.js +++ /dev/null @@ -1,1155 +0,0 @@ -"use strict"; -var __createBinding = - (this && this.__createBinding) || - (Object.create - ? function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function () { - return m[k]; - }, - }); - } - : function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); -var __setModuleDefault = - (this && this.__setModuleDefault) || - (Object.create - ? function (o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } - : function (o, v) { - o["default"] = v; - }); -var __importStar = - (this && this.__importStar) || - function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ChainFactoryConfigs = void 0; -//@ts-ignore -const tronweb_1 = __importDefault(require("tronweb")); -const consts_1 = require("../consts"); -const ethers_1 = require("ethers"); -const taquito_1 = require("@taquito/taquito"); -const notifier_1 = require("../notifier"); -const connex_driver_1 = require("@vechain/connex-driver"); -const thor = __importStar(require("web3-providers-connex")); -const connex_framework_1 = require("@vechain/connex-framework"); -const hethers_1 = require("@hashgraph/hethers"); -const agent_1 = require("@dfinity/agent"); -const principal_1 = require("@dfinity/principal"); -const tonweb_1 = __importDefault(require("tonweb")); -/*const EVM_VALIDATORS = [ - "0xffa74a26bf87a32992bb4be080467bb4a8019e00", - "0x837b2eb764860b442c971f98f505e7c5f419edd7", - "0x9671ce5a02eb53cf0f2cbd220b34e50c39c0bf23", - "0x90e79cc7a06dbd227569920a8c4a625f630d77f4", - "0xdc80905cafeda39cb19a566baeef52472848e82f", - "0x77745cd585798e55938940e3d4dd0fd7cde7bdd6", - "0xc2a29b4e9fa71e9033a52611544403241c56ac5e", -];*/ -// const _EVM_TESTNET_VALIDATORS = [ -// "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", -// "0xae87208a5204B6606d3AB177Be5fdf62267Cd499", -// "0x5002258315873AdCbdEF25a8E71C715A4f701dF5", -// ]; -const middleware_uri = "https://notifier.xp.network"; -const testnet_middleware_uri = - "https://testnet-notifier.xp.network/notify-test/"; -var ChainFactoryConfigs; -(function (ChainFactoryConfigs) { - ChainFactoryConfigs.TestNet = async () => { - const feeMargin = { min: 1, max: 5 }; - const notifier = (0, notifier_1.evNotifier)(testnet_middleware_uri); - // VeChain related: - const net = new connex_driver_1.SimpleNet(consts_1.TestNetRpcUri.VECHAIN); - const driver = await connex_driver_1.Driver.connect(net); - const provider = thor.ethers.modifyProvider( - new ethers_1.ethers.providers.Web3Provider( - new thor.ConnexProvider({ - connex: new connex_framework_1.Framework(driver), - }) - ) - ); - return { - elrondParams: { - node_uri: consts_1.TestNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgqy2nx5z4cpr90de4sga2v2yx62fph3lg8g6vskt0k2f", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqc854pa9ruzgs5f8rdzzc02xgq8kqku3ng6vs59vmf8", - esdt_nft: "XPNFT-af3fde", - esdt_swap: "WEGLD-708f9b", - notifier, - nonce: 2, - feeMargin, - }, - tonParams: { - tonweb: new tonweb_1.default( - new tonweb_1.default.HttpProvider(consts_1.TestNetRpcUri.TON, { - apiKey: - "abe8c1222f19b0891a9a35889d112dc88562093467db8dda39961eeacd50f9b1", - }) - ), - bridgeAddr: "kQBwUu-b4O6qDYq3iDRvsYUnTD6l3WCxLXkv0aH6ywAaPs3c", - burnerAddr: "kQCbH9gGgqJzXuusUVajW_40brrl2fxTYqMkk6HUhJnIgOQA", - xpnftAddr: "EQDji0YH-SNT-qi6o5dQQBLeWL0Xmm46fnqj34EYhOL34WDc", - feeMargin, - notifier, - }, - solanaParams: { - xpnftAddr: "C7bw5dJZwhjWd6TZE3LnE2b1RLqWDiy9XRMA1rajPKQY", - bridgeContractAddr: "FXaXLtmkuoJCJeX6BnLwQJWgT8cPdwuXN8BmmQzVvuRA", - endpoint: consts_1.TestNetRpcUri.SOLANA, - notifier, - feeMargin, - }, - vechainParams: { - notifier, - feeMargin, - nonce: consts_1.Chain.VECHAIN, - provider, - minter_addr: "0x5142f6Cc88a9a91b4F6a1972Ce412d57245092A8", - erc721_addr: "0x1cCF127eB11bD9bdbf2b4000dCef04c34C13850B", - erc1155_addr: "0x1109b0CAB4C4e51aBA040a8A6d16273c305941F8", - erc721Minter: "0x1E749e1580889334Bd61254fFab15c1B3ADe1Afd", - erc1155Minter: "0xDA5e020bA795191ff97A5AF97631bACbdcD1354b", - }, - tronParams: { - provider: new tronweb_1.default({ - fullHost: consts_1.TestNetRpcUri.TRON, - }), - notifier, - minter_addr: "TY46GA3GGdMtu9GMaaSPPSQtqq9CZAv5sK", - erc721_addr: "TDhb2kyurMwoc1eMndKzqNebji1ap1DJC4", - erc1155_addr: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", - erc1155Minter: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", - erc721Minter: "TMVDt5PP53eQro5hLafibv2xWzSSDSMyjy", - validators: [ - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", - ], - nonce: consts_1.Chain.TRON, - feeMargin, - }, - caduceusParams: { - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.CADUCEUS - ), - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - nonce: consts_1.Chain.CADUCEUS, - }, - avalancheParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.AVALANCHE - ), - minter_addr: "0xDdF1f6B8Ae8cd26dBE7C4C3ed9ac8E6D8B3a4FdC", - erc721_addr: "0xE1D8Df2e06797F22e7ce25c95A7ddccb926f8A1E", - erc1155Minter: "0xfA9214AEe59a6631A400DC039808457524dE70A2", - erc721Minter: "0x54Db938575DD089702822F191AEbB25C2Af7D1Ef", - erc1155_addr: "0xfA9214AEe59a6631A400DC039808457524dE70A2", - nonce: consts_1.Chain.AVALANCHE, - feeMargin, - }, - polygonParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.POLYGON - ), - minter_addr: "0x224f78681099D66ceEdf4E52ee62E5a98CCB4b9e", - erc721_addr: "0xb678b13E41a47e46A4046a4D8315b32E0F34389c", - erc1155Minter: "0x5A768f8dDC67ccCA1431879BcA28E93a6c7722bb", - erc1155_addr: "0xc1D778Ce89154357471bA6c4C6E51f0e590FFe57", - erc721Minter: "0x6516E2D3387A9CF4E5e868E7842D110c95A9f3B4", - nonce: consts_1.Chain.POLYGON, - feeMargin, - }, - dfinityParams: { - agent: new agent_1.HttpAgent({ - host: "https://ic0.app", - }), - bridgeContract: principal_1.Principal.fromText( - "e3io4-qaaaa-aaaak-qasua-cai" - ), - xpnftId: principal_1.Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), - umt: principal_1.Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), - notifier, - feeMargin, - }, - moonbeamParams: { - nonce: consts_1.Chain.MOONBEAM, - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.MOONBEAM - ), - erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", - erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", - erc1155_addr: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", - erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", - minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - }, - aptosParams: { - rpcUrl: consts_1.TestNetRpcUri.APTOS, - bridge: - "0x2b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58", - xpnft: "XPNFT", - notifier, - feeMargin, - nonce: consts_1.Chain.APTOS, - network: "testnet", - }, - abeyChainParams: { - nonce: consts_1.Chain.ABEYCHAIN, - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.ABEYCHAIN - ), - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - }, - fantomParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.FANTOM - ), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc1155_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", - erc721Minter: "string", - nonce: consts_1.Chain.FANTOM, - feeMargin, - }, - bscParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.BSC - ), - minter_addr: "0x3Dd26fFf61D2a79f5fB77100d6daDBF073F334E6", - erc721_addr: "0x783eF7485DCF27a3Cf59F5A0A406eEe3f9b2AaeB", - erc1155Minter: "0x5dA3b7431f4581a7d35aEc2f3429174DC0f2A2E1", - erc721Minter: "0x97CD6fD6cbFfaa24f5c858843955C2601cc7F2b9", - erc1155_addr: "0xb5278A4808e2345A3B9d08bAc8909A121aFaEBB3", - nonce: consts_1.Chain.BSC, - feeMargin, - }, - celoParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.CELO - ), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155_addr: "", - erc1155Minter: "string", - erc721Minter: "string", - nonce: consts_1.Chain.CELO, - feeMargin, - }, - harmonyParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.HARMONY - ), - minter_addr: "0x198Cae9EE853e7b44E99c0b35Bddb451F83485d5", - erc721_addr: "0x1280c5c11bF0aAaaEAeBc998893B42e08B26fD5A", - erc1155Minter: "0xB546c2358A6e4b0B83192cCBB83CaE37FA572fe1", - erc721Minter: "0xb036640d6f7cAfd338103dc60493250561Af2eBc", - erc1155_addr: "0x44FCF0001A2B03260e4Bba44AF93a60C64cE79A2", - nonce: consts_1.Chain.HARMONY, - feeMargin, - }, - ropstenParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.ROPSTEN - ), - erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", - erc721_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", - erc1155Minter: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", - erc721Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", - minter_addr: "0x04a5f9158829Cae5a0a549954AdEaBD47BbB3d2d", - nonce: consts_1.Chain.ETHEREUM, - feeMargin, - }, - okcParams: { - erc721Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", - erc1155Minter: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc1155_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - erc721_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - minter_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", - feeMargin, - nonce: consts_1.Chain.OKC, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.OKC - ), - }, - arbitrumParams: { - erc721Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", - erc1155Minter: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", - erc1155_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", - erc721_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - minter_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", - feeMargin, - nonce: consts_1.Chain.ARBITRUM, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.ARBITRUM - ), - }, - bitgertParams: { - erc721Minter: "0xf185759aDb97977b419e3bc25b14E751c93865e", - erc1155Minter: "0xb0801bffD146c21EF91E86625756aAa7f74aDB3a", - erc1155_addr: "0x7b7Bb6ba1796f2C766cFae6A2C60463766615c69", - erc721_addr: "0x56E5298Ba72125DbF8180b199f74aC2B51d31Deb", - minter_addr: "0x39d4F26213245D33f506ECA1ce68D08dCF4d8d14", - feeMargin, - nonce: consts_1.Chain.BITGERT, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.BITGERT - ), - }, - xDaiParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.XDAI - ), - minter_addr: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", - erc721_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", - erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", - erc1155_addr: "0x1C6d7aa611B30C9C1e5f52068E145b77b0e661b2", - nonce: consts_1.Chain.XDAI, - feeMargin, - }, - algorandParams: { - algodApiKey: - "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - indexerUri: "https://algoindexer.testnet.algoexplorerapi.io", - algodUri: "https://node.testnet.algoexplorerapi.io", - nonce: consts_1.Chain.ALGORAND, - sendNftAppId: 83148194, - algodPort: 443, - notifier, - feeMargin, - }, - auroraParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.AURORA - ), - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - nonce: consts_1.Chain.AURORA, - feeMargin, - }, - uniqueParams: { - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.UNIQUE - ), - nonce: consts_1.Chain.UNIQUE, - erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc1155_addr: "", - minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155Minter: "string", - erc721Minter: "string", - notifier, - feeMargin, - }, - tezosParams: { - bridgeAddress: "KT1NJG7j4Z5LbU3obL5TUaJPGNT45ukRTQrH", - notifier, - Tezos: new taquito_1.TezosToolkit(consts_1.TestNetRpcUri.TEZOS), - xpnftAddress: "KT1GRqXuUpGJGDLCRsgQ9nDvVu7tap6LPxTC", - validators: [ - "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", - "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", - "tz1exbY3JKPRpo2KLegK8iqoVNRLn1zFrnZi", - ], - feeMargin, - }, - velasParams: { - notifier, - erc721_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", - erc1155_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", - minter_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", - erc1155Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", - erc721Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", - nonce: consts_1.Chain.VELAS, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.VELAS - ), - feeMargin, - }, - iotexParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.IOTEX - ), - minter_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", - erc721_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", - erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", - erc1155Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", - erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", - nonce: consts_1.Chain.IOTEX, - feeMargin, - }, - hederaParams: { - notifier, - provider: hethers_1.hethers.getDefaultProvider("testnet"), - feeMargin, - nonce: consts_1.Chain.HEDERA, - erc721_addr: "0x0000000000000000000000000000000002e88e04", - erc1155_addr: "0x0000000000000000000000000000000002e88e04", - minter_addr: "0x0000000000000000000000000000000002e86d67", - erc721Minter: "0x0000000000000000000000000000000002da3c1d", - erc1155Minter: "0x0000000000000000000000000000000002da3c20", - }, - skaleParams: { - nonce: consts_1.Chain.SKALE, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.SKALE - ), - feeMargin, - erc1155_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - erc1155Minter: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc721Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", - erc721_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - minter_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", - paymentTokenAddress: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - }, - godwokenParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.GODWOKEN - ), - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - nonce: consts_1.Chain.GODWOKEN, - feeMargin, - }, - gateChainParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.GATECHAIN - ), - minter_addr: "0x2B24de7BFf5d2ab01b1C53682Ee5987c9BCf1BAc", - erc721_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc1155_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc721Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155Minter: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - nonce: consts_1.Chain.GATECHAIN, - feeMargin, - }, - secretParams: { - notifier, - rpcUrl: consts_1.TestNetRpcUri.SECRET, - bridge: { - contractAddress: "secret1ecsxtsrct6h647lpztnnzc9e47ezh0uu673c8h", - codeHash: - "29a127369d1f4326fb684435fde702fa9619c812dfb5b3a1929529bab0e308e0", - }, - xpnft: { - contractAddress: "secret1x4afa2shvq4uwwtl0ld8qnjfm3jkmyvap3yn9g", - codeHash: - "090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", - }, - umt: { - contractAddress: "secret146snljq0kjsva7qrx4am54nv3fhfaet7srx4n2", - codeHash: - "af076a49141264ec048270318f1358c9be193893c3f829425cab53ee5eb05e5c", - }, - chainId: "pulsar-2", - feeMargin, - }, - nearParams: { - networkId: "testnet", - nonce: consts_1.Chain.NEAR, - rpcUrl: consts_1.TestNetRpcUri.NEAR, - bridge: "xp_new_bridge.testnet", - xpnft: "xp_new_nft.testnet", - walletUrl: "https://wallet.testnet.near.org", - helperUrl: "https://helper.testnet.near.org", - feeMargin, - notifier, - }, - }; - }; - ChainFactoryConfigs.Staging = async () => { - const feeMargin = { min: 1, max: 5 }; - const notifier = (0, notifier_1.evNotifier)( - "https://bridge1.xp.network/notifier" - ); - return { - tonParams: { - bridgeAddr: "kQBGFgZOXaF7LPRxWrjd9l6Iws6KGhWiMs3BKzAZGyeMq2AS", - burnerAddr: "kQAee5m2tk_-ipbrq40Geey7_yZmjZwAYZFjuKy9CbWvVykL", - notifier, - tonweb: new tonweb_1.default( - new tonweb_1.default.HttpProvider( - "https://toncenter.com/api/v2/jsonRPC", - { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - } - ) - ), - xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", - feeMargin, - }, - solanaParams: { - xpnftAddr: "", - bridgeContractAddr: "CHgXhvxk3dVyMh8kTVjvPboBfgiCH1ajkdKyWMpo6dn6", - endpoint: consts_1.TestNetRpcUri.SOLANA, - notifier, - feeMargin, - }, - caduceusParams: { - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.CADUCEUS - ), - erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", - erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", - erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", - erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", - minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", - nonce: consts_1.Chain.CADUCEUS, - }, - avalancheParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.AVALANCHE - ), - erc721Minter: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", - erc1155Minter: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", - erc721_addr: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", - minter_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", - erc1155_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", - nonce: consts_1.Chain.AVALANCHE, - feeMargin, - }, - algorandParams: { - algodApiKey: "kZWDAxYR7Y6S6RoyfGIi28SATZ5DfTIs5pF0UMW4", - algodUri: "https://mainnet-algorand.api.purestake.io/ps2", - indexerUri: "https://mainnet-algorand.api.purestake.io/idx2", - nonce: consts_1.Chain.ALGORAND, - sendNftAppId: 942656248, - algodPort: 443, - notifier, - feeMargin, - }, - fantomParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.FANTOM - ), - erc721Minter: "", - erc1155Minter: "", - erc1155_addr: "0xAE3bF9a0abd3D753aBB579c6E8BFD5D5F5e89c70", - erc721_addr: "0x3CF207B7E4633400B8A29B3c758296d290a51345", - minter_addr: "0xD0060e9d327fCeF5A0B0919e3624eABa56565348", - nonce: consts_1.Chain.FANTOM, - feeMargin, - }, - elrondParams: { - node_uri: consts_1.MainNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgqacac9ux4uz0pjg8ck2sf0ugxre0feczzvcas2tsatn", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqjlnfddgj2dl4kz3x4n55yhfv7v06mxhzvcas2ec5ps", - esdt_nft: "XPNFT-976581", - esdt_swap: "WEGLD-8c393e", - notifier, - nonce: consts_1.Chain.ELROND, - feeMargin, - }, - harmonyParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.HARMONY - ), - minter_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", - erc721_addr: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", - erc1155_addr: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", - erc1155Minter: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", - erc721Minter: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", - nonce: consts_1.Chain.HARMONY, - feeMargin, - }, - velasParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.VELAS - ), - erc721Minter: "0x4d739e4953CE42f71604cbE142FD293841F9ed1c", - erc1155Minter: "0xeEc7955F2F7AA4E36B582D8f022c9417ecB75a44", - erc721_addr: "0x19678D8f9601AD0F099D401A3f82e4d6745B0e56", - erc1155_addr: "0x4a153028F0b40C41432127E050015963D130b01A", - minter_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", - nonce: consts_1.Chain.VELAS, - feeMargin, - }, - bscParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.BSC - ), - erc721Minter: "0x83feaeA88b1377970E7cD11492d084B63e09C87E", - erc1155_addr: "0x1B20ceec70e9635f5B56928de16A9dBc8EB8e3b6", - erc1155Minter: "0x5Af6A4C6E261315C5B7811bEb9c620CfF4722793", - erc721_addr: "0x9796B2F03e3afF786048cd67a1D33282476AB1d4", - minter_addr: "0x7Eac6825A851d79ae24301eA497AD8db2a0F4976", - nonce: consts_1.Chain.BSC, - feeMargin, - }, - secretParams: { - bridge: { - contractAddress: "secret1t0g8tvc0tyvpwdsdc5zepa9j2ptr3vfte26qhu", - codeHash: - "684afe616d92b29c097c5f00365d07c005e99c90ff1227507a0284b601a2cc5e", - }, - xpnft: { - contractAddress: "secret1ggvqzks96k7hawhdx3harrtnffhttrrq2qxmdg", - codeHash: - "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", - }, - notifier, - rpcUrl: consts_1.MainNetRpcUri.SECRET, - umt: { - contractAddress: "", - codeHash: "", - }, - chainId: "24", - feeMargin, - }, - abeyChainParams: { - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.ABEYCHAIN - ), - erc1155_addr: "0x8776073043eef8929F4a9cBa8Aacc6B59A21BA52", - erc1155Minter: "0x5Ed657a379e06CBAc1Ba1a9cF6D28e71c66B0c83", - erc721_addr: "0x3C8C51809Ee58E9D3BA37e37112843e41DcBD7B7", - erc721Minter: "0xD580913Ef2c8CA4Ca90D4bE6851ACa004cf586D8", - minter_addr: "0x14db0f56042Fa87F3b3921E871f87248f4C56A71", - nonce: consts_1.Chain.ABEYCHAIN, - }, - moonbeamParams: { - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.MOONBEAM - ), - erc1155_addr: "0x554560C6800f123B4A713F80A5AC9F21486F5De8", - erc721_addr: "0x6f64e03fcc34b774b3b82825a91aABA336Fbf931", - erc1155Minter: "0xA97FD39705583296221f39cb245fb573B28722A1", - erc721Minter: "0x0e5C62beAD14795F3eA9969B139F5433DF85319e", - minter_addr: "0xce50496C6616F4688d5775966E302A49e3876Dff", - nonce: consts_1.Chain.MOONBEAM, - }, - polygonParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.POLYGON - ), - erc721Minter: "0x32732607F67f9FC2007AF84e54B2ea9042327ed3", - erc1155Minter: "0x62E26979F555Ec475981D8D1A7e269f747643f22", - erc721_addr: "0x54024A9351B7aD68921914942f776489E71c467e", - erc1155_addr: "0x8D3e050555356a2eD4ad8cfFb189994035F5803C", - minter_addr: "0xF712f9De44425d8845A1d597a247Fe88F4A23b6f", - nonce: consts_1.Chain.POLYGON, - feeMargin, - }, - skaleParams: { - notifier, - feeMargin, - nonce: consts_1.Chain.SKALE, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.SKALE - ), - erc721Minter: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", - erc1155Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", - erc1155_addr: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", - erc721_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", - minter_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", - paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token - }, - aptosParams: { - rpcUrl: consts_1.MainNetRpcUri.APTOS, - bridge: - "0x813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37", - xpnft: "XPNFT", - notifier, - feeMargin, - nonce: consts_1.Chain.APTOS, - network: "staging", - }, - }; - }; - ChainFactoryConfigs.MainNet = async () => { - const feeMargin = { min: 1, max: 5 }; - const notifier = (0, notifier_1.evNotifier)(middleware_uri); - // VeChain related: - const net = new connex_driver_1.SimpleNet(consts_1.MainNetRpcUri.VECHAIN); - const driver = await connex_driver_1.Driver.connect(net); - const provider = thor.ethers.modifyProvider( - new ethers_1.ethers.providers.Web3Provider( - new thor.ConnexProvider({ - connex: new connex_framework_1.Framework(driver), - }) - ) - ); - return { - tonParams: { - bridgeAddr: "kQAV8Z_aSl_e3PUMwXAb-mdE9l5Bsf83vn40NKc2LtsiFlGm", - burnerAddr: "kQDsF-yKhKqg4ygCynLfYRaw_QJeSoK2BeRpamO-nXeuuSiT", - notifier, - tonweb: new tonweb_1.default( - new tonweb_1.default.HttpProvider( - "https://toncenter.com/api/v2/jsonRPC", - { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - } - ) - ), - xpnftAddr: "EQABqbZubs5e3QQF3lxVZMvdaxlaIdNQWq8W1rn8rvVvWHys", - feeMargin, - }, - elrondParams: { - node_uri: consts_1.MainNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", - esdt_nft: "XPNFT-cb7482", - esdt_swap: "WEGLD-5f1f8d", - notifier, - nonce: consts_1.Chain.ELROND, - feeMargin, - }, - caduceusParams: { - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.CADUCEUS - ), - erc1155_addr: "0xF8AE68714fF6704883281603a22b56f47eB23511", - erc721_addr: "0x97799bEDB7AD04d61899F0255BA12EAF641d666D", - erc1155Minter: "0xFbA4cB4B617328cfE7a92907e4fb34bf1d798eBA", - erc721Minter: "0x6b3b43029dD4695f8780d7f16E0313dA02d9507B", - minter_addr: "0x98e9510261F34438e340c03cD35b492f87f628A8", - nonce: consts_1.Chain.CADUCEUS, - }, - okcParams: { - erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", - erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", - erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", - erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", - minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", - feeMargin, - nonce: consts_1.Chain.OKC, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.OKC - ), - }, - arbitrumParams: { - erc721Minter: "0x536dDc3Be14A980d3cd15635b3D05985C297FD07", - erc1155Minter: "0x4F4F48f70892475b0D4863f61F47157Dd1Db9F1a", - erc1155_addr: "0xBd2005050a99142d7B77B415e7b603633f3B3746", - erc721_addr: "0x445712E8dcf35E42FFAbb79b900aADcE2284fB65", - minter_addr: "0x72d270bb71A90B82260b12c31D427C3F33AC0692", - feeMargin, - nonce: consts_1.Chain.ARBITRUM, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.ARBITRUM - ), - }, - bitgertParams: { - erc721Minter: "string", - erc1155Minter: "string", - erc1155_addr: "string", - erc721_addr: "string", - minter_addr: "string", - feeMargin, - nonce: consts_1.Chain.BITGERT, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.BITGERT - ), - }, - dfinityParams: { - agent: new agent_1.HttpAgent({ - host: "https://ic0.app", - }), - bridgeContract: principal_1.Principal.fromText( - "e3io4-qaaaa-aaaak-qasua-cai" - ), - xpnftId: principal_1.Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), - umt: principal_1.Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), - notifier, - feeMargin, - }, - vechainParams: { - notifier, - feeMargin, - nonce: consts_1.Chain.VECHAIN, - provider, - minter_addr: "0xE860cef926E5e76E0E88fdc762417a582F849C27", - erc721_addr: "0xf0E778BD5C4c2F219A2A5699e3AfD2D82D50E271", - erc1155_addr: "", - erc721Minter: "0x6e2B43FeF2E750e1562AC572e60B6C484a027424", - erc1155Minter: "0x4E3a506800b894f3d7B46475Ab693DD5a567bB5C", - }, - tronParams: { - provider: new tronweb_1.default({ - fullHost: consts_1.MainNetRpcUri.TRON, - }), - notifier, - minter_addr: "TAncANF5aYbvgXDatmwTdvTa5N9PTrq95k", - erc721_addr: "TVdp7szDHg3opRyuciQaJi93LLk7y83hrC", - erc1155_addr: "", - erc1155Minter: "TYoj1JVpJt1TAWBFj3GkaKLC2vrcFnjZ1G", - erc721Minter: "TPSQTbFWaxiDZbGD7MoqR6N2aWDSWBUNfA", - validators: [ - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - ], - nonce: consts_1.Chain.TRON, - feeMargin, - }, - avalancheParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.AVALANCHE - ), - erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", - erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", - minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", - erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - nonce: consts_1.Chain.AVALANCHE, - feeMargin, - }, - polygonParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.POLYGON - ), - erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", - erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", - minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", - nonce: consts_1.Chain.POLYGON, - feeMargin, - }, - fantomParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.FANTOM - ), - erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", - erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc1155_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", - erc721_addr: "0x75f93b47719Ab5270d27cF28a74eeA247d5DfeFF", - minter_addr: "0x97dd1B3AE755539F56Db8b29258d7C925b20b84B", - nonce: consts_1.Chain.FANTOM, - feeMargin, - }, - bscParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.BSC - ), - erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", - erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", - erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", - erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", - nonce: consts_1.Chain.BSC, - feeMargin, - }, - celoParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.CELO - ), - minter_addr: "string", - erc721_addr: "string", - erc1155Minter: "string", - erc721Minter: "string", - erc1155_addr: "", - nonce: consts_1.Chain.CELO, - feeMargin, - }, - harmonyParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.HARMONY - ), - minter_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", - erc721_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", - erc1155_addr: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", - erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", - erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - nonce: consts_1.Chain.HARMONY, - feeMargin, - }, - ropstenParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.ETHEREUM - ), - minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", - erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", - nonce: consts_1.Chain.ETHEREUM, - feeMargin, - }, - xDaiParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.XDAI - ), - erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", - erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", - erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", - erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", - minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - nonce: consts_1.Chain.XDAI, - feeMargin, - }, - algorandParams: { - algodApiKey: - "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", - algodUri: "https://algorand-node.xp.network/", - indexerUri: "https://algoindexer.algoexplorerapi.io", - nonce: consts_1.Chain.ALGORAND, - sendNftAppId: 769053604, - algodPort: 443, - notifier, - feeMargin, - }, - fuseParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.FUSE - ), - erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", - erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc721_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", - erc1155_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", - minter_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", - nonce: consts_1.Chain.FUSE, - feeMargin, - }, - tezosParams: { - bridgeAddress: "KT1WKtpe58XPCqNQmPmVUq6CZkPYRms5oLvu", - notifier, - Tezos: new taquito_1.TezosToolkit(consts_1.MainNetRpcUri.TEZOS), - xpnftAddress: "KT1NEx6MX2GUEKMTX9ydyu8mn9WBNEz3QPEp", - validators: [ - "tz1MwAQrsg5EgeFD1AQHT2FTutnj9yQJNcjM", - "tz1b5AMdXs9nDxsqoN9wa3HTusvhahgBRWuF", - "tz1L5DjmMEHbj5npRzZewSARLmTQQyESW4Mj", - "tz1csq1THV9rKQQexo2XfSjSEJEg2wRCSHsD", - "tz1TBhd1NeZNtWsTbecee8jDMDzeBNLmpViN", - "tz1SHcDnXRgb7kWidiaM2J6bbTS7x5jzBr67", - ], - feeMargin, - }, - velasParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.VELAS - ), - erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", - erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", - erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", - minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", - nonce: consts_1.Chain.VELAS, - feeMargin, - }, - iotexParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.IOTEX - ), - minter_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", - erc721_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", - erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", - erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", - nonce: consts_1.Chain.IOTEX, - feeMargin, - }, - auroraParams: { - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.AURORA - ), - minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", - erc1155Minter: "0x0000000000000000000000000000000000000000", - erc721Minter: "0x0000000000000000000000000000000000000000", - nonce: consts_1.Chain.AURORA, - notifier, - feeMargin, - }, - godwokenParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.GODWOKEN - ), - minter_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc721Minter: "0x0000000000000000000000000000000000000000", - erc1155Minter: "0x0000000000000000000000000000000000000000", - nonce: consts_1.Chain.GODWOKEN, - feeMargin, - }, - gateChainParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.GATECHAIN - ), - minter_addr: "0xFc7f7fD2DBdAF6D8F3ee3f222b3a6a9f89729f05", - erc721_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", - erc1155_addr: "", - erc1155Minter: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", - erc721Minter: "0x0000000000000000000000000000000000000000", - nonce: consts_1.Chain.GATECHAIN, - feeMargin, - }, - skaleParams: { - notifier, - feeMargin, - nonce: consts_1.Chain.SKALE, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.SKALE - ), - erc721Minter: "0xC71C2e7b5Ee01f2cb08b41E240976E8Be6012fB0", - erc1155Minter: "0xbe6cB5C730C07a788dAB0aD7ed629d9c418a9c14", - erc1155_addr: "0x783cA58315336dD646aCeCF0b55f728099ee73ec", - erc721_addr: "0xf4C24d031C336CdcC5CC251E5abbE777235A65f3", - minter_addr: "0xa8440b0702923A54bb0FF3B55f458Cfe8142C1A0", - paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token - }, - moonbeamParams: { - nonce: consts_1.Chain.MOONBEAM, - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.MOONBEAM - ), - erc721Minter: "", - erc1155Minter: "", - erc1155_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", - erc721_addr: "0xfD3Ce0a10D4731b136a7C9e3f8a37edA1EFbf77f", - minter_addr: "0xBA3Cc81cfc54a4ce99638b5da1F17b15476E7231", - }, - abeyChainParams: { - nonce: consts_1.Chain.ABEYCHAIN, - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.ABEYCHAIN - ), - erc721Minter: "0xBb5e9896cEe600DaC470775B6f235Db105E861BD", - erc1155Minter: "0x35c3c3959d19A310Fc052545fCC29200dc440CdA", - erc1155_addr: "0xF9DfD29ddEDEa3224f9c7E12c7Bbe37101341786", - erc721_addr: "0x55B1D1891ABb21A5d245d149B49007b55Bd3746D", - minter_addr: "0x4ceDb46481d7118E1D292C318E37510E5919bBe6", - }, - secretParams: { - notifier, - rpcUrl: consts_1.MainNetRpcUri.SECRET, - bridge: { - contractAddress: "secret18f66qjjuyudmh7q6s50hwpt9y679lanjs82jkg", - codeHash: - "224f175c92947bbfd656d26e21b5eee40f73eac6aa6b64c328db3c55261ee6b4", - }, - xpnft: { - contractAddress: "secret16zcej6asqrtfq08u3fdjhs03zpl7lgy7q32eps", - codeHash: - "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", - }, - umt: { - contractAddress: "", - codeHash: "", - }, - chainId: "24", - feeMargin, - }, - nearParams: { - networkId: "mainnet", - nonce: consts_1.Chain.NEAR, - rpcUrl: consts_1.MainNetRpcUri.NEAR, - bridge: "", - xpnft: "", - feeMargin, - notifier, - walletUrl: "https://wallet.mainnet.near.org", - helperUrl: "https://helper.mainnet.near.org", - }, - }; - }; -})( - (ChainFactoryConfigs = - exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) -); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxZQUFZO0FBQ1osc0RBQThCO0FBQzlCLHNDQUFnRTtBQUNoRSxtQ0FBZ0M7QUFDaEMsOENBQWdEO0FBQ2hELDBDQUF5QztBQUN6QywwREFBMkQ7QUFDM0QsNERBQThDO0FBQzlDLGdFQUFzRDtBQUN0RCxnREFBNkM7QUFDN0MsMENBQTJDO0FBQzNDLGtEQUErQztBQUMvQyxvREFBNEI7QUFHNUI7Ozs7Ozs7O0lBUUk7QUFFSixvQ0FBb0M7QUFDcEMsa0RBQWtEO0FBQ2xELGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsS0FBSztBQUVMLE1BQU0sY0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBQ3JELE1BQU0sc0JBQXNCLEdBQzFCLGtEQUFrRCxDQUFDO0FBRXJELElBQWlCLG1CQUFtQixDQSs3Qm5DO0FBLzdCRCxXQUFpQixtQkFBbUI7SUFDckIsMkJBQU8sR0FBd0MsS0FBSyxJQUFJLEVBQUU7UUFDckUsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFBLHFCQUFVLEVBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVwRCxtQkFBbUI7UUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSx5QkFBUyxDQUFDLHNCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDekMsSUFBSSxlQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FDL0IsSUFBSSxJQUFJLENB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 diff --git a/dist/factory/factories.ts b/dist/factory/factories.ts deleted file mode 100644 index bb5e6f9e0..000000000 --- a/dist/factory/factories.ts +++ /dev/null @@ -1,901 +0,0 @@ -import { ChainParams } from "."; -//@ts-ignore -import TronWeb from "tronweb"; -import { Chain, MainNetRpcUri, TestNetRpcUri } from "../consts"; -import { ethers } from "ethers"; -import { TezosToolkit } from "@taquito/taquito"; -import { evNotifier } from "../notifier"; -import { Driver, SimpleNet } from "@vechain/connex-driver"; -import * as thor from "web3-providers-connex"; -import { Framework } from "@vechain/connex-framework"; -import { hethers } from "@hashgraph/hethers"; -import { HttpAgent } from "@dfinity/agent"; -import { Principal } from "@dfinity/principal"; -import TonWeb from "tonweb"; -import { FeeMargins } from "../helpers/chain"; - -/*const EVM_VALIDATORS = [ - "0xffa74a26bf87a32992bb4be080467bb4a8019e00", - "0x837b2eb764860b442c971f98f505e7c5f419edd7", - "0x9671ce5a02eb53cf0f2cbd220b34e50c39c0bf23", - "0x90e79cc7a06dbd227569920a8c4a625f630d77f4", - "0xdc80905cafeda39cb19a566baeef52472848e82f", - "0x77745cd585798e55938940e3d4dd0fd7cde7bdd6", - "0xc2a29b4e9fa71e9033a52611544403241c56ac5e", -];*/ - -// const _EVM_TESTNET_VALIDATORS = [ -// "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", -// "0xae87208a5204B6606d3AB177Be5fdf62267Cd499", -// "0x5002258315873AdCbdEF25a8E71C715A4f701dF5", -// ]; - -const middleware_uri = "https://notifier.xp.network"; -const testnet_middleware_uri = - "https://testnet-notifier.xp.network/notify-test/"; - -export namespace ChainFactoryConfigs { - export const TestNet: () => Promise> = async () => { - const feeMargin = { min: 1, max: 5 }; - const notifier = evNotifier(testnet_middleware_uri); - - // VeChain related: - const net = new SimpleNet(TestNetRpcUri.VECHAIN); - const driver = await Driver.connect(net); - const provider = thor.ethers.modifyProvider( - new ethers.providers.Web3Provider( - new thor.ConnexProvider({ connex: new Framework(driver) }) - ) - ); - - return { - elrondParams: { - node_uri: TestNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgqy2nx5z4cpr90de4sga2v2yx62fph3lg8g6vskt0k2f", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqc854pa9ruzgs5f8rdzzc02xgq8kqku3ng6vs59vmf8", - esdt_nft: "XPNFT-af3fde", - esdt_swap: "WEGLD-708f9b", - notifier, - nonce: 2, - feeMargin, - }, - tonParams: { - tonweb: new TonWeb( - new TonWeb.HttpProvider(TestNetRpcUri.TON, { - apiKey: - "abe8c1222f19b0891a9a35889d112dc88562093467db8dda39961eeacd50f9b1", - }) - ), - bridgeAddr: "kQBwUu-b4O6qDYq3iDRvsYUnTD6l3WCxLXkv0aH6ywAaPs3c", - burnerAddr: "kQCbH9gGgqJzXuusUVajW_40brrl2fxTYqMkk6HUhJnIgOQA", - xpnftAddr: "EQDji0YH-SNT-qi6o5dQQBLeWL0Xmm46fnqj34EYhOL34WDc", - feeMargin, - notifier, - }, - solanaParams: { - xpnftAddr: "C7bw5dJZwhjWd6TZE3LnE2b1RLqWDiy9XRMA1rajPKQY", - bridgeContractAddr: "FXaXLtmkuoJCJeX6BnLwQJWgT8cPdwuXN8BmmQzVvuRA", - endpoint: TestNetRpcUri.SOLANA, - notifier, - feeMargin, - }, - vechainParams: { - notifier, - feeMargin, - nonce: Chain.VECHAIN, - provider, - minter_addr: "0xd9145CCE52D386f254917e481eB44e9943F39138", - erc721_addr: "0xD7ACd2a9FD159E69Bb102A1ca21C9a3e3A5F771B", - erc1155_addr: "0xf8e81D47203A594245E36C48e151709F0C19fBe8", - erc721Minter: "0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47", - erc1155Minter: "0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8", - }, - tronParams: { - provider: new TronWeb({ fullHost: TestNetRpcUri.TRON }), - notifier, - minter_addr: "TY46GA3GGdMtu9GMaaSPPSQtqq9CZAv5sK", - erc721_addr: "TDhb2kyurMwoc1eMndKzqNebji1ap1DJC4", - erc1155_addr: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", - erc1155Minter: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", - erc721Minter: "TMVDt5PP53eQro5hLafibv2xWzSSDSMyjy", - validators: [ - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", - ], - nonce: Chain.TRON, - feeMargin, - }, - caduceusParams: { - notifier, - feeMargin, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CADUCEUS), - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - nonce: Chain.CADUCEUS, - }, - avalancheParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AVALANCHE), - minter_addr: "0xDdF1f6B8Ae8cd26dBE7C4C3ed9ac8E6D8B3a4FdC", - erc721_addr: "0xE1D8Df2e06797F22e7ce25c95A7ddccb926f8A1E", - erc1155Minter: "0xfA9214AEe59a6631A400DC039808457524dE70A2", - erc721Minter: "0x54Db938575DD089702822F191AEbB25C2Af7D1Ef", - erc1155_addr: "0xfA9214AEe59a6631A400DC039808457524dE70A2", - nonce: Chain.AVALANCHE, - feeMargin, - }, - polygonParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.POLYGON), - minter_addr: "0x224f78681099D66ceEdf4E52ee62E5a98CCB4b9e", - erc721_addr: "0xb678b13E41a47e46A4046a4D8315b32E0F34389c", - erc1155Minter: "0x5A768f8dDC67ccCA1431879BcA28E93a6c7722bb", - erc1155_addr: "0xc1D778Ce89154357471bA6c4C6E51f0e590FFe57", - erc721Minter: "0x6516E2D3387A9CF4E5e868E7842D110c95A9f3B4", - nonce: Chain.POLYGON, - feeMargin, - }, - dfinityParams: { - agent: new HttpAgent({ - host: "https://ic0.app", - }), - bridgeContract: Principal.fromText("e3io4-qaaaa-aaaak-qasua-cai"), - xpnftId: Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), - umt: Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), - notifier, - feeMargin, - }, - moonbeamParams: { - nonce: Chain.MOONBEAM, - notifier, - feeMargin, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.MOONBEAM), - erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", - erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", - erc1155_addr: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", - erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", - minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - }, - aptosParams: { - rpcUrl: TestNetRpcUri.APTOS, - bridge: - "0x467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18", - xpnft: "XPNFT", - notifier, - feeMargin, - nonce: Chain.APTOS, - network: "testnet", - }, - abeyChainParams: { - nonce: Chain.ABEYCHAIN, - notifier, - feeMargin, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ABEYCHAIN), - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - }, - fantomParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.FANTOM), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc1155_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", - erc721Minter: "string", - nonce: Chain.FANTOM, - feeMargin, - }, - bscParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.BSC), - minter_addr: "0x3Dd26fFf61D2a79f5fB77100d6daDBF073F334E6", - erc721_addr: "0x783eF7485DCF27a3Cf59F5A0A406eEe3f9b2AaeB", - erc1155Minter: "0x5dA3b7431f4581a7d35aEc2f3429174DC0f2A2E1", - erc721Minter: "0x97CD6fD6cbFfaa24f5c858843955C2601cc7F2b9", - erc1155_addr: "0xb5278A4808e2345A3B9d08bAc8909A121aFaEBB3", - nonce: Chain.BSC, - feeMargin, - }, - celoParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.CELO), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155_addr: "", - erc1155Minter: "string", - erc721Minter: "string", - nonce: Chain.CELO, - feeMargin, - }, - harmonyParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.HARMONY), - minter_addr: "0x198Cae9EE853e7b44E99c0b35Bddb451F83485d5", - erc721_addr: "0x1280c5c11bF0aAaaEAeBc998893B42e08B26fD5A", - erc1155Minter: "0xB546c2358A6e4b0B83192cCBB83CaE37FA572fe1", - erc721Minter: "0xb036640d6f7cAfd338103dc60493250561Af2eBc", - erc1155_addr: "0x44FCF0001A2B03260e4Bba44AF93a60C64cE79A2", - nonce: Chain.HARMONY, - feeMargin, - }, - ropstenParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.ROPSTEN), - erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", - erc721_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", - erc1155Minter: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", - erc721Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", - minter_addr: "0x04a5f9158829Cae5a0a549954AdEaBD47BbB3d2d", - nonce: Chain.ETHEREUM, - feeMargin, - }, - xDaiParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.XDAI), - minter_addr: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", - erc721_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", - erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", - erc1155_addr: "0x1C6d7aa611B30C9C1e5f52068E145b77b0e661b2", - nonce: Chain.XDAI, - feeMargin, - }, - algorandParams: { - algodApiKey: - "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - indexerUri: "https://algoindexer.testnet.algoexplorerapi.io", - algodUri: "https://node.testnet.algoexplorerapi.io", - nonce: Chain.ALGORAND, - sendNftAppId: 83148194, - algodPort: 443, - notifier, - feeMargin, - }, - auroraParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.AURORA), - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - nonce: Chain.AURORA, - feeMargin, - }, - uniqueParams: { - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.UNIQUE), - nonce: Chain.UNIQUE, - erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc1155_addr: "", - minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155Minter: "string", - erc721Minter: "string", - notifier, - feeMargin, - }, - tezosParams: { - bridgeAddress: "KT1KbL9kWPM8GkMr5M38vF1eHdsNxTc4WkyQ", - notifier, - Tezos: new TezosToolkit(TestNetRpcUri.TEZOS), - xpnftAddress: "KT1WR4fe9wFGPgNViK5feigMGyXKG9gCX8n4", - validators: [ - "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", - "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", - "tz1exbY3JKPRpo2KLegK8iqoVNRLn1zFrnZi", - ], - feeMargin, - }, - velasParams: { - notifier, - erc721_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", - erc1155_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", - minter_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", - erc1155Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", - erc721Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", - nonce: Chain.VELAS, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.VELAS), - feeMargin, - }, - iotexParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.IOTEX), - minter_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", - erc721_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", - erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", - erc1155Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", - erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", - nonce: Chain.IOTEX, - feeMargin, - }, - hederaParams: { - notifier, - provider: hethers.getDefaultProvider("testnet") as any, - feeMargin, - nonce: Chain.HEDERA, - erc721_addr: "0x0000000000000000000000000000000002e88e04", - erc1155_addr: "0x0000000000000000000000000000000002e88e04", - minter_addr: "0x0000000000000000000000000000000002e86d67", - erc721Minter: "0x0000000000000000000000000000000002da3c1d", - erc1155Minter: "0x0000000000000000000000000000000002da3c20", - }, - skaleParams: { - nonce: Chain.SKALE, - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.SKALE), - feeMargin, - erc1155_addr: "0x34c34E0808dC25c43cD41Cdba5049F7C370b7093", - erc1155Minter: "0x19F5cb72DBEdBAd6622FcC4244E238F207d7Bcb6", - erc721Minter: "0x79CcaA9FF641e848437C1855fd6c217Dc2204B09", - erc721_addr: "0x753993a3220eB7EFb837c26b14F3EFffF271F886", - minter_addr: "0xF50d791fb0427442287AA574bacADBf5C964f38c", - paymentTokenAddress: "0x3F3894e65B9EcAAa1F099ECb82e9Cca3a0e86E9E", - }, - godwokenParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.GODWOKEN), - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - nonce: Chain.GODWOKEN, - feeMargin, - }, - gateChainParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(TestNetRpcUri.GATECHAIN), - minter_addr: "0x2B24de7BFf5d2ab01b1C53682Ee5987c9BCf1BAc", - erc721_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc1155_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc721Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155Minter: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - nonce: Chain.GATECHAIN, - feeMargin, - }, - secretParams: { - notifier, - rpcUrl: TestNetRpcUri.SECRET, - bridge: { - contractAddress: "secret1ecsxtsrct6h647lpztnnzc9e47ezh0uu673c8h", - codeHash: - "29a127369d1f4326fb684435fde702fa9619c812dfb5b3a1929529bab0e308e0", - }, - xpnft: { - contractAddress: "secret1x4afa2shvq4uwwtl0ld8qnjfm3jkmyvap3yn9g", - codeHash: - "090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", - }, - umt: { - contractAddress: "secret146snljq0kjsva7qrx4am54nv3fhfaet7srx4n2", - codeHash: - "af076a49141264ec048270318f1358c9be193893c3f829425cab53ee5eb05e5c", - }, - chainId: "24", - feeMargin, - }, - - nearParams: { - networkId: "testnet", - nonce: Chain.NEAR, - rpcUrl: TestNetRpcUri.NEAR, - bridge: "xp_bridge_1.testnet", - xpnft: "xp_nft_1.testnet", - walletUrl: "https://wallet.testnet.near.org", - helperUrl: "https://helper.testnet.near.org", - feeMargin, - notifier, - }, - }; - }; - - export const Staging: () => Promise> = async () => { - const feeMargin: FeeMargins = { min: 1, max: 5 }; - const notifier = evNotifier("https://bridge1.xp.network/notifier"); - - return { - tonParams: { - bridgeAddr: "kQD3Fic8toRl0SIMswto8wmy5H41CDZUGAIyIK95Al5BBUiX", - burnerAddr: "kQBCnW4TO466p7YzKGZebnsylUSHTyxTKuwMDXo5JEQbIEOF", - notifier, - tonweb: new TonWeb( - new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - }) - ), - xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", - feeMargin, - }, - caduceusParams: { - notifier, - feeMargin, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CADUCEUS), - erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", - erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", - erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", - erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", - minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", - nonce: Chain.CADUCEUS, - }, - algorandParams: { - algodApiKey: - "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", - algodUri: "https://algorand-node.xp.network/", - indexerUri: "https://algoindexer.algoexplorerapi.io", - nonce: Chain.ALGORAND, - sendNftAppId: 942656248, - algodPort: 443, - notifier, - feeMargin, - }, - elrondParams: { - node_uri: MainNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgqacac9ux4uz0pjg8ck2sf0ugxre0feczzvcas2tsatn", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqjlnfddgj2dl4kz3x4n55yhfv7v06mxhzvcas2ec5ps", - esdt_nft: "XPNFT-976581", - esdt_swap: "WEGLD-8c393e", - notifier, - nonce: Chain.ELROND, - feeMargin, - }, - harmonyParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), - minter_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", - erc721_addr: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", - erc1155_addr: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", - erc1155Minter: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", - erc721Minter: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", - nonce: Chain.HARMONY, - feeMargin, - }, - velasParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), - erc721Minter: "0x4d739e4953CE42f71604cbE142FD293841F9ed1c", - erc1155Minter: "0xeEc7955F2F7AA4E36B582D8f022c9417ecB75a44", - erc721_addr: "0x19678D8f9601AD0F099D401A3f82e4d6745B0e56", - erc1155_addr: "0x4a153028F0b40C41432127E050015963D130b01A", - minter_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", - nonce: Chain.VELAS, - feeMargin, - }, - bscParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), - erc721Minter: "0x83feaeA88b1377970E7cD11492d084B63e09C87E", - erc1155_addr: "0x1B20ceec70e9635f5B56928de16A9dBc8EB8e3b6", - erc1155Minter: "0x5Af6A4C6E261315C5B7811bEb9c620CfF4722793", - erc721_addr: "0x9796B2F03e3afF786048cd67a1D33282476AB1d4", - minter_addr: "0x7Eac6825A851d79ae24301eA497AD8db2a0F4976", - nonce: Chain.BSC, - feeMargin, - }, - secretParams: { - bridge: { - contractAddress: "secret1t0g8tvc0tyvpwdsdc5zepa9j2ptr3vfte26qhu", - codeHash: - "684afe616d92b29c097c5f00365d07c005e99c90ff1227507a0284b601a2cc5e", - }, - xpnft: { - contractAddress: "secret1ggvqzks96k7hawhdx3harrtnffhttrrq2qxmdg", - codeHash: - "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", - }, - notifier, - rpcUrl: MainNetRpcUri.SECRET, - umt: { - contractAddress: "", - codeHash: "", - }, - chainId: "24", - feeMargin, - }, - abeyChainParams: { - notifier, - feeMargin, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ABEYCHAIN), - erc1155_addr: "0x8776073043eef8929F4a9cBa8Aacc6B59A21BA52", - erc1155Minter: "0x5Ed657a379e06CBAc1Ba1a9cF6D28e71c66B0c83", - erc721_addr: "0x3C8C51809Ee58E9D3BA37e37112843e41DcBD7B7", - erc721Minter: "0xD580913Ef2c8CA4Ca90D4bE6851ACa004cf586D8", - minter_addr: "0x14db0f56042Fa87F3b3921E871f87248f4C56A71", - nonce: Chain.ABEYCHAIN, - }, - moonbeamParams: { - notifier, - feeMargin, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.MOONBEAM), - erc1155_addr: "0x554560C6800f123B4A713F80A5AC9F21486F5De8", - erc721_addr: "0x6f64e03fcc34b774b3b82825a91aABA336Fbf931", - erc1155Minter: "0xA97FD39705583296221f39cb245fb573B28722A1", - erc721Minter: "0x0e5C62beAD14795F3eA9969B139F5433DF85319e", - minter_addr: "0xce50496C6616F4688d5775966E302A49e3876Dff", - nonce: Chain.MOONBEAM, - }, - polygonParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), - erc721Minter: "0x32732607F67f9FC2007AF84e54B2ea9042327ed3", - erc1155Minter: "0x62E26979F555Ec475981D8D1A7e269f747643f22", - erc721_addr: "0x54024A9351B7aD68921914942f776489E71c467e", - erc1155_addr: "0x8D3e050555356a2eD4ad8cfFb189994035F5803C", - minter_addr: "0xF712f9De44425d8845A1d597a247Fe88F4A23b6f", - nonce: Chain.POLYGON, - feeMargin, - }, - skaleParams: { - notifier, - feeMargin, - nonce: Chain.SKALE, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.SKALE), - erc721Minter: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", - erc1155Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", - erc1155_addr: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", - erc721_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", - minter_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", - paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token - }, - aptosParams: { - rpcUrl: MainNetRpcUri.APTOS, - bridge: - "0x813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37", - xpnft: "XPNFT", - notifier, - feeMargin, - nonce: Chain.APTOS, - network: "staging", - }, - }; - }; - - export const MainNet: () => Promise> = async () => { - const feeMargin = { min: 1, max: 5 }; - const notifier = evNotifier(middleware_uri); - - // VeChain related: - const net = new SimpleNet(MainNetRpcUri.VECHAIN); - const driver = await Driver.connect(net); - const provider = thor.ethers.modifyProvider( - new ethers.providers.Web3Provider( - new thor.ConnexProvider({ connex: new Framework(driver) }) - ) - ); - - return { - tonParams: { - bridgeAddr: "kQAhH1me417YvScu9Rn8BXjsW_9HcalciG5LmCDT04HMJt6L", - burnerAddr: "kQDuSGRY8g6TCLC4QhlhqgLr4G_nNXTGHoXy38Mwxx-r1aGY", - notifier, - tonweb: new TonWeb( - new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - }) - ), - xpnftAddr: "EQABqbZubs5e3QQF3lxVZMvdaxlaIdNQWq8W1rn8rvVvWHys", - feeMargin, - }, - elrondParams: { - node_uri: MainNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", - esdt_nft: "XPNFT-cb7482", - esdt_swap: "WEGLD-5f1f8d", - notifier, - nonce: Chain.ELROND, - feeMargin, - }, - caduceusParams: { - notifier, - feeMargin, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CADUCEUS), - erc1155_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", - erc721_addr: "0x3410b0e0b1aBAe452b3F031AdE8dab347f5Fb60b", - erc1155Minter: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", - erc721Minter: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", - minter_addr: "0xd3f55Dd3da582E8E55AcE14e28352a95334E8feb", - nonce: Chain.CADUCEUS, - }, - dfinityParams: { - agent: new HttpAgent({ - host: "https://ic0.app", - }), - bridgeContract: Principal.fromText("e3io4-qaaaa-aaaak-qasua-cai"), - xpnftId: Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), - umt: Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), - notifier, - feeMargin, - }, - vechainParams: { - notifier, - feeMargin, - nonce: Chain.VECHAIN, - provider, - minter_addr: "0xE860cef926E5e76E0E88fdc762417a582F849C27", - erc721_addr: "0xf0E778BD5C4c2F219A2A5699e3AfD2D82D50E271", - erc1155_addr: "", - erc721Minter: "0x6e2B43FeF2E750e1562AC572e60B6C484a027424", - erc1155Minter: "0x4E3a506800b894f3d7B46475Ab693DD5a567bB5C", - }, - tronParams: { - provider: new TronWeb({ fullHost: MainNetRpcUri.TRON }), - notifier, - minter_addr: "TAncANF5aYbvgXDatmwTdvTa5N9PTrq95k", - erc721_addr: "TVdp7szDHg3opRyuciQaJi93LLk7y83hrC", - erc1155_addr: "", - erc1155Minter: "TYoj1JVpJt1TAWBFj3GkaKLC2vrcFnjZ1G", - erc721Minter: "TPSQTbFWaxiDZbGD7MoqR6N2aWDSWBUNfA", - validators: [ - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - ], - nonce: Chain.TRON, - feeMargin, - }, - avalancheParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AVALANCHE), - erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", - erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", - minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", - erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - nonce: Chain.AVALANCHE, - feeMargin, - }, - polygonParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.POLYGON), - erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", - erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", - minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", - nonce: Chain.POLYGON, - feeMargin, - }, - fantomParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FANTOM), - erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", - erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc1155_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", - erc721_addr: "0x75f93b47719Ab5270d27cF28a74eeA247d5DfeFF", - minter_addr: "0x97dd1B3AE755539F56Db8b29258d7C925b20b84B", - nonce: Chain.FANTOM, - feeMargin, - }, - bscParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.BSC), - erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", - erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", - erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", - erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", - nonce: Chain.BSC, - feeMargin, - }, - celoParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.CELO), - minter_addr: "string", - erc721_addr: "string", - erc1155Minter: "string", - erc721Minter: "string", - erc1155_addr: "", - nonce: Chain.CELO, - feeMargin, - }, - harmonyParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.HARMONY), - minter_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", - erc721_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", - erc1155_addr: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", - erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", - erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - nonce: Chain.HARMONY, - feeMargin, - }, - ropstenParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ETHEREUM), - minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", - erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", - nonce: Chain.ETHEREUM, - feeMargin, - }, - xDaiParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.XDAI), - erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", - erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", - erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", - erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", - minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - nonce: Chain.XDAI, - feeMargin, - }, - algorandParams: { - algodApiKey: - "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", - algodUri: "https://algorand-node.xp.network/", - indexerUri: "https://algoindexer.algoexplorerapi.io", - nonce: Chain.ALGORAND, - sendNftAppId: 769053604, - algodPort: 443, - notifier, - feeMargin, - }, - fuseParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.FUSE), - erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", - erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc721_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", - erc1155_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", - minter_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", - nonce: Chain.FUSE, - feeMargin, - }, - tezosParams: { - bridgeAddress: "KT1WKtpe58XPCqNQmPmVUq6CZkPYRms5oLvu", - notifier, - Tezos: new TezosToolkit(MainNetRpcUri.TEZOS), - xpnftAddress: "KT1NEx6MX2GUEKMTX9ydyu8mn9WBNEz3QPEp", - validators: [ - "tz1MwAQrsg5EgeFD1AQHT2FTutnj9yQJNcjM", - "tz1b5AMdXs9nDxsqoN9wa3HTusvhahgBRWuF", - "tz1L5DjmMEHbj5npRzZewSARLmTQQyESW4Mj", - "tz1csq1THV9rKQQexo2XfSjSEJEg2wRCSHsD", - "tz1TBhd1NeZNtWsTbecee8jDMDzeBNLmpViN", - "tz1SHcDnXRgb7kWidiaM2J6bbTS7x5jzBr67", - ], - feeMargin, - }, - velasParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.VELAS), - erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", - erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", - erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", - minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", - nonce: Chain.VELAS, - feeMargin, - }, - iotexParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.IOTEX), - minter_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", - erc721_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", - erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", - erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", - nonce: Chain.IOTEX, - feeMargin, - }, - auroraParams: { - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.AURORA), - minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", - erc1155Minter: "0x0000000000000000000000000000000000000000", - erc721Minter: "0x0000000000000000000000000000000000000000", - nonce: Chain.AURORA, - notifier, - feeMargin, - }, - godwokenParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.GODWOKEN), - minter_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc721Minter: "0x0000000000000000000000000000000000000000", - erc1155Minter: "0x0000000000000000000000000000000000000000", - nonce: Chain.GODWOKEN, - feeMargin, - }, - gateChainParams: { - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.GATECHAIN), - minter_addr: "0xFc7f7fD2DBdAF6D8F3ee3f222b3a6a9f89729f05", - erc721_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", - erc1155_addr: "", - erc1155Minter: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", - erc721Minter: "0x0000000000000000000000000000000000000000", - nonce: Chain.GATECHAIN, - feeMargin, - }, - skaleParams: { - nonce: Chain.SKALE, - notifier, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.SKALE), - feeMargin, - erc1155_addr: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc1155Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", - erc721Minter: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - erc721_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - minter_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - paymentTokenAddress: "0x0000000000000000000000000000000000000000", - }, - moonbeamParams: { - nonce: Chain.MOONBEAM, - notifier, - feeMargin, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.MOONBEAM), - erc721Minter: "", - erc1155Minter: "", - erc1155_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", - erc721_addr: "0xfD3Ce0a10D4731b136a7C9e3f8a37edA1EFbf77f", - minter_addr: "0xBA3Cc81cfc54a4ce99638b5da1F17b15476E7231", - }, - abeyChainParams: { - nonce: Chain.ABEYCHAIN, - notifier, - feeMargin, - provider: new ethers.providers.JsonRpcProvider(MainNetRpcUri.ABEYCHAIN), - erc721Minter: "0xBb5e9896cEe600DaC470775B6f235Db105E861BD", - erc1155Minter: "0x35c3c3959d19A310Fc052545fCC29200dc440CdA", - erc1155_addr: "0xF9DfD29ddEDEa3224f9c7E12c7Bbe37101341786", - erc721_addr: "0x55B1D1891ABb21A5d245d149B49007b55Bd3746D", - minter_addr: "0x4ceDb46481d7118E1D292C318E37510E5919bBe6", - }, - secretParams: { - notifier, - rpcUrl: MainNetRpcUri.SECRET, - bridge: { - contractAddress: "secret18f66qjjuyudmh7q6s50hwpt9y679lanjs82jkg", - codeHash: - "224f175c92947bbfd656d26e21b5eee40f73eac6aa6b64c328db3c55261ee6b4", - }, - xpnft: { - contractAddress: "secret16zcej6asqrtfq08u3fdjhs03zpl7lgy7q32eps", - codeHash: - "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", - }, - umt: { - contractAddress: "", - codeHash: "", - }, - chainId: "24", - feeMargin, - }, - nearParams: { - networkId: "mainnet", - nonce: Chain.NEAR, - rpcUrl: MainNetRpcUri.NEAR, - bridge: "", - xpnft: "", - feeMargin, - notifier, - walletUrl: "https://wallet.mainnet.near.org", - helperUrl: "https://helper.mainnet.near.org", - }, - }; - }; -} diff --git a/dist/factory/index.d.ts b/dist/factory/index.d.ts deleted file mode 100644 index 9f1f3360f..000000000 --- a/dist/factory/index.d.ts +++ /dev/null @@ -1,319 +0,0 @@ -import { ElrondParams } from "../helpers/elrond"; -import { TronParams } from "../helpers/tron"; -import { Web3Params } from "../helpers/web3"; -export * from "./cons"; -export * from "./factories"; -import BigNumber from "bignumber.js"; -import { - ChainNonceGet, - EstimateTxFees, - ExtractAction, - ExtractTxnStatus, - MintNft, - NftInfo, - TransactionStatus, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from ".."; -import { Wallet } from "@hashgraph/hethers"; -import { ethers } from "ethers"; -import { AlgorandParams, AlgoSignerH, ClaimNftInfo } from "../helpers/algorand"; -import { AptosParams } from "../helpers/aptos"; -import { - BalanceCheck, - EstimateTxFeesBatch, - GetFeeMargins, - TransferNftForeignBatch, - UnfreezeForeignNftBatch, - WhitelistCheck, -} from "../helpers/chain"; -import { DfinityParams } from "../helpers/dfinity/dfinity"; -import { NearParams } from "../helpers/near"; -import { SecretParams } from "../helpers/secret"; -import { SolanaParams } from "../helpers/solana"; -import { TezosParams } from "../helpers/tezos"; -import { TonParams } from "../helpers/ton"; -import { Web3ERC20Params } from "../helpers/web3_erc20"; -import { - ChainNonce, - InferChainH, - InferChainParam, - InferNativeNft, - InferSigner, -} from "../type-utils"; -export declare type FullChain = TransferNftForeign< - Signer, - RawNft, - Resp -> & - UnfreezeForeignNft & - EstimateTxFees & - ChainNonceGet & - ValidateAddress & { - XpNft: string; - XpNft1155?: string; - } & GetFeeMargins; -declare type FullChainBatch = FullChain< - Signer, - RawNft, - Resp -> & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - EstimateTxFeesBatch; -/** - * A type representing a chain factory. - */ -export declare type ChainFactory = { - /** - * Creates an helper factory for a given chain - * @param chain: {@link ChainNonce} to create the helper for. - */ - inner(chain: T): Promise>; - /** - * Whether or not the bridge is alive for a given chain - * this is checked regardless before using any bridge related function(e.g transferNft) is called - */ - bridgeStatus(): Promise<{ - [chainNonce: number]: "alive" | "dead"; - }>; - /** - * Check the balance of an account - * - * @param inner The chain to check the balance in - * @param address address of the account - */ - balance(inner: BalanceCheck, address: string): Promise; - /** - * Transfers the NFT from one chain to other. - * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. - * @param toChain {@link FullChain} the chain to transfer to. Use inner method of the factory to get this. - * WARN: Algorand NFTs must be manually claimed by the receiver - * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the `nftList` method of the factory. - * @param sender {@link Sender} The owner of the NFT. - * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. - * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) - * @param mintWith an arbitrary address of the target chain minter contract - * @param gasLimit an arbitrary gas limit value (required for some chains) - */ - transferNft( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo, - sender: SignerF, - receiver: string, - fee?: BigNumber.Value, - mintWith?: string, - gasLimit?: ethers.BigNumberish | undefined, - extraFee?: BigNumber.Value, - gasPrice?: ethers.BigNumberish | undefined - ): Promise; - transferBatchNft( - fromChain: FullChainBatch, - toChain: FullChainBatch, - nft: NftInfo[], - sender: SignerF, - receiver: string, - fee?: BigNumber.Value, - mintWith?: string - ): Promise; - claimHederaNFT( - serialNumber: ethers.BigNumberish, - proxyAddress: string, - htsToken: string, - sender: Wallet - ): Promise; - listHederaClaimableNFT( - proxyContract: string, - htsToken: string, - sender: Wallet - ): Promise; - transferSft( - fromChain: FullChainBatch, - toChain: FullChainBatch, - nft: NftInfo, - sender: SignerF, - receiver: string, - amt: bigint, - fee?: BigNumber.Value, - mintWith?: string - ): Promise; - /** - * Mints an NFT on the chain. - * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. - * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar defi wallet. - * @param args: {@link NftMintArgs} Arguments to mint the nft. Contract is must for web3 and tron. Identifier is must for elrond. - */ - mint( - chain: MintNft, - owner: Signer, - args: Args - ): Promise; - /** - * Lists all the NFTs on the chain owner by {@param owner}. - * @param chain: Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. - * @param owner: Address of the owner of the NFT as a raw string. - */ - nftList( - chain: ChainNonceGet & T, - owner: string - ): Promise>[]>; - /** - * Estimates the required fee for transferring an NFT. - * @param fromChain: {@link FullChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. - * @param toChain: {@link FullChain} Chain to which the NFT must be sent. Can be obtained from the `inner` method on the factory. - * @param nft: {@link NftInfo} The NFT that has to be transferred. Generally comes from the `nftList` method of the factory. - * @param receiver: Address of the receiver of the NFT in raw string.. - */ - estimateFees( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo, - receiver: string - ): Promise; - estimateSFTfees( - fromChain: FullChain, - amount: bigint, - price: number - ): Promise; - estimateBatchFees( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo[], - receiver: string - ): Promise; - /** - * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. - * @param params : New Params to be set. - */ - updateParams( - nonce: T, - params: InferChainParam - ): void; - pkeyToSigner( - nonce: S, - key: string - ): Promise>>; - /** - * Get transaction in the destination chain - * WARN: use claimAlgorandNft instead for algorand. - * - * @param chain source chain - * @param destination destination chain - * @param hash transaction hash from source chain - * - * @returns transaction hash in original chain, unique action id - */ - getDestinationTransaction( - chain: ExtractAction & ExtractTxnStatus, - destination: number, - hash: Txn - ): Promise<[string, TransactionStatus]>; - /** - * Claim an algorand nft - * - * @param originChain chain from which the nft was transferred - * @param txn Transaction Hash of the original - * @param claimer the account which can claim the nft - */ - waitAlgorandNft( - originChain: ExtractAction & ChainNonceGet, - txn: Txn, - claimer: AlgoSignerH - ): Promise; - /** - * @param claimer: the account which can claim the nfts - */ - claimableAlgorandNfts(claimer: string): Promise; - getVerifiedContract( - from: string, - targetChain: number, - fc: number, - tokenId?: string - ): Promise; - checkWhitelist( - chain: Partial> & ChainNonceGet, - nft: NftInfo - ): Promise; - isWrappedNft(nft: NftInfo, fromChain: number): Promise; - setProvider(fromChain: number, provider: any): Promise; - whitelistEVM( - chain: T, - address: string, - nonce: number - ): Promise<{ - success: true; - }>; -}; -/** - * A type representing all the supported chain params. - */ -export interface ChainParams { - elrondParams: ElrondParams; - hecoParams: Web3Params; - bscParams: Web3Params; - ropstenParams: Web3Params; - avalancheParams: Web3Params; - polygonParams: Web3Params; - fantomParams: Web3Params; - tronParams: TronParams; - celoParams: Web3Params; - harmonyParams: Web3Params; - ontologyParams: Web3Params; - xDaiParams: Web3Params; - algorandParams: AlgorandParams; - fuseParams: Web3Params; - uniqueParams: Web3Params; - tezosParams: TezosParams; - velasParams: Web3Params; - iotexParams: Web3Params; - vechainParams: Web3Params; - auroraParams: Web3Params; - godwokenParams: Web3Params; - gateChainParams: Web3Params; - secretParams: SecretParams; - hederaParams: Web3Params; - skaleParams: Web3ERC20Params; - dfinityParams: DfinityParams; - nearParams: NearParams; - moonbeamParams: Web3Params; - abeyChainParams: Web3Params; - tonParams: TonParams; - aptosParams: AptosParams; - solanaParams: SolanaParams; - caduceusParams: Web3Params; - okcParams: Web3Params; - arbitrumParams: Web3Params; - bitgertParams: Web3Params; -} -export declare type MoralisNetwork = "mainnet" | "testnet"; -/** - * A struct for the configuration of the library. - * @field exchangeRateUri: The URI of the exchange rate service. - * @field moralisServer: The URI of the moralis server. - * @field moralisAppId: The app id of the moralis server. - * @field tronScanUri: The URI of the tron scan service. - */ -export interface AppConfig { - exchangeRateUri: string; - heartbeatUri: string; - txSocketUri: string; - nftListUri: string; - nftListAuthToken: string; - tronScanUri: string; - wrappedNftPrefix: string; - scVerifyUri: string; - network: "testnet" | "mainnet" | "staging"; -} -/** - * This function is the basic entry point to use this package as a library. - * @param appConfig: {@link AppConfig} The configuration of the library. - * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. - * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. - */ -export declare function ChainFactory( - appConfig: AppConfig, - chainParams: Partial -): ChainFactory; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map deleted file mode 100644 index 86e92b898..000000000 --- a/dist/factory/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js deleted file mode 100644 index 2221d816a..000000000 --- a/dist/factory/index.js +++ /dev/null @@ -1,608 +0,0 @@ -"use strict"; -var __createBinding = - (this && this.__createBinding) || - (Object.create - ? function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function () { - return m[k]; - }, - }); - } - : function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); -var __exportStar = - (this && this.__exportStar) || - function (m, exports) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) - __createBinding(exports, m, p); - }; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ChainFactory = void 0; -const consts_1 = require("../consts"); -__exportStar(require("./cons"), exports); -__exportStar(require("./factories"), exports); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const __1 = require(".."); -const out_1 = require("@elrondnetwork/erdjs/out"); -const hethers_1 = require("@hashgraph/hethers"); -const algosdk_1 = __importDefault(require("algosdk")); -const axios_1 = __importDefault(require("axios")); -const ethers_1 = require("ethers"); -const js_base64_1 = require("js-base64"); -const heartbeat_1 = require("../heartbeat"); -const algorand_1 = require("../helpers/algorand"); -const hts_abi_1 = require("../helpers/hedera/hts_abi"); -const cons_1 = require("./cons"); -function mapNonceToParams(chainParams) { - const cToP = new Map(); - cToP.set(consts_1.Chain.ELROND, chainParams.elrondParams); - cToP.set(consts_1.Chain.HECO, chainParams.hecoParams); - cToP.set(consts_1.Chain.BSC, chainParams.bscParams); - cToP.set(consts_1.Chain.ETHEREUM, chainParams.ropstenParams); - cToP.set(consts_1.Chain.AVALANCHE, chainParams.avalancheParams); - cToP.set(consts_1.Chain.POLYGON, chainParams.polygonParams); - cToP.set(consts_1.Chain.FANTOM, chainParams.fantomParams); - cToP.set(consts_1.Chain.TRON, chainParams.tronParams); - cToP.set(consts_1.Chain.CELO, chainParams.celoParams); - cToP.set(consts_1.Chain.HARMONY, chainParams.harmonyParams); - cToP.set(consts_1.Chain.ONT, chainParams.ontologyParams); - cToP.set(consts_1.Chain.XDAI, chainParams.xDaiParams); - cToP.set(consts_1.Chain.ALGORAND, chainParams.algorandParams); - cToP.set(consts_1.Chain.FUSE, chainParams.fuseParams); - cToP.set(consts_1.Chain.UNIQUE, chainParams.uniqueParams); - cToP.set(consts_1.Chain.TEZOS, chainParams.tezosParams); - cToP.set(consts_1.Chain.VELAS, chainParams.velasParams); - cToP.set(consts_1.Chain.IOTEX, chainParams.iotexParams); - cToP.set(consts_1.Chain.AURORA, chainParams.auroraParams); - cToP.set(consts_1.Chain.GODWOKEN, chainParams.godwokenParams); - cToP.set(consts_1.Chain.GATECHAIN, chainParams.gateChainParams); - cToP.set(consts_1.Chain.VECHAIN, chainParams.vechainParams); - cToP.set(consts_1.Chain.SECRET, chainParams.secretParams); - cToP.set(consts_1.Chain.HEDERA, chainParams.hederaParams); - cToP.set(consts_1.Chain.SKALE, chainParams.skaleParams); - cToP.set(consts_1.Chain.DFINITY, chainParams.dfinityParams); - cToP.set(consts_1.Chain.NEAR, chainParams.nearParams); - cToP.set(consts_1.Chain.MOONBEAM, chainParams.moonbeamParams); - cToP.set(consts_1.Chain.ABEYCHAIN, chainParams.abeyChainParams); - cToP.set(consts_1.Chain.TON, chainParams.tonParams); - cToP.set(consts_1.Chain.APTOS, chainParams.aptosParams); - cToP.set(consts_1.Chain.SOLANA, chainParams.solanaParams); - cToP.set(consts_1.Chain.CADUCEUS, chainParams.caduceusParams); - cToP.set(consts_1.Chain.OKC, chainParams.okcParams); - cToP.set(consts_1.Chain.ARBITRUM, chainParams.arbitrumParams); - cToP.set(consts_1.Chain.BITGERT, chainParams.bitgertParams); - return cToP; -} -/** - * This function is the basic entry point to use this package as a library. - * @param appConfig: {@link AppConfig} The configuration of the library. - * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. - * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. - */ -function ChainFactory(appConfig, chainParams) { - let helpers = new Map(); - let cToP = mapNonceToParams(chainParams); - const heartbeatRepo = (0, heartbeat_1.bridgeHeartbeat)( - appConfig.heartbeatUri - ); - const remoteExchangeRate = (0, cons_1.exchangeRateRepo)( - appConfig.exchangeRateUri - ); - const txSocket = (0, __1.socketHelper)(appConfig.txSocketUri); - const nftlistRest = axios_1.default.create({ - baseURL: appConfig.nftListUri, - headers: { - Authorization: `Bearer ${appConfig.nftListAuthToken}`, - }, - }); - const inner = async (chain) => { - let helper = helpers.get(chain); - if (helper === undefined) { - helper = await consts_1.CHAIN_INFO.get(chain).constructor( - cToP.get(chain) - ); - helpers.set(chain, helper); - } - return helper; - }; - const setProvider = async (chain, provider) => { - const args = { - ...cToP.get(chain), - provider, - }; - const helper = await consts_1.CHAIN_INFO.get(chain).constructor(args); - helpers.set(chain, helper); - }; - async function calcExchangeFees(fromChain, toChain, val, toChainFee) { - const rate = await remoteExchangeRate.getBatchedRate([ - consts_1.CHAIN_INFO.get(toChain).currency, - consts_1.CHAIN_INFO.get(fromChain).currency, - ]); - const feeR = val.dividedBy(consts_1.CHAIN_INFO.get(toChain).decimals); - const fromExRate = rate.get(consts_1.CHAIN_INFO.get(fromChain).currency); - const toExRate = rate.get(consts_1.CHAIN_INFO.get(toChain).currency); - const usdFee = Math.min( - Math.max(toChainFee.min, feeR.times(toExRate * 0.1).toNumber()), - toChainFee.max - ); - const feeProfit = usdFee / fromExRate; - return feeR - .times(toExRate / fromExRate) - .plus(feeProfit * 0.5) - .times(consts_1.CHAIN_INFO.get(fromChain).decimals) - .integerValue(bignumber_js_1.default.ROUND_CEIL); - } - const estimateFees = async (fromChain, toChain, nft, receiver, extraFee) => { - const estimate = await toChain.estimateValidateTransferNft( - receiver, - nft, - "" - ); - let conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate, - toChain.getFeeMargin() - ); - if (extraFee) { - conv = conv - .multipliedBy(extraFee) - .integerValue(bignumber_js_1.default.ROUND_CEIL); - console.log("extra conv"); - } - return conv; - }; - const estimateSFTfees = async (fromChain, amount, price = 0.05) => { - const rate = await remoteExchangeRate.getBatchedRate([ - consts_1.CHAIN_INFO.get(fromChain.getNonce()).currency, - ]); - const fromExRate = rate.get( - consts_1.CHAIN_INFO.get(fromChain.getNonce()).currency - ); - const y = price / fromExRate; - const sftFees = Number(amount) <= 10 ? 0 : y * (Number(amount) - 10); - return new bignumber_js_1.default(sftFees) - .multipliedBy(consts_1.CHAIN_INFO.get(fromChain.getNonce()).decimals) - .integerValue(); - }; - async function bridgeStatus() { - const res = await heartbeatRepo.status(); - return Object.fromEntries( - Object.entries(res).map(([c, s]) => [ - c, - s.bridge_alive ? "alive" : "dead", - ]) - ); - } - async function estimateBatchFees(fromChain, toChain, nft, receiver) { - const estimate = await toChain.estimateValidateTransferNftBatch( - receiver, - nft, - new Array(nft.length).fill(toChain.XpNft) - ); - const conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate.times(nft.length), - toChain.getFeeMargin() - ); - return conv; - } - async function requireBridge(chains) { - const status = await heartbeatRepo.status(); - let deadChain; - const alive = chains.every((c) => { - const stat = status[c].bridge_alive; - if (!stat) { - deadChain = c; - } - return stat; - }); - if (!alive) { - throw Error(`chain ${deadChain} is dead! its unsafe to use the bridge`); - } - } - const oldXpWraps = new Set([ - "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", - "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", - "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", - "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", - "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", - "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", - "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", - ]); - function checkNotOldWrappedNft(contract) { - if (oldXpWraps.has(contract)) { - throw new Error(`${contract} is an old wrapped NFT`); - } - } - async function isWrappedNft(nft, fc, tc) { - if (fc === consts_1.Chain.TEZOS) { - return typeof nft.native.meta?.token?.metadata?.wrapped !== "undefined"; - } - try { - checkNotOldWrappedNft(nft.collectionIdent); - } catch (_) { - return false; - } - const original = (await axios_1.default.get(nft.uri).catch(() => undefined)) - ?.data.wrapped; - const contract = original?.contract || original?.source_mint_ident; - tc && contract && (0, cons_1.checkBlockedContracts)(tc, contract); - return typeof original !== "undefined"; - } - async function algoOptInCheck(nft, toChain, receiver) { - if ("meta" in nft.native) return; - const nftDat = await axios_1.default.get(nft.uri); - if ( - nftDat.data.wrapped.origin == consts_1.Chain.ALGORAND.toString() && - "isOptIn" in toChain && - !(await toChain.isOptIn(receiver, parseInt(nftDat.data.wrapped.assetID))) - ) { - throw Error("receiver hasn't opted-in to wrapped nft"); - } - } - async function getVerifiedContract(from, tc, fc, tokenId) { - const res = await axios_1.default - .post( - `${appConfig.scVerifyUri}/default/`, - { - sc: from, - chain: tc, - fromChain: fc, - tokenId: tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined, - }, - { - headers: cons_1._headers, - } - ) - .catch(() => { - return undefined; - }); - return res?.data.data; - } - async function checkMintWith(from, to, targetChain, fromChain, tokenId) { - const res = await axios_1.default - .post( - `${appConfig.scVerifyUri}/verify`, - { from, to, targetChain, fromChain, tokenId }, - { - headers: cons_1._headers, - } - ) - .catch(() => undefined); - return res?.data.data == "allowed"; - } - return { - getVerifiedContract, - balance: (i, a) => i.balance(a), - async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { - let result = []; - if (appConfig.network === "mainnet") { - await requireBridge([from.getNonce(), to.getNonce()]); - } - if (!fee) { - fee = await estimateBatchFees(from, to, nfts, receiver); - } - if (!(await to.validateAddress(receiver))) { - throw Error("invalid address"); - } - console.log(`Batch Minting With: ${mw || to.XpNft1155}`); - const wrapped = []; - const unwrapped = []; - await Promise.all( - nfts.map(async (e) => { - // @ts-ignore - if (e.native.contractType && e.native.contractType === "ERC721") { - throw new Error(`ERC721 is not supported`); - } - if (await isWrappedNft(e, from.getNonce())) { - wrapped.push(e); - } else { - unwrapped.push(e); - } - }) - ); - unwrapped.length && - result.push( - from.transferNftBatchToForeign( - signer, - to.getNonce(), - receiver, - unwrapped, - mw || to.XpNft1155, - new bignumber_js_1.default(fee) - ) - ); - wrapped.length && - result.push( - from.unfreezeWrappedNftBatch( - signer, - to.getNonce(), - receiver, - wrapped, - new bignumber_js_1.default(fee) - ) - ); - return await Promise.all(result); - }, - estimateBatchFees, - async whitelistEVM(chain, address) { - const chainLocal = cToP.get(chain); - if (!chainLocal) throw new Error("Chain not found"); - const params = await consts_1.CHAIN_INFO.get(chain)?.constructor( - chainLocal - ); - if (!params) throw new Error("An error occured"); - const isAddressValid = await params.validateAddress(address); - if (!isAddressValid) throw new Error("Address is not valid"); - try { - await chainLocal.notifier.notifyEVM(chain, address); - return { success: true }; - } catch (error) { - throw new Error("An error occured"); - } - }, - async transferSft(from, to, nft, sender, receiver, amt, fee, mintWith) { - if (Number(amt) > 50) - throw new Error("Currenly more that 50 SFTs is not supported"); - let transfers = Array(parseInt(amt.toString())).fill(nft); - if (!fee) { - fee = await estimateFees(from, to, transfers[0], receiver); - } - const sftFees = await estimateSFTfees(from, amt, 0.05); - const x = new bignumber_js_1.default(fee).plus(sftFees); - console.log(x.toNumber()); - if (amt === BigInt(1)) { - const response = this.transferNft( - from, - to, - nft, - sender, - receiver, - new bignumber_js_1.default(x).integerValue(), - mintWith - ); - return response; - } else { - const response = this.transferBatchNft( - from, - to, - transfers, - sender, - receiver, - new bignumber_js_1.default(x).integerValue(), - mintWith - ); - return response; - } - const response = this.transferBatchNft( - from, - to, - transfers, - sender, - receiver, - new bignumber_js_1.default(x).integerValue(), - mintWith - ); - return response; - }, - async getDestinationTransaction(chain, targetNonce, txn) { - const action = await chain.extractAction(txn); - const hash = await txSocket.waitTxHash(targetNonce, action); - const status = await chain.extractTxnStatus(hash); - return [hash, status]; - }, - async pkeyToSigner(nonce, key) { - switch (nonce) { - case consts_1.Chain.ELROND: { - return out_1.UserSigner.fromPem(key); - } - case consts_1.Chain.TRON: { - return key; - } - case consts_1.Chain.ALGORAND: { - const algo = await inner(consts_1.Chain.ALGORAND); - const mnem = algosdk_1.default.secretKeyToMnemonic( - js_base64_1.Base64.toUint8Array(key) - ); - return (0, algorand_1.algoSignerWrapper)( - algo.algod, - algosdk_1.default.mnemonicToSecretKey(mnem) - ); - } - default: { - const chainH = await inner(nonce); - return chainH.createWallet(key); - } - } - }, - estimateFees, - estimateSFTfees, - inner, - bridgeStatus, - updateParams(chainNonce, params) { - helpers.delete(chainNonce); - cToP.set(chainNonce, params); - }, - async nftList(chain, owner) { - let res = await nftlistRest.get(`/nfts/${chain.getNonce()}/${owner}`); - if (res.headers["Retry-After"]) { - await new Promise((r) => setTimeout(r, 30000)); - return await this.nftList(chain, owner); - } - return res.data.data; - }, - transferNft: async ( - fromChain, - toChain, - nft, - sender, - receiver, - fee, - mintWith, - gasLimit, - extraFee, - gasPrice - ) => { - //@ts-ignore - if (nft.native.contract) { - if (![9, 18, 24, 31, 27].includes(fromChain.getNonce())) { - //@ts-ignore - checkNotOldWrappedNft( - new ethers_1.utils.getAddress(nft.native.contract) - ); - } - } - if (appConfig.network === "mainnet") { - await requireBridge([fromChain.getNonce(), toChain.getNonce()]); - } - if (!fee) { - fee = await estimateFees(fromChain, toChain, nft, receiver, extraFee); - console.log(new bignumber_js_1.default(fee).toString()); - } - // if (!(await toChain.validateAddress(receiver))) { - // throw Error("invalid address"); - // } - if (await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce())) { - await algoOptInCheck(nft, toChain, receiver); - const res = await fromChain.unfreezeWrappedNft( - sender, - receiver, - nft, - new bignumber_js_1.default(fee), - toChain.getNonce().toString(), - gasLimit, - gasPrice - ); - return res; - } else { - const mw = - //@ts-ignore contract is checked - "contract" in nft.native && - mintWith && - (await checkMintWith( - nft.collectionIdent, - mintWith, - toChain.getNonce(), - fromChain.getNonce(), - (0, cons_1.prepareTokenId)(nft, fromChain.getNonce()) - )) - ? mintWith - : (0, cons_1.getDefaultContract)(nft, fromChain, toChain); - console.log(`Minting With : ${mw}`); - if (mw === undefined) { - throw new Error(`Mint with is not set`); - } - const res = await fromChain.transferNftToForeign( - sender, - toChain.getNonce(), - receiver, - nft, - new bignumber_js_1.default(fee), - mw, - gasLimit, - gasPrice - ); - return res; - } - }, - mint: async (chain, owner, args) => { - return await chain.mintNft(owner, args); - }, - /** - * Claim a transferred NFT - * @param serialNumber The Serial Number of the claimable NFTs - * @param contractAddress The MintWith HTS Proxy Contract used in the transfer - * @param sender wallet of the sender - * @returns txn response of the claimer - */ - async claimHederaNFT(serialNumber, contractAddress, htsToken, sender) { - const htscf = new hethers_1.ContractFactory( - hts_abi_1.HEDERA_PROXY_ABI, - hts_abi_1.HEDERA_PROXY_BC, - sender - ); - const hts_contract = htscf.attach(contractAddress); - const cf = new hethers_1.ContractFactory( - hts_abi_1.HEDERA_TOKEN_SERVICE_ABI, - "0x", - sender - ); - const contract = cf.attach("0x0000000000000000000000000000000000000167"); - ( - await contract.associateToken(await sender.getAddress(), htsToken, { - gasLimit: 1000000, - }) - ).wait(); - const res = await hts_contract.functions.claimNft( - serialNumber, - htsToken, - { - gasLimit: 1000000, - } - ); - return res; - }, - /** - * Returns all the claimable NFTs of the contract - * @param proxyContract the address of the HTS Proxy contract that was used as mintWith in the transfer - * @param sender wallet of the sender - * @returns array of tokens that were minted - */ - async listHederaClaimableNFT(proxyContract, htsToken, sender) { - const cf = new hethers_1.ContractFactory( - hts_abi_1.HEDERA_PROXY_ABI, - hts_abi_1.HEDERA_PROXY_BC, - sender - ); - const contract = cf.attach(proxyContract); - const tokens = await contract.functions.getClaimableNfts( - await sender.getAddress(), - htsToken, - { - gasLimit: 1000000, - } - ); - return tokens[0]; - }, - waitAlgorandNft: async (origin, hash, claimer) => { - const action = await origin.extractAction(hash); - return await txSocket.waitAlgorandNft( - origin.getNonce(), - claimer.address, - action - ); - }, - claimableAlgorandNfts: async (claimer) => { - const algo = await inner(consts_1.Chain.ALGORAND); - return await algo.claimableNfts(txSocket, claimer); - }, - async checkWhitelist(chain, nft) { - if ( - !chain.isNftWhitelisted || - (await isWrappedNft(nft, chain.getNonce())) - ) { - return true; - } - return await chain.isNftWhitelisted(nft); - }, - isWrappedNft, - setProvider, - }; -} -exports.ChainFactory = ChainFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0NBQThDO0FBSzlDLHlDQUF1QjtBQUN2Qiw4Q0FBNEI7QUFFNUIsZ0VBQXFDO0FBQ3JDLDBCQVlZO0FBRVosa0RBQXNEO0FBQ3RELGdEQUE2RDtBQUM3RCxzREFBOEI7QUFDOUIsa0RBQTBCO0FBQzFCLG1DQUF1QztBQUN2Qyx5Q0FBbUM7QUFDbkMsNENBQStDO0FBQy9DLGtEQU02QjtBQVk3Qix1REFJbUM7QUFnQm5DLGlDQU1nQjtBQWlSaEIsU0FBUyxnQkFBZ0IsQ0FBQyxXQUFpQztJQUN6RCxNQUFNLElBQUksR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFVBQVcsQ0FBQyxDQUFDO0lBQzlDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUNEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixTQUFvQixFQUNwQixXQUFpQztJQUVqQyxJQUFJLE9BQU8sR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMvQyxJQUFJLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6QyxNQUFNLGFBQWEsR0FBRyxJQUFBLDJCQUFlLEVBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTlELE1BQU0sa0JBQWtCLEdBQUcsSUFBQSx1QkFBZ0IsRUFBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFdkUsTUFBTSxRQUFRLEdBQUcsSUFBQSxnQkFBWSxFQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVyRCxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO1FBQy9CLE9BQU8sRUFBRSxTQUFTLENBQUMsVUFBVTtRQUM3QixPQUFPLEVBQUU7WUFDUCxhQUFhLEVBQUUsVUFBVSxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7U0FDdEQ7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQ2pCLEtBQVEsRUFDaUIsRUFBRTtRQUMzQixJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLEdBQUcsTUFBTSxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQyxDQUFDO1lBQ3BFLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsT0FBTyxNQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUF3QixLQUFRLEVBQUUsUUFBYSxFQUFFLEVBQUU7UUFDMUUsTUFBTSxJQUFJLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFFO1lBQ25CLFFBQVE7U0FDVCxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDO0lBRUYsS0FBSyxVQUFVLGdCQUFnQixDQUM3QixTQUFZLEVBQ1osT0FBVSxFQUNWLEdBQWMsRUFDZCxVQUFzQjtRQUV0QixNQUFNLElBQUksR0FBRyxNQUFNLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztZQUNuRCxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxRQUFRO1lBQ2pDLG1CQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBRSxDQUFDLFFBQVE7U0FDcEMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBRSxDQUFDLFFBQVEsQ0FBRSxDQUFDO1FBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFFLENBQUMsUUFBUSxDQUFFLENBQUM7UUFDOUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQy9ELFVBQVUsQ0FBQyxHQUFHLENBQ2YsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxVQUFVLENBQUM7UUFFdEMsT0FBTyxJQUFJO2FBQ1IsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7YUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7YUFDckIsS0FBSyxDQUFDLG1CQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBRSxDQUFDLFFBQVEsQ0FBQzthQUMxQyxZQUFZLENBQUMsc0JBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUN4QixTQUE0QyxFQUM1QyxPQUEwQyxFQUMxQyxHQUFxQixFQUNyQixRQUFnQixFQUNoQixRQUEwQixFQUMxQixFQUFFO1FBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsMkJBQTJCLENBQ3hELFFBQVEsRUFDUixHQUFVLEVBQ1YsRUFBRSxDQUNILENBQUM7UUFFRixJQUFJLElBQUksR0FBRyxNQUFNLGdCQUFnQixDQUMvQixTQUFTLENBQUMsUUFBUSxFQUFFLEVBQ3BCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsUUFBUSxFQUNSLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FDdkIsQ0FBQztRQUVGLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLHNCQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMzQjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUMzQixTQUE0QyxFQUM1QyxNQUFjLEVBQ2QsUUFBZ0IsSUFBSSxFQUNwQixFQUFFO1FBQ0YsTUFBTSxJQUFJLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7WUFDbkQsbUJBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFFLENBQUMsUUFBUTtTQUMvQyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUN6QixtQkFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUUsQ0FBQyxRQUFRLENBQzlDLENBQUM7UUFDSCxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBRTdCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxzQkFBUyxDQUFDLE9BQU8sQ0FBQzthQUMxQixZQUFZLENBQUMsbUJBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFFLENBQUMsUUFBUSxDQUFDO2FBQzVELFlBQVksRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztJQUVGLEtBQUssVUFBVSxZQUFZO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbEMsQ0FBQztZQUNELENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTTtTQUNsQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLFNBQWlELEVBQ2pELE9BQStDLEVBQy9DLEdBQXVCLEVBQ3ZCLFFBQWdCO1FBRWhCLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLGdDQUFnQyxDQUM3RCxRQUFRLEVBQ1IsR0FBVSxFQUNWLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUMxQyxDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQUcsTUFBTSxnQkFBZ0IsQ0FDakMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUNwQixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQ2xCLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUMxQixPQUFPLENBQUMsWUFBWSxFQUFFLENBQ3ZCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLFVBQVUsYUFBYSxDQUFDLE1BQWdCO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVDLElBQUksU0FBNkIsQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULFNBQVMsR0FBRyxDQUFDLENBQUM7YUFDZjtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxLQUFLLENBQUMsU0FBUyxTQUFTLHdDQUF3QyxDQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDekIsNENBQTRDO1FBQzVDLDRDQUE0QztRQUM1Qyw0Q0FBNEM7UUFDNUMsNENBQTRDO1FBQzVDLDRDQUE0QztRQUM1Qyw0Q0FBNEM7UUFDNUMsNENBQTRDO1FBQzVDLDRDQUE0QztRQUM1Qyw0Q0FBNEM7S0FDN0MsQ0FBQyxDQUFDO0lBRUgsU0FBUyxxQkFBcUIsQ0FBQyxRQUFnQjtRQUM3QyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFFBQVEsd0JBQXdCLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFFRCxLQUFLLFVBQVUsWUFBWSxDQUFDLEdBQXFCLEVBQUUsRUFBVSxFQUFFLEVBQVc7UUFDeEUsSUFBSSxFQUFFLEtBQUssY0FBSyxDQUFDLEtBQUssRUFBRTtZQUN0QixPQUFPLENBQ0wsT0FBUSxHQUFHLENBQUMsTUFBYyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU87Z0JBQ3pELFdBQVcsQ0FDWixDQUFDO1NBQ0g7UUFDRCxJQUFJO1lBQ0YscUJBQXFCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzVDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUk7YUFDckUsT0FBTyxDQUFDO1FBQ1gsTUFBTSxRQUFRLEdBQUcsUUFBUSxFQUFFLFFBQVEsSUFBSSxRQUFRLEVBQUUsaUJBQWlCLENBQUM7UUFDbkUsRUFBRSxJQUFJLFFBQVEsSUFBSSxJQUFBLDRCQUFxQixFQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUV0RCxPQUFPLE9BQU8sUUFBUSxLQUFLLFdBQVcsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSyxVQUFVLGNBQWMsQ0FDM0IsR0FBcUIsRUFDckIsT0FBNkMsRUFDN0MsUUFBZ0I7UUFFaEIsSUFBSSxNQUFNLElBQUssR0FBRyxDQUFDLE1BQThCO1lBQUUsT0FBTztRQUMxRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLGNBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO1lBQ3ZELFNBQVMsSUFBSSxPQUFPO1lBQ3BCLENBQUMsQ0FBQyxNQUFPLE9BQTBCLENBQUMsT0FBTyxDQUN6QyxRQUFRLEVBQ1IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN0QyxDQUFDLEVBQ0Y7WUFDQSxNQUFNLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELEtBQUssVUFBVSxtQkFBbUIsQ0FDaEMsSUFBWSxFQUNaLEVBQVUsRUFDVixFQUFVLEVBQ1YsT0FBZ0I7UUFFaEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxlQUFLO2FBQ3BCLElBQUksQ0FDSCxHQUFHLFNBQVMsQ0FBQyxXQUFXLFdBQVcsRUFDbkM7WUFDRSxFQUFFLEVBQUUsSUFBSTtZQUNSLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDbEUsRUFDRDtZQUNFLE9BQU8sRUFBRSxlQUFRO1NBQ2xCLENBQ0Y7YUFDQSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1YsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLFVBQVUsYUFBYSxDQUMxQixJQUFZLEVBQ1osRUFBVSxFQUNWLFdBQW1CLEVBQ25CLFNBQWlCLEVBQ2pCLE9BQWdCO1FBRWhCLE1BQU0sR0FBRyxHQUFHLE1BQU0sZUFBSzthQUNwQixJQUFJLENBQ0gsR0FBRyxTQUFTLENBQUMsV0FBVyxTQUFTLEVBQ2pDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUM3QztZQUNFLE9BQU8sRUFBRSxlQUFRO1NBQ2xCLENBQ0Y7YUFDQSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFMUIsT0FBTyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU87UUFDTCxtQkFBbUI7UUFDbkIsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDL0IsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFFOUQsSUFBSSxNQUFNLEdBQWEsRUFBRSxDQUFDO1lBQzFCLElBQUksU0FBUyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQ25DLE1BQU0sYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdkQ7WUFFRCxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNSLEdBQUcsR0FBRyxNQUFNLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3pEO1lBQ0QsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLE1BQU0sS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDaEM7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLElBQUksRUFBRSxDQUFDLFNBQVUsRUFBRSxDQUFDLENBQUM7WUFDMUQsTUFBTSxPQUFPLEdBQW1CLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFNBQVMsR0FBbUIsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDbkIsYUFBYTtnQkFDYixJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtvQkFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2lCQUM1QztnQkFDRCxJQUFJLE1BQU0sWUFBWSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtvQkFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDakI7cUJBQU07b0JBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBQ0YsU0FBUyxDQUFDLE1BQU07Z0JBQ2QsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLENBQUMseUJBQXlCLENBQzVCLE1BQU0sRUFDTixFQUFFLENBQUMsUUFBUSxFQUFFLEVBQ2IsUUFBUSxFQUNSLFNBQVMsRUFDVCxFQUFFLElBQUksRUFBRSxDQUFDLFNBQVUsRUFDbkIsSUFBSSxzQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUNuQixDQUNGLENBQUM7WUFDSixPQUFPLENBQUMsTUFBTTtnQkFDWixNQUFNLENBQUMsSUFBSSxDQUNULElBQUksQ0FBQyx1QkFBdUIsQ0FDMUIsTUFBTSxFQUNOLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFDYixRQUFRLEVBQ1IsT0FBTyxFQUNQLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsQ0FDbkIsQ0FDRixDQUFDO1lBQ0osT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELGlCQUFpQjtRQUNqQixLQUFLLENBQUMsWUFBWSxDQUF1QixLQUFRLEVBQUUsT0FBZTtZQUNoRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRW5DLElBQUksQ0FBQyxVQUFVO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNwRCxNQUFNLE1BQU0sR0FBRyxNQUFNLG1CQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsTUFBTTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDakQsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxjQUFjO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUU3RCxJQUFJO2dCQUNGLE1BQU0sVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzFCO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLFFBQVM7WUFDckUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDNUQ7WUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sQ0FBQyxHQUFHLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUUxQixJQUFJLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQy9CLElBQUksRUFDSixFQUFFLEVBQ0YsR0FBRyxFQUNILE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxzQkFBUyxDQUFDLENBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUNoQyxRQUFRLENBQ1QsQ0FBQztnQkFDRixPQUFPLFFBQWUsQ0FBQzthQUN4QjtpQkFBTTtnQkFDTCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQ3BDLElBQUksRUFDSixFQUFFLEVBQ0YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxzQkFBUyxDQUFDLENBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUNoQyxRQUFRLENBQ1QsQ0FBQztnQkFDRixPQUFPLFFBQWUsQ0FBQzthQUN4QjtZQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FDcEMsSUFBSSxFQUNKLEVBQUUsRUFDRixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLHNCQUFTLENBQUMsQ0FBRSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQ2hDLFFBQVEsQ0FDVCxDQUFDO1lBQ0YsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUNELEtBQUssQ0FBQyx5QkFBeUIsQ0FDN0IsS0FBMEMsRUFDMUMsV0FBbUIsRUFDbkIsR0FBTTtZQUVOLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QyxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVELE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQXVCLEtBQVEsRUFBRSxHQUFXO1lBQzVELFFBQVEsS0FBSyxFQUFFO2dCQUNiLEtBQUssY0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNqQixPQUFPLGdCQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNoQztnQkFDRCxLQUFLLGNBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDZixPQUFPLEdBQUcsQ0FBQztpQkFDWjtnQkFDRCxLQUFLLGNBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDbkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsY0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN6QyxNQUFNLElBQUksR0FBRyxpQkFBTyxDQUFDLG1CQUFtQixDQUFDLGtCQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ25FLE9BQU8sSUFBQSw0QkFBaUIsRUFDdEIsSUFBSSxDQUFDLEtBQUssRUFDVixpQkFBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUNsQyxDQUFDO2lCQUNIO2dCQUNELE9BQU8sQ0FBQyxDQUFDO29CQUNQLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQVEsQ0FBQztvQkFDM0MsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQzthQUNGO1FBQ0gsQ0FBQztRQUNELFlBQVk7UUFDWixlQUFlO1FBQ2YsS0FBSztRQUNMLFlBQVk7UUFDWixZQUFZLENBQ1YsVUFBYSxFQUNiLE1BQTBCO1lBRTFCLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUksS0FBd0IsRUFBRSxLQUFhO1lBQ3RELElBQUksR0FBRyxHQUFHLE1BQU0sV0FBVyxDQUFDLEdBQUcsQ0FDN0IsU0FBUyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksS0FBSyxFQUFFLENBQ3JDLENBQUM7WUFFRixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQzlCLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDL0MsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3pDO1lBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsV0FBVyxFQUFFLEtBQUssRUFDaEIsU0FBUyxFQUNULE9BQU8sRUFDUCxHQUFHLEVBQ0gsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLEVBQUU7WUFDRixZQUFZO1lBQ1osSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtvQkFDdkQsWUFBWTtvQkFDWixxQkFBcUIsQ0FBQyxJQUFJLGNBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2lCQUNsRTthQUNGO1lBRUQsSUFBSSxTQUFTLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDbkMsTUFBTSxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNqRTtZQUVELElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUM1QztZQUNELG9EQUFvRDtZQUNwRCxvQ0FBb0M7WUFDcEMsSUFBSTtZQUVKLElBQUksTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtnQkFDckUsTUFBTSxjQUFjLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFFN0MsTUFBTSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsa0JBQWtCLENBQzVDLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsRUFDbEIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUM3QixRQUFRLEVBQ1IsUUFBUSxDQUNULENBQUM7Z0JBRUYsT0FBTyxHQUFHLENBQUM7YUFDWjtpQkFBTTtnQkFDTCxNQUFNLEVBQUU7Z0JBQ04sZ0NBQWdDO2dCQUNoQyxVQUFVLElBQUksR0FBRyxDQUFDLE1BQU07b0JBQ3hCLFFBQVE7b0JBQ1IsQ0FBQyxNQUFNLGFBQWEsQ0FDbEIsR0FBRyxDQUFDLGVBQWUsRUFDbkIsUUFBUSxFQUNSLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUNwQixJQUFBLHFCQUFjLEVBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUMxQyxDQUFDO29CQUNBLENBQUMsQ0FBQyxRQUFRO29CQUNWLENBQUMsQ0FBQyxJQUFBLHlCQUFrQixFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBRWxELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRXBDLElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRTtvQkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2lCQUN6QztnQkFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxvQkFBb0IsQ0FDOUMsTUFBTSxFQUNOLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsUUFBUSxFQUNSLEdBQUcsRUFDSCxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLEVBQ2xCLEVBQUUsRUFDRixRQUFRLEVBQ1IsUUFBUSxDQUNULENBQUM7Z0JBRUYsT0FBTyxHQUFHLENBQUM7YUFDWjtRQUNILENBQUM7UUFDRCxJQUFJLEVBQUUsS0FBSyxFQUNULEtBQWlDLEVBQ2pDLEtBQWEsRUFDYixJQUFVLEVBQ0ksRUFBRTtZQUNoQixPQUFPLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNEOzs7Ozs7V0FNRztRQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTTtZQUNsRSxNQUFNLEtBQUssR0FBRyxJQUFJLHlCQUFlLENBQy9CLDBCQUFnQixFQUNoQix5QkFBZSxFQUNmLE1BQU0sQ0FDUCxDQUFDO1lBQ0YsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNuRCxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFlLENBQUMsa0NBQXdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUN6RSxDQUNFLE1BQU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUU7Z0JBQ2pFLFFBQVEsRUFBRSxPQUFPO2FBQ2xCLENBQUMsQ0FDSCxDQUFDLElBQUksRUFBRSxDQUFDO1lBRVQsTUFBTSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FDL0MsWUFBWSxFQUNaLFFBQVEsRUFDUjtnQkFDRSxRQUFRLEVBQUUsT0FBTzthQUNsQixDQUNGLENBQUM7WUFDRixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDRDs7Ozs7V0FLRztRQUNILEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU07WUFDMUQsTUFBTSxFQUFFLEdBQUcsSUFBSSx5QkFBZSxDQUFDLDBCQUFnQixFQUFFLHlCQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUUsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxQyxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQ3RELE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUN6QixRQUFRLEVBQ1I7Z0JBQ0UsUUFBUSxFQUFFLE9BQU87YUFDbEIsQ0FDRixDQUFDO1lBQ0YsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUMvQyxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEQsT0FBTyxNQUFNLFFBQVEsQ0FBQyxlQUFlLENBQ25DLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFDakIsT0FBTyxDQUFDLE9BQU8sRUFDZixNQUFNLENBQ1AsQ0FBQztRQUNKLENBQUM7UUFDRCxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEdBQW1CLE1BQU0sS0FBSyxDQUFDLGNBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RCxPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUc7WUFDN0IsSUFDRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQ3ZCLENBQUMsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQzNDO2dCQUNBLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxPQUFPLE1BQU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxZQUFZO1FBQ1osV0FBVztLQUNaLENBQUM7QUFDSixDQUFDO0FBcmxCRCxvQ0FxbEJDIn0= diff --git a/dist/factory/index.ts b/dist/factory/index.ts deleted file mode 100644 index d926be75a..000000000 --- a/dist/factory/index.ts +++ /dev/null @@ -1,987 +0,0 @@ -import { ElrondParams } from "../helpers/elrond"; -import { TronParams } from "../helpers/tron"; -import { Web3Params } from "../helpers/web3"; -import { Chain, CHAIN_INFO } from "../consts"; - -export * from "./factories"; - -import { - ChainNonceGet, - EstimateTxFees, - ExtractAction, - ExtractTxnStatus, - MintNft, - NftInfo, - socketHelper, - TransactionStatus, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from ".."; -import BigNumber from "bignumber.js"; - -import axios from "axios"; -import { - _headers, - exchangeRateRepo, - getDefaultContract, - prepareTokenId, - checkBlockedContracts, -} from "./cons"; -import { UserSigner } from "@elrondnetwork/erdjs/out"; -import { bridgeHeartbeat } from "../heartbeat"; -import { ethers, utils } from "ethers"; -import { - AlgorandHelper, - AlgorandParams, - AlgoSignerH, - algoSignerWrapper, - ClaimNftInfo, -} from "../helpers/algorand"; -import algosdk from "algosdk"; -import { Base64 } from "js-base64"; -import { TezosParams } from "../helpers/tezos"; -import { - BalanceCheck, - EstimateTxFeesBatch, - FeeMargins, - GetFeeMargins, - TransferNftForeignBatch, - UnfreezeForeignNftBatch, - WhitelistCheck, -} from "../helpers/chain"; -import { - ChainNonce, - HelperMap, - InferChainH, - InferChainParam, - InferNativeNft, - InferSigner, - ParamMap, -} from "../type-utils"; -import { SecretParams } from "../helpers/secret"; -import { DfinityParams } from "../helpers/dfinity/dfinity"; -import { NearParams } from "../helpers/near"; -import { TonParams } from "../helpers/ton"; -import { ContractFactory, Wallet } from "@hashgraph/hethers"; -import { - HEDERA_PROXY_ABI, - HEDERA_PROXY_BC, - HEDERA_TOKEN_SERVICE_ABI, -} from "../helpers/hedera/hts_abi"; -import { AptosParams } from "../helpers/aptos"; -import { Web3ERC20Params } from "../helpers/web3_erc20"; -import { SolanaParams } from "../helpers/solana"; - -export type FullChain = TransferNftForeign< - Signer, - RawNft, - Resp -> & - UnfreezeForeignNft & - EstimateTxFees & - ChainNonceGet & - ValidateAddress & { XpNft: string; XpNft1155?: string } & GetFeeMargins; - -type FullChainBatch = FullChain & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - EstimateTxFeesBatch; - -/** - * A type representing a chain factory. - */ -export type ChainFactory = { - /** - * Creates an helper factory for a given chain - * @param chain: {@link ChainNonce} to create the helper for. - */ - inner(chain: T): Promise>; - /** - * Whether or not the bridge is alive for a given chain - * this is checked regardless before using any bridge related function(e.g transferNft) is called - */ - bridgeStatus(): Promise<{ [chainNonce: number]: "alive" | "dead" }>; - /** - * Check the balance of an account - * - * @param inner The chain to check the balance in - * @param address address of the account - */ - balance(inner: BalanceCheck, address: string): Promise; - /** - * Transfers the NFT from one chain to other. - * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. - * @param toChain {@link FullChain} the chain to transfer to. Use inner method of the factory to get this. - * WARN: Algorand NFTs must be manually claimed by the receiver - * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the `nftList` method of the factory. - * @param sender {@link Sender} The owner of the NFT. - * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. - * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) - * @param mintWith an arbitrary address of the target chain minter contract - * @param gasLimit an arbitrary gas limit value (required for some chains) - */ - - transferNft( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo, - sender: SignerF, - receiver: string, - fee?: BigNumber.Value, - mintWith?: string, - gasLimit?: ethers.BigNumberish | undefined, - extraFee?: BigNumber.Value - ): Promise; - - transferBatchNft( - fromChain: FullChainBatch, - toChain: FullChainBatch, - nft: NftInfo[], - sender: SignerF, - receiver: string, - fee?: BigNumber.Value, - mintWith?: string - ): Promise; - - claimHederaNFT( - serialNumber: ethers.BigNumberish, - proxyAddress: string, - htsToken: string, - sender: Wallet - ): Promise; - - listHederaClaimableNFT( - proxyContract: string, - htsToken: string, - sender: Wallet - ): Promise; - - transferSft( - fromChain: FullChainBatch, - toChain: FullChainBatch, - nft: NftInfo, - sender: SignerF, - receiver: string, - amt: bigint, - fee?: BigNumber.Value, - mintWith?: string - ): Promise; - /** - * Mints an NFT on the chain. - * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. - * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar defi wallet. - * @param args: {@link NftMintArgs} Arguments to mint the nft. Contract is must for web3 and tron. Identifier is must for elrond. - */ - mint( - chain: MintNft, - owner: Signer, - args: Args - ): Promise; - /** - * Lists all the NFTs on the chain owner by {@param owner}. - * @param chain: Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. - * @param owner: Address of the owner of the NFT as a raw string. - */ - nftList( - chain: ChainNonceGet & T, - owner: string - ): Promise>[]>; - /** - * Estimates the required fee for transferring an NFT. - * @param fromChain: {@link FullChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. - * @param toChain: {@link FullChain} Chain to which the NFT must be sent. Can be obtained from the `inner` method on the factory. - * @param nft: {@link NftInfo} The NFT that has to be transferred. Generally comes from the `nftList` method of the factory. - * @param receiver: Address of the receiver of the NFT in raw string.. - */ - estimateFees( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo, - receiver: string - ): Promise; - - estimateSFTfees( - fromChain: FullChain, - amount: bigint, - price: number - ): Promise; - - estimateBatchFees( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo[], - receiver: string - ): Promise; - /** - * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. - * @param params : New Params to be set. - */ - updateParams( - nonce: T, - params: InferChainParam - ): void; - pkeyToSigner( - nonce: S, - key: string - ): Promise>>; - /** - * Get transaction in the destination chain - * WARN: use claimAlgorandNft instead for algorand. - * - * @param chain source chain - * @param destination destination chain - * @param hash transaction hash from source chain - * - * @returns transaction hash in original chain, unique action id - */ - getDestinationTransaction( - chain: ExtractAction & ExtractTxnStatus, - destination: number, - hash: Txn - ): Promise<[string, TransactionStatus]>; - /** - * Claim an algorand nft - * - * @param originChain chain from which the nft was transferred - * @param txn Transaction Hash of the original - * @param claimer the account which can claim the nft - */ - waitAlgorandNft( - originChain: ExtractAction & ChainNonceGet, - txn: Txn, - claimer: AlgoSignerH - ): Promise; - /** - * @param claimer: the account which can claim the nfts - */ - claimableAlgorandNfts(claimer: string): Promise; - - getVerifiedContract( - from: string, - targetChain: number, - fc: number, - tokenId?: string - ): Promise; - - checkWhitelist( - chain: Partial> & ChainNonceGet, - nft: NftInfo - ): Promise; - - isWrappedNft(nft: NftInfo, fromChain: number): Promise; - - setProvider(fromChain: number, provider: any): Promise; - - whitelistEVM( - chain: T, - address: string, - nonce: number - ): Promise<{ success: true }>; -}; - -/** - * A type representing all the supported chain params. - */ -export interface ChainParams { - elrondParams: ElrondParams; - hecoParams: Web3Params; - bscParams: Web3Params; - ropstenParams: Web3Params; - avalancheParams: Web3Params; - polygonParams: Web3Params; - fantomParams: Web3Params; - tronParams: TronParams; - celoParams: Web3Params; - harmonyParams: Web3Params; - ontologyParams: Web3Params; - xDaiParams: Web3Params; - algorandParams: AlgorandParams; - fuseParams: Web3Params; - uniqueParams: Web3Params; - tezosParams: TezosParams; - velasParams: Web3Params; - iotexParams: Web3Params; - vechainParams: Web3Params; - auroraParams: Web3Params; - godwokenParams: Web3Params; - gateChainParams: Web3Params; - secretParams: SecretParams; - hederaParams: Web3Params; - skaleParams: Web3ERC20Params; - dfinityParams: DfinityParams; - nearParams: NearParams; - moonbeamParams: Web3Params; - abeyChainParams: Web3Params; - tonParams: TonParams; - aptosParams: AptosParams; - solanaParams: SolanaParams; - caduceusParams: Web3Params; -} - -export type MoralisNetwork = "mainnet" | "testnet"; - -/** - * A struct for the configuration of the library. - * @field exchangeRateUri: The URI of the exchange rate service. - * @field moralisServer: The URI of the moralis server. - * @field moralisAppId: The app id of the moralis server. - * @field tronScanUri: The URI of the tron scan service. - */ -export interface AppConfig { - exchangeRateUri: string; - heartbeatUri: string; - txSocketUri: string; - nftListUri: string; - nftListAuthToken: string; - tronScanUri: string; - wrappedNftPrefix: string; - scVerifyUri: string; - network: "testnet" | "mainnet" | "staging"; -} - -function mapNonceToParams(chainParams: Partial): ParamMap { - const cToP: ParamMap = new Map(); - cToP.set(Chain.ELROND, chainParams.elrondParams); - cToP.set(Chain.HECO, chainParams.hecoParams); - cToP.set(Chain.BSC, chainParams.bscParams); - cToP.set(Chain.ETHEREUM, chainParams.ropstenParams); - cToP.set(Chain.AVALANCHE, chainParams.avalancheParams); - cToP.set(Chain.POLYGON, chainParams.polygonParams); - cToP.set(Chain.FANTOM, chainParams.fantomParams); - cToP.set(Chain.TRON, chainParams.tronParams); - cToP.set(Chain.CELO, chainParams.celoParams!); - cToP.set(Chain.HARMONY, chainParams.harmonyParams); - cToP.set(Chain.ONT, chainParams.ontologyParams); - cToP.set(Chain.XDAI, chainParams.xDaiParams); - cToP.set(Chain.ALGORAND, chainParams.algorandParams); - cToP.set(Chain.FUSE, chainParams.fuseParams); - cToP.set(Chain.UNIQUE, chainParams.uniqueParams); - cToP.set(Chain.TEZOS, chainParams.tezosParams); - cToP.set(Chain.VELAS, chainParams.velasParams); - cToP.set(Chain.IOTEX, chainParams.iotexParams); - cToP.set(Chain.AURORA, chainParams.auroraParams); - cToP.set(Chain.GODWOKEN, chainParams.godwokenParams); - cToP.set(Chain.GATECHAIN, chainParams.gateChainParams); - cToP.set(Chain.VECHAIN, chainParams.vechainParams); - cToP.set(Chain.SECRET, chainParams.secretParams); - cToP.set(Chain.HEDERA, chainParams.hederaParams); - cToP.set(Chain.SKALE, chainParams.skaleParams); - cToP.set(Chain.DFINITY, chainParams.dfinityParams); - cToP.set(Chain.NEAR, chainParams.nearParams); - cToP.set(Chain.MOONBEAM, chainParams.moonbeamParams); - cToP.set(Chain.ABEYCHAIN, chainParams.abeyChainParams); - cToP.set(Chain.TON, chainParams.tonParams); - cToP.set(Chain.APTOS, chainParams.aptosParams); - cToP.set(Chain.SOLANA, chainParams.solanaParams); - cToP.set(Chain.CADUCEUS, chainParams.caduceusParams); - return cToP; -} -/** - * This function is the basic entry point to use this package as a library. - * @param appConfig: {@link AppConfig} The configuration of the library. - * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. - * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. - */ -export function ChainFactory( - appConfig: AppConfig, - chainParams: Partial -): ChainFactory { - let helpers: HelperMap = new Map(); - let cToP = mapNonceToParams(chainParams); - - const heartbeatRepo = bridgeHeartbeat(appConfig.heartbeatUri); - - const remoteExchangeRate = exchangeRateRepo(appConfig.exchangeRateUri); - - const txSocket = socketHelper(appConfig.txSocketUri); - - const nftlistRest = axios.create({ - baseURL: appConfig.nftListUri, - headers: { - Authorization: `Bearer ${appConfig.nftListAuthToken}`, - }, - }); - - const inner = async ( - chain: T - ): Promise> => { - let helper = helpers.get(chain); - if (helper === undefined) { - helper = await CHAIN_INFO.get(chain)!.constructor(cToP.get(chain)!); - helpers.set(chain, helper); - } - return helper!; - }; - - const setProvider = async (chain: T, provider: any) => { - const args = { - ...cToP.get(chain)!, - provider, - }; - const helper = await CHAIN_INFO.get(chain)!.constructor(args); - helpers.set(chain, helper); - }; - - async function calcExchangeFees( - fromChain: T, - toChain: T, - val: BigNumber, - toChainFee: FeeMargins - ): Promise { - const rate = await remoteExchangeRate.getBatchedRate([ - CHAIN_INFO.get(toChain)!.currency, - CHAIN_INFO.get(fromChain)!.currency, - ]); - const feeR = val.dividedBy(CHAIN_INFO.get(toChain)!.decimals); - const fromExRate = rate.get(CHAIN_INFO.get(fromChain)!.currency)!; - const toExRate = rate.get(CHAIN_INFO.get(toChain)!.currency)!; - const usdFee = Math.min( - Math.max(toChainFee.min, feeR.times(toExRate * 0.1).toNumber()), - toChainFee.max - ); - const feeProfit = usdFee / fromExRate; - - return feeR - .times(toExRate / fromExRate) - .plus(feeProfit * 0.5) - .times(CHAIN_INFO.get(fromChain)!.decimals) - .integerValue(BigNumber.ROUND_CEIL); - } - const estimateFees = async ( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo, - receiver: string, - extraFee?: BigNumber.Value - ) => { - const estimate = await toChain.estimateValidateTransferNft( - receiver, - nft as any, - "" - ); - - let conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate, - toChain.getFeeMargin() - ); - - if (extraFee) { - conv = conv.multipliedBy(extraFee).integerValue(BigNumber.ROUND_CEIL); - console.log("extra conv"); - } - - return conv; - }; - - const estimateSFTfees = async ( - fromChain: FullChain, - amount: bigint, - price: number = 0.05 - ) => { - const rate = await remoteExchangeRate.getBatchedRate([ - CHAIN_INFO.get(fromChain.getNonce())!.currency, - ]); - - const fromExRate = rate.get( - CHAIN_INFO.get(fromChain.getNonce())!.currency - )!; - const y = price / fromExRate; - - const sftFees = Number(amount) <= 10 ? 0 : y * (Number(amount) - 10); - return new BigNumber(sftFees) - .multipliedBy(CHAIN_INFO.get(fromChain.getNonce())!.decimals) - .integerValue(); - }; - - async function bridgeStatus(): Promise<{ [x: number]: "alive" | "dead" }> { - const res = await heartbeatRepo.status(); - return Object.fromEntries( - Object.entries(res).map(([c, s]) => [ - c, - s.bridge_alive ? "alive" : "dead", - ]) - ); - } - - async function estimateBatchFees( - fromChain: FullChainBatch, - toChain: FullChainBatch, - nft: NftInfo[], - receiver: string - ): Promise { - const estimate = await toChain.estimateValidateTransferNftBatch( - receiver, - nft as any, - new Array(nft.length).fill(toChain.XpNft) - ); - const conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate.times(nft.length), - toChain.getFeeMargin() - ); - return conv; - } - - async function requireBridge(chains: number[]): Promise { - const status = await heartbeatRepo.status(); - let deadChain: number | undefined; - const alive = chains.every((c) => { - const stat = status[c].bridge_alive; - if (!stat) { - deadChain = c; - } - return stat; - }); - if (!alive) { - throw Error(`chain ${deadChain} is dead! its unsafe to use the bridge`); - } - } - - const oldXpWraps = new Set([ - "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", - "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", - "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", - "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", - "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", - "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", - "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", - ]); - - function checkNotOldWrappedNft(contract: string) { - if (oldXpWraps.has(contract)) { - throw new Error(`${contract} is an old wrapped NFT`); - } - } - - async function isWrappedNft(nft: NftInfo, fc: number, tc?: number) { - if (fc === Chain.TEZOS) { - return ( - typeof (nft.native as any).meta?.token?.metadata?.wrapped !== - "undefined" - ); - } - try { - checkNotOldWrappedNft(nft.collectionIdent); - } catch (_) { - return false; - } - - const original = (await axios.get(nft.uri).catch(() => undefined))?.data - .wrapped; - const contract = original?.contract || original?.source_mint_ident; - tc && contract && checkBlockedContracts(tc, contract); - - return typeof original !== "undefined"; - } - - async function algoOptInCheck( - nft: NftInfo, - toChain: FullChain, - receiver: string - ) { - if ("meta" in (nft.native as Record)) return; - const nftDat = await axios.get(nft.uri); - if ( - nftDat.data.wrapped.origin == Chain.ALGORAND.toString() && - "isOptIn" in toChain && - !(await (toChain as AlgorandHelper).isOptIn( - receiver, - parseInt(nftDat.data.wrapped.assetID) - )) - ) { - throw Error("receiver hasn't opted-in to wrapped nft"); - } - } - - async function getVerifiedContract( - from: string, - tc: number, - fc: number, - tokenId?: string - ): Promise { - const res = await axios - .post<{ data: string }>( - `${appConfig.scVerifyUri}/default/`, - { - sc: from, - chain: tc, - fromChain: fc, - tokenId: tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined, - }, - { - headers: _headers, - } - ) - .catch(() => { - return undefined; - }); - return res?.data.data; - } - - async function checkMintWith( - from: string, - to: string, - targetChain: number, - fromChain: number, - tokenId?: string - ): Promise { - const res = await axios - .post<{ data: "allowed" | "not allowed" }>( - `${appConfig.scVerifyUri}/verify`, - { from, to, targetChain, fromChain, tokenId }, - { - headers: _headers, - } - ) - .catch(() => undefined); - - return res?.data.data == "allowed"; - } - - return { - getVerifiedContract, - balance: (i, a) => i.balance(a), - async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { - type Result = ReturnType; - let result: Result[] = []; - if (appConfig.network === "mainnet") { - await requireBridge([from.getNonce(), to.getNonce()]); - } - - if (!fee) { - fee = await estimateBatchFees(from, to, nfts, receiver); - } - if (!(await to.validateAddress(receiver))) { - throw Error("invalid address"); - } - console.log(`Batch Minting With: ${mw || to.XpNft1155!}`); - const wrapped: NftInfo[] = []; - const unwrapped: NftInfo[] = []; - await Promise.all( - nfts.map(async (e) => { - // @ts-ignore - if (e.native.contractType && e.native.contractType === "ERC721") { - throw new Error(`ERC721 is not supported`); - } - if (await isWrappedNft(e, from.getNonce())) { - wrapped.push(e); - } else { - unwrapped.push(e); - } - }) - ); - unwrapped.length && - result.push( - from.transferNftBatchToForeign( - signer, - to.getNonce(), - receiver, - unwrapped, - mw || to.XpNft1155!, - new BigNumber(fee) - ) - ); - wrapped.length && - result.push( - from.unfreezeWrappedNftBatch( - signer, - to.getNonce(), - receiver, - wrapped, - new BigNumber(fee) - ) - ); - return await Promise.all(result); - }, - estimateBatchFees, - async whitelistEVM(chain: T, address: string) { - const chainLocal = cToP.get(chain); - - if (!chainLocal) throw new Error("Chain not found"); - // const params = await CHAIN_INFO.get(chain)?.constructor(chainLocal); - // if (!params) throw new Error("Unable to get params"); - // const isAddressValid = await params.validateAddress(address); - // if (!isAddressValid) throw new Error("Address is not valid"); - - try { - await chainLocal.notifier.notifyEVM(chain, address); - return { success: true }; - } catch (error) { - throw new Error("An error occured: " + error.message); - } - }, - async transferSft(from, to, nft, sender, receiver, amt, fee?, mintWith?) { - if (Number(amt) > 50) - throw new Error("Currenly more that 50 SFTs is not supported"); - let transfers = Array(parseInt(amt.toString())).fill(nft); - if (!fee) { - fee = await estimateFees(from, to, transfers[0], receiver); - } - const sftFees = await estimateSFTfees(from, amt, 0.05); - const x = new BigNumber(fee).plus(sftFees); - - console.log(x.toNumber()); - - if (amt === BigInt(1)) { - const response = this.transferNft( - from, - to, - nft, - sender, - receiver, - new BigNumber(x!).integerValue(), - mintWith - ); - return response as any; - } else { - const response = this.transferBatchNft( - from, - to, - transfers, - sender, - receiver, - new BigNumber(x!).integerValue(), - mintWith - ); - return response as any; - } - - const response = this.transferBatchNft( - from, - to, - transfers, - sender, - receiver, - new BigNumber(x!).integerValue(), - mintWith - ); - return response; - }, - async getDestinationTransaction( - chain: ExtractAction & ExtractTxnStatus, - targetNonce: number, - txn: T - ) { - const action = await chain.extractAction(txn); - const hash = await txSocket.waitTxHash(targetNonce, action); - const status = await chain.extractTxnStatus(hash); - return [hash, status]; - }, - async pkeyToSigner(nonce: T, key: string) { - switch (nonce) { - case Chain.ELROND: { - return UserSigner.fromPem(key); - } - case Chain.TRON: { - return key; - } - case Chain.ALGORAND: { - const algo = await inner(Chain.ALGORAND); - const mnem = algosdk.secretKeyToMnemonic(Base64.toUint8Array(key)); - return algoSignerWrapper( - algo.algod, - algosdk.mnemonicToSecretKey(mnem) - ); - } - default: { - const chainH = (await inner(nonce)) as any; - return chainH.createWallet(key); - } - } - }, - estimateFees, - estimateSFTfees, - inner, - bridgeStatus, - updateParams( - chainNonce: T, - params: InferChainParam - ) { - helpers.delete(chainNonce); - cToP.set(chainNonce, params); - }, - async nftList(chain: ChainNonceGet & T, owner: string) { - let res = await nftlistRest.get<{ data: NftInfo>[] }>( - `/nfts/${chain.getNonce()}/${owner}` - ); - - if (res.headers["Retry-After"]) { - await new Promise((r) => setTimeout(r, 30000)); - return await this.nftList(chain, owner); - } - return res.data.data; - }, - transferNft: async ( - fromChain, - toChain, - nft, - sender, - receiver, - fee, - mintWith, - gasLimit, - extraFee - ) => { - //@ts-ignore - if (nft.native.contract) { - if (![9, 18, 24, 31, 27].includes(fromChain.getNonce())) { - //@ts-ignore - checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); - } - } - - const tokenId = - //@ts-ignore - nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); - - if (appConfig.network === "mainnet") { - await requireBridge([fromChain.getNonce(), toChain.getNonce()]); - } - - if (!fee) { - fee = await estimateFees(fromChain, toChain, nft, receiver, extraFee); - console.log(new BigNumber(fee).toString()); - } - // if (!(await toChain.validateAddress(receiver))) { - // throw Error("invalid address"); - // } - - if (await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce())) { - await algoOptInCheck(nft, toChain, receiver); - - const res = await fromChain.unfreezeWrappedNft( - sender, - receiver, - nft, - new BigNumber(fee), - toChain.getNonce().toString(), - gasLimit - ); - - return res; - } else { - const mw = - //@ts-ignore contract is checked - "contract" in nft.native && - mintWith && - (await checkMintWith( - nft.collectionIdent, - mintWith, - toChain.getNonce(), - fromChain.getNonce(), - prepareTokenId(tokenId, fromChain.getNonce()) - )) - ? mintWith - : getDefaultContract(nft, fromChain, toChain); - - console.log(`Minting With : ${mw}`); - - if (mw === undefined) { - throw new Error(`Mint with is not set`); - } - - const res = await fromChain.transferNftToForeign( - sender, - toChain.getNonce(), - receiver, - nft, - new BigNumber(fee), - mw, - gasLimit - ); - - return res; - } - }, - mint: async ( - chain: MintNft, - owner: Signer, - args: Args - ): Promise => { - return await chain.mintNft(owner, args); - }, - /** - * Claim a transferred NFT - * @param serialNumber The Serial Number of the claimable NFTs - * @param contractAddress The MintWith HTS Proxy Contract used in the transfer - * @param sender wallet of the sender - * @returns txn response of the claimer - */ - async claimHederaNFT(serialNumber, contractAddress, htsToken, sender) { - const htscf = new ContractFactory( - HEDERA_PROXY_ABI, - HEDERA_PROXY_BC, - sender - ); - const hts_contract = htscf.attach(contractAddress); - const cf = new ContractFactory(HEDERA_TOKEN_SERVICE_ABI, "0x", sender); - const contract = cf.attach("0x0000000000000000000000000000000000000167"); - ( - await contract.associateToken(await sender.getAddress(), htsToken, { - gasLimit: 1000000, - }) - ).wait(); - - const res = await hts_contract.functions.claimNft( - serialNumber, - htsToken, - { - gasLimit: 1000000, - } - ); - return res; - }, - /** - * Returns all the claimable NFTs of the contract - * @param proxyContract the address of the HTS Proxy contract that was used as mintWith in the transfer - * @param sender wallet of the sender - * @returns array of tokens that were minted - */ - async listHederaClaimableNFT(proxyContract, htsToken, sender) { - const cf = new ContractFactory(HEDERA_PROXY_ABI, HEDERA_PROXY_BC, sender); - const contract = cf.attach(proxyContract); - const tokens = await contract.functions.getClaimableNfts( - await sender.getAddress(), - htsToken, - { - gasLimit: 1000000, - } - ); - return tokens[0]; - }, - waitAlgorandNft: async (origin, hash, claimer) => { - const action = await origin.extractAction(hash); - - return await txSocket.waitAlgorandNft( - origin.getNonce(), - claimer.address, - action - ); - }, - claimableAlgorandNfts: async (claimer) => { - const algo: AlgorandHelper = await inner(Chain.ALGORAND); - return await algo.claimableNfts(txSocket, claimer); - }, - async checkWhitelist(chain, nft) { - if ( - !chain.isNftWhitelisted || - (await isWrappedNft(nft, chain.getNonce())) - ) { - return true; - } - - return await chain.isNftWhitelisted(nft); - }, - isWrappedNft, - setProvider, - }; -} - -export * from "./factories"; -export * from "./cons"; diff --git a/dist/heartbeat/index.d.ts b/dist/heartbeat/index.d.ts deleted file mode 100644 index f8964fc6a..000000000 --- a/dist/heartbeat/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { StatusResp } from "./resp"; -export declare type BridgeHeartbeat = { - status(): Promise; -}; -export declare function bridgeHeartbeat(baseURL: string): BridgeHeartbeat; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/heartbeat/index.d.ts.map b/dist/heartbeat/index.d.ts.map deleted file mode 100644 index bde15c50d..000000000 --- a/dist/heartbeat/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heartbeat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,oBAAY,eAAe,GAAG;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAWhE"} \ No newline at end of file diff --git a/dist/heartbeat/index.js b/dist/heartbeat/index.js deleted file mode 100644 index 9f455a249..000000000 --- a/dist/heartbeat/index.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.bridgeHeartbeat = void 0; -const axios_1 = __importDefault(require("axios")); -function bridgeHeartbeat(baseURL) { - const api = axios_1.default.create({ - baseURL, - }); - return { - async status() { - const res = await api.get("/status"); - return res.data; - }, - }; -} -exports.bridgeHeartbeat = bridgeHeartbeat; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVhcnRiZWF0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQU8xQixTQUFnQixlQUFlLENBQUMsT0FBZTtJQUM3QyxNQUFNLEdBQUcsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLE9BQU87S0FDUixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE1BQU07WUFDVixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQWEsU0FBUyxDQUFDLENBQUM7WUFDakQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2xCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQVhELDBDQVdDIn0= diff --git a/dist/heartbeat/index.ts b/dist/heartbeat/index.ts deleted file mode 100644 index ec022a78f..000000000 --- a/dist/heartbeat/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import axios from "axios"; -import { StatusResp } from "./resp"; - -export type BridgeHeartbeat = { - status(): Promise; -}; - -export function bridgeHeartbeat(baseURL: string): BridgeHeartbeat { - const api = axios.create({ - baseURL, - }); - - return { - async status() { - const res = await api.get("/status"); - return res.data; - }, - }; -} diff --git a/dist/heartbeat/resp.d.ts b/dist/heartbeat/resp.d.ts deleted file mode 100644 index 6ffa07b84..000000000 --- a/dist/heartbeat/resp.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -declare type DeathReason = { - component: "node" | "validator" | "balance"; - error: string; -}; -declare type ValidatorStatus = { - status: "alive" | "dead"; - death_reason?: DeathReason; -}; -declare type ChainStatus = { - bridge_alive: boolean; - validators: ValidatorStatus[]; -}; -export declare type StatusResp = { - [chainNonce: string]: ChainStatus; -}; -export {}; -//# sourceMappingURL=resp.d.ts.map diff --git a/dist/heartbeat/resp.d.ts.map b/dist/heartbeat/resp.d.ts.map deleted file mode 100644 index fa5f4b376..000000000 --- a/dist/heartbeat/resp.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"resp.d.ts","sourceRoot":"","sources":["../../src/heartbeat/resp.ts"],"names":[],"mappings":"AAAA,aAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,aAAK,eAAe,GAAG;IACrB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,aAAK,WAAW,GAAG;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC,CAAC"} \ No newline at end of file diff --git a/dist/heartbeat/resp.js b/dist/heartbeat/resp.js deleted file mode 100644 index cf77ed2b9..000000000 --- a/dist/heartbeat/resp.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWFydGJlYXQvcmVzcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0= diff --git a/dist/heartbeat/resp.ts b/dist/heartbeat/resp.ts deleted file mode 100644 index 68263169d..000000000 --- a/dist/heartbeat/resp.ts +++ /dev/null @@ -1,18 +0,0 @@ -type DeathReason = { - component: "node" | "validator" | "balance"; - error: string; -}; - -type ValidatorStatus = { - status: "alive" | "dead"; - death_reason?: DeathReason; -}; - -type ChainStatus = { - bridge_alive: boolean; - validators: ValidatorStatus[]; -}; - -export type StatusResp = { - [chainNonce: string]: ChainStatus; -}; diff --git a/dist/helpers/algorand.d.ts b/dist/helpers/algorand.d.ts deleted file mode 100644 index a74e8191c..000000000 --- a/dist/helpers/algorand.d.ts +++ /dev/null @@ -1,108 +0,0 @@ -import WalletConnect from "@walletconnect/client"; -import algosdk, { SuggestedParams } from "algosdk"; -import { - AlgorandSocketHelper, - ChainNonceGet, - EstimateTxFees, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from ".."; -import MyAlgoConnect from "@randlabs/myalgo-connect"; -import { EvNotifier } from "../notifier"; -import { BalanceCheck, FeeMargins, GetFeeMargins, GetTokenURI } from "./chain"; -declare type TxResp = { - txId: string; -}; -declare type AlgoNft = { - "metadata-hash"?: string; - name?: string; - "unit-name"?: string; - url: string; - creator: string; - nftId: number; -}; -declare type SignedTxn = { - txID?: string; - blob: string; -}; -declare type Ledger = "MainNet" | "TestNet" | "any"; -declare type BrowserSigner = { - accounts(args: { ledger: Ledger }): Promise< - { - address: string; - }[] - >; - signTxn( - transactions: { - txn: string; - }[] - ): Promise; - send(info: { ledger: Ledger; tx: string }): Promise; -}; -export declare type ClaimNftInfo = { - appId: number; - nftId: number; -}; -/** - * Selected address & ledger must be given explicitly - */ -export declare type AlgoSignerH = { - readonly algoSigner: BrowserSigner; - readonly address: string; - readonly ledger: Ledger; -}; -/** - * This library is written in typescript. - * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. - * - * @return Strongly typed AlgoSigner from extension - */ -export declare function typedAlgoSigner(): BrowserSigner; -export declare function algoSignerWrapper( - algod: algosdk.Algodv2, - acc: algosdk.Account -): AlgoSignerH; -export declare type FullClaimNft = ClaimNftInfo & { - name: string; - uri: string; -}; -export declare type AlgorandHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - algod: algosdk.Algodv2; - claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; - claimableNfts( - txSocket: AlgorandSocketHelper, - owner: string - ): Promise; - isOptIn(address: string, nftId: number): Promise; - optInNft( - signer: AlgoSignerH, - info: ClaimNftInfo - ): Promise; - walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; - myAlgoSigner(myAlgo: MyAlgoConnect, address: string): AlgoSignerH; - } & Pick< - PreTransfer, - "preTransfer" - > & { - XpNft: string; - } & GetFeeMargins & - BalanceCheck & - GetTokenURI; -export declare type AlgorandParams = { - algodApiKey: string; - algodUri: string; - indexerUri: string; - algodPort: number | undefined; - sendNftAppId: number; - notifier: EvNotifier; - feeMargin: FeeMargins; -}; -export declare function algorandHelper(args: AlgorandParams): AlgorandHelper; -export {}; -//# sourceMappingURL=algorand.d.ts.map diff --git a/dist/helpers/algorand.d.ts.map b/dist/helpers/algorand.d.ts.map deleted file mode 100644 index a41513853..000000000 --- a/dist/helpers/algorand.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"algorand.d.ts","sourceRoot":"","sources":["../../src/helpers/algorand.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/algorand.js b/dist/helpers/algorand.js deleted file mode 100644 index 1e5977208..000000000 --- a/dist/helpers/algorand.js +++ /dev/null @@ -1,452 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.algorandHelper = - exports.algoSignerWrapper = - exports.typedAlgoSigner = - void 0; -const algosdk_1 = __importDefault(require("algosdk")); -const utils_1 = require("@json-rpc-tools/utils"); -const bignumber_js_1 = require("bignumber.js"); -const js_base64_1 = require("js-base64"); -const __1 = require(".."); -/** - * This library is written in typescript. - * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. - * - * @return Strongly typed AlgoSigner from extension - */ -function typedAlgoSigner() { - //@ts-expect-error why do you inject libraries like this :| - if (typeof AlgoSigner === "undefined") { - throw Error("algosigner not available!"); - } - //@ts-expect-error why do you inject libraries like this :| - return AlgoSigner; -} -exports.typedAlgoSigner = typedAlgoSigner; -function algoSignerWrapper(algod, acc) { - const signer = { - accounts(_) { - return Promise.resolve([ - { - address: acc.addr, - }, - ]); - }, - signTxn(txns) { - return Promise.resolve( - txns.map((t) => { - const signed = algosdk_1.default.signTransaction( - algosdk_1.default.decodeUnsignedTransaction( - js_base64_1.Base64.toUint8Array(t.txn) - ), - acc.sk - ); - return { - txID: signed.txID, - blob: js_base64_1.Base64.fromUint8Array(signed.blob), - }; - }) - ); - }, - send({ tx }) { - return algod.sendRawTransaction(js_base64_1.Base64.toUint8Array(tx)).do(); - }, - }; - return { - algoSigner: signer, - address: acc.addr, - ledger: "any", - }; -} -exports.algoSignerWrapper = algoSignerWrapper; -// type MinWrappedNft = { -// wrapped: { -// origin: string; -// }; -// }; -const encoder = new TextEncoder(); -const MINT_NFT_COST = new bignumber_js_1.BigNumber(1000); -function algorandHelper(args) { - const appAddr = algosdk_1.default.getApplicationAddress(args.sendNftAppId); - const algod = new algosdk_1.default.Algodv2( - args.algodApiKey, - args.algodUri, - args.algodPort - ); - const indexer = new algosdk_1.default.Indexer( - args.algodApiKey, - args.indexerUri, - args.algodPort - ); - async function waitTxnConfirm(txId) { - const status = await algod.status().do(); - let lastRound = status["last-round"]; - algod.pendingTransactionsInformation(); - let pendingInfo = await algod - .pendingTransactionInformation(txId) - .do() - .catch(() => ({})); - while ( - !(pendingInfo["confirmed-round"] && pendingInfo["confirmed-round"] > 0) - ) { - lastRound += 1; - await algod.statusAfterBlock(lastRound).do(); - pendingInfo = await algod.pendingTransactionInformation(txId).do(); - } - } - // async function compileProgram( - // client: Algodv2, - // programSource: string - // ) { - // const enc = new TextEncoder(); - // const programBytes = enc.encode(programSource); - // const compileResponse = await client.compile(programBytes).do(); - // const compiledBytes = new Uint8Array( - // Buffer.from(compileResponse.result, 'base64') - // ); - // return compiledBytes; - // }; - // async function getMintPoolProgram(client: Algodv2, recv: any) { - // const poolSrc = fs.readFileSync(__dirname + '/bridge_pool.tmpl.teal'); - // return await compileProgram( - // client, - // poolSrc.toString().replace('TMPL_RECV_ADDR', recv) - // ); - // } - const transferNft = async ( - signer, - chain_nonce, - to, - nft, - txFees, - mintWith - ) => { - const suggested = await algod.getTransactionParams().do(); - const transferTx = - algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: appAddr, - amount: 1, - assetIndex: nft.native.nftId, - suggestedParams: suggested, - }); - const paymentTxn = - algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ - from: signer.address, - suggestedParams: suggested, - to: appAddr, - amount: BigInt(txFees.toString()), - }); - const appArgs = [ - encoder.encode("freeze_nft"), - encoder.encode(to), - new Uint8Array( - Buffer.concat([ - Buffer.from(new Uint32Array([0]).buffer), - Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse(), - ]) - ), - ]; - if (mintWith) { - appArgs.push(encoder.encode(mintWith)); - } - const tCallTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: args.sendNftAppId, - appArgs, - foreignAssets: [nft.native.nftId], - suggestedParams: suggested, - }); - algosdk_1.default.assignGroupID([tCallTx, transferTx, paymentTxn]); - const encodedTxns = [ - { txn: js_base64_1.Base64.fromUint8Array(tCallTx.toByte()) }, - { txn: js_base64_1.Base64.fromUint8Array(transferTx.toByte()) }, - { txn: js_base64_1.Base64.fromUint8Array(paymentTxn.toByte()) }, - ]; - const signedTxns = await signer.algoSigner.signTxn(encodedTxns); - const sendRes = await algod - .sendRawTransaction([ - js_base64_1.Base64.toUint8Array(signedTxns[0].blob), - js_base64_1.Base64.toUint8Array(signedTxns[1].blob), - js_base64_1.Base64.toUint8Array(signedTxns[2].blob), - ]) - .do(); - await waitTxnConfirm(sendRes.txId); - await args.notifier.notifyAlgorand(sendRes.txId); - return sendRes.txId; - }; - async function isOptIn(addr, nftId) { - const userRes = await indexer.lookupAccountByID(addr).do(); - const user = userRes["account"]; - if (!user.assets) return false; - for (let i = 0; i < user["assets"].length; i++) { - if (user["assets"][i]["asset-id"] === nftId) { - return true; - } - } - return false; - } - async function optInNft(signer, nft) { - if (await isOptIn(signer.address, nft.nftId)) { - return undefined; - } - const suggested = await algod.getTransactionParams().do(); - const optIn = - algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: signer.address, - amount: 0, - assetIndex: nft.nftId, - suggestedParams: suggested, - }); - const encodedTx = js_base64_1.Base64.fromUint8Array(optIn.toByte()); - const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); - const res = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedTx[0].blob, - }); - await waitTxnConfirm(res.txId); - return res.txId; - } - async function claimNft(signer, info) { - await optInNft(signer, info); - const suggested = await algod.getTransactionParams().do(); - const txn = algosdk_1.default.makeApplicationNoOpTxnFromObject({ - from: signer.address, - suggestedParams: suggested, - appIndex: info.appId, - appArgs: [encoder.encode("transfer_nft")], - foreignAssets: [info.nftId], - }); - const encodedTx = js_base64_1.Base64.fromUint8Array(txn.toByte()); - const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); - const res = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedTx[0].blob, - }); - await waitTxnConfirm(res.txId); - return res.txId; - } - return { - XpNft: "", - algod, - getNonce: () => __1.Chain.ALGORAND, - claimNft, - optInNft, - isOptIn, - async balance(address) { - const acc = await algod - .accountInformation(address) - .do() - .catch(() => undefined); - if (!acc) return new bignumber_js_1.BigNumber(0); - return new bignumber_js_1.BigNumber(acc.amount); - }, - async preTransfer(sender, nft, fee) { - if (await isOptIn(sender.address, nft.native.nftId)) { - return undefined; - } - const suggested = await algod.getTransactionParams().do(); - const callTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ - from: sender.address, - appIndex: args.sendNftAppId, - appArgs: [encoder.encode("optin_asset")], - foreignAssets: [nft.native.nftId], - suggestedParams: suggested, - }); - const feesTx = - algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ - from: sender.address, - suggestedParams: suggested, - to: appAddr, - amount: BigInt(fee.toString()), - }); - algosdk_1.default.assignGroupID([callTx, feesTx]); - const encodedTxns = [ - { txn: js_base64_1.Base64.fromUint8Array(callTx.toByte()) }, - { txn: js_base64_1.Base64.fromUint8Array(feesTx.toByte()) }, - ]; - const signedTxns = await sender.algoSigner.signTxn(encodedTxns); - const sendRes = await algod - .sendRawTransaction([ - js_base64_1.Base64.toUint8Array(signedTxns[0].blob), - js_base64_1.Base64.toUint8Array(signedTxns[1].blob), - ]) - .do(); - await waitTxnConfirm(sendRes.txId); - return suggested; - }, - getFeeMargin() { - return args.feeMargin; - }, - transferNftToForeign: transferNft, - unfreezeWrappedNft: async (signer, to, nft, txFees, nonce) => { - const suggested = await algod.getTransactionParams().do(); - const transferTx = - algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: appAddr, - amount: 1, - assetIndex: nft.native.nftId, - suggestedParams: suggested, - }); - const sTransferTx = await signer.algoSigner.signTxn([ - { txn: js_base64_1.Base64.fromUint8Array(transferTx.toByte()) }, - ]); - const transferRes = await algod - .sendRawTransaction( - js_base64_1.Base64.toUint8Array(sTransferTx[0].blob) - ) - .do(); - await waitTxnConfirm(transferRes.txId); - const paymentTxn = - algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ - from: signer.address, - suggestedParams: suggested, - to: appAddr, - amount: BigInt(txFees.toString()), - }); - const appArgs = [ - encoder.encode("withdraw_nft"), - encoder.encode(to), - new Uint8Array( - Buffer.from(new Uint32Array([parseInt(nonce)]).buffer).reverse() - ), - new Uint8Array(Buffer.from("")), - ]; - const tCallTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: args.sendNftAppId, - appArgs, - foreignAssets: [nft.native.nftId], - suggestedParams: suggested, - }); - algosdk_1.default.assignGroupID([tCallTx, paymentTxn]); - const encodedTxns = [ - { txn: js_base64_1.Base64.fromUint8Array(tCallTx.toByte()) }, - { txn: js_base64_1.Base64.fromUint8Array(paymentTxn.toByte()) }, - ]; - const signedTxns = await signer.algoSigner.signTxn(encodedTxns); - const sendRes = await algod - .sendRawTransaction([ - js_base64_1.Base64.toUint8Array(signedTxns[0].blob), - js_base64_1.Base64.toUint8Array(signedTxns[1].blob), - ]) - .do(); - await waitTxnConfirm(sendRes.txId); - await args.notifier.notifyAlgorand(sendRes.txId); - return sendRes.txId; - }, - estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), - estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), - validateAddress: (adr) => - Promise.resolve(algosdk_1.default.isValidAddress(adr)), - claimableNfts: async (txSocket, owner) => { - await txSocket.cleanNfts(owner); - const claims = await txSocket.claimNfts(owner); - const res = await Promise.all( - claims.map(async (v) => { - const appId = parseInt(v.app_id); - const nftId = parseInt(v.nft_id); - const assetRes = await indexer - .lookupAssetByID(nftId) - .do() - .catch(() => undefined); - if (assetRes == undefined) return []; - const assetInfo = assetRes.asset; - const bal = await indexer - .lookupAssetBalances(nftId) - .currencyGreaterThan(0) - .currencyLessThan(2) - .limit(1) - .do(); - if (bal.balances[0].address == owner || bal.balances[0].amount == 0) - return []; - return [ - { - nftId, - appId, - uri: assetInfo.params.url, - name: assetInfo.params.name || "", - }, - ]; - }) - ); - return res.flat(); - }, - walletConnectSigner(connector, address) { - const signer = { - accounts(_) { - return Promise.resolve( - connector.accounts.map((s) => ({ address: s })) - ); - }, - async signTxn(txns) { - const req = (0, utils_1.formatJsonRpcRequest)("algo_signTxn", [txns]); - const signed = await connector.sendCustomRequest(req); - const decoded = signed.map((s) => { - return { - blob: s ?? "", - }; - }); - if (decoded.length != txns.length) { - throw Error("Couldn't sign all transactions!"); - } - return decoded; - }, - send(info) { - return algod - .sendRawTransaction(js_base64_1.Base64.toUint8Array(info.tx)) - .do(); - }, - }; - return { - algoSigner: signer, - address, - ledger: "any", - }; - }, - myAlgoSigner(myAlgo, address) { - const signer = { - async accounts(_) { - const accs = await myAlgo.connect(); - return accs; - }, - async signTxn(txns) { - const stxs = await myAlgo.signTransaction(txns.map(({ txn }) => txn)); - return stxs.map((tx) => ({ - txID: tx.txID, - blob: js_base64_1.Base64.fromUint8Array(tx.blob), - })); - }, - send(info) { - return algod - .sendRawTransaction(js_base64_1.Base64.toUint8Array(info.tx)) - .do(); - }, - }; - return { - algoSigner: signer, - address, - ledger: "any", - }; - }, - async getTokenURI(_, tokenId) { - if (tokenId) { - const res = await indexer.lookupAssetByID(+tokenId).do(); - if (res?.asset?.params) { - return res.asset.params.url; - } - } - return ""; - }, - }; -} -exports.algorandHelper = algorandHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxnb3JhbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9hbGdvcmFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxzREFBbUQ7QUFDbkQsaURBQTZEO0FBQzdELCtDQUF5QztBQUN6Qyx5Q0FBbUM7QUFDbkMsMEJBVVk7QUE2Q1o7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlO0lBQzdCLDJEQUEyRDtJQUMzRCxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRTtRQUNyQyxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQzFDO0lBRUQsMkRBQTJEO0lBQzNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFSRCwwQ0FRQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixLQUFzQixFQUN0QixHQUFvQjtJQUVwQixNQUFNLE1BQU0sR0FBa0I7UUFDNUIsUUFBUSxDQUFDLENBQUM7WUFDUixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ3JCO29CQUNFLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSTtpQkFDbEI7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUk7WUFDVixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDYixNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLGVBQWUsQ0FDcEMsaUJBQU8sQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDN0QsR0FBRyxDQUFDLEVBQUUsQ0FDUCxDQUFDO2dCQUNGLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNqQixJQUFJLEVBQUUsa0JBQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztpQkFDekMsQ0FBQztZQUNK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 diff --git a/dist/helpers/algorand.ts b/dist/helpers/algorand.ts deleted file mode 100644 index 1e8112f10..000000000 --- a/dist/helpers/algorand.ts +++ /dev/null @@ -1,565 +0,0 @@ -import WalletConnect from "@walletconnect/client"; -import algosdk, { SuggestedParams } from "algosdk"; -import { formatJsonRpcRequest } from "@json-rpc-tools/utils"; -import { BigNumber } from "bignumber.js"; -import { Base64 } from "js-base64"; -import { - AlgorandSocketHelper, - Chain, - ChainNonceGet, - EstimateTxFees, - NftInfo, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from ".."; -import MyAlgoConnect from "@randlabs/myalgo-connect"; -import { EvNotifier } from "../notifier"; -import { BalanceCheck, FeeMargins, GetFeeMargins, GetTokenURI } from "./chain"; - -type TxResp = { - txId: string; -}; - -type AlgoNft = { - "metadata-hash"?: string; - name?: string; - "unit-name"?: string; - url: string; - creator: string; - nftId: number; -}; - -type SignedTxn = { - txID?: string; - blob: string; -}; - -type Ledger = "MainNet" | "TestNet" | "any"; - -type BrowserSigner = { - accounts(args: { ledger: Ledger }): Promise<{ address: string }[]>; - signTxn(transactions: { txn: string }[]): Promise; - send(info: { ledger: Ledger; tx: string }): Promise; -}; - -export type ClaimNftInfo = { - appId: number; - nftId: number; -}; - -/** - * Selected address & ledger must be given explicitly - */ -export type AlgoSignerH = { - readonly algoSigner: BrowserSigner; - readonly address: string; - readonly ledger: Ledger; -}; - -/** - * This library is written in typescript. - * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. - * - * @return Strongly typed AlgoSigner from extension - */ -export function typedAlgoSigner(): BrowserSigner { - //@ts-expect-error why do you inject libraries like this :| - if (typeof AlgoSigner === "undefined") { - throw Error("algosigner not available!"); - } - - //@ts-expect-error why do you inject libraries like this :| - return AlgoSigner; -} - -export function algoSignerWrapper( - algod: algosdk.Algodv2, - acc: algosdk.Account -): AlgoSignerH { - const signer: BrowserSigner = { - accounts(_) { - return Promise.resolve([ - { - address: acc.addr, - }, - ]); - }, - signTxn(txns) { - return Promise.resolve( - txns.map((t) => { - const signed = algosdk.signTransaction( - algosdk.decodeUnsignedTransaction(Base64.toUint8Array(t.txn)), - acc.sk - ); - return { - txID: signed.txID, - blob: Base64.fromUint8Array(signed.blob), - }; - }) - ); - }, - send({ tx }) { - return algod.sendRawTransaction(Base64.toUint8Array(tx)).do(); - }, - }; - - return { - algoSigner: signer, - address: acc.addr, - ledger: "any", - }; -} - -export type FullClaimNft = ClaimNftInfo & { - name: string; - uri: string; -}; - -export type AlgorandHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - algod: algosdk.Algodv2; - claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; - claimableNfts( - txSocket: AlgorandSocketHelper, - owner: string - ): Promise; - isOptIn(address: string, nftId: number): Promise; - optInNft( - signer: AlgoSignerH, - info: ClaimNftInfo - ): Promise; - walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; - myAlgoSigner(myAlgo: MyAlgoConnect, address: string): AlgoSignerH; - } & Pick< - PreTransfer, - "preTransfer" - > & { XpNft: string } & GetFeeMargins & - BalanceCheck & - GetTokenURI; - -export type AlgorandParams = { - algodApiKey: string; - algodUri: string; - indexerUri: string; - algodPort: number | undefined; - sendNftAppId: number; - notifier: EvNotifier; - feeMargin: FeeMargins; -}; - -// type MinWrappedNft = { -// wrapped: { -// origin: string; -// }; -// }; - -const encoder = new TextEncoder(); -const MINT_NFT_COST = new BigNumber(1000); - -export function algorandHelper(args: AlgorandParams): AlgorandHelper { - const appAddr = algosdk.getApplicationAddress(args.sendNftAppId); - const algod = new algosdk.Algodv2( - args.algodApiKey, - args.algodUri, - args.algodPort - ); - const indexer = new algosdk.Indexer( - args.algodApiKey, - args.indexerUri, - args.algodPort - ); - - async function waitTxnConfirm(txId: string) { - const status = await algod.status().do(); - let lastRound = status["last-round"]; - algod.pendingTransactionsInformation(); - let pendingInfo = (await algod - .pendingTransactionInformation(txId) - .do() - .catch(() => ({}))) as Record; - - while ( - !(pendingInfo["confirmed-round"] && pendingInfo["confirmed-round"] > 0) - ) { - lastRound += 1; - await algod.statusAfterBlock(lastRound).do(); - pendingInfo = await algod.pendingTransactionInformation(txId).do(); - } - } - - // async function compileProgram( - // client: Algodv2, - // programSource: string - // ) { - // const enc = new TextEncoder(); - // const programBytes = enc.encode(programSource); - // const compileResponse = await client.compile(programBytes).do(); - // const compiledBytes = new Uint8Array( - // Buffer.from(compileResponse.result, 'base64') - // ); - // return compiledBytes; - // }; - - // async function getMintPoolProgram(client: Algodv2, recv: any) { - // const poolSrc = fs.readFileSync(__dirname + '/bridge_pool.tmpl.teal'); - // return await compileProgram( - // client, - // poolSrc.toString().replace('TMPL_RECV_ADDR', recv) - // ); - // } - - const transferNft = async ( - signer: AlgoSignerH, - chain_nonce: number, - to: string, - nft: NftInfo, - txFees: BigNumber, - mintWith?: string - ) => { - const suggested = await algod.getTransactionParams().do(); - - const transferTx = - algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: appAddr, - amount: 1, - assetIndex: nft.native.nftId, - suggestedParams: suggested, - }); - - const paymentTxn = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ - from: signer.address, - suggestedParams: suggested, - to: appAddr, - amount: BigInt(txFees.toString()), - }); - const appArgs = [ - encoder.encode("freeze_nft"), - encoder.encode(to), - new Uint8Array( - Buffer.concat([ - Buffer.from(new Uint32Array([0]).buffer), - Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse(), - ]) - ), - ]; - if (mintWith) { - appArgs.push(encoder.encode(mintWith)); - } - const tCallTx = algosdk.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: args.sendNftAppId, - appArgs, - foreignAssets: [nft.native.nftId], - suggestedParams: suggested, - }); - algosdk.assignGroupID([tCallTx, transferTx, paymentTxn]); - const encodedTxns = [ - { txn: Base64.fromUint8Array(tCallTx.toByte()) }, - { txn: Base64.fromUint8Array(transferTx.toByte()) }, - { txn: Base64.fromUint8Array(paymentTxn.toByte()) }, - ]; - const signedTxns = await signer.algoSigner.signTxn(encodedTxns); - const sendRes = await algod - .sendRawTransaction([ - Base64.toUint8Array(signedTxns[0].blob), - Base64.toUint8Array(signedTxns[1].blob), - Base64.toUint8Array(signedTxns[2].blob), - ]) - .do(); - await waitTxnConfirm(sendRes.txId); - - await args.notifier.notifyAlgorand(sendRes.txId); - - return sendRes.txId as string; - }; - - async function isOptIn(addr: string, nftId: number) { - const userRes = await indexer.lookupAccountByID(addr).do(); - const user = userRes["account"]; - if (!user.assets) return false; - - for (let i = 0; i < user["assets"].length; i++) { - if (user["assets"][i]["asset-id"] === nftId) { - return true; - } - } - - return false; - } - - async function optInNft(signer: AlgoSignerH, nft: ClaimNftInfo) { - if (await isOptIn(signer.address, nft.nftId)) { - return undefined; - } - - const suggested = await algod.getTransactionParams().do(); - const optIn = algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: signer.address, - amount: 0, - assetIndex: nft.nftId, - suggestedParams: suggested, - }); - const encodedTx = Base64.fromUint8Array(optIn.toByte()); - const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); - const res = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedTx[0].blob, - }); - await waitTxnConfirm(res.txId); - return res.txId; - } - - async function claimNft(signer: AlgoSignerH, info: ClaimNftInfo) { - await optInNft(signer, info); - - const suggested = await algod.getTransactionParams().do(); - const txn = algosdk.makeApplicationNoOpTxnFromObject({ - from: signer.address, - suggestedParams: suggested, - appIndex: info.appId, - appArgs: [encoder.encode("transfer_nft")], - foreignAssets: [info.nftId], - }); - - const encodedTx = Base64.fromUint8Array(txn.toByte()); - const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); - const res = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedTx[0].blob, - }); - await waitTxnConfirm(res.txId); - return res.txId; - } - - return { - XpNft: "", - algod, - getNonce: () => Chain.ALGORAND, - claimNft, - optInNft, - isOptIn, - async balance(address) { - const acc = await algod - .accountInformation(address) - .do() - .catch(() => undefined); - if (!acc) return new BigNumber(0); - - return new BigNumber(acc.amount); - }, - async preTransfer(sender, nft, fee) { - if (await isOptIn(sender.address, nft.native.nftId)) { - return undefined; - } - - const suggested = await algod.getTransactionParams().do(); - const callTx = algosdk.makeApplicationNoOpTxnFromObject({ - from: sender.address, - appIndex: args.sendNftAppId, - appArgs: [encoder.encode("optin_asset")], - foreignAssets: [nft.native.nftId], - suggestedParams: suggested, - }); - const feesTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ - from: sender.address, - suggestedParams: suggested, - to: appAddr, - amount: BigInt(fee.toString()), - }); - - algosdk.assignGroupID([callTx, feesTx]); - const encodedTxns = [ - { txn: Base64.fromUint8Array(callTx.toByte()) }, - { txn: Base64.fromUint8Array(feesTx.toByte()) }, - ]; - const signedTxns = await sender.algoSigner.signTxn(encodedTxns); - const sendRes = await algod - .sendRawTransaction([ - Base64.toUint8Array(signedTxns[0].blob), - Base64.toUint8Array(signedTxns[1].blob), - ]) - .do(); - await waitTxnConfirm(sendRes.txId); - - return suggested; - }, - getFeeMargin() { - return args.feeMargin; - }, - transferNftToForeign: transferNft, - unfreezeWrappedNft: async (signer, to, nft, txFees, nonce) => { - const suggested = await algod.getTransactionParams().do(); - - const transferTx = - algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: appAddr, - amount: 1, - assetIndex: nft.native.nftId, - suggestedParams: suggested, - }); - const sTransferTx = await signer.algoSigner.signTxn([ - { txn: Base64.fromUint8Array(transferTx.toByte()) }, - ]); - const transferRes = await algod - .sendRawTransaction(Base64.toUint8Array(sTransferTx[0].blob)) - .do(); - await waitTxnConfirm(transferRes.txId as string); - - const paymentTxn = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ - from: signer.address, - suggestedParams: suggested, - to: appAddr, - amount: BigInt(txFees.toString()), - }); - const appArgs = [ - encoder.encode("withdraw_nft"), - encoder.encode(to), - new Uint8Array( - Buffer.from(new Uint32Array([parseInt(nonce)]).buffer).reverse() - ), - new Uint8Array(Buffer.from("")), - ]; - const tCallTx = algosdk.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: args.sendNftAppId, - appArgs, - foreignAssets: [nft.native.nftId], - suggestedParams: suggested, - }); - algosdk.assignGroupID([tCallTx, paymentTxn]); - const encodedTxns = [ - { txn: Base64.fromUint8Array(tCallTx.toByte()) }, - { txn: Base64.fromUint8Array(paymentTxn.toByte()) }, - ]; - const signedTxns = await signer.algoSigner.signTxn(encodedTxns); - const sendRes = await algod - .sendRawTransaction([ - Base64.toUint8Array(signedTxns[0].blob), - Base64.toUint8Array(signedTxns[1].blob), - ]) - .do(); - await waitTxnConfirm(sendRes.txId); - - await args.notifier.notifyAlgorand(sendRes.txId); - - return sendRes.txId as string; - }, - estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), - estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), - validateAddress: (adr) => Promise.resolve(algosdk.isValidAddress(adr)), - claimableNfts: async (txSocket: AlgorandSocketHelper, owner: string) => { - await txSocket.cleanNfts(owner); - const claims = await txSocket.claimNfts(owner); - - const res = await Promise.all( - claims.map(async (v) => { - const appId = parseInt(v.app_id); - const nftId = parseInt(v.nft_id); - const assetRes = await indexer - .lookupAssetByID(nftId) - .do() - .catch(() => undefined); - if (assetRes == undefined) return []; - const assetInfo = assetRes.asset; - - const bal = await indexer - .lookupAssetBalances(nftId) - .currencyGreaterThan(0) - .currencyLessThan(2) - .limit(1) - .do(); - if (bal.balances[0].address == owner || bal.balances[0].amount == 0) - return []; - - return [ - { - nftId, - appId, - uri: assetInfo.params.url as string, - name: (assetInfo.params.name as string) || "", - }, - ]; - }) - ); - - return res.flat(); - }, - walletConnectSigner( - connector: WalletConnect, - address: string - ): AlgoSignerH { - const signer: BrowserSigner = { - accounts(_) { - return Promise.resolve( - connector.accounts.map((s) => ({ address: s })) - ); - }, - async signTxn(txns) { - const req = formatJsonRpcRequest("algo_signTxn", [txns]); - const signed: Array = - await connector.sendCustomRequest(req); - const decoded = signed.map((s) => { - return { - blob: s ?? "", - } as SignedTxn; - }); - if (decoded.length != txns.length) { - throw Error("Couldn't sign all transactions!"); - } - - return decoded; - }, - send(info: { tx: string }): Promise { - return algod.sendRawTransaction(Base64.toUint8Array(info.tx)).do(); - }, - }; - - return { - algoSigner: signer, - address, - ledger: "any", - }; - }, - myAlgoSigner(myAlgo, address): AlgoSignerH { - const signer: BrowserSigner = { - async accounts(_) { - const accs = await myAlgo.connect(); - return accs; - }, - async signTxn(txns) { - const stxs = await myAlgo.signTransaction(txns.map(({ txn }) => txn)); - return stxs.map((tx) => ({ - txID: tx.txID, - blob: Base64.fromUint8Array(tx.blob), - })); - }, - send(info: { tx: string }): Promise { - return algod.sendRawTransaction(Base64.toUint8Array(info.tx)).do(); - }, - }; - - return { - algoSigner: signer, - address, - ledger: "any", - }; - }, - async getTokenURI(_, tokenId) { - if (tokenId) { - const res = await indexer.lookupAssetByID(+tokenId).do(); - if (res?.asset?.params) { - return res.asset.params.url as string; - } - } - return ""; - }, - }; -} diff --git a/dist/helpers/aptos/bridge_client.d.ts b/dist/helpers/aptos/bridge_client.d.ts deleted file mode 100644 index d2bde53f4..000000000 --- a/dist/helpers/aptos/bridge_client.d.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { AptosAccount, AptosClient, HexString, MaybeHexString } from "aptos"; -interface BridgeData { - action_cnt: string; - burning_nfts: { - handle: string; - }; - consumed_actions: { - handle: string; - }; - group_key: string; - paused: boolean; - frozen_nfts: { - handle: string; - }; - whitelist: { - handle: string; - }; -} -export declare class BridgeClient { - private aptosClient; - private transactionBuilder; - private address; - constructor( - aptosClient: AptosClient, - address: string, - network: "mainnet" | "staging" | "testnet" - ); - initialize(account: AptosAccount, groupKey: Uint8Array): Promise; - pause( - account: AptosAccount, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - unpause( - account: AptosAccount, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - validateWhitelist( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - validateBlacklist( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - validateWithdrawFees( - account: AptosAccount, - to: HexString, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - validateTransferNft( - account: AptosAccount, - collection: string, - name: string, - description: string, - maximum: number | bigint, - uri: string, - royaltyPayeeAddress: HexString, - royaltyPointsDenominator: number | bigint, - royaltyPointsNumerator: number | bigint, - mutateSetting: boolean[], - to: HexString, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - withdrawNft( - account: AptosAccount, - _bridgeAdmin: HexString, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: string, - price: number | bigint, - chainNonce: number | bigint, - to: string, - mintWith: string - ): Promise; - validateBurnNft( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: string, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - freezeNft( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: number | bigint, - price: number | bigint, - chainNonce: number | bigint, - to: string, - mintWith: string - ): Promise; - validateUnfreezeNft( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: string, - to: HexString, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - updateGroupKey( - account: AptosAccount, - groupKey: Uint8Array, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - getBridgeData(): Promise; - getAddress(): string; - isWhitelist( - collectionCreator: MaybeHexString, - collectionName: string - ): Promise; -} -export {}; -//# sourceMappingURL=bridge_client.d.ts.map diff --git a/dist/helpers/aptos/bridge_client.d.ts.map b/dist/helpers/aptos/bridge_client.d.ts.map deleted file mode 100644 index 62ccf1aa3..000000000 --- a/dist/helpers/aptos/bridge_client.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bridge_client.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/bridge_client.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/aptos/bridge_client.js b/dist/helpers/aptos/bridge_client.js deleted file mode 100644 index 0010bd8c4..000000000 --- a/dist/helpers/aptos/bridge_client.js +++ /dev/null @@ -1,265 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BridgeClient = void 0; -const aptos_1 = require("aptos"); -const bridge_client_abis_1 = require("./bridge_client_abis"); -class BridgeClient { - constructor(aptosClient, address, network) { - this.aptosClient = aptosClient; - let abi; - switch (network) { - case "mainnet": - abi = bridge_client_abis_1.MAINNET_BRIDGE_ABIS; - break; - case "staging": - abi = bridge_client_abis_1.STAGING_BRIDGE_ABIS; - break; - case "testnet": - abi = bridge_client_abis_1.TESTNET_BRIDGE_ABIS; - break; - default: - throw new Error("Invalid network"); - } - this.transactionBuilder = new aptos_1.TransactionBuilderABI( - abi.map((abi) => new aptos_1.HexString(abi).toUint8Array()) - ); - this.address = address; - } - async initialize(account, groupKey) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::initialize`, - [], - [groupKey] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async pause(account, actionId, signature) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::pause`, - [], - [actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async unpause(account, actionId, signature) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::unpause`, - [], - [actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateWhitelist( - account, - collectionCreator, - collectionName, - actionId, - signature - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_whitelist`, - [], - [collectionCreator.toString(), collectionName, actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateBlacklist( - account, - collectionCreator, - collectionName, - actionId, - signature - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_blacklist`, - [], - [collectionCreator.toString(), collectionName, actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateWithdrawFees(account, to, actionId, signature) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_withdraw_fees`, - [], - [to.toString(), actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateTransferNft( - account, - collection, - name, - description, - maximum, - uri, - royaltyPayeeAddress, - royaltyPointsDenominator, - royaltyPointsNumerator, - mutateSetting, - to, - actionId, - signature - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_transfer_nft`, - [], - [ - collection, - name, - description, - maximum, - uri, - royaltyPayeeAddress.toString(), - royaltyPointsDenominator.toString(), - royaltyPointsNumerator.toString(), - mutateSetting, - to.toString(), - actionId, - signature, - ] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async withdrawNft( - account, - _bridgeAdmin, - collectionCreator, - collectionName, - tokenName, - propertyVersion, - price, - chainNonce, - to, - mintWith - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::withdraw_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - price, - chainNonce, - to, - mintWith, - ] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateBurnNft( - account, - collectionCreator, - collectionName, - tokenName, - propertyVersion, - actionId, - signature - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_burn_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - actionId, - signature, - ] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async freezeNft( - account, - collectionCreator, - collectionName, - tokenName, - propertyVersion, - price, - chainNonce, - to, - mintWith - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::freeze_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - price, - chainNonce, - to, - mintWith, - ] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateUnfreezeNft( - account, - collectionCreator, - collectionName, - tokenName, - propertyVersion, - to, - actionId, - signature - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_unfreeze_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - to.toString(), - actionId, - signature, - ] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async updateGroupKey(account, groupKey, actionId, signature) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::update_group_key`, - [], - [groupKey, actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async getBridgeData() { - const resources = await this.aptosClient.getAccountResources( - this.getAddress() - ); - const accountResource = resources.find( - (r) => r.type == `${this.getAddress()}::bridge::Bridge` - ); - return accountResource?.data; - } - getAddress() { - return this.address; - } - async isWhitelist(collectionCreator, collectionName) { - const data = await this.getBridgeData(); - const { handle } = data.whitelist; - try { - const res = await this.aptosClient.getTableItem(handle, { - key_type: `${this.getAddress()}::bridge::CollectionId`, - value_type: "bool", - key: { - creator: collectionCreator.toString(), - name: collectionName, - }, - }); - return res; - } catch (e) { - return false; - } - } -} -exports.BridgeClient = BridgeClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2FwdG9zL2JyaWRnZV9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBTWU7QUFDZiw2REFJOEI7QUFvQjlCLE1BQWEsWUFBWTtJQUt2QixZQUNFLFdBQXdCLEVBQ3hCLE9BQWUsRUFDZixPQUEwQztRQUUxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLEdBQUcsQ0FBQztRQUNSLFFBQVEsT0FBTyxFQUFFO1lBQ2YsS0FBSyxTQUFTO2dCQUNaLEdBQUcsR0FBRyx3Q0FBbUIsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixHQUFHLEdBQUcsd0NBQW1CLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osR0FBRyxHQUFHLHdDQUFtQixDQUFDO2dCQUMxQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksNkJBQXFCLENBQ2pELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUNwRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQ2QsT0FBcUIsRUFDckIsUUFBb0I7UUFFcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUM3RCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLEVBQzFDLEVBQUUsRUFDRixDQUFDLFFBQVEsQ0FBQyxDQUNYLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxX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 diff --git a/dist/helpers/aptos/bridge_client.ts b/dist/helpers/aptos/bridge_client.ts deleted file mode 100644 index 68665086b..000000000 --- a/dist/helpers/aptos/bridge_client.ts +++ /dev/null @@ -1,345 +0,0 @@ -import { - AptosAccount, - AptosClient, - HexString, - MaybeHexString, - TransactionBuilderABI, -} from "aptos"; -import { - MAINNET_BRIDGE_ABIS, - STAGING_BRIDGE_ABIS, - TESTNET_BRIDGE_ABIS, -} from "./bridge_client_abis"; - -interface BridgeData { - action_cnt: string; - burning_nfts: { - handle: string; - }; - consumed_actions: { - handle: string; - }; - group_key: string; - paused: boolean; - frozen_nfts: { - handle: string; - }; - whitelist: { - handle: string; - }; -} - -export class BridgeClient { - private aptosClient: AptosClient; - private transactionBuilder: TransactionBuilderABI; - private address: string; - - constructor( - aptosClient: AptosClient, - address: string, - network: "mainnet" | "staging" | "testnet" - ) { - this.aptosClient = aptosClient; - let abi; - switch (network) { - case "mainnet": - abi = MAINNET_BRIDGE_ABIS; - break; - case "staging": - abi = STAGING_BRIDGE_ABIS; - break; - case "testnet": - abi = TESTNET_BRIDGE_ABIS; - break; - default: - throw new Error("Invalid network"); - } - this.transactionBuilder = new TransactionBuilderABI( - abi.map((abi) => new HexString(abi).toUint8Array()) - ); - this.address = address; - } - - async initialize( - account: AptosAccount, - groupKey: Uint8Array - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::initialize`, - [], - [groupKey] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async pause( - account: AptosAccount, - actionId: number | bigint, - signature: Uint8Array - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::pause`, - [], - [actionId, signature] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async unpause( - account: AptosAccount, - actionId: number | bigint, - signature: Uint8Array - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::unpause`, - [], - [actionId, signature] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async validateWhitelist( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - actionId: number | bigint, - signature: Uint8Array - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_whitelist`, - [], - [collectionCreator.toString(), collectionName, actionId, signature] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async validateBlacklist( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - actionId: number | bigint, - signature: Uint8Array - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_blacklist`, - [], - [collectionCreator.toString(), collectionName, actionId, signature] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async validateWithdrawFees( - account: AptosAccount, - to: HexString, - actionId: number | bigint, - signature: Uint8Array - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_withdraw_fees`, - [], - [to.toString(), actionId, signature] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async validateTransferNft( - account: AptosAccount, - collection: string, - name: string, - description: string, - maximum: number | bigint, - uri: string, - royaltyPayeeAddress: HexString, - royaltyPointsDenominator: number | bigint, - royaltyPointsNumerator: number | bigint, - mutateSetting: boolean[], - to: HexString, - actionId: number | bigint, - signature: Uint8Array - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_transfer_nft`, - [], - [ - collection, - name, - description, - maximum, - uri, - royaltyPayeeAddress.toString(), - royaltyPointsDenominator.toString(), - royaltyPointsNumerator.toString(), - mutateSetting, - to.toString(), - actionId, - signature, - ] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async withdrawNft( - account: AptosAccount, - _bridgeAdmin: HexString, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: string, - price: number | bigint, - chainNonce: number | bigint, - to: string, - mintWith: string - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::withdraw_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - price, - chainNonce, - to, - mintWith, - ] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async validateBurnNft( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: string, - actionId: number | bigint, - signature: Uint8Array - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_burn_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - actionId, - signature, - ] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async freezeNft( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: number | bigint, - price: number | bigint, - chainNonce: number | bigint, - to: string, - mintWith: string - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::freeze_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - price, - chainNonce, - to, - mintWith, - ] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async validateUnfreezeNft( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: string, - to: HexString, - actionId: number | bigint, - signature: Uint8Array - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_unfreeze_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - to.toString(), - actionId, - signature, - ] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async updateGroupKey( - account: AptosAccount, - groupKey: Uint8Array, - actionId: number | bigint, - signature: Uint8Array - ): Promise { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::update_group_key`, - [], - [groupKey, actionId, signature] - ); - - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - - async getBridgeData() { - const resources = await this.aptosClient.getAccountResources( - this.getAddress() - ); - const accountResource = resources.find( - (r) => r.type == `${this.getAddress()}::bridge::Bridge` - ); - return accountResource?.data as BridgeData; - } - - getAddress() { - return this.address; - } - - async isWhitelist(collectionCreator: MaybeHexString, collectionName: string) { - const data = await this.getBridgeData(); - const { handle } = data.whitelist; - try { - const res = await this.aptosClient.getTableItem(handle, { - key_type: `${this.getAddress()}::bridge::CollectionId`, - value_type: "bool", - key: { - creator: collectionCreator.toString(), - name: collectionName, - }, - }); - return res; - } catch (e: any) { - return false; - } - } -} diff --git a/dist/helpers/aptos/bridge_client_abis.d.ts b/dist/helpers/aptos/bridge_client_abis.d.ts deleted file mode 100644 index 4c19f20a8..000000000 --- a/dist/helpers/aptos/bridge_client_abis.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export declare const MAINNET_BRIDGE_ABIS: string[]; -export declare const TESTNET_BRIDGE_ABIS: string[]; -export declare const STAGING_BRIDGE_ABIS: string[]; -//# sourceMappingURL=bridge_client_abis.d.ts.map diff --git a/dist/helpers/aptos/bridge_client_abis.d.ts.map b/dist/helpers/aptos/bridge_client_abis.d.ts.map deleted file mode 100644 index 01a6522d5..000000000 --- a/dist/helpers/aptos/bridge_client_abis.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bridge_client_abis.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/bridge_client_abis.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,UAyB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAyB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAY/B,CAAC"} \ No newline at end of file diff --git a/dist/helpers/aptos/bridge_client_abis.js b/dist/helpers/aptos/bridge_client_abis.js deleted file mode 100644 index abe906c5e..000000000 --- a/dist/helpers/aptos/bridge_client_abis.js +++ /dev/null @@ -1,72 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.STAGING_BRIDGE_ABIS = - exports.TESTNET_BRIDGE_ABIS = - exports.MAINNET_BRIDGE_ABIS = - void 0; -exports.MAINNET_BRIDGE_ABIS = [ - // ../build/aptos-bridge/abis/bridge/initialize.abi - "010a696e697469616c697a65f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000010967726f75705f6b65790601", - // ../build/aptos-bridge/abis/bridge/pause.abi - "01057061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/unpause.abi - "0107756e7061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/update_group_key.abi - "01107570646174655f67726f75705f6b6579f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi - "011276616c69646174655f77686974656c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi - "011276616c69646174655f626c61636b6c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi - "011676616c69646174655f77697468647261775f66656573f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi - "011576616c69646174655f7472616e736665725f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi - "010c77697468647261775f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - // ../build/aptos-bridge/abis/bridge/validate_burn_nft.abi - "011176616c69646174655f6275726e5f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/freeze_nft.abi - "010a667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi - "011576616c69646174655f756e667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", -]; -exports.TESTNET_BRIDGE_ABIS = [ - // ../build/aptos-bridge/abis/bridge/initialize.abi - "010a696e697469616c697a652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000010967726f75705f6b65790601", - // ../build/aptos-bridge/abis/bridge/pause.abi - "010570617573652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/unpause.abi - "0107756e70617573652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/update_group_key.abi - "01107570646174655f67726f75705f6b65792b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi - "011276616c69646174655f77686974656c6973742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi - "011276616c69646174655f626c61636b6c6973742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi - "011676616c69646174655f77697468647261775f666565732b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi - "011576616c69646174655f7472616e736665725f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi - "010c77697468647261775f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - // ../build/aptos-bridge/abis/bridge/freeze_nft.abi - "010a667265657a655f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi - "011576616c69646174655f756e667265657a655f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/create_collection.abi - "01116372656174655f636f6c6c656374696f6e2b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000050f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670016636f6c6c656374696f6e5f6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000e636f6c6c656374696f6e5f75726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020e6d75746174655f73657474696e670600", -]; -exports.STAGING_BRIDGE_ABIS = [ - "010a696e697469616c697a65813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000010967726f75705f6b65790601", - "01057061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", - "0107756e7061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", - "01107570646174655f67726f75705f6b6579813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - "011276616c69646174655f77686974656c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - "011276616c69646174655f626c61636b6c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - "011676616c69646174655f77697468647261775f66656573813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - "011576616c69646174655f7472616e736665725f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", - "010c77697468647261775f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "010a667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "011576616c69646174655f756e667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", -]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2NsaWVudF9hYmlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvYXB0b3MvYnJpZGdlX2NsaWVudF9hYmlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsbURBQW1EO0lBQ25ELHNJQUFzSTtJQUN0SSw4Q0FBOEM7SUFDOUMsa0pBQWtKO0lBQ2xKLGdEQUFnRDtJQUNoRCxzSkFBc0o7SUFDdEoseURBQXlEO0lBQ3pELHdNQUF3TTtJQUN4TSwyREFBMkQ7SUFDM0Qsb1ZBQW9WO0lBQ3BWLDJEQUEyRDtJQUMzRCxvVkFBb1Y7SUFDcFYsK0RBQStEO0lBQy9ELDRMQUE0TDtJQUM1TCw2REFBNkQ7SUFDN0QsNG1DQUE0bUM7SUFDNW1DLHFEQUFxRDtJQUNyRCxzckJBQXNyQjtJQUN0ckIsMERBQTBEO0lBQzFELDRlQUE0ZTtJQUM1ZSxtREFBbUQ7SUFDbkQsa3JCQUFrckI7SUFDbHJCLDhEQUE4RDtJQUM5RCw0ZkFBNGY7Q0FDN2YsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsbURBQW1EO0lBQ25ELHNJQUFzSTtJQUN0SSw4Q0FBOEM7SUFDOUMsa0pBQWtKO0lBQ2xKLGdEQUFnRDtJQUNoRCxzSkFBc0o7SUFDdEoseURBQXlEO0lBQ3pELHdNQUF3TTtJQUN4TSwyREFBMkQ7SUFDM0Qsb1ZBQW9WO0lBQ3BWLDJEQUEyRDtJQUMzRCxvVkFBb1Y7SUFDcFYsK0RBQStEO0lBQy9ELDRMQUE0TDtJQUM1TCw2REFBNkQ7SUFDN0QsdzBCQUF3MEI7SUFDeDBCLHFEQUFxRDtJQUNyRCxzckJBQXNyQjtJQUN0ckIsbURBQW1EO0lBQ25ELGtyQkFBa3JCO0lBQ2xyQiw4REFBOEQ7SUFDOUQsNGZBQTRmO0lBQzVmLDBEQUEwRDtJQUMxRCw0akJBQTRqQjtDQUM3akIsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsc0lBQXNJO0lBQ3RJLGtKQUFrSjtJQUNsSixzSkFBc0o7SUFDdEosd01BQXdNO0lBQ3hNLG9WQUFvVjtJQUNwVixvVkFBb1Y7SUFDcFYsNExBQTRMO0lBQzVMLHcwQkFBdzBCO0lBQ3gwQixzckJBQXNyQjtJQUN0ckIsa3JCQUFrckI7SUFDbHJCLDRmQUE0ZjtDQUM3ZixDQUFDIn0= diff --git a/dist/helpers/aptos/bridge_client_abis.ts b/dist/helpers/aptos/bridge_client_abis.ts deleted file mode 100644 index 35c2f05bd..000000000 --- a/dist/helpers/aptos/bridge_client_abis.ts +++ /dev/null @@ -1,52 +0,0 @@ -export const MAINNET_BRIDGE_ABIS = [ - // ../build/aptos-bridge/abis/bridge/initialize.abi - "010a696e697469616c697a65f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000010967726f75705f6b65790601", - // ../build/aptos-bridge/abis/bridge/pause.abi - "01057061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/unpause.abi - "0107756e7061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/update_group_key.abi - "01107570646174655f67726f75705f6b6579f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi - "011276616c69646174655f77686974656c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi - "011276616c69646174655f626c61636b6c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi - "011676616c69646174655f77697468647261775f66656573f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi - "011576616c69646174655f7472616e736665725f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi - "010c77697468647261775f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - // ../build/aptos-bridge/abis/bridge/validate_burn_nft.abi - "011176616c69646174655f6275726e5f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/freeze_nft.abi - "010a667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi - "011576616c69646174655f756e667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", -]; - -export const TESTNET_BRIDGE_ABIS = [ - "010a696e697469616c697a65467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000010967726f75705f6b65790601", - "01057061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", - "0107756e7061757365467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000209616374696f6e5f696403097369676e61747572650601", - "01107570646174655f67726f75705f6b6579467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f18066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - "011676616c69646174655f77697468647261775f66656573467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - "011576616c69646174655f7472616e736665725f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", - "010c77697468647261775f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "010a667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "011576616c69646174655f756e667265657a655f6e6674467fbe95cf51893ce4526e0959771ac1e5b9c578d351aba35b98506476221f180662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", -]; - -export const STAGING_BRIDGE_ABIS = [ - "010a696e697469616c697a65813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000010967726f75705f6b65790601", - "01057061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", - "0107756e7061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", - "01107570646174655f67726f75705f6b6579813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - "011276616c69646174655f77686974656c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - "011276616c69646174655f626c61636b6c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - "011676616c69646174655f77697468647261775f66656573813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - "011576616c69646174655f7472616e736665725f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", - "010c77697468647261775f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "010a667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "011576616c69646174655f756e667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", -]; diff --git a/dist/helpers/aptos/index.d.ts b/dist/helpers/aptos/index.d.ts deleted file mode 100644 index d9de3673b..000000000 --- a/dist/helpers/aptos/index.d.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { - ChainNonceGet, - ClaimNFT, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - MintNft, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, -} from "../chain"; -import { AptosAccount, AptosClient, HexString } from "aptos"; -import { EvNotifier } from "../../notifier"; -export declare type AptosNFT = { - collection_creator: string; - collection_name: string; - token_name: string; - property_version: number; -}; -/** - * @param collection name of the collection u already own. if u dont own any token, then set this as undefined - * @param name name of the NFT - * @param description description of the NFT - * @param uri The URI which the NFT points to - * @param createCollection set this as true if u set collection as undefined. it will create a new collection. - */ -export declare type AptosMintArgs = { - collection: string | undefined; - name: string; - description: string; - uri: string; - createCollection: boolean; -}; -export declare type AptosClaimArgs = { - sender: HexString; - propertyVersion: number; - collectionName: string; - creator: string; - name: string; -}; -export declare type AptosHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - XpNft: string; - } & GetFeeMargins & - MintNft & - GetProvider & - ClaimNFT & - BalanceCheck & { - setPetraSigner(signer: any): void; - }; -export declare type AptosParams = { - feeMargin: FeeMargins; - rpcUrl: string; - xpnft: string; - bridge: string; - notifier: EvNotifier; - network: "mainnet" | "staging" | "testnet"; -}; -export declare function aptosHelper({ - feeMargin, - rpcUrl, - xpnft, - bridge, - notifier, - network, -}: AptosParams): Promise; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/helpers/aptos/index.d.ts.map b/dist/helpers/aptos/index.d.ts.map deleted file mode 100644 index 657564749..000000000 --- a/dist/helpers/aptos/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EAGV,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,oBAAY,QAAQ,GAAG;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,oBAAY,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,oBAAY,cAAc,GAAG;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,WAAW,GAAG,aAAa,GACrC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,cAAc,CAAC,QAAQ,CAAC,GACxB,eAAe,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,aAAa,GACjB,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,GAC5C,WAAW,CAAC,WAAW,CAAC,GACxB,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC9C,YAAY,GAAG;IACb,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CACnC,CAAC;AAEJ,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAChC,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,GACR,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAgJpC"} \ No newline at end of file diff --git a/dist/helpers/aptos/index.js b/dist/helpers/aptos/index.js deleted file mode 100644 index 6f8d73c4b..000000000 --- a/dist/helpers/aptos/index.js +++ /dev/null @@ -1,166 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.aptosHelper = void 0; -const aptos_1 = require("aptos"); -const consts_1 = require("../../consts"); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const bridge_client_1 = require("./bridge_client"); -async function aptosHelper({ - feeMargin, - rpcUrl, - xpnft, - bridge, - notifier, - network, -}) { - const client = new aptos_1.AptosClient(rpcUrl); - const bridgeClient = new bridge_client_1.BridgeClient( - client, - bridge, - network - ); - const coinClient = new aptos_1.CoinClient(client); - return { - getNonce() { - return consts_1.Chain.APTOS; - }, - getFeeMargin() { - return feeMargin; - }, - setPetraSigner(signer) { - //imposter - client.generateSignSubmitTransaction = async function (_, payload) { - return signer.signAndSubmitTransaction(payload); - }; - }, - balance: async (address) => { - return new bignumber_js_1.default( - (await coinClient.checkBalance(address)).toString() - ); - }, - async validateAddress(adr) { - try { - await client.getAccount(adr); - return true; - } catch (e) { - return false; - } - }, - XpNft: xpnft, - async estimateValidateTransferNft(_to, _metadata, _mintWith) { - return new bignumber_js_1.default(0); - }, - async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { - return new bignumber_js_1.default(0); - }, - async transferNftToForeign( - sender, - chain_nonce, - to, - id, - txFees, - mintWith, - _gasLimit - ) { - const receipt = await bridgeClient.freezeNft( - sender, - aptos_1.HexString.ensure(id.native.collection_creator), - id.native.collection_name, - id.native.token_name, - id.native.property_version, - BigInt(txFees.toString()), - chain_nonce, - to, - mintWith - ); - await new Promise((r) => setTimeout(r, 10000)); - await notifier.notifyAptos(receipt); - return receipt; - }, - getProvider() { - return client; - }, - async mintNft(owner, options) { - //AptosAccount.fromAptosAccountObject({""}) - const tc = new aptos_1.TokenClient(client); - if (options.createCollection) { - await tc.createCollection( - owner, - "UMT", - "UserNftMinter - Mint your NFTs Here To Test", - "https://example.com", - BigInt(2 ** 64) - BigInt(1) - ); - const response = await tc.createToken( - owner, - "UMT", - options.name, - options.description, - 1, - options.uri, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined - ); - return response; - } else { - const response = await tc.createToken( - owner, - options.collection, - options.name, - options.description, - 1, - options.uri, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined - ); - return response; - } - }, - async claimNFT(signer, params) { - const tokenClient = new aptos_1.TokenClient(client); - const claim = await tokenClient.claimToken( - signer, - params.sender, - params.creator, - params.collectionName, - params.name, - params.propertyVersion - ); - return claim; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - const receipt = await bridgeClient.withdrawNft( - sender, - aptos_1.HexString.ensure(bridge), - aptos_1.HexString.ensure(id.native.collection_creator), - id.native.collection_name, - id.native.token_name, - id.native.property_version.toString(), - BigInt(txFees.toString()), - parseInt(nonce), - to, - id.native.collection_creator - ); - await new Promise((r) => setTimeout(r, 10000)); - await notifier.notifyAptos(receipt); - return receipt; - }, - }; -} -exports.aptosHelper = aptosHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9hcHRvcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFjQSxpQ0FNZTtBQUVmLHlDQUFxQztBQUNyQyxnRUFBcUM7QUFDckMsbURBQStDO0FBd0R4QyxLQUFLLFVBQVUsV0FBVyxDQUFDLEVBQ2hDLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxHQUNLO0lBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXZDLE1BQU0sWUFBWSxHQUFHLElBQUksNEJBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxQyxPQUFPO1FBQ0wsUUFBUTtZQUNOLE9BQU8sY0FBSyxDQUFDLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsWUFBWTtZQUNWLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxjQUFjLENBQUMsTUFBVztZQUN4QixVQUFVO1lBQ1YsTUFBTSxDQUFDLDZCQUE2QixHQUFHLEtBQUssV0FDMUMsQ0FBZSxFQUNmLE9BQVk7Z0JBRVosT0FBTyxNQUFNLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDekIsT0FBTyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxNQUFNLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFDRCxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUc7WUFDdkIsSUFBSTtnQkFDRixN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 diff --git a/dist/helpers/aptos/index.ts b/dist/helpers/aptos/index.ts deleted file mode 100644 index 4022065b3..000000000 --- a/dist/helpers/aptos/index.ts +++ /dev/null @@ -1,207 +0,0 @@ -import { - ChainNonceGet, - ClaimNFT, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - MintNft, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from "../chain"; - -import { AptosAccount, AptosClient, HexString, TokenClient } from "aptos"; - -import { Chain } from "../../consts"; -import BigNumber from "bignumber.js"; -import { BridgeClient } from "./bridge_client"; -import { EvNotifier } from "../../notifier"; - -export type AptosNFT = { - collection_creator: string; - collection_name: string; - token_name: string; - property_version: number; -}; - -/** - * @param collection name of the collection u already own. if u dont own any token, then set this as undefined - * @param name name of the NFT - * @param description description of the NFT - * @param uri The URI which the NFT points to - * @param createCollection set this as true if u set collection as undefined. it will create a new collection. - */ -export type AptosMintArgs = { - collection: string | undefined; - name: string; - description: string; - uri: string; - createCollection: boolean; -}; - -export type AptosClaimArgs = { - sender: HexString; - propertyVersion: number; - collectionName: string; - creator: string; - name: string; -}; - -export type AptosHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - XpNft: string; - } & GetFeeMargins & - MintNft & - GetProvider & - ClaimNFT; - -export type AptosParams = { - feeMargin: FeeMargins; - rpcUrl: string; - xpnft: string; - bridge: string; - notifier: EvNotifier; - network: "mainnet" | "staging" | "testnet"; -}; - -export async function aptosHelper({ - feeMargin, - rpcUrl, - xpnft, - bridge, - notifier, - network, -}: AptosParams): Promise { - const client = new AptosClient(rpcUrl); - - const bridgeClient = new BridgeClient(client, bridge, network); - - return { - getNonce() { - return Chain.APTOS; - }, - getFeeMargin() { - return feeMargin; - }, - async validateAddress(adr) { - try { - await client.getAccount(adr); - return true; - } catch (e) { - return false; - } - }, - XpNft: xpnft, - async estimateValidateTransferNft(_to, _metadata, _mintWith) { - return new BigNumber(0); - }, - async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { - return new BigNumber(0); - }, - async transferNftToForeign( - sender, - chain_nonce, - to, - id, - txFees, - mintWith, - _gasLimit? - ) { - const receipt = await bridgeClient.freezeNft( - sender, - HexString.ensure(id.native.collection_creator), - id.native.collection_name, - id.native.token_name, - id.native.property_version, - BigInt(txFees.toString()), - chain_nonce, - to, - mintWith - ); - await new Promise((r) => setTimeout(r, 10000)); - await notifier.notifyAptos(receipt); - return receipt; - }, - getProvider() { - return client; - }, - async mintNft(owner, options) { - const tc = new TokenClient(client); - if (options.createCollection) { - await tc.createCollection( - owner, - "UMT", - "UserNftMinter - Mint your NFTs Here To Test", - "https://example.com", - BigInt(2 ** 64) - BigInt(1) - ); - const response = await tc.createToken( - owner, - "UMT", - options.name, - options.description, - 1, - options.uri, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined - ); - return response; - } else { - const response = await tc.createToken( - owner, - options.collection!, - options.name, - options.description, - 1, - options.uri, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined - ); - return response; - } - }, - async claimNFT(signer, params) { - const tokenClient = new TokenClient(client); - const claim = await tokenClient.claimToken( - signer, - params.sender, - params.creator, - params.collectionName, - params.name, - params.propertyVersion - ); - return claim; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - const receipt = await bridgeClient.withdrawNft( - sender, - HexString.ensure(bridge), - HexString.ensure(id.native.collection_creator), - id.native.collection_name, - id.native.token_name, - id.native.property_version.toString(), - BigInt(txFees.toString()), - parseInt(nonce), - to, - id.native.collection_creator - ); - await new Promise((r) => setTimeout(r, 10000)); - await notifier.notifyAptos(receipt); - return receipt; - }, - }; -} diff --git a/dist/helpers/bridge_pool.teal.d.ts b/dist/helpers/bridge_pool.teal.d.ts deleted file mode 100644 index 55080bca3..000000000 --- a/dist/helpers/bridge_pool.teal.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export declare const BRIDGE_TEAL = - '#pragma version 5\nintcblock 1 6 3\nbytecblock TMPL_RECV_ADDR\ntxn TypeEnum\npushint 4 // axfer\n==\ntxn AssetAmount\nintc_0 // 1\n==\n&&\ntxn AssetReceiver\nbytec_0 // TMPL_RECV_ADDR\n==\n&&\nbnz main_l6\ngtxn 0 TypeEnum\nintc_1 // appl\n==\ngtxna 0 ApplicationArgs 0\npushbytes 0x6372656174655f6e6674 // "create_nft"\n==\n&&\ngtxna 0 Accounts 1\nbytec_0 // TMPL_RECV_ADDR\n==\n&&\ngtxn 1 TypeEnum\nintc_2 // acfg\n==\n&&\ngtxn 1 ConfigAssetTotal\nintc_0 // 1\n==\n&&\ngtxn 1 ConfigAssetDecimals\npushint 0 // 0\n==\n&&\nbnz main_l5\ngtxn 0 TypeEnum\nintc_1 // appl\n==\ngtxna 0 ApplicationArgs 0\npushbytes 0x77697468647261775f6e6674 // "withdraw_nft"\n==\n&&\ngtxn 1 TypeEnum\nintc_2 // acfg\n==\n&&\ngtxn 1 ConfigAsset\ngtxna 0 Assets 0\n==\n&&\nbnz main_l4\nerr\nmain_l4:\nintc_0 // 1\nreturn\nmain_l5:\nintc_0 // 1\nreturn\nmain_l6:\nintc_0 // 1\nreturn'; -//# sourceMappingURL=bridge_pool.teal.d.ts.map diff --git a/dist/helpers/bridge_pool.teal.d.ts.map b/dist/helpers/bridge_pool.teal.d.ts.map deleted file mode 100644 index 61be1fc24..000000000 --- a/dist/helpers/bridge_pool.teal.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bridge_pool.teal.d.ts","sourceRoot":"","sources":["../../src/helpers/bridge_pool.teal.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,o2BAgEjB,CAAC"} \ No newline at end of file diff --git a/dist/helpers/bridge_pool.teal.js b/dist/helpers/bridge_pool.teal.js deleted file mode 100644 index 0c27fe1a5..000000000 --- a/dist/helpers/bridge_pool.teal.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BRIDGE_TEAL = void 0; -exports.BRIDGE_TEAL = `#pragma version 5 -intcblock 1 6 3 -bytecblock TMPL_RECV_ADDR -txn TypeEnum -pushint 4 // axfer -== -txn AssetAmount -intc_0 // 1 -== -&& -txn AssetReceiver -bytec_0 // TMPL_RECV_ADDR -== -&& -bnz main_l6 -gtxn 0 TypeEnum -intc_1 // appl -== -gtxna 0 ApplicationArgs 0 -pushbytes 0x6372656174655f6e6674 // "create_nft" -== -&& -gtxna 0 Accounts 1 -bytec_0 // TMPL_RECV_ADDR -== -&& -gtxn 1 TypeEnum -intc_2 // acfg -== -&& -gtxn 1 ConfigAssetTotal -intc_0 // 1 -== -&& -gtxn 1 ConfigAssetDecimals -pushint 0 // 0 -== -&& -bnz main_l5 -gtxn 0 TypeEnum -intc_1 // appl -== -gtxna 0 ApplicationArgs 0 -pushbytes 0x77697468647261775f6e6674 // "withdraw_nft" -== -&& -gtxn 1 TypeEnum -intc_2 // acfg -== -&& -gtxn 1 ConfigAsset -gtxna 0 Assets 0 -== -&& -bnz main_l4 -err -main_l4: -intc_0 // 1 -return -main_l5: -intc_0 // 1 -return -main_l6: -intc_0 // 1 -return`; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX3Bvb2wudGVhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2JyaWRnZV9wb29sLnRlYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxXQUFXLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnRXBCLENBQUMifQ== diff --git a/dist/helpers/bridge_pool.teal.ts b/dist/helpers/bridge_pool.teal.ts deleted file mode 100644 index 2988ce9df..000000000 --- a/dist/helpers/bridge_pool.teal.ts +++ /dev/null @@ -1,65 +0,0 @@ -export const BRIDGE_TEAL = `#pragma version 5 -intcblock 1 6 3 -bytecblock TMPL_RECV_ADDR -txn TypeEnum -pushint 4 // axfer -== -txn AssetAmount -intc_0 // 1 -== -&& -txn AssetReceiver -bytec_0 // TMPL_RECV_ADDR -== -&& -bnz main_l6 -gtxn 0 TypeEnum -intc_1 // appl -== -gtxna 0 ApplicationArgs 0 -pushbytes 0x6372656174655f6e6674 // "create_nft" -== -&& -gtxna 0 Accounts 1 -bytec_0 // TMPL_RECV_ADDR -== -&& -gtxn 1 TypeEnum -intc_2 // acfg -== -&& -gtxn 1 ConfigAssetTotal -intc_0 // 1 -== -&& -gtxn 1 ConfigAssetDecimals -pushint 0 // 0 -== -&& -bnz main_l5 -gtxn 0 TypeEnum -intc_1 // appl -== -gtxna 0 ApplicationArgs 0 -pushbytes 0x77697468647261775f6e6674 // "withdraw_nft" -== -&& -gtxn 1 TypeEnum -intc_2 // acfg -== -&& -gtxn 1 ConfigAsset -gtxna 0 Assets 0 -== -&& -bnz main_l4 -err -main_l4: -intc_0 // 1 -return -main_l5: -intc_0 // 1 -return -main_l6: -intc_0 // 1 -return`; diff --git a/dist/helpers/chain.d.ts b/dist/helpers/chain.d.ts deleted file mode 100644 index 15dd9c53e..000000000 --- a/dist/helpers/chain.d.ts +++ /dev/null @@ -1,177 +0,0 @@ -import BigNumber from "bignumber.js"; -import { ethers } from "ethers"; -import { ChainNonce } from "../type-utils"; -/** - * NFT Info - */ -export declare type NftInfo = { - readonly uri: string; - readonly native: Raw; - readonly collectionIdent: string; -}; -/** - * Action to perform before transfer/unfreeze (if any) - */ -export interface PreTransfer { - preTransfer( - sender: Signer, - nft: NftInfo, - fee: BigNumber, - args?: ExtraArgs - ): Promise; - preUnfreeze( - sender: Signer, - nft: NftInfo, - fee: BigNumber, - args?: ExtraArgs - ): Promise; -} -/** - * Transfer NFT to a foreign chain, freezing the original one - * - * @param sender Account which owns the NFT on the native chain, able to sign transactions - * @param chain_nonce Nonce of the target chain - * @param to Address of the receiver on the foreign chain - * @param id Information required to freeze this nft - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface TransferNftForeign { - transferNftToForeign( - sender: Signer, - chain_nonce: number, - to: string, - id: NftInfo, - txFees: BigNumber, - mintWith: string, - gasLimit?: ethers.BigNumberish | undefined, - gasPrice?: ethers.BigNumberish | undefined - ): Promise; -} -/** - * Unfreeze native NFT existing on a foreign chain(Send back NFT) - * chain_nonce is automatically derived - * - * @param sender Account which owns the wrapped NFT on this chain, able to sign transactions - * @param to Address of the receiver on the original chain - * @param id Information required to unfreeze this nft - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface UnfreezeForeignNft { - unfreezeWrappedNft( - sender: Signer, - to: string, - id: NftInfo, - txFees: BigNumber, - nonce: string, - gasLimit: ethers.BigNumberish | undefined, - gasPrice: ethers.BigNumberish | undefined - ): Promise; -} -/** - * Get the balance of an address on the chain - */ -export interface BalanceCheck { - balance(address: string): Promise; -} -/** - * Create a new NFT on this chain - * - * @param options Arguments required to mint the nft - */ -export interface MintNft { - mintNft(owner: Signer, options: Args): Promise; -} -export interface ValidateAddress { - validateAddress(adr: string): Promise; -} -export interface EstimateTxFees { - estimateValidateTransferNft( - to: string, - metadata: NftInfo, - mintWith: string - ): Promise; - estimateValidateUnfreezeNft( - to: string, - metadata: NftInfo, - mintWith: string - ): Promise; -} -export declare function ConcurrentSendError(): Error; -export interface PreTransferRawTxn { - preTransferRawTxn( - id: NftInfo, - address: string, - value?: BigNumber - ): Promise; -} -export interface ChainNonceGet { - getNonce(): ChainNonce; -} -export interface ExtractAction { - extractAction(txn: Txn): Promise; -} -export declare enum TransactionStatus { - PENDING = "pending", - SUCCESS = "success", - FAILURE = "failure", - UNKNOWN = "unknown", -} -export interface ExtractTxnStatus { - extractTxnStatus(txn: string): Promise; -} -export interface GetTokenURI { - getTokenURI(contract: string, tokenId: string): Promise; -} -export interface TransferNftForeignBatch { - transferNftBatchToForeign( - sender: Signer, - chain_nonce: number, - to: string, - id: NftInfo[], - mintWith: string, - txFees: BigNumber - ): Promise; -} -export interface UnfreezeForeignNftBatch { - unfreezeWrappedNftBatch( - sender: Signer, - chainNonce: number, - to: string, - nfts: NftInfo[], - txFees: BigNumber - ): Promise; -} -export interface EstimateTxFeesBatch { - estimateValidateTransferNftBatch( - to: string, - metadatas: NftInfo[], - mintWith: string[] - ): Promise; - estimateValidateUnfreezeNftBatch( - to: string, - metadatas: NftInfo[] - ): Promise; -} -export declare type WhitelistCheck = { - isNftWhitelisted(nft: NftInfo): Promise; -}; -export interface GetProvider { - getProvider(): Provider; -} -export declare function isWrappedNft(nft: NftInfo): Promise; -export interface IsContractAddress { - isContractAddress(address: string): Promise; -} -export interface FeeMargins { - min: number; - max: number; -} -export interface GetFeeMargins { - getFeeMargin(): FeeMargins; -} -export interface ClaimNFT { - claimNFT(signer: Signer, args: ClaimArgs): Promise; -} -//# sourceMappingURL=chain.d.ts.map diff --git a/dist/helpers/chain.d.ts.map b/dist/helpers/chain.d.ts.map deleted file mode 100644 index 7891c87c2..000000000 --- a/dist/helpers/chain.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/helpers/chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/chain.js b/dist/helpers/chain.js deleted file mode 100644 index f6da907cd..000000000 --- a/dist/helpers/chain.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isWrappedNft = - exports.TransactionStatus = - exports.ConcurrentSendError = - void 0; -const axios_1 = __importDefault(require("axios")); -function ConcurrentSendError() { - return new Error("concurrent_send"); -} -exports.ConcurrentSendError = ConcurrentSendError; -var TransactionStatus; -(function (TransactionStatus) { - TransactionStatus["PENDING"] = "pending"; - TransactionStatus["SUCCESS"] = "success"; - TransactionStatus["FAILURE"] = "failure"; - TransactionStatus["UNKNOWN"] = "unknown"; -})( - (TransactionStatus = - exports.TransactionStatus || (exports.TransactionStatus = {})) -); -async function isWrappedNft(nft) { - return ( - typeof (await axios_1.default.get(nft.uri).catch(() => undefined))?.data - .wrapped !== "undefined" - ); -} -exports.isWrappedNft = isWrappedNft; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUE4RzFCLFNBQWdCLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUZELGtEQUVDO0FBa0JELElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUMzQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFLNUI7QUFrRE0sS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFxQjtJQUN0RCxPQUFPLENBQ0wsT0FBTyxDQUFDLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDdEUsV0FBVyxDQUNaLENBQUM7QUFDSixDQUFDO0FBTEQsb0NBS0MifQ== diff --git a/dist/helpers/chain.ts b/dist/helpers/chain.ts deleted file mode 100644 index d2d388f93..000000000 --- a/dist/helpers/chain.ts +++ /dev/null @@ -1,206 +0,0 @@ -import axios from "axios"; -import BigNumber from "bignumber.js"; -import { ethers } from "ethers"; -import { ChainNonce } from "../type-utils"; - -/** - * NFT Info - */ -export type NftInfo = { - readonly uri: string; - readonly native: Raw; - readonly collectionIdent: string; -}; - -/** - * Action to perform before transfer/unfreeze (if any) - */ -export interface PreTransfer { - preTransfer( - sender: Signer, - nft: NftInfo, - fee: BigNumber, - args?: ExtraArgs - ): Promise; - preUnfreeze( - sender: Signer, - nft: NftInfo, - fee: BigNumber, - args?: ExtraArgs - ): Promise; -} - -/** - * Transfer NFT to a foreign chain, freezing the original one - * - * @param sender Account which owns the NFT on the native chain, able to sign transactions - * @param chain_nonce Nonce of the target chain - * @param to Address of the receiver on the foreign chain - * @param id Information required to freeze this nft - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface TransferNftForeign { - transferNftToForeign( - sender: Signer, - chain_nonce: number, - to: string, - id: NftInfo, - txFees: BigNumber, - mintWith: string, - gasLimit?: ethers.BigNumberish | undefined - ): Promise; -} - -/** - * Unfreeze native NFT existing on a foreign chain(Send back NFT) - * chain_nonce is automatically derived - * - * @param sender Account which owns the wrapped NFT on this chain, able to sign transactions - * @param to Address of the receiver on the original chain - * @param id Information required to unfreeze this nft - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface UnfreezeForeignNft { - unfreezeWrappedNft( - sender: Signer, - to: string, - id: NftInfo, - txFees: BigNumber, - nonce: string, - gasLimit: ethers.BigNumberish | undefined - ): Promise; -} - -/** - * Get the balance of an address on the chain - */ -export interface BalanceCheck { - balance(address: string): Promise; -} - -/** - * Create a new NFT on this chain - * - * @param options Arguments required to mint the nft - */ -export interface MintNft { - mintNft(owner: Signer, options: Args): Promise; -} - -export interface ValidateAddress { - validateAddress(adr: string): Promise; -} - -export interface EstimateTxFees { - estimateValidateTransferNft( - to: string, - metadata: NftInfo, - mintWith: string - ): Promise; - estimateValidateUnfreezeNft( - to: string, - metadata: NftInfo, - mintWith: string - ): Promise; -} - -export function ConcurrentSendError(): Error { - return new Error("concurrent_send"); -} - -export interface PreTransferRawTxn { - preTransferRawTxn( - id: NftInfo, - address: string, - value?: BigNumber - ): Promise; -} - -export interface ChainNonceGet { - getNonce(): ChainNonce; -} - -export interface ExtractAction { - extractAction(txn: Txn): Promise; -} - -export enum TransactionStatus { - PENDING = "pending", - SUCCESS = "success", - FAILURE = "failure", - UNKNOWN = "unknown", -} -export interface ExtractTxnStatus { - extractTxnStatus(txn: string): Promise; -} - -export interface GetTokenURI { - getTokenURI(contract: string, tokenId: string): Promise; -} - -export interface TransferNftForeignBatch { - transferNftBatchToForeign( - sender: Signer, - chain_nonce: number, - to: string, - id: NftInfo[], - mintWith: string, - txFees: BigNumber - ): Promise; -} - -export interface UnfreezeForeignNftBatch { - unfreezeWrappedNftBatch( - sender: Signer, - chainNonce: number, - to: string, - nfts: NftInfo[], - txFees: BigNumber - ): Promise; -} - -export interface EstimateTxFeesBatch { - estimateValidateTransferNftBatch( - to: string, - metadatas: NftInfo[], - mintWith: string[] - ): Promise; - estimateValidateUnfreezeNftBatch( - to: string, - metadatas: NftInfo[] - ): Promise; -} - -export type WhitelistCheck = { - isNftWhitelisted(nft: NftInfo): Promise; -}; - -export interface GetProvider { - getProvider(): Provider; -} - -export async function isWrappedNft(nft: NftInfo) { - return ( - typeof (await axios.get(nft.uri).catch(() => undefined))?.data.wrapped !== - "undefined" - ); -} - -export interface IsContractAddress { - isContractAddress(address: string): Promise; -} - -export interface FeeMargins { - min: number; - max: number; -} - -export interface GetFeeMargins { - getFeeMargin(): FeeMargins; -} - -export interface ClaimNFT { - claimNFT(signer: Signer, args: ClaimArgs): Promise; -} diff --git a/dist/helpers/dfinity/dfinity.d.ts b/dist/helpers/dfinity/dfinity.d.ts deleted file mode 100644 index 2794e4eeb..000000000 --- a/dist/helpers/dfinity/dfinity.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { HttpAgent, Identity, SubmitResponse } from "@dfinity/agent"; -import { AccountIdentifier } from "@dfinity/nns"; -import { Principal } from "@dfinity/principal"; -import { EvNotifier } from "../../notifier"; -import { - BalanceCheck, - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - MintNft, - NftInfo, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from "../chain"; -export declare type DfinitySigner = Identity; -export declare type DfinityNft = { - canisterId: string; - tokenId: string; -}; -export declare type DfinityMintArgs = { - canisterId?: string; - uri: string; -}; -export declare type User = - | { - principal: Principal; - } - | { - address: AccountIdentifier; - }; -export interface MintRequest { - to: User; - metadata: [] | [Array]; -} -export declare type DfinityHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - XpNft: string; - } & Pick< - PreTransfer, - "preTransfer" - > & - BalanceCheck & - GetFeeMargins & - MintNft & { - nftList(owner: string, contract: string): Promise[]>; - }; -export declare type DfinityParams = { - agent: HttpAgent; - bridgeContract: Principal; - xpnftId: Principal; - notifier: EvNotifier; - feeMargin: FeeMargins; - umt: Principal; -}; -export declare function dfinityHelper( - args: DfinityParams -): Promise; -//# sourceMappingURL=dfinity.d.ts.map diff --git a/dist/helpers/dfinity/dfinity.d.ts.map b/dist/helpers/dfinity/dfinity.d.ts.map deleted file mode 100644 index 88ea7d404..000000000 --- a/dist/helpers/dfinity/dfinity.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"dfinity.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/dfinity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,QAAQ,EACR,cAAc,EACf,MAAM,gBAAgB,CAAC;AAexB,OAAO,EAAE,iBAAiB,EAAuB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,UAAU,CAAC;AAIlB,oBAAY,aAAa,GAAG,QAAQ,CAAC;AAErC,oBAAY,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAyBF,oBAAY,IAAI,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC7E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAChC;AAcD,oBAAY,aAAa,GAAG,aAAa,GACvC,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,cAAc,CAAC,UAAU,CAAC,GAC1B,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CACxC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EACzD,aAAa,CACd,GACD,YAAY,GACZ,aAAa,GACb,OAAO,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG;IACxD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;CAC1E,CAAC;AAEJ,oBAAY,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,aAAa,CAAC,CA8NxB"} \ No newline at end of file diff --git a/dist/helpers/dfinity/dfinity.js b/dist/helpers/dfinity/dfinity.js deleted file mode 100644 index 9d27b04ac..000000000 --- a/dist/helpers/dfinity/dfinity.js +++ /dev/null @@ -1,256 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.dfinityHelper = void 0; -const agent_1 = require("@dfinity/agent"); -const candid_1 = require("@dfinity/candid"); -const idl_1 = require("@dfinity/candid/lib/cjs/idl"); -const nns_1 = require("@dfinity/nns"); -const principal_1 = require("@dfinity/principal"); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const consts_1 = require("../../consts"); -const idl_2 = require("./idl"); -const Metadata = candid_1.IDL.Variant({ - fungible: candid_1.IDL.Record({ - decimals: candid_1.IDL.Nat8, - metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), - name: candid_1.IDL.Text, - symbol: candid_1.IDL.Text, - }), - nonfungible: candid_1.IDL.Record({ - metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), - }), -}); -const CommonError = candid_1.IDL.Variant({ - InvalidToken: candid_1.IDL.Text, - Other: candid_1.IDL.Text, -}); -const Result_Bearer = candid_1.IDL.Variant({ - ok: candid_1.IDL.Text, - err: CommonError, -}); -const User = candid_1.IDL.Variant({ - principal: candid_1.IDL.Principal, - address: candid_1.IDL.Text, -}); -const MintRequest = candid_1.IDL.Record({ - to: User, - metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), -}); -const ApproveRequest = (0, idl_1.Record)({ - token: idl_1.Text, - subaccount: (0, idl_1.Opt)((0, idl_1.Vec)(idl_1.Nat8)), - allowance: idl_1.Nat, - spender: new idl_1.PrincipalClass(), -}); -async function dfinityHelper(args) { - const ledger = nns_1.LedgerCanister.create({ agent: args.agent }); - const minter = agent_1.Actor.createActor(idl_2.idlFactory, { - agent: args.agent, - canisterId: args.bridgeContract, - }); - async function transferTxFee(amt) { - return await ledger.transfer({ - to: nns_1.AccountIdentifier.fromPrincipal({ - principal: args.bridgeContract, - }), - amount: nns_1.ICP.fromE8s(BigInt(amt.toString())), - }); - } - const to32bits = (num) => { - let b = new ArrayBuffer(4); - new DataView(b).setUint32(0, num); - 1 << 5; - return Array.from(new Uint8Array(b)); - }; - const tokenIdentifier = (principal, index) => { - const padding = Buffer.from("\x0Atid"); - const array = new Uint8Array([ - ...padding, - ...principal_1.Principal.fromText(principal).toUint8Array(), - ...to32bits(index), - ]); - return principal_1.Principal.fromUint8Array(array).toText(); - }; - // async function waitActionId(requestId: RequestId) { - // const pollStrat = polling.defaultStrategy(); - // const resp = await polling.pollForResponse( - // args.agent, - // args.bridgeContract, - // requestId, - // pollStrat - // ); - // return decode([Nat], resp)[0].toString() as string; - // } - return { - XpNft: args.xpnftId.toString(), - getNonce: () => consts_1.Chain.DFINITY, - estimateValidateTransferNft: async () => new bignumber_js_1.default(0), - estimateValidateUnfreezeNft: async () => new bignumber_js_1.default(0), - async validateAddress(adr) { - try { - principal_1.Principal.fromText(adr); - return true; - } catch { - return false; - } - }, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { - args.agent.replaceIdentity(sender); - const txFeeBlock = await transferTxFee(txFees); - const actionId = await minter.freeze_nft( - txFeeBlock, - principal_1.Principal.fromText(id.native.canisterId), - BigInt(id.native.tokenId), - BigInt(chain_nonce), - to, - mintWith - ); - await args.notifier.notifyDfinity(actionId.toString()); - return "NO TX RESP YET"; - }, - async mintNft(owner, options) { - const canister = principal_1.Principal.fromText( - options.canisterId ? options.canisterId : args.umt.toText() - ); - let mint = await args.agent.call(canister, { - methodName: "mintNFT", - arg: (0, idl_1.encode)( - [MintRequest], - [ - { - metadata: [[...Buffer.from(options.uri)]], - to: { - principal: owner.getPrincipal(), - }, - }, - ] - ), - }); - return mint; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - args.agent.replaceIdentity(sender); - const txFeeBlock = await transferTxFee(txFees); - const actionId = await minter.withdraw_nft( - txFeeBlock, - principal_1.Principal.fromText(id.native.canisterId), - BigInt(id.native.tokenId), - BigInt(nonce), - to - ); - await args.notifier.notifyDfinity(actionId.toString()); - return "NO TX RESP YET"; - }, - /// owner = principal of owner - async nftList(owner, contract) { - let aid = nns_1.AccountIdentifier.fromPrincipal({ - principal: principal_1.Principal.fromText(owner), - }); - let tokens = []; - const response = await args.agent.query(contract, { - methodName: "getTokens", - arg: (0, idl_1.encode)([], []), - }); - if ("reply" in response) { - let decoded = (0, idl_1.decode)( - [candid_1.IDL.Vec(candid_1.IDL.Tuple(idl_1.Nat32, Metadata))], - response.reply.arg - )[0]; - await Promise.all( - decoded.map(async (e) => { - let [tokenId, metadata] = e; - let tid = tokenIdentifier(contract, tokenId); - const ownerQuery = await args.agent.query(contract, { - methodName: "bearer", - arg: (0, idl_1.encode)([idl_1.Text], [tid]), - }); - if ("reply" in ownerQuery) { - const response = (0, idl_1.decode)( - [Result_Bearer], - ownerQuery.reply.arg - )[0]; - if ("ok" in response) { - if (response.ok === aid.toHex()) { - tokens.push({ - collectionIdent: contract, - native: { - canisterId: contract, - tokenId: tokenId.toString(), - }, - uri: Buffer.from( - metadata["nonfungible"]["metadata"][0] ?? [] - ).toString("utf-8"), - }); - } - } - } - }) - ); - } - return tokens; - }, - async preTransfer(sender, nft) { - args.agent.replaceIdentity(sender); - const tid = tokenIdentifier( - nft.collectionIdent, - Number(nft.native.tokenId) - ); - const nftContract = principal_1.Principal.fromText(nft.native.canisterId); - const approvedQuery = await args.agent.query(nftContract, { - methodName: "getAllowances", - arg: (0, idl_1.encode)([idl_1.Text], [tid]), - }); - if ("reply" in approvedQuery) { - let decoded = (0, idl_1.decode)( - [ - (0, idl_1.Vec)( - (0, idl_1.Tuple)(idl_1.Nat32, new idl_1.PrincipalClass()) - ), - ], - approvedQuery.reply.arg - )[0]; - for (const item of decoded) { - if (item[0] === Number(nft.native.tokenId)) { - if (item[1].toText() === args.bridgeContract.toText()) { - return undefined; - } - } - } - } - const approveCall = await args.agent.call(nftContract, { - methodName: "approve", - arg: (0, idl_1.encode)( - [ApproveRequest], - [ - { - token: tid, - allowance: BigInt(1), - spender: args.bridgeContract, - subaccount: [], - }, - ] - ), - }); - return Buffer.from(approveCall.requestId).toString("hex"); - }, - getFeeMargin() { - return args.feeMargin; - }, - async balance(address) { - const bal = await ledger.accountBalance({ - accountIdentifier: nns_1.AccountIdentifier.fromPrincipal({ - principal: principal_1.Principal.fromText(address), - }), - }); - const e8s = bal.toE8s().toString(); - return new bignumber_js_1.default(e8s); - }, - }; -} -exports.dfinityHelper = dfinityHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZpbml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2RmaW5pdHkvZGZpbml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwQ0FNd0I7QUFDeEIsNENBQXNDO0FBQ3RDLHFEQVlxQztBQUNyQyxzQ0FBc0U7QUFDdEUsa0RBQStDO0FBQy9DLGdFQUFxQztBQUNyQyx5Q0FBcUM7QUFnQnJDLCtCQUFtQztBQWVuQyxNQUFNLFFBQVEsR0FBRyxZQUFHLENBQUMsT0FBTyxDQUFDO0lBQzNCLFFBQVEsRUFBRSxZQUFHLENBQUMsTUFBTSxDQUFDO1FBQ25CLFFBQVEsRUFBRSxZQUFHLENBQUMsSUFBSTtRQUNsQixRQUFRLEVBQUUsWUFBRyxDQUFDLEdBQUcsQ0FBQyxZQUFHLENBQUMsR0FBRyxDQUFDLFlBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLEVBQUUsWUFBRyxDQUFDLElBQUk7UUFDZCxNQUFNLEVBQUUsWUFBRyxDQUFDLElBQUk7S0FDakIsQ0FBQztJQUNGLFdBQVcsRUFBRSxZQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFlBQUcsQ0FBQyxHQUFHLENBQUMsWUFBRyxDQUFDLEdBQUcsQ0FBQyxZQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO0NBQ2xFLENBQUMsQ0FBQztBQUNILE1BQU0sV0FBVyxHQUFHLFlBQUcsQ0FBQyxPQUFPLENBQUM7SUFDOUIsWUFBWSxFQUFFLFlBQUcsQ0FBQyxJQUFJO0lBQ3RCLEtBQUssRUFBRSxZQUFHLENBQUMsSUFBSTtDQUNoQixDQUFDLENBQUM7QUFFSCxNQUFNLGFBQWEsR0FBRyxZQUFHLENBQUMsT0FBTyxDQUFDO0lBQ2hDLEVBQUUsRUFBRSxZQUFHLENBQUMsSUFBSTtJQUNaLEdBQUcsRUFBRSxXQUFXO0NBQ2pCLENBQUMsQ0FBQztBQUVILE1BQU0sSUFBSSxHQUFHLFlBQUcsQ0FBQyxPQUFPLENB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 diff --git a/dist/helpers/dfinity/dfinity.ts b/dist/helpers/dfinity/dfinity.ts deleted file mode 100644 index 699df76a8..000000000 --- a/dist/helpers/dfinity/dfinity.ts +++ /dev/null @@ -1,344 +0,0 @@ -import { - Actor, - ActorSubclass, - HttpAgent, - Identity, - SubmitResponse, -} from "@dfinity/agent"; -import { IDL } from "@dfinity/candid"; -import { - decode, - encode, - Nat, - Nat32, - Nat8, - Opt, - PrincipalClass, - Record, - Text, - Tuple, - Vec, -} from "@dfinity/candid/lib/cjs/idl"; -import { AccountIdentifier, ICP, LedgerCanister } from "@dfinity/nns"; -import { Principal } from "@dfinity/principal"; -import BigNumber from "bignumber.js"; -import { Chain } from "../../consts"; -import { EvNotifier } from "../../notifier"; - -import { - BalanceCheck, - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - MintNft, - NftInfo, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from "../chain"; -import { idlFactory } from "./idl"; -import { _SERVICE } from "./minter.did"; - -export type DfinitySigner = Identity; - -export type DfinityNft = { - canisterId: string; - tokenId: string; -}; - -export type DfinityMintArgs = { - canisterId?: string; - uri: string; -}; - -const Metadata = IDL.Variant({ - fungible: IDL.Record({ - decimals: IDL.Nat8, - metadata: IDL.Opt(IDL.Vec(IDL.Nat8)), - name: IDL.Text, - symbol: IDL.Text, - }), - nonfungible: IDL.Record({ metadata: IDL.Opt(IDL.Vec(IDL.Nat8)) }), -}); -const CommonError = IDL.Variant({ - InvalidToken: IDL.Text, - Other: IDL.Text, -}); - -const Result_Bearer = IDL.Variant({ - ok: IDL.Text, - err: CommonError, -}); - -const User = IDL.Variant({ - principal: IDL.Principal, - address: IDL.Text, -}); -export type User = { principal: Principal } | { address: AccountIdentifier }; -export interface MintRequest { - to: User; - metadata: [] | [Array]; -} - -const MintRequest = IDL.Record({ - to: User, - metadata: IDL.Opt(IDL.Vec(IDL.Nat8)), -}); - -const ApproveRequest = Record({ - token: Text, - subaccount: Opt(Vec(Nat8)), - allowance: Nat, - spender: new PrincipalClass(), -}); - -export type DfinityHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { XpNft: string } & Pick< - PreTransfer, - "preTransfer" - > & - BalanceCheck & - GetFeeMargins & - MintNft & { - nftList(owner: string, contract: string): Promise[]>; - }; - -export type DfinityParams = { - agent: HttpAgent; - bridgeContract: Principal; - xpnftId: Principal; - notifier: EvNotifier; - feeMargin: FeeMargins; - umt: Principal; -}; - -export async function dfinityHelper( - args: DfinityParams -): Promise { - const ledger = LedgerCanister.create({ agent: args.agent }); - - const minter: ActorSubclass<_SERVICE> = Actor.createActor(idlFactory, { - agent: args.agent, - canisterId: args.bridgeContract, - }); - - async function transferTxFee(amt: BigNumber): Promise { - return await ledger.transfer({ - to: AccountIdentifier.fromPrincipal({ - principal: args.bridgeContract, - }), - amount: ICP.fromE8s(BigInt(amt.toString())), - }); - } - const to32bits = (num: number) => { - let b = new ArrayBuffer(4); - new DataView(b).setUint32(0, num); - 1 << 5; - return Array.from(new Uint8Array(b)); - }; - - const tokenIdentifier = (principal: string, index: number) => { - const padding = Buffer.from("\x0Atid"); - const array = new Uint8Array([ - ...padding, - ...Principal.fromText(principal).toUint8Array(), - ...to32bits(index), - ]); - return Principal.fromUint8Array(array).toText(); - }; - - // async function waitActionId(requestId: RequestId) { - // const pollStrat = polling.defaultStrategy(); - // const resp = await polling.pollForResponse( - // args.agent, - // args.bridgeContract, - // requestId, - // pollStrat - // ); - - // return decode([Nat], resp)[0].toString() as string; - // } - - return { - XpNft: args.xpnftId.toString(), - getNonce: () => Chain.DFINITY, - estimateValidateTransferNft: async () => new BigNumber(0), // TODO - estimateValidateUnfreezeNft: async () => new BigNumber(0), // TODO - async validateAddress(adr) { - try { - Principal.fromText(adr); - return true; - } catch { - return false; - } - }, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { - args.agent.replaceIdentity(sender); - - const txFeeBlock = await transferTxFee(txFees); - - const actionId = await minter.freeze_nft( - txFeeBlock, - Principal.fromText(id.native.canisterId), - BigInt(id.native.tokenId), - BigInt(chain_nonce), - to, - mintWith - ); - - await args.notifier.notifyDfinity(actionId.toString()); - - return "NO TX RESP YET"; - }, - async mintNft(owner, options) { - const canister = Principal.fromText( - options.canisterId ? options.canisterId : args.umt.toText() - ); - let mint = await args.agent.call(canister, { - methodName: "mintNFT", - arg: encode( - [MintRequest], - [ - { - metadata: [[...Buffer.from(options.uri)]], - to: { - principal: owner.getPrincipal(), - }, - } as MintRequest, - ] - ), - }); - return mint; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - args.agent.replaceIdentity(sender); - - const txFeeBlock = await transferTxFee(txFees); - - const actionId = await minter.withdraw_nft( - txFeeBlock, - Principal.fromText(id.native.canisterId), - BigInt(id.native.tokenId), - BigInt(nonce), - to - ); - - await args.notifier.notifyDfinity(actionId.toString()); - - return "NO TX RESP YET"; - }, - - /// owner = principal of owner - async nftList(owner, contract) { - let aid = AccountIdentifier.fromPrincipal({ - principal: Principal.fromText(owner), - }); - let tokens: NftInfo[] = []; - const response = await args.agent.query(contract, { - methodName: "getTokens", - arg: encode([], []), - }); - if ("reply" in response) { - let decoded = decode( - [IDL.Vec(IDL.Tuple(Nat32, Metadata))], - response.reply.arg - )[0] as any[]; - await Promise.all( - decoded.map(async (e) => { - let [tokenId, metadata]: [number, any] = e; - let tid = tokenIdentifier(contract, tokenId); - const ownerQuery = await args.agent.query(contract, { - methodName: "bearer", - arg: encode([Text], [tid]), - }); - if ("reply" in ownerQuery) { - const response = decode( - [Result_Bearer], - ownerQuery.reply.arg - )[0] as Record; - if ("ok" in response) { - if (response.ok === aid.toHex()) { - tokens.push({ - collectionIdent: contract, - native: { - canisterId: contract, - tokenId: tokenId.toString(), - }, - uri: Buffer.from( - metadata["nonfungible"]["metadata"][0] ?? [] - ).toString("utf-8"), - }); - } - } - } - }) - ); - } - return tokens; - }, - async preTransfer(sender, nft) { - args.agent.replaceIdentity(sender); - - const tid = tokenIdentifier( - nft.collectionIdent, - Number(nft.native.tokenId) - ); - - const nftContract = Principal.fromText(nft.native.canisterId); - const approvedQuery = await args.agent.query(nftContract, { - methodName: "getAllowances", - arg: encode([Text], [tid]), - }); - - if ("reply" in approvedQuery) { - let decoded: Array<[number, Principal]> = decode( - [Vec(Tuple(Nat32, new PrincipalClass()))], - approvedQuery.reply.arg - )[0] as any; - for (const item of decoded) { - if (item[0] === Number(nft.native.tokenId)) { - if (item[1].toText() === args.bridgeContract.toText()) { - return undefined; - } - } - } - } - - const approveCall = await args.agent.call(nftContract, { - methodName: "approve", - arg: encode( - [ApproveRequest], - [ - { - token: tid, - allowance: BigInt(1), - spender: args.bridgeContract, - subaccount: [], - }, - ] - ), - }); - - return Buffer.from(approveCall.requestId).toString("hex"); - }, - getFeeMargin() { - return args.feeMargin; - }, - async balance(address) { - const bal = await ledger.accountBalance({ - accountIdentifier: AccountIdentifier.fromPrincipal({ - principal: Principal.fromText(address), - }), - }); - - const e8s = bal.toE8s().toString(); - - return new BigNumber(e8s); - }, - }; -} diff --git a/dist/helpers/dfinity/idl.d.ts b/dist/helpers/dfinity/idl.d.ts deleted file mode 100644 index 102e4ebec..000000000 --- a/dist/helpers/dfinity/idl.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const idlFactory: ({ IDL }: { IDL: any }) => any; -//# sourceMappingURL=idl.d.ts.map diff --git a/dist/helpers/dfinity/idl.d.ts.map b/dist/helpers/dfinity/idl.d.ts.map deleted file mode 100644 index e4bd27e68..000000000 --- a/dist/helpers/dfinity/idl.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/idl.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;SAAoB,GAAG;SAwK7C,CAAC"} \ No newline at end of file diff --git a/dist/helpers/dfinity/idl.js b/dist/helpers/dfinity/idl.js deleted file mode 100644 index 06bdb6607..000000000 --- a/dist/helpers/dfinity/idl.js +++ /dev/null @@ -1,174 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.idlFactory = void 0; -const idlFactory = ({ IDL }) => { - const ValidateWhitelistDip721 = IDL.Record({ - dip_contract: IDL.Principal, - }); - const ValidateCleanLogs = IDL.Record({ - from_action: IDL.Nat, - to_action: IDL.Nat, - }); - const ValidateTransferNft = IDL.Record({ - to: IDL.Principal, - mint_with: IDL.Principal, - token_url: IDL.Text, - }); - const ValidateTransferNftBatch = IDL.Record({ - to: IDL.Principal, - mint_with: IDL.Vec(IDL.Principal), - token_urls: IDL.Vec(IDL.Text), - }); - const ValidateUnfreezeNft = IDL.Record({ - to: IDL.Principal, - dip_contract: IDL.Principal, - token_id: IDL.Nat, - }); - const ValidateUnfreezeNftBatch = IDL.Record({ - to: IDL.Principal, - dip_contracts: IDL.Vec(IDL.Principal), - token_ids: IDL.Vec(IDL.Nat), - }); - const Config = IDL.Record({ - event_cnt: IDL.Nat, - chain_nonce: IDL.Nat64, - group_key: IDL.Vec(IDL.Nat8), - paused: IDL.Bool, - }); - const BridgeEventCtx = IDL.Record({ - to: IDL.Text, - action_id: IDL.Nat, - tx_fee: IDL.Nat64, - chain_nonce: IDL.Nat64, - }); - const UnfreezeNftBatch = IDL.Record({ - uris: IDL.Vec(IDL.Text), - token_ids: IDL.Vec(IDL.Nat), - burner: IDL.Principal, - }); - const UnfreezeNft = IDL.Record({ - uri: IDL.Text, - token_id: IDL.Nat, - burner: IDL.Principal, - }); - const TransferNft = IDL.Record({ - dip721_contract: IDL.Principal, - token_id: IDL.Nat, - mint_with: IDL.Text, - token_data: IDL.Text, - }); - const TransferNftBatch = IDL.Record({ - dip721_contract: IDL.Principal, - token_datas: IDL.Vec(IDL.Text), - mint_with: IDL.Text, - token_ids: IDL.Vec(IDL.Nat), - }); - const BridgeEvent = IDL.Variant({ - UnfreezeNftBatch: UnfreezeNftBatch, - UnfreezeNft: UnfreezeNft, - TransferNft: TransferNft, - TransferNftBatch: TransferNftBatch, - }); - const ValidateSetGroupKey = IDL.Record({ group_key: IDL.Vec(IDL.Nat8) }); - const ValidateSetPause = IDL.Record({ pause: IDL.Bool }); - const ValidateWithdrawFees = IDL.Record({ to: IDL.Principal }); - return IDL.Service({ - add_whitelist: IDL.Func( - [IDL.Nat, ValidateWhitelistDip721, IDL.Vec(IDL.Nat8)], - [], - [] - ), - clean_logs: IDL.Func( - [IDL.Nat, ValidateCleanLogs, IDL.Vec(IDL.Nat8)], - [], - [] - ), - encode_validate_transfer_nft: IDL.Func( - [IDL.Nat, ValidateTransferNft], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - encode_validate_transfer_nft_batch: IDL.Func( - [IDL.Nat, ValidateTransferNftBatch], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - encode_validate_unfreeze_nft: IDL.Func( - [IDL.Nat, ValidateUnfreezeNft], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - encode_validate_unfreeze_nft_batch: IDL.Func( - [IDL.Nat, ValidateUnfreezeNftBatch], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - freeze_nft: IDL.Func( - [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text, IDL.Text], - [IDL.Nat], - [] - ), - freeze_nft_batch: IDL.Func( - [ - IDL.Nat64, - IDL.Principal, - IDL.Vec(IDL.Nat), - IDL.Nat64, - IDL.Text, - IDL.Text, - ], - [IDL.Nat], - [] - ), - get_config: IDL.Func([], [Config], ["query"]), - get_event: IDL.Func( - [IDL.Nat], - [IDL.Opt(IDL.Tuple(BridgeEventCtx, BridgeEvent))], - ["query"] - ), - is_whitelisted: IDL.Func([IDL.Principal], [IDL.Bool], ["query"]), - set_group_key: IDL.Func( - [IDL.Nat, ValidateSetGroupKey, IDL.Vec(IDL.Nat8)], - [], - [] - ), - set_pause: IDL.Func([IDL.Nat, ValidateSetPause, IDL.Vec(IDL.Nat8)], [], []), - validate_transfer_nft: IDL.Func( - [IDL.Nat, ValidateTransferNft, IDL.Vec(IDL.Nat8)], - [IDL.Nat32], - [] - ), - validate_transfer_nft_batch: IDL.Func( - [IDL.Nat, ValidateTransferNftBatch, IDL.Vec(IDL.Nat8)], - [], - [] - ), - validate_unfreeze_nft: IDL.Func( - [IDL.Nat, ValidateUnfreezeNft, IDL.Vec(IDL.Nat8)], - [], - [] - ), - validate_unfreeze_nft_batch: IDL.Func( - [IDL.Nat, ValidateUnfreezeNftBatch, IDL.Vec(IDL.Nat8)], - [], - [] - ), - withdraw_fees: IDL.Func( - [IDL.Nat, ValidateWithdrawFees, IDL.Vec(IDL.Nat8)], - [IDL.Nat64], - [] - ), - withdraw_nft: IDL.Func( - [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text], - [IDL.Nat], - [] - ), - withdraw_nft_batch: IDL.Func( - [IDL.Nat64, IDL.Principal, IDL.Vec(IDL.Nat), IDL.Nat64, IDL.Text], - [IDL.Nat], - [] - ), - }); -}; -exports.idlFactory = idlFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvZGZpbml0eS9pZGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQU8sTUFBTSxVQUFVLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBZ0IsRUFBRSxFQUFFO0lBQ2xELE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUN6QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFNBQVM7S0FDNUIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ25DLFdBQVcsRUFBRSxHQUFHLENBQUMsR0FBRztRQUNwQixTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUc7S0FDbkIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3JDLEVBQUUsRUFBRSxHQUFHLENBQUMsU0FBUztRQUNqQixTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDeEIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJO0tBQ3BCLENBQUMsQ0FBQztJQUNILE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUMxQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDakIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0tBQzlCLENBQUMsQ0FBQztJQUNILE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNyQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDakIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQzNCLFFBQVEsRUFBRSxHQUFHLENBQUMsR0FBRztLQUNsQixDQUFDLENBQUM7SUFDSCxNQUFNLHdCQUF3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 diff --git a/dist/helpers/dfinity/idl.ts b/dist/helpers/dfinity/idl.ts deleted file mode 100644 index b55c09e5f..000000000 --- a/dist/helpers/dfinity/idl.ts +++ /dev/null @@ -1,169 +0,0 @@ -export const idlFactory = ({ IDL }: { IDL: any }) => { - const ValidateWhitelistDip721 = IDL.Record({ - dip_contract: IDL.Principal, - }); - const ValidateCleanLogs = IDL.Record({ - from_action: IDL.Nat, - to_action: IDL.Nat, - }); - const ValidateTransferNft = IDL.Record({ - to: IDL.Principal, - mint_with: IDL.Principal, - token_url: IDL.Text, - }); - const ValidateTransferNftBatch = IDL.Record({ - to: IDL.Principal, - mint_with: IDL.Vec(IDL.Principal), - token_urls: IDL.Vec(IDL.Text), - }); - const ValidateUnfreezeNft = IDL.Record({ - to: IDL.Principal, - dip_contract: IDL.Principal, - token_id: IDL.Nat, - }); - const ValidateUnfreezeNftBatch = IDL.Record({ - to: IDL.Principal, - dip_contracts: IDL.Vec(IDL.Principal), - token_ids: IDL.Vec(IDL.Nat), - }); - const Config = IDL.Record({ - event_cnt: IDL.Nat, - chain_nonce: IDL.Nat64, - group_key: IDL.Vec(IDL.Nat8), - paused: IDL.Bool, - }); - const BridgeEventCtx = IDL.Record({ - to: IDL.Text, - action_id: IDL.Nat, - tx_fee: IDL.Nat64, - chain_nonce: IDL.Nat64, - }); - const UnfreezeNftBatch = IDL.Record({ - uris: IDL.Vec(IDL.Text), - token_ids: IDL.Vec(IDL.Nat), - burner: IDL.Principal, - }); - const UnfreezeNft = IDL.Record({ - uri: IDL.Text, - token_id: IDL.Nat, - burner: IDL.Principal, - }); - const TransferNft = IDL.Record({ - dip721_contract: IDL.Principal, - token_id: IDL.Nat, - mint_with: IDL.Text, - token_data: IDL.Text, - }); - const TransferNftBatch = IDL.Record({ - dip721_contract: IDL.Principal, - token_datas: IDL.Vec(IDL.Text), - mint_with: IDL.Text, - token_ids: IDL.Vec(IDL.Nat), - }); - const BridgeEvent = IDL.Variant({ - UnfreezeNftBatch: UnfreezeNftBatch, - UnfreezeNft: UnfreezeNft, - TransferNft: TransferNft, - TransferNftBatch: TransferNftBatch, - }); - const ValidateSetGroupKey = IDL.Record({ group_key: IDL.Vec(IDL.Nat8) }); - const ValidateSetPause = IDL.Record({ pause: IDL.Bool }); - const ValidateWithdrawFees = IDL.Record({ to: IDL.Principal }); - return IDL.Service({ - add_whitelist: IDL.Func( - [IDL.Nat, ValidateWhitelistDip721, IDL.Vec(IDL.Nat8)], - [], - [] - ), - clean_logs: IDL.Func( - [IDL.Nat, ValidateCleanLogs, IDL.Vec(IDL.Nat8)], - [], - [] - ), - encode_validate_transfer_nft: IDL.Func( - [IDL.Nat, ValidateTransferNft], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - encode_validate_transfer_nft_batch: IDL.Func( - [IDL.Nat, ValidateTransferNftBatch], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - encode_validate_unfreeze_nft: IDL.Func( - [IDL.Nat, ValidateUnfreezeNft], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - encode_validate_unfreeze_nft_batch: IDL.Func( - [IDL.Nat, ValidateUnfreezeNftBatch], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - freeze_nft: IDL.Func( - [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text, IDL.Text], - [IDL.Nat], - [] - ), - freeze_nft_batch: IDL.Func( - [ - IDL.Nat64, - IDL.Principal, - IDL.Vec(IDL.Nat), - IDL.Nat64, - IDL.Text, - IDL.Text, - ], - [IDL.Nat], - [] - ), - get_config: IDL.Func([], [Config], ["query"]), - get_event: IDL.Func( - [IDL.Nat], - [IDL.Opt(IDL.Tuple(BridgeEventCtx, BridgeEvent))], - ["query"] - ), - is_whitelisted: IDL.Func([IDL.Principal], [IDL.Bool], ["query"]), - set_group_key: IDL.Func( - [IDL.Nat, ValidateSetGroupKey, IDL.Vec(IDL.Nat8)], - [], - [] - ), - set_pause: IDL.Func([IDL.Nat, ValidateSetPause, IDL.Vec(IDL.Nat8)], [], []), - validate_transfer_nft: IDL.Func( - [IDL.Nat, ValidateTransferNft, IDL.Vec(IDL.Nat8)], - [IDL.Nat32], - [] - ), - validate_transfer_nft_batch: IDL.Func( - [IDL.Nat, ValidateTransferNftBatch, IDL.Vec(IDL.Nat8)], - [], - [] - ), - validate_unfreeze_nft: IDL.Func( - [IDL.Nat, ValidateUnfreezeNft, IDL.Vec(IDL.Nat8)], - [], - [] - ), - validate_unfreeze_nft_batch: IDL.Func( - [IDL.Nat, ValidateUnfreezeNftBatch, IDL.Vec(IDL.Nat8)], - [], - [] - ), - withdraw_fees: IDL.Func( - [IDL.Nat, ValidateWithdrawFees, IDL.Vec(IDL.Nat8)], - [IDL.Nat64], - [] - ), - withdraw_nft: IDL.Func( - [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text], - [IDL.Nat], - [] - ), - withdraw_nft_batch: IDL.Func( - [IDL.Nat64, IDL.Principal, IDL.Vec(IDL.Nat), IDL.Nat64, IDL.Text], - [IDL.Nat], - [] - ), - }); -}; diff --git a/dist/helpers/dfinity/minter.did.d.ts b/dist/helpers/dfinity/minter.did.d.ts deleted file mode 100644 index d5bfeeb4b..000000000 --- a/dist/helpers/dfinity/minter.did.d.ts +++ /dev/null @@ -1,172 +0,0 @@ -import type { Principal } from "@dfinity/principal"; -export type BridgeEvent = - | { UnfreezeNftBatch: UnfreezeNftBatch } - | { UnfreezeNft: UnfreezeNft } - | { TransferNft: TransferNft } - | { TransferNftBatch: TransferNftBatch }; -export interface BridgeEventCtx { - to: string; - action_id: bigint; - tx_fee: bigint; - chain_nonce: bigint; -} -export interface Config { - event_cnt: bigint; - chain_nonce: bigint; - group_key: Array; - paused: boolean; -} -export interface TransferNft { - dip721_contract: Principal; - token_id: bigint; - mint_with: string; - token_data: string; -} -export interface TransferNftBatch { - dip721_contract: Principal; - token_datas: Array; - mint_with: string; - token_ids: Array; -} -export interface UnfreezeNft { - uri: string; - token_id: bigint; - burner: Principal; -} -export interface UnfreezeNftBatch { - uris: Array; - token_ids: Array; - burner: Principal; -} -export interface ValidateCleanLogs { - from_action: bigint; - to_action: bigint; -} -export interface ValidateSetGroupKey { - group_key: Array; -} -export interface ValidateSetPause { - pause: boolean; -} -export interface ValidateTransferNft { - to: Principal; - mint_with: Principal; - token_url: string; -} -export interface ValidateTransferNftBatch { - to: Principal; - mint_with: Array; - token_urls: Array; -} -export interface ValidateUnfreezeNft { - to: Principal; - dip_contract: Principal; - token_id: bigint; -} -export interface ValidateUnfreezeNftBatch { - to: Principal; - dip_contracts: Array; - token_ids: Array; -} -export interface ValidateWhitelistDip721 { - dip_contract: Principal; -} -export interface ValidateWithdrawFees { - to: Principal; -} -export interface _SERVICE { - add_whitelist: ( - arg_0: bigint, - arg_1: ValidateWhitelistDip721, - arg_2: Array - ) => Promise; - clean_logs: ( - arg_0: bigint, - arg_1: ValidateCleanLogs, - arg_2: Array - ) => Promise; - encode_validate_transfer_nft: ( - arg_0: bigint, - arg_1: ValidateTransferNft - ) => Promise>; - encode_validate_transfer_nft_batch: ( - arg_0: bigint, - arg_1: ValidateTransferNftBatch - ) => Promise>; - encode_validate_unfreeze_nft: ( - arg_0: bigint, - arg_1: ValidateUnfreezeNft - ) => Promise>; - encode_validate_unfreeze_nft_batch: ( - arg_0: bigint, - arg_1: ValidateUnfreezeNftBatch - ) => Promise>; - freeze_nft: ( - arg_0: bigint, - arg_1: Principal, - arg_2: bigint, - arg_3: bigint, - arg_4: string, - arg_5: string - ) => Promise; - freeze_nft_batch: ( - arg_0: bigint, - arg_1: Principal, - arg_2: Array, - arg_3: bigint, - arg_4: string, - arg_5: string - ) => Promise; - get_config: () => Promise; - get_event: (arg_0: bigint) => Promise<[] | [[BridgeEventCtx, BridgeEvent]]>; - is_whitelisted: (arg_0: Principal) => Promise; - set_group_key: ( - arg_0: bigint, - arg_1: ValidateSetGroupKey, - arg_2: Array - ) => Promise; - set_pause: ( - arg_0: bigint, - arg_1: ValidateSetPause, - arg_2: Array - ) => Promise; - validate_transfer_nft: ( - arg_0: bigint, - arg_1: ValidateTransferNft, - arg_2: Array - ) => Promise; - validate_transfer_nft_batch: ( - arg_0: bigint, - arg_1: ValidateTransferNftBatch, - arg_2: Array - ) => Promise; - validate_unfreeze_nft: ( - arg_0: bigint, - arg_1: ValidateUnfreezeNft, - arg_2: Array - ) => Promise; - validate_unfreeze_nft_batch: ( - arg_0: bigint, - arg_1: ValidateUnfreezeNftBatch, - arg_2: Array - ) => Promise; - withdraw_fees: ( - arg_0: bigint, - arg_1: ValidateWithdrawFees, - arg_2: Array - ) => Promise; - withdraw_nft: ( - arg_0: bigint, - arg_1: Principal, - arg_2: bigint, - arg_3: bigint, - arg_4: string - ) => Promise; - withdraw_nft_batch: ( - arg_0: bigint, - arg_1: Principal, - arg_2: Array, - arg_3: bigint, - arg_4: string - ) => Promise; -} diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts deleted file mode 100644 index 702c0e82b..000000000 --- a/dist/helpers/elrond.d.ts +++ /dev/null @@ -1,190 +0,0 @@ -/** - * Elrond Implementation for cross chain traits - * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp - * Note that Unsigned Transactions need to be manually handled after they have been added to the block - * @module - */ -import { - Address, - ExtensionProvider, - ISigner, - Transaction, - WalletConnectProvider, -} from "@elrondnetwork/erdjs"; -import BigNumber from "bignumber.js"; -import { - BalanceCheck, - MintNft, - TransferNftForeign, - UnfreezeForeignNft, - TransferNftForeignBatch, - UnfreezeForeignNftBatch, - EstimateTxFeesBatch, - GetFeeMargins, - FeeMargins, - IsContractAddress, - GetTokenURI, -} from "./chain"; -import { - ChainNonceGet, - EstimateTxFees, - ExtractAction, - ExtractTxnStatus, - PreTransfer, - PreTransferRawTxn, - ValidateAddress, -} from ".."; -import { EvNotifier } from "../notifier"; -declare type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; -/** - * Information associated with an ESDT Token - */ -export declare type EsdtTokenInfo = { - readonly balance: 1 | string; - readonly tokenIdentifier: string; -}; -declare type BEsdtNftInfo = { - readonly attributes?: string[]; - readonly creator: string; - readonly name: string; - readonly nonce: number; - readonly royalties: string; - readonly uris: string[]; -}; -/** - * Information associated with an ESDT NFT - */ -export declare type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; -/** - * arguments required to issue an NFT - */ -export declare type NftIssueArgs = { - readonly identifier: string; - readonly uris: Array; - readonly name: string; - readonly quantity?: number; - readonly royalties?: number; - readonly hash?: string; - readonly attrs?: string; -}; -/** - * Utility for issuing ESDT which supports NFT minting - */ -export interface IssueESDTNFT { - /** - * Issue a new ESDT supporting NFTs - * - * @param sender Owner of this ESDT - * @param name Name of the ESDT - * @param ticker Ticker of the ESDT - * @param canFreeze Wheteher this ESDT can be frozen - * @param canWipe Whether this ESDT can be wiped - * @param canTransferNFTCreateRole Whether the NFT Creation role can be transferred - * - * @returns ticker of the esdt - */ - issueESDTNft( - sender: ElrondSigner, - name: string, - ticker: string, - canFreeze: boolean | undefined, - canWipe: boolean | undefined, - canTransferNFTCreateRole: boolean | undefined - ): Promise; -} -/** - * Possible roles for an ESDT - * - * ESDTRoleNFTCreate: Allow creating NFTs - * ESDTRoleNFTBurn: Allow burning NFTs - * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) - */ -export declare type ESDTRole = - | "ESDTRoleNFTCreate" - | "ESDTRoleNFTBurn" - | "ESDTRoleNFTAddQuantity"; -/** - * Utility for setting ESDT roles - */ -export interface SetESDTRoles { - /** - * - * Set the roles for a given account for an esdt - * - * @param sender Target account - * @param token ESDT Identifier - * @param roles Roles to set - */ - setESDTRole( - sender: ElrondSigner, - token: string, - target: Address, - roles: ESDTRole[] - ): Promise; - transferESDTOwnership( - sender: ElrondSigner, - token: string, - target: Address - ): Promise; -} -export interface ElrondRawUnsignedTxn { - readonly nonce: number; - readonly value: string; - readonly receiver: string; - readonly sender: string; - readonly gasPrice: number; - readonly gasLimit: number; - readonly data?: string; - readonly chainID: string; - readonly version: number; - readonly options?: number; - readonly signature?: string; -} -/** - * Traits implemented by this module - */ -export declare type ElrondHelper = BalanceCheck & - TransferNftForeign & - UnfreezeForeignNft & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - IssueESDTNFT & - MintNft & { - mintableEsdts(address: Address): Promise; - } & ChainNonceGet & - ValidateAddress & - ExtractAction & - PreTransfer & - EstimateTxFees & - EstimateTxFeesBatch & - PreTransferRawTxn & - ExtractTxnStatus & - SetESDTRoles & { - XpNft: string; - } & GetFeeMargins & { - wegldBalance(address: string): Promise; - unwrapWegld(sender: ElrondSigner, amt: BigNumber): Promise; - } & IsContractAddress & - GetTokenURI; -/** - * Create an object implementing cross chain utilities for elrond - * - * @param node_uri URI of the elrond node - * @param minter_address Address of the minter smart contract - * @param middleware_uri REST API of elrond-event-middleware - * @param esdt_nft Identifier of the ESDT NFT Wrapper - */ -export interface ElrondParams { - node_uri: string; - notifier: EvNotifier; - minter_address: string; - esdt_swap_address: string; - esdt_nft: string; - esdt_swap: string; - feeMargin: FeeMargins; -} -export declare function elrondHelperFactory( - elrondParams: ElrondParams -): Promise; -export {}; -//# sourceMappingURL=elrond.d.ts.map diff --git a/dist/helpers/elrond.d.ts.map b/dist/helpers/elrond.d.ts.map deleted file mode 100644 index 07e725763..000000000 --- a/dist/helpers/elrond.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"elrond.d.ts","sourceRoot":"","sources":["../../src/helpers/elrond.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js deleted file mode 100644 index 206e7ed20..000000000 --- a/dist/helpers/elrond.js +++ /dev/null @@ -1,647 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.elrondHelperFactory = void 0; -/** - * Elrond Implementation for cross chain traits - * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp - * Note that Unsigned Transactions need to be manually handled after they have been added to the block - * @module - */ -const erdjs_1 = require("@elrondnetwork/erdjs"); -const axios_1 = __importDefault(require("axios")); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const chain_1 = require("./chain"); -const __1 = require(".."); -const js_base64_1 = require("js-base64"); -const ESDT_ISSUE_ADDR = new erdjs_1.Address( - "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" -); -const ESDT_ISSUE_COST = "50000000000000000"; -const NFT_TRANSFER_COST = new bignumber_js_1.default(350000000); -const NFT_UNFREEZE_COST = new bignumber_js_1.default(350000000); -async function elrondHelperFactory(elrondParams) { - const provider = new erdjs_1.ProxyProvider(elrondParams.node_uri); - await erdjs_1.NetworkConfig.getDefault().sync(provider); - const mintContract = new erdjs_1.Address(elrondParams.minter_address); - const swapContract = new erdjs_1.Address(elrondParams.esdt_swap_address); - const providerRest = axios_1.default.create({ - baseURL: elrondParams.node_uri, - }); - const esdtNftHex = Buffer.from(elrondParams.esdt_nft, "utf-8"); - const esdtSwaphex = Buffer.from(elrondParams.esdt_swap, "utf-8"); - const networkConfig = await provider.getNetworkConfig(); - const gasPriceModif = - networkConfig.MinGasPrice.valueOf() * - networkConfig.GasPriceModifier.valueOf(); - async function notifyValidator(txn, sender, uri, action_id) { - await elrondParams.notifier.notifyElrond( - txn.getHash().toString(), - sender, - uri, - action_id - ); - } - const syncAccount = async (signer) => { - const account = new erdjs_1.Account(await getAddress(signer)); - await account.sync(provider); - return account; - }; - const signAndSend = async (signer, tx) => { - const acc = await syncAccount(signer); - tx.setNonce(acc.nonce); - let stx; - if (signer instanceof erdjs_1.WalletConnectProvider) { - const txs = await signer.signTransactions([tx]); - stx = txs[0]; - } else if (signer instanceof erdjs_1.ExtensionProvider) { - stx = await signer.signTransaction(tx); - } else if (signer instanceof erdjs_1.UserSigner) { - await signer.sign(tx); - stx = tx; - } else { - //@ts-ignore - stx = await signer.signTransaction(tx); - } - try { - await stx.send(provider); - } catch (e) { - if (e.message.includes("lowerNonceInTx")) { - throw (0, chain_1.ConcurrentSendError)(); - } else { - throw e; - } - } - return stx; - }; - const transactionResult = async (tx_hash) => { - const uri = `/transaction/${tx_hash.toString()}?withResults=true`; - let tries = 0; - while (tries < 10) { - tries += 1; - let err; - // TODO: type safety - const res = await providerRest.get(uri).catch((e) => (err = e)); - if (err) { - await new Promise((r) => setTimeout(r, 3000)); - continue; - } - const data = res.data; - if (data["code"] != "successful") { - throw Error("failed to execute txn"); - } - const tx_info = data["data"]["transaction"]; - if (tx_info["status"] == "pending") { - await new Promise((r) => setTimeout(r, 5000)); - continue; - } - if (tx_info["status"] != "success") { - throw Error("failed to execute txn"); - } - return tx_info; - } - throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); - }; - const doEgldSwap = async (sender, nft, value) => { - const esdts = await listEsdt((await sender.getAddress()).toString()); - const res = esdts[nft.native.nonce]; - if ( - res === undefined || - new bignumber_js_1.default(res.balance).lt(value) - ) { - const utx = new erdjs_1.Transaction({ - receiver: swapContract, - gasLimit: new erdjs_1.GasLimit(300000000), - value: new erdjs_1.Balance( - erdjs_1.Egld.getToken(), - erdjs_1.Egld.getNonce(), - new bignumber_js_1.default(value.toString()) - ), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("wrapEgld")) - .build(), - }); - const tx = await signAndSend(sender, utx); - await transactionResult(tx.getHash()); - return tx.getHash().toString(); - } - return undefined; - }; - const unsignedMintNftTxn = ( - owner, - { identifier, quantity, name, royalties, hash, attrs, uris } - ) => { - let baseArgs = erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("ESDTNFTCreate")) - .addArg( - new erdjs_1.TokenIdentifierValue(Buffer.from(identifier, "utf-8")) - ) - .addArg( - new erdjs_1.BigUIntValue(new bignumber_js_1.default(quantity ?? 1)) - ) - .addArg(new erdjs_1.BytesValue(Buffer.from(name, "utf-8"))) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(royalties ?? 0))) - .addArg( - new erdjs_1.BytesValue( - hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0) - ) - ) - .addArg( - new erdjs_1.BytesValue( - attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0) - ) - ); - for (const uri of uris) { - baseArgs = baseArgs.addArg( - new erdjs_1.BytesValue(Buffer.from(uri, "utf-8")) - ); - } - return new erdjs_1.Transaction({ - receiver: owner, - gasLimit: new erdjs_1.GasLimit(70000000), - data: baseArgs.build(), - }); - }; - function tokenIdentReal(tokenIdentifier) { - const base = tokenIdentifier.split("-"); - base.pop(); - return base.join("-"); - } - const unsignedTransferNftTxn = ( - chain_nonce, - address, - to, - { tokenIdentifier, nonce }, - tx_fees, - mintWith - ) => { - return new erdjs_1.Transaction({ - receiver: address, - gasLimit: new erdjs_1.GasLimit(300000000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) - .addArg(new erdjs_1.AddressValue(mintContract)) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(2))) - .addArg( - new erdjs_1.TokenIdentifierValue( - Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") - ) - ) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(nonce))) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(1))) - .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(0x0))) - .addArg(new erdjs_1.BigUIntValue(tx_fees)) - .addArg(new erdjs_1.BytesValue(Buffer.from("freezeSendNft", "ascii"))) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) - .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) - .addArg(new erdjs_1.BytesValue(Buffer.from(mintWith, "ascii"))) - .build(), - }); - }; - const unsignedUnfreezeNftTxn = ( - address, - to, - { tokenIdentifier, nonce }, - tx_fees, - chain_nonce - ) => { - return new erdjs_1.Transaction({ - receiver: address, - gasLimit: new erdjs_1.GasLimit(300000000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) - .addArg(new erdjs_1.AddressValue(mintContract)) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(2))) - .addArg( - new erdjs_1.TokenIdentifierValue( - Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") - ) - ) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(nonce))) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(1))) - .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(0x0))) - .addArg(new erdjs_1.BigUIntValue(tx_fees)) - .addArg(new erdjs_1.BytesValue(Buffer.from("withdrawNft", "ascii"))) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) - .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; - const listEsdt = async (owner) => { - const raw = await providerRest(`/address/${owner}/esdt`); - const dat = raw.data.data.esdts; - return dat; - }; - const unsignedIssueESDTNft = ( - name, - ticker, - canFreeze, - canWipe, - canTransferNFTCreateRole - ) => { - let baseArgs = erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("issueNonFungible")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(name, "utf-8"))) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); - if (canFreeze !== undefined) { - baseArgs = baseArgs - .addArg(new erdjs_1.BytesValue(Buffer.from("canFreeze", "ascii"))) - .addArg( - new erdjs_1.BytesValue( - Buffer.from(canFreeze ? "true" : "false", "ascii") - ) - ); - } - if (canWipe !== undefined) { - baseArgs = baseArgs - .addArg(new erdjs_1.BytesValue(Buffer.from("canWipe", "ascii"))) - .addArg( - new erdjs_1.BytesValue( - Buffer.from(canWipe ? "true" : "false", "ascii") - ) - ); - } - if (canTransferNFTCreateRole !== undefined) { - baseArgs = baseArgs - .addArg(new erdjs_1.BytesValue(Buffer.from("canChangeOwner", "ascii"))) - .addArg( - new erdjs_1.BytesValue( - Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") - ) - ); - } - return new erdjs_1.Transaction({ - receiver: ESDT_ISSUE_ADDR, - value: new erdjs_1.Balance( - erdjs_1.Egld.getToken(), - erdjs_1.Egld.getNonce(), - new bignumber_js_1.default(ESDT_ISSUE_COST.toString()) - ), - gasLimit: new erdjs_1.GasLimit(60000000), - data: baseArgs.build(), - }); - }; - const unsignedSetESDTRoles = (token, target, roles) => { - let baseArgs = erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("setSpecialRole")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token))) - .addArg(new erdjs_1.AddressValue(target)); - for (const role of roles) { - baseArgs = baseArgs.addArg( - new erdjs_1.BytesValue(Buffer.from(role, "utf-8")) - ); - } - return new erdjs_1.Transaction({ - receiver: ESDT_ISSUE_ADDR, - gasLimit: new erdjs_1.GasLimit(70000000), - data: baseArgs.build(), - }); - }; - async function extractAction(tx) { - let err; - await tx.awaitExecuted(provider).catch((e) => (err = e)); - if (err) { - await new Promise((r) => setTimeout(r, 3000)); - return await extractAction(tx); - } - const txr = await transactionResult(tx.getHash()); - const id = filterEventId(txr["smartContractResults"]); - return id.toString(); - } - function estimateGas(base_fees) { - return base_fees.multipliedBy(gasPriceModif); // assume execution takes about twice as much gas fees - } - async function getAddress(sender) { - return new erdjs_1.Address(await sender.getAddress()); - } - return { - XpNft: elrondParams.esdt_nft, - async balance(address) { - const wallet = new erdjs_1.Account(new erdjs_1.Address(address)); - await wallet.sync(provider); - return wallet.balance.valueOf(); - }, - async isContractAddress(address) { - return erdjs_1.Address.fromString(address).isContractAddress(); - }, - getFeeMargin() { - return elrondParams.feeMargin; - }, - async extractTxnStatus(txn) { - const status = await provider.getTransactionStatus( - new erdjs_1.TransactionHash(txn) - ); - if (status.isPending()) { - return chain_1.TransactionStatus.PENDING; - } - if (status.isSuccessful()) { - return chain_1.TransactionStatus.SUCCESS; - } - if (status.isFailed()) { - return chain_1.TransactionStatus.FAILURE; - } - return chain_1.TransactionStatus.UNKNOWN; - }, - preTransfer: doEgldSwap, - preUnfreeze: doEgldSwap, - extractAction, - async transferNftToForeign( - sender, - chain_nonce, - to, - info, - txFees, - mintWith - ) { - const txu = unsignedTransferNftTxn( - chain_nonce, - await getAddress(sender), - to, - info.native, - new bignumber_js_1.default(txFees.toString()), - mintWith - ); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - [info.uri], - undefined - // await extractAction(tx) - ); - return tx; - }, - async unfreezeWrappedNft(sender, to, nft, txFees, nonce) { - console.log(`Unfreezing`); - const txu = unsignedUnfreezeNftTxn( - await getAddress(sender), - to, - nft.native, - new bignumber_js_1.default(txFees.toString()), - nonce - ); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - [nft.uri], - undefined - // await extractAction(tx) - ); - return tx; - }, - async issueESDTNft( - sender, - name, - ticker, - canFreeze = false, - canWipe = false, - canTransferNFTCreateRole = false - ) { - const txu = unsignedIssueESDTNft( - name, - ticker, - canFreeze, - canWipe, - canTransferNFTCreateRole - ); - const tx = await signAndSend(sender, txu); - const res = await transactionResult(tx.getHash()); - const tickerh = res["smartContractResults"][0].data.split("@")[2]; - return Buffer.from(tickerh, "hex").toString("utf-8"); - }, - async mintNft(owner, args) { - const txu = unsignedMintNftTxn(await getAddress(owner), args); - const tx = await signAndSend(owner, txu); - return tx.getHash().toString(); - }, - async mintableEsdts(address) { - const res = await providerRest.get( - `/address/${address.toString()}/esdts-with-role/ESDTRoleNFTCreate` - ); - return res.data["data"]["tokens"]; - }, - async preTransferRawTxn(id, address, value) { - if (!address || !value) { - throw new Error("address and value is required for elrond egld swap"); - } - const esdts = await listEsdt(address); - const res = esdts[id.native.nonce]; - if ( - res === undefined || - new bignumber_js_1.default(res.balance).lt(value) - ) { - const utx = new erdjs_1.Transaction({ - receiver: swapContract, - gasLimit: new erdjs_1.GasLimit(50000000), - value: new erdjs_1.Balance( - erdjs_1.Egld.getToken(), - erdjs_1.Egld.getNonce(), - new bignumber_js_1.default(value.toString()) - ), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("wrapEgld")) - .build(), - }); - return utx.toPlainObject(); - } - return undefined; - }, - async setESDTRole(manager, token, target, roles) { - const txu = unsignedSetESDTRoles(token, target, roles); - const tx = await signAndSend(manager, txu); - await transactionResult(tx.getHash()); - return tx; - }, - async transferESDTOwnership(sender, token, target) { - const txu = new erdjs_1.Transaction({ - receiver: new erdjs_1.Address( - "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" - ), - gasLimit: new erdjs_1.GasLimit(60000000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("transferOwnership")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token, "utf-8"))) - .addArg(new erdjs_1.AddressValue(target)) - .build(), - }); - return await signAndSend(sender, txu); - }, - getNonce() { - return __1.Chain.ELROND; - }, - async estimateValidateTransferNft(_toAddress, _nftUri) { - return estimateGas(NFT_TRANSFER_COST); // TODO: properly estimate NFT_TRANSFER_COST - }, - async estimateValidateUnfreezeNft(_to, _nftUri) { - return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST - }, - async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { - const txu = new erdjs_1.Transaction({ - receiver: await getAddress(sender), - gasLimit: new erdjs_1.GasLimit(40000000 + 5000000 * nfts.length), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) - .setArgs([ - new erdjs_1.AddressValue(mintContract), - new erdjs_1.BigUIntValue( - new bignumber_js_1.default(nfts.length + 1) - ), - ...nfts.flatMap((nft) => [ - new erdjs_1.TokenIdentifierValue(esdtNftHex), - new erdjs_1.U64Value( - new bignumber_js_1.default(nft.native.nonce) - ), - new erdjs_1.BigUIntValue(new bignumber_js_1.default(1)), - ]), - new erdjs_1.TokenIdentifierValue(esdtSwaphex), - new erdjs_1.U64Value(new bignumber_js_1.default(0x0)), - new erdjs_1.BigUIntValue(txFees), - new erdjs_1.BytesValue(Buffer.from("withdrawBatchNft", "ascii")), - new erdjs_1.U64Value(new bignumber_js_1.default(chainNonce)), - new erdjs_1.BytesValue(Buffer.from(to, "ascii")), - ]) - .build(), - }); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - nfts.map((n) => n.uri), - undefined - // await extractAction(tx) - ); - return tx; - }, - async transferNftBatchToForeign( - sender, - chainNonce, - to, - nfts, - mintWith, - txFees - ) { - const txu = new erdjs_1.Transaction({ - receiver: await getAddress(sender), - gasLimit: new erdjs_1.GasLimit(50000000 + 5000000 * nfts.length), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) - .setArgs([ - new erdjs_1.AddressValue(mintContract), - new erdjs_1.BigUIntValue( - new bignumber_js_1.default(nfts.length + 1) - ), - ...nfts.flatMap((nft) => [ - new erdjs_1.TokenIdentifierValue( - Buffer.from(tokenIdentReal(nft.native.tokenIdentifier), "utf-8") - ), - new erdjs_1.U64Value( - new bignumber_js_1.default(nft.native.nonce) - ), - new erdjs_1.BigUIntValue(new bignumber_js_1.default(1)), - ]), - new erdjs_1.TokenIdentifierValue(esdtSwaphex), - new erdjs_1.U64Value(new bignumber_js_1.default(0x0)), - new erdjs_1.BigUIntValue(txFees), - new erdjs_1.BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), - new erdjs_1.U64Value(new bignumber_js_1.default(chainNonce)), - new erdjs_1.BytesValue(Buffer.from(to, "ascii")), - new erdjs_1.BytesValue(Buffer.from(mintWith, "ascii")), - ]) - .build(), - }); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - nfts.map((n) => n.uri), - undefined - // await extractAction(tx) - ); - return tx; - }, - async wegldBalance(addr) { - const esdtInfo = await provider.getAddressEsdt( - new erdjs_1.Address(addr), - elrondParams.esdt_swap - ); - return new bignumber_js_1.default(esdtInfo.balance); - }, - async unwrapWegld(sender, amount) { - const txu = new erdjs_1.Transaction({ - receiver: swapContract, - gasLimit: new erdjs_1.GasLimit(300500000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("ESDTTransfer")) - .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) - .addArg(new erdjs_1.U64Value(amount)) - .addArg(new erdjs_1.BytesValue(Buffer.from("unwrapEgld"))) - .build(), - }); - const tx = await signAndSend(sender, txu); - return tx.getHash().toString(); - }, - async estimateValidateTransferNftBatch(_, nfts) { - return estimateGas( - new bignumber_js_1.default(360000000 + 5000000 * nfts.length) - ); - }, - async estimateValidateUnfreezeNftBatch(_, nfts) { - return estimateGas( - new bignumber_js_1.default(340000000 + 5000000 * nfts.length) - ); - }, - async validateAddress(adr) { - try { - new erdjs_1.Address(adr); - return await providerRest - .get(`/address/${adr}/esdt`) - .then((_) => true) - .catch((_) => false); - } catch (_) { - return false; - } - }, - async getTokenURI(_, tokenId) { - if (tokenId) { - const url = `https://api.elrond.com/nfts/${tokenId}`; - const res = await (0, axios_1.default)(url).catch(() => ({ - data: null, - })); - if (res.data?.metadata) { - return url; - } - const uri = res.data?.uris[1] || res.data?.uris[0]; - if (uri) { - return js_base64_1.Base64.decode(uri); - } - } - return ""; - }, - }; -} -exports.elrondHelperFactory = elrondHelperFactory; -function filterEventId(results) { - for (const res of results) { - if (res["nonce"] === 0) { - continue; - } - const data = res.data.split("@"); - if (data[0] != "" || data[1] != "6f6b" || data.length != 3) { - continue; - } - try { - return parseInt(data[2], 16); - } catch (NumberFormatException) { - continue; - } - } - throw Error(`invalid result: ${results.toString()}`); -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBcUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQiwwQkFVWTtBQUVaLHlDQUFtQztBQU1uQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQU8sQ0FDakMsZ0VBQWdFLENBQ2pFLENBQUM7QUFDRixNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQUU1QyxNQUFNLGlCQUFpQixHQUFHLElBQUksc0JBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuRCxNQUFNLGlCQUFpQixHQUFHLElBQUksc0JBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQW1LNUMsS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxZQUEwQjtJQUUxQixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFELE1BQU0scUJBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFlBQVksQ0FBQyxRQUFRO0tBQy9CLENBQUMsQ0FBQztJQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FB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 diff --git a/dist/helpers/elrond.ts b/dist/helpers/elrond.ts deleted file mode 100644 index 5a7ad56fe..000000000 --- a/dist/helpers/elrond.ts +++ /dev/null @@ -1,895 +0,0 @@ -/** - * Elrond Implementation for cross chain traits - * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp - * Note that Unsigned Transactions need to be manually handled after they have been added to the block - * @module - */ -import { - Account, - Address, - AddressValue, - Balance, - BigUIntValue, - BytesValue, - ContractFunction, - Egld, - ExtensionProvider, - GasLimit, - ISigner, - NetworkConfig, - ProxyProvider, - TokenIdentifierValue, - Transaction, - TransactionHash, - TransactionPayload, - U64Value, - UserSigner, - WalletConnectProvider, -} from "@elrondnetwork/erdjs"; -import axios from "axios"; -import BigNumber from "bignumber.js"; -import { - BalanceCheck, - ConcurrentSendError, - MintNft, - TransferNftForeign, - UnfreezeForeignNft, - TransactionStatus, - TransferNftForeignBatch, - UnfreezeForeignNftBatch, - EstimateTxFeesBatch, - GetFeeMargins, - FeeMargins, - IsContractAddress, - GetTokenURI, -} from "./chain"; -import { - Chain, - ChainNonceGet, - EstimateTxFees, - ExtractAction, - ExtractTxnStatus, - NftInfo, - PreTransfer, - PreTransferRawTxn, - ValidateAddress, -} from ".."; -import { EvNotifier } from "../notifier"; -import { Base64 } from "js-base64"; - -type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; - -type EasyBalance = string | number | BigNumber; - -const ESDT_ISSUE_ADDR = new Address( - "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" -); -const ESDT_ISSUE_COST = "50000000000000000"; - -const NFT_TRANSFER_COST = new BigNumber(350000000); -const NFT_UNFREEZE_COST = new BigNumber(350000000); - -type ContractRes = { - readonly [idx: string]: number | string; -}; - -/** - * Information associated with an ESDT Token - */ -export type EsdtTokenInfo = { - readonly balance: 1 | string; - readonly tokenIdentifier: string; -}; - -type BEsdtNftInfo = { - readonly attributes?: string[]; - readonly creator: string; - readonly name: string; - readonly nonce: number; - readonly royalties: string; - readonly uris: string[]; -}; - -type MaybeEsdtNftInfo = EsdtTokenInfo & (BEsdtNftInfo | undefined); - -/** - * Information associated with an ESDT NFT - */ -export type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; - -/** - * arguments required to issue an NFT - */ -export type NftIssueArgs = { - readonly identifier: string; - readonly uris: Array; - readonly name: string; - readonly quantity?: number; - readonly royalties?: number; - readonly hash?: string; - readonly attrs?: string; -}; - -/** - * Utility for issuing ESDT which supports NFT minting - */ -export interface IssueESDTNFT { - /** - * Issue a new ESDT supporting NFTs - * - * @param sender Owner of this ESDT - * @param name Name of the ESDT - * @param ticker Ticker of the ESDT - * @param canFreeze Wheteher this ESDT can be frozen - * @param canWipe Whether this ESDT can be wiped - * @param canTransferNFTCreateRole Whether the NFT Creation role can be transferred - * - * @returns ticker of the esdt - */ - issueESDTNft( - sender: ElrondSigner, - name: string, - ticker: string, - canFreeze: boolean | undefined, - canWipe: boolean | undefined, - canTransferNFTCreateRole: boolean | undefined - ): Promise; -} - -/** - * Possible roles for an ESDT - * - * ESDTRoleNFTCreate: Allow creating NFTs - * ESDTRoleNFTBurn: Allow burning NFTs - * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) - */ -export type ESDTRole = - | "ESDTRoleNFTCreate" - | "ESDTRoleNFTBurn" - | "ESDTRoleNFTAddQuantity"; - -/** - * Utility for setting ESDT roles - */ -export interface SetESDTRoles { - /** - * - * Set the roles for a given account for an esdt - * - * @param sender Target account - * @param token ESDT Identifier - * @param roles Roles to set - */ - setESDTRole( - sender: ElrondSigner, - token: string, - target: Address, - roles: ESDTRole[] - ): Promise; - transferESDTOwnership( - sender: ElrondSigner, - token: string, - target: Address - ): Promise; -} - -export interface ElrondRawUnsignedTxn { - readonly nonce: number; - readonly value: string; - readonly receiver: string; - readonly sender: string; - readonly gasPrice: number; - readonly gasLimit: number; - readonly data?: string; - readonly chainID: string; - readonly version: number; - readonly options?: number; - readonly signature?: string; -} - -/** - * Traits implemented by this module - */ -export type ElrondHelper = BalanceCheck & - TransferNftForeign & - UnfreezeForeignNft & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - IssueESDTNFT & - MintNft & { - mintableEsdts(address: Address): Promise; - } & ChainNonceGet & - ValidateAddress & - ExtractAction & - PreTransfer & - EstimateTxFees & - EstimateTxFeesBatch & - PreTransferRawTxn & - ExtractTxnStatus & - SetESDTRoles & { XpNft: string } & GetFeeMargins & { - wegldBalance(address: string): Promise; - unwrapWegld(sender: ElrondSigner, amt: BigNumber): Promise; - } & IsContractAddress & - GetTokenURI; - -/** - * Create an object implementing cross chain utilities for elrond - * - * @param node_uri URI of the elrond node - * @param minter_address Address of the minter smart contract - * @param middleware_uri REST API of elrond-event-middleware - * @param esdt_nft Identifier of the ESDT NFT Wrapper - */ -export interface ElrondParams { - node_uri: string; - notifier: EvNotifier; - minter_address: string; - esdt_swap_address: string; - esdt_nft: string; - esdt_swap: string; - feeMargin: FeeMargins; -} - -export async function elrondHelperFactory( - elrondParams: ElrondParams -): Promise { - const provider = new ProxyProvider(elrondParams.node_uri); - await NetworkConfig.getDefault().sync(provider); - const mintContract = new Address(elrondParams.minter_address); - const swapContract = new Address(elrondParams.esdt_swap_address); - const providerRest = axios.create({ - baseURL: elrondParams.node_uri, - }); - const esdtNftHex = Buffer.from(elrondParams.esdt_nft, "utf-8"); - const esdtSwaphex = Buffer.from(elrondParams.esdt_swap, "utf-8"); - const networkConfig = await provider.getNetworkConfig(); - const gasPriceModif = - networkConfig.MinGasPrice.valueOf() * - networkConfig.GasPriceModifier.valueOf(); - - async function notifyValidator( - txn: Transaction, - sender: string, - uri: string[], - action_id: string | undefined - ) { - await elrondParams.notifier.notifyElrond( - txn.getHash().toString(), - sender, - uri, - action_id - ); - } - - const syncAccount = async (signer: ElrondSigner) => { - const account = new Account(await getAddress(signer)); - await account.sync(provider); - - return account; - }; - - const signAndSend = async (signer: ElrondSigner, tx: Transaction) => { - const acc = await syncAccount(signer); - tx.setNonce(acc.nonce); - let stx: Transaction; - if (signer instanceof WalletConnectProvider) { - const txs = await signer.signTransactions([tx]); - stx = txs[0]; - } else if (signer instanceof ExtensionProvider) { - stx = await signer.signTransaction(tx); - } else if (signer instanceof UserSigner) { - await signer.sign(tx); - stx = tx; - } else { - //@ts-ignore - stx = await signer.signTransaction(tx); - } - try { - await stx.send(provider); - } catch (e: any) { - if (e.message.includes("lowerNonceInTx")) { - throw ConcurrentSendError(); - } else { - throw e; - } - } - return stx; - }; - - const transactionResult = async (tx_hash: TransactionHash) => { - const uri = `/transaction/${tx_hash.toString()}?withResults=true`; - let tries = 0; - - while (tries < 10) { - tries += 1; - let err; - // TODO: type safety - const res = await providerRest.get(uri).catch((e) => (err = e)); - if (err) { - await new Promise((r) => setTimeout(r, 3000)); - continue; - } - const data = res.data; - if (data["code"] != "successful") { - throw Error("failed to execute txn"); - } - - const tx_info = data["data"]["transaction"]; - if (tx_info["status"] == "pending") { - await new Promise((r) => setTimeout(r, 5000)); - continue; - } - if (tx_info["status"] != "success") { - throw Error("failed to execute txn"); - } - - return tx_info; - } - - throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); - }; - - const doEgldSwap = async ( - sender: ElrondSigner, - nft: NftInfo, - value: BigNumber - ) => { - const esdts = await listEsdt((await sender.getAddress()).toString()); - const res = esdts[nft.native.nonce]; - if (res === undefined || new BigNumber(res.balance).lt(value)) { - const utx = new Transaction({ - receiver: swapContract, - gasLimit: new GasLimit(300000000), - value: new Balance( - Egld.getToken(), - Egld.getNonce(), - new BigNumber(value.toString()) - ), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("wrapEgld")) - .build(), - }); - - const tx = await signAndSend(sender, utx); - await transactionResult(tx.getHash()); - - return tx.getHash().toString(); - } - return undefined; - }; - - const unsignedMintNftTxn = ( - owner: Address, - { identifier, quantity, name, royalties, hash, attrs, uris }: NftIssueArgs - ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTCreate")) - .addArg(new TokenIdentifierValue(Buffer.from(identifier, "utf-8"))) - .addArg(new BigUIntValue(new BigNumber(quantity ?? 1))) - .addArg(new BytesValue(Buffer.from(name, "utf-8"))) - .addArg(new U64Value(new BigNumber(royalties ?? 0))) - .addArg( - new BytesValue(hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0)) - ) - .addArg( - new BytesValue(attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0)) - ); - - for (const uri of uris) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(uri, "utf-8"))); - } - - return new Transaction({ - receiver: owner, - gasLimit: new GasLimit(70000000), // TODO: Auto derive - data: baseArgs.build(), - }); - }; - - function tokenIdentReal(tokenIdentifier: string): string { - const base = tokenIdentifier.split("-"); - base.pop(); - return base.join("-"); - } - - const unsignedTransferNftTxn = ( - chain_nonce: number, - address: Address, - to: string, - { tokenIdentifier, nonce }: EsdtNftInfo, - tx_fees: BigNumber, - mintWith: string - ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(300000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("MultiESDTNFTTransfer")) - .addArg(new AddressValue(mintContract)) - .addArg(new BigUIntValue(new BigNumber(2))) - .addArg( - new TokenIdentifierValue( - Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") - ) - ) - .addArg(new U64Value(new BigNumber(nonce))) - .addArg(new BigUIntValue(new BigNumber(1))) - .addArg(new TokenIdentifierValue(esdtSwaphex)) - .addArg(new U64Value(new BigNumber(0x0))) - .addArg(new BigUIntValue(tx_fees)) - .addArg(new BytesValue(Buffer.from("freezeSendNft", "ascii"))) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .addArg(new BytesValue(Buffer.from(mintWith, "ascii"))) - .build(), - }); - }; - - const unsignedUnfreezeNftTxn = ( - address: Address, - to: string, - { tokenIdentifier, nonce }: EsdtNftInfo, - tx_fees: BigNumber, - chain_nonce: string - ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(300000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("MultiESDTNFTTransfer")) - .addArg(new AddressValue(mintContract)) - .addArg(new BigUIntValue(new BigNumber(2))) - .addArg( - new TokenIdentifierValue( - Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") - ) - ) - .addArg(new U64Value(new BigNumber(nonce))) - .addArg(new BigUIntValue(new BigNumber(1))) - .addArg(new TokenIdentifierValue(esdtSwaphex)) - .addArg(new U64Value(new BigNumber(0x0))) - .addArg(new BigUIntValue(tx_fees)) - .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; - - const listEsdt = async (owner: string) => { - const raw = await providerRest(`/address/${owner}/esdt`); - const dat = raw.data.data.esdts as { [index: string]: MaybeEsdtNftInfo }; - - return dat; - }; - - const unsignedIssueESDTNft = ( - name: string, - ticker: string, - canFreeze: boolean | undefined, - canWipe: boolean | undefined, - canTransferNFTCreateRole: boolean | undefined - ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("issueNonFungible")) - .addArg(new TokenIdentifierValue(Buffer.from(name, "utf-8"))) - .addArg(new TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); - - if (canFreeze !== undefined) { - baseArgs = baseArgs - .addArg(new BytesValue(Buffer.from("canFreeze", "ascii"))) - .addArg( - new BytesValue(Buffer.from(canFreeze ? "true" : "false", "ascii")) - ); - } - if (canWipe !== undefined) { - baseArgs = baseArgs - .addArg(new BytesValue(Buffer.from("canWipe", "ascii"))) - .addArg( - new BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii")) - ); - } - if (canTransferNFTCreateRole !== undefined) { - baseArgs = baseArgs - .addArg(new BytesValue(Buffer.from("canChangeOwner", "ascii"))) - .addArg( - new BytesValue( - Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") - ) - ); - } - - return new Transaction({ - receiver: ESDT_ISSUE_ADDR, - value: new Balance( - Egld.getToken(), - Egld.getNonce(), - new BigNumber(ESDT_ISSUE_COST.toString()) - ), - gasLimit: new GasLimit(60000000), - data: baseArgs.build(), - }); - }; - - const unsignedSetESDTRoles = ( - token: string, - target: Address, - roles: ESDTRole[] - ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("setSpecialRole")) - .addArg(new TokenIdentifierValue(Buffer.from(token))) - .addArg(new AddressValue(target)); - - for (const role of roles) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(role, "utf-8"))); - } - - return new Transaction({ - receiver: ESDT_ISSUE_ADDR, - gasLimit: new GasLimit(70000000), // TODO: auto derive - data: baseArgs.build(), - }); - }; - - async function extractAction(tx: Transaction): Promise { - let err; - await tx.awaitExecuted(provider).catch((e) => (err = e)); - if (err) { - await new Promise((r) => setTimeout(r, 3000)); - return await extractAction(tx); - } - - const txr = await transactionResult(tx.getHash()); - - const id = filterEventId(txr["smartContractResults"]); - - return id.toString(); - } - - function estimateGas(base_fees: BigNumber) { - return base_fees.multipliedBy(gasPriceModif); // assume execution takes about twice as much gas fees - } - - async function getAddress(sender: ElrondSigner): Promise
{ - return new Address(await sender.getAddress()); - } - - return { - XpNft: elrondParams.esdt_nft, - async balance(address: string | Address): Promise { - const wallet = new Account(new Address(address)); - - await wallet.sync(provider); - - return wallet.balance.valueOf(); - }, - async isContractAddress(address) { - return Address.fromString(address).isContractAddress(); - }, - getFeeMargin() { - return elrondParams.feeMargin; - }, - async extractTxnStatus(txn) { - const status = await provider.getTransactionStatus( - new TransactionHash(txn) - ); - if (status.isPending()) { - return TransactionStatus.PENDING; - } - if (status.isSuccessful()) { - return TransactionStatus.SUCCESS; - } - if (status.isFailed()) { - return TransactionStatus.FAILURE; - } - return TransactionStatus.UNKNOWN; - }, - preTransfer: doEgldSwap, - preUnfreeze: doEgldSwap, - extractAction, - async transferNftToForeign( - sender: ElrondSigner, - chain_nonce: number, - to: string, - info: NftInfo, - txFees: EasyBalance, - mintWith - ): Promise { - const txu = unsignedTransferNftTxn( - chain_nonce, - await getAddress(sender), - to, - info.native, - new BigNumber(txFees.toString()), - mintWith - ); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - [info.uri], - undefined - // await extractAction(tx) - ); - - return tx; - }, - async unfreezeWrappedNft( - sender: ElrondSigner, - to: string, - nft: NftInfo, - txFees: EasyBalance, - nonce - ): Promise { - console.log(`Unfreezing`); - const txu = unsignedUnfreezeNftTxn( - await getAddress(sender), - to, - nft.native, - new BigNumber(txFees.toString()), - nonce - ); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - [nft.uri], - undefined - // await extractAction(tx) - ); - - return tx; - }, - async issueESDTNft( - sender: ElrondSigner, - name: string, - ticker: string, - canFreeze: boolean = false, - canWipe: boolean = false, - canTransferNFTCreateRole: boolean = false - ): Promise { - const txu = unsignedIssueESDTNft( - name, - ticker, - canFreeze, - canWipe, - canTransferNFTCreateRole - ); - - const tx = await signAndSend(sender, txu); - const res = await transactionResult(tx.getHash()); - const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; - return Buffer.from(tickerh, "hex").toString("utf-8"); - }, - async mintNft(owner: ElrondSigner, args: NftIssueArgs): Promise { - const txu = unsignedMintNftTxn(await getAddress(owner), args); - const tx = await signAndSend(owner, txu); - return tx.getHash().toString(); - }, - async mintableEsdts(address: Address): Promise { - const res = await providerRest.get( - `/address/${address.toString()}/esdts-with-role/ESDTRoleNFTCreate` - ); - - return res.data["data"]["tokens"]; - }, - async preTransferRawTxn(id, address, value) { - if (!address || !value) { - throw new Error("address and value is required for elrond egld swap"); - } - const esdts = await listEsdt(address); - const res = esdts[id.native.nonce]; - if (res === undefined || new BigNumber(res.balance).lt(value)) { - const utx = new Transaction({ - receiver: swapContract, - gasLimit: new GasLimit(50000000), - value: new Balance( - Egld.getToken(), - Egld.getNonce(), - new BigNumber(value.toString()) - ), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("wrapEgld")) - .build(), - }); - return utx.toPlainObject(); - } - return undefined; - }, - async setESDTRole( - manager: ElrondSigner, - token: string, - target: Address, - roles: ESDTRole[] - ): Promise { - const txu = unsignedSetESDTRoles(token, target, roles); - - const tx = await signAndSend(manager, txu); - await transactionResult(tx.getHash()); - return tx; - }, - async transferESDTOwnership(sender, token, target): Promise { - const txu = new Transaction({ - receiver: new Address( - "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" - ), - gasLimit: new GasLimit(60000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("transferOwnership")) - .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) - .addArg(new AddressValue(target)) - .build(), - }); - - return await signAndSend(sender, txu); - }, - getNonce() { - return Chain.ELROND; - }, - async estimateValidateTransferNft( - _toAddress: string, - _nftUri: NftInfo - ) { - return estimateGas(NFT_TRANSFER_COST); // TODO: properly estimate NFT_TRANSFER_COST - }, - async estimateValidateUnfreezeNft(_to: string, _nftUri: NftInfo) { - return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST - }, - async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { - const txu = new Transaction({ - receiver: await getAddress(sender), - gasLimit: new GasLimit(40000000 + 5000000 * nfts.length), // TODO: better estimate - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("MultiESDTNFTTransfer")) - .setArgs([ - new AddressValue(mintContract), - new BigUIntValue(new BigNumber(nfts.length + 1)), - ...nfts.flatMap((nft) => [ - new TokenIdentifierValue(esdtNftHex), - new U64Value(new BigNumber(nft.native.nonce)), - new BigUIntValue(new BigNumber(1)), - ]), - new TokenIdentifierValue(esdtSwaphex), - new U64Value(new BigNumber(0x0)), - new BigUIntValue(txFees), - new BytesValue(Buffer.from("withdrawBatchNft", "ascii")), - new U64Value(new BigNumber(chainNonce)), - new BytesValue(Buffer.from(to, "ascii")), - ]) - .build(), - }); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - nfts.map((n) => n.uri), - undefined - // await extractAction(tx) - ); - - return tx; - }, - async transferNftBatchToForeign( - sender, - chainNonce, - to, - nfts, - mintWith, - txFees - ) { - const txu = new Transaction({ - receiver: await getAddress(sender), - gasLimit: new GasLimit(50000000 + 5000000 * nfts.length), // TODO: better estimate - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("MultiESDTNFTTransfer")) - .setArgs([ - new AddressValue(mintContract), - new BigUIntValue(new BigNumber(nfts.length + 1)), - ...nfts.flatMap((nft) => [ - new TokenIdentifierValue( - Buffer.from(tokenIdentReal(nft.native.tokenIdentifier), "utf-8") - ), - new U64Value(new BigNumber(nft.native.nonce)), - new BigUIntValue(new BigNumber(1)), - ]), - new TokenIdentifierValue(esdtSwaphex), - new U64Value(new BigNumber(0x0)), - new BigUIntValue(txFees), - new BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), - new U64Value(new BigNumber(chainNonce)), - new BytesValue(Buffer.from(to, "ascii")), - new BytesValue(Buffer.from(mintWith, "ascii")), - ]) - .build(), - }); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - nfts.map((n) => n.uri), - undefined - // await extractAction(tx) - ); - - return tx; - }, - async wegldBalance(addr) { - const esdtInfo = await provider.getAddressEsdt( - new Address(addr), - elrondParams.esdt_swap - ); - - return new BigNumber(esdtInfo.balance); - }, - async unwrapWegld(sender: ElrondSigner, amount: BigNumber) { - const txu = new Transaction({ - receiver: swapContract, - gasLimit: new GasLimit(300500000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTTransfer")) - .addArg(new TokenIdentifierValue(esdtSwaphex)) - .addArg(new U64Value(amount)) - .addArg(new BytesValue(Buffer.from("unwrapEgld"))) - .build(), - }); - - const tx = await signAndSend(sender, txu); - - return tx.getHash().toString(); - }, - async estimateValidateTransferNftBatch(_, nfts) { - return estimateGas(new BigNumber(360000000 + 5000000 * nfts.length)); - }, - async estimateValidateUnfreezeNftBatch(_, nfts) { - return estimateGas(new BigNumber(340000000 + 5000000 * nfts.length)); - }, - async validateAddress(adr: string) { - try { - new Address(adr); - return await providerRest - .get(`/address/${adr}/esdt`) - .then((_) => true) - .catch((_) => false); - } catch (_) { - return false; - } - }, - async getTokenURI(_, tokenId) { - if (tokenId) { - const url = `https://api.elrond.com/nfts/${tokenId}`; - const res = await axios(url).catch(() => ({ data: null })); - - if (res.data?.metadata) { - return url; - } - - const uri = res.data?.uris[1] || res.data?.uris[0]; - if (uri) { - return Base64.decode(uri); - } - } - return ""; - }, - }; -} - -function filterEventId(results: Array): number { - for (const res of results) { - if (res["nonce"] === 0) { - continue; - } - const data = (res.data as string).split("@"); - if (data[0] != "" || data[1] != "6f6b" || data.length != 3) { - continue; - } - - try { - return parseInt(data[2], 16); - } catch (NumberFormatException) { - continue; - } - } - - throw Error(`invalid result: ${results.toString()}`); -} diff --git a/dist/helpers/hedera/hts_abi.d.ts b/dist/helpers/hedera/hts_abi.d.ts deleted file mode 100644 index 72abfd16e..000000000 --- a/dist/helpers/hedera/hts_abi.d.ts +++ /dev/null @@ -1,238 +0,0 @@ -export declare const HEDERA_TOKEN_SERVICE_ABI: ( - | { - inputs: ( - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: { - internalType: string; - name: string; - type: string; - }[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - )[]; - name: string; - outputs: { - internalType: string; - name: string; - type: string; - }[]; - stateMutability: string; - type: string; - } - | { - inputs: { - internalType: string; - name: string; - type: string; - }[]; - name: string; - outputs: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: ( - | { - components: ( - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: { - internalType: string; - name: string; - type: string; - }[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - )[]; - internalType: string; - name: string; - type: string; - } - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - )[]; - internalType: string; - name: string; - type: string; - } - )[]; - stateMutability: string; - type: string; - } -)[]; -export declare const HEDERA_PROXY_ABI: ( - | { - anonymous: boolean; - inputs: { - indexed: boolean; - internalType: string; - name: string; - type: string; - }[]; - name: string; - type: string; - outputs?: undefined; - stateMutability?: undefined; - } - | { - inputs: { - internalType: string; - name: string; - type: string; - }[]; - name: string; - outputs: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: { - internalType: string; - name: string; - type: string; - }[]; - internalType: string; - name: string; - type: string; - } - )[]; - stateMutability: string; - type: string; - anonymous?: undefined; - } - | { - inputs: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: { - internalType: string; - name: string; - type: string; - }[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - )[]; - name: string; - outputs: { - internalType: string; - name: string; - type: string; - }[]; - stateMutability: string; - type: string; - anonymous?: undefined; - } -)[]; -export declare const HEDERA_PROXY_BC = - "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; -//# sourceMappingURL=hts_abi.d.ts.map diff --git a/dist/helpers/hedera/hts_abi.d.ts.map b/dist/helpers/hedera/hts_abi.d.ts.map deleted file mode 100644 index 5855fc55e..000000000 --- a/dist/helpers/hedera/hts_abi.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"hts_abi.d.ts","sourceRoot":"","sources":["../../../src/helpers/hedera/hts_abi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAk4FpC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsmB5B,CAAC;AACF,eAAO,MAAM,eAAe,mzgDACsxgD,CAAC"} \ No newline at end of file diff --git a/dist/helpers/hedera/hts_abi.js b/dist/helpers/hedera/hts_abi.js deleted file mode 100644 index c9dfa788c..000000000 --- a/dist/helpers/hedera/hts_abi.js +++ /dev/null @@ -1,3571 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.HEDERA_PROXY_BC = - exports.HEDERA_PROXY_ABI = - exports.HEDERA_TOKEN_SERVICE_ABI = - void 0; -exports.HEDERA_TOKEN_SERVICE_ABI = [ - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "approved", - type: "address", - }, - { - internalType: "uint256", - name: "serialNumber", - type: "uint256", - }, - ], - name: "approveNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "associateToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address[]", - name: "tokens", - type: "address[]", - }, - ], - name: "associateTokens", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint64", - name: "amount", - type: "uint64", - }, - { - internalType: "int64[]", - name: "serialNumbers", - type: "int64[]", - }, - ], - name: "burnToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "uint64", - name: "newTotalSupply", - type: "uint64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - { - internalType: "uint64", - name: "initialTotalSupply", - type: "uint64", - }, - { - internalType: "uint32", - name: "decimals", - type: "uint32", - }, - ], - name: "createFungibleToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - { - internalType: "uint64", - name: "initialTotalSupply", - type: "uint64", - }, - { - internalType: "uint32", - name: "decimals", - type: "uint32", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - ], - name: "createFungibleTokenWithCustomFees", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - ], - name: "createNonFungibleToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - ], - name: "createNonFungibleTokenWithCustomFees", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "accountID", - type: "address", - }, - { - internalType: "int64", - name: "amount", - type: "int64", - }, - ], - internalType: "struct IHederaTokenService.AccountAmount[]", - name: "transfers", - type: "tuple[]", - }, - { - components: [ - { - internalType: "address", - name: "senderAccountID", - type: "address", - }, - { - internalType: "address", - name: "receiverAccountID", - type: "address", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - ], - internalType: "struct IHederaTokenService.NftTransfer[]", - name: "nftTransfers", - type: "tuple[]", - }, - ], - internalType: "struct IHederaTokenService.TokenTransferList[]", - name: "tokenTransfers", - type: "tuple[]", - }, - ], - name: "cryptoTransfer", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "deleteToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "dissociateToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address[]", - name: "tokens", - type: "address[]", - }, - ], - name: "dissociateTokens", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "freezeToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "serialNumber", - type: "uint256", - }, - ], - name: "getApproved", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "approved", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getFungibleTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - components: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "hedera", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - { - internalType: "bool", - name: "deleted", - type: "bool", - }, - { - internalType: "string", - name: "ledgerId", - type: "string", - }, - { - internalType: "bool", - name: "pauseStatus", - type: "bool", - }, - { - internalType: "uint64", - name: "totalSupply", - type: "uint64", - }, - ], - internalType: "struct IHederaTokenService.TokenInfo", - name: "tokenInfo", - type: "tuple", - }, - { - internalType: "uint32", - name: "decimals", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.FungibleTokenInfo", - name: "fungibleTokenInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - ], - name: "getNonFungibleTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - components: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "hedera", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - { - internalType: "bool", - name: "deleted", - type: "bool", - }, - { - internalType: "string", - name: "ledgerId", - type: "string", - }, - { - internalType: "bool", - name: "pauseStatus", - type: "bool", - }, - { - internalType: "uint64", - name: "totalSupply", - type: "uint64", - }, - ], - internalType: "struct IHederaTokenService.TokenInfo", - name: "tokenInfo", - type: "tuple", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - { - internalType: "address", - name: "ownerId", - type: "address", - }, - { - internalType: "int64", - name: "creationTime", - type: "int64", - }, - { - internalType: "bytes", - name: "metadata", - type: "bytes", - }, - { - internalType: "address", - name: "spenderId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.NonFungibleTokenInfo", - name: "nonFungibleTokenInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenCustomFees", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenDefaultFreezeStatus", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "defaultFreezeStatus", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenDefaultKycStatus", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenExpiryInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "hedera", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - { - internalType: "bool", - name: "deleted", - type: "bool", - }, - { - internalType: "string", - name: "ledgerId", - type: "string", - }, - { - internalType: "bool", - name: "pauseStatus", - type: "bool", - }, - { - internalType: "uint64", - name: "totalSupply", - type: "uint64", - }, - ], - internalType: "struct IHederaTokenService.TokenInfo", - name: "tokenInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - ], - name: "getTokenKey", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenType", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "int32", - name: "tokenType", - type: "int32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "operator", - type: "address", - }, - ], - name: "isApprovedForAll", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "approved", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "isFrozen", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "frozen", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "isKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "kycGranted", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "isToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "isToken", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint64", - name: "amount", - type: "uint64", - }, - { - internalType: "bytes[]", - name: "metadata", - type: "bytes[]", - }, - ], - name: "mintToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "uint64", - name: "newTotalSupply", - type: "uint64", - }, - { - internalType: "int64[]", - name: "serialNumbers", - type: "int64[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "pauseToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "operator", - type: "address", - }, - { - internalType: "bool", - name: "approved", - type: "bool", - }, - ], - name: "setApprovalForAll", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "serialNumber", - type: "uint256", - }, - ], - name: "transferFromNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - ], - name: "transferNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address[]", - name: "sender", - type: "address[]", - }, - { - internalType: "address[]", - name: "receiver", - type: "address[]", - }, - { - internalType: "int64[]", - name: "serialNumber", - type: "int64[]", - }, - ], - name: "transferNFTs", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "int64", - name: "amount", - type: "int64", - }, - ], - name: "transferToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address[]", - name: "accountId", - type: "address[]", - }, - { - internalType: "int64[]", - name: "amount", - type: "int64[]", - }, - ], - name: "transferTokens", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "unfreezeToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "unpauseToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiryInfo", - type: "tuple", - }, - ], - name: "updateTokenExpiryInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "tokenInfo", - type: "tuple", - }, - ], - name: "updateTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "keys", - type: "tuple[]", - }, - ], - name: "updateTokenKeys", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - ], - name: "wipeTokenAccount", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "int64[]", - name: "serialNumbers", - type: "int64[]", - }, - ], - name: "wipeTokenAccountNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; -exports.HEDERA_PROXY_ABI = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - inputs: [], - name: "DEFAULT_EXPIRY", - outputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_INT", - outputs: [ - { - internalType: "int64", - name: "", - type: "int64", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "baseURI", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "baseUri", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "uint256", - name: "serialNum", - type: "uint256", - }, - ], - name: "burnFor", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "int64", - name: "serialNum", - type: "int64", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "claimNft", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "data", - type: "uint256", - }, - ], - name: "decodeHts", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "int64", - name: "", - type: "int64", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "claimer", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getClaimableNfts", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenExpiryInfo", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiryInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "htsToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "string", - name: "baseURI_", - type: "string", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "isKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "kycGranted", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "pauseToken", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address", - }, - { - internalType: "address", - name: "_to", - type: "address", - }, - { - internalType: "uint256", - name: "_serialNum", - type: "uint256", - }, - ], - name: "safeTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "tokenURI", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "unpauseToken", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiryInfo", - type: "tuple", - }, - ], - name: "updateTokenExpiryInfo", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "tokenInfo", - type: "tuple", - }, - ], - name: "updateTokenInfo", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; -exports.HEDERA_PROXY_BC = - "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRzX2FiaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2hlZGVyYS9odHNfYWJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEM7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxXQUFXO1FBQ2pCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxZQUFZO1FBQ2xCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsV0FBVztnQkFDekIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFdBQVc7YUFDbEI7U0FDRjtRQUNELElBQUksRUFBRSxpQkFBaUI7UUFDdkIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsV0FBVztRQUNqQixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7WUFDRDtnQkFDRSxZQUFZLEVBQUUsUUFBUTtnQkFDdEIsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFVBQVUsRUFBRTtvQkFDVjt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLE1BQU07d0JBQ1osSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsTUFBTTt3QkFDWixJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLGlCQUFpQjt3QkFDdkIsSUFBSSxFQUFFLE1BQU07cUJBQ2I7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE9BQU87d0JBQ3JCLElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsT0FBTztxQkFDZDtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLGVBQWU7d0JBQ3JCLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFVBQVUsRUFBRTs0QkFDVjtnQ0FDRSxZQUFZLEVBQUUsU0FBUztnQ0FDdkIsSUFBSSxFQUFFLFNBQVM7Z0NBQ2YsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFVBQVUsRUFBRTtvQ0FDVjt3Q0FDRSxZQUFZLEVBQUUsTUFBTTt3Q0FDcEIsSUFBSSxFQUFFLG1CQUFtQjt3Q0FDekIsSUFBSSxFQUFFLE1BQU07cUNBQ2I7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFNBQVM7d0NBQ3ZCLElBQUksRUFBRSxZQUFZO3dDQUNsQixJQUFJLEVBQUUsU0FBUztxQ0FDaEI7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLE9BQU87d0NBQ3JCLElBQUksRUFBRSxTQUFTO3dDQUNmLElBQUksRUFBRSxPQUFPO3FDQUNkO29DQUNEO3dDQUNFLFlBQVksRUFBRSxPQUFPO3dDQUNyQixJQUFJLEVBQUUsaUJBQWlCO3dDQUN2QixJQUFJLEVBQUUsT0FBTztxQ0FDZDtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsU0FBUzt3Q0FDdkIsSUFBSSxFQUFFLHVCQUF1Qjt3Q0FDN0IsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO2lDQUNGO2dDQUNELFlBQVksRUFBRSxxQ0FBcUM7Z0NBQ25ELElBQUksRUFBRSxLQUFLO2dDQUNYLElBQUksRUFBRSxPQUFPOzZCQUNkO3lCQUNGO3dCQUNELFlBQVksRUFBRSx1Q0FBdUM7d0JBQ3JELElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsVUFBVSxFQUFFOzRCQUNWO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsUUFBUTtnQ0FDZCxJQUFJLEVBQUUsUUFBUTs2QkFDZjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsU0FBUztnQ0FDdkIsSUFBSSxFQUFFLGtCQUFrQjtnQ0FDeEIsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsaUJBQWlCO2dDQUN2QixJQUFJLEVBQUUsUUFBUTs2QkFDZjt5QkFDRjt3QkFDRCxZQUFZLEVBQUUsbUNBQW1DO3dCQUNqRCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsT0FBTztxQkFDZDtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsd0NBQXdDO2dCQUN0RCxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxZQUFZLEVBQUUsUUFBUTtnQkFDdEIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtRQUNELElBQUksRUFBRSxxQkFBcUI7UUFDM0IsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFNBQVM7UUFDMUIsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFVBQVUsRUFBRTtvQkFDVjt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLE1BQU07d0JBQ1osSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsTUFBTTt3QkFDWixJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLGlCQUFpQjt3QkFDdkIsSUFBSSxFQUFFLE1BQU07cUJBQ2I7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE9BQU87d0JBQ3JCLElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsT0FBTztxQkFDZDtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLGVBQWU7d0JBQ3JCLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFVBQVUsRUFBRTs0QkFDVjtnQ0FDRSxZQUFZLEVBQUUsU0FBUztnQ0FDdkIsSUFBSSxFQUFFLFNBQVM7Z0NBQ2YsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFVBQVUsRUFBRTtvQ0FDVjt3Q0FDRSxZQUFZLEVBQUUsTUFBTTt3Q0FDcEIsSUFBSSxFQUFFLG1CQUFtQjt3Q0FDekIsSUFBSSxFQUFFLE1BQU07cUNBQ2I7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFNBQVM7d0NBQ3ZCLElBQUksRUFBRSxZQUFZO3dDQUNsQixJQUFJLEVBQUUsU0FBUztxQ0FDaEI7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLE9BQU87d0NBQ3JCLElBQUksRUFBRSxTQUFTO3dDQUNmLElBQUksRUFBRSxPQUFPO3FDQUNkO29DQUNEO3dDQUNFLFlBQVksRUFBRSxPQUFPO3dDQUNyQixJQUFJLEVBQUUsaUJBQWlCO3dDQUN2QixJQUFJLEVBQUUsT0FBTztxQ0FDZDtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsU0FBUzt3Q0FDdkIsSUFBSSxFQUFFLHVCQUF1Qjt3Q0FDN0IsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO2lDQUNGO2dDQUNELFlBQVksRUFBRSxxQ0FBcUM7Z0NBQ25ELElBQUksRUFBRSxLQUFLO2dDQUNYLElBQUksRUFBRSxPQUFPOzZCQUNkO3lCQUNGO3dCQUNELFlBQVksRUFBRSx1Q0FBdUM7d0JBQ3JELElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsVUFBVSxFQUFFOzRCQUNWO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsUUFBUTtnQ0FDZCxJQUFJLEVBQUUsUUFBUTs2QkFDZjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsU0FBUztnQ0FDdkIsSUFBSSxFQUFFLGtCQUFrQjtnQ0FDeEIsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsaUJBQWlCO2dDQUN2QixJQUFJLEVBQUUsUUFBUTs2QkFDZjt5QkFDRjt3QkFDRCxZQUFZLEVBQUUsbUNBQW1DO3dCQUNqRCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsT0FBTztxQkFDZDtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsd0NBQXdDO2dCQUN0RCxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxZQUFZLEVBQUUsUUFBUTtnQkFDdEIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVBQUUsU0FBUzt3QkFDZixJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLElBQUksRUFBRSxvQkFBb0I7d0JBQzFCLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFlBQVksRUFBRSxNQUFNO3dCQUNwQixJQUFJLEVBQUUsMkJBQTJCO3dCQUNqQyxJQUFJLEVBQUUsTUFBTTtxQkFDYjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLGNBQWM7d0JBQ3BCLElBQUksRUFBRSxTQUFTO3FCQUNoQjtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsdUNBQXVDO2dCQUNyRCxJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLGFBQWE7d0JBQ25CLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsZUFBZTt3QkFDckIsSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxlQUFlO3dCQUNyQixJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLGdCQUFnQjt3QkFDdEIsSUFBSSxFQUFFLE1BQU07cUJBQ2I7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFNBQVM7d0JBQ3ZCLElBQUksRUFBRSxjQUFjO3dCQUNwQixJQUFJLEVBQUUsU0FBUztxQkFDaEI7aUJBQ0Y7Z0JBQ0QsWUFBWSxFQUFFLDRDQUE0QztnQkFDMUQsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxtQ0FBbUM7UUFDekMsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFNBQVM7UUFDMUIsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFVBQVUsRUFBRTtvQkFDVjt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLE1BQU07d0JBQ1osSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsTUFBTTt3QkFDWixJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLGlCQUFpQjt3QkFDdkIsSUFBSSxFQUFFLE1BQU07cUJBQ2I7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE9BQU87d0JBQ3JCLElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsT0FBTztxQkFDZDtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLGVBQWU7d0JBQ3JCLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFVBQVUsRUFBRTs0QkFDVjtnQ0FDRSxZQUFZLEVBQUUsU0FBUztnQ0FDdkIsSUFBSSxFQUFFLFNBQVM7Z0NBQ2YsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFVBQVUsRUFBRTtvQ0FDVjt3Q0FDRSxZQUFZLEVBQUUsTUFBTTt3Q0FDcEIsSUFBSSxFQUFFLG1CQUFtQjt3Q0FDekIsSUFBSSxFQUFFLE1BQU07cUNBQ2I7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFNBQVM7d0NBQ3ZCLElBQUksRUFBRSxZQUFZO3dDQUNsQixJQUFJLEVBQUUsU0FBUztxQ0FDaEI7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLE9BQU87d0NBQ3JCLElBQUksRUFBRSxTQUFTO3dDQUNmLElBQUksRUFBRSxPQUFPO3FDQUNkO29DQUNEO3dDQUNFLFlBQVksRUFBRSxPQUFPO3dDQUNyQixJQUFJLEVBQUUsaUJBQWlCO3dDQUN2QixJQUFJLEVBQUUsT0FBTztxQ0FDZDtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsU0FBUzt3Q0FDdkIsSUFBSSxFQUFFLHVCQUF1Qjt3Q0FDN0IsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO2lDQUNGO2dDQUNELFlBQVksRUFBRSxxQ0FBcUM7Z0NBQ25ELElBQUksRUFBRSxLQUFLO2dDQUNYLElBQUksRUFBRSxPQUFPOzZCQUNkO3lCQUNGO3dCQUNELFlBQVksRUFBRSx1Q0FBdUM7d0JBQ3JELElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsVUFBVSxFQUFFOzRCQUNWO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsUUFBUTtnQ0FDZCxJQUFJLEVBQUUsUUFBUTs2QkFDZjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsU0FBUztnQ0FDdkIsSUFBSSxFQUFFLGtCQUFrQjtnQ0FDeEIsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsaUJBQWlCO2dDQUN2QixJQUFJLEVBQUUsUUFBUTs2QkFDZjt5QkFDRjt3QkFDRCxZQUFZLEVBQUUsbUNBQW1DO3dCQUNqRCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsT0FBTztxQkFDZDtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsd0NBQXdDO2dCQUN0RCxJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELGVBQWUsRUFBRSxTQUFTO1FBQzFCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxNQUFNO3dCQUNaLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLElBQUksRUFBRSxTQUFTO3FCQUNoQjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLE1BQU07d0JBQ1osSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLElBQUksRUFBRSxpQkFBaUI7d0JBQ3ZCLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFlBQVksRUFBRSxPQUFPO3dCQUNyQixJQUFJLEVBQUUsV0FBVzt3QkFDakIsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLElBQUksRUFBRSxlQUFlO3dCQUNyQixJQUFJLEVBQUUsTUFBTTtxQkFDYjtvQkFDRDt3QkFDRSxVQUFVLEVBQUU7NEJBQ1Y7Z0NBQ0UsWUFBWSxFQUFFLFNBQVM7Z0NBQ3ZCLElBQUksRUFBRSxTQUFTO2dDQUNmLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxVQUFVLEVBQUU7b0NBQ1Y7d0NBQ0UsWUFBWSxFQUFFLE1BQU07d0NBQ3BCLElBQUksRUFBRSxtQkFBbUI7d0NBQ3pCLElBQUksRUFBRSxNQUFNO3FDQUNiO29DQUNEO3dDQUNFLFlBQVksRUFBRSxTQUFTO3dDQUN2QixJQUFJLEVBQUUsWUFBWTt3Q0FDbEIsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO29DQUNEO3dDQUNFLFlBQVksRUFBRSxPQUFPO3dDQUNyQixJQUFJLEVBQUUsU0FBUzt3Q0FDZixJQUFJLEVBQUUsT0FBTztxQ0FDZDtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsT0FBTzt3Q0FDckIsSUFBSSxFQUFFLGlCQUFpQjt3Q0FDdkIsSUFBSSxFQUFFLE9BQU87cUNBQ2Q7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFNBQVM7d0NBQ3ZCLElBQUksRUFBRSx1QkFBdUI7d0NBQzdCLElBQUksRUFBRSxTQUFTO3FDQUNoQjtpQ0FDRjtnQ0FDRCxZQUFZLEVBQUUscUNBQXFDO2dDQUNuRCxJQUFJLEVBQUUsS0FBSztnQ0FDWCxJQUFJLEVBQUUsT0FBTzs2QkFDZDt5QkFDRjt3QkFDRCxZQUFZLEVBQUUsdUNBQXVDO3dCQUNyRCxJQUFJLEVBQUUsV0FBVzt3QkFDakIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFVBQVUsRUFBRTs0QkFDVjtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLFNBQVM7Z0NBQ3ZCLElBQUksRUFBRSxrQkFBa0I7Z0NBQ3hCLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLGlCQUFpQjtnQ0FDdkIsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7eUJBQ0Y7d0JBQ0QsWUFBWSxFQUFFLG1DQUFtQzt3QkFDakQsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7aUJBQ0Y7Z0JBQ0QsWUFBWSxFQUFFLHdDQUF3QztnQkFDdEQsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFVBQVUsRUFBRTtvQkFDVjt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFNBQVM7d0JBQ3ZCLElBQUksRUFBRSxTQUFTO3dCQUNmLElBQUksRUFBRSxTQUFTO3FCQUNoQjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLG9CQUFvQjt3QkFDMUIsSUFBSSxFQUFFLE1BQU07cUJBQ2I7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLElBQUksRUFBRSwyQkFBMkI7d0JBQ2pDLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVBQUUsY0FBYzt3QkFDcEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO2lCQUNGO2dCQUNELFlBQVksRUFBRSx1Q0FBdUM7Z0JBQ3JELElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFVBQVUsRUFBRTtvQkFDVjt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsYUFBYTt3QkFDbkIsSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVBQUUsU0FBUzt3QkFDZixJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLElBQUksRUFBRSxvQkFBb0I7d0JBQzFCLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVBQUUsY0FBYzt3QkFDcEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO2lCQUNGO2dCQUNELFlBQVksRUFBRSx5Q0FBeUM7Z0JBQ3ZELElBQUksRUFBRSxhQUFhO2dCQUNuQixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLHNDQUFzQztRQUM1QyxPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsU0FBUztRQUMxQixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsVUFBVSxFQUFFO29CQUNWO3dCQUNFLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVBQUUsT0FBTzt3QkFDYixJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsVUFBVSxFQUFFOzRCQUNWO2dDQUNFLFlBQVksRUFBRSxTQUFTO2dDQUN2QixJQUFJLEVBQUUsV0FBVztnQ0FDakIsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxPQUFPO2dDQUNyQixJQUFJLEVBQUUsUUFBUTtnQ0FDZCxJQUFJLEVBQUUsT0FBTzs2QkFDZDt5QkFDRjt3QkFDRCxZQUFZLEVBQUUsNENBQTRDO3dCQUMxRCxJQUFJLEVBQUUsV0FBVzt3QkFDakIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFVBQVUsRUFBRTs0QkFDVjtnQ0FDRSxZQUFZLEVBQUUsU0FBUztnQ0FDdkIsSUFBSSxFQUFFLGlCQUFpQjtnQ0FDdkIsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxTQUFTO2dDQUN2QixJQUFJLEVBQUUsbUJBQW1CO2dDQUN6QixJQUFJLEVBQUUsU0FBUzs2QkFDaEI7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLE9BQU87Z0NBQ3JCLElBQUksRUFBRSxjQUFjO2dDQUNwQixJQUFJLEVBQUUsT0FBTzs2QkFDZDt5QkFDRjt3QkFDRCxZQUFZLEVBQUUsMENBQTBDO3dCQUN4RCxJQUFJLEVBQUUsY0FBYzt3QkFDcEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO2lCQUNGO2dCQUNELFlBQVksRUFBRSxnREFBZ0Q7Z0JBQzlELElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGFBQWE7UUFDbkIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxXQUFXO2dCQUN6QixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsV0FBVzthQUNsQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxhQUFhO1FBQ25CLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxhQUFhO1FBQ25CLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxzQkFBc0I7UUFDNUIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsVUFBVSxFQUFFO29CQUNWO3dCQUNFLFVBQVUsRUFBRTs0QkFDVjtnQ0FDRSxVQUFVLEVBQUU7b0NBQ1Y7d0NBQ0UsWUFBWSxFQUFFLFFBQVE7d0NBQ3RCLElBQUksRUFBRSxNQUFNO3dDQUNaLElBQUksRUFBRSxRQUFRO3FDQUNmO29DQUNEO3dDQUNFLFlBQVksRUFBRSxRQUFRO3dDQUN0QixJQUFJLEVBQUUsUUFBUTt3Q0FDZCxJQUFJLEVBQUUsUUFBUTtxQ0FDZjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsU0FBUzt3Q0FDdkIsSUFBSSxFQUFFLFVBQVU7d0NBQ2hCLElBQUksRUFBRSxTQUFTO3FDQUNoQjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsUUFBUTt3Q0FDdEIsSUFBSSxFQUFFLE1BQU07d0NBQ1osSUFBSSxFQUFFLFFBQVE7cUNBQ2Y7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLE1BQU07d0NBQ3BCLElBQUksRUFBRSxpQkFBaUI7d0NBQ3ZCLElBQUksRUFBRSxNQUFNO3FDQUNiO29DQUNEO3dDQUNFLFlBQVksRUFBRSxPQUFPO3dDQUNyQixJQUFJLEVBQUUsV0FBVzt3Q0FDakIsSUFBSSxFQUFFLE9BQU87cUNBQ2Q7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLE1BQU07d0NBQ3BCLElBQUksRUFBRSxlQUFlO3dDQUNyQixJQUFJLEVBQUUsTUFBTTtxQ0FDYjtvQ0FDRDt3Q0FDRSxVQUFVLEVBQUU7NENBQ1Y7Z0RBQ0UsWUFBWSxFQUFFLFNBQVM7Z0RBQ3ZCLElBQUksRUFBRSxTQUFTO2dEQUNmLElBQUksRUFBRSxTQUFTOzZDQUNoQjs0Q0FDRDtnREFDRSxVQUFVLEVBQUU7b0RBQ1Y7d0RBQ0UsWUFBWSxFQUFFLE1BQU07d0RBQ3BCLElBQUksRUFBRSxtQkFBbUI7d0RBQ3pCLElBQUksRUFBRSxNQUFNO3FEQUNiO29EQUNEO3dEQUNFLFlBQVksRUFBRSxTQUFTO3dEQUN2QixJQUFJLEVBQUUsWUFBWTt3REFDbEIsSUFBSSxFQUFFLFNBQVM7cURBQ2hCO29EQUNEO3dEQUNFLFlBQVksRUFBRSxPQUFPO3dEQUNyQixJQUFJLEVBQUUsU0FBUzt3REFDZixJQUFJLEVBQUUsT0FBTztxREFDZDtvREFDRDt3REFDRSxZQUFZLEVBQUUsT0FBTzt3REFDckIsSUFBSSxFQUFFLGlCQUFpQjt3REFDdkIsSUFBSSxFQUFFLE9BQU87cURBQ2Q7b0RBQ0Q7d0RBQ0UsWUFBWSxFQUFFLFNBQVM7d0RBQ3ZCLElBQUksRUFBRSx1QkFBdUI7d0RBQzdCLElBQUksRUFBRSxTQUFTO3FEQUNoQjtpREFDRjtnREFDRCxZQUFZLEVBQUUscUNBQXFDO2dEQUNuRCxJQUFJLEVBQUUsS0FBSztnREFDWCxJQUFJLEVBQUUsT0FBTzs2Q0FDZDt5Q0FDRjt3Q0FDRCxZQUFZLEVBQUUsdUNBQXVDO3dDQUNyRCxJQUFJLEVBQUUsV0FBVzt3Q0FDakIsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO29DQUNEO3dDQUNFLFVBQVUsRUFBRTs0Q0FDVjtnREFDRSxZQUFZLEVBQUUsUUFBUTtnREFDdEIsSUFBSSxFQUFFLFFBQVE7Z0RBQ2QsSUFBSSxFQUFFLFFBQVE7NkNBQ2Y7NENBQ0Q7Z0RBQ0UsWUFBWSxFQUFFLFNBQVM7Z0RBQ3ZCLElBQUksRUFBRSxrQkFBa0I7Z0RBQ3hCLElBQUksRUFBRSxTQUFTOzZDQUNoQjs0Q0FDRDtnREFDRSxZQUFZLEVBQUUsUUFBUTtnREFDdEIsSUFBSSxFQUFFLGlCQUFpQjtnREFDdkIsSUFBSSxFQUFFLFFBQVE7NkNBQ2Y7eUNBQ0Y7d0NBQ0QsWUFBWSxFQUFFLG1DQUFtQzt3Q0FDakQsSUFBSSxFQUFFLFFBQVE7d0NBQ2QsSUFBSSxFQUFFLE9BQU87cUNBQ2Q7aUNBQ0Y7Z0NBQ0QsWUFBWSxFQUFFLHdDQUF3QztnQ0FDdEQsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsSUFBSSxFQUFFLE9BQU87NkJBQ2Q7NEJBQ0Q7Z0NBQ0UsVUFBVSxFQUFFO29DQUNWO3dDQUNFLFlBQVksRUFBRSxRQUFRO3dDQUN0QixJQUFJLEVBQUUsUUFBUTt3Q0FDZCxJQUFJLEVBQUUsUUFBUTtxQ0FDZjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsU0FBUzt3Q0FDdkIsSUFBSSxFQUFFLFNBQVM7d0NBQ2YsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO29DQUNEO3dDQUNFLFlBQVksRUFBRSxNQUFNO3dDQUNwQixJQUFJLEVBQUUsb0JBQW9CO3dDQUMxQixJQUFJLEVBQUUsTUFBTTtxQ0FDYjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsTUFBTTt3Q0FDcEIsSUFBSSxFQUFFLDJCQUEyQjt3Q0FDakMsSUFBSSxFQUFFLE1BQU07cUNBQ2I7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFNBQVM7d0NBQ3ZCLElBQUksRUFBRSxjQUFjO3dDQUNwQixJQUFJLEVBQUUsU0FBUztxQ0FDaEI7aUNBQ0Y7Z0NBQ0QsWUFBWSxFQUFFLHVDQUF1QztnQ0FDckQsSUFBSSxFQUFFLFdBQVc7Z0NBQ2pCLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxVQUFVLEVBQUU7b0NBQ1Y7d0NBQ0UsWUFBWSxFQUFFLFFBQVE7d0NBQ3RCLElBQUksRUFBRSxXQUFXO3dDQUNqQixJQUFJLEVBQUUsUUFBUTtxQ0FDZjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsUUFBUTt3Q0FDdEIsSUFBSSxFQUFFLGFBQWE7d0NBQ25CLElBQUksRUFBRSxRQUFRO3FDQUNmO29DQUNEO3dDQUNFLFlBQVksRUFBRSxRQUFRO3dDQUN0QixJQUFJLEVBQUUsZUFBZTt3Q0FDckIsSUFBSSxFQUFFLFFBQVE7cUNBQ2Y7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFFBQVE7d0NBQ3RCLElBQUksRUFBRSxlQUFlO3dDQUNyQixJQUFJLEVBQUUsUUFBUTtxQ0FDZjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsTUFBTTt3Q0FDcEIsSUFBSSxFQUFFLGdCQUFnQjt3Q0FDdEIsSUFBSSxFQUFFLE1BQU07cUNBQ2I7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFNBQVM7d0NBQ3ZCLElBQUksRUFBRSxjQUFjO3dDQUNwQixJQUFJLEVBQUUsU0FBUztxQ0FDaEI7aUNBQ0Y7Z0NBQ0QsWUFBWSxFQUFFLDRDQUE0QztnQ0FDMUQsSUFBSSxFQUFFLGdCQUFnQjtnQ0FDdEIsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFVBQVUsRUFBRTtvQ0FDVjt3Q0FDRSxZQUFZLEVBQUUsUUFBUTt3Q0FDdEIsSUFBSSxFQUFFLFdBQVc7d0NBQ2pCLElBQUksRUFBRSxRQUFRO3FDQUNmO29DQUNEO3dDQUNFLFlBQVksRUFBRSxRQUFRO3dDQUN0QixJQUFJLEVBQUUsYUFBYTt3Q0FDbkIsSUFBSSxFQUFFLFFBQVE7cUNBQ2Y7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFFBQVE7d0NBQ3RCLElBQUksRUFBRSxRQUFRO3dDQUNkLElBQUksRUFBRSxRQUFRO3FDQUNmO29DQUNEO3dDQUNFLFlBQVksRUFBRSxTQUFTO3dDQUN2QixJQUFJLEVBQUUsU0FBUzt3Q0FDZixJQUFJLEVBQUUsU0FBUztxQ0FDaEI7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLE1BQU07d0NBQ3BCLElBQUksRUFBRSxvQkFBb0I7d0NBQzFCLElBQUksRUFBRSxNQUFNO3FDQUNiO29DQUNEO3dDQUNFLFlBQVksRUFBRSxTQUFTO3dDQUN2QixJQUFJLEVBQUUsY0FBYzt3Q0FDcEIsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO2lDQUNGO2dDQUNELFlBQVksRUFBRSx5Q0FBeUM7Z0NBQ3ZELElBQUksRUFBRSxhQUFhO2dDQUNuQixJQUFJLEVBQUUsU0FBUzs2QkFDaEI7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLE1BQU07Z0NBQ3BCLElBQUksRUFBRSxrQkFBa0I7Z0NBQ3hCLElBQUksRUFBRSxNQUFNOzZCQUNiOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxNQUFNO2dDQUNwQixJQUFJLEVBQUUsU0FBUztnQ0FDZixJQUFJLEVBQUUsTUFBTTs2QkFDYjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLFVBQVU7Z0NBQ2hCLElBQUksRUFBRSxRQUFROzZCQUNmOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxNQUFNO2dDQUNwQixJQUFJLEVBQUUsYUFBYTtnQ0FDbkIsSUFBSSxFQUFFLE1BQU07NkJBQ2I7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLFFBQVE7Z0NBQ3RCLElBQUksRUFBRSxhQUFhO2dDQUNuQixJQUFJLEVBQUUsUUFBUTs2QkFDZjt5QkFDRjt3QkFDRCxZQUFZLEVBQUUsc0NBQXNDO3dCQUNwRCxJQUFJLEVBQUUsV0FBVzt3QkFDakIsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxVQUFVO3dCQUNoQixJQUFJLEVBQUUsUUFBUTtxQkFDZjtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsOENBQThDO2dCQUM1RCxJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxJQUFJLEVBQUUseUJBQXlCO1FBQy9CLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFVBQVUsRUFBRTtvQkFDVjt3QkFDRSxVQUFVLEVBQUU7NEJBQ1Y7Z0NBQ0UsVUFBVSxFQUFFO29DQUNWO3dDQUNFLFlBQVksRUFBRSxRQUFRO3dDQUN0QixJQUFJLEVBQUUsTUFBTTt3Q0FDWixJQUFJLEVBQUUsUUFBUTtxQ0FDZjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsUUFBUTt3Q0FDdEIsSUFBSSxFQUFFLFFBQVE7d0NBQ2QsSUFBSSxFQUFFLFFBQVE7cUNBQ2Y7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFNBQVM7d0NBQ3ZCLElBQUksRUFBRSxVQUFVO3dDQUNoQixJQUFJLEVBQUUsU0FBUztxQ0FDaEI7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFFBQVE7d0NBQ3RCLElBQUksRUFBRSxNQUFNO3dDQUNaLElBQUksRUFBRSxRQUFRO3FDQUNmO29DQUNEO3dDQUNFLFlBQVksRUFBRSxNQUFNO3dDQUNwQixJQUFJLEVBQUUsaUJBQWlCO3dDQUN2QixJQUFJLEVBQUUsTUFBTTtxQ0FDYjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsT0FBTzt3Q0FDckIsSUFBSSxFQUFFLFdBQVc7d0NBQ2pCLElBQUksRUFBRSxPQUFPO3FDQUNkO29DQUNEO3dDQUNFLFlBQVksRUFBRSxNQUFNO3dDQUNwQixJQUFJLEVBQUUsZUFBZTt3Q0FDckIsSUFBSSxFQUFFLE1BQU07cUNBQ2I7b0NBQ0Q7d0NBQ0UsVUFBVSxFQUFFOzRDQUNWO2dEQUNFLFlBQVksRUFBRSxTQUFTO2dEQUN2QixJQUFJLEVBQUUsU0FBUztnREFDZixJQUFJLEVBQUUsU0FBUzs2Q0FDaEI7NENBQ0Q7Z0RBQ0UsVUFBVSxFQUFFO29EQUNWO3dEQUNFLFlBQVksRUFBRSxNQUFNO3dEQUNwQixJQUFJLEVBQUUsbUJBQW1CO3dEQUN6QixJQUFJLEVBQUUsTUFBTTtxREFDYjtvREFDRDt3REFDRSxZQUFZLEVBQUUsU0FBUzt3REFDdkIsSUFBSSxFQUFFLFlBQVk7d0RBQ2xCLElBQUksRUFBRSxTQUFTO3FEQUNoQjtvREFDRDt3REFDRSxZQUFZLEVBQUUsT0FBTzt3REFDckIsSUFBSSxFQUFFLFNBQVM7d0RBQ2YsSUFBSSxFQUFFLE9BQU87cURBQ2Q7b0RBQ0Q7d0RBQ0UsWUFBWSxFQUFFLE9BQU87d0RBQ3JCLElBQUksRUFBRSxpQkFBaUI7d0RBQ3ZCLElBQUksRUFBRSxPQUFPO3FEQUNkO29EQUNEO3dEQUNFLFlBQVksRUFBRSxTQUFTO3dEQUN2QixJQUFJLEVBQUUsdUJBQXVCO3dEQUM3QixJQUFJLEVBQUUsU0FBUztxREFDaEI7aURBQ0Y7Z0RBQ0QsWUFBWSxFQUFFLHFDQUFxQztnREFDbkQsSUFBSSxFQUFFLEtBQUs7Z0RBQ1gsSUFBSSxFQUFFLE9BQU87NkNBQ2Q7eUNBQ0Y7d0NBQ0QsWUFBWSxFQUFFLHVDQUF1Qzt3Q0FDckQsSUFBSSxFQUFFLFdBQVc7d0NBQ2pCLElBQUksRUFBRSxTQUFTO3FDQUNoQjtvQ0FDRDt3Q0FDRSxVQUFVLEVBQUU7NENBQ1Y7Z0RBQ0UsWUFBWSxFQUFFLFFBQVE7Z0RBQ3RCLElBQUksRUFBRSxRQUFRO2dEQUNkLElBQUksRUFBRSxRQUFROzZDQUNmOzRDQUNEO2dEQUNFLFlBQVksRUFBRSxTQUFTO2dEQUN2QixJQUFJLEVBQUUsa0JBQWtCO2dEQUN4QixJQUFJLEVBQUUsU0FBUzs2Q0FDaEI7NENBQ0Q7Z0RBQ0UsWUFBWSxFQUFFLFFBQVE7Z0RBQ3RCLElBQUksRUFBRSxpQkFBaUI7Z0RBQ3ZCLElBQUksRUFBRSxRQUFROzZDQUNmO3lDQUNGO3dDQUNELFlBQVksRUFBRSxtQ0FBbUM7d0NBQ2pELElBQUksRUFBRSxRQUFRO3dDQUNkLElBQUksRUFBRSxPQUFPO3FDQUNkO2lDQUNGO2dDQUNELFlBQVksRUFBRSx3Q0FBd0M7Z0NBQ3RELElBQUksRUFBRSxRQUFRO2dDQUNkLElBQUksRUFBRSxPQUFPOzZCQUNkOzRCQUNEO2dDQUNFLFVBQVUsRUFBRTtvQ0FDVjt3Q0FDRSxZQUFZLEVBQUUsUUFBUTt3Q0FDdEIsSUFBSSxFQUFFLFFBQVE7d0NBQ2QsSUFBSSxFQUFFLFFBQVE7cUNBQ2Y7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFNBQVM7d0NBQ3ZCLElBQUksRUFBRSxTQUFTO3dDQUNmLElBQUksRUFBRSxTQUFTO3FDQUNoQjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsTUFBTTt3Q0FDcEIsSUFBSSxFQUFFLG9CQUFvQjt3Q0FDMUIsSUFBSSxFQUFFLE1BQU07cUNBQ2I7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLE1BQU07d0NBQ3BCLElBQUksRUFBRSwyQkFBMkI7d0NBQ2pDLElBQUksRUFBRSxNQUFNO3FDQUNiO29DQUNEO3dDQUNFLFlBQVksRUFBRSxTQUFTO3dDQUN2QixJQUFJLEVBQUUsY0FBYzt3Q0FDcEIsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO2lDQUNGO2dDQUNELFlBQVksRUFBRSx1Q0FBdUM7Z0NBQ3JELElBQUksRUFBRSxXQUFXO2dDQUNqQixJQUFJLEVBQUUsU0FBUzs2QkFDaEI7NEJBQ0Q7Z0NBQ0UsVUFBVSxFQUFFO29DQUNWO3dDQUNFLFlBQVksRUFBRSxRQUFRO3dDQUN0QixJQUFJLEVBQUUsV0FBVzt3Q0FDakIsSUFBSSxFQUFFLFFBQVE7cUNBQ2Y7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFFBQVE7d0NBQ3RCLElBQUksRUFBRSxhQUFhO3dDQUNuQixJQUFJLEVBQUUsUUFBUTtxQ0FDZjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsUUFBUTt3Q0FDdEIsSUFBSSxFQUFFLGVBQWU7d0NBQ3JCLElBQUksRUFBRSxRQUFRO3FDQUNmO29DQUNEO3dDQUNFLFlBQVksRUFBRSxRQUFRO3dDQUN0QixJQUFJLEVBQUUsZUFBZTt3Q0FDckIsSUFBSSxFQUFFLFFBQVE7cUNBQ2Y7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLE1BQU07d0NBQ3BCLElBQUksRUFBRSxnQkFBZ0I7d0NBQ3RCLElBQUksRUFBRSxNQUFNO3FDQUNiO29DQUNEO3dDQUNFLFlBQVksRUFBRSxTQUFTO3dDQUN2QixJQUFJLEVBQUUsY0FBYzt3Q0FDcEIsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO2lDQUNGO2dDQUNELFlBQVksRUFBRSw0Q0FBNEM7Z0NBQzFELElBQUksRUFBRSxnQkFBZ0I7Z0NBQ3RCLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxVQUFVLEVBQUU7b0NBQ1Y7d0NBQ0UsWUFBWSxFQUFFLFFBQVE7d0NBQ3RCLElBQUksRUFBRSxXQUFXO3dDQUNqQixJQUFJLEVBQUUsUUFBUTtxQ0FDZjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsUUFBUTt3Q0FDdEIsSUFBSSxFQUFFLGFBQWE7d0NBQ25CLElBQUksRUFBRSxRQUFRO3FDQUNmO29DQUNEO3dDQUNFLFlBQVksRUFBRSxRQUFRO3dDQUN0QixJQUFJLEVBQUUsUUFBUTt3Q0FDZCxJQUFJLEVBQUUsUUFBUTtxQ0FDZjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsU0FBUzt3Q0FDdkIsSUFBSSxFQUFFLFNBQVM7d0NBQ2YsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO29DQUNEO3dDQUNFLFlBQVksRUFBRSxNQUFNO3dDQUNwQixJQUFJLEVBQUUsb0JBQW9CO3dDQUMxQixJQUFJLEVBQUUsTUFBTTtxQ0FDYjtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsU0FBUzt3Q0FDdkIsSUFBSSxFQUFFLGNBQWM7d0NBQ3BCLElBQUksRUFBRSxTQUFTO3FDQUNoQjtpQ0FDRjtnQ0FDRCxZQUFZLEVBQUUseUNBQXlDO2dDQUN2RCxJQUFJLEVBQUUsYUFBYTtnQ0FDbkIsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxNQUFNO2dDQUNwQixJQUFJLEVBQUUsa0JBQWtCO2dDQUN4QixJQUFJLEVBQUUsTUFBTTs2QkFDYjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsTUFBTTtnQ0FDcEIsSUFBSSxFQUFFLFNBQVM7Z0NBQ2YsSUFBSSxFQUFFLE1BQU07NkJBQ2I7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLFFBQVE7Z0NBQ3RCLElBQUksRUFBRSxVQUFVO2dDQUNoQixJQUFJLEVBQUUsUUFBUTs2QkFDZjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsTUFBTTtnQ0FDcEIsSUFBSSxFQUFFLGFBQWE7Z0NBQ25CLElBQUksRUFBRSxNQUFNOzZCQUNiOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsYUFBYTtnQ0FDbkIsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7eUJBQ0Y7d0JBQ0QsWUFBWSxFQUFFLHNDQUFzQzt3QkFDcEQsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLElBQUksRUFBRSxPQUFPO3FCQUNkO29CQUNEO3dCQUNFLFlBQVksRUFBRSxPQUFPO3dCQUNyQixJQUFJLEVBQUUsY0FBYzt3QkFDcEIsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFNBQVM7d0JBQ3ZCLElBQUksRUFBRSxTQUFTO3dCQUNmLElBQUksRUFBRSxTQUFTO3FCQUNoQjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsT0FBTzt3QkFDckIsSUFBSSxFQUFFLGNBQWM7d0JBQ3BCLElBQUksRUFBRSxPQUFPO3FCQUNkO29CQUNEO3dCQUNFLFlBQVksRUFBRSxPQUFPO3dCQUNyQixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFNBQVM7d0JBQ3ZCLElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsU0FBUztxQkFDaEI7aUJBQ0Y7Z0JBQ0QsWUFBWSxFQUFFLGlEQUFpRDtnQkFDL0QsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7WUFDRDtnQkFDRSxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVBQUUsU0FBUzt3QkFDZixJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLElBQUksRUFBRSxvQkFBb0I7d0JBQzFCLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFlBQVksRUFBRSxNQUFNO3dCQUNwQixJQUFJLEVBQUUsMkJBQTJCO3dCQUNqQyxJQUFJLEVBQUUsTUFBTTtxQkFDYjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLGNBQWM7d0JBQ3BCLElBQUksRUFBRSxTQUFTO3FCQUNoQjtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsdUNBQXVDO2dCQUNyRCxJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLGFBQWE7d0JBQ25CLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsZUFBZTt3QkFDckIsSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxlQUFlO3dCQUNyQixJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLGdCQUFnQjt3QkFDdEIsSUFBSSxFQUFFLE1BQU07cUJBQ2I7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFNBQVM7d0JBQ3ZCLElBQUksRUFBRSxjQUFjO3dCQUNwQixJQUFJLEVBQUUsU0FBUztxQkFDaEI7aUJBQ0Y7Z0JBQ0QsWUFBWSxFQUFFLDRDQUE0QztnQkFDMUQsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLGFBQWE7d0JBQ25CLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFlBQVksRUFBRSxNQUFNO3dCQUNwQixJQUFJLEVBQUUsb0JBQW9CO3dCQUMxQixJQUFJLEVBQUUsTUFBTTtxQkFDYjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLGNBQWM7d0JBQ3BCLElBQUksRUFBRSxTQUFTO3FCQUNoQjtpQkFDRjtnQkFDRCxZQUFZLEVBQUUseUNBQXlDO2dCQUN2RCxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSw2QkFBNkI7UUFDbkMsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLElBQUksRUFBRSxNQUFNO2FBQ2I7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSwwQkFBMEI7UUFDaEMsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLElBQUksRUFBRSxNQUFNO2FBQ2I7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxvQkFBb0I7UUFDMUIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsVUFBVSxFQUFFO29CQUNWO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsaUJBQWlCO3dCQUN2QixJQUFJLEVBQUUsUUFBUTtxQkFDZjtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsbUNBQW1DO2dCQUNqRCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsY0FBYztRQUNwQixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7WUFDRDtnQkFDRSxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsVUFBVSxFQUFFOzRCQUNWO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsTUFBTTtnQ0FDWixJQUFJLEVBQUUsUUFBUTs2QkFDZjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLFNBQVM7Z0NBQ3ZCLElBQUksRUFBRSxVQUFVO2dDQUNoQixJQUFJLEVBQUUsU0FBUzs2QkFDaEI7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLFFBQVE7Z0NBQ3RCLElBQUksRUFBRSxNQUFNO2dDQUNaLElBQUksRUFBRSxRQUFROzZCQUNmOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxNQUFNO2dDQUNwQixJQUFJLEVBQUUsaUJBQWlCO2dDQUN2QixJQUFJLEVBQUUsTUFBTTs2QkFDYjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsT0FBTztnQ0FDckIsSUFBSSxFQUFFLFdBQVc7Z0NBQ2pCLElBQUksRUFBRSxPQUFPOzZCQUNkOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxNQUFNO2dDQUNwQixJQUFJLEVBQUUsZUFBZTtnQ0FDckIsSUFBSSxFQUFFLE1BQU07NkJBQ2I7NEJBQ0Q7Z0NBQ0UsVUFBVSxFQUFFO29DQUNWO3dDQUNFLFlBQVksRUFBRSxTQUFTO3dDQUN2QixJQUFJLEVBQUUsU0FBUzt3Q0FDZixJQUFJLEVBQUUsU0FBUztxQ0FDaEI7b0NBQ0Q7d0NBQ0UsVUFBVSxFQUFFOzRDQUNWO2dEQUNFLFlBQVksRUFBRSxNQUFNO2dEQUNwQixJQUFJLEVBQUUsbUJBQW1CO2dEQUN6QixJQUFJLEVBQUUsTUFBTTs2Q0FDYjs0Q0FDRDtnREFDRSxZQUFZLEVBQUUsU0FBUztnREFDdkIsSUFBSSxFQUFFLFlBQVk7Z0RBQ2xCLElBQUksRUFBRSxTQUFTOzZDQUNoQjs0Q0FDRDtnREFDRSxZQUFZLEVBQUUsT0FBTztnREFDckIsSUFBSSxFQUFFLFNBQVM7Z0RBQ2YsSUFBSSxFQUFFLE9BQU87NkNBQ2Q7NENBQ0Q7Z0RBQ0UsWUFBWSxFQUFFLE9BQU87Z0RBQ3JCLElBQUksRUFBRSxpQkFBaUI7Z0RBQ3ZCLElBQUksRUFBRSxPQUFPOzZDQUNkOzRDQUNEO2dEQUNFLFlBQVksRUFBRSxTQUFTO2dEQUN2QixJQUFJLEVBQUUsdUJBQXVCO2dEQUM3QixJQUFJLEVBQUUsU0FBUzs2Q0FDaEI7eUNBQ0Y7d0NBQ0QsWUFBWSxFQUFFLHFDQUFxQzt3Q0FDbkQsSUFBSSxFQUFFLEtBQUs7d0NBQ1gsSUFBSSxFQUFFLE9BQU87cUNBQ2Q7aUNBQ0Y7Z0NBQ0QsWUFBWSxFQUFFLHVDQUF1QztnQ0FDckQsSUFBSSxFQUFFLFdBQVc7Z0NBQ2pCLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxVQUFVLEVBQUU7b0NBQ1Y7d0NBQ0UsWUFBWSxFQUFFLFFBQVE7d0NBQ3RCLElBQUksRUFBRSxRQUFRO3dDQUNkLElBQUksRUFBRSxRQUFRO3FDQUNmO29DQUNEO3dDQUNFLFlBQVksRUFBRSxTQUFTO3dDQUN2QixJQUFJLEVBQUUsa0JBQWtCO3dDQUN4QixJQUFJLEVBQUUsU0FBUztxQ0FDaEI7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFFBQVE7d0NBQ3RCLElBQUksRUFBRSxpQkFBaUI7d0NBQ3ZCLElBQUksRUFBRSxRQUFRO3FDQUNmO2lDQUNGO2dDQUNELFlBQVksRUFBRSxtQ0FBbUM7Z0NBQ2pELElBQUksRUFBRSxRQUFRO2dDQUNkLElBQUksRUFBRSxPQUFPOzZCQUNkO3lCQUNGO3dCQUNELFlBQVksRUFBRSx3Q0FBd0M7d0JBQ3RELElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxPQUFPO3FCQUNkO29CQUNEO3dCQUNFLFVBQVUsRUFBRTs0QkFDVjtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLFNBQVM7Z0NBQ3ZCLElBQUksRUFBRSxTQUFTO2dDQUNmLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsTUFBTTtnQ0FDcEIsSUFBSSxFQUFFLG9CQUFvQjtnQ0FDMUIsSUFBSSxFQUFFLE1BQU07NkJBQ2I7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLE1BQU07Z0NBQ3BCLElBQUksRUFBRSwyQkFBMkI7Z0NBQ2pDLElBQUksRUFBRSxNQUFNOzZCQUNiOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxTQUFTO2dDQUN2QixJQUFJLEVBQUUsY0FBYztnQ0FDcEIsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCO3lCQUNGO3dCQUNELFlBQVksRUFBRSx1Q0FBdUM7d0JBQ3JELElBQUksRUFBRSxXQUFXO3dCQUNqQixJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsVUFBVSxFQUFFOzRCQUNWO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsV0FBVztnQ0FDakIsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLFFBQVE7Z0NBQ3RCLElBQUksRUFBRSxhQUFhO2dDQUNuQixJQUFJLEVBQUUsUUFBUTs2QkFDZjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLGVBQWU7Z0NBQ3JCLElBQUksRUFBRSxRQUFROzZCQUNmOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsZUFBZTtnQ0FDckIsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLE1BQU07Z0NBQ3BCLElBQUksRUFBRSxnQkFBZ0I7Z0NBQ3RCLElBQUksRUFBRSxNQUFNOzZCQUNiOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxTQUFTO2dDQUN2QixJQUFJLEVBQUUsY0FBYztnQ0FDcEIsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCO3lCQUNGO3dCQUNELFlBQVksRUFBRSw0Q0FBNEM7d0JBQzFELElBQUksRUFBRSxnQkFBZ0I7d0JBQ3RCLElBQUksRUFBRSxTQUFTO3FCQUNoQjtvQkFDRDt3QkFDRSxVQUFVLEVBQUU7NEJBQ1Y7Z0NBQ0UsWUFBWSxFQUFFLFFBQVE7Z0NBQ3RCLElBQUksRUFBRSxXQUFXO2dDQUNqQixJQUFJLEVBQUUsUUFBUTs2QkFDZjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLGFBQWE7Z0NBQ25CLElBQUksRUFBRSxRQUFROzZCQUNmOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxRQUFRO2dDQUN0QixJQUFJLEVBQUUsUUFBUTtnQ0FDZCxJQUFJLEVBQUUsUUFBUTs2QkFDZjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsU0FBUztnQ0FDdkIsSUFBSSxFQUFFLFNBQVM7Z0NBQ2YsSUFBSSxFQUFFLFNBQVM7NkJBQ2hCOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxNQUFNO2dDQUNwQixJQUFJLEVBQUUsb0JBQW9CO2dDQUMxQixJQUFJLEVBQUUsTUFBTTs2QkFDYjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsU0FBUztnQ0FDdkIsSUFBSSxFQUFFLGNBQWM7Z0NBQ3BCLElBQUksRUFBRSxTQUFTOzZCQUNoQjt5QkFDRjt3QkFDRCxZQUFZLEVBQUUseUNBQXlDO3dCQUN2RCxJQUFJLEVBQUUsYUFBYTt3QkFDbkIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFlBQVksRUFBRSxNQUFNO3dCQUNwQixJQUFJLEVBQUUsa0JBQWtCO3dCQUN4QixJQUFJLEVBQUUsTUFBTTtxQkFDYjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsSUFBSSxFQUFFLE1BQU07cUJBQ2I7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxVQUFVO3dCQUNoQixJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLGFBQWE7d0JBQ25CLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsYUFBYTt3QkFDbkIsSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7aUJBQ0Y7Z0JBQ0QsWUFBWSxFQUFFLHNDQUFzQztnQkFDcEQsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxhQUFhO1FBQ25CLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFVBQVUsRUFBRTtvQkFDVjt3QkFDRSxZQUFZLEVBQUUsTUFBTTt3QkFDcEIsSUFBSSxFQUFFLG1CQUFtQjt3QkFDekIsSUFBSSxFQUFFLE1BQU07cUJBQ2I7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLFNBQVM7d0JBQ3ZCLElBQUksRUFBRSxZQUFZO3dCQUNsQixJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE9BQU87d0JBQ3JCLElBQUksRUFBRSxTQUFTO3dCQUNmLElBQUksRUFBRSxPQUFPO3FCQUNkO29CQUNEO3dCQUNFLFlBQVksRUFBRSxPQUFPO3dCQUNyQixJQUFJLEVBQUUsaUJBQWlCO3dCQUN2QixJQUFJLEVBQUUsT0FBTztxQkFDZDtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLHVCQUF1Qjt3QkFDN0IsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO2lCQUNGO2dCQUNELFlBQVksRUFBRSxxQ0FBcUM7Z0JBQ25ELElBQUksRUFBRSxLQUFLO2dCQUNYLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxjQUFjO1FBQ3BCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGVBQWU7UUFDckIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7WUFDRDtnQkFDRSxZQUFZLEVBQUUsTUFBTTtnQkFDcEIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxNQUFNO2FBQ2I7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFlBQVksRUFBRSxNQUFNO2dCQUNwQixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsTUFBTTthQUNiO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsT0FBTztRQUNiLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFlBQVksRUFBRSxNQUFNO2dCQUNwQixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLE1BQU07YUFDYjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7WUFDRDtnQkFDRSxZQUFZLEVBQUUsTUFBTTtnQkFDcEIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLE1BQU07YUFDYjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxRQUFRO2dCQUN0QixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLFdBQVc7UUFDakIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxNQUFNO2dCQUNwQixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLE1BQU07YUFDYjtTQUNGO1FBQ0QsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxjQUFjO1FBQ3BCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxpQkFBaUI7UUFDdkIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsSUFBSSxFQUFFLGFBQWE7UUFDbkIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFdBQVc7Z0JBQ3pCLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxXQUFXO2FBQ2xCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFdBQVc7Z0JBQ3pCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsV0FBVzthQUNsQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxjQUFjO1FBQ3BCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsSUFBSSxFQUFFLGVBQWU7UUFDckIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFdBQVc7Z0JBQ3pCLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsV0FBVzthQUNsQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxlQUFlO1FBQ3JCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsVUFBVSxFQUFFO29CQUNWO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsaUJBQWlCO3dCQUN2QixJQUFJLEVBQUUsUUFBUTtxQkFDZjtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsbUNBQW1DO2dCQUNqRCxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxNQUFNO3dCQUNaLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLElBQUksRUFBRSxTQUFTO3FCQUNoQjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLE1BQU07d0JBQ1osSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLElBQUksRUFBRSxpQkFBaUI7d0JBQ3ZCLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFlBQVksRUFBRSxPQUFPO3dCQUNyQixJQUFJLEVBQUUsV0FBVzt3QkFDakIsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLElBQUksRUFBRSxlQUFlO3dCQUNyQixJQUFJLEVBQUUsTUFBTTtxQkFDYjtvQkFDRDt3QkFDRSxVQUFVLEVBQUU7NEJBQ1Y7Z0NBQ0UsWUFBWSxFQUFFLFNBQVM7Z0NBQ3ZCLElBQUksRUFBRSxTQUFTO2dDQUNmLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxVQUFVLEVBQUU7b0NBQ1Y7d0NBQ0UsWUFBWSxFQUFFLE1BQU07d0NBQ3BCLElBQUksRUFBRSxtQkFBbUI7d0NBQ3pCLElBQUksRUFBRSxNQUFNO3FDQUNiO29DQUNEO3dDQUNFLFlBQVksRUFBRSxTQUFTO3dDQUN2QixJQUFJLEVBQUUsWUFBWTt3Q0FDbEIsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO29DQUNEO3dDQUNFLFlBQVksRUFBRSxPQUFPO3dDQUNyQixJQUFJLEVBQUUsU0FBUzt3Q0FDZixJQUFJLEVBQUUsT0FBTztxQ0FDZDtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsT0FBTzt3Q0FDckIsSUFBSSxFQUFFLGlCQUFpQjt3Q0FDdkIsSUFBSSxFQUFFLE9BQU87cUNBQ2Q7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFNBQVM7d0NBQ3ZCLElBQUksRUFBRSx1QkFBdUI7d0NBQzdCLElBQUksRUFBRSxTQUFTO3FDQUNoQjtpQ0FDRjtnQ0FDRCxZQUFZLEVBQUUscUNBQXFDO2dDQUNuRCxJQUFJLEVBQUUsS0FBSztnQ0FDWCxJQUFJLEVBQUUsT0FBTzs2QkFDZDt5QkFDRjt3QkFDRCxZQUFZLEVBQUUsdUNBQXVDO3dCQUNyRCxJQUFJLEVBQUUsV0FBVzt3QkFDakIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFVBQVUsRUFBRTs0QkFDVjtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLFNBQVM7Z0NBQ3ZCLElBQUksRUFBRSxrQkFBa0I7Z0NBQ3hCLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLGlCQUFpQjtnQ0FDdkIsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7eUJBQ0Y7d0JBQ0QsWUFBWSxFQUFFLG1DQUFtQzt3QkFDakQsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7aUJBQ0Y7Z0JBQ0QsWUFBWSxFQUFFLHdDQUF3QztnQkFDdEQsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELElBQUksRUFBRSxpQkFBaUI7UUFDdkIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsVUFBVSxFQUFFO29CQUNWO3dCQUNFLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVBQUUsU0FBUzt3QkFDZixJQUFJLEVBQUUsU0FBUztxQkFDaEI7b0JBQ0Q7d0JBQ0UsVUFBVSxFQUFFOzRCQUNWO2dDQUNFLFlBQVksRUFBRSxNQUFNO2dDQUNwQixJQUFJLEVBQUUsbUJBQW1CO2dDQUN6QixJQUFJLEVBQUUsTUFBTTs2QkFDYjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsU0FBUztnQ0FDdkIsSUFBSSxFQUFFLFlBQVk7Z0NBQ2xCLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsT0FBTztnQ0FDckIsSUFBSSxFQUFFLFNBQVM7Z0NBQ2YsSUFBSSxFQUFFLE9BQU87NkJBQ2Q7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLE9BQU87Z0NBQ3JCLElBQUksRUFBRSxpQkFBaUI7Z0NBQ3ZCLElBQUksRUFBRSxPQUFPOzZCQUNkOzRCQUNEO2dDQUNFLFlBQVksRUFBRSxTQUFTO2dDQUN2QixJQUFJLEVBQUUsdUJBQXVCO2dDQUM3QixJQUFJLEVBQUUsU0FBUzs2QkFDaEI7eUJBQ0Y7d0JBQ0QsWUFBWSxFQUFFLHFDQUFxQzt3QkFDbkQsSUFBSSxFQUFFLEtBQUs7d0JBQ1gsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7aUJBQ0Y7Z0JBQ0QsWUFBWSxFQUFFLHVDQUF1QztnQkFDckQsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxpQkFBaUI7UUFDdkIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtRQUNELElBQUksRUFBRSxrQkFBa0I7UUFDeEIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0NBQ0YsQ0FBQztBQUVXLFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUI7UUFDRSxTQUFTLEVBQUUsS0FBSztRQUNoQixNQUFNLEVBQUU7WUFDTjtnQkFDRSxPQUFPLEVBQUUsSUFBSTtnQkFDYixZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixJQUFJLEVBQUUsT0FBTztLQUNkO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtRQUNELGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtRQUNELGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtRQUNELGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsU0FBUztRQUNmLE9BQU8sRUFBRSxFQUFFO1FBQ1gsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLEVBQUU7UUFDWCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsV0FBVztRQUNqQixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLE1BQU07UUFDdkIsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsV0FBVztnQkFDekIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLFdBQVc7YUFDbEI7U0FDRjtRQUNELGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxvQkFBb0I7UUFDMUIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsVUFBVSxFQUFFO29CQUNWO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsaUJBQWlCO3dCQUN2QixJQUFJLEVBQUUsUUFBUTtxQkFDZjtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsbUNBQW1DO2dCQUNqRCxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGVBQWU7UUFDckIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsVUFBVTtRQUNoQixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsUUFBUTtnQkFDdEIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLFlBQVksRUFBRSxRQUFRO2dCQUN0QixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUUsRUFBRTtRQUNYLGVBQWUsRUFBRSxTQUFTO1FBQzFCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxPQUFPO1FBQ2IsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLElBQUksRUFBRSxZQUFZO2dCQUNsQixJQUFJLEVBQUUsTUFBTTthQUNiO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLEVBQUU7UUFDWCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsT0FBTztRQUNiLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsRUFBRTtnQkFDUixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsZUFBZSxFQUFFLE1BQU07UUFDdkIsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLFlBQVk7UUFDbEIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsT0FBTztnQkFDckIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLFVBQVU7S0FDakI7SUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsVUFBVSxFQUFFO29CQUNWO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLGtCQUFrQjt3QkFDeEIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsaUJBQWlCO3dCQUN2QixJQUFJLEVBQUUsUUFBUTtxQkFDZjtpQkFDRjtnQkFDRCxZQUFZLEVBQUUsbUNBQW1DO2dCQUNqRCxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLE9BQU87YUFDZDtTQUNGO1FBQ0QsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixPQUFPLEVBQUU7WUFDUDtnQkFDRSxZQUFZLEVBQUUsUUFBUTtnQkFDdEIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsWUFBWSxFQUFFLFFBQVE7d0JBQ3RCLElBQUksRUFBRSxNQUFNO3dCQUNaLElBQUksRUFBRSxRQUFRO3FCQUNmO29CQUNEO3dCQUNFLFlBQVksRUFBRSxRQUFRO3dCQUN0QixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsUUFBUTtxQkFDZjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLElBQUksRUFBRSxTQUFTO3FCQUNoQjtvQkFDRDt3QkFDRSxZQUFZLEVBQUUsUUFBUTt3QkFDdEIsSUFBSSxFQUFFLE1BQU07d0JBQ1osSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLElBQUksRUFBRSxpQkFBaUI7d0JBQ3ZCLElBQUksRUFBRSxNQUFNO3FCQUNiO29CQUNEO3dCQUNFLFlBQVksRUFBRSxPQUFPO3dCQUNyQixJQUFJLEVBQUUsV0FBVzt3QkFDakIsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7b0JBQ0Q7d0JBQ0UsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLElBQUksRUFBRSxlQUFlO3dCQUNyQixJQUFJLEVBQUUsTUFBTTtxQkFDYjtvQkFDRDt3QkFDRSxVQUFVLEVBQUU7NEJBQ1Y7Z0NBQ0UsWUFBWSxFQUFFLFNBQVM7Z0NBQ3ZCLElBQUksRUFBRSxTQUFTO2dDQUNmLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxVQUFVLEVBQUU7b0NBQ1Y7d0NBQ0UsWUFBWSxFQUFFLE1BQU07d0NBQ3BCLElBQUksRUFBRSxtQkFBbUI7d0NBQ3pCLElBQUksRUFBRSxNQUFNO3FDQUNiO29DQUNEO3dDQUNFLFlBQVksRUFBRSxTQUFTO3dDQUN2QixJQUFJLEVBQUUsWUFBWTt3Q0FDbEIsSUFBSSxFQUFFLFNBQVM7cUNBQ2hCO29DQUNEO3dDQUNFLFlBQVksRUFBRSxPQUFPO3dDQUNyQixJQUFJLEVBQUUsU0FBUzt3Q0FDZixJQUFJLEVBQUUsT0FBTztxQ0FDZDtvQ0FDRDt3Q0FDRSxZQUFZLEVBQUUsT0FBTzt3Q0FDckIsSUFBSSxFQUFFLGlCQUFpQjt3Q0FDdkIsSUFBSSxFQUFFLE9BQU87cUNBQ2Q7b0NBQ0Q7d0NBQ0UsWUFBWSxFQUFFLFNBQVM7d0NBQ3ZCLElBQUksRUFBRSx1QkFBdUI7d0NBQzdCLElBQUksRUFBRSxTQUFTO3FDQUNoQjtpQ0FDRjtnQ0FDRCxZQUFZLEVBQUUscUNBQXFDO2dDQUNuRCxJQUFJLEVBQUUsS0FBSztnQ0FDWCxJQUFJLEVBQUUsT0FBTzs2QkFDZDt5QkFDRjt3QkFDRCxZQUFZLEVBQUUsdUNBQXVDO3dCQUNyRCxJQUFJLEVBQUUsV0FBVzt3QkFDakIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNEO3dCQUNFLFVBQVUsRUFBRTs0QkFDVjtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7NEJBQ0Q7Z0NBQ0UsWUFBWSxFQUFFLFNBQVM7Z0NBQ3ZCLElBQUksRUFBRSxrQkFBa0I7Z0NBQ3hCLElBQUksRUFBRSxTQUFTOzZCQUNoQjs0QkFDRDtnQ0FDRSxZQUFZLEVBQUUsUUFBUTtnQ0FDdEIsSUFBSSxFQUFFLGlCQUFpQjtnQ0FDdkIsSUFBSSxFQUFFLFFBQVE7NkJBQ2Y7eUJBQ0Y7d0JBQ0QsWUFBWSxFQUFFLG1DQUFtQzt3QkFDakQsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7aUJBQ0Y7Z0JBQ0QsWUFBWSxFQUFFLHdDQUF3QztnQkFDdEQsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxPQUFPO2FBQ2Q7U0FDRjtRQUNELElBQUksRUFBRSxpQkFBaUI7UUFDdkIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixJQUFJLEVBQUUsVUFBVTtLQUNqQjtDQUNGLENBQUM7QUFDVyxRQUFBLGVBQWUsR0FDMUIsZ3pnREFBZ3pnRCxDQUFDIn0= diff --git a/dist/helpers/hedera/hts_abi.ts b/dist/helpers/hedera/hts_abi.ts deleted file mode 100644 index d3d8f2ab9..000000000 --- a/dist/helpers/hedera/hts_abi.ts +++ /dev/null @@ -1,3565 +0,0 @@ -export const HEDERA_TOKEN_SERVICE_ABI = [ - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "approved", - type: "address", - }, - { - internalType: "uint256", - name: "serialNumber", - type: "uint256", - }, - ], - name: "approveNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "associateToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address[]", - name: "tokens", - type: "address[]", - }, - ], - name: "associateTokens", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint64", - name: "amount", - type: "uint64", - }, - { - internalType: "int64[]", - name: "serialNumbers", - type: "int64[]", - }, - ], - name: "burnToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "uint64", - name: "newTotalSupply", - type: "uint64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - { - internalType: "uint64", - name: "initialTotalSupply", - type: "uint64", - }, - { - internalType: "uint32", - name: "decimals", - type: "uint32", - }, - ], - name: "createFungibleToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - { - internalType: "uint64", - name: "initialTotalSupply", - type: "uint64", - }, - { - internalType: "uint32", - name: "decimals", - type: "uint32", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - ], - name: "createFungibleTokenWithCustomFees", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - ], - name: "createNonFungibleToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - ], - name: "createNonFungibleTokenWithCustomFees", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "accountID", - type: "address", - }, - { - internalType: "int64", - name: "amount", - type: "int64", - }, - ], - internalType: "struct IHederaTokenService.AccountAmount[]", - name: "transfers", - type: "tuple[]", - }, - { - components: [ - { - internalType: "address", - name: "senderAccountID", - type: "address", - }, - { - internalType: "address", - name: "receiverAccountID", - type: "address", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - ], - internalType: "struct IHederaTokenService.NftTransfer[]", - name: "nftTransfers", - type: "tuple[]", - }, - ], - internalType: "struct IHederaTokenService.TokenTransferList[]", - name: "tokenTransfers", - type: "tuple[]", - }, - ], - name: "cryptoTransfer", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "deleteToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "dissociateToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address[]", - name: "tokens", - type: "address[]", - }, - ], - name: "dissociateTokens", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "freezeToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "serialNumber", - type: "uint256", - }, - ], - name: "getApproved", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "approved", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getFungibleTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - components: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "hedera", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - { - internalType: "bool", - name: "deleted", - type: "bool", - }, - { - internalType: "string", - name: "ledgerId", - type: "string", - }, - { - internalType: "bool", - name: "pauseStatus", - type: "bool", - }, - { - internalType: "uint64", - name: "totalSupply", - type: "uint64", - }, - ], - internalType: "struct IHederaTokenService.TokenInfo", - name: "tokenInfo", - type: "tuple", - }, - { - internalType: "uint32", - name: "decimals", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.FungibleTokenInfo", - name: "fungibleTokenInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - ], - name: "getNonFungibleTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - components: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "hedera", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - { - internalType: "bool", - name: "deleted", - type: "bool", - }, - { - internalType: "string", - name: "ledgerId", - type: "string", - }, - { - internalType: "bool", - name: "pauseStatus", - type: "bool", - }, - { - internalType: "uint64", - name: "totalSupply", - type: "uint64", - }, - ], - internalType: "struct IHederaTokenService.TokenInfo", - name: "tokenInfo", - type: "tuple", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - { - internalType: "address", - name: "ownerId", - type: "address", - }, - { - internalType: "int64", - name: "creationTime", - type: "int64", - }, - { - internalType: "bytes", - name: "metadata", - type: "bytes", - }, - { - internalType: "address", - name: "spenderId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.NonFungibleTokenInfo", - name: "nonFungibleTokenInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenCustomFees", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenDefaultFreezeStatus", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "defaultFreezeStatus", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenDefaultKycStatus", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenExpiryInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "hedera", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - { - internalType: "bool", - name: "deleted", - type: "bool", - }, - { - internalType: "string", - name: "ledgerId", - type: "string", - }, - { - internalType: "bool", - name: "pauseStatus", - type: "bool", - }, - { - internalType: "uint64", - name: "totalSupply", - type: "uint64", - }, - ], - internalType: "struct IHederaTokenService.TokenInfo", - name: "tokenInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - ], - name: "getTokenKey", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenType", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "int32", - name: "tokenType", - type: "int32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "operator", - type: "address", - }, - ], - name: "isApprovedForAll", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "approved", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "isFrozen", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "frozen", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "isKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "kycGranted", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "isToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "isToken", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint64", - name: "amount", - type: "uint64", - }, - { - internalType: "bytes[]", - name: "metadata", - type: "bytes[]", - }, - ], - name: "mintToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "uint64", - name: "newTotalSupply", - type: "uint64", - }, - { - internalType: "int64[]", - name: "serialNumbers", - type: "int64[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "pauseToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "operator", - type: "address", - }, - { - internalType: "bool", - name: "approved", - type: "bool", - }, - ], - name: "setApprovalForAll", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "serialNumber", - type: "uint256", - }, - ], - name: "transferFromNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - ], - name: "transferNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address[]", - name: "sender", - type: "address[]", - }, - { - internalType: "address[]", - name: "receiver", - type: "address[]", - }, - { - internalType: "int64[]", - name: "serialNumber", - type: "int64[]", - }, - ], - name: "transferNFTs", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "int64", - name: "amount", - type: "int64", - }, - ], - name: "transferToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address[]", - name: "accountId", - type: "address[]", - }, - { - internalType: "int64[]", - name: "amount", - type: "int64[]", - }, - ], - name: "transferTokens", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "unfreezeToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "unpauseToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiryInfo", - type: "tuple", - }, - ], - name: "updateTokenExpiryInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "tokenInfo", - type: "tuple", - }, - ], - name: "updateTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "keys", - type: "tuple[]", - }, - ], - name: "updateTokenKeys", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - ], - name: "wipeTokenAccount", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "int64[]", - name: "serialNumbers", - type: "int64[]", - }, - ], - name: "wipeTokenAccountNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; - -export const HEDERA_PROXY_ABI = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - inputs: [], - name: "DEFAULT_EXPIRY", - outputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_INT", - outputs: [ - { - internalType: "int64", - name: "", - type: "int64", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "baseURI", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "baseUri", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "uint256", - name: "serialNum", - type: "uint256", - }, - ], - name: "burnFor", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "int64", - name: "serialNum", - type: "int64", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "claimNft", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "data", - type: "uint256", - }, - ], - name: "decodeHts", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "int64", - name: "", - type: "int64", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "claimer", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getClaimableNfts", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenExpiryInfo", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiryInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "htsToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "string", - name: "baseURI_", - type: "string", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "isKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "kycGranted", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "pauseToken", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address", - }, - { - internalType: "address", - name: "_to", - type: "address", - }, - { - internalType: "uint256", - name: "_serialNum", - type: "uint256", - }, - ], - name: "safeTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "tokenURI", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "unpauseToken", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiryInfo", - type: "tuple", - }, - ], - name: "updateTokenExpiryInfo", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "tokenInfo", - type: "tuple", - }, - ], - name: "updateTokenInfo", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; -export const HEDERA_PROXY_BC = - "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; diff --git a/dist/helpers/near.d.ts b/dist/helpers/near.d.ts deleted file mode 100644 index c4386e117..000000000 --- a/dist/helpers/near.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Account, Near, WalletConnection, Contract } from "near-api-js"; -import { FinalExecutionOutcome } from "near-api-js/lib/providers"; -import { EvNotifier } from "../notifier"; -import { - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - MintNft, - NftInfo, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, - PreTransfer, -} from "./chain"; -declare type NearTxResult = [FinalExecutionOutcome, any]; -declare type NearPreTransferArgs = { - to: string; - receiver: string; -}; -export declare type NearParams = { - readonly networkId: string; - readonly nonce: number; - readonly rpcUrl: string; - readonly bridge: string; - readonly xpnft: string; - readonly feeMargin: FeeMargins; - readonly notifier: EvNotifier; - readonly walletUrl: string; - readonly helperUrl: string; -}; -export declare type NearNFT = { - tokenId: string; - contract: string; -}; -export declare type Metadata = { - title?: string; - description?: string; - media?: string; - mediaHash: Uint8Array | null; - issued_at: string | null; - expires_at: string | null; - starts_at: string | null; - updated_at: string | null; - extra?: string; - reference: string | null; - referenceHash: Uint8Array | null; -}; -export interface NearMintArgs { - contract: string; - token_id: string; - token_owner_id: string; - metadata: Metadata; -} -interface BrowserMethods { - connectWallet(): Promise; - getContract(signer: Account, _contract: string): Promise; - getUserMinter(keypair: string, address: string): Promise; -} -export declare type NearHelper = ChainNonceGet & - BalanceCheck & - TransferNftForeign & - UnfreezeForeignNft & - MintNft & - EstimateTxFees & - Pick< - PreTransfer, - "preTransfer" - > & - ValidateAddress & { - XpNft: string; - nftList(owner: Account, contract: string): Promise[]>; - } & GetFeeMargins & - GetProvider & - BrowserMethods; -export declare function nearHelperFactory({ - networkId, - bridge, - rpcUrl, - xpnft, - feeMargin, - notifier, - walletUrl, - helperUrl, -}: NearParams): Promise; -export {}; -//# sourceMappingURL=near.d.ts.map diff --git a/dist/helpers/near.d.ts.map b/dist/helpers/near.d.ts.map deleted file mode 100644 index f74ef6fc1..000000000 --- a/dist/helpers/near.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/helpers/near.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/near.js b/dist/helpers/near.js deleted file mode 100644 index 843bfc834..000000000 --- a/dist/helpers/near.js +++ /dev/null @@ -1,232 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.nearHelperFactory = void 0; -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const bn_js_1 = require("bn.js"); -const near_api_js_1 = require("near-api-js"); -const providers_1 = require("near-api-js/lib/providers"); -const consts_1 = require("../consts"); -async function nearHelperFactory({ - networkId, - bridge, - rpcUrl, - xpnft, - feeMargin, - notifier, - walletUrl, - helperUrl, -}) { - const near = await (0, near_api_js_1.connect)({ - nodeUrl: rpcUrl, - networkId, - headers: {}, - }); - const isApproved = async (account, nft) => { - const { tokenId: token_id, contract } = nft.native; - const result = await account.viewFunction({ - args: { - token_id, - approved_account_id: bridge, - approval_id: null, - }, - contractId: contract, - methodName: "nft_is_approved", - }); - return result; - }; - const getWalletCallbackUrl = (params) => { - let walletCallbackUrl = undefined; - if (globalThis.window !== undefined) { - const network = - location.pathname.match(/^\/(staging|testnet)\/.+/)?.at(1) || ""; - walletCallbackUrl = `${location.protocol}//${location.host}/${network}/connect?${params}`; - } - return walletCallbackUrl; - }; - return { - async estimateValidateTransferNft(_to, _metadata, _mintWith) { - return new bignumber_js_1.default(0); // TODO - }, - async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { - return new bignumber_js_1.default(0); // TODO - }, - getNonce() { - return consts_1.Chain.NEAR; - }, - async balance(address) { - const res = ( - await new near_api_js_1.Account( - near.connection, - address - ).getAccountBalance() - ).available; - return new bignumber_js_1.default(res); - }, - async mintNft(owner, options) { - const result = await owner.functionCall({ - contractId: options.contract, - methodName: "nft_mint", - args: { - token_id: options.token_id, - token_owner_id: options.token_owner_id, - token_metadata: options.metadata, - }, - attachedDeposit: new bn_js_1.BN("10000000000000000000000"), // 0.01 Near - }); - return [result, (0, providers_1.getTransactionLastResult)(result)]; - }, - async nftList(owner, contract) { - const result = await owner.functionCall({ - contractId: contract, - methodName: "nft_tokens_for_owner", - args: { account_id: owner.accountId }, - }); - const res = (0, providers_1.getTransactionLastResult)(result); - return res.map((r) => { - return { - native: { - tokenId: r.token_id, - contract, - }, - collectionIdent: contract, - uri: r.metadata.extra || r.metadata.media, - }; - }); - }, - async preTransfer(sender, nft, _fee, args) { - if (await isApproved(sender, nft)) { - return undefined; - } - if (!args) { - throw new Error("Missing args"); - } - const { receiver, to } = args; - const walletCallbackUrl = getWalletCallbackUrl( - `NEARTRX=true&type=approve&to=${to}&receiver=${encodeURIComponent( - receiver - )}&tokenId=${encodeURIComponent(nft.native.tokenId)}` - ); - const result = await sender.functionCall({ - contractId: nft.native.contract, - methodName: "nft_approve", - args: { - token_id: nft.native.tokenId, - account_id: bridge, - }, - attachedDeposit: new bn_js_1.BN("1000000000000000000000"), - ...(walletCallbackUrl ? { walletCallbackUrl } : {}), - }); - return result.transaction_outcome.id; - }, - XpNft: xpnft, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mint_with) { - const walletCallbackUrl = getWalletCallbackUrl( - `NEARTRX=true&type=transfer&to=${chain_nonce}&receiver=${encodeURIComponent( - to - )}&tokenId=${encodeURIComponent( - id.native.tokenId - )}&contract=${encodeURIComponent(id.native.contract)}` - ); - const result = await sender.functionCall({ - contractId: bridge, - args: { - token_id: id.native.tokenId, - chain_nonce, - to, - amt: new bignumber_js_1.default(txFees), - mint_with, - token_contract: id.native.contract, - }, - methodName: "freeze_nft", - attachedDeposit: new bn_js_1.BN(txFees.toString(10)), - gas: new bn_js_1.BN("46000000000000"), - ...(walletCallbackUrl ? { walletCallbackUrl } : {}), - }); - await notifier.notifyNear(result.transaction.hash); - return [result, (0, providers_1.getTransactionLastResult)(result)]; - }, - getFeeMargin() { - return feeMargin; - }, - getProvider() { - return near; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - const walletCallbackUrl = getWalletCallbackUrl( - `NEARTRX=true&type=unfreeze&to=${nonce}&receiver=${encodeURIComponent( - to - )}&tokenId=${encodeURIComponent( - id.native.tokenId - )}&contract=${encodeURIComponent(id.native.contract)}` - ); - const result = await sender.functionCall({ - contractId: bridge, - args: { - token_id: id.native.tokenId, - chain_nonce: parseInt(nonce), - to, - amt: parseInt(txFees.toString()), - token_contract: id.native.contract, - }, - methodName: "withdraw_nft", - attachedDeposit: new bn_js_1.BN(txFees.toString(10)), - gas: new bn_js_1.BN(65000000000000), - ...(walletCallbackUrl ? { walletCallbackUrl } : {}), - }); - await notifier.notifyNear(result.transaction.hash); - return [result, (0, providers_1.getTransactionLastResult)(result)]; - }, - async validateAddress(adr) { - try { - await new near_api_js_1.Account( - near.connection, - adr - ).getAccountBalance(); - return true; - } catch (e) { - return false; - } - }, - async connectWallet() { - if (typeof window === "undefined") { - throw new Error("Browser method only"); - } - const nearConnection = await (0, near_api_js_1.connect)({ - networkId, - nodeUrl: rpcUrl, - keyStore: new near_api_js_1.keyStores.BrowserLocalStorageKeyStore(), - headers: {}, - walletUrl, - helperUrl, - }); - const wc = new near_api_js_1.WalletConnection(nearConnection, ""); - return wc; - }, - async getContract(signer, _contract) { - return new near_api_js_1.Contract(signer, _contract, { - viewMethods: [], - changeMethods: ["nft_mint"], - }); - }, - async getUserMinter(keypair, address) { - const keyStore = new near_api_js_1.keyStores.InMemoryKeyStore(); - const keyPair = near_api_js_1.KeyPair.fromString(keypair); - keyStore.setKey(networkId, address, keyPair); - const signer = new near_api_js_1.InMemorySigner(keyStore); - const provider = await (0, near_api_js_1.connect)({ - headers: {}, - nodeUrl: rpcUrl, - networkId, - signer, - }); - return provider; - }, - }; -} -exports.nearHelperFactory = nearHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL25lYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLGlDQUEyQjtBQUUzQiw2Q0FTcUI7QUFFckIseURBR21DO0FBQ25DLHNDQUFrQztBQW9GM0IsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEVBQ3RDLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEdBQ0U7SUFDWCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEscUJBQU8sRUFBQztRQUN6QixPQUFPLEVBQUUsTUFBTTtRQUNmLFNBQVM7UUFDVCxPQUFPLEVBQUUsRUFBRTtLQUNaLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLEtBQUssRUFDdEIsT0FBZ0IsRUFDaEIsR0FBcUIsRUFDSCxFQUFFO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDbkQsTUFBTSxNQUFNLEdBQVksTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ2pELElBQUksRUFBRTtnQkFDSixRQUFRO2dCQUNSLG1CQUFtQixFQUFFLE1BQU07Z0JBQzNCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCO1lBQ0QsVUFBVSxFQUFFLFFBQVE7WUFDcEIsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QixDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7SUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDOUMsSUFBSSxpQkFBaUIsR0FBdUIsU0FBUyxDQUFDO1FBQ3RELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDbkMsTUFBTSxPQUFPLEdBQ1gsUUFBUSxDQUFDLFFB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 diff --git a/dist/helpers/near.ts b/dist/helpers/near.ts deleted file mode 100644 index 2dfe97d7b..000000000 --- a/dist/helpers/near.ts +++ /dev/null @@ -1,331 +0,0 @@ -import BigNumber from "bignumber.js"; -import { BN } from "bn.js"; - -import { - Account, - connect, - Near, - keyStores, - WalletConnection, - Contract, - KeyPair, - InMemorySigner, -} from "near-api-js"; - -import { - FinalExecutionOutcome, - getTransactionLastResult, -} from "near-api-js/lib/providers"; -import { Chain } from "../consts"; -import { EvNotifier } from "../notifier"; -import { - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - MintNft, - NftInfo, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, - PreTransfer, -} from "./chain"; - -type NearTxResult = [FinalExecutionOutcome, any]; - -type NearPreTransferArgs = { - to: string; - receiver: string; -}; - -export type NearParams = { - readonly networkId: string; - readonly nonce: number; - readonly rpcUrl: string; - readonly bridge: string; - readonly xpnft: string; - readonly feeMargin: FeeMargins; - readonly notifier: EvNotifier; - readonly walletUrl: string; - readonly helperUrl: string; -}; -export type NearNFT = { - tokenId: string; - contract: string; -}; - -export type Metadata = { - title?: string; - description?: string; - media?: string; - mediaHash: Uint8Array | null; - issued_at: string | null; - expires_at: string | null; - starts_at: string | null; - updated_at: string | null; - extra?: string; - reference: string | null; - referenceHash: Uint8Array | null; -}; - -export interface NearMintArgs { - contract: string; - token_id: string; - token_owner_id: string; - metadata: Metadata; -} - -interface BrowserMethods { - connectWallet(): Promise; - getContract(signer: Account, _contract: string): Promise; - getUserMinter(keypair: string, address: string): Promise; -} - -export type NearHelper = ChainNonceGet & - BalanceCheck & - TransferNftForeign & - UnfreezeForeignNft & - MintNft & - EstimateTxFees & - Pick< - PreTransfer, - "preTransfer" - > & - ValidateAddress & { - XpNft: string; - nftList(owner: Account, contract: string): Promise[]>; - } & GetFeeMargins & - GetProvider & - BrowserMethods; - -export async function nearHelperFactory({ - networkId, - bridge, - rpcUrl, - xpnft, - feeMargin, - notifier, - walletUrl, - helperUrl, -}: NearParams): Promise { - const near = await connect({ - nodeUrl: rpcUrl, - networkId, - headers: {}, - }); - - const isApproved = async ( - account: Account, - nft: NftInfo - ): Promise => { - const { tokenId: token_id, contract } = nft.native; - const result: boolean = await account.viewFunction({ - args: { - token_id, - approved_account_id: bridge, - approval_id: null, - }, - contractId: contract, - methodName: "nft_is_approved", - }); - console.log(`Is approved: ${result}`); - return result; - }; - - const getWalletCallbackUrl = (params: string) => { - let walletCallbackUrl: string | undefined = undefined; - if (typeof window?.location !== "undefined") { - const network = - location.pathname.match(/^\/(staging|testnet)\/.+/)?.at(1) || ""; - - walletCallbackUrl = `${location.protocol}//${location.host}/${network}/connect?${params}`; - } - return walletCallbackUrl; - }; - - return { - async estimateValidateTransferNft(_to, _metadata, _mintWith) { - return new BigNumber(0); // TODO - }, - async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { - return new BigNumber(0); // TODO - }, - getNonce() { - return Chain.NEAR; - }, - async balance(address: string) { - const res = ( - await new Account(near.connection, address).getAccountBalance() - ).available; - return new BigNumber(res); - }, - async mintNft(owner, options) { - const result = await owner.functionCall({ - contractId: options.contract, - methodName: "nft_mint", - args: { - token_id: options.token_id, - token_owner_id: options.token_owner_id, - token_metadata: options.metadata, - }, - attachedDeposit: new BN("10000000000000000000000"), // 0.01 Near - }); - return [result, getTransactionLastResult(result)]; - }, - async nftList(owner, contract) { - const result = await owner.functionCall({ - contractId: contract, - methodName: "nft_tokens_for_owner", - args: { account_id: owner.accountId }, - }); - const res = getTransactionLastResult(result) as any[]; - - return res.map((r) => { - return { - native: { - tokenId: r.token_id, - contract, - }, - collectionIdent: contract, - uri: r.metadata.extra || r.metadata.media, - }; - }); - }, - async preTransfer(sender, nft, _fee, args) { - if (await isApproved(sender, nft)) { - return undefined; - } - if (!args) { - throw new Error("Missing args"); - } - const { receiver, to } = args; - const walletCallbackUrl = getWalletCallbackUrl( - `NEARTRX=true&type=approve&to=${to}&receiver=${encodeURIComponent( - receiver - )}&tokenId=${encodeURIComponent(nft.native.tokenId)}` - ); - - const result = await sender.functionCall({ - contractId: nft.native.contract, - methodName: "nft_approve", - args: { - token_id: nft.native.tokenId, - account_id: bridge, - }, - attachedDeposit: new BN("1000000000000000000000"), // 0.001 Near - ...(walletCallbackUrl ? { walletCallbackUrl } : {}), - }); - return result.transaction_outcome.id; - }, - XpNft: xpnft, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mint_with) { - const walletCallbackUrl = getWalletCallbackUrl( - `NEARTRX=true&type=transfer&to=${chain_nonce}&receiver=${encodeURIComponent( - to - )}&tokenId=${encodeURIComponent( - id.native.tokenId - )}&contract=${encodeURIComponent(id.native.contract)}` - ); - - const result = await sender.functionCall({ - contractId: bridge, - args: { - token_id: id.native.tokenId, - chain_nonce, - to, - amt: new BigNumber(txFees), - mint_with, - token_contract: id.native.contract, - }, - methodName: "freeze_nft", - attachedDeposit: new BN(txFees.toString(10)), - gas: new BN("30000000000000"), - ...(walletCallbackUrl ? { walletCallbackUrl } : {}), - }); - await notifier.notifyNear(result.transaction.hash); - return [result, getTransactionLastResult(result)]; - }, - getFeeMargin() { - return feeMargin; - }, - getProvider() { - return near; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - const walletCallbackUrl = getWalletCallbackUrl( - `NEARTRX=true&type=unfreeze&to=${nonce}&receiver=${encodeURIComponent( - to - )}&tokenId=${encodeURIComponent( - id.native.tokenId - )}&contract=${encodeURIComponent(id.native.contract)}` - ); - - const result = await sender.functionCall({ - contractId: bridge, - args: { - token_id: id.native.tokenId, - chain_nonce: parseInt(nonce), - to, - amt: parseInt(txFees.toString()), - token_contract: id.native.contract, - }, - methodName: "withdraw_nft", - attachedDeposit: new BN(txFees.toString(10)), - gas: new BN("30000000000000"), - ...(walletCallbackUrl ? { walletCallbackUrl } : {}), - }); - await notifier.notifyNear(result.transaction.hash); - return [result, getTransactionLastResult(result)]; - }, - async validateAddress(adr) { - try { - await new Account(near.connection, adr).getAccountBalance(); - return true; - } catch (e) { - return false; - } - }, - - async connectWallet() { - if (typeof window === "undefined") { - throw new Error("Browser method only"); - } - const nearConnection = await connect({ - networkId, - nodeUrl: rpcUrl, - keyStore: new keyStores.BrowserLocalStorageKeyStore(), - headers: {}, - walletUrl, - helperUrl, - }); - const wc = new WalletConnection(nearConnection, ""); - return wc; - }, - - async getContract(signer: Account, _contract: string) { - return new Contract(signer, _contract, { - viewMethods: [], - changeMethods: ["nft_mint"], - }); - }, - - async getUserMinter(keypair: string, address: string) { - const keyStore = new keyStores.InMemoryKeyStore(); - const keyPair = KeyPair.fromString(keypair); - keyStore.setKey(networkId, address, keyPair); - - const signer = new InMemorySigner(keyStore); - - const provider = await connect({ - headers: {}, - nodeUrl: rpcUrl, - networkId, - signer, - }); - - return provider; - }, - }; -} diff --git a/dist/helpers/secret.d.ts b/dist/helpers/secret.d.ts deleted file mode 100644 index d706a7e96..000000000 --- a/dist/helpers/secret.d.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { SecretNetworkClient, TxResponse } from "secretjs"; -import { Extension } from "secretjs/dist/extensions/snip721/types"; -import { EvNotifier } from "../notifier"; -import { - BalanceCheck, - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - MintNft, - NftInfo, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from "./chain"; -export declare type SecretNftInfo = { - contract: string; - contractHash: string; - chainId: string; - tokenId: string; - vk: string; - metadata: Extension | undefined; -}; -export declare type SecretMintArgs = { - url: string; - contract?: SecretContract; -}; -declare type SecretSigner = SecretNetworkClient; -export declare type SecretHelper = TransferNftForeign< - SecretSigner, - SecretNftInfo, - TxResponse -> & - UnfreezeForeignNft & - ValidateAddress & - EstimateTxFees & - ChainNonceGet & - PreTransfer & - BalanceCheck & - GetFeeMargins & { - XpNft: string; - } & GetProvider & - MintNft & { - nftList( - owner: string, - viewingKey: string, - contract: string, - codeHash?: string - ): Promise[]>; - setViewingKey( - client: SecretNetworkClient, - contract: string, - vk: string - ): Promise; - isApprovedForMinter( - sender: SecretSigner, - nft: NftInfo - ): Promise; - }; -export declare type SecretContract = { - contractAddress: string; - codeHash: string; -}; -export declare type SecretParams = { - rpcUrl: string; - chainId: string; - notifier: EvNotifier; - bridge: SecretContract; - xpnft: SecretContract; - umt: SecretContract; - feeMargin: FeeMargins; -}; -export declare function secretHelperFactory( - p: SecretParams -): Promise; -export {}; -//# sourceMappingURL=secret.d.ts.map diff --git a/dist/helpers/secret.d.ts.map b/dist/helpers/secret.d.ts.map deleted file mode 100644 index 2d8231bee..000000000 --- a/dist/helpers/secret.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/helpers/secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,mBAAmB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EACL,SAAS,EAEV,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,oBAAY,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC;AACF,oBAAY,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,aAAK,YAAY,GAAG,mBAAmB,CAAC;AAMxC,oBAAY,YAAY,GAAG,kBAAkB,CAC3C,YAAY,EACZ,aAAa,EACb,UAAU,CACX,GACC,kBAAkB,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,GAC3D,eAAe,GACf,cAAc,CAAC,aAAa,CAAC,GAC7B,aAAa,GACb,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,GAC3D,YAAY,GACZ,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC,mBAAmB,CAAC,GACpE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG;IAClD,OAAO,CACL,KAAK,EAAE,MAAM,EAEb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrC,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,mBAAmB,CACjB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAEJ,oBAAY,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAQF,wBAAsB,mBAAmB,CACvC,CAAC,EAAE,YAAY,GACd,OAAO,CAAC,YAAY,CAAC,CAmQvB"} \ No newline at end of file diff --git a/dist/helpers/secret.js b/dist/helpers/secret.js deleted file mode 100644 index be130790f..000000000 --- a/dist/helpers/secret.js +++ /dev/null @@ -1,255 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.secretHelperFactory = void 0; -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const secretjs_1 = require("secretjs"); -// TODO -const TRANSFER_GASL = new bignumber_js_1.default(0); -// TODO -const UNFREEZE_GASL = new bignumber_js_1.default(0); -async function secretHelperFactory(p) { - const queryClient = new secretjs_1.SecretNetworkClient({ - url: p.rpcUrl, - chainId: p.chainId, - }); - // TODO - const gasPrice = 1; - async function isApprovedForMinter(sender, nft) { - const approval = await sender.query.snip721.GetTokenInfo({ - auth: { - viewer: { - address: sender.address, - viewing_key: nft.native.vk, - }, - }, - contract: { - address: nft.collectionIdent, - codeHash: nft.native.contractHash, - }, - token_id: nft.native.tokenId, - }); - for (let appr of approval.all_nft_info.access.approvals) { - if ( - appr["spender"].toLowerCase() === p.bridge.contractAddress.toLowerCase() - ) { - return true; - } - } - return false; - } - async function preTransfer(sender, nft) { - // TODO: check if approved - if (await isApprovedForMinter(sender, nft)) { - return undefined; - } - const res = await sender.tx.compute.executeContract( - { - sender: sender.address, - contract_address: nft.native.contract, - code_hash: nft.native.contractHash, - msg: { - approve: { - spender: p.bridge.contractAddress, - token_id: nft.native.tokenId, - }, - }, - }, - { - waitForCommit: true, - gasLimit: 250000, - } - ); - return res.transactionHash; - } - return { - getFeeMargin() { - return p.feeMargin; - }, - getProvider() { - return queryClient; - }, - getNonce: () => 0x18, - balance: async (address) => { - const b = await queryClient.query.bank.balance({ - address, - denom: "uscrt", - }); - return new bignumber_js_1.default(b.balance?.amount || 0); - }, - isApprovedForMinter, - async mintNft(signer, args) { - const minter = args.contract ? args.contract : p.umt; - const tx = await signer.tx.compute.executeContract( - { - contract_address: minter.contractAddress, - code_hash: minter.codeHash, - msg: { - mint_nft: { - public_metadata: { - token_uri: args.url, - }, - owner: signer.address, - transferable: true, - }, - }, - sender: signer.address, - }, - { - waitForCommit: true, - gasLimit: 500000, - } - ); - return tx; - }, - XpNft: `${p.xpnft.contractAddress},${p.xpnft.codeHash}`, - validateAddress: async (a) => { - try { - secretjs_1.Bech32.decode(a); - return true; - } catch { - return false; - } - }, - async nftList(owner, vk, contractAddress, codeHash) { - const auth = { - viewer: { - viewing_key: vk, - address: owner, - }, - }; - if (!codeHash) { - codeHash = ( - await queryClient.query.compute.codeHashByContractAddress({ - contract_address: contractAddress, - }) - ).code_hash; - } - const contract = { - address: contractAddress, - codeHash: codeHash || "", - }; - const { token_list, generic_err } = - await queryClient.query.snip721.GetOwnedTokens({ - contract, - auth, - owner, - }); - if (generic_err) throw new Error(generic_err.msg); - const response = []; - await Promise.all( - token_list.tokens.map(async (token) => { - const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ - contract, - auth, - token_id: token, - }); - response.push({ - collectionIdent: contractAddress, - uri: tokenInfo.all_nft_info.info?.token_uri || "", - native: { - chainId: p.chainId, - contract: contractAddress, - contractHash: codeHash || "", - tokenId: token, - vk, - metadata: tokenInfo.all_nft_info.info?.extension, - }, - }); - }) - ); - return response; - }, - estimateValidateTransferNft: async () => { - return TRANSFER_GASL.times(gasPrice); - }, - estimateValidateUnfreezeNft: async () => { - return UNFREEZE_GASL.times(gasPrice); - }, - async setViewingKey(client, contract, vk) { - const tx = await client.tx.snip721.setViewingKey( - { - contract_address: contract, - msg: { - set_viewing_key: { - key: vk, - }, - }, - sender: client.address, - }, - { - waitForCommit: true, - gasLimit: 500000, - } - ); - return tx; - }, - preTransfer, - preUnfreeze: preTransfer, - transferNftToForeign: async (wallet, chainNonce, to, nft, fee, mw) => { - const tx = await wallet.tx.compute.executeContract( - { - sender: wallet.address, - contract_address: p.bridge.contractAddress, - code_hash: p.bridge.codeHash, - msg: { - freeze_nft: { - contract: nft.native.contract, - contract_hash: nft.native.contractHash, - viewer: { - viewing_key: nft.native.vk, - address: wallet.address, - }, - token_id: nft.native.tokenId, - to, - chain_nonce: chainNonce, - minter: mw, - }, - }, - sent_funds: [ - { - denom: "uscrt", - amount: fee.toString(10), - }, - ], - }, - { waitForCommit: true, gasLimit: 500000 } - ); - await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); - return tx; - }, - unfreezeWrappedNft: async (wallet, to, nft, fee, chainNonce) => { - const tx = await wallet.tx.compute.executeContract( - { - sender: wallet.address, - contract_address: p.bridge.contractAddress, - code_hash: p.bridge.codeHash, - msg: { - withdraw_nft: { - burner: nft.native.contract, - burner_hash: nft.native.contractHash, - token_id: nft.native.tokenId, - to, - chain_nonce: Number(chainNonce), - }, - }, - sent_funds: [ - { - denom: "uscrt", - amount: fee.toString(10), - }, - ], - }, - { waitForCommit: true, gasLimit: 500000 } - ); - await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); - return tx; - }, - }; -} -exports.secretHelperFactory = secretHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFxQztBQUNyQyx1Q0FBbUU7QUF1Rm5FLE9BQU87QUFDUCxNQUFNLGFBQWEsR0FBRyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdkMsT0FBTztBQUNQLE1BQU0sYUFBYSxHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVoQyxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLENBQWU7SUFFZixNQUFNLFdBQVcsR0FBRyxJQUFJLDhCQUFtQixDQUFDO1FBQzFDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNiLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztLQUNuQixDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLEtBQUssVUFBVSxtQkFBbUIsQ0FDaEMsTUFBb0IsRUFDcEIsR0FBMkI7UUFFM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDdkQsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87b0JBQ3ZCLFdBQVcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQzNCO2FBQ0Y7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxlQUFlO2dCQUM1QixRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZO2FBQ2xDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztTQUM3QixDQUFDLENBQUM7UUFDSCxLQUFLLElBQUksSUFBSSxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFB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 diff --git a/dist/helpers/secret.ts b/dist/helpers/secret.ts deleted file mode 100644 index fa2ddd0e0..000000000 --- a/dist/helpers/secret.ts +++ /dev/null @@ -1,356 +0,0 @@ -import BigNumber from "bignumber.js"; -import { Bech32, SecretNetworkClient, TxResponse } from "secretjs"; -import { - Extension, - Snip721MintOptions, -} from "secretjs/dist/extensions/snip721/types"; -import { Snip721GetTokensResponse } from "secretjs/dist/extensions/snip721/msg/GetTokens"; -import { EvNotifier } from "../notifier"; -import { - BalanceCheck, - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - MintNft, - NftInfo, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from "./chain"; - -export type SecretNftInfo = { - contract: string; - contractHash: string; - chainId: string; - tokenId: string; - vk: string; - metadata: Extension | undefined; -}; -export type SecretMintArgs = { - url: string; - contract?: SecretContract; -}; - -type SecretSigner = SecretNetworkClient; - -type GetOwnedTokensResponse = Snip721GetTokensResponse & { - generic_err?: { msg: string }; -}; - -export type SecretHelper = TransferNftForeign< - SecretSigner, - SecretNftInfo, - TxResponse -> & - UnfreezeForeignNft & - ValidateAddress & - EstimateTxFees & - ChainNonceGet & - PreTransfer & - BalanceCheck & - GetFeeMargins & { XpNft: string } & GetProvider & - MintNft & { - nftList( - owner: string, - - viewingKey: string, - contract: string, - codeHash?: string - ): Promise[]>; - setViewingKey( - client: SecretNetworkClient, - contract: string, - vk: string - ): Promise; - isApprovedForMinter( - sender: SecretSigner, - nft: NftInfo - ): Promise; - }; - -export type SecretContract = { - contractAddress: string; - codeHash: string; -}; - -export type SecretParams = { - rpcUrl: string; - chainId: string; - notifier: EvNotifier; - bridge: SecretContract; - xpnft: SecretContract; - umt: SecretContract; - feeMargin: FeeMargins; -}; - -// TODO -const TRANSFER_GASL = new BigNumber(0); - -// TODO -const UNFREEZE_GASL = new BigNumber(0); - -export async function secretHelperFactory( - p: SecretParams -): Promise { - const queryClient = new SecretNetworkClient({ - url: p.rpcUrl, - chainId: p.chainId, - }); - - // TODO - const gasPrice = 1; - - async function isApprovedForMinter( - sender: SecretSigner, - nft: NftInfo - ) { - const approval = await sender.query.snip721.GetTokenInfo({ - auth: { - viewer: { - address: sender.address, - viewing_key: nft.native.vk, - }, - }, - contract: { - address: nft.collectionIdent, - codeHash: nft.native.contractHash, - }, - token_id: nft.native.tokenId, - }); - for (let appr of approval.all_nft_info.access.approvals) { - if ( - (appr as any)["spender"].toLowerCase() === - p.bridge.contractAddress.toLowerCase() - ) { - return true; - } - } - return false; - } - - async function preTransfer( - sender: SecretSigner, - nft: NftInfo - ) { - // TODO: check if approved - if (await isApprovedForMinter(sender, nft)) { - return undefined; - } - const res = await sender.tx.compute.executeContract( - { - sender: sender.address, - contract_address: nft.native.contract, - code_hash: nft.native.contractHash, - msg: { - approve: { - spender: p.bridge.contractAddress, - token_id: nft.native.tokenId, - }, - }, - }, - { - waitForCommit: true, - gasLimit: 250_000, - } - ); - return res.transactionHash; - } - - return { - getFeeMargin() { - return p.feeMargin; - }, - getProvider() { - return queryClient; - }, - getNonce: () => 0x18, - balance: async (address) => { - const b = await queryClient.query.bank.balance({ - address, - denom: "uscrt", - }); - - return new BigNumber(b.balance?.amount || 0); - }, - isApprovedForMinter, - async mintNft(signer, args) { - const minter = args.contract ? args.contract : p.umt; - const tx = await signer.tx.compute.executeContract( - { - contract_address: minter.contractAddress, - code_hash: minter.codeHash, - msg: { - mint_nft: { - public_metadata: { - token_uri: args.url, - }, - owner: signer.address, - transferable: true, - }, - } as Snip721MintOptions, - sender: signer.address, - }, - { - waitForCommit: true, - gasLimit: 500_000, - } - ); - return tx; - }, - XpNft: `${p.xpnft.contractAddress},${p.xpnft.codeHash}`, - validateAddress: async (a) => { - try { - Bech32.decode(a); - return true; - } catch { - return false; - } - }, - async nftList(owner, vk, contractAddress, codeHash) { - const auth = { - viewer: { - viewing_key: vk, - address: owner, - }, - }; - if (!codeHash) { - codeHash = ( - await queryClient.query.compute.codeHashByContractAddress({ - contract_address: contractAddress, - }) - ).code_hash; - } - const contract = { - address: contractAddress, - codeHash: codeHash || "", - }; - - const { token_list, generic_err } = - (await queryClient.query.snip721.GetOwnedTokens({ - contract, - auth, - owner, - })) as GetOwnedTokensResponse; - - if (generic_err) throw new Error(generic_err.msg); - - const response: NftInfo[] = []; - - await Promise.all( - token_list.tokens.map(async (token) => { - const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ - contract, - auth, - token_id: token, - }); - - response.push({ - collectionIdent: contractAddress, - uri: tokenInfo.all_nft_info.info?.token_uri || "", - native: { - chainId: p.chainId, - contract: contractAddress, - contractHash: codeHash || "", - tokenId: token, - vk, - metadata: tokenInfo.all_nft_info.info?.extension, - }, - }); - }) - ); - return response; - }, - estimateValidateTransferNft: async () => { - return TRANSFER_GASL.times(gasPrice); - }, - estimateValidateUnfreezeNft: async () => { - return UNFREEZE_GASL.times(gasPrice); - }, - async setViewingKey(client, contract, vk) { - const tx = await client.tx.snip721.setViewingKey( - { - contract_address: contract, - msg: { - set_viewing_key: { - key: vk, - }, - }, - sender: client.address, - }, - { - waitForCommit: true, - gasLimit: 500_000, - } - ); - return tx; - }, - preTransfer, - preUnfreeze: preTransfer, - transferNftToForeign: async (wallet, chainNonce, to, nft, fee, mw) => { - const tx = await wallet.tx.compute.executeContract( - { - sender: wallet.address, - contract_address: p.bridge.contractAddress, - code_hash: p.bridge.codeHash, - msg: { - freeze_nft: { - contract: nft.native.contract, - contract_hash: nft.native.contractHash, - viewer: { - viewing_key: nft.native.vk, - address: wallet.address, - }, - token_id: nft.native.tokenId, - to, - chain_nonce: chainNonce, - minter: mw, - }, - }, - sent_funds: [ - { - denom: "uscrt", - amount: fee.toString(10), - }, - ], - }, - { waitForCommit: true, gasLimit: 500_000 } - ); - - await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); - - return tx; - }, - unfreezeWrappedNft: async (wallet, to, nft, fee, chainNonce) => { - const tx = await wallet.tx.compute.executeContract( - { - sender: wallet.address, - contract_address: p.bridge.contractAddress, - code_hash: p.bridge.codeHash, - msg: { - withdraw_nft: { - burner: nft.native.contract, - burner_hash: nft.native.contractHash, - token_id: nft.native.tokenId, - to, - chain_nonce: Number(chainNonce), - }, - }, - sent_funds: [ - { - denom: "uscrt", - amount: fee.toString(10), - }, - ], - }, - { waitForCommit: true, gasLimit: 500_000 } - ); - - await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); - - return tx; - }, - }; -} diff --git a/dist/helpers/solana/idl.d.ts b/dist/helpers/solana/idl.d.ts deleted file mode 100644 index 4b53ae552..000000000 --- a/dist/helpers/solana/idl.d.ts +++ /dev/null @@ -1,898 +0,0 @@ -export declare type XpBridge = { - version: "0.1.0"; - name: "xp_bridge"; - instructions: [ - { - name: "initialize"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "groupKey"; - type: { - array: ["u8", 32]; - }; - } - ]; - }, - { - name: "validatePause"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "PauseData"; - }; - } - ]; - }, - { - name: "validateUnpause"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "UnpauseData"; - }; - } - ]; - }, - { - name: "validateWithdrawFees"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "WithdrawFeesData"; - }; - } - ]; - }, - { - name: "validateUpdateGroupkey"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "UpdateGroupkeyData"; - }; - } - ]; - }, - { - name: "validateTransferNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "payer"; - isMut: true; - isSigner: true; - }, - { - name: "authority"; - isMut: false; - isSigner: false; - }, - { - name: "mint"; - isMut: true; - isSigner: false; - }, - { - name: "tokenAccount"; - isMut: true; - isSigner: false; - }, - { - name: "metadataAccount"; - isMut: true; - isSigner: false; - }, - { - name: "editionAccount"; - isMut: true; - isSigner: false; - }, - { - name: "metadataProgram"; - isMut: false; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "rent"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "TransferNftData"; - }; - } - ]; - }, - { - name: "withdrawNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "authority"; - isMut: true; - isSigner: true; - }, - { - name: "mint"; - isMut: true; - isSigner: false; - }, - { - name: "tokenAccount"; - isMut: true; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "chainNonce"; - type: "u8"; - }, - { - name: "to"; - type: "string"; - }, - { - name: "lamports"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }, - { - name: "freezeNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "authority"; - isMut: true; - isSigner: true; - }, - { - name: "from"; - isMut: true; - isSigner: false; - }, - { - name: "to"; - isMut: true; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "chainNonce"; - type: "u8"; - }, - { - name: "to"; - type: "string"; - }, - { - name: "lamports"; - type: "u64"; - }, - { - name: "mintWith"; - type: "string"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }, - { - name: "validateUnfreezeNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "from"; - isMut: true; - isSigner: false; - }, - { - name: "to"; - isMut: true; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "payer"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "UnfreezeNftData"; - }; - } - ]; - } - ]; - accounts: [ - { - name: "bridge"; - type: { - kind: "struct"; - fields: [ - { - name: "paused"; - type: "bool"; - }, - { - name: "groupKey"; - type: { - array: ["u8", 32]; - }; - }, - { - name: "actionId"; - type: "u128"; - } - ]; - }; - }, - { - name: "consumedAction"; - type: { - kind: "struct"; - fields: [ - { - name: "consumed"; - type: "bool"; - } - ]; - }; - } - ]; - types: [ - { - name: "PauseData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }; - }, - { - name: "UnpauseData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }; - }, - { - name: "UpdateGroupkeyData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - }, - { - name: "newKey"; - type: { - array: ["u8", 32]; - }; - } - ]; - }; - }, - { - name: "TransferNftData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - }, - { - name: "authBump"; - type: "u8"; - }, - { - name: "chainNonce"; - type: "u64"; - }, - { - name: "name"; - type: "string"; - }, - { - name: "symbol"; - type: "string"; - }, - { - name: "uri"; - type: "string"; - }, - { - name: "owner"; - type: "publicKey"; - }, - { - name: "collection"; - type: { - option: { - defined: "AnchorCollection"; - }; - }; - }, - { - name: "sellerFeeBasisPoints"; - type: { - option: "u16"; - }; - }, - { - name: "creators"; - type: { - option: { - vec: { - defined: "AnchorCreator"; - }; - }; - }; - } - ]; - }; - }, - { - name: "AnchorDataV2"; - type: { - kind: "struct"; - fields: [ - { - name: "name"; - docs: ["The name of the asset"]; - type: "string"; - }, - { - name: "symbol"; - docs: ["The symbol for the asset"]; - type: "string"; - }, - { - name: "uri"; - docs: ["URI pointing to JSON representing the asset"]; - type: "string"; - }, - { - name: "sellerFeeBasisPoints"; - docs: [ - "Royalty basis points that goes to creators in secondary sales (0-10000)" - ]; - type: "u16"; - }, - { - name: "creators"; - docs: ["Array of creators, optional"]; - type: { - option: { - vec: { - defined: "AnchorCreator"; - }; - }; - }; - }, - { - name: "collection"; - docs: ["Collection"]; - type: { - option: { - defined: "AnchorCollection"; - }; - }; - }, - { - name: "uses"; - docs: ["Uses"]; - type: { - option: { - defined: "AnchorUses"; - }; - }; - } - ]; - }; - }, - { - name: "AnchorCreator"; - type: { - kind: "struct"; - fields: [ - { - name: "address"; - type: "publicKey"; - }, - { - name: "verified"; - type: "bool"; - }, - { - name: "share"; - type: "u8"; - } - ]; - }; - }, - { - name: "AnchorCollection"; - type: { - kind: "struct"; - fields: [ - { - name: "verified"; - type: "bool"; - }, - { - name: "key"; - type: "publicKey"; - } - ]; - }; - }, - { - name: "AnchorUses"; - type: { - kind: "struct"; - fields: [ - { - name: "useMethod"; - type: { - defined: "AnchorUseMethod"; - }; - }, - { - name: "remaining"; - type: "u64"; - }, - { - name: "total"; - type: "u64"; - } - ]; - }; - }, - { - name: "WithdrawFeesData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }; - }, - { - name: "UnfreezeNftData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - }, - { - name: "receiver"; - type: "publicKey"; - }, - { - name: "mint"; - type: "publicKey"; - } - ]; - }; - }, - { - name: "AnchorUseMethod"; - type: { - kind: "enum"; - variants: [ - { - name: "Burn"; - }, - { - name: "Multiple"; - }, - { - name: "Single"; - } - ]; - }; - } - ]; - events: [ - { - name: "TransferNft"; - fields: [ - { - name: "chainNonce"; - type: "u8"; - index: false; - }, - { - name: "to"; - type: "string"; - index: true; - }, - { - name: "mint"; - type: "publicKey"; - index: false; - }, - { - name: "actionId"; - type: "u128"; - index: false; - }, - { - name: "mintWith"; - type: "string"; - index: false; - }, - { - name: "lamports"; - type: "u64"; - index: false; - } - ]; - }, - { - name: "UnfreezeNft"; - fields: [ - { - name: "chainNonce"; - type: "u8"; - index: false; - }, - { - name: "to"; - type: "string"; - index: true; - }, - { - name: "actionId"; - type: "u128"; - index: false; - }, - { - name: "mint"; - type: "publicKey"; - index: false; - }, - { - name: "lamports"; - type: "u64"; - index: false; - } - ]; - } - ]; - errors: [ - { - code: 6000; - name: "Paused"; - msg: "Pausable: paused"; - }, - { - code: 6001; - name: "Unpaused"; - msg: "Pausable: unpaused"; - }, - { - code: 6002; - name: "AlreadyMinted"; - msg: "Already minted"; - }, - { - code: 6003; - name: "AlreadyBurned"; - msg: "Already burned"; - }, - { - code: 6004; - name: "InstructionAtWrongIndex"; - msg: "instruction at wrong index"; - }, - { - code: 6005; - name: "InvalidEd25519Instruction"; - msg: "invalid ed25519 instruction"; - }, - { - code: 6006; - name: "InvalidGroupKey"; - msg: "invalid group key"; - }, - { - code: 6007; - name: "InvalidProgramId"; - msg: "invalid program id"; - }, - { - code: 6008; - name: "InvalidArgs"; - msg: "invalid args"; - }, - { - code: 6009; - name: "InvalidActionId"; - msg: "invalid action id"; - }, - { - code: 6010; - name: "DuplicatedAction"; - msg: "duplicated action"; - }, - { - code: 6011; - name: "IncorrectOwner"; - msg: "incorrect owner"; - }, - { - code: 6012; - name: "InvalidMint"; - msg: "invalid mint"; - }, - { - code: 6013; - name: "InsufficientFundsForTransaction"; - msg: "insufficient funds for transaction"; - } - ]; -}; -export declare const IDL: XpBridge; -//# sourceMappingURL=idl.d.ts.map diff --git a/dist/helpers/solana/idl.d.ts.map b/dist/helpers/solana/idl.d.ts.map deleted file mode 100644 index eb7db4f2e..000000000 --- a/dist/helpers/solana/idl.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/idl.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/solana/idl.js b/dist/helpers/solana/idl.js deleted file mode 100644 index 7c914eff2..000000000 --- a/dist/helpers/solana/idl.js +++ /dev/null @@ -1,900 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IDL = void 0; -exports.IDL = { - version: "0.1.0", - name: "xp_bridge", - instructions: [ - { - name: "initialize", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "groupKey", - type: { - array: ["u8", 32], - }, - }, - ], - }, - { - name: "validatePause", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "PauseData", - }, - }, - ], - }, - { - name: "validateUnpause", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UnpauseData", - }, - }, - ], - }, - { - name: "validateWithdrawFees", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "WithdrawFeesData", - }, - }, - ], - }, - { - name: "validateUpdateGroupkey", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UpdateGroupkeyData", - }, - }, - ], - }, - { - name: "validateTransferNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "payer", - isMut: true, - isSigner: true, - }, - { - name: "authority", - isMut: false, - isSigner: false, - }, - { - name: "mint", - isMut: true, - isSigner: false, - }, - { - name: "tokenAccount", - isMut: true, - isSigner: false, - }, - { - name: "metadataAccount", - isMut: true, - isSigner: false, - }, - { - name: "editionAccount", - isMut: true, - isSigner: false, - }, - { - name: "metadataProgram", - isMut: false, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "rent", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "TransferNftData", - }, - }, - ], - }, - { - name: "withdrawNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "authority", - isMut: true, - isSigner: true, - }, - { - name: "mint", - isMut: true, - isSigner: false, - }, - { - name: "tokenAccount", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "chainNonce", - type: "u8", - }, - { - name: "to", - type: "string", - }, - { - name: "lamports", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - { - name: "freezeNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "authority", - isMut: true, - isSigner: true, - }, - { - name: "from", - isMut: true, - isSigner: false, - }, - { - name: "to", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "chainNonce", - type: "u8", - }, - { - name: "to", - type: "string", - }, - { - name: "lamports", - type: "u64", - }, - { - name: "mintWith", - type: "string", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - { - name: "validateUnfreezeNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "from", - isMut: true, - isSigner: false, - }, - { - name: "to", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "payer", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UnfreezeNftData", - }, - }, - ], - }, - ], - accounts: [ - { - name: "bridge", - type: { - kind: "struct", - fields: [ - { - name: "paused", - type: "bool", - }, - { - name: "groupKey", - type: { - array: ["u8", 32], - }, - }, - { - name: "actionId", - type: "u128", - }, - ], - }, - }, - { - name: "consumedAction", - type: { - kind: "struct", - fields: [ - { - name: "consumed", - type: "bool", - }, - ], - }, - }, - ], - types: [ - { - name: "PauseData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - }, - { - name: "UnpauseData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - }, - { - name: "UpdateGroupkeyData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - { - name: "newKey", - type: { - array: ["u8", 32], - }, - }, - ], - }, - }, - { - name: "TransferNftData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - { - name: "authBump", - type: "u8", - }, - { - name: "chainNonce", - type: "u64", - }, - { - name: "name", - type: "string", - }, - { - name: "symbol", - type: "string", - }, - { - name: "uri", - type: "string", - }, - { - name: "owner", - type: "publicKey", - }, - { - name: "collection", - type: { - option: { - defined: "AnchorCollection", - }, - }, - }, - { - name: "sellerFeeBasisPoints", - type: { - option: "u16", - }, - }, - { - name: "creators", - type: { - option: { - vec: { - defined: "AnchorCreator", - }, - }, - }, - }, - ], - }, - }, - { - name: "AnchorDataV2", - type: { - kind: "struct", - fields: [ - { - name: "name", - docs: ["The name of the asset"], - type: "string", - }, - { - name: "symbol", - docs: ["The symbol for the asset"], - type: "string", - }, - { - name: "uri", - docs: ["URI pointing to JSON representing the asset"], - type: "string", - }, - { - name: "sellerFeeBasisPoints", - docs: [ - "Royalty basis points that goes to creators in secondary sales (0-10000)", - ], - type: "u16", - }, - { - name: "creators", - docs: ["Array of creators, optional"], - type: { - option: { - vec: { - defined: "AnchorCreator", - }, - }, - }, - }, - { - name: "collection", - docs: ["Collection"], - type: { - option: { - defined: "AnchorCollection", - }, - }, - }, - { - name: "uses", - docs: ["Uses"], - type: { - option: { - defined: "AnchorUses", - }, - }, - }, - ], - }, - }, - { - name: "AnchorCreator", - type: { - kind: "struct", - fields: [ - { - name: "address", - type: "publicKey", - }, - { - name: "verified", - type: "bool", - }, - { - name: "share", - type: "u8", - }, - ], - }, - }, - { - name: "AnchorCollection", - type: { - kind: "struct", - fields: [ - { - name: "verified", - type: "bool", - }, - { - name: "key", - type: "publicKey", - }, - ], - }, - }, - { - name: "AnchorUses", - type: { - kind: "struct", - fields: [ - { - name: "useMethod", - type: { - defined: "AnchorUseMethod", - }, - }, - { - name: "remaining", - type: "u64", - }, - { - name: "total", - type: "u64", - }, - ], - }, - }, - { - name: "WithdrawFeesData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - }, - { - name: "UnfreezeNftData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - { - name: "receiver", - type: "publicKey", - }, - { - name: "mint", - type: "publicKey", - }, - ], - }, - }, - { - name: "AnchorUseMethod", - type: { - kind: "enum", - variants: [ - { - name: "Burn", - }, - { - name: "Multiple", - }, - { - name: "Single", - }, - ], - }, - }, - ], - events: [ - { - name: "TransferNft", - fields: [ - { - name: "chainNonce", - type: "u8", - index: false, - }, - { - name: "to", - type: "string", - index: true, - }, - { - name: "mint", - type: "publicKey", - index: false, - }, - { - name: "actionId", - type: "u128", - index: false, - }, - { - name: "mintWith", - type: "string", - index: false, - }, - { - name: "lamports", - type: "u64", - index: false, - }, - ], - }, - { - name: "UnfreezeNft", - fields: [ - { - name: "chainNonce", - type: "u8", - index: false, - }, - { - name: "to", - type: "string", - index: true, - }, - { - name: "actionId", - type: "u128", - index: false, - }, - { - name: "mint", - type: "publicKey", - index: false, - }, - { - name: "lamports", - type: "u64", - index: false, - }, - ], - }, - ], - errors: [ - { - code: 6000, - name: "Paused", - msg: "Pausable: paused", - }, - { - code: 6001, - name: "Unpaused", - msg: "Pausable: unpaused", - }, - { - code: 6002, - name: "AlreadyMinted", - msg: "Already minted", - }, - { - code: 6003, - name: "AlreadyBurned", - msg: "Already burned", - }, - { - code: 6004, - name: "InstructionAtWrongIndex", - msg: "instruction at wrong index", - }, - { - code: 6005, - name: "InvalidEd25519Instruction", - msg: "invalid ed25519 instruction", - }, - { - code: 6006, - name: "InvalidGroupKey", - msg: "invalid group key", - }, - { - code: 6007, - name: "InvalidProgramId", - msg: "invalid program id", - }, - { - code: 6008, - name: "InvalidArgs", - msg: "invalid args", - }, - { - code: 6009, - name: "InvalidActionId", - msg: "invalid action id", - }, - { - code: 6010, - name: "DuplicatedAction", - msg: "duplicated action", - }, - { - code: 6011, - name: "IncorrectOwner", - msg: "incorrect owner", - }, - { - code: 6012, - name: "InvalidMint", - msg: "invalid mint", - }, - { - code: 6013, - name: "InsufficientFundsForTransaction", - msg: "insufficient funds for transaction", - }, - ], -}; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvc29sYW5hL2lkbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpNEJhLFFBQUEsR0FBRyxHQUFhO0lBQzNCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLElBQUksRUFBRSxXQUFXO0lBQ2pCLFlBQVksRUFBRTtRQUNaO1lBQ0UsSUFBSSxFQUFFLFlBQVk7WUFDbEIsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRSxLQUFLO2lCQUNoQjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZUFBZTtvQkFDckIsS0FBSyxFQUFFLEtBQUs7b0JBQ1osUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0o7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3FCQUNsQjtpQkFDRjthQUNGO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxlQUFlO1lBQ3JCLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsS0FBSztpQkFDaEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2dCQUNEO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNEO29CQUNFLElBQUksRUFBRSxlQUFlO29CQUNy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 diff --git a/dist/helpers/solana/idl.ts b/dist/helpers/solana/idl.ts deleted file mode 100644 index a5f6bc796..000000000 --- a/dist/helpers/solana/idl.ts +++ /dev/null @@ -1,1793 +0,0 @@ -export type XpBridge = { - version: "0.1.0"; - name: "xp_bridge"; - instructions: [ - { - name: "initialize"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "groupKey"; - type: { - array: ["u8", 32]; - }; - } - ]; - }, - { - name: "validatePause"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "PauseData"; - }; - } - ]; - }, - { - name: "validateUnpause"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "UnpauseData"; - }; - } - ]; - }, - { - name: "validateWithdrawFees"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "WithdrawFeesData"; - }; - } - ]; - }, - { - name: "validateUpdateGroupkey"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "UpdateGroupkeyData"; - }; - } - ]; - }, - { - name: "validateTransferNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "payer"; - isMut: true; - isSigner: true; - }, - { - name: "authority"; - isMut: false; - isSigner: false; - }, - { - name: "mint"; - isMut: true; - isSigner: false; - }, - { - name: "tokenAccount"; - isMut: true; - isSigner: false; - }, - { - name: "metadataAccount"; - isMut: true; - isSigner: false; - }, - { - name: "editionAccount"; - isMut: true; - isSigner: false; - }, - { - name: "metadataProgram"; - isMut: false; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "rent"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "TransferNftData"; - }; - } - ]; - }, - { - name: "withdrawNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "authority"; - isMut: true; - isSigner: true; - }, - { - name: "mint"; - isMut: true; - isSigner: false; - }, - { - name: "tokenAccount"; - isMut: true; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "chainNonce"; - type: "u8"; - }, - { - name: "to"; - type: "string"; - }, - { - name: "lamports"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }, - { - name: "freezeNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "authority"; - isMut: true; - isSigner: true; - }, - { - name: "from"; - isMut: true; - isSigner: false; - }, - { - name: "to"; - isMut: true; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "chainNonce"; - type: "u8"; - }, - { - name: "to"; - type: "string"; - }, - { - name: "lamports"; - type: "u64"; - }, - { - name: "mintWith"; - type: "string"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }, - { - name: "validateUnfreezeNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "from"; - isMut: true; - isSigner: false; - }, - { - name: "to"; - isMut: true; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "payer"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "UnfreezeNftData"; - }; - } - ]; - } - ]; - accounts: [ - { - name: "bridge"; - type: { - kind: "struct"; - fields: [ - { - name: "paused"; - type: "bool"; - }, - { - name: "groupKey"; - type: { - array: ["u8", 32]; - }; - }, - { - name: "actionId"; - type: "u128"; - } - ]; - }; - }, - { - name: "consumedAction"; - type: { - kind: "struct"; - fields: [ - { - name: "consumed"; - type: "bool"; - } - ]; - }; - } - ]; - types: [ - { - name: "PauseData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }; - }, - { - name: "UnpauseData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }; - }, - { - name: "UpdateGroupkeyData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - }, - { - name: "newKey"; - type: { - array: ["u8", 32]; - }; - } - ]; - }; - }, - { - name: "TransferNftData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - }, - { - name: "authBump"; - type: "u8"; - }, - { - name: "chainNonce"; - type: "u64"; - }, - { - name: "name"; - type: "string"; - }, - { - name: "symbol"; - type: "string"; - }, - { - name: "uri"; - type: "string"; - }, - { - name: "owner"; - type: "publicKey"; - }, - { - name: "collection"; - type: { - option: { - defined: "AnchorCollection"; - }; - }; - }, - { - name: "sellerFeeBasisPoints"; - type: { - option: "u16"; - }; - }, - { - name: "creators"; - type: { - option: { - vec: { - defined: "AnchorCreator"; - }; - }; - }; - } - ]; - }; - }, - { - name: "AnchorDataV2"; - type: { - kind: "struct"; - fields: [ - { - name: "name"; - docs: ["The name of the asset"]; - type: "string"; - }, - { - name: "symbol"; - docs: ["The symbol for the asset"]; - type: "string"; - }, - { - name: "uri"; - docs: ["URI pointing to JSON representing the asset"]; - type: "string"; - }, - { - name: "sellerFeeBasisPoints"; - docs: [ - "Royalty basis points that goes to creators in secondary sales (0-10000)" - ]; - type: "u16"; - }, - { - name: "creators"; - docs: ["Array of creators, optional"]; - type: { - option: { - vec: { - defined: "AnchorCreator"; - }; - }; - }; - }, - { - name: "collection"; - docs: ["Collection"]; - type: { - option: { - defined: "AnchorCollection"; - }; - }; - }, - { - name: "uses"; - docs: ["Uses"]; - type: { - option: { - defined: "AnchorUses"; - }; - }; - } - ]; - }; - }, - { - name: "AnchorCreator"; - type: { - kind: "struct"; - fields: [ - { - name: "address"; - type: "publicKey"; - }, - { - name: "verified"; - type: "bool"; - }, - { - name: "share"; - type: "u8"; - } - ]; - }; - }, - { - name: "AnchorCollection"; - type: { - kind: "struct"; - fields: [ - { - name: "verified"; - type: "bool"; - }, - { - name: "key"; - type: "publicKey"; - } - ]; - }; - }, - { - name: "AnchorUses"; - type: { - kind: "struct"; - fields: [ - { - name: "useMethod"; - type: { - defined: "AnchorUseMethod"; - }; - }, - { - name: "remaining"; - type: "u64"; - }, - { - name: "total"; - type: "u64"; - } - ]; - }; - }, - { - name: "WithdrawFeesData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }; - }, - { - name: "UnfreezeNftData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - }, - { - name: "receiver"; - type: "publicKey"; - }, - { - name: "mint"; - type: "publicKey"; - } - ]; - }; - }, - { - name: "AnchorUseMethod"; - type: { - kind: "enum"; - variants: [ - { - name: "Burn"; - }, - { - name: "Multiple"; - }, - { - name: "Single"; - } - ]; - }; - } - ]; - events: [ - { - name: "TransferNft"; - fields: [ - { - name: "chainNonce"; - type: "u8"; - index: false; - }, - { - name: "to"; - type: "string"; - index: true; - }, - { - name: "mint"; - type: "publicKey"; - index: false; - }, - { - name: "actionId"; - type: "u128"; - index: false; - }, - { - name: "mintWith"; - type: "string"; - index: false; - }, - { - name: "lamports"; - type: "u64"; - index: false; - } - ]; - }, - { - name: "UnfreezeNft"; - fields: [ - { - name: "chainNonce"; - type: "u8"; - index: false; - }, - { - name: "to"; - type: "string"; - index: true; - }, - { - name: "actionId"; - type: "u128"; - index: false; - }, - { - name: "mint"; - type: "publicKey"; - index: false; - }, - { - name: "lamports"; - type: "u64"; - index: false; - } - ]; - } - ]; - errors: [ - { - code: 6000; - name: "Paused"; - msg: "Pausable: paused"; - }, - { - code: 6001; - name: "Unpaused"; - msg: "Pausable: unpaused"; - }, - { - code: 6002; - name: "AlreadyMinted"; - msg: "Already minted"; - }, - { - code: 6003; - name: "AlreadyBurned"; - msg: "Already burned"; - }, - { - code: 6004; - name: "InstructionAtWrongIndex"; - msg: "instruction at wrong index"; - }, - { - code: 6005; - name: "InvalidEd25519Instruction"; - msg: "invalid ed25519 instruction"; - }, - { - code: 6006; - name: "InvalidGroupKey"; - msg: "invalid group key"; - }, - { - code: 6007; - name: "InvalidProgramId"; - msg: "invalid program id"; - }, - { - code: 6008; - name: "InvalidArgs"; - msg: "invalid args"; - }, - { - code: 6009; - name: "InvalidActionId"; - msg: "invalid action id"; - }, - { - code: 6010; - name: "DuplicatedAction"; - msg: "duplicated action"; - }, - { - code: 6011; - name: "IncorrectOwner"; - msg: "incorrect owner"; - }, - { - code: 6012; - name: "InvalidMint"; - msg: "invalid mint"; - }, - { - code: 6013; - name: "InsufficientFundsForTransaction"; - msg: "insufficient funds for transaction"; - } - ]; -}; - -export const IDL: XpBridge = { - version: "0.1.0", - name: "xp_bridge", - instructions: [ - { - name: "initialize", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "groupKey", - type: { - array: ["u8", 32], - }, - }, - ], - }, - { - name: "validatePause", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "PauseData", - }, - }, - ], - }, - { - name: "validateUnpause", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UnpauseData", - }, - }, - ], - }, - { - name: "validateWithdrawFees", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "WithdrawFeesData", - }, - }, - ], - }, - { - name: "validateUpdateGroupkey", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UpdateGroupkeyData", - }, - }, - ], - }, - { - name: "validateTransferNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "payer", - isMut: true, - isSigner: true, - }, - { - name: "authority", - isMut: false, - isSigner: false, - }, - { - name: "mint", - isMut: true, - isSigner: false, - }, - { - name: "tokenAccount", - isMut: true, - isSigner: false, - }, - { - name: "metadataAccount", - isMut: true, - isSigner: false, - }, - { - name: "editionAccount", - isMut: true, - isSigner: false, - }, - { - name: "metadataProgram", - isMut: false, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "rent", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "TransferNftData", - }, - }, - ], - }, - { - name: "withdrawNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "authority", - isMut: true, - isSigner: true, - }, - { - name: "mint", - isMut: true, - isSigner: false, - }, - { - name: "tokenAccount", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "chainNonce", - type: "u8", - }, - { - name: "to", - type: "string", - }, - { - name: "lamports", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - { - name: "freezeNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "authority", - isMut: true, - isSigner: true, - }, - { - name: "from", - isMut: true, - isSigner: false, - }, - { - name: "to", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "chainNonce", - type: "u8", - }, - { - name: "to", - type: "string", - }, - { - name: "lamports", - type: "u64", - }, - { - name: "mintWith", - type: "string", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - { - name: "validateUnfreezeNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "from", - isMut: true, - isSigner: false, - }, - { - name: "to", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "payer", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UnfreezeNftData", - }, - }, - ], - }, - ], - accounts: [ - { - name: "bridge", - type: { - kind: "struct", - fields: [ - { - name: "paused", - type: "bool", - }, - { - name: "groupKey", - type: { - array: ["u8", 32], - }, - }, - { - name: "actionId", - type: "u128", - }, - ], - }, - }, - { - name: "consumedAction", - type: { - kind: "struct", - fields: [ - { - name: "consumed", - type: "bool", - }, - ], - }, - }, - ], - types: [ - { - name: "PauseData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - }, - { - name: "UnpauseData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - }, - { - name: "UpdateGroupkeyData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - { - name: "newKey", - type: { - array: ["u8", 32], - }, - }, - ], - }, - }, - { - name: "TransferNftData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - { - name: "authBump", - type: "u8", - }, - { - name: "chainNonce", - type: "u64", - }, - { - name: "name", - type: "string", - }, - { - name: "symbol", - type: "string", - }, - { - name: "uri", - type: "string", - }, - { - name: "owner", - type: "publicKey", - }, - { - name: "collection", - type: { - option: { - defined: "AnchorCollection", - }, - }, - }, - { - name: "sellerFeeBasisPoints", - type: { - option: "u16", - }, - }, - { - name: "creators", - type: { - option: { - vec: { - defined: "AnchorCreator", - }, - }, - }, - }, - ], - }, - }, - { - name: "AnchorDataV2", - type: { - kind: "struct", - fields: [ - { - name: "name", - docs: ["The name of the asset"], - type: "string", - }, - { - name: "symbol", - docs: ["The symbol for the asset"], - type: "string", - }, - { - name: "uri", - docs: ["URI pointing to JSON representing the asset"], - type: "string", - }, - { - name: "sellerFeeBasisPoints", - docs: [ - "Royalty basis points that goes to creators in secondary sales (0-10000)", - ], - type: "u16", - }, - { - name: "creators", - docs: ["Array of creators, optional"], - type: { - option: { - vec: { - defined: "AnchorCreator", - }, - }, - }, - }, - { - name: "collection", - docs: ["Collection"], - type: { - option: { - defined: "AnchorCollection", - }, - }, - }, - { - name: "uses", - docs: ["Uses"], - type: { - option: { - defined: "AnchorUses", - }, - }, - }, - ], - }, - }, - { - name: "AnchorCreator", - type: { - kind: "struct", - fields: [ - { - name: "address", - type: "publicKey", - }, - { - name: "verified", - type: "bool", - }, - { - name: "share", - type: "u8", - }, - ], - }, - }, - { - name: "AnchorCollection", - type: { - kind: "struct", - fields: [ - { - name: "verified", - type: "bool", - }, - { - name: "key", - type: "publicKey", - }, - ], - }, - }, - { - name: "AnchorUses", - type: { - kind: "struct", - fields: [ - { - name: "useMethod", - type: { - defined: "AnchorUseMethod", - }, - }, - { - name: "remaining", - type: "u64", - }, - { - name: "total", - type: "u64", - }, - ], - }, - }, - { - name: "WithdrawFeesData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - }, - { - name: "UnfreezeNftData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - { - name: "receiver", - type: "publicKey", - }, - { - name: "mint", - type: "publicKey", - }, - ], - }, - }, - { - name: "AnchorUseMethod", - type: { - kind: "enum", - variants: [ - { - name: "Burn", - }, - { - name: "Multiple", - }, - { - name: "Single", - }, - ], - }, - }, - ], - events: [ - { - name: "TransferNft", - fields: [ - { - name: "chainNonce", - type: "u8", - index: false, - }, - { - name: "to", - type: "string", - index: true, - }, - { - name: "mint", - type: "publicKey", - index: false, - }, - { - name: "actionId", - type: "u128", - index: false, - }, - { - name: "mintWith", - type: "string", - index: false, - }, - { - name: "lamports", - type: "u64", - index: false, - }, - ], - }, - { - name: "UnfreezeNft", - fields: [ - { - name: "chainNonce", - type: "u8", - index: false, - }, - { - name: "to", - type: "string", - index: true, - }, - { - name: "actionId", - type: "u128", - index: false, - }, - { - name: "mint", - type: "publicKey", - index: false, - }, - { - name: "lamports", - type: "u64", - index: false, - }, - ], - }, - ], - errors: [ - { - code: 6000, - name: "Paused", - msg: "Pausable: paused", - }, - { - code: 6001, - name: "Unpaused", - msg: "Pausable: unpaused", - }, - { - code: 6002, - name: "AlreadyMinted", - msg: "Already minted", - }, - { - code: 6003, - name: "AlreadyBurned", - msg: "Already burned", - }, - { - code: 6004, - name: "InstructionAtWrongIndex", - msg: "instruction at wrong index", - }, - { - code: 6005, - name: "InvalidEd25519Instruction", - msg: "invalid ed25519 instruction", - }, - { - code: 6006, - name: "InvalidGroupKey", - msg: "invalid group key", - }, - { - code: 6007, - name: "InvalidProgramId", - msg: "invalid program id", - }, - { - code: 6008, - name: "InvalidArgs", - msg: "invalid args", - }, - { - code: 6009, - name: "InvalidActionId", - msg: "invalid action id", - }, - { - code: 6010, - name: "DuplicatedAction", - msg: "duplicated action", - }, - { - code: 6011, - name: "IncorrectOwner", - msg: "incorrect owner", - }, - { - code: 6012, - name: "InvalidMint", - msg: "invalid mint", - }, - { - code: 6013, - name: "InsufficientFundsForTransaction", - msg: "insufficient funds for transaction", - }, - ], -}; diff --git a/dist/helpers/solana/index.d.ts b/dist/helpers/solana/index.d.ts deleted file mode 100644 index b61ebba2e..000000000 --- a/dist/helpers/solana/index.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Wallet } from "@project-serum/anchor"; -import { Connection } from "@solana/web3.js"; -import { EvNotifier } from "../../notifier"; -import { - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, - MintNft, -} from "../chain"; -export declare type SolanaSigner = Wallet; -export declare type SolanaNft = { - nftMint: string; -}; -declare type SolanaMintArgs = { - uri: string; -}; -export declare type SolanaHelper = ChainNonceGet & - BalanceCheck & - MintNft & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - connection: Connection; - } & { - XpNft: string; - } & GetFeeMargins & - GetProvider; -export declare type SolanaParams = { - endpoint: string; - bridgeContractAddr: string; - xpnftAddr: string; - notifier: EvNotifier; - feeMargin: FeeMargins; -}; -export declare function solanaHelper(args: SolanaParams): Promise; -export {}; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/helpers/solana/index.d.ts.map b/dist/helpers/solana/index.d.ts.map deleted file mode 100644 index c906f3033..000000000 --- a/dist/helpers/solana/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,MAAM,EAKP,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACL,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACR,MAAM,UAAU,CAAC;AAGlB,oBAAY,YAAY,GAAG,MAAM,CAAC;AAElC,oBAAY,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,aAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,YAAY,GAAG,aAAa,GACtC,YAAY,GACZ,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC7C,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,cAAc,CAAC,SAAS,CAAC,GACzB,eAAe,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GACrC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE1B,oBAAY,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AA4DF,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuN5E"} \ No newline at end of file diff --git a/dist/helpers/solana/index.js b/dist/helpers/solana/index.js deleted file mode 100644 index 20abaa878..000000000 --- a/dist/helpers/solana/index.js +++ /dev/null @@ -1,273 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.solanaHelper = void 0; -/*import { - Metaplex, - bundlrStorage, - walletAdapterIdentity, -} from "@metaplex-foundation/js";*/ -const anchor_1 = require("@project-serum/anchor"); -const spl_token_1 = require("@solana/spl-token"); -const web3_js_1 = require("@solana/web3.js"); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const __1 = require("../.."); -const idl_1 = require("./idl"); -// Based on https://github.com/solana-labs/solana-program-library/blob/118bd047aa0f1ba1930b5bc4639d40aa2a375ccb/token/js/src/actions/getOrCreateAssociatedTokenAccount.ts -async function getOrCreateAssociatedTokenAccount( - connection, - payer, - mint, - owner, - allowOwnerOffCurve = false -) { - const provider = new anchor_1.AnchorProvider(connection, payer, {}); - const associatedToken = await (0, spl_token_1.getAssociatedTokenAddress)( - mint, - owner, - allowOwnerOffCurve - ); - // This is the optimal logic, considering TX fee, client-side computation, RPC roundtrips and guaranteed idempotent. - // Sadly we can't do this atomically. - let account; - try { - account = await (0, spl_token_1.getAccount)(connection, associatedToken); - } catch (error) { - // TokenAccountNotFoundError can be possible if the associated address has already received some lamports, - // becoming a system account. Assuming program derived addressing is safe, this is the only case for the - // TokenInvalidAccountOwnerError in this code path. - if ( - error instanceof spl_token_1.TokenAccountNotFoundError || - error instanceof spl_token_1.TokenInvalidAccountOwnerError - ) { - // As this isn't atomic, it's possible others can create associated accounts meanwhile. - try { - const transaction = new web3_js_1.Transaction().add( - (0, spl_token_1.createAssociatedTokenAccountInstruction)( - payer.publicKey, - associatedToken, - owner, - mint - ) - ); - await provider.sendAndConfirm(transaction); - } catch (error) { - // Ignore all errors; for now there is no API-compatible way to selectively ignore the expected - // instruction error if the associated account exists already. - } - // Now this should always succeed - account = await (0, spl_token_1.getAccount)(connection, associatedToken); - } else { - throw error; - } - } - if (!account.mint.equals(mint)) throw new spl_token_1.TokenInvalidMintError(); - if (!account.owner.equals(owner)) - throw new spl_token_1.TokenInvalidOwnerError(); - return account; -} -async function solanaHelper(args) { - const conn = new web3_js_1.Connection(args.endpoint); - async function getOrCreateTokenAccount(mint, owner, provider) { - const tokenProgram = anchor_1.Spl.token(provider); - const program = anchor_1.Spl.associatedToken(provider); - const [associatedToken] = await web3_js_1.PublicKey.findProgramAddress( - [owner.toBuffer(), tokenProgram.programId.toBuffer(), mint.toBuffer()], - program.programId - ); - try { - const tokenAccount = await tokenProgram.account.token.fetch( - associatedToken - ); - return { - address: associatedToken, - owner: tokenAccount.authority, - ...tokenAccount, - }; - } catch (e) { - try { - await program.methods - .create() - .accounts({ - mint, - owner, - associatedAccount: associatedToken, - }) - .rpc(); - const tokenAccount = await tokenProgram.account.token.fetch( - associatedToken - ); - return { - address: associatedToken, - owner: tokenAccount.authority, - ...tokenAccount, - }; - } catch (e) { - throw e; - } - } - } - return { - XpNft: args.xpnftAddr, - connection: conn, - async balance(address) { - return new bignumber_js_1.default( - await conn.getBalance(new web3_js_1.PublicKey(address)) - ); - }, - getNonce: () => __1.Chain.SOLANA, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { - const provider = new anchor_1.AnchorProvider(conn, sender, {}); - const bridgeContract = new anchor_1.Program( - idl_1.IDL, - args.bridgeContractAddr, - provider - ); - const [bridge, bridgeBump] = await web3_js_1.PublicKey.findProgramAddress( - [Buffer.from("bridge")], - bridgeContract.programId - ); - const mintAddr = new web3_js_1.PublicKey(id.native.nftMint); - const fromTokenAcc = await getOrCreateTokenAccount( - mintAddr, - sender.publicKey, - provider - ); - const toAccount = await getOrCreateTokenAccount( - mintAddr, - bridge, - provider - ); - const tx = await bridgeContract.methods - .freezeNft( - chain_nonce, - to, - new anchor_1.BN(txFees.toString(10)), - mintWith, - bridgeBump - ) - .accounts({ - bridge, - authority: sender.publicKey, - from: fromTokenAcc.address, - to: toAccount.address, - tokenProgram: spl_token_1.TOKEN_PROGRAM_ID, - }) - .rpc(); - await args.notifier.notifySolana(tx); - return tx; - }, - getFeeMargin() { - return args.feeMargin; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - console.log(`Unfreezing`); - const provider = new anchor_1.AnchorProvider(conn, sender, {}); - const bridgeContract = new anchor_1.Program( - idl_1.IDL, - args.bridgeContractAddr, - provider - ); - const [bridge, bridgeBump] = await web3_js_1.PublicKey.findProgramAddress( - [Buffer.from("bridge")], - bridgeContract.programId - ); - const mintAddr = new web3_js_1.PublicKey(id.native.nftMint); - const tokenAcc = await getOrCreateAssociatedTokenAccount( - conn, - sender, - mintAddr, - sender.publicKey - ).catch((e) => { - console.error(e); - throw e; - }); - const tx = await bridgeContract.methods - .withdrawNft( - parseInt(nonce), - to, - new anchor_1.BN(txFees.toString(10)), - bridgeBump - ) - .accounts({ - bridge, - authority: sender.publicKey, - mint: tokenAcc.mint, - tokenAccount: tokenAcc.address, - tokenProgram: spl_token_1.TOKEN_PROGRAM_ID, - }) - .rpc(); - await args.notifier.notifySolana(tx); - return tx; - }, - getProvider() { - return conn; - }, - async mintNft() { - /*console.log(Metaplex, walletAdapterIdentity, bundlrStorage); - console.log(args, "args"); - console.log(sender, "sender"); - const provider = new AnchorProvider(conn, sender, {}); - console.log(provider.wallet, "provider"); - - /*const txn = await conn.requestAirdrop( - sender.publicKey, - LAMPORTS_PER_SOL * 2 - ); - const block = await conn.getLatestBlockhash(); - const sig = conn.confirmTransaction( - { - blockhash: block.blockhash, - lastValidBlockHeight: block.lastValidBlockHeight, - signature: txn, - }, - "finalized" - ); - console.log(`Airdrop: ${txn}`); - console.log(`sig ${sig}`); - console.log(`Waiting for 5s`); - await new Promise((r) => setTimeout(r, 5000)); - //sender.payer.secretKey. - const _metaplex = Metaplex.make(conn) - .use(walletAdapterIdentity(sender)) - .use(bundlrStorage()); - const nftc = _metaplex.nfts(); - - const _col = await nftc.create( - { - name: "Uniair1", - symbol: "UNIAIRT", - - uri: args.uri, - sellerFeeBasisPoints: 0, - }, - { - commitment: "processed", - } - ); - - console.log(_col);*/ - return ""; - }, - async estimateValidateTransferNft() { - return new bignumber_js_1.default(0); // TODO - }, - async estimateValidateUnfreezeNft() { - return new bignumber_js_1.default(0); // TODO - }, - async validateAddress(adr) { - try { - new web3_js_1.PublicKey(adr); - return true; - } catch { - return false; - } - }, - }; -} -exports.solanaHelper = solanaHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9zb2xhbmEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7bUNBSW1DO0FBQ25DLGtEQU0rQjtBQUMvQixpREFVMkI7QUFDM0IsNkNBS3lCO0FBRXpCLGdFQUFxQztBQUNyQyw2QkFBOEI7QUFjOUIsK0JBQTRCO0FBK0I1Qix5S0FBeUs7QUFDekssS0FBSyxVQUFVLGlDQUFpQyxDQUM5QyxVQUFzQixFQUN0QixLQUFtQixFQUNuQixJQUFlLEVBQ2YsS0FBZ0IsRUFDaEIsa0JBQWtCLEdBQUcsS0FBSztJQUUxQixNQUFNLFFBQVEsR0FBRyxJQUFJLHVCQUFjLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUEscUNBQXlCLEVBQ3JELElBQUksRUFDSixLQUFLLEVBQ0wsa0JBQWtCLENBQ25CLENBQUM7SUFFRixvSEFBb0g7SUFDcEgscUNBQXFDO0lBQ3JDLElBQUksT0FBZ0IsQ0FBQztJQUNyQixJQUFJO1FBQ0YsT0FBTyxHQUFHLE1BQU0sSUFBQSxzQkFBVSxFQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztLQUN6RDtJQUFDLE9BQU8sS0FBYyxFQUFFO1FBQ3ZCLDBHQUEwRztRQUMxRyx3R0FBd0c7UUFDeEcsbURBQW1EO1FBQ25ELElBQ0UsS0FBSyxZQUFZLHFDQUF5QjtZQUMxQyxLQUFLLFlBQVkseUNBQTZCLEVBQzlDO1lBQ0EsdUZBQXVGO1lBQ3ZGLElBQUk7Z0JBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQkFBVyxFQUFFLENBQUMsR0FBRyxDQUN2QyxJQUFBLG1EQUF1QyxFQUNyQyxLQUFLLENBQUMsU0FBUyxFQUNmLGVBQWUsRUFDZixLQUFLLEVBQ0wsSUFBSSxDQUNMLENBQ0YsQ0FBQztnQkFFRixNQUFNLFFBQVEsQ0FBQyxjQUFj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 diff --git a/dist/helpers/solana/index.ts b/dist/helpers/solana/index.ts deleted file mode 100644 index e7723945b..000000000 --- a/dist/helpers/solana/index.ts +++ /dev/null @@ -1,350 +0,0 @@ -/*import { - Metaplex, - bundlrStorage, - walletAdapterIdentity, -} from "@metaplex-foundation/js";*/ -import { - Wallet, - BN, - Program, - AnchorProvider, - Spl, -} from "@project-serum/anchor"; -import { - Account, - createAssociatedTokenAccountInstruction, - getAccount, - getAssociatedTokenAddress, - TokenAccountNotFoundError, - TokenInvalidAccountOwnerError, - TokenInvalidMintError, - TokenInvalidOwnerError, - TOKEN_PROGRAM_ID, -} from "@solana/spl-token"; -import { - Connection, - PublicKey, - Transaction, - //LAMPORTS_PER_SOL, -} from "@solana/web3.js"; - -import BigNumber from "bignumber.js"; -import { Chain } from "../.."; -import { EvNotifier } from "../../notifier"; -import { - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, - MintNft, -} from "../chain"; -import { IDL } from "./idl"; - -export type SolanaSigner = Wallet; - -export type SolanaNft = { - nftMint: string; -}; - -type SolanaMintArgs = { - uri: string; -}; - -export type SolanaHelper = ChainNonceGet & - BalanceCheck & - MintNft & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - connection: Connection; - } & { XpNft: string } & GetFeeMargins & - GetProvider; - -export type SolanaParams = { - endpoint: string; - bridgeContractAddr: string; - xpnftAddr: string; - notifier: EvNotifier; - feeMargin: FeeMargins; -}; - -// Based on https://github.com/solana-labs/solana-program-library/blob/118bd047aa0f1ba1930b5bc4639d40aa2a375ccb/token/js/src/actions/getOrCreateAssociatedTokenAccount.ts -async function getOrCreateAssociatedTokenAccount( - connection: Connection, - payer: SolanaSigner, - mint: PublicKey, - owner: PublicKey, - allowOwnerOffCurve = false -) { - const provider = new AnchorProvider(connection, payer, {}); - const associatedToken = await getAssociatedTokenAddress( - mint, - owner, - allowOwnerOffCurve - ); - - // This is the optimal logic, considering TX fee, client-side computation, RPC roundtrips and guaranteed idempotent. - // Sadly we can't do this atomically. - let account: Account; - try { - account = await getAccount(connection, associatedToken); - } catch (error: unknown) { - // TokenAccountNotFoundError can be possible if the associated address has already received some lamports, - // becoming a system account. Assuming program derived addressing is safe, this is the only case for the - // TokenInvalidAccountOwnerError in this code path. - if ( - error instanceof TokenAccountNotFoundError || - error instanceof TokenInvalidAccountOwnerError - ) { - // As this isn't atomic, it's possible others can create associated accounts meanwhile. - try { - const transaction = new Transaction().add( - createAssociatedTokenAccountInstruction( - payer.publicKey, - associatedToken, - owner, - mint - ) - ); - - await provider.sendAndConfirm(transaction); - } catch (error: unknown) { - // Ignore all errors; for now there is no API-compatible way to selectively ignore the expected - // instruction error if the associated account exists already. - } - - // Now this should always succeed - account = await getAccount(connection, associatedToken); - } else { - throw error; - } - } - - if (!account.mint.equals(mint)) throw new TokenInvalidMintError(); - if (!account.owner.equals(owner)) throw new TokenInvalidOwnerError(); - - return account; -} - -export async function solanaHelper(args: SolanaParams): Promise { - const conn = new Connection(args.endpoint); - - async function getOrCreateTokenAccount( - mint: PublicKey, - owner: PublicKey, - provider: AnchorProvider - ) { - const tokenProgram = Spl.token(provider); - const program = Spl.associatedToken(provider); - - const [associatedToken] = await PublicKey.findProgramAddress( - [owner.toBuffer(), tokenProgram.programId.toBuffer(), mint.toBuffer()], - program.programId - ); - - try { - const tokenAccount = await tokenProgram.account.token.fetch( - associatedToken - ); - return { - address: associatedToken, - owner: tokenAccount.authority, - ...tokenAccount, - }; - } catch (e) { - try { - await program.methods - .create() - .accounts({ - mint, - owner, - associatedAccount: associatedToken, - }) - .rpc(); - - const tokenAccount = await tokenProgram.account.token.fetch( - associatedToken - ); - return { - address: associatedToken, - owner: tokenAccount.authority, - ...tokenAccount, - }; - } catch (e) { - throw e; - } - } - } - - return { - XpNft: args.xpnftAddr, - connection: conn, - async balance(address: string) { - return new BigNumber(await conn.getBalance(new PublicKey(address))); - }, - getNonce: () => Chain.SOLANA, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { - const provider = new AnchorProvider(conn, sender, {}); - const bridgeContract = new Program( - IDL, - args.bridgeContractAddr, - provider - ); - - const [bridge, bridgeBump] = await PublicKey.findProgramAddress( - [Buffer.from("bridge")], - bridgeContract.programId - ); - - const mintAddr = new PublicKey(id.native.nftMint); - const fromTokenAcc = await getOrCreateTokenAccount( - mintAddr, - sender.publicKey, - provider - ); - const toAccount = await getOrCreateTokenAccount( - mintAddr, - bridge, - provider - ); - const tx = await bridgeContract.methods - .freezeNft( - chain_nonce, - to, - new BN(txFees.toString(10)), - mintWith, - bridgeBump - ) - .accounts({ - bridge, - authority: sender.publicKey, - from: fromTokenAcc.address, - to: toAccount.address, - tokenProgram: TOKEN_PROGRAM_ID, - }) - .rpc(); - - await args.notifier.notifySolana(tx); - - return tx; - }, - getFeeMargin() { - return args.feeMargin; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - console.log(`Unfreezing`); - const provider = new AnchorProvider(conn, sender, {}); - const bridgeContract = new Program( - IDL, - args.bridgeContractAddr, - provider - ); - - const [bridge, bridgeBump] = await PublicKey.findProgramAddress( - [Buffer.from("bridge")], - bridgeContract.programId - ); - - const mintAddr = new PublicKey(id.native.nftMint); - - const tokenAcc = await getOrCreateAssociatedTokenAccount( - conn, - sender, - mintAddr, - sender.publicKey - ).catch((e) => { - console.error(e); - throw e; - }); - - const tx = await bridgeContract.methods - .withdrawNft( - parseInt(nonce), - to, - new BN(txFees.toString(10)), - bridgeBump - ) - .accounts({ - bridge, - authority: sender.publicKey, - mint: tokenAcc.mint, - tokenAccount: tokenAcc.address, - tokenProgram: TOKEN_PROGRAM_ID, - }) - .rpc(); - - await args.notifier.notifySolana(tx); - - return tx; - }, - getProvider() { - return conn; - }, - async mintNft() { - /*console.log(Metaplex, walletAdapterIdentity, bundlrStorage); - console.log(args, "args"); - console.log(sender, "sender"); - const provider = new AnchorProvider(conn, sender, {}); - console.log(provider.wallet, "provider"); - - /*const txn = await conn.requestAirdrop( - sender.publicKey, - LAMPORTS_PER_SOL * 2 - ); - const block = await conn.getLatestBlockhash(); - const sig = conn.confirmTransaction( - { - blockhash: block.blockhash, - lastValidBlockHeight: block.lastValidBlockHeight, - signature: txn, - }, - "finalized" - ); - console.log(`Airdrop: ${txn}`); - console.log(`sig ${sig}`); - console.log(`Waiting for 5s`); - await new Promise((r) => setTimeout(r, 5000)); - //sender.payer.secretKey. - const _metaplex = Metaplex.make(conn) - .use(walletAdapterIdentity(sender)) - .use(bundlrStorage()); - const nftc = _metaplex.nfts(); - - const _col = await nftc.create( - { - name: "Uniair1", - symbol: "UNIAIRT", - - uri: args.uri, - sellerFeeBasisPoints: 0, - }, - { - commitment: "processed", - } - ); - - console.log(_col);*/ - return ""; - }, - async estimateValidateTransferNft() { - return new BigNumber(0); // TODO - }, - async estimateValidateUnfreezeNft() { - return new BigNumber(0); // TODO - }, - async validateAddress(adr) { - try { - new PublicKey(adr); - return true; - } catch { - return false; - } - }, - }; -} diff --git a/dist/helpers/tezos.d.ts b/dist/helpers/tezos.d.ts deleted file mode 100644 index b17c82785..000000000 --- a/dist/helpers/tezos.d.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { - BalanceCheck, - ChainNonceGet, - EstimateTxFees, - MintNft, - NftInfo, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from ".."; -import { Signer, TezosToolkit, WalletProvider } from "@taquito/taquito"; -import { EvNotifier } from "../notifier"; -import { - FeeMargins, - GetFeeMargins, - WhitelistCheck, - GetTokenURI, - TransferNftForeignBatch, - UnfreezeForeignNftBatch, - EstimateTxFeesBatch, -} from "./chain"; -declare type TezosSigner = WalletProvider | Signer; -export declare type TezosNftInfo = { - contract: string; - token_id: string; - amt: number; -}; -declare type TezosMintArgs = { - identifier: string; - contract: string; - uri: string; - to: string; - amt: number; -}; -export declare type TezosHelper = TransferNftForeign< - TezosSigner, - TezosNftInfo, - string -> & - MintNft & - BalanceCheck & - UnfreezeForeignNft & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - EstimateTxFeesBatch & - ValidateAddress & - EstimateTxFees & - ChainNonceGet & - Pick, "preTransfer"> & { - isApprovedForMinter( - nft: NftInfo, - signer: TezosSigner - ): Promise; - } & { - approveForMinter( - address: NftInfo, - sender: TezosSigner - ): Promise; - } & { - XpNft: string; - XpNft1155: string; - } & GetFeeMargins & - WhitelistCheck & - GetTokenURI; -export declare type TezosParams = { - Tezos: TezosToolkit; - notifier: EvNotifier; - xpnftAddress: string; - bridgeAddress: string; - validators: string[]; - feeMargin: FeeMargins; -}; -export declare function tezosHelperFactory({ - Tezos, - notifier, - xpnftAddress, - bridgeAddress, - validators, - feeMargin, -}: TezosParams): Promise; -export {}; -//# sourceMappingURL=tezos.d.ts.map diff --git a/dist/helpers/tezos.d.ts.map b/dist/helpers/tezos.d.ts.map deleted file mode 100644 index 92475acf3..000000000 --- a/dist/helpers/tezos.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/helpers/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAOL,MAAM,EACN,YAAY,EAIZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,aAAK,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3C,oBAAY,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,aAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,WAAW,GAAG,kBAAkB,CAC1C,WAAW,EACX,YAAY,EACZ,MAAM,CACP,GACC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAC3C,YAAY,GACZ,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GACrD,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,mBAAmB,CAAC,YAAY,CAAC,GACjC,eAAe,GACf,cAAc,CAAC,YAAY,CAAC,GAC5B,aAAa,GACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG;IAC1E,mBAAmB,CACjB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,GAAG;IACF,gBAAgB,CACd,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,GACjB,cAAc,CAAC,YAAY,CAAC,GAC5B,WAAW,CAAC;AAEd,oBAAY,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA+OpC"} \ No newline at end of file diff --git a/dist/helpers/tezos.js b/dist/helpers/tezos.js deleted file mode 100644 index dd8ff421a..000000000 --- a/dist/helpers/tezos.js +++ /dev/null @@ -1,242 +0,0 @@ -"use strict"; -var __createBinding = - (this && this.__createBinding) || - (Object.create - ? function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function () { - return m[k]; - }, - }); - } - : function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); -var __setModuleDefault = - (this && this.__setModuleDefault) || - (Object.create - ? function (o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } - : function (o, v) { - o["default"] = v; - }); -var __importStar = - (this && this.__importStar) || - function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.tezosHelperFactory = void 0; -const __1 = require(".."); -const taquito_1 = require("@taquito/taquito"); -const utils = __importStar(require("@taquito/utils")); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -async function tezosHelperFactory({ - Tezos, - notifier, - xpnftAddress, - bridgeAddress, - validators, - feeMargin, -}) { - const estimateGas = (validators, baseprice) => { - return new bignumber_js_1.default(baseprice * (validators.length + 1)); - }; - async function withContract(sender, contract, cb, params) { - if ("publicKeyHash" in sender) { - Tezos.setSignerProvider(sender); - const contractI = await Tezos.contract.at(contract); - const res = cb(contractI); - const tx = await res.send(params); - await tx.confirmation(); - return tx.hash; - } else { - Tezos.setWalletProvider(sender); - const contractI = await Tezos.wallet.at(contract); - const res = cb(contractI); - const estim = await Tezos.estimate - .transfer(res.toTransferParams(params)) - .catch(() => ({ storageLimit: 0 })); - if (params) { - if (!params.storageLimit) params.storageLimit = estim.storageLimit; - } else { - params = { storageLimit: estim.storageLimit }; - } - const tx = await res.send(params); - await tx.confirmation(); - return tx.opHash; - } - } - function withBridge(sender, cb, params) { - return withContract(sender, bridgeAddress, cb, params); - } - function getAddress(sender) { - if ("publicKeyHash" in sender) { - return sender.publicKeyHash(); - } else { - return sender.getPKH(); - } - } - async function isApprovedForMinter(nft, sender) { - const owner = await getAddress(sender); - const contract = await Tezos.contract.at(nft.native.contract); - const storage = await contract.storage(); - const storageOperator = storage.operator || storage.operators; - const args = storage.operator - ? [bridgeAddress, nft.native.token_id, owner] - : { - owner, - operator: bridgeAddress, - token_id: nft.native.token_id, - }; - const op = await storageOperator?.get(args); - return op != undefined; - } - async function notifyValidator(hash) { - await notifier.notifyTezos(hash); - } - async function preTransfer(signer, nft) { - if (await isApprovedForMinter(nft, signer)) { - return; - } - const owner = await getAddress(signer); - return await withContract(signer, nft.native.contract, (contract) => - contract.methods.update_operators([ - { - add_operator: { - owner, - operator: bridgeAddress, - token_id: nft.native.token_id, - }, - }, - ]) - ); - } - let transferNft = async (sender, chain, to, nft, fee, mw, amt) => { - // await preTransfer(sender, nft); - const hash = await withBridge( - sender, - (bridge) => - bridge.methodsObject.freeze_fa2({ - fa2_address: nft.collectionIdent, - token_id: parseInt(nft.native.token_id), - chain_nonce: chain, - to, - mint_with: mw, - amt, - }), - { amount: fee.toNumber() / 1e6 } - ); - notifyValidator(hash); - return hash; - }; - let unfreezeWrappedNft = async (sender, to, nft, fee, nonce, amt) => { - const hash = await withBridge( - sender, - (bridge) => { - return bridge.methodsObject.withdraw_nft({ - amt, - burner: nft.native.contract, - chain_nonce: nonce, - to, - token_id: parseInt(nft.native.token_id), - }); - }, - { amount: fee.toNumber() / 1e6 } - ); - notifyValidator(hash); - return hash; - }; - return { - XpNft: xpnftAddress, - XpNft1155: xpnftAddress, - transferNftToForeign: (sender, chain, to, nft, fee, mw) => - transferNft(sender, chain, to, nft, fee, mw, 1), - transferNftBatchToForeign: ( - sender, - chain_nonce, - to, - id, - mintWith, - txFees - ) => - transferNft(sender, chain_nonce, to, id[0], txFees, mintWith, id.length), - async balance(address) { - return new bignumber_js_1.default( - (await Tezos.tz.getBalance(address)).toString(10) - ); - }, - unfreezeWrappedNftBatch: (sender, chainNonce, to, nfts, txFees) => - unfreezeWrappedNft(sender, to, nfts[0], txFees, chainNonce, nfts.length), - unfreezeWrappedNft: (sender, to, nft, txFees, chainNonce) => - unfreezeWrappedNft(sender, to, nft, txFees, parseInt(chainNonce), 1), - async mintNft(signer, { identifier, contract, uri, to, amt }) { - const metadata = new taquito_1.MichelsonMap(); - metadata.set("", utils.char2Bytes(uri)); - return await withContract(signer, contract, (umt) => - umt.methods.mint(to, amt, metadata, identifier) - ); - }, - async validateAddress(adr) { - return Promise.resolve( - utils.validateAddress(adr) === utils.ValidationResult.VALID - ); - }, - getNonce() { - return __1.Chain.TEZOS; - }, - getFeeMargin() { - return feeMargin; - }, - async estimateValidateTransferNft() { - return estimateGas(validators, 1.2e5); - }, - async estimateValidateUnfreezeNft() { - return estimateGas(validators, 1.2e4); - }, - async estimateValidateTransferNftBatch(_, ids) { - return estimateGas(validators, 1.2e5 * ids.length); - }, - async estimateValidateUnfreezeNftBatch(_, ids) { - return estimateGas(validators, 1.2e4 * ids.length); - }, - preTransfer, - isApprovedForMinter, - approveForMinter: (nft, sender) => preTransfer(sender, nft), - async isNftWhitelisted(nft) { - const bridge = await Tezos.contract.at(bridgeAddress); - const storage = await bridge.storage(); - const whitelisted = await storage.nft_whitelist.get(nft.native.contract); - return whitelisted == 2; - }, - async getTokenURI(contract, tokenId) { - if (utils.validateAddress(contract) && tokenId) { - const _contract = await Tezos.contract.at(contract); - const storage = await _contract.storage(); - const tokenStorage = await storage.token_metadata.get(tokenId); - if (tokenStorage) { - return utils.bytes2Char(tokenStorage.token_info?.get("")); - } - } - return ""; - }, - }; -} -exports.tezosHelperFactory = tezosHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV6b3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90ZXpvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMEJBV1k7QUFDWiw4Q0FhMEI7QUFFMUIsc0RBQXdDO0FBQ3hDLGdFQUFxQztBQW9FOUIsS0FBSyxVQUFVLGtCQUFrQixDQUFDLEVBQ3ZDLEtBQUssRUFDTCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1YsU0FBUyxHQUNHO0lBQ1osTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFvQixFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUM5RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0lBRUYsS0FBSyxVQUFVLFlBQVksQ0FDekIsTUFBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsRUFFOEMsRUFDOUMsTUFBNEI7UUFFNUIsSUFBSSxlQUFlLElBQUksTUFBTSxFQUFFO1lBQzdCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVoQyxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXBELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQixNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsT0FBUSxFQUEyQixDQUFDLElBQUksQ0FBQztTQUMxQzthQUFNO1lBQ0wsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FB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 diff --git a/dist/helpers/tezos.ts b/dist/helpers/tezos.ts deleted file mode 100644 index ab485c4fe..000000000 --- a/dist/helpers/tezos.ts +++ /dev/null @@ -1,297 +0,0 @@ -import { - BalanceCheck, - Chain, - ChainNonceGet, - EstimateTxFees, - MintNft, - NftInfo, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from ".."; -import { - BigMapAbstraction, - ContractAbstraction, - ContractMethod, - ContractProvider, - SendParams, - Signer, - TezosToolkit, - TransactionOperation, - TransactionWalletOperation, - Wallet, - WalletProvider, -} from "@taquito/taquito"; - -import * as utils from "@taquito/utils"; -import BigNumber from "bignumber.js"; -import { EvNotifier } from "../notifier"; -import { - FeeMargins, - GetFeeMargins, - WhitelistCheck, - GetTokenURI, -} from "./chain"; - -type TezosSigner = WalletProvider | Signer; - -export type TezosNftInfo = { - contract: string; - token_id: string; -}; - -type TezosMintArgs = { - identifier: string; - attrs: string; - contract: string; - uri: string; -}; - -export type TezosHelper = TransferNftForeign< - TezosSigner, - TezosNftInfo, - string -> & - MintNft & - BalanceCheck & - UnfreezeForeignNft & - ValidateAddress & - EstimateTxFees & - ChainNonceGet & - Pick, "preTransfer"> & { - isApprovedForMinter( - nft: NftInfo, - signer: TezosSigner - ): Promise; - } & { - approveForMinter( - address: NftInfo, - sender: TezosSigner - ): Promise; - } & { - XpNft: string; - } & GetFeeMargins & - WhitelistCheck & - GetTokenURI; - -export type TezosParams = { - Tezos: TezosToolkit; - notifier: EvNotifier; - xpnftAddress: string; - bridgeAddress: string; - validators: string[]; - feeMargin: FeeMargins; -}; - -export async function tezosHelperFactory({ - Tezos, - notifier, - xpnftAddress, - bridgeAddress, - validators, - feeMargin, -}: TezosParams): Promise { - const estimateGas = (validators: string[], baseprice: number) => { - return new BigNumber(baseprice * (validators.length + 1)); - }; - - async function withContract( - sender: TezosSigner, - contract: string, - cb: ( - contract: ContractAbstraction - ) => ContractMethod, - params?: Partial - ) { - if ("publicKeyHash" in sender) { - Tezos.setSignerProvider(sender); - - const contractI = await Tezos.contract.at(contract); - - const res = cb(contractI); - const tx = await res.send(params); - await tx.confirmation(); - return (tx as TransactionOperation).hash; - } else { - Tezos.setWalletProvider(sender); - const contractI = await Tezos.wallet.at(contract); - - const res = cb(contractI); - - const estim = await Tezos.estimate - .transfer(res.toTransferParams(params)) - .catch(() => ({ storageLimit: 0 })); - - if (params) { - if (!params.storageLimit) params.storageLimit = estim.storageLimit; - } else { - params = { storageLimit: estim.storageLimit }; - } - const tx = await res.send(params); - await tx.confirmation(); - return (tx as TransactionWalletOperation).opHash; - } - } - - function withBridge( - sender: TezosSigner, - cb: ( - bridge: ContractAbstraction - ) => ContractMethod, - params?: Partial - ) { - return withContract(sender, bridgeAddress, cb, params); - } - - function getAddress(sender: TezosSigner) { - if ("publicKeyHash" in sender) { - return sender.publicKeyHash(); - } else { - return sender.getPKH(); - } - } - - async function isApprovedForMinter( - nft: NftInfo, - sender: TezosSigner - ) { - const owner = await getAddress(sender); - const contract = await Tezos.contract.at(nft.native.contract); - const storage = await contract.storage<{ - operators?: BigMapAbstraction; - operator?: BigMapAbstraction; - }>(); - - const storageOperator = storage.operator || storage.operators; - const args = storage.operator - ? [bridgeAddress, nft.native.token_id, owner] - : { - owner, - operator: bridgeAddress, - token_id: nft.native.token_id, - }; - - const op = await storageOperator?.get(args); - - return op != undefined; - } - - async function notifyValidator(hash: string): Promise { - await notifier.notifyTezos(hash); - } - - async function preTransfer(signer: TezosSigner, nft: NftInfo) { - if (await isApprovedForMinter(nft, signer)) { - return; - } - const owner = await getAddress(signer); - return await withContract(signer, nft.native.contract, (contract) => - contract.methods.update_operators([ - { - add_operator: { - owner, - operator: bridgeAddress, - token_id: nft.native.token_id, - }, - }, - ]) - ); - } - - return { - XpNft: xpnftAddress, - async transferNftToForeign(sender, chain, to, nft, fee, mw) { - // await preTransfer(sender, nft); - const hash = await withBridge( - sender, - (bridge) => - bridge.methods.freeze_fa2( - chain, - nft.collectionIdent, - mw, - to, - parseInt(nft.native.token_id) - ), - { amount: fee.toNumber() / 1e6 } - ); - - notifyValidator(hash); - return hash; - }, - async balance(address) { - return new BigNumber((await Tezos.tz.getBalance(address)).toString(10)); - }, - async unfreezeWrappedNft(sender, to, nft, fee, nonce) { - const hash = await withBridge( - sender, - (bridge) => { - return bridge.methods.withdraw_nft( - nft.native.contract, - nonce, - to, - parseInt(nft.native.token_id) - ); - }, - { amount: fee.toNumber() / 1e6 } - ); - - notifyValidator(hash); - return hash; - }, - async mintNft(signer, { identifier, attrs, contract, uri }) { - return await withContract(signer, xpnftAddress, (xpnft) => - xpnft.methods.mint({ - token_id: identifier, - address: contract, - metadata: { - uri: uri, - attrs, - }, - amount: 1, - }) - ); - }, - async validateAddress(adr) { - return Promise.resolve( - utils.validateAddress(adr) === utils.ValidationResult.VALID - ); - }, - getNonce() { - return Chain.TEZOS; - }, - getFeeMargin() { - return feeMargin; - }, - async estimateValidateTransferNft() { - return estimateGas(validators, 1.2e5); - }, - async estimateValidateUnfreezeNft() { - return estimateGas(validators, 1.2e4); - }, - preTransfer, - isApprovedForMinter, - approveForMinter: (nft, sender) => preTransfer(sender, nft), - async isNftWhitelisted(nft) { - const bridge = await Tezos.contract.at(bridgeAddress); - const storage = await bridge.storage<{ - nft_whitelist: BigMapAbstraction; - }>(); - const whitelisted = await storage.nft_whitelist.get(nft.native.contract); - - return whitelisted == 2; - }, - async getTokenURI(contract, tokenId) { - if (utils.validateAddress(contract) && tokenId) { - const _contract = await Tezos.contract.at(contract); - - const storage = (await _contract.storage()) as any; - const tokenStorage = await storage.token_metadata.get(tokenId); - if (tokenStorage) { - return utils.bytes2Char(tokenStorage.token_info?.get("")); - } - } - return ""; - }, - }; -} diff --git a/dist/helpers/ton-bridge.d.ts b/dist/helpers/ton-bridge.d.ts deleted file mode 100644 index 5d0472ab2..000000000 --- a/dist/helpers/ton-bridge.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -import BN from "bn.js"; -import { ContractMethods, ContractOptions } from "tonweb"; -import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; -declare const Contract: typeof import("tonweb/dist/types/contract/contract").Contract; -declare type SeqnoMethod = () => SeqnoMethodResult; -interface SeqnoMethodResult { - call: () => Promise; -} -interface BridgeOptions extends ContractOptions { - burner: string; -} -interface BridgeMethods extends ContractMethods { - seqno: SeqnoMethod; - getPublicKey: () => Promise; - isInitialized: () => Promise; - getActionId: () => Promise; - getWhitelist: () => Promise; -} -interface WithdrawParams { - chainNonce: number; - to: Uint8Array; - txFees: BN; -} -interface FreezeParams { - chainNonce: number; - to: Uint8Array; - mintWith: Uint8Array; - amount?: number | BN; -} -export declare class BridgeContract extends Contract< - BridgeOptions, - BridgeMethods -> { - constructor(provider: HttpProvider, options: BridgeOptions); - serializeUri(uri: string): Uint8Array; - createWithdrawBody( - params: WithdrawParams - ): Promise; - createFreezeBody( - params: FreezeParams - ): Promise; - getPublicKey: () => Promise; - isInitialized: () => Promise; - getActionId: () => Promise; - getWhitelist: () => Promise; -} -export {}; -//# sourceMappingURL=ton-bridge.d.ts.map diff --git a/dist/helpers/ton-bridge.d.ts.map b/dist/helpers/ton-bridge.d.ts.map deleted file mode 100644 index 1a1244102..000000000 --- a/dist/helpers/ton-bridge.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ton-bridge.d.ts","sourceRoot":"","sources":["../../src/helpers/ton-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAEzE,QAAA,MAAM,QAAQ,+DAAkB,CAAC;AAGjC,OAAO,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC;AAEnD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,UAAU,aAAc,SAAQ,eAAe;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,UAAU,aAAc,SAAQ,eAAe;IAC7C,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,YAAY,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;CACjC;AAED,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,EAAE,CAAC;CACZ;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;CACtB;AAED,qBAAa,cAAe,SAAQ,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;gBAC5D,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa;IAS1D,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAI/B,kBAAkB,CAAC,MAAM,EAAE,cAAc;IAoBzC,gBAAgB,CAAC,MAAM,EAAE,YAAY;IAmB3C,YAAY,qBAOV;IAEF,aAAa,qBAOX;IAEF,WAAW,qBAOT;IAEF,YAAY,qBAOV;CACH"} \ No newline at end of file diff --git a/dist/helpers/ton-bridge.js b/dist/helpers/ton-bridge.js deleted file mode 100644 index cc1d0c5ca..000000000 --- a/dist/helpers/ton-bridge.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BridgeContract = void 0; -const bn_js_1 = __importDefault(require("bn.js")); -const tonweb_1 = __importDefault(require("tonweb")); -const Contract = tonweb_1.default.Contract; -const Cell = tonweb_1.default.boc.Cell; -class BridgeContract extends Contract { - constructor(provider, options) { - super(provider, options); - this.getPublicKey = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "get_public_key" - ); - return result; - }; - this.isInitialized = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "is_initialized" - ); - return result; - }; - this.getActionId = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "get_action_id" - ); - return result; - }; - this.getWhitelist = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "get_whitelist" - ); - return result; - }; - this.methods.getPublicKey = this.getPublicKey; - this.methods.isInitialized = this.isInitialized; - this.methods.getActionId = this.getActionId; - this.methods.getWhitelist = this.getWhitelist; - } - serializeUri(uri) { - return new TextEncoder().encode(encodeURI(uri)); - } - async createWithdrawBody(params) { - const cell = new Cell(); - cell.bits.writeUint(0x5fcc3d14, 32); // transfer op - cell.bits.writeUint(0, 64); - cell.bits.writeAddress(new tonweb_1.default.Address(this.options.burner)); // target address - cell.bits.writeAddress(await this.getAddress()); // bridge as response address - cell.bits.writeBit(false); // null custom_payload - cell.bits.writeCoins(new bn_js_1.default(0)); // forward amount - cell.bits.writeBit(true); // forward_payload in this slice, not separate cell - const msg = new Cell(); - msg.bits.writeUint(params.chainNonce, 8); - msg.bits.writeUint(params.to.length, 16); - msg.bits.writeBytes(params.to); - msg.bits.writeBytes(new Uint8Array(12)); - cell.refs[0] = msg; - return cell; - } - async createFreezeBody(params) { - const cell = new Cell(); - cell.bits.writeUint(0x5fcc3d14, 32); // transfer op - cell.bits.writeUint(0, 64); - cell.bits.writeAddress(await this.getAddress()); // target address - cell.bits.writeAddress(undefined); // undefined as response address - cell.bits.writeBit(false); // null custom_payload - cell.bits.writeCoins(params.amount || new bn_js_1.default(0)); - cell.bits.writeBit(false); // forward_payload in this slice, not separate cell - const payload = new Cell(); - payload.bits.writeUint(params.chainNonce, 8); - payload.bits.writeUint(params.to.length, 16); - payload.bits.writeBytes(params.to); - payload.bits.writeBytes(params.mintWith); - cell.refs[0] = payload; - return cell; - } -} -exports.BridgeContract = BridgeContract; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLWJyaWRnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Rvbi1icmlkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQXVCO0FBQ3ZCLG9EQUFrRTtBQUdsRSxNQUFNLFFBQVEsR0FBRyxnQkFBTSxDQUFDLFFBQVEsQ0FBQztBQUNqQyxNQUFNLElBQUksR0FBRyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFnQzdCLE1BQWEsY0FBZSxTQUFRLFFBQXNDO0lBQ3hFLFlBQVksUUFBc0IsRUFBRSxPQUFzQjtRQUN4RCxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBbUQzQixpQkFBWSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3hCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ3RDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsZ0JBQWdCLENBQ2pCLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ3RDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsZ0JBQWdCLENBQ2pCLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRixnQkFBVyxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFD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 diff --git a/dist/helpers/ton-bridge.ts b/dist/helpers/ton-bridge.ts deleted file mode 100644 index 53cfdb783..000000000 --- a/dist/helpers/ton-bridge.ts +++ /dev/null @@ -1,126 +0,0 @@ -import BN from "bn.js"; -import TonWeb, { ContractMethods, ContractOptions } from "tonweb"; -import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; - -const Contract = TonWeb.Contract; -const Cell = TonWeb.boc.Cell; - -declare type SeqnoMethod = () => SeqnoMethodResult; - -interface SeqnoMethodResult { - call: () => Promise; -} - -interface BridgeOptions extends ContractOptions { - burner: string; -} -interface BridgeMethods extends ContractMethods { - seqno: SeqnoMethod; - getPublicKey: () => Promise; - isInitialized: () => Promise; - getActionId: () => Promise; - getWhitelist: () => Promise; -} - -interface WithdrawParams { - chainNonce: number; - to: Uint8Array; - txFees: BN; -} - -interface FreezeParams { - chainNonce: number; - to: Uint8Array; - mintWith: Uint8Array; - amount?: number | BN; -} - -export class BridgeContract extends Contract { - constructor(provider: HttpProvider, options: BridgeOptions) { - super(provider, options); - - this.methods.getPublicKey = this.getPublicKey; - this.methods.isInitialized = this.isInitialized; - this.methods.getActionId = this.getActionId; - this.methods.getWhitelist = this.getWhitelist; - } - - serializeUri(uri: string): Uint8Array { - return new TextEncoder().encode(encodeURI(uri)); - } - - async createWithdrawBody(params: WithdrawParams) { - const cell = new Cell(); - cell.bits.writeUint(0x5fcc3d14, 32); // transfer op - cell.bits.writeUint(0, 64); - cell.bits.writeAddress(new TonWeb.Address(this.options.burner)); // target address - cell.bits.writeAddress(await this.getAddress()); // bridge as response address - cell.bits.writeBit(false); // null custom_payload - cell.bits.writeCoins(new BN(0)); // forward amount - cell.bits.writeBit(true); // forward_payload in this slice, not separate cell - - const msg = new Cell(); - msg.bits.writeUint(params.chainNonce, 8); - msg.bits.writeUint(params.to.length, 16); - msg.bits.writeBytes(params.to); - msg.bits.writeBytes(new Uint8Array(12)); - cell.refs[0] = msg; - - return cell; - } - - async createFreezeBody(params: FreezeParams) { - const cell = new Cell(); - cell.bits.writeUint(0x5fcc3d14, 32); // transfer op - cell.bits.writeUint(0, 64); - cell.bits.writeAddress(await this.getAddress()); // target address - cell.bits.writeAddress(undefined); // undefined as response address - cell.bits.writeBit(false); // null custom_payload - cell.bits.writeCoins(params.amount || new BN(0)); - cell.bits.writeBit(false); // forward_payload in this slice, not separate cell - - const payload = new Cell(); - payload.bits.writeUint(params.chainNonce, 8); - payload.bits.writeUint(params.to.length, 16); - payload.bits.writeBytes(params.to); - payload.bits.writeBytes(params.mintWith); - cell.refs[0] = payload; - return cell; - } - - getPublicKey = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "get_public_key" - ); - return result; - }; - - isInitialized = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "is_initialized" - ); - return result; - }; - - getActionId = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "get_action_id" - ); - return result; - }; - - getWhitelist = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "get_whitelist" - ); - return result; - }; -} diff --git a/dist/helpers/ton.d.ts b/dist/helpers/ton.d.ts deleted file mode 100644 index 3933f63ca..000000000 --- a/dist/helpers/ton.d.ts +++ /dev/null @@ -1,113 +0,0 @@ -import TonWeb from "tonweb"; -import TonWebMnemonic from "tonweb-mnemonic"; -import type { Cell } from "tonweb/dist/types/boc/cell"; -import { EvNotifier } from "../notifier"; -import { - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, -} from "./chain"; -import { PreTransfer } from ".."; -import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; -export declare type TonSigner = { - wallet?: TonWallet; - accIdx: number; -}; -export declare type TonWalletProvider = { - isTonWallet: boolean; - send(method: string, params?: any[]): Promise; - onSuccess?(): Promise; - on(eventName: string, handler: (...data: any[]) => any): void; -}; -export declare type TonArgs = { - wallet: TonhubConnector & TonWalletProvider & Function; - config: { - seed?: string; - appPublicKey?: string; - address?: string; - [x: string]: any; - }; -}; -export declare type TonNft = { - nftItemAddr: string; -}; -export declare type TonHelper = ChainNonceGet & - BalanceCheck & - PreTransfer & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - XpNft: string; - } & { - tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; - tonHubWrapper: (args: TonArgs) => TonSigner; - tonWalletWrapper: (args: TonArgs) => TonSigner; - tonKeeperWrapper: (args: TonArgs) => TonSigner; - } & GetFeeMargins; -export declare type TonParams = { - tonweb: TonWeb; - notifier: EvNotifier; - bridgeAddr: string; - burnerAddr: string; - xpnftAddr: string; - feeMargin: FeeMargins; -}; -declare type MethodMap = { - ton_requestAccounts: [undefined, string]; - ton_sendTransaction: [ - { - value: string; - to: string; - data: Cell; - }, - unknown - ]; - ton_getBalance: [undefined, string]; -}; -declare type ResponseUnionType = boolean & - TonhubTransactionResponse & { - hash: string; - }; -declare type TonWallet = { - send( - method: M, - params: MethodMap[M][0] - ): Promise; - onSuccess?(): Function; - handleResponse(res: ResponseUnionType): Promise; -}; -export declare function tonHelper(args: TonParams): Promise; -export {}; -/** - * - * const ton = new TonWeb( - new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - }) - ); - - const trxs = await ton.provider.getTransactions( - "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", - 20 - ); - - console.log(trxs); - - let data = new Cell(); - console.log(data); - const dict = Cell.fromBoc( - Buffer.from( - "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", - "base64" - ) - )[0].hash(); - console.log("Hash: " + dict.toString("base64")); - */ -//# sourceMappingURL=ton.d.ts.map diff --git a/dist/helpers/ton.d.ts.map b/dist/helpers/ton.d.ts.map deleted file mode 100644 index 0f4ca60ca..000000000 --- a/dist/helpers/ton.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/ton.js b/dist/helpers/ton.js deleted file mode 100644 index a642b41fd..000000000 --- a/dist/helpers/ton.js +++ /dev/null @@ -1,347 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.tonHelper = void 0; -const anchor_1 = require("@project-serum/anchor"); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const tonweb_1 = __importDefault(require("tonweb")); -const ton_1 = require("ton"); -const consts_1 = require("../consts"); -const ton_bridge_1 = require("./ton-bridge"); -const emitter_1 = require("../emitter"); -const js_base64_1 = require("js-base64"); -const axios_1 = __importDefault(require("ton/node_modules/axios")); -async function tonHelper(args) { - const bridge = new ton_bridge_1.BridgeContract(args.tonweb.provider, { - address: args.bridgeAddr, - burner: args.burnerAddr, - }); - const ton = args.tonweb; - ton.provider.sendBoc = (b) => - ton.provider.send("sendBocReturnHash", { boc: b }); - async function waitTonTrx(exBodyMsg, value, address, msgType) { - console.log(exBodyMsg, "TON:exBodyMsg"); - let body = ""; - let stop = false; - let fastResolve; - const setStop = () => { - stop = true; - emitter_1.Emitter?.removeEventListener("cancel tonKeeper", setStop); - fastResolve(true); - throw new Error("User has declined transaction"); - }; - const noTrx = setTimeout(() => { - stop = true; - throw new Error("waitTonTrx timeout"); - }, 60 * 1000 * 20); - emitter_1.Emitter?.addEventListener("cancel tonKeeper", setStop); - await new Promise((r) => { - setTimeout(r, 10 * 1000); - }); - async function getUserTrxs(address) { - try { - await new Promise((r) => { - setTimeout(r, 30 * 1000); - }); - const trxs = await ton.provider.getTransactions(address, 20); - return trxs; - } catch (e) { - console.log(e, "new iterration 30 sec"); - return await getUserTrxs(address); - } - } - while (!body) { - console.log("TON:tring to find the trx..."); - if (stop) return; - //get last 20 trx of address - const timeout = setTimeout(() => { - throw new Error("TON: timeout when trying to send trx"); - }, 60 * 1000 * 10); - const trxs = await getUserTrxs(address); - if (trxs) { - clearTimeout(timeout); - } - //find body of the trx - body = trxs.find((trx) => { - const messages = trx[msgType]; - let message = ""; - let msgVal = ""; - message = Array.isArray(messages) - ? messages?.at(0)?.msg_data?.body - : messages?.msg_data?.body; - msgVal = Array.isArray(trx["out_msgs"]) - ? trx.out_msgs?.at(0)?.value - : trx["out_msgs"].value; - trx.utime * 1000 >= +new Date(Date.now() - 1000 * 60 * 5) && - console.log(trx.utime, "trx happend no more than 5 minutes ago"); - return message === exBodyMsg && msgVal === value; - })?.data; - } - clearTimeout(noTrx); - const dict = ton_1.Cell.fromBoc(Buffer.from(body, "base64"))[0].hash(); - const exHash = dict.toString("base64"); - console.log(exHash, "exHash"); - let trxData = undefined; - while (trxData === undefined) { - await new Promise((r) => setTimeout(r, 6 * 1000)); - const res = await (0, axios_1.default)( - `https://toncenter.com/api/index/getTransactionByHash?tx_hash=${encodeURIComponent( - exHash - )}&include_msg_body=true` - ).catch(() => undefined); - trxData = res?.data; - } - return trxData[0]["in_msg"].hash; - } - return { - preTransfer: () => Promise.resolve(true), - preUnfreeze: () => Promise.resolve(true), - getNonce: () => consts_1.Chain.TON, - XpNft: args.xpnftAddr, - async balance(address) { - return new bignumber_js_1.default(await ton.getBalance(address)); - }, - async estimateValidateTransferNft() { - return new bignumber_js_1.default(0); // TODO - }, - async estimateValidateUnfreezeNft() { - return new bignumber_js_1.default(0); // TODO - }, - async validateAddress(adr) { - return tonweb_1.default.Address.isValid(adr); - }, - getFeeMargin() { - return args.feeMargin; - }, - async transferNftToForeign(signer, chainNonce, to, nft, txFees, mintWith) { - const rSigner = signer.wallet || ton; - const txFeesFull = new anchor_1.BN(txFees.toString(10)).add( - tonweb_1.default.utils.toNano((Math.random() * 0.01).toFixed(7)) - ); - const nftFee = tonweb_1.default.utils.toNano("0.07"); - const payload = await bridge.createFreezeBody({ - amount: txFeesFull.sub(nftFee), - to: Buffer.from(to), - chainNonce, - mintWith: Buffer.from(mintWith), - }); - console.log(txFeesFull.toString(10), "val"); - console.log("TON:transferNftToForeign"); - console.log(nft.native.nftItemAddr); - const res = await rSigner.send("ton_sendTransaction", { - value: txFeesFull.toString(10), - to: nft.native.nftItemAddr, - data: payload, - }); - const hash = await rSigner.handleResponse(res); - await args.notifier.notifyTon(hash); - return hash; - }, - async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { - const rSigner = signer.wallet || ton; - const value = new anchor_1.BN(_txFees.toString(10)).add( - tonweb_1.default.utils.toNano((Math.random() * 0.01).toFixed(7)) - ); - const nftFee = tonweb_1.default.utils.toNano("0.05"); - const payload = await bridge.createWithdrawBody({ - to: new Uint8Array(Buffer.from(to)), - chainNonce: parseInt(chainNonce), - txFees: value.sub(nftFee), - }); - console.log(value.toString(10), "v"); - console.log(nft.native.nftItemAddr); - console.log("TON:unfreezeWrappedNft"); - const res = await rSigner.send("ton_sendTransaction", { - value: new anchor_1.BN(value).toString(10), - to: nft.native.nftItemAddr, - data: payload, - }); - const hash = await rSigner.handleResponse(res); - await args.notifier.notifyTon(hash); - return hash; - }, - tonKeeperWrapper(args) { - console.log(args, "args"); - let payload = ""; - let value = ""; - const tonHub = { - async send(method, params) { - switch (method) { - case "ton_sendTransaction": - payload = (0, js_base64_1.fromUint8Array)( - await params.data.toBoc(false) - ); - value = params.value; - return args.wallet.send( - `https://app.tonkeeper.com/transfer/${ - params.to - }?amount=${new anchor_1.BN(value).toString( - 10 - )}&bin=${encodeURIComponent(payload)}&open=1` - ); - //! - default: - return null; - } - }, - async handleResponse(res) { - console.log(res); - const result = await waitTonTrx( - payload, - value, - args.config.address, - "out_msgs" - ); - args.wallet.onSuccess && args.wallet.onSuccess(); - return result; - }, - }; - return { - wallet: tonHub, - accIdx: 0, - }; - }, - tonWalletWrapper(args) { - let payload = ""; - let value = ""; - const tonHub = { - async send(method, params) { - switch (method) { - case "ton_sendTransaction": - value = params.value; - payload = (0, js_base64_1.fromUint8Array)( - await params.data.toBoc(false) - ); - console.log(payload, "payload"); - return await args.wallet.send("ton_sendTransaction", [ - { - to: params.to, - value, - dataType: "boc", - data: payload, - }, - ]); - default: - return null; - } - }, - async handleResponse(res) { - return ( - res && - (await waitTonTrx(payload, value, args.config.address, "out_msgs")) - ); - }, - }; - return { - wallet: tonHub, - accIdx: 0, - }; - }, - tonHubWrapper(args) { - let value = ""; - const tonHub = { - async send(method, params) { - switch (method) { - case "ton_sendTransaction": - value = new anchor_1.BN(params.value).toString(); - return await args.wallet.requestTransaction({ - seed: args.config.seed, - appPublicKey: args.config.appPublicKey, - to: params.to, - value, - timeout: 5 * 60 * 1000, - text: `ton_sendTransaction to ${params.to}`, - payload: (0, js_base64_1.fromUint8Array)( - await params.data.toBoc(false) - ), - }); - default: - return null; - } - }, - async handleResponse(res) { - if (res.type === "success" && res.response != undefined) { - return await waitTonTrx( - res.response, - value, - args.config.address, - "in_msg" - ); - } else { - throw new Error(`TonHub:${res.type}`); - } - }, - }; - return { - wallet: tonHub, - accIdx: 0, - }; - }, - tonKpWrapper(kp) { - const wallet = new tonweb_1.default.Wallets.all.v3R2(ton.provider, { - publicKey: kp.publicKey, - wc: 0, - }); - const wWallet = { - async send(method, params) { - switch (method) { - case "ton_getBalance": - return await ton.getBalance(await wallet.getAddress()); - case "ton_requestAccounts": - return [await wallet.getAddress()]; - case "ton_sendTransaction": - return await wallet.methods - .transfer({ - secretKey: kp.secretKey, - toAddress: params.to, - amount: new anchor_1.BN(params.value), - seqno: (await wallet.methods.seqno().call()) || 0, - sendMode: 3, - payload: params.data, - }) - .send(); - } - }, - async handleResponse(res) { - return res.hash; - }, - }; - return { - wallet: wWallet, - accIdx: 0, - }; - }, - }; -} -exports.tonHelper = tonHelper; -/** - * - * const ton = new TonWeb( - new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - }) - ); - - const trxs = await ton.provider.getTransactions( - "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", - 20 - ); - - console.log(trxs); - - let data = new Cell(); - console.log(data); - const dict = Cell.fromBoc( - Buffer.from( - "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", - "base64" - ) - )[0].hash(); - console.log("Hash: " + dict.toString("base64")); - */ -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEyQztBQUMzQyxnRUFBcUM7QUFDckMsb0RBQTRCO0FBRzVCLDZCQUFvQztBQUNwQyxzQ0FBa0M7QUFlbEMsNkNBQThDO0FBRTlDLHdDQUFxQztBQUdyQyx5Q0FBMkM7QUFDM0MsbUVBQTJDO0FBc0VwQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQWU7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUM7SUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBOEI7UUFFOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLFdBQWdCLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixpQkFBTyxFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lB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 diff --git a/dist/helpers/ton.ts b/dist/helpers/ton.ts deleted file mode 100644 index bcd5e1047..000000000 --- a/dist/helpers/ton.ts +++ /dev/null @@ -1,446 +0,0 @@ -import { BN } from "@project-serum/anchor"; -import BigNumber from "bignumber.js"; -import TonWeb from "tonweb"; -import TonWebMnemonic from "tonweb-mnemonic"; -import type { Cell } from "tonweb/dist/types/boc/cell"; -import { Cell as CellF } from "ton"; -import { Chain } from "../consts"; -import { EvNotifier } from "../notifier"; -import { - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, -} from "./chain"; - -import { PreTransfer } from ".."; - -import { BridgeContract } from "./ton-bridge"; - -import { Emitter } from "../emitter"; - -import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; -import { fromUint8Array } from "js-base64"; -import axios from "ton/node_modules/axios"; - -export type TonSigner = { - wallet?: TonWallet; - accIdx: number; -}; - -export type TonWalletProvider = { - isTonWallet: boolean; - send(method: string, params?: any[]): Promise; - on(eventName: string, handler: (...data: any[]) => any): void; -}; - -export type TonArgs = { - wallet: TonhubConnector & TonWalletProvider & Function; - config: { - seed?: string; - appPublicKey?: string; - address?: string; - [x: string]: any; - }; -}; - -export type TonNft = { - nftItemAddr: string; -}; - -export type TonHelper = ChainNonceGet & - BalanceCheck & - PreTransfer & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { XpNft: string } & { - tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; - tonHubWrapper: (args: TonArgs) => TonSigner; - tonWalletWrapper: (args: TonArgs) => TonSigner; - tonKeeperWrapper: (args: TonArgs) => TonSigner; - } & GetFeeMargins; - -export type TonParams = { - tonweb: TonWeb; - notifier: EvNotifier; - bridgeAddr: string; - burnerAddr: string; - xpnftAddr: string; - feeMargin: FeeMargins; -}; - -type MethodMap = { - ton_requestAccounts: [undefined, string]; - ton_sendTransaction: [{ value: string; to: string; data: Cell }, unknown]; - ton_getBalance: [undefined, string]; -}; - -type ResponseUnionType = boolean & - TonhubTransactionResponse & { - hash: string; - }; - -type TonWallet = { - send( - method: M, - params: MethodMap[M][0] - ): Promise; - handleResponse(res: ResponseUnionType): Promise; -}; - -export async function tonHelper(args: TonParams): Promise { - const bridge = new BridgeContract(args.tonweb.provider, { - address: args.bridgeAddr, - burner: args.burnerAddr, - }); - - const ton = args.tonweb as TonWeb & TonWallet; - ton.provider.sendBoc = (b) => - ton.provider.send("sendBocReturnHash", { boc: b }); - - async function waitTonTrx( - exBodyMsg: string, - value: string, - address: string, - msgType: "in_msg" | "out_msgs" - ) { - console.log(exBodyMsg, "TON:exBodyMsg"); - - let body: string = ""; - let stop = false; - let fastResolve: any; - const setStop = () => { - stop = true; - Emitter?.removeEventListener("cancel tonKeeper", setStop); - fastResolve(true); - throw new Error("User has declined transaction"); - }; - const noTrx = setTimeout(() => { - stop = true; - throw new Error("waitTonTrx timeout"); - }, 60 * 1000 * 20); - - Emitter?.addEventListener("cancel tonKeeper", setStop); - - while (!body) { - console.log("TON:tring to find the trx..."); - await new Promise((r) => { - fastResolve = r; - setTimeout(r, 10 * 1000); - }); - if (stop) return; - //get last 20 trx of address - const trxs = await ton.provider.getTransactions(address, 20); - //find body of the trx - body = trxs.find((trx: any) => { - const messages = trx[msgType]; - let message: string = ""; - let msgVal: string = ""; - - message = Array.isArray(messages) - ? messages?.at(0)?.msg_data?.body - : messages?.msg_data?.body; - msgVal = Array.isArray(trx["out_msgs"]) - ? trx.out_msgs?.at(0)?.value - : trx["out_msgs"].value; - - trx.utime * 1000 >= +new Date(Date.now() - 1000 * 60 * 5) && - console.log(trx.utime, "trx happend no more than 5 minutes ago"); - - return message === exBodyMsg && msgVal === value; - })?.data; - } - - clearTimeout(noTrx); - - const dict = CellF.fromBoc(Buffer.from(body, "base64"))[0].hash(); - - const exHash = dict.toString("base64"); - console.log(exHash, "exHash"); - - let trxData: any = undefined; - - while (trxData === undefined) { - await new Promise((r) => setTimeout(r, 6 * 1000)); - const res = await axios( - `https://toncenter.com/api/index/getTransactionByHash?tx_hash=${encodeURIComponent( - exHash - )}&include_msg_body=true` - ).catch(() => undefined); - - trxData = res?.data; - } - - return trxData[0]["in_msg"].hash; - } - - return { - preTransfer: () => Promise.resolve(true), - preUnfreeze: () => Promise.resolve(true), - getNonce: () => Chain.TON, - XpNft: args.xpnftAddr, - async balance(address: string) { - return new BigNumber(await ton.getBalance(address)); - }, - async estimateValidateTransferNft() { - return new BigNumber(0); // TODO - }, - async estimateValidateUnfreezeNft() { - return new BigNumber(0); // TODO - }, - async validateAddress(adr) { - return TonWeb.Address.isValid(adr); - }, - getFeeMargin() { - return args.feeMargin; - }, - async transferNftToForeign(signer, chainNonce, to, nft, txFees, mintWith) { - const rSigner = signer.wallet || ton; - - const txFeesFull = new BN(txFees.toString(10)).add( - TonWeb.utils.toNano((Math.random() * 0.01).toFixed(7)) - ); - - const nftFee = TonWeb.utils.toNano("0.07"); - - const payload = await bridge.createFreezeBody({ - amount: txFeesFull.sub(nftFee), - to: Buffer.from(to), - chainNonce, - mintWith: Buffer.from(mintWith), - }); - - console.log(txFeesFull.toString(10), "val"); - - console.log("TON:transferNftToForeign"); - console.log(nft.native.nftItemAddr); - const res = (await rSigner.send("ton_sendTransaction", { - value: txFeesFull.toString(10), - to: nft.native.nftItemAddr, - data: payload, - })) as ResponseUnionType; - - const hash = await rSigner.handleResponse(res); - - await args.notifier.notifyTon(hash); - - return hash; - }, - async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { - const rSigner = signer.wallet || ton; - - const value = new BN(_txFees.toString(10)).add( - TonWeb.utils.toNano((Math.random() * 0.01).toFixed(7)) - ); - - const nftFee = TonWeb.utils.toNano("0.05"); - - const payload = await bridge.createWithdrawBody({ - to: new Uint8Array(Buffer.from(to)), - chainNonce: parseInt(chainNonce), - txFees: value.sub(nftFee), - }); - - console.log(value.toString(10), "v"); - console.log(nft.native.nftItemAddr); - console.log("TON:unfreezeWrappedNft"); - - const res = (await rSigner.send("ton_sendTransaction", { - value: new BN(value).toString(10), - to: nft.native.nftItemAddr, - data: payload, - })) as ResponseUnionType; - - const hash = await rSigner.handleResponse(res); - - await args.notifier.notifyTon(hash); - - return hash; - }, - tonKeeperWrapper(args: TonArgs) { - console.log(args, "args"); - let payload: string = ""; - let value = ""; - const tonHub: TonWallet = { - async send(method, params) { - switch (method) { - case "ton_sendTransaction": - payload = fromUint8Array(await params!.data.toBoc(false)); - value = params!.value; - return args.wallet.send( - `https://app.tonkeeper.com/transfer/${ - params!.to - }?amount=${new BN(value).toString(10)}&bin=${encodeURIComponent( - payload - )}&open=1` - ); - - default: - return null; - } - }, - - async handleResponse(res: boolean) { - console.log(res); - return await waitTonTrx( - payload, - value, - args.config.address!, - "out_msgs" - ); - }, - }; - - return { - wallet: tonHub, - accIdx: 0, - }; - }, - tonWalletWrapper(args: TonArgs) { - let payload: string = ""; - let value = ""; - const tonHub: TonWallet = { - async send(method, params) { - switch (method) { - case "ton_sendTransaction": - value = params!.value; - - payload = fromUint8Array(await params!.data.toBoc(false)); - console.log(payload, "payload"); - return await args.wallet.send("ton_sendTransaction", [ - { - to: params!.to, - value, - dataType: "boc", - data: payload, - }, - ]); - default: - return null; - } - }, - - async handleResponse(res: boolean) { - return ( - res && - (await waitTonTrx(payload, value, args.config.address!, "out_msgs")) - ); - }, - }; - - return { - wallet: tonHub, - accIdx: 0, - }; - }, - tonHubWrapper(args: TonArgs) { - let value = ""; - const tonHub: TonWallet = { - async send(method, params) { - switch (method) { - case "ton_sendTransaction": - value = new BN(params!.value).toString(); - return await args.wallet.requestTransaction({ - seed: args.config.seed!, - appPublicKey: args.config.appPublicKey!, - to: params!.to, - value, - timeout: 5 * 60 * 1000, - text: `ton_sendTransaction to ${params!.to}`, - payload: fromUint8Array(await params!.data.toBoc(false)), - }); - - default: - return null; - } - }, - - async handleResponse(res: TonhubTransactionResponse) { - if (res.type === "success" && res.response != undefined) { - return await waitTonTrx( - res.response, - value, - args.config.address!, - "in_msg" - ); - } else { - throw new Error(`TonHub:${res.type}`); - } - }, - }; - - return { - wallet: tonHub, - accIdx: 0, - }; - }, - tonKpWrapper(kp: TonWebMnemonic.KeyPair): TonSigner { - const wallet = new TonWeb.Wallets.all.v3R2(ton.provider, { - publicKey: kp.publicKey, - wc: 0, - }); - - const wWallet: TonWallet = { - async send(method, params) { - switch (method) { - case "ton_getBalance": - return await ton.getBalance(await wallet.getAddress()); - case "ton_requestAccounts": - return [await wallet.getAddress()]; - case "ton_sendTransaction": - return await wallet.methods - .transfer({ - secretKey: kp.secretKey, - toAddress: params!.to, - amount: new BN(params!.value), - seqno: (await wallet.methods.seqno().call()) || 0, - sendMode: 3, - payload: params!.data, - }) - .send(); - } - }, - async handleResponse(res: { hash: string }) { - return res.hash; - }, - }; - - return { - wallet: wWallet, - accIdx: 0, - }; - }, - }; -} - -/** - * - * const ton = new TonWeb( - new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - }) - ); - - const trxs = await ton.provider.getTransactions( - "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", - 20 - ); - - console.log(trxs); - - let data = new Cell(); - console.log(data); - const dict = Cell.fromBoc( - Buffer.from( - "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", - "base64" - ) - )[0].hash(); - console.log("Hash: " + dict.toString("base64")); - */ diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts deleted file mode 100644 index 06b4aa487..000000000 --- a/dist/helpers/tron.d.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { - BalanceCheck, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - MintNft, - TransferNftForeign, - UnfreezeForeignNft, -} from "./chain"; -import { TronWeb } from "tronweb"; -import { EthNftInfo, MintArgs } from "./web3"; -import { - Approve, - ExtractAction, - ExtractTxnStatus, - IsApproved, - PreTransfer, - PreTransferRawTxn, - ValidateAddress, - WhitelistCheck, - GetTokenURI, -} from ".."; -import { ChainNonceGet } from ".."; -import { EvNotifier } from "../notifier"; -declare type TronSender = string | undefined; -export declare type MinterRes = { - minter: string; - xpnft: string; - xpnft1155: string; - whitelist: string[]; -}; -export declare type BaseTronHelper = BalanceCheck & - MintNft & { - /** - * - * Deploy an ERC721 user minter smart contract - * - * @argument deployer deployer of this smart contract - * @returns Address of the deployed smart contract - */ - deployErc721(deployer: TronSender): Promise; - /** - * Deploy Minter Smart Contract - * - * @argument deployer deployer of the smart contract - * @argument frostGroupKey FROST SECP256k1 Group Key - * @argument xpnftPrefix XP Wrapped NFT backend with "/" suffix - * @argument xpnftPrefix1155 XP Wrapped NFT Backend in erc1155 format (with {id}) - * @argument whitelist List of NFTs to whitelist - */ - deployMinter( - deployer: TronSender, - frostGroupKey: string, - xpnftPrefix: string, - xpnftPrefix1155: string, - whitelist?: string[] - ): Promise; - }; -export declare type TronHelper = BaseTronHelper & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ChainNonceGet & - Approve & - ValidateAddress & - IsApproved & - ExtractAction & - Pick, "preTransfer"> & - PreTransferRawTxn & - ExtractTxnStatus & - WhitelistCheck & { - XpNft: string; - XpNft1155: string; - } & GetFeeMargins & - GetTokenURI; -export declare function baseTronHelperFactory( - provider: TronWeb -): Promise; -export interface TronParams { - provider: TronWeb; - notifier: EvNotifier; - minter_addr: string; - erc721_addr: string; - erc1155_addr: string; - validators: string[]; - feeMargin: FeeMargins; -} -export interface TronRawTxn { - readonly visible: boolean; - readonly txID: string; - readonly raw_data: { - readonly ref_block_bytes: string; - readonly ref_block_hash: string; - expiration: number; - readonly fee_limit: number; - readonly timestamp: number; - readonly contract: { - readonly parameter: { - readonly value: { - readonly data: string; - readonly owner_address: string; - readonly contract_address: string; - }; - readonly type_url: string; - }; - readonly type: string; - }[]; - }; - readonly raw_data_hex: string; -} -export declare function tronHelperFactory( - tronParams: TronParams -): Promise; -export {}; -//# sourceMappingURL=tron.d.ts.map diff --git a/dist/helpers/tron.d.ts.map b/dist/helpers/tron.d.ts.map deleted file mode 100644 index 626b89f0a..000000000 --- a/dist/helpers/tron.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/helpers/tron.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js deleted file mode 100644 index 0563084c7..000000000 --- a/dist/helpers/tron.js +++ /dev/null @@ -1,300 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.tronHelperFactory = exports.baseTronHelperFactory = void 0; -const bignumber_js_1 = require("bignumber.js"); -const ethers_1 = require("ethers"); -const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); -const __1 = require(".."); -async function baseTronHelperFactory(provider) { - const setSigner = (signer) => { - return signer && provider.setPrivateKey(signer); - }; - const deployErc721_i = async (deployer) => { - setSigner(deployer); - const contract = await provider.contract().new({ - abi: xpnet_web3_contracts_1.UserNftMinter__factory.abi, - bytecode: xpnet_web3_contracts_1.UserNftMinter__factory.bytecode, - feeLimit: 3000000000, - }); - return contract; - }; - const deployXpNft = async (deployer, nftPrefix) => { - setSigner(deployer); - const contract = await provider.contract().new({ - abi: xpnet_web3_contracts_1.XPNft__factory.abi, - bytecode: xpnet_web3_contracts_1.XPNft__factory.bytecode, - feeLimit: 3000000000, - parameters: ["XPNFT", "XPNFT", nftPrefix], - }); - return contract; - }; - const deployXpNft1155 = async (deployer, nftPrefix) => { - setSigner(deployer); - const contract = await provider.contract().new({ - abi: xpnet_web3_contracts_1.XPNft1155__factory.abi, - bytecode: xpnet_web3_contracts_1.XPNft1155__factory.bytecode, - feeLimit: 3000000000, - parameters: [nftPrefix], - }); - return contract; - }; - return { - async mintNft(owner, options) { - setSigner(owner); - const erc = await provider.contract( - xpnet_web3_contracts_1.UserNftMinter__factory.abi, - options.contract - ); - const res = await erc.mint(options.uri).send(); - return res; - }, - async balance(address) { - const balance = await provider.trx.getBalance(address); - return new bignumber_js_1.BigNumber(balance); - }, - deployErc721: async (owner) => - await deployErc721_i(owner).then((c) => c.address), - async deployMinter( - deployer, - frostGroupKey, - xpnftPrefix, - xpnftPrefix1155, - whitelist = [] - ) { - if (whitelist.length == 0) { - const unft = await deployErc721_i(deployer); - console.log(provider.address.fromHex(unft.address)); - whitelist.push(provider.address.fromHex(unft.address)); - } - const gk = Buffer.from(frostGroupKey, "hex"); - const gkx = ethers_1.BigNumber.from(`0x${gk.slice(1).toString("hex")}`); - // gkyp is either 0 or 1 - const gkyp = ethers_1.BigNumber.from(`0x${gk[0] & 1}`); - const erc721 = await deployXpNft(deployer, xpnftPrefix); - const erc1155 = await deployXpNft1155(deployer, xpnftPrefix1155); - const minter = await provider.contract().new({ - abi: xpnet_web3_contracts_1.Minter__factory.abi, - bytecode: xpnet_web3_contracts_1.Minter__factory.bytecode, - feeLimit: 6000000000, - parameters: [gkx, gkyp, whitelist], - }); - await erc721.transferOwnership(minter.address).send(); - await erc1155.transferOwnership(minter.address).send(); - const minterAddress = provider.address.fromHex(minter.address); - const erc721Address = provider.address.fromHex(erc721.address); - const erc1155Address = provider.address.fromHex(erc1155.address); - return { - minter: minterAddress, - xpnft: erc721Address, - xpnft1155: erc1155Address, - whitelist, - }; - }, - }; -} -exports.baseTronHelperFactory = baseTronHelperFactory; -async function tronHelperFactory(tronParams) { - const { provider, minter_addr } = tronParams; - // const station = new TronStation(provider); - const base = await baseTronHelperFactory(provider); - const minter = await provider.contract( - xpnet_web3_contracts_1.Minter__factory.abi, - minter_addr - ); - const setSigner = (signer) => { - return signer && provider.setPrivateKey(signer); - }; - async function notifyValidator(hash) { - await tronParams.notifier.notifyTron(hash); - } - async function extractAction(hash) { - await new Promise((r) => setTimeout(r, 10000)); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const getEv = async (retries = 0) => { - const res = await provider.getEventByTransactionID(hash); - if (res.length !== 0) { - return res; - } - if (retries > 15) { - throw Error("Couldn't fetch transaction after more than 15 retries!"); - } - await new Promise((r) => setTimeout(r, 3000)); - return getEv(retries + 1); - }; - const evs = await getEv(); - const ev = evs.find((e) => e?.contract == minter_addr); - const action_id = ev.result["actionId"].toString(); - return action_id; - } - // const _randomAction = () => - // Math.floor( - // Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000) - // ).toString(); - // async function _estimateGas( - // addrs: string[], - // func_sig: string, - // params: { type: string; value: any }[] - // ): Promise { - // let energy = 0; - // let bandwidth = 0; - // const nrgSun = await station.energy.burnedEnergy2Trx(1, { unit: "sun" }); - // const bandSun = 10; - // for (const [i, addr] of addrs.entries()) { - // const res = await provider.transactionBuilder.triggerConstantContract( - // minter.address, - // func_sig, - // {}, - // params, - // provider.address.toHex(addr) - // ); - // let nrg: number = res["energy_used"]; - // if (i == addrs.length - 1 && addrs.length != 1) nrg *= 2; - // energy += nrg; - // const tx_raw: string = res["transaction"]["raw_data_hex"]; - // bandwidth += tx_raw.length; - // } - // // Fee = energy * (sun per energy) + bandwidth * (sun per bandwidth) - // // bandwidth = raw tx byte length - // const fee = new BigNumber(energy).times(nrgSun).plus(bandwidth * bandSun); - // return fee; - // } - const isApprovedForMinter = async (id, _sender) => { - const erc = await provider.contract( - xpnet_web3_contracts_1.UserNftMinter__factory.abi, - id.native.contract - ); - const approvedAddress = await erc.getApproved(id.native.tokenId).call({ - from: tronParams.provider.defaultAddress.base58, - }); - if (approvedAddress === minter_addr) { - return true; - } - return false; - }; - const approveForMinter = async (id, sender) => { - await setSigner(sender); - const erc = await provider.contract( - xpnet_web3_contracts_1.UserNftMinter__factory.abi, - id.native.contract - ); - const isApproved = await isApprovedForMinter(id, sender); - if (isApproved) { - return undefined; - } - const txHash = await erc.approve(minter_addr, id.native.tokenId).send(); - return txHash; - }; - const addMinToExpirationTime = (txn, minutes) => { - const expiration = txn.raw_data.expiration; - const newExpiration = new Date(expiration).getTime() + minutes * 60000; - txn.raw_data.expiration = newExpiration; - return txn; - }; - return { - ...base, - extractAction, - XpNft1155: tronParams.erc721_addr, - XpNft: tronParams.erc721_addr, - getFeeMargin() { - return tronParams.feeMargin; - }, - approveForMinter, - preTransfer: (s, nft, _fee) => approveForMinter(nft, s), - async preTransferRawTxn(nft, address, _value) { - await setSigner(address); - const isApproved = await isApprovedForMinter(nft, address); - if (isApproved) { - return undefined; - } - const { transaction, result } = - await provider.transactionBuilder.triggerSmartContract( - nft.native.contract, - "approve(address,uint256)", - { - feeLimit: 1000000, - callValue: 0, - }, - [ - { - type: "address", - value: minter_addr, - }, - { - type: "uint256", - value: nft.native.tokenId, - }, - ], - address - ); - if (!result.result) { - throw new Error(result.toString()); - } - return addMinToExpirationTime(transaction, 15); - }, - isApprovedForMinter, - async extractTxnStatus(txnHash) { - const txn = await provider.trx.getConfirmedTransaction(txnHash); - const status = txn["ret"][0]["contractRet"]; - if (status === "SUCCESS") { - return __1.TransactionStatus.SUCCESS; - } else if (status === "FAIL") { - return __1.TransactionStatus.FAILURE; - } - return __1.TransactionStatus.PENDING; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - setSigner(sender); - const res = await minter - .withdrawNft(to, nonce, id.native.tokenId, id.native.contract) - .send({ callValue: ethers_1.BigNumber.from(txFees.toFixed(0)) }); - await notifyValidator(res); - return res; - }, - getNonce() { - return __1.Chain.TRON; - }, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { - setSigner(sender); - await approveForMinter(id, sender); - const txr = await minter - .freezeErc721( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith - ) - .send({ callValue: ethers_1.BigNumber.from(txFees.toFixed(0)) }); - await notifyValidator(txr); - return txr; - }, - async estimateValidateTransferNft(_to, _nftUri) { - return new bignumber_js_1.BigNumber(0); // TODO - }, - async estimateValidateUnfreezeNft(_to, _nft) { - return new bignumber_js_1.BigNumber(0); // TODO - }, - async validateAddress(adr) { - return provider.isAddress(adr); - }, - isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract).call({ - from: tronParams.provider.defaultAddress.base58, - }); - }, - // const minter = await provider.contract(Minter__factory.abi, minter_addr); - async getTokenURI(contract, tokenId) { - return ""; - if (provider.isAddress(contract) && tokenId) { - const _contract = await provider.contract( - xpnet_web3_contracts_1.UserNftMinter__factory.abi, - contract - ); - return await _contract.tokenURI(+tokenId).call(); - } - return ""; - }, - }; -} -exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQXlDO0FBZ0J6QyxtQ0FBNEM7QUFFNUMsK0RBSzhCO0FBQzlCLDBCQVlZO0FBZ0VMLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFrQixFQUFFLEVBQUU7UUFDdkMsT0FBTyxNQUFNLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsUUFBb0IsRUFBRSxFQUFFO1FBQ3BELFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLDZDQUFzQixDQUFDLEdBQUc7WUFDL0IsUUFBUSxFQUFFLDZDQUFzQixDQUFDLFFBQVE7WUFDekMsUUFBUSxFQUFFLFVBQVU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLFFBQW9CLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ3BFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLHFDQUFjLENBQUMsR0FBRztZQUN2QixRQUFRLEVBQUUscUNBQWMsQ0FBQyxRQUFRO1lBQ2pDLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1NBQzFDLENBQUMsQ0FBQztRQUVILE9BQU8s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 diff --git a/dist/helpers/tron.ts b/dist/helpers/tron.ts deleted file mode 100644 index 1cbe50f75..000000000 --- a/dist/helpers/tron.ts +++ /dev/null @@ -1,483 +0,0 @@ -import { BigNumber } from "bignumber.js"; -import { - BalanceCheck, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - MintNft, - TransferNftForeign, - UnfreezeForeignNft, -} from "./chain"; - -// @ts-expect-error no types cope -import { TronWeb } from "tronweb"; -// @ts-expect-error no types cope -import TronStation from "tronstation"; -import { EthNftInfo, MintArgs } from "./web3"; -import { BigNumber as EthBN } from "ethers"; - -import { - Minter__factory, - UserNftMinter__factory, - XPNft__factory, - XPNft1155__factory, -} from "xpnet-web3-contracts"; -import { - Approve, - Chain, - ExtractAction, - ExtractTxnStatus, - IsApproved, - PreTransfer, - PreTransferRawTxn, - TransactionStatus, - ValidateAddress, - WhitelistCheck, - GetTokenURI, -} from ".."; -import { ChainNonceGet, NftInfo } from ".."; -import { EvNotifier } from "../notifier"; - -// Uses default private key in provider if sender is undefinedd -type TronSender = string | undefined; - -export type MinterRes = { - // Minter smart contract - minter: string; - // XPNFT (Wrapper for foreign NFTs) contracte - xpnft: string; - // XPNFT1155 (Wrapper for ERC1155 Foreign NFTs) contract - xpnft1155: string; - // Whitelisted Native NFT contracts - whitelist: string[]; -}; - -export type BaseTronHelper = BalanceCheck & - MintNft & { - /** - * - * Deploy an ERC721 user minter smart contract - * - * @argument deployer deployer of this smart contract - * @returns Address of the deployed smart contract - */ - deployErc721(deployer: TronSender): Promise; - /** - * Deploy Minter Smart Contract - * - * @argument deployer deployer of the smart contract - * @argument frostGroupKey FROST SECP256k1 Group Key - * @argument xpnftPrefix XP Wrapped NFT backend with "/" suffix - * @argument xpnftPrefix1155 XP Wrapped NFT Backend in erc1155 format (with {id}) - * @argument whitelist List of NFTs to whitelist - */ - deployMinter( - deployer: TronSender, - frostGroupKey: string, - xpnftPrefix: string, - xpnftPrefix1155: string, - whitelist?: string[] - ): Promise; - }; - -export type TronHelper = BaseTronHelper & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ChainNonceGet & - Approve & - ValidateAddress & - IsApproved & - ExtractAction & - Pick, "preTransfer"> & - PreTransferRawTxn & - ExtractTxnStatus & - WhitelistCheck & { - XpNft: string; - XpNft1155: string; - } & GetFeeMargins & - GetTokenURI; - -export async function baseTronHelperFactory( - provider: TronWeb -): Promise { - const setSigner = (signer: TronSender) => { - return signer && provider.setPrivateKey(signer); - }; - - const deployErc721_i = async (deployer: TronSender) => { - setSigner(deployer); - - const contract = await provider.contract().new({ - abi: UserNftMinter__factory.abi, - bytecode: UserNftMinter__factory.bytecode, - feeLimit: 3000000000, - }); - - return contract; - }; - - const deployXpNft = async (deployer: TronSender, nftPrefix: string) => { - setSigner(deployer); - - const contract = await provider.contract().new({ - abi: XPNft__factory.abi, - bytecode: XPNft__factory.bytecode, - feeLimit: 3000000000, - parameters: ["XPNFT", "XPNFT", nftPrefix], - }); - - return contract; - }; - - const deployXpNft1155 = async (deployer: TronSender, nftPrefix: string) => { - setSigner(deployer); - const contract = await provider.contract().new({ - abi: XPNft1155__factory.abi, - bytecode: XPNft1155__factory.bytecode, - feeLimit: 3000000000, - parameters: [nftPrefix], - }); - - return contract; - }; - - return { - async mintNft(owner: TronSender, options: MintArgs): Promise { - setSigner(owner); - const erc = await provider.contract( - UserNftMinter__factory.abi, - options.contract - ); - const res = await erc.mint(options.uri).send(); - return res; - }, - async balance(address: string): Promise { - const balance = await provider.trx.getBalance(address); - return new BigNumber(balance); - }, - deployErc721: async (owner) => - await deployErc721_i(owner).then((c) => c.address), - async deployMinter( - deployer: TronSender, - frostGroupKey, - xpnftPrefix, - xpnftPrefix1155, - whitelist: string[] = [] - ): Promise { - if (whitelist.length == 0) { - const unft = await deployErc721_i(deployer); - console.log(provider.address.fromHex(unft.address)); - whitelist.push(provider.address.fromHex(unft.address)); - } - - const gk = Buffer.from(frostGroupKey, "hex"); - const gkx = EthBN.from(`0x${gk.slice(1).toString("hex")}`); - // gkyp is either 0 or 1 - const gkyp = EthBN.from(`0x${gk[0] & 1}`); - - const erc721 = await deployXpNft(deployer, xpnftPrefix); - const erc1155 = await deployXpNft1155(deployer, xpnftPrefix1155); - - const minter = await provider.contract().new({ - abi: Minter__factory.abi, - bytecode: Minter__factory.bytecode, - feeLimit: 6000000000, - parameters: [gkx, gkyp, whitelist], - }); - - await erc721.transferOwnership(minter.address).send(); - await erc1155.transferOwnership(minter.address).send(); - const minterAddress: string = provider.address.fromHex(minter.address); - const erc721Address: string = provider.address.fromHex(erc721.address); - const erc1155Address: string = provider.address.fromHex(erc1155.address); - return { - minter: minterAddress, - xpnft: erc721Address, - xpnft1155: erc1155Address, - whitelist, - }; - }, - }; -} - -export interface TronParams { - provider: TronWeb; - notifier: EvNotifier; - minter_addr: string; - erc721_addr: string; - erc1155_addr: string; - validators: string[]; - feeMargin: FeeMargins; -} - -export interface TronRawTxn { - readonly visible: boolean; - readonly txID: string; - readonly raw_data: { - readonly ref_block_bytes: string; - readonly ref_block_hash: string; - expiration: number; - readonly fee_limit: number; - readonly timestamp: number; - readonly contract: { - readonly parameter: { - readonly value: { - readonly data: string; - readonly owner_address: string; - readonly contract_address: string; - }; - readonly type_url: string; - }; - readonly type: string; - }[]; - }; - readonly raw_data_hex: string; -} - -export async function tronHelperFactory( - tronParams: TronParams -): Promise { - const { provider, minter_addr } = tronParams; - // const station = new TronStation(provider); - const base = await baseTronHelperFactory(provider); - const minter = await provider.contract(Minter__factory.abi, minter_addr); - - const setSigner = (signer: TronSender) => { - return signer && provider.setPrivateKey(signer); - }; - - async function notifyValidator(hash: string): Promise { - await tronParams.notifier.notifyTron(hash); - } - - async function extractAction(hash: string): Promise { - await new Promise((r) => setTimeout(r, 10000)); - - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const getEv: (retries?: number) => Promise = async (retries = 0) => { - const res = await provider.getEventByTransactionID(hash); - if (res.length !== 0) { - return res; - } - if (retries > 15) { - throw Error("Couldn't fetch transaction after more than 15 retries!"); - } - await new Promise((r) => setTimeout(r, 3000)); - return getEv(retries + 1); - }; - - const evs = await getEv(); - const ev = evs.find((e: any) => e?.contract == minter_addr); - const action_id: string = ev.result["actionId"].toString(); - return action_id; - } - - // const _randomAction = () => - // Math.floor( - // Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000) - // ).toString(); - - // async function _estimateGas( - // addrs: string[], - // func_sig: string, - // params: { type: string; value: any }[] - // ): Promise { - // let energy = 0; - // let bandwidth = 0; - // const nrgSun = await station.energy.burnedEnergy2Trx(1, { unit: "sun" }); - // const bandSun = 10; - - // for (const [i, addr] of addrs.entries()) { - // const res = await provider.transactionBuilder.triggerConstantContract( - // minter.address, - // func_sig, - // {}, - // params, - // provider.address.toHex(addr) - // ); - // let nrg: number = res["energy_used"]; - // if (i == addrs.length - 1 && addrs.length != 1) nrg *= 2; - // energy += nrg; - // const tx_raw: string = res["transaction"]["raw_data_hex"]; - // bandwidth += tx_raw.length; - // } - // // Fee = energy * (sun per energy) + bandwidth * (sun per bandwidth) - // // bandwidth = raw tx byte length - // const fee = new BigNumber(energy).times(nrgSun).plus(bandwidth * bandSun); - - // return fee; - // } - - const isApprovedForMinter = async ( - id: NftInfo, - _sender: TronSender - ) => { - const erc = await provider.contract( - UserNftMinter__factory.abi, - id.native.contract - ); - const approvedAddress = await erc.getApproved(id.native.tokenId).call({ - from: tronParams.provider.defaultAddress.base58, - }); - if (approvedAddress === minter_addr) { - return true; - } - return false; - }; - - const approveForMinter = async ( - id: NftInfo, - sender: TronSender | undefined - ) => { - await setSigner(sender); - const erc = await provider.contract( - UserNftMinter__factory.abi, - id.native.contract - ); - const isApproved = await isApprovedForMinter(id, sender); - if (isApproved) { - return undefined; - } - - const txHash: string = await erc - .approve(minter_addr, id.native.tokenId) - .send(); - return txHash; - }; - - const addMinToExpirationTime = (txn: TronRawTxn, minutes: number) => { - const expiration = txn.raw_data.expiration; - const newExpiration = new Date(expiration).getTime() + minutes * 60000; - txn.raw_data.expiration = newExpiration; - return txn; - }; - - return { - ...base, - extractAction, - XpNft1155: tronParams.erc721_addr, - XpNft: tronParams.erc721_addr, - getFeeMargin() { - return tronParams.feeMargin; - }, - approveForMinter, - preTransfer: (s, nft, _fee) => approveForMinter(nft, s), - async preTransferRawTxn(nft, address, _value) { - await setSigner(address); - const isApproved = await isApprovedForMinter(nft, address); - if (isApproved) { - return undefined; - } - const { transaction, result } = - await provider.transactionBuilder.triggerSmartContract( - nft.native.contract, - "approve(address,uint256)", - { - feeLimit: 1_000_000, - callValue: 0, - }, - [ - { - type: "address", - value: minter_addr, - }, - { - type: "uint256", - value: nft.native.tokenId, - }, - ], - address - ); - if (!result.result) { - throw new Error(result.toString()); - } - return addMinToExpirationTime(transaction, 15); - }, - isApprovedForMinter, - async extractTxnStatus(txnHash) { - const txn = await provider.trx.getConfirmedTransaction(txnHash); - const status = txn["ret"][0]["contractRet"]; - if (status === "SUCCESS") { - return TransactionStatus.SUCCESS; - } else if (status === "FAIL") { - return TransactionStatus.FAILURE; - } - return TransactionStatus.PENDING; - }, - async unfreezeWrappedNft( - sender: TronSender, - to: string, - id: NftInfo, - txFees: BigNumber, - nonce - ): Promise { - setSigner(sender); - const res = await minter - .withdrawNft(to, nonce, id.native.tokenId, id.native.contract) - .send({ callValue: EthBN.from(txFees.toString(10)) }); - - await notifyValidator(res); - return res; - }, - getNonce() { - return Chain.TRON; - }, - async transferNftToForeign( - sender: TronSender, - chain_nonce: number, - to: string, - id: NftInfo, - txFees: BigNumber, - mintWith - ): Promise { - setSigner(sender); - await approveForMinter(id, sender); - - const txr = await minter - .freezeErc721( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith - ) - .send({ callValue: EthBN.from(txFees.toString(10)) }); - - await notifyValidator(txr); - return txr; - }, - async estimateValidateTransferNft( - _to: string, - _nftUri: NftInfo - ): Promise { - return new BigNumber(0); // TODO - }, - async estimateValidateUnfreezeNft( - _to: string, - _nft: NftInfo - ): Promise { - return new BigNumber(0); // TODO - }, - async validateAddress(adr: string): Promise { - return provider.isAddress(adr); - }, - isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract).call({ - from: tronParams.provider.defaultAddress.base58, - }); - }, - // const minter = await provider.contract(Minter__factory.abi, minter_addr); - async getTokenURI(contract, tokenId) { - return ""; - if (provider.isAddress(contract) && tokenId) { - const _contract = await provider.contract( - UserNftMinter__factory.abi, - contract - ); - return await _contract.tokenURI(+tokenId).call(); - } - return ""; - }, - }; -} diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts deleted file mode 100644 index 64120ca0d..000000000 --- a/dist/helpers/web3.d.ts +++ /dev/null @@ -1,197 +0,0 @@ -/** - * Web3 Implementation for cross chain traits - * @module - */ -import BigNumber from "bignumber.js"; -import { - BalanceCheck, - EstimateTxFeesBatch, - FeeMargins, - GetFeeMargins, - GetProvider, - IsContractAddress, - MintNft, - TransferNftForeign, - TransferNftForeignBatch, - UnfreezeForeignNft, - UnfreezeForeignNftBatch, -} from "./chain"; -import { - ContractTransaction, - ethers, - PopulatedTransaction, - providers, - Signer, - Wallet, -} from "ethers"; -import { Provider, TransactionResponse } from "@ethersproject/providers"; -import { - Erc1155Minter, - Erc1155Minter__factory, - UserNftMinter, - UserNftMinter__factory, -} from "xpnet-web3-contracts"; -import { - ChainNonceGet, - EstimateTxFees, - ExtractAction, - ExtractTxnStatus, - GetTokenURI, - NftInfo, - PreTransfer, - PreTransferRawTxn, - ValidateAddress, - WhitelistCheck, -} from ".."; -import { ChainNonce } from "../type-utils"; -import { EvNotifier } from "../notifier"; -/** - * Information required to perform NFT transfers in this chain - */ -export declare type EthNftInfo = { - chainId: string; - tokenId: string; - owner: string; - uri: string; - contract: string; - contractType: "ERC721" | "ERC1155"; -}; -/** - * Arguments required for minting a new nft - * - * contract: address of the sc - * token: token ID of the newly minted nft - * owner: Owner of the newly minted nft - * uri: uri of the nft - */ -export declare type MintArgs = { - contract: string; - uri: string; -}; -export interface IsApproved { - isApprovedForMinter( - address: NftInfo, - sender: Sender, - txFee: BigNumber, - gasPrice?: ethers.BigNumber - ): Promise; -} -export interface Approve { - approveForMinter( - address: NftInfo, - sender: Sender, - txFee: BigNumber, - gasPrice?: ethers.BigNumber - ): Promise; -} -declare type NullableCustomData = Record | undefined; -/** - * Base util traits - */ -export declare type BaseWeb3Helper = BalanceCheck & - /** - * Mint an nft in the given ERC1155 smart contract - * - * @argument signer owner of the smart contract - * @argument args See [[MintArgs]] - */ MintNft & { - /** - * Deploy an ERC721 smart contract - * - * @argument owner Owner of this smart contract - * @returns Address of the deployed smart contract - */ - deployErc721(owner: Signer): Promise; - } & { - mintNftErc1155( - owner: Signer, - options: MintArgs - ): Promise; - }; -declare type ExtraArgs = { - gasPrice: ethers.BigNumber; -}; -/** - * Traits implemented by this module - */ -export declare type Web3Helper = BaseWeb3Helper & - TransferNftForeign & - UnfreezeForeignNft & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - EstimateTxFees & - EstimateTxFeesBatch & - ChainNonceGet & - IsApproved & - Approve & - ValidateAddress & - ExtractAction & { - createWallet(privateKey: string): Wallet; - } & Pick, "preTransfer"> & - PreTransferRawTxn & - ExtractTxnStatus & - GetProvider & { - XpNft: string; - XpNft1155: string; - } & WhitelistCheck & - GetFeeMargins & - IsContractAddress & - GetTokenURI; -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -export declare function baseWeb3HelperFactory( - provider: Provider, - nonce: number -): Promise; -/** - * Create an object implementing cross chain utilities for a web3 chain - * - * @param provider An ethers.js provider object - * @param minter_addr Address of the minter smart contract - * @param minter_abi ABI of the minter smart contract - */ -export interface Web3Params { - provider: Provider; - notifier: EvNotifier; - minter_addr: string; - erc721_addr: string; - erc1155_addr: string; - erc721Minter: string; - erc1155Minter: string; - nonce: ChainNonce; - feeMargin: FeeMargins; -} -declare type NftMethodVal = { - freeze: "freezeErc1155" | "freezeErc721"; - validateUnfreeze: "validateUnfreezeErc1155" | "validateUnfreezeErc721"; - umt: typeof Erc1155Minter__factory | typeof UserNftMinter__factory; - approved: ( - umt: T, - sender: string, - minterAddr: string, - tok: string, - customData: NullableCustomData - ) => Promise; - approve: ( - umt: T, - forAddr: string, - tok: string, - txnUp: (tx: PopulatedTransaction) => Promise, - customData: NullableCustomData, - gasPrice: ethers.BigNumberish | undefined - ) => Promise; -}; -declare type EthNftMethodVal = NftMethodVal; -declare type NftMethodMap = Record< - "ERC1155" | "ERC721", - EthNftMethodVal | EthNftMethodVal ->; -export declare const NFT_METHOD_MAP: NftMethodMap; -export declare function web3HelperFactory( - params: Web3Params -): Promise; -export {}; -//# sourceMappingURL=web3.d.ts.map diff --git a/dist/helpers/web3.d.ts.map b/dist/helpers/web3.d.ts.map deleted file mode 100644 index 09625ab04..000000000 --- a/dist/helpers/web3.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/helpers/web3.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js deleted file mode 100644 index 4b1ce8c26..000000000 --- a/dist/helpers/web3.js +++ /dev/null @@ -1,504 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.web3HelperFactory = - exports.NFT_METHOD_MAP = - exports.baseWeb3HelperFactory = - void 0; -/** - * Web3 Implementation for cross chain traits - * @module - */ -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const ethers_1 = require("ethers"); -const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); -const __1 = require(".."); -const axios_1 = __importDefault(require("axios")); -const hethers_1 = require("@hashgraph/hethers"); -hethers_1.hethers.providers.BaseProvider.prototype.getGasPrice = async () => { - return ethers_1.BigNumber.from("1"); -}; -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -async function baseWeb3HelperFactory(provider, nonce) { - const w3 = provider; - return { - async balance(address) { - const bal = await w3.getBalance(address); - // ethers BigNumber is not compatible with our bignumber - return new bignumber_js_1.default(bal.toString()); - }, - async deployErc721(owner) { - const factory = new xpnet_web3_contracts_1.UserNftMinter__factory(owner); - const contract = await factory.deploy(); - return contract.address; - }, - async mintNftErc1155(owner, { contract }) { - const erc1155 = xpnet_web3_contracts_1.Erc1155Minter__factory.connect( - contract, - owner - ); - const tx = await erc1155.mintNft(await owner.getAddress()); - return tx; - }, - async mintNft(owner, { contract, uri }) { - const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - contract, - owner - ); - const txm = await erc721 - .mint(uri, { gasLimit: 1000000 }) - .catch(async (e) => { - if (nonce === 33) { - let tx; - while (!tx) { - tx = await provider.getTransaction(e["returnedHash"]); - } - return tx; - } - throw e; - }); - return txm; - }, - }; -} -exports.baseWeb3HelperFactory = baseWeb3HelperFactory; -exports.NFT_METHOD_MAP = { - ERC1155: { - freeze: "freezeErc1155", - validateUnfreeze: "validateUnfreezeErc1155", - umt: xpnet_web3_contracts_1.Erc1155Minter__factory, - approved: (umt, sender, minterAddr, _tok, customData) => { - return umt.isApprovedForAll(sender, minterAddr, { - gasLimit: "85000", - customData, - }); - }, - approve: async (umt, forAddr, _tok, txnUp, customData) => { - const tx = await umt.populateTransaction.setApprovalForAll( - forAddr, - true, - { - gasLimit: "85000", - customData, - } - ); - await txnUp(tx); - return await umt.signer.sendTransaction(tx); - }, - }, - ERC721: { - freeze: "freezeErc721", - validateUnfreeze: "validateUnfreezeErc721", - umt: xpnet_web3_contracts_1.UserNftMinter__factory, - approved: async (umt, _, minterAddr, tok, customData) => { - return ( - ( - await umt.getApproved(tok, { - gasLimit: "85000", - customData, - //@ts-ignore - }) - ).toLowerCase() == minterAddr.toLowerCase() - ); - }, - approve: async (umt, forAddr, tok, txnUp) => { - const tx = await umt.populateTransaction.approve(forAddr, tok, { - gasLimit: "85000", - }); - await txnUp(tx); - return await umt.signer.sendTransaction(tx); - }, - }, -}; -async function web3HelperFactory(params) { - const txnUnderpricedPolyWorkaround = - params.nonce == 7 - ? async (utx) => { - const res = await axios_1.default - .get( - "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" - ) - .catch(async () => { - return await axios_1.default.get( - "https://gasstation-mainnet.matic.network/v2" - ); - }); - const { result, fast } = res.data; - const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; - if (trackerGas) { - const sixtyGwei = ethers_1.ethers.utils.parseUnits( - Math.ceil(trackerGas).toString(), - "gwei" - ); - utx.maxFeePerGas = sixtyGwei; - utx.maxPriorityFeePerGas = sixtyGwei; - } - } - : () => Promise.resolve(); - const w3 = params.provider; - const { minter_addr, provider } = params; - const minter = xpnet_web3_contracts_1.Minter__factory.connect( - minter_addr, - provider - ); - async function notifyValidator( - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ) { - await params.notifier.notifyWeb3( - params.nonce, - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ); - } - //@ts-ignore - async function getTransaction(hash) { - let trx; - let fails = 0; - while (!trx && fails < 7) { - trx = await provider.getTransaction(hash); - await new Promise((resolve) => - setTimeout(() => resolve("wait"), 5000 + fails * 2) - ); - fails++; - } - return trx; - } - async function extractAction(txr) { - const receipt = await txr.wait(); - const log = receipt.logs.find((log) => log.address === minter.address); - if (log === undefined) { - throw Error("Couldn't extract action_id"); - } - const evdat = minter.interface.parseLog(log); - const action_id = evdat.args[0].toString(); - return action_id; - } - const isApprovedForMinter = async (id, signer) => { - const erc = exports.NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - signer - ); - const toApprove = - params.nonce !== 0x1d - ? minter_addr - : id.native.uri.includes("herokuapp.com") - ? params.minter_addr - : params.erc721_addr; - return await exports.NFT_METHOD_MAP[id.native.contractType].approved( - erc, - await signer.getAddress(), - toApprove, - id.native.tokenId, - params.nonce === 0x1d ? {} : undefined - ); - }; - const approveForMinter = async (id, sender, _txFees, gasPrice) => { - const isApproved = await isApprovedForMinter(id, sender); - if (isApproved) { - return undefined; - } - const erc = exports.NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - sender - ); - const toApprove = - params.nonce !== 0x1d - ? minter_addr - : id.native.uri.includes("herokuapp.com") - ? params.minter_addr - : params.erc721_addr; - const receipt = await exports.NFT_METHOD_MAP[ - id.native.contractType - ].approve( - erc, - toApprove, - id.native.tokenId, - txnUnderpricedPolyWorkaround, - params.nonce === 0x1d ? {} : undefined, - gasPrice - ); - await receipt.wait(); - return receipt.hash; - }; - const base = await baseWeb3HelperFactory(params.provider, params.nonce); - return { - ...base, - XpNft: params.erc721_addr, - XpNft1155: params.erc1155_addr, - approveForMinter, - getProvider: () => provider, - async estimateValidateUnfreezeNft(_to, _id, _mW) { - const gas = await provider.getGasPrice(); - return new bignumber_js_1.default(gas.mul(150000).toString()); - }, - getFeeMargin() { - return params.feeMargin; - }, - isApprovedForMinter, - preTransfer: (s, id, fee, args) => - approveForMinter(id, s, fee, args?.gasPrice), - extractAction, - async isContractAddress(address) { - const code = await provider.getCode(address); - return code !== "0x"; - }, - getNonce: () => params.nonce, - async preTransferRawTxn(id, address, _value) { - const isApproved = await isApprovedForMinter( - id, - new ethers_1.VoidSigner(address, provider) - ); - if (isApproved) { - return undefined; - } - const erc = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - id.native.contract, - new ethers_1.VoidSigner(address, provider) - ); - const approvetxn = await erc.populateTransaction.approve( - minter_addr, - id.native.tokenId - ); - return approvetxn; - }, - async extractTxnStatus(txn) { - const status = (await (await provider.getTransaction(txn)).wait()).status; - if (status === undefined) { - return __1.TransactionStatus.PENDING; - } - if (status === 1) { - return __1.TransactionStatus.SUCCESS; - } else if (status === 0) { - return __1.TransactionStatus.FAILURE; - } - return __1.TransactionStatus.UNKNOWN; - }, - async getTokenURI(contract, tokenId) { - if (ethers_1.ethers.utils.isAddress(contract) && tokenId) { - const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - contract, - provider - ); - //const erc1155 = Erc1155Minter__factory.connect(contract!, provider) - //erc1155.uri() - return await erc721.tokenURI(tokenId).catch(() => ""); - } - return ""; - }, - async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { - const tx = await minter - .connect(signer) - .populateTransaction.withdrawNftBatch( - to, - chainNonce, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - nfts[0].native.contract, - { - value: ethers_1.BigNumber.from(txFees.toFixed(0)), - } - ); - await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx); - // await notifyValidator( - // res.hash, - // await extractAction(res), - // "Unfreeze", - // chainNonce.toString(), - // txFees.toString(), - // await signer.getAddress(), - // to, - // res.data - // ); - await notifyValidator(res.hash); - return res; - }, - async transferNftBatchToForeign( - signer, - chainNonce, - to, - nfts, - mintWith, - txFees - ) { - const tx = await minter - .connect(signer) - .populateTransaction.freezeErc1155Batch( - nfts[0].native.contract, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - chainNonce, - to, - mintWith, - { - value: ethers_1.BigNumber.from(txFees.toFixed(0)), - } - ); - await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx); - await notifyValidator(res.hash); - return res; - }, - async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { - const gasPrice = await w3.getGasPrice(); - const gas = 40000 + 60000 * nfts.length; - return new bignumber_js_1.default(gasPrice.mul(gas).toString()); - }, - async estimateValidateUnfreezeNftBatch(_to, nfts) { - const gasPrice = await w3.getGasPrice(); - const gas = 40000 + 60000 * nfts.length; - return new bignumber_js_1.default(gasPrice.mul(gas).toString()); - }, - createWallet(privateKey) { - return new ethers_1.Wallet(privateKey, provider); - }, - async transferNftToForeign( - sender, - chain_nonce, - to, - id, - txFees, - mintWith, - gasLimit = undefined, - gasPrice - ) { - await approveForMinter(id, sender, txFees, gasPrice); - const method = exports.NFT_METHOD_MAP[id.native.contractType].freeze; - // Chain is Hedera - if (params.nonce === 0x1d) { - id.native.tokenId = ethers_1.ethers.utils.solidityPack( - ["uint160", "int96"], - [id.collectionIdent, id.native.tokenId] - ); - id.native.contract = params.erc721_addr; - } - const tx = await minter - .connect(sender) - .populateTransaction[method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - { - value: ethers_1.BigNumber.from(txFees.toFixed(0)), - gasLimit, - gasPrice, - } - ); - await txnUnderpricedPolyWorkaround(tx); - const txr = await sender.sendTransaction(tx).catch((e) => { - if (params.nonce === 33) { - return e; - } else throw e; - }); - let txHash; - if (params.nonce === 0x1d) { - //@ts-ignore checked hedera - txHash = txr["transactionId"]; - } else if (params.nonce === 33) { - //@ts-ignore checked abeychain - txHash = txr["returnedHash"] || txr.hash; - } else { - //@ts-ignore checked normal evm - txHash = txr.hash; - } - await notifyValidator( - //@ts-ignore - txHash - ); - if (params.nonce === 33) { - return await provider.getTransaction(txHash); - } - return txr; - }, - async unfreezeWrappedNft( - sender, - to, - id, - txFees, - nonce, - gasLimit = undefined, - gasPrice - ) { - await approveForMinter(id, sender, txFees, gasPrice); - // Chain is Hedera - if (params.nonce === 0x1d) { - id.native.tokenId = ethers_1.ethers.utils.solidityPack( - ["uint160", "int96"], - [ethers_1.BigNumber.from(id.collectionIdent), id.native.tokenId] - ); - id.native.contract = params.erc721_addr; - } - const txn = await minter - .connect(sender) - .populateTransaction.withdrawNft( - to, - nonce, - id.native.tokenId, - id.native.contract, - { - value: ethers_1.BigNumber.from(txFees.toFixed(0)), - gasLimit, - gasPrice, - } - ); - await txnUnderpricedPolyWorkaround(txn); - const res = await sender.sendTransaction(txn); - console.log(res, "res"); - let txHash; - if (params.nonce === 0x1d) { - //@ts-ignore checked hedera - txHash = res["transactionId"]; - } else if (params.nonce === 33) { - //@ts-ignore checked abeychain - txHash = res["returnedHash"] || res.hash; - } else { - //@ts-ignore checked normal evm - txHash = res.hash; - } - await notifyValidator(txHash); - if (params.nonce === 33) { - return await provider.getTransaction(txHash); - } - return res; - }, - async estimateValidateTransferNft(_to, _nftUri, _mintWith) { - const gas = await provider.getGasPrice(); - return new bignumber_js_1.default(gas.mul(150000).toString()); - }, - validateAddress(adr) { - return Promise.resolve(ethers_1.ethers.utils.isAddress(adr)); - }, - isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract); - }, - }; -} -exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBY3JDLG1DQVNnQjtBQUVoQiwrREFNOEI7QUFDOUIsMEJBWVk7QUFHWixrREFBMEI7QUFDMUIsZ0RBQTZDO0FBNEM3QyxpQkFBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNoRSxPQUFPLGtCQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQXlERjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQixFQUNsQixLQUFhO0lBRWIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxD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 diff --git a/dist/helpers/web3.ts b/dist/helpers/web3.ts deleted file mode 100644 index 3e1194488..000000000 --- a/dist/helpers/web3.ts +++ /dev/null @@ -1,729 +0,0 @@ -/** - * Web3 Implementation for cross chain traits - * @module - */ -import BigNumber from "bignumber.js"; -import { - BalanceCheck, - EstimateTxFeesBatch, - FeeMargins, - GetFeeMargins, - GetProvider, - IsContractAddress, - MintNft, - TransferNftForeign, - TransferNftForeignBatch, - UnfreezeForeignNft, - UnfreezeForeignNftBatch, -} from "./chain"; -import { - BigNumber as EthBN, - ContractTransaction, - ethers, - PopulatedTransaction, - providers, - Signer, - VoidSigner, - Wallet, -} from "ethers"; -import { Provider, TransactionResponse } from "@ethersproject/providers"; -import { - Erc1155Minter, - Erc1155Minter__factory, - Minter__factory, - UserNftMinter, - UserNftMinter__factory, -} from "xpnet-web3-contracts"; -import { - ChainNonceGet, - EstimateTxFees, - ExtractAction, - ExtractTxnStatus, - GetTokenURI, - NftInfo, - PreTransfer, - PreTransferRawTxn, - TransactionStatus, - ValidateAddress, - WhitelistCheck, -} from ".."; -import { ChainNonce } from "../type-utils"; -import { EvNotifier } from "../notifier"; -import axios from "axios"; -import { hethers } from "@hashgraph/hethers"; -/** - * Information required to perform NFT transfers in this chain - */ -export type EthNftInfo = { - chainId: string; - tokenId: string; - owner: string; - uri: string; - contract: string; - contractType: "ERC721" | "ERC1155"; -}; - -/** - * Arguments required for minting a new nft - * - * contract: address of the sc - * token: token ID of the newly minted nft - * owner: Owner of the newly minted nft - * uri: uri of the nft - */ -export type MintArgs = { - contract: string; - uri: string; -}; - -export interface IsApproved { - isApprovedForMinter( - address: NftInfo, - sender: Sender, - txFee: BigNumber - ): Promise; -} - -export interface Approve { - approveForMinter( - address: NftInfo, - sender: Sender, - txFee: BigNumber - ): Promise; -} - -hethers.providers.BaseProvider.prototype.getGasPrice = async () => { - return EthBN.from("1"); -}; - -type NullableCustomData = Record | undefined; - -/** - * Base util traits - */ -export type BaseWeb3Helper = BalanceCheck & - /** - * Mint an nft in the given ERC1155 smart contract - * - * @argument signer owner of the smart contract - * @argument args See [[MintArgs]] - */ MintNft & { - /** - * Deploy an ERC721 smart contract - * - * @argument owner Owner of this smart contract - * @returns Address of the deployed smart contract - */ - deployErc721(owner: Signer): Promise; - } & { - mintNftErc1155( - owner: Signer, - options: MintArgs - ): Promise; - }; - -/** - * Traits implemented by this module - */ -export type Web3Helper = BaseWeb3Helper & - TransferNftForeign & - UnfreezeForeignNft & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - EstimateTxFees & - EstimateTxFeesBatch & - ChainNonceGet & - IsApproved & - Approve & - ValidateAddress & - ExtractAction & { - createWallet(privateKey: string): Wallet; - } & Pick, "preTransfer"> & - PreTransferRawTxn & - ExtractTxnStatus & - GetProvider & { - XpNft: string; - XpNft1155: string; - } & WhitelistCheck & - GetFeeMargins & - IsContractAddress & - GetTokenURI; - -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -export async function baseWeb3HelperFactory( - provider: Provider, - nonce: number -): Promise { - const w3 = provider; - - return { - async balance(address: string): Promise { - const bal = await w3.getBalance(address); - - // ethers BigNumber is not compatible with our bignumber - return new BigNumber(bal.toString()); - }, - async deployErc721(owner: Signer): Promise { - const factory = new UserNftMinter__factory(owner); - const contract = await factory.deploy(); - - return contract.address; - }, - async mintNftErc1155(owner: Signer, { contract }) { - const erc1155 = Erc1155Minter__factory.connect(contract!, owner); - const tx = await erc1155.mintNft(await owner.getAddress()); - - return tx; - }, - async mintNft( - owner: Signer, - { contract, uri }: MintArgs - ): Promise { - const erc721 = UserNftMinter__factory.connect(contract!, owner); - const txm = await erc721 - .mint(uri, { gasLimit: 1000000 }) - .catch(async (e) => { - if (nonce === 33) { - let tx; - while (!tx) { - tx = await provider.getTransaction(e["returnedHash"]); - } - return tx; - } - throw e; - }); - return txm; - }, - }; -} - -/** - * Create an object implementing cross chain utilities for a web3 chain - * - * @param provider An ethers.js provider object - * @param minter_addr Address of the minter smart contract - * @param minter_abi ABI of the minter smart contract - */ -export interface Web3Params { - provider: Provider; - notifier: EvNotifier; - minter_addr: string; - erc721_addr: string; - erc1155_addr: string; - erc721Minter: string; - erc1155Minter: string; - nonce: ChainNonce; - feeMargin: FeeMargins; -} - -type NftMethodVal = { - freeze: "freezeErc1155" | "freezeErc721"; - validateUnfreeze: "validateUnfreezeErc1155" | "validateUnfreezeErc721"; - umt: typeof Erc1155Minter__factory | typeof UserNftMinter__factory; - approved: ( - umt: T, - sender: string, - minterAddr: string, - tok: string, - customData: NullableCustomData - ) => Promise; - approve: ( - umt: T, - forAddr: string, - tok: string, - txnUp: (tx: PopulatedTransaction) => Promise, - customData: NullableCustomData - ) => Promise; -}; - -type EthNftMethodVal = NftMethodVal; - -type NftMethodMap = Record< - "ERC1155" | "ERC721", - EthNftMethodVal | EthNftMethodVal ->; - -export const NFT_METHOD_MAP: NftMethodMap = { - ERC1155: { - freeze: "freezeErc1155", - validateUnfreeze: "validateUnfreezeErc1155", - umt: Erc1155Minter__factory, - approved: ( - umt: Erc1155Minter, - sender: string, - minterAddr: string, - _tok: string, - customData: NullableCustomData - ) => { - return umt.isApprovedForAll(sender, minterAddr, { - gasLimit: "1000000", - customData, - }); - }, - approve: async ( - umt: Erc1155Minter, - forAddr: string, - _tok: string, - txnUp: (tx: PopulatedTransaction) => Promise, - customData: NullableCustomData - ) => { - const tx = await umt.populateTransaction.setApprovalForAll( - forAddr, - true, - { - gasLimit: "1000000", - customData, - } - ); - await txnUp(tx); - return await umt.signer.sendTransaction(tx); - }, - }, - ERC721: { - freeze: "freezeErc721", - validateUnfreeze: "validateUnfreezeErc721", - umt: UserNftMinter__factory, - approved: async ( - umt: UserNftMinter, - _: string, - minterAddr: string, - tok: string, - customData: NullableCustomData - ) => { - return ( - ( - await umt.getApproved(tok, { - gasLimit: "1000000", - customData, - //@ts-ignore - }) - ).toLowerCase() == minterAddr.toLowerCase() - ); - }, - approve: async ( - umt: UserNftMinter, - forAddr: string, - tok: string, - txnUp: (tx: PopulatedTransaction) => Promise - ) => { - const tx = await umt.populateTransaction.approve(forAddr, tok, { - gasLimit: "1000000", - }); - await txnUp(tx); - return await umt.signer.sendTransaction(tx); - }, - }, -}; - -export async function web3HelperFactory( - params: Web3Params -): Promise { - const txnUnderpricedPolyWorkaround = - params.nonce == 7 - ? async (utx: PopulatedTransaction) => { - const res = await axios - .get( - "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" - ) - .catch(async () => { - return await axios.get( - "https://gasstation-mainnet.matic.network/v2" - ); - }); - const { result, fast } = res.data; - const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; - - if (trackerGas) { - const sixtyGwei = ethers.utils.parseUnits( - Math.ceil(trackerGas).toString(), - "gwei" - ); - utx.maxFeePerGas = sixtyGwei; - utx.maxPriorityFeePerGas = sixtyGwei; - } - } - : () => Promise.resolve(); - const w3 = params.provider; - const { minter_addr, provider } = params; - const minter = Minter__factory.connect(minter_addr, provider); - - async function notifyValidator( - fromHash: string, - actionId?: string, - type?: string, - toChain?: number, - txFees?: string, - senderAddress?: string, - targetAddress?: string, - nftUri?: string, - tokenId?: string, - contract?: string - ): Promise { - await params.notifier.notifyWeb3( - params.nonce, - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ); - } - - //@ts-ignore - async function getTransaction(hash: string) { - let trx; - let fails = 0; - while (!trx && fails < 7) { - trx = await provider.getTransaction(hash); - await new Promise((resolve) => - setTimeout(() => resolve("wait"), 5000 + fails * 2) - ); - fails++; - } - - return trx as TransactionResponse; - } - - async function extractAction(txr: TransactionResponse): Promise { - const receipt = await txr.wait(); - const log = receipt.logs.find((log) => log.address === minter.address); - if (log === undefined) { - throw Error("Couldn't extract action_id"); - } - - const evdat = minter.interface.parseLog(log); - const action_id: string = evdat.args[0].toString(); - return action_id; - } - - const isApprovedForMinter = async ( - id: NftInfo, - signer: Signer - ) => { - const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - signer - ); - const toApprove = - params.nonce !== 0x1d - ? minter_addr - : id.native.uri.includes("herokuapp.com") - ? params.minter_addr - : params.erc721_addr; - return await NFT_METHOD_MAP[id.native.contractType].approved( - erc as any, - await signer.getAddress(), - toApprove, - id.native.tokenId, - params.nonce === 0x1d ? {} : undefined - ); - }; - - const approveForMinter = async (id: NftInfo, sender: Signer) => { - const isApproved = await isApprovedForMinter(id, sender); - if (isApproved) { - return undefined; - } - const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - sender - ); - - const toApprove = - params.nonce !== 0x1d - ? minter_addr - : id.native.uri.includes("herokuapp.com") - ? params.minter_addr - : params.erc721_addr; - - const receipt = await NFT_METHOD_MAP[id.native.contractType].approve( - erc as any, - toApprove, - id.native.tokenId, - txnUnderpricedPolyWorkaround, - params.nonce === 0x1d ? {} : undefined - ); - await receipt.wait(); - return receipt.hash; - }; - - const base = await baseWeb3HelperFactory(params.provider, params.nonce); - - return { - ...base, - XpNft: params.erc721_addr, - XpNft1155: params.erc1155_addr, - approveForMinter, - getProvider: () => provider, - async estimateValidateUnfreezeNft(_to, _id, _mW) { - const gas = await provider.getGasPrice(); - return new BigNumber(gas.mul(150_000).toString()); - }, - getFeeMargin() { - return params.feeMargin; - }, - isApprovedForMinter, - preTransfer: (s, id, _fee) => approveForMinter(id, s), - extractAction, - async isContractAddress(address) { - const code = await provider.getCode(address); - return code !== "0x"; - }, - getNonce: () => params.nonce, - async preTransferRawTxn(id, address, _value) { - const isApproved = await isApprovedForMinter( - id, - new VoidSigner(address, provider) - ); - - if (isApproved) { - return undefined; - } - - const erc = UserNftMinter__factory.connect( - id.native.contract, - new VoidSigner(address, provider) - ); - - const approvetxn = await erc.populateTransaction.approve( - minter_addr, - id.native.tokenId - ); - - return approvetxn; - }, - - async extractTxnStatus(txn) { - const status = (await (await provider.getTransaction(txn)).wait()).status; - if (status === undefined) { - return TransactionStatus.PENDING; - } - if (status === 1) { - return TransactionStatus.SUCCESS; - } else if (status === 0) { - return TransactionStatus.FAILURE; - } - return TransactionStatus.UNKNOWN; - }, - async getTokenURI(contract, tokenId) { - if (ethers.utils.isAddress(contract) && tokenId) { - const erc721 = UserNftMinter__factory.connect(contract!, provider); - return await erc721.tokenURI(tokenId).catch(() => ""); - } - return ""; - }, - async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { - const tx = await minter - .connect(signer) - .populateTransaction.withdrawNftBatch( - to, - chainNonce, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - nfts[0].native.contract, - { - value: EthBN.from(txFees.toString()), - } - ); - await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx); - - // await notifyValidator( - // res.hash, - // await extractAction(res), - // "Unfreeze", - // chainNonce.toString(), - // txFees.toString(), - // await signer.getAddress(), - // to, - // res.data - // ); - await notifyValidator(res.hash); - - return res; - }, - async transferNftBatchToForeign( - signer, - chainNonce, - to, - nfts, - mintWith, - txFees - ) { - const tx = await minter - .connect(signer) - .populateTransaction.freezeErc1155Batch( - nfts[0].native.contract, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - chainNonce, - to, - mintWith, - { - value: EthBN.from(txFees.toString()), - } - ); - await txnUnderpricedPolyWorkaround(tx); - - const res = await signer.sendTransaction(tx); - - await notifyValidator(res.hash); - - return res; - }, - async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { - const gasPrice = await w3.getGasPrice(); - const gas = 40_000 + 60_000 * nfts.length; - return new BigNumber(gasPrice.mul(gas).toString()); - }, - async estimateValidateUnfreezeNftBatch(_to, nfts) { - const gasPrice = await w3.getGasPrice(); - const gas = 40_000 + 60_000 * nfts.length; - return new BigNumber(gasPrice.mul(gas).toString()); - }, - createWallet(privateKey: string): Wallet { - return new Wallet(privateKey, provider); - }, - async transferNftToForeign( - sender: Signer, - chain_nonce: number, - to: string, - id: NftInfo, - txFees: BigNumber, - mintWith: string, - gasLimit: ethers.BigNumberish | undefined = undefined - ): Promise { - await approveForMinter(id, sender); - const method = NFT_METHOD_MAP[id.native.contractType].freeze; - - // Chain is Hedera - if (params.nonce === 0x1d) { - id.native.tokenId = ethers.utils.solidityPack( - ["uint160", "int96"], - [id.collectionIdent, id.native.tokenId] - ); - id.native.contract = params.erc721_addr; - } - - const tx = await minter - .connect(sender) - .populateTransaction[method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - { - value: EthBN.from(txFees.toString()), - gasLimit, - } - ); - await txnUnderpricedPolyWorkaround(tx); - - const txr: TransactionResponse | unknown = await sender - .sendTransaction(tx) - .catch((e) => { - if (params.nonce === 33) { - return e; - } else throw e; - }); - let txHash: string; - if (params.nonce === 0x1d) { - //@ts-ignore checked hedera - txHash = txr["transactionId"]; - } else if (params.nonce === 33) { - //@ts-ignore checked abeychain - txHash = txr["returnedHash"] || txr.hash; - } else { - //@ts-ignore checked normal evm - txHash = txr.hash; - } - - await notifyValidator( - //@ts-ignore - txHash - ); - if (params.nonce === 33) { - return await provider.getTransaction(txHash); - } - return txr as any; - }, - async unfreezeWrappedNft( - sender: Signer, - to: string, - id: NftInfo, - txFees: BigNumber, - nonce, - gasLimit = undefined - ): Promise { - await approveForMinter(id, sender); - - // Chain is Hedera - if (params.nonce === 0x1d) { - id.native.tokenId = ethers.utils.solidityPack( - ["uint160", "int96"], - [EthBN.from(id.collectionIdent), id.native.tokenId] - ); - id.native.contract = params.erc721_addr; - } - - const txn = await minter - .connect(sender) - .populateTransaction.withdrawNft( - to, - nonce, - id.native.tokenId, - id.native.contract, - { - value: EthBN.from(txFees.toString(10)), - gasLimit, - } - ); - - await txnUnderpricedPolyWorkaround(txn); - const res = await sender.sendTransaction(txn); - console.log(res, "res"); - let txHash: string; - if (params.nonce === 0x1d) { - //@ts-ignore checked hedera - txHash = res["transactionId"]; - } else if (params.nonce === 33) { - //@ts-ignore checked abeychain - txHash = res["returnedHash"] || res.hash; - } else { - //@ts-ignore checked normal evm - txHash = res.hash; - } - - await notifyValidator(txHash); - if (params.nonce === 33) { - return await provider.getTransaction(txHash); - } - return res as any; - }, - async estimateValidateTransferNft( - _to: string, - _nftUri: NftInfo, - _mintWith - ): Promise { - const gas = await provider.getGasPrice(); - - return new BigNumber(gas.mul(150_000).toString()); - }, - validateAddress(adr) { - return Promise.resolve(ethers.utils.isAddress(adr)); - }, - isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract); - }, - }; -} diff --git a/dist/helpers/web3_erc20.d.ts b/dist/helpers/web3_erc20.d.ts deleted file mode 100644 index 6d86156bd..000000000 --- a/dist/helpers/web3_erc20.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Provider } from "@ethersproject/providers"; -import { BaseWeb3Helper, Web3Helper, Web3Params } from ".."; -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -export declare function baseWeb3HelperFactory( - provider: Provider -): Promise; -export declare type Web3ERC20Params = Web3Params & { - paymentTokenAddress: string; -}; -export declare function web3ERC20HelperFactory( - params: Web3ERC20Params -): Promise; -//# sourceMappingURL=web3_erc20.d.ts.map diff --git a/dist/helpers/web3_erc20.d.ts.map b/dist/helpers/web3_erc20.d.ts.map deleted file mode 100644 index e73a938d8..000000000 --- a/dist/helpers/web3_erc20.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web3_erc20.d.ts","sourceRoot":"","sources":["../../src/helpers/web3_erc20.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAOzE,OAAO,EACL,cAAc,EAMd,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AAGZ;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,oBAAY,eAAe,GAAG,UAAU,GAAG;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CAqYrB"} \ No newline at end of file diff --git a/dist/helpers/web3_erc20.js b/dist/helpers/web3_erc20.js deleted file mode 100644 index 236fd4bfd..000000000 --- a/dist/helpers/web3_erc20.js +++ /dev/null @@ -1,399 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.web3ERC20HelperFactory = exports.baseWeb3HelperFactory = void 0; -/** - * Web3 Implementation for cross chain traits - * @module - */ -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const ethers_1 = require("ethers"); -const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); -const __1 = require(".."); -const axios_1 = __importDefault(require("axios")); -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -async function baseWeb3HelperFactory(provider) { - const w3 = provider; - return { - async balance(address) { - const bal = await w3.getBalance(address); - // ethers BigNumber is not compatible with our bignumber - return new bignumber_js_1.default(bal.toString()); - }, - async deployErc721(owner) { - const factory = new xpnet_web3_contracts_1.UserNftMinter__factory(owner); - const contract = await factory.deploy(); - return contract.address; - }, - async mintNftErc1155(owner, { contract }) { - const erc1155 = xpnet_web3_contracts_1.Erc1155Minter__factory.connect( - contract, - owner - ); - const tx = await erc1155.mintNft(await owner.getAddress()); - return tx; - }, - async mintNft(owner, { contract, uri }) { - const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - contract, - owner - ); - const txm = await erc721.mint(uri, { gasLimit: 1000000 }); - return txm; - }, - }; -} -exports.baseWeb3HelperFactory = baseWeb3HelperFactory; -async function web3ERC20HelperFactory(params) { - const txnUnderpricedPolyWorkaround = - params.nonce == 7 - ? async (utx) => { - const res = await axios_1.default - .get( - "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" - ) - .catch(async () => { - return await axios_1.default.get( - "https://gasstation-mainnet.matic.network/v2" - ); - }); - const { result, fast } = res.data; - const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; - if (trackerGas) { - const sixtyGwei = ethers_1.ethers.utils.parseUnits( - Math.ceil(trackerGas).toString(), - "gwei" - ); - utx.maxFeePerGas = sixtyGwei; - utx.maxPriorityFeePerGas = sixtyGwei; - } - } - : () => Promise.resolve(); - const w3 = params.provider; - const { minter_addr, provider } = params; - const minter = xpnet_web3_contracts_1.MinterERC20__factory.connect( - minter_addr, - provider - ); - async function notifyValidator( - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ) { - await params.notifier.notifyWeb3( - params.nonce, - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ); - } - async function getTransaction(hash) { - let trx; - let fails = 0; - while (!trx && fails < 7) { - trx = await provider.getTransaction(hash); - await new Promise((resolve) => - setTimeout(() => resolve("wait"), 5000 + fails * 2) - ); - fails++; - } - return trx; - } - async function extractAction(txr) { - const receipt = await txr.wait(); - const log = receipt.logs.find((log) => log.address === minter.address); - if (log === undefined) { - throw Error("Couldn't extract action_id"); - } - const evdat = minter.interface.parseLog(log); - const action_id = evdat.args[0].toString(); - return action_id; - } - const isApprovedForMinter = async (id, signer, _txFees) => { - const erc = __1.NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - signer - ); - return await __1.NFT_METHOD_MAP[id.native.contractType].approved( - erc, - await signer.getAddress(), - minter_addr, - id.native.tokenId, - params.nonce === 0x1d ? {} : undefined - ); - }; - const approveForMinter = async (id, sender, txFees, gasPrice) => { - const isApproved = await isApprovedForMinter(id, sender, txFees); - if (isApproved) { - return undefined; - } - const erc = __1.NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - sender - ); - const receipt = await __1.NFT_METHOD_MAP[id.native.contractType].approve( - erc, - minter_addr, - id.native.tokenId, - txnUnderpricedPolyWorkaround, - params.nonce === 0x1d ? {} : undefined, - gasPrice - ); - await receipt.wait(); - const erc20 = xpnet_web3_contracts_1.PaymentToken__factory.connect( - params.paymentTokenAddress, - sender - ); - const approval = await erc20.approve( - minter_addr, - ethers_1.BigNumber.from(txFees.toString()) - ); - return approval.hash; - }; - const base = await baseWeb3HelperFactory(params.provider); - return { - ...base, - XpNft: params.erc721_addr, - XpNft1155: params.erc1155_addr, - approveForMinter, - getProvider: () => provider, - async estimateValidateUnfreezeNft(_to, _id, _mW) { - const gas = await provider.getGasPrice(); - return new bignumber_js_1.default(gas.mul(150000).toString()); - }, - getFeeMargin() { - return params.feeMargin; - }, - isApprovedForMinter, - preTransfer: (s, id, _fee, args) => - approveForMinter(id, s, _fee, args?.gasPrice), - extractAction, - async isContractAddress(address) { - const code = await provider.getCode(address); - return code !== "0x"; - }, - getNonce: () => params.nonce, - async preTransferRawTxn(id, address, _value) { - const isApproved = await isApprovedForMinter( - id, - new ethers_1.VoidSigner(address, provider), - _value - ); - if (isApproved) { - return undefined; - } - const erc = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - id.native.contract, - new ethers_1.VoidSigner(address, provider) - ); - const approvetxn = await erc.populateTransaction.approve( - minter_addr, - id.native.tokenId - ); - return approvetxn; - }, - async extractTxnStatus(txn) { - const status = (await (await provider.getTransaction(txn)).wait()).status; - if (status === undefined) { - return __1.TransactionStatus.PENDING; - } - if (status === 1) { - return __1.TransactionStatus.SUCCESS; - } else if (status === 0) { - return __1.TransactionStatus.FAILURE; - } - return __1.TransactionStatus.UNKNOWN; - }, - async getTokenURI(contract, tokenId) { - if (ethers_1.ethers.utils.isAddress(contract) && tokenId) { - const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - contract, - provider - ); - return await erc721.tokenURI(tokenId).catch(() => ""); - } - return ""; - }, - async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { - const tx = await minter - .connect(signer) - .populateTransaction.withdrawNftBatch( - to, - chainNonce, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - nfts[0].native.contract, - ethers_1.BigNumber.from(txFees.toString()) - ); - await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx); - // await notifyValidator( - // res.hash, - // await extractAction(res), - // "Unfreeze", - // chainNonce.toString(), - // txFees.toString(), - // await signer.getAddress(), - // to, - // res.data - // ); - await notifyValidator(res.hash); - return res; - }, - async transferNftBatchToForeign( - signer, - chainNonce, - to, - nfts, - mintWith, - txFees - ) { - const tx = await minter - .connect(signer) - .populateTransaction.freezeErc1155Batch( - nfts[0].native.contract, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - chainNonce, - to, - mintWith, - ethers_1.BigNumber.from(txFees.toString()) - ); - await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx); - await notifyValidator(res.hash); - return res; - }, - async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { - const gasPrice = await w3.getGasPrice(); - const gas = 40000 + 60000 * nfts.length; - return new bignumber_js_1.default(gasPrice.mul(gas).toString()); - }, - async estimateValidateUnfreezeNftBatch(_to, nfts) { - const gasPrice = await w3.getGasPrice(); - const gas = 40000 + 60000 * nfts.length; - return new bignumber_js_1.default(gasPrice.mul(gas).toString()); - }, - createWallet(privateKey) { - return new ethers_1.Wallet(privateKey, provider); - }, - async transferNftToForeign( - sender, - chain_nonce, - to, - id, - txFees, - mintWith, - gasLimit = undefined, - gasPrice - ) { - await approveForMinter(id, sender, txFees, gasPrice); - const method = __1.NFT_METHOD_MAP[id.native.contractType].freeze; - const tx = await minter - .connect(sender) - .populateTransaction[method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - ethers_1.BigNumber.from(txFees.toString()), - { - gasLimit, - } - ); - await txnUnderpricedPolyWorkaround(tx); - const txr = await sender.sendTransaction(tx).catch((e) => { - if (params.nonce === 33) { - return e; - } else throw e; - }); - let txHash; - if (params.nonce === 0x1d) { - //@ts-ignore checked hedera - txHash = txr["transactionId"]; - } - if (params.nonce === 33) { - //@ts-ignore checked abeychain - txHash = txr["returnedHash"] || txr.hash; - } else { - //@ts-ignore checked normal evm - txHash = txr.hash; - } - await notifyValidator( - //@ts-ignore - txHash, - await extractAction(await getTransaction(txHash)), - "Transfer", - chain_nonce, - txFees.toString(), - await sender.getAddress(), - to, - id.uri, - id.native.tokenId, - id.native.contract - ); - return params.nonce === 33 ? await provider.getTransaction(txHash) : txr; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - const txn = await minter - .connect(sender) - .populateTransaction.withdrawNft( - to, - nonce, - id.native.tokenId, - id.native.contract, - ethers_1.BigNumber.from(txFees.toString()) - ); - await txnUnderpricedPolyWorkaround(txn); - const res = await sender.sendTransaction(txn); - await notifyValidator( - res.hash, - await extractAction(res), - "Unfreeze", - Number(nonce), - txFees.toString(), - await sender.getAddress(), - to, - id.uri, - id.native.tokenId, - id.native.contract - ); - return res; - }, - async estimateValidateTransferNft(_to, _nftUri, _mintWith) { - const gas = await provider.getGasPrice(); - return new bignumber_js_1.default(gas.mul(150000).toString()); - }, - validateAddress(adr) { - return Promise.resolve(ethers_1.ethers.utils.isAddress(adr)); - }, - isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract); - }, - }; -} -exports.web3ERC20HelperFactory = web3ERC20HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViM19lcmMyMC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjNfZXJjMjAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBQ3JDLG1DQVFnQjtBQUVoQiwrREFLOEI7QUFDOUIsMEJBU1k7QUFDWixrREFBMEI7QUFFMUI7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBa0I7SUFFbEIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBRTNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBYSxF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 diff --git a/dist/helpers/web3_erc20.ts b/dist/helpers/web3_erc20.ts deleted file mode 100644 index d9077db42..000000000 --- a/dist/helpers/web3_erc20.ts +++ /dev/null @@ -1,466 +0,0 @@ -/** - * Web3 Implementation for cross chain traits - * @module - */ -import BigNumber from "bignumber.js"; -import { - BigNumber as EthBN, - ContractTransaction, - ethers, - PopulatedTransaction, - Signer, - VoidSigner, - Wallet, -} from "ethers"; -import { Provider, TransactionResponse } from "@ethersproject/providers"; -import { - Erc1155Minter__factory, - MinterERC20__factory, - UserNftMinter__factory, - PaymentToken__factory, -} from "xpnet-web3-contracts"; -import { - BaseWeb3Helper, - EthNftInfo, - MintArgs, - NFT_METHOD_MAP, - NftInfo, - TransactionStatus, - Web3Helper, - Web3Params, -} from ".."; -import axios from "axios"; - -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -export async function baseWeb3HelperFactory( - provider: Provider -): Promise { - const w3 = provider; - - return { - async balance(address: string): Promise { - const bal = await w3.getBalance(address); - - // ethers BigNumber is not compatible with our bignumber - return new BigNumber(bal.toString()); - }, - async deployErc721(owner: Signer): Promise { - const factory = new UserNftMinter__factory(owner); - const contract = await factory.deploy(); - - return contract.address; - }, - async mintNftErc1155(owner: Signer, { contract }) { - const erc1155 = Erc1155Minter__factory.connect(contract!, owner); - const tx = await erc1155.mintNft(await owner.getAddress()); - - return tx; - }, - async mintNft( - owner: Signer, - { contract, uri }: MintArgs - ): Promise { - const erc721 = UserNftMinter__factory.connect(contract!, owner); - - const txm = await erc721.mint(uri, { gasLimit: 1000000 }); - return txm; - }, - }; -} - -export type Web3ERC20Params = Web3Params & { - paymentTokenAddress: string; -}; - -export async function web3ERC20HelperFactory( - params: Web3ERC20Params -): Promise { - const txnUnderpricedPolyWorkaround = - params.nonce == 7 - ? async (utx: PopulatedTransaction) => { - const res = await axios - .get( - "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" - ) - .catch(async () => { - return await axios.get( - "https://gasstation-mainnet.matic.network/v2" - ); - }); - const { result, fast } = res.data; - const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; - - if (trackerGas) { - const sixtyGwei = ethers.utils.parseUnits( - Math.ceil(trackerGas).toString(), - "gwei" - ); - utx.maxFeePerGas = sixtyGwei; - utx.maxPriorityFeePerGas = sixtyGwei; - } - } - : () => Promise.resolve(); - const w3 = params.provider; - const { minter_addr, provider } = params; - const minter = MinterERC20__factory.connect(minter_addr, provider); - - async function notifyValidator( - fromHash: string, - actionId?: string, - type?: string, - toChain?: number, - txFees?: string, - senderAddress?: string, - targetAddress?: string, - nftUri?: string, - tokenId?: string, - contract?: string - ): Promise { - await params.notifier.notifyWeb3( - params.nonce, - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ); - } - - async function getTransaction(hash: string) { - let trx; - let fails = 0; - while (!trx && fails < 7) { - trx = await provider.getTransaction(hash); - await new Promise((resolve) => - setTimeout(() => resolve("wait"), 5000 + fails * 2) - ); - fails++; - } - - return trx as TransactionResponse; - } - - async function extractAction(txr: TransactionResponse): Promise { - const receipt = await txr.wait(); - const log = receipt.logs.find((log) => log.address === minter.address); - if (log === undefined) { - throw Error("Couldn't extract action_id"); - } - - const evdat = minter.interface.parseLog(log); - const action_id: string = evdat.args[0].toString(); - return action_id; - } - - const isApprovedForMinter = async ( - id: NftInfo, - signer: Signer, - _txFees: BigNumber - ) => { - const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - signer - ); - return await NFT_METHOD_MAP[id.native.contractType].approved( - erc as any, - await signer.getAddress(), - minter_addr, - id.native.tokenId, - params.nonce === 0x1d ? {} : undefined - ); - }; - - const approveForMinter = async ( - id: NftInfo, - sender: Signer, - txFees: BigNumber - ) => { - const isApproved = await isApprovedForMinter(id, sender, txFees); - if (isApproved) { - return undefined; - } - const erc = NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - sender - ); - - const receipt = await NFT_METHOD_MAP[id.native.contractType].approve( - erc as any, - minter_addr, - id.native.tokenId, - txnUnderpricedPolyWorkaround, - params.nonce === 0x1d ? {} : undefined - ); - await receipt.wait(); - - const erc20 = PaymentToken__factory.connect( - params.paymentTokenAddress, - sender - ); - const approval = await erc20.approve( - minter_addr, - EthBN.from(txFees.toString()) - ); - - return approval.hash; - }; - - const base = await baseWeb3HelperFactory(params.provider); - - return { - ...base, - XpNft: params.erc721_addr, - XpNft1155: params.erc1155_addr, - approveForMinter, - getProvider: () => provider, - async estimateValidateUnfreezeNft(_to, _id, _mW) { - const gas = await provider.getGasPrice(); - return new BigNumber(gas.mul(150_000).toString()); - }, - getFeeMargin() { - return params.feeMargin; - }, - isApprovedForMinter, - preTransfer: (s, id, _fee) => approveForMinter(id, s, _fee), - extractAction, - async isContractAddress(address) { - const code = await provider.getCode(address); - return code !== "0x"; - }, - getNonce: () => params.nonce, - async preTransferRawTxn(id, address, _value) { - const isApproved = await isApprovedForMinter( - id, - new VoidSigner(address, provider), - _value! - ); - - if (isApproved) { - return undefined; - } - - const erc = UserNftMinter__factory.connect( - id.native.contract, - new VoidSigner(address, provider) - ); - - const approvetxn = await erc.populateTransaction.approve( - minter_addr, - id.native.tokenId - ); - - return approvetxn; - }, - - async extractTxnStatus(txn) { - const status = (await (await provider.getTransaction(txn)).wait()).status; - if (status === undefined) { - return TransactionStatus.PENDING; - } - if (status === 1) { - return TransactionStatus.SUCCESS; - } else if (status === 0) { - return TransactionStatus.FAILURE; - } - return TransactionStatus.UNKNOWN; - }, - async getTokenURI(contract, tokenId) { - if (ethers.utils.isAddress(contract) && tokenId) { - const erc721 = UserNftMinter__factory.connect(contract!, provider); - return await erc721.tokenURI(tokenId).catch(() => ""); - } - return ""; - }, - async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { - const tx = await minter - .connect(signer) - .populateTransaction.withdrawNftBatch( - to, - chainNonce, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - nfts[0].native.contract, - EthBN.from(txFees.toString()) - ); - await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx); - - // await notifyValidator( - // res.hash, - // await extractAction(res), - // "Unfreeze", - // chainNonce.toString(), - // txFees.toString(), - // await signer.getAddress(), - // to, - // res.data - // ); - await notifyValidator(res.hash); - - return res; - }, - async transferNftBatchToForeign( - signer, - chainNonce, - to, - nfts, - mintWith, - txFees - ) { - const tx = await minter - .connect(signer) - .populateTransaction.freezeErc1155Batch( - nfts[0].native.contract, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - chainNonce, - to, - mintWith, - EthBN.from(txFees.toString()) - ); - await txnUnderpricedPolyWorkaround(tx); - - const res = await signer.sendTransaction(tx); - - await notifyValidator(res.hash); - - return res; - }, - async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { - const gasPrice = await w3.getGasPrice(); - const gas = 40_000 + 60_000 * nfts.length; - return new BigNumber(gasPrice.mul(gas).toString()); - }, - async estimateValidateUnfreezeNftBatch(_to, nfts) { - const gasPrice = await w3.getGasPrice(); - const gas = 40_000 + 60_000 * nfts.length; - return new BigNumber(gasPrice.mul(gas).toString()); - }, - createWallet(privateKey: string): Wallet { - return new Wallet(privateKey, provider); - }, - async transferNftToForeign( - sender: Signer, - chain_nonce: number, - to: string, - id: NftInfo, - txFees: BigNumber, - mintWith: string, - gasLimit: ethers.BigNumberish | undefined = undefined - ): Promise { - await approveForMinter(id, sender, txFees); - const method = NFT_METHOD_MAP[id.native.contractType].freeze; - - const tx = await minter - .connect(sender) - .populateTransaction[method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - EthBN.from(txFees.toString()), - { - gasLimit, - } - ); - await txnUnderpricedPolyWorkaround(tx); - - const txr: TransactionResponse | unknown = await sender - .sendTransaction(tx) - .catch((e) => { - if (params.nonce === 33) { - return e; - } else throw e; - }); - let txHash: string; - if (params.nonce === 0x1d) { - //@ts-ignore checked hedera - txHash = txr["transactionId"]; - } - if (params.nonce === 33) { - //@ts-ignore checked abeychain - txHash = txr["returnedHash"] || txr.hash; - } else { - //@ts-ignore checked normal evm - txHash = txr.hash; - } - - await notifyValidator( - //@ts-ignore - txHash, - await extractAction(await getTransaction(txHash)), - "Transfer", - chain_nonce, - txFees.toString(), - await sender.getAddress(), - to, - id.uri, - id.native.tokenId, - id.native.contract - ); - return params.nonce === 33 - ? await provider.getTransaction(txHash) - : (txr as TransactionResponse); - }, - async unfreezeWrappedNft( - sender: Signer, - to: string, - id: NftInfo, - txFees: BigNumber, - nonce - ): Promise { - const txn = await minter - .connect(sender) - .populateTransaction.withdrawNft( - to, - nonce, - id.native.tokenId, - id.native.contract, - EthBN.from(txFees.toString()) - ); - - await txnUnderpricedPolyWorkaround(txn); - const res = await sender.sendTransaction(txn); - - await notifyValidator( - res.hash, - await extractAction(res), - "Unfreeze", - Number(nonce), - txFees.toString(), - await sender.getAddress(), - to, - id.uri, - id.native.tokenId, - id.native.contract - ); - - return res; - }, - async estimateValidateTransferNft( - _to: string, - _nftUri: NftInfo, - _mintWith - ): Promise { - const gas = await provider.getGasPrice(); - - return new BigNumber(gas.mul(150_000).toString()); - }, - validateAddress(adr) { - return Promise.resolve(ethers.utils.isAddress(adr)); - }, - isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract); - }, - }; -} diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index eab1c8f9d..000000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./helpers/chain"; -export * from "./helpers/elrond"; -export * from "./helpers/web3"; -export * from "./helpers/tron"; -export * from "./socket"; -export * from "./emitter"; -export * from "./factory"; -export * from "./consts"; -export * from "./config"; -export { ChainNonce } from "./type-utils"; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map deleted file mode 100644 index a50ed3812..000000000 --- a/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 2fd192d9e..000000000 --- a/dist/index.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -var __createBinding = - (this && this.__createBinding) || - (Object.create - ? function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function () { - return m[k]; - }, - }); - } - : function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); -var __exportStar = - (this && this.__exportStar) || - function (m, exports) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) - __createBinding(exports, m, p); - }; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./helpers/chain"), exports); -__exportStar(require("./helpers/elrond"), exports); -__exportStar(require("./helpers/web3"), exports); -__exportStar(require("./helpers/tron"), exports); -__exportStar(require("./socket"), exports); -__exportStar(require("./emitter"), exports); -__exportStar(require("./factory"), exports); -__exportStar(require("./consts"), exports); -__exportStar(require("./config"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0IsaURBQStCO0FBQy9CLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6QiwyQ0FBeUIifQ== diff --git a/dist/index.ts b/dist/index.ts deleted file mode 100644 index 493bce929..000000000 --- a/dist/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from "./helpers/chain"; -export * from "./helpers/elrond"; -export * from "./helpers/web3"; -export * from "./helpers/tron"; -export * from "./socket"; -export * from "./emitter"; -export * from "./factory"; -export * from "./consts"; -export * from "./config"; -export { ChainNonce } from "./type-utils"; diff --git a/dist/notifier/index.d.ts b/dist/notifier/index.d.ts deleted file mode 100644 index b1e7086fb..000000000 --- a/dist/notifier/index.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -export declare type EvNotifier = ReturnType; -export declare function evNotifier(url: string): { - notifyWeb3( - fromChain: number, - fromHash: string, - actionId?: string | undefined, - type?: string | undefined, - toChain?: number | undefined, - txFees?: string | undefined, - senderAddress?: string | undefined, - targetAddress?: string | undefined, - nftUri?: string | undefined, - tokenId?: string | undefined, - contract?: string | undefined - ): Promise; - notifyTron(txHash: string): Promise; - notifyElrond( - txHash: string, - sender: string, - uris: string[], - action_id: string | undefined - ): Promise; - notifyTezos(txHash: string): Promise; - notifyAlgorand(txHash: string): Promise; - notifySecret(txHash: string, vk: string): Promise; - notifySolana(txHash: string): Promise; - notifyNear(txHash: string): Promise; - notifyDfinity(actionId: string): Promise; - notifyTon(txHash: string): Promise; - notifyAptos(txHash: string): Promise; - notifyEVM(nonce: number, address: string): Promise; -}; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/notifier/index.d.ts.map b/dist/notifier/index.d.ts.map deleted file mode 100644 index 8ab65439c..000000000 --- a/dist/notifier/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,oBAAY,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM;uBAyBO,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAOjD"} \ No newline at end of file diff --git a/dist/notifier/index.js b/dist/notifier/index.js deleted file mode 100644 index 78914d8b9..000000000 --- a/dist/notifier/index.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.evNotifier = void 0; -const axios_1 = __importDefault(require("axios")); -function evNotifier(url) { - const api = axios_1.default.create({ - baseURL: url, - }); - return { - async notifyWeb3( - fromChain, - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ) { - await api.post("/tx/web3", { - chain_nonce: fromChain, - tx_hash: fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract, - }); - }, - async notifyTron(txHash) { - await api.post("/tx/tron", { - tx_hash: txHash, - }); - }, - async notifyElrond(txHash, sender, uris, action_id) { - await api.post("/tx/elrond", { - tx_hash: txHash, - sender, - uris, - action_id, - }); - }, - async notifyTezos(txHash) { - await api.post("/tx/tezos", { - tx_hash: txHash, - }); - }, - async notifyAlgorand(txHash) { - await api.post("/tx/algorand", { - tx_hash: txHash, - }); - }, - async notifySecret(txHash, vk) { - await api.post("/tx/scrt", { tx_hash: txHash, vk: vk }); - }, - async notifySolana(txHash) { - await api.post("/tx/solana", { tx_hash: txHash }); - }, - async notifyNear(txHash) { - await api.post("/tx/near", { tx_hash: txHash }); - }, - async notifyDfinity(actionId) { - await api.post("/tx/dfinity", { action_id: actionId }); - }, - async notifyTon(txHash) { - await api.post("/tx/ton", { tx_hash: txHash }); - }, - async notifyAptos(txHash) { - await api.post("/tx/aptos", { tx_hash: txHash }); - }, - async notifyEVM(nonce, address) { - await api.post("/whitelist", { - contract: address, - chain_nonce: nonce, - }); - }, - }; -} -exports.evNotifier = evNotifier; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSTFCLFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtZQUVqQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sYUFBYTtnQkFDYixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBYyxFQUNkLE1BQWMsRUFDZCxJQUFjLEVBQ2QsU0FBNkI7WUFFN0IsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsTUFBTTtnQkFDTixJQUFJO2dCQUNKLFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1lBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQWM7WUFDakMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLE1BQU07YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLEVBQVU7WUFDM0MsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYztZQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7WUFDbEMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQWM7WUFDNUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlO1lBQzVDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzNCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixXQUFXLEVBQUUsS0FBSzthQUNuQixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUF0RkQsZ0NBc0ZDIn0= diff --git a/dist/notifier/index.ts b/dist/notifier/index.ts deleted file mode 100644 index 2d15f528b..000000000 --- a/dist/notifier/index.ts +++ /dev/null @@ -1,88 +0,0 @@ -import axios from "axios"; - -export type EvNotifier = ReturnType; - -export function evNotifier(url: string) { - const api = axios.create({ - baseURL: url, - }); - - return { - async notifyWeb3( - fromChain: number, - fromHash: string, - actionId?: string, - type?: string, - toChain?: number, - txFees?: string, - senderAddress?: string, - targetAddress?: string, - nftUri?: string, - tokenId?: string, - contract?: string - ) { - await api.post("/tx/web3", { - chain_nonce: fromChain, - tx_hash: fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract, - }); - }, - async notifyTron(txHash: string) { - await api.post("/tx/tron", { - tx_hash: txHash, - }); - }, - async notifyElrond( - txHash: string, - sender: string, - uris: string[], - action_id: string | undefined - ) { - await api.post("/tx/elrond", { - tx_hash: txHash, - sender, - uris, - action_id, - }); - }, - async notifyTezos(txHash: string) { - await api.post("/tx/tezos", { - tx_hash: txHash, - }); - }, - async notifyAlgorand(txHash: string) { - await api.post("/tx/algorand", { - tx_hash: txHash, - }); - }, - async notifySecret(txHash: string, vk: string) { - await api.post("/tx/scrt", { tx_hash: txHash, vk: vk }); - }, - async notifySolana(txHash: string) { - await api.post("/tx/solana", { tx_hash: txHash }); - }, - async notifyNear(txHash: string) { - await api.post("/tx/near", { tx_hash: txHash }); - }, - async notifyDfinity(actionId: string) { - await api.post("/tx/dfinity", { action_id: actionId }); - }, - async notifyTon(txHash: string) { - await api.post("/tx/ton", { tx_hash: txHash }); - }, - async notifyAptos(txHash: string) { - await api.post("/tx/aptos", { tx_hash: txHash }); - }, - async notifyEVM(nonce: number, address: string) { - await api.post("/whitelist", { contract: address, chain_nonce: nonce }); - }, - }; -} diff --git a/dist/scripts/deploy_tron.d.ts b/dist/scripts/deploy_tron.d.ts deleted file mode 100644 index 32f4d23b0..000000000 --- a/dist/scripts/deploy_tron.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=deploy_tron.d.ts.map diff --git a/dist/scripts/deploy_tron.d.ts.map b/dist/scripts/deploy_tron.d.ts.map deleted file mode 100644 index d44822911..000000000 --- a/dist/scripts/deploy_tron.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deploy_tron.d.ts","sourceRoot":"","sources":["../../src/scripts/deploy_tron.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/scripts/deploy_tron.js b/dist/scripts/deploy_tron.js deleted file mode 100644 index 421e9b895..000000000 --- a/dist/scripts/deploy_tron.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -const tron_1 = require("../helpers/tron"); -//@ts-expect-error no typings, cope -const tronweb_1 = __importDefault(require("tronweb")); -const dotenv_1 = require("dotenv"); -(0, dotenv_1.config)(); -(async () => { - // Testnet - // const api = "https://api.shasta.trongrid.io"; - // const signer = process.env.TRON_SK!; - // const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; - // const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; - // const frostGroupKey = process.env.FROST_GROUP_KEY!; - // Mainnet - const api = "https://api.trongrid.io"; - const signer = process.env.TRON_SK; - const xpnftWrappedUri = "https://wnfts.xp.network/w/"; - const xpnft1155WrappedUri = "https://wnfts.xp.network/w/{id}"; - const frostGroupKey = process.env.FROST_GROUP_KEY; - const prov = new tronweb_1.default({ fullHost: api }); - const tron = await (0, tron_1.baseTronHelperFactory)(prov); - const contracts = await tron.deployMinter( - signer, - frostGroupKey, - xpnftWrappedUri, - xpnft1155WrappedUri - ); - console.log(contracts); -})().catch((e) => console.error(e)); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3Ryb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9kZXBsb3lfdHJvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBDQUF3RDtBQUN4RCxtQ0FBbUM7QUFDbkMsc0RBQThCO0FBQzlCLG1DQUFnQztBQUNoQyxJQUFBLGVBQU0sR0FBRSxDQUFDO0FBRVQsQ0FBQyxLQUFLLElBQUksRUFBRTtJQUNWLFVBQVU7SUFDVixnREFBZ0Q7SUFDaEQsdUNBQXVDO0lBQ3ZDLHFFQUFxRTtJQUNyRSw2RUFBNkU7SUFDN0Usc0RBQXNEO0lBRXRELFVBQVU7SUFDVixNQUFNLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQztJQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQVEsQ0FBQztJQUNwQyxNQUFNLGVBQWUsR0FBRyw2QkFBNkIsQ0FBQztJQUN0RCxNQUFNLG1CQUFtQixHQUFHLGlDQUFpQyxDQUFDO0lBQzlELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZ0IsQ0FBQztJQUVuRCxNQUFNLElBQUksR0FBRyxJQUFJLGlCQUFPLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsNEJBQXFCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFL0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUN2QyxNQUFNLEVBQ04sYUFBYSxFQUNiLGVBQWUsRUFDZixtQkFBbUIsQ0FDcEIsQ0FBQztJQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyJ9 diff --git a/dist/scripts/deploy_tron.ts b/dist/scripts/deploy_tron.ts deleted file mode 100644 index 8169bb09a..000000000 --- a/dist/scripts/deploy_tron.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { baseTronHelperFactory } from "../helpers/tron"; -//@ts-expect-error no typings, cope -import TronWeb from "tronweb"; -import { config } from "dotenv"; -config(); - -(async () => { - // Testnet - // const api = "https://api.shasta.trongrid.io"; - // const signer = process.env.TRON_SK!; - // const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; - // const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; - // const frostGroupKey = process.env.FROST_GROUP_KEY!; - - // Mainnet - const api = "https://api.trongrid.io"; - const signer = process.env.TRON_SK!; - const xpnftWrappedUri = "https://wnfts.xp.network/w/"; - const xpnft1155WrappedUri = "https://wnfts.xp.network/w/{id}"; - const frostGroupKey = process.env.FROST_GROUP_KEY!; - - const prov = new TronWeb({ fullHost: api }); - const tron = await baseTronHelperFactory(prov); - - const contracts = await tron.deployMinter( - signer, - frostGroupKey, - xpnftWrappedUri, - xpnft1155WrappedUri - ); - - console.log(contracts); -})().catch((e) => console.error(e)); diff --git a/dist/socket.d.ts b/dist/socket.d.ts deleted file mode 100644 index c6b1ba0ec..000000000 --- a/dist/socket.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { ManagerOptions, SocketOptions } from "socket.io-client"; -import { ClaimNftInfo } from "./helpers/algorand"; -/** - * Tracker for cross chain transaction - */ -export declare type TxnSocketHelper = { - /** - * - * @param chain Nonce of the target chain - * @param action_id Identifier for tracking a cross chain transaction - * @returns transaction hash on the foreign chain - */ - waitTxHash(chain: number, action_id: string): Promise; -}; -export declare type AlgorandSocketHelper = { - waitAlgorandNft( - sourceChain: number, - receiver: string, - action_id: string - ): Promise; - claimNfts(receiver: string): Promise; - cleanNfts(owner: string): Promise; -}; -declare type DbClaimInfo = { - receiver: string; - app_id: string; - nft_id: string; - action_id: string; - inserted_at: Date; -}; -/** - * Create a [[SocketHelper]] - * - * @param uri URI of the Migration-Validator socket api - * @param options socket.io options - */ -export declare function socketHelper( - uri: string, - options?: Partial -): TxnSocketHelper & AlgorandSocketHelper; -export {}; -//# sourceMappingURL=socket.d.ts.map diff --git a/dist/socket.d.ts.map b/dist/socket.d.ts.map deleted file mode 100644 index e097b3e0a..000000000 --- a/dist/socket.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BlD;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/D,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC;AAsFF,aAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,cAAc,CAAC,GAChD,eAAe,GAAG,oBAAoB,CA0DxC"} \ No newline at end of file diff --git a/dist/socket.js b/dist/socket.js deleted file mode 100644 index 9a5fe10d1..000000000 --- a/dist/socket.js +++ /dev/null @@ -1,115 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.socketHelper = void 0; -const axios_1 = __importDefault(require("axios")); -const socket_io_client_1 = require("socket.io-client"); -function pairAction(sourceChain, action_id) { - const numId = parseInt(action_id); - return numId >= sourceChain - ? numId * numId + sourceChain + numId - : numId + sourceChain * sourceChain; -} -function socketResBuf() { - const inner = {}; - const requireChain = (chain_id) => { - if (inner[chain_id] === undefined) { - inner[chain_id] = {}; - } - }; - return { - getResolver(chain_id, action_id) { - requireChain(chain_id); - return inner[chain_id][action_id]?.resolve; - }, - setResolver(chain_id, action_id, resolver) { - requireChain(chain_id); - inner[chain_id][action_id] = { resolve: resolver }; - }, - getEventRes(chain_id, action_id) { - requireChain(chain_id); - return inner[chain_id][action_id]?.event_res; - }, - setEventRes(chain_id, action_id, res) { - requireChain(chain_id); - inner[chain_id][action_id] = { event_res: res }; - }, - unsetAction(chain_id, action_id) { - requireChain(chain_id); - inner[chain_id][action_id] = undefined; - }, - }; -} -function add_event(buf, chain, id, data) { - const resolve = buf.getResolver(chain, id); - if (resolve === undefined) { - buf.setEventRes(chain, id, data); - return; - } - resolve(data); -} -async function waitSocketData(buf, chain, action_id) { - const data = buf.getEventRes(chain, action_id); - if (data !== undefined) { - buf.unsetAction(chain, action_id); - return data; - } - const dataP = new Promise((r) => { - buf.setResolver(chain, action_id, r); - }); - return await dataP; -} -/** - * Create a [[SocketHelper]] - * - * @param uri URI of the Migration-Validator socket api - * @param options socket.io options - */ -function socketHelper(uri, options) { - const socket = (0, socket_io_client_1.io)(uri, options); - const txbuf = socketResBuf(); - const algoBuf = socketResBuf(); - const dbApi = axios_1.default.create({ - baseURL: uri, - }); - socket.on("tx_executed_event", (chain, action_id, hash) => { - add_event(txbuf, chain, action_id, hash); - }); - socket.on("algorand_minted_event", (_, action_id, app_id, nft_id) => - add_event(algoBuf, 15, action_id, { - appId: app_id, - nftId: nft_id, - }) - ); - return { - async waitTxHash(chain, action_id) { - return await waitSocketData(txbuf, chain, action_id); - }, - async waitAlgorandNft(sourceChain, receiver, action_id) { - // Validator sends a an action paired with chain id - // this is implementation dependent on validator - const paired = pairAction(sourceChain, action_id).toString(); - const dbData = await dbApi.get(`/algorand_event/${receiver}/${paired}`); - if (dbData.data.app_id) { - return { - appId: parseInt(dbData.data.app_id), - nftId: parseInt(dbData.data.nft_id), - }; - } - return await waitSocketData(algoBuf, 15, paired); - }, - async claimNfts(receiver) { - const dbData = await dbApi.get(`/algorand_event/${receiver}`); - return dbData.data.result; - }, - async cleanNfts(owner) { - await dbApi.delete(`/algorand_event/${owner}`); - }, - }; -} -exports.socketHelper = socketHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsdURBQXFFO0FBc0RyRSxTQUFTLFVBQVUsQ0FBQyxXQUFtQixFQUFFLFNBQWlCO0lBQ3hELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxPQUFPLEtBQUssSUFBSSxXQUFXO1FBQ3pCLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLFdBQVcsR0FBRyxLQUFLO1FBQ3JDLENBQUMsQ0FBQyxLQUFLLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxZQUFZO0lBQ25CLE1BQU0sS0FBSyxHQUF5QixFQUFFLENBQUM7SUFFdkMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsV0FBVyxDQUNULFFBQWdCLEVBQ2hCLFNBQWlCO1lBRWpCLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUM7UUFDN0MsQ0FBQztRQUNELFdBQVcsQ0FDVCxRQUFnQixFQUNoQixTQUFpQixFQUNqQixRQUEyQjtZQUUzQixZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFDRCxXQUFXLENBQUMsUUFBZ0IsRUFBRSxTQUFpQjtZQUM3QyxZQUFZ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 diff --git a/dist/socket.ts b/dist/socket.ts deleted file mode 100644 index c5f56deb0..000000000 --- a/dist/socket.ts +++ /dev/null @@ -1,215 +0,0 @@ -import axios from "axios"; -import { io, ManagerOptions, SocketOptions } from "socket.io-client"; -import { ClaimNftInfo } from "./helpers/algorand"; - -type ChainAwaiter = { - [action_id: string]: - | { - resolve?: (data: T) => void; - event_res?: T; - } - | undefined; -}; - -type SocketResInnerBuf = { - [chain: number]: ChainAwaiter; -}; - -type SocketResBuf = { - getResolver( - chain_id: number, - action_id: string - ): ((data: T) => void) | undefined; - setResolver( - chain_id: number, - action_id: string, - resolver: (data: T) => void - ): void; - getEventRes(chain_id: number, action_id: string): T | undefined; - setEventRes(chain_id: number, action_id: string, res: T): void; - unsetAction(chain_id: number, action_id: string): void; -}; - -/** - * Tracker for cross chain transaction - */ -export type TxnSocketHelper = { - /** - * - * @param chain Nonce of the target chain - * @param action_id Identifier for tracking a cross chain transaction - * @returns transaction hash on the foreign chain - */ - waitTxHash(chain: number, action_id: string): Promise; -}; - -export type AlgorandSocketHelper = { - waitAlgorandNft( - sourceChain: number, - receiver: string, - action_id: string - ): Promise; - claimNfts(receiver: string): Promise; - cleanNfts(owner: string): Promise; -}; - -function pairAction(sourceChain: number, action_id: string): number { - const numId = parseInt(action_id); - return numId >= sourceChain - ? numId * numId + sourceChain + numId - : numId + sourceChain * sourceChain; -} - -function socketResBuf(): SocketResBuf { - const inner: SocketResInnerBuf = {}; - - const requireChain = (chain_id: number) => { - if (inner[chain_id] === undefined) { - inner[chain_id] = {}; - } - }; - - return { - getResolver( - chain_id: number, - action_id: string - ): ((data: T) => void) | undefined { - requireChain(chain_id); - - return inner[chain_id][action_id]?.resolve; - }, - setResolver( - chain_id: number, - action_id: string, - resolver: (data: T) => void - ): void { - requireChain(chain_id); - - inner[chain_id][action_id] = { resolve: resolver }; - }, - getEventRes(chain_id: number, action_id: string): T | undefined { - requireChain(chain_id); - - return inner[chain_id][action_id]?.event_res; - }, - setEventRes(chain_id: number, action_id: string, res: T): void { - requireChain(chain_id); - - inner[chain_id][action_id] = { event_res: res }; - }, - unsetAction(chain_id: number, action_id: string): void { - requireChain(chain_id); - - inner[chain_id][action_id] = undefined; - }, - }; -} - -function add_event( - buf: SocketResBuf, - chain: number, - id: string, - data: T -) { - const resolve = buf.getResolver(chain, id); - if (resolve === undefined) { - buf.setEventRes(chain, id, data); - return; - } - resolve(data); -} - -async function waitSocketData( - buf: SocketResBuf, - chain: number, - action_id: string -): Promise { - const data = buf.getEventRes(chain, action_id); - if (data !== undefined) { - buf.unsetAction(chain, action_id); - return data; - } - - const dataP: Promise = new Promise((r) => { - buf.setResolver(chain, action_id, r); - }); - - return await dataP; -} - -type DbClaimInfo = { - receiver: string; - app_id: string; - nft_id: string; - action_id: string; - inserted_at: Date; -}; - -/** - * Create a [[SocketHelper]] - * - * @param uri URI of the Migration-Validator socket api - * @param options socket.io options - */ -export function socketHelper( - uri: string, - options?: Partial -): TxnSocketHelper & AlgorandSocketHelper { - const socket = io(uri, options); - const txbuf: SocketResBuf = socketResBuf(); - const algoBuf: SocketResBuf = socketResBuf(); - const dbApi = axios.create({ - baseURL: uri, - }); - - socket.on( - "tx_executed_event", - (chain: number, action_id: string, hash: string) => { - add_event(txbuf, chain, action_id, hash); - } - ); - - socket.on( - "algorand_minted_event", - (_: number, action_id: string, app_id: number, nft_id: number) => - add_event(algoBuf, 15, action_id, { - appId: app_id, - nftId: nft_id, - }) - ); - - return { - async waitTxHash(chain: number, action_id: string): Promise { - return await waitSocketData(txbuf, chain, action_id); - }, - async waitAlgorandNft( - sourceChain: number, - receiver: string, - action_id: string - ): Promise { - // Validator sends a an action paired with chain id - // this is implementation dependent on validator - const paired = pairAction(sourceChain, action_id).toString(); - const dbData = await dbApi.get>( - `/algorand_event/${receiver}/${paired}` - ); - if (dbData.data.app_id) { - return { - appId: parseInt(dbData.data.app_id!), - nftId: parseInt(dbData.data.nft_id!), - }; - } - - return await waitSocketData(algoBuf, 15, paired); - }, - async claimNfts(receiver: string): Promise { - const dbData = await dbApi.get<{ result: DbClaimInfo[] }>( - `/algorand_event/${receiver}` - ); - return dbData.data.result; - }, - async cleanNfts(owner: string): Promise { - await dbApi.delete(`/algorand_event/${owner}`); - }, - }; -} diff --git a/dist/type-utils.d.ts b/dist/type-utils.d.ts deleted file mode 100644 index be8931598..000000000 --- a/dist/type-utils.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { MetaMap, TransferNftForeign } from "."; -declare type TransferNftChain = TransferNftForeign< - Signer, - RawNft, - Resp ->; -export declare type ChainNonce = keyof MetaMap; -export declare type InferChainParam = MetaMap[K][1]; -export declare type InferChainH = MetaMap[K][0]; -export declare type InferSigner = K extends TransferNftChain< - infer S, - unknown, - unknown -> - ? S - : never; -export declare type InferNativeNft = K extends TransferNftChain< - any, - infer RawNft, - any -> - ? RawNft - : never; -export declare type ParamMap = { - set(k: T, v: InferChainParam | undefined): void; - get(k: T): InferChainParam | undefined; -}; -export declare type HelperMap = Map< - K, - InferChainH | undefined ->; -export declare type Mutable = { - -readonly [Key in keyof Type]: Type[Key]; -}; -export {}; -//# sourceMappingURL=type-utils.d.ts.map diff --git a/dist/type-utils.d.ts.map b/dist/type-utils.d.ts.map deleted file mode 100644 index 5a3f73e6d..000000000 --- a/dist/type-utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAEhD,aAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,kBAAkB,CAC9D,MAAM,EACN,MAAM,EACN,IAAI,CACL,CAAC;AAEF,oBAAY,UAAU,GAAG,MAAM,OAAO,CAAC;AAEvC,oBAAY,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,oBAAY,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,oBAAY,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACrD,MAAM,CAAC,EACP,OAAO,EACP,OAAO,CACR,GACG,CAAC,GACD,KAAK,CAAC;AAEV,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACxD,GAAG,EACH,MAAM,MAAM,EACZ,GAAG,CACJ,GACG,MAAM,GACN,KAAK,CAAC;AAEV,oBAAY,QAAQ,GAAG;IACrB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACzE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACjE,CAAC;AAEF,oBAAY,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,GAAG,CAC/C,CAAC,EACD,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAC3B,CAAC;AAEF,oBAAY,OAAO,CAAC,IAAI,IAAI;IAC1B,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;CACzC,CAAC"} \ No newline at end of file diff --git a/dist/type-utils.js b/dist/type-utils.js deleted file mode 100644 index 0a41d923f..000000000 --- a/dist/type-utils.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ== diff --git a/dist/type-utils.ts b/dist/type-utils.ts deleted file mode 100644 index df8dad30f..000000000 --- a/dist/type-utils.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { MetaMap, TransferNftForeign } from "."; - -type TransferNftChain = TransferNftForeign< - Signer, - RawNft, - Resp ->; - -export type ChainNonce = keyof MetaMap; - -export type InferChainParam = MetaMap[K][1]; -export type InferChainH = MetaMap[K][0]; -export type InferSigner = K extends TransferNftChain< - infer S, - unknown, - unknown -> - ? S - : never; - -export type InferNativeNft = K extends TransferNftChain< - any, - infer RawNft, - any -> - ? RawNft - : never; - -export type ParamMap = { - set(k: T, v: InferChainParam | undefined): void; - get(k: T): InferChainParam | undefined; -}; - -export type HelperMap = Map< - K, - InferChainH | undefined ->; - -export type Mutable = { - -readonly [Key in keyof Type]: Type[Key]; -}; From d6de1b2100dc35774350f388c493da175ad91222 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 20 Feb 2023 12:28:50 +0200 Subject: [PATCH 903/956] Arbitrum nova explorer url --- src/consts.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 1f9c8bdfa..ba1887a78 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -710,7 +710,7 @@ CHAIN_INFO.set(Chain.OKC, { tnChainId: 65, }); CHAIN_INFO.set(Chain.ARBITRUM, { - blockExplorerUrl: "https://explorer.arbitrum.io/tx/", + blockExplorerUrl: "https://nova.arbiscan.io/tx/", constructor: web3HelperFactory, currency: SupportedCurrency.ETH, currencySymbol: SupportedCurrencyName.ETH, @@ -719,7 +719,7 @@ CHAIN_INFO.set(Chain.ARBITRUM, { nonce: Chain.ARBITRUM, type: ChainType.EVM, chainId: 42161, - blockExplorerUrlAddr: "https://explorer.arbitrum.io/address/", + blockExplorerUrlAddr: "https://nova.arbiscan.io/address/", tnBlockExplorerUrl: "https://goerli-rollup-explorer.arbitrum.io/tx/", tnBlockExplorerUrlAddr: "https://goerli-rollup-explorer.arbitrum.io/address/", tnChainId: 421613, From 7a1c6de733bc15e9751b6bf11d212487868fc0b9 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 20 Feb 2023 12:39:31 +0200 Subject: [PATCH 904/956] arbitrum nova chainID --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index ba1887a78..39158ee5a 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -718,7 +718,7 @@ CHAIN_INFO.set(Chain.ARBITRUM, { name: "Arbitrum", nonce: Chain.ARBITRUM, type: ChainType.EVM, - chainId: 42161, + chainId: 42170, blockExplorerUrlAddr: "https://nova.arbiscan.io/address/", tnBlockExplorerUrl: "https://goerli-rollup-explorer.arbitrum.io/tx/", tnBlockExplorerUrlAddr: "https://goerli-rollup-explorer.arbitrum.io/address/", From f5bf62e1edf343d5ef1f9068bfc93b493eb3d88f Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Mon, 20 Feb 2023 15:18:51 +0200 Subject: [PATCH 905/956] update staging solana bridge --- src/factory/factories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 43c373948..b1511d9c2 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -450,8 +450,8 @@ export namespace ChainFactoryConfigs { }, solanaParams: { xpnftAddr: "", - bridgeContractAddr: "CHgXhvxk3dVyMh8kTVjvPboBfgiCH1ajkdKyWMpo6dn6", - endpoint: TestNetRpcUri.SOLANA, + bridgeContractAddr: "kVvEBTB1h9GWEC7GcuDNTEmk6uxbCM11GvSmwvuCAwx", + endpoint: MainNetRpcUri.SOLANA, notifier, feeMargin, }, From b4d52413fe2d2f051ecb3bb2828cbd11d336c559 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 21 Feb 2023 12:34:07 +0200 Subject: [PATCH 906/956] update solana rpc mainnet --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 39158ee5a..eb515f28f 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -103,7 +103,7 @@ export enum MainNetRpcUri { OKC = "https://exchainrpc.okex.org/", ARBITRUM = "https://nova.arbitrum.io/rpc", BITGERT = "https://dedicated.brisescan.com", - SOLANA = "https://api.mainnet-beta.solana.com", + SOLANA = "https://misty-rough-moon.solana-devnet.discover.quiknode.pro/af581f92338f671c86cf6fad96a9aa3451448ffd/", // TODO: Algorand } From a2a0db15a1089f9aaf6ba8b8223b353dae6097f3 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 21 Feb 2023 13:50:45 +0200 Subject: [PATCH 907/956] update yarn lock --- yarn.lock | 1205 ++++++++++++++++++++++++++--------------------------- 1 file changed, 588 insertions(+), 617 deletions(-) diff --git a/yarn.lock b/yarn.lock index e401af51e..c7f416efa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,17 +37,10 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2": - version "7.20.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" - integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/runtime@^7.18.3": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" - integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.18.3": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== dependencies: regenerator-runtime "^0.13.11" @@ -731,17 +724,17 @@ "@ethersproject/strings" "^5.7.0" "@grpc/grpc-js@^1.5.3": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.0.tgz#ebfbeff2b76e2991f2831e46cad27fa573396555" - integrity sha512-ySMTXQuMvvswoobvN+0LsaPf7ITO2JVfJmHxQKI4cGehNrrUms+n81BlHEX7Hl/LExji6XE3fnI9U04GSkRruA== + version "1.8.9" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.9.tgz#84e9167dc80b0c3a98608e14b839458bf0df684d" + integrity sha512-xzsl2HamhovnZddS/2pMF4Q+FgwINaBvxoFGQ+G54Lo7Xsge36VvfDO/TDkL7FofmrRK/X5weRvwlJh7rKwN4w== dependencies: "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" "@grpc/proto-loader@^0.7.0": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.4.tgz#4946a84fbf47c3ddd4e6a97acb79d69a9f47ebf2" - integrity sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w== + version "0.7.5" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.5.tgz#ee9e7488fa585dc6b0f7fe88cd39723a3e64c906" + integrity sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" @@ -762,14 +755,14 @@ "@hapi/hoek" "^9.0.0" "@hashgraph/cryptography@^1.1.0-beta.5": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@hashgraph/cryptography/-/cryptography-1.4.1.tgz#7dcba4bc867037d2f192c419ceb48e3725e09e95" - integrity sha512-Qx7fl58Upyf1C4Xdqo2DdMaELYAni3RpAr6fVux3tpGUwp0Wo+zaWseW7k2Klg+FPlmjOjL8XBCXkOr1AbHYWQ== + version "1.4.3" + resolved "https://registry.yarnpkg.com/@hashgraph/cryptography/-/cryptography-1.4.3.tgz#691d539e83e2a1d5d603701f6fd3b6f62ef21a5c" + integrity sha512-txU2SVz8mBJ5aHqkrIpmaerJSu0F/S9T/0eXpYAIC2USy/8oTisp54gKVDTETFdnCrq0tNgCJmWt2N8QHMMbcw== dependencies: - bignumber.js "^9.0.2" + bignumber.js "^9.1.1" crypto-js "^4.1.1" elliptic "^6.5.4" - js-base64 "^3.7.2" + js-base64 "^3.7.4" tweetnacl "^1.0.3" utf8 "^3.0.0" @@ -1093,12 +1086,12 @@ rxjs "6" semver "^7.3.5" -"@ledgerhq/devices@^7.0.5": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-7.0.5.tgz#2b3f69b84d4bccb2c4b1d34e534444da862f4880" - integrity sha512-2o2zD2Yv1Hgd3+R2aLCvlyT7NxBz2nltawTCPSXaf3+8MDIyZbiJlXi43hLEISRFBG3u3bYwAQuiOisimN9C6Q== +"@ledgerhq/devices@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.0.tgz#8fe9f9e442e28b7a20bcdf4c2eed06ce7b8f76ae" + integrity sha512-gSnRT0KPca+LIpaC6D/WZQjOAlSI5uCvK1dmxXtKhODLAj735rX5Z3SnGnLUavRCHNbUi44FzgvloF5BKTkh7A== dependencies: - "@ledgerhq/errors" "^6.12.1" + "@ledgerhq/errors" "^6.12.3" "@ledgerhq/logs" "^6.10.1" rxjs "6" semver "^7.3.5" @@ -1108,10 +1101,10 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== -"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.12.1": - version "6.12.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.12.1.tgz#99ad10bd528942bdfde0ef3d4d0dce658f6f4405" - integrity sha512-2qeUSUCpQbMhV9eLJDLI8wycFwTcWszP8g3cJycBt9Jf1VczC5MRERwAQv5AYhPa4rcy+jLKBOVZYxc35r5l7g== +"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.12.3": + version "6.12.3" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.12.3.tgz#a610caae1eeeb7cb038525e5212fe03217dda683" + integrity sha512-djiMSgB/7hnK3aLR/c5ZMMivxjcI7o2+y3VKcsZZpydPoVf9+FXqeJPRfOwmJ0JxbQ//LinUfWpIfHew8LkaVw== "@ledgerhq/hw-transport-node-hid-noevents@^5.51.1": version "5.51.1" @@ -1170,13 +1163,13 @@ "@ledgerhq/logs" "^5.48.0" "@ledgerhq/hw-transport-webhid@^6.11.2": - version "6.27.8" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.8.tgz#9af7b980d93b69ec166a4c8eb92df09d137d1059" - integrity sha512-UmpZEnVsojmJMKS+IdkzSBvs3d3uz2Bj7R+zvDXNHjWX89gcqyGOyATkYP5mm/EWE/7YLjgvF49WzCIqbEcTdQ== + version "6.27.12" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.12.tgz#dd5073c5da05c6c3234a76a6e44ed576fe198757" + integrity sha512-Yhy5dOKeJIU24Dh9xQjrStc++NviPjRSGHsbc1PeyEjgPEGc8q8wtvm7WFBDzmymBwMhIA5eoNj3fGLk/voXQQ== dependencies: - "@ledgerhq/devices" "^7.0.5" - "@ledgerhq/errors" "^6.12.1" - "@ledgerhq/hw-transport" "^6.27.8" + "@ledgerhq/devices" "^8.0.0" + "@ledgerhq/errors" "^6.12.3" + "@ledgerhq/hw-transport" "^6.28.1" "@ledgerhq/logs" "^6.10.1" "@ledgerhq/hw-transport-webusb@5.48.0": @@ -1208,13 +1201,13 @@ "@ledgerhq/errors" "^5.50.0" events "^3.3.0" -"@ledgerhq/hw-transport@^6.11.2", "@ledgerhq/hw-transport@^6.27.8": - version "6.27.8" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.8.tgz#57ece7e2b726216df698767de6828478fbe461e1" - integrity sha512-WSUgF1W3tAikSnAfeNAT2e2dgTdEQd5Vi/095C2mR5Fr0/POCSl9X4T9rlBhK5NSVD+nGXI0rN2ISj08zai8HQ== +"@ledgerhq/hw-transport@^6.11.2", "@ledgerhq/hw-transport@^6.28.1": + version "6.28.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.28.1.tgz#cb22fe9bc23af4682c30f2aac7fe6f7ab13ed65a" + integrity sha512-RaZe+abn0zBIz82cE9tp7Y7aZkHWWbEaE2yJpfxT8AhFz3fx+BU0kLYzuRN9fmA7vKueNJ1MTVUCY+Ex9/CHSQ== dependencies: - "@ledgerhq/devices" "^7.0.5" - "@ledgerhq/errors" "^6.12.1" + "@ledgerhq/devices" "^8.0.0" + "@ledgerhq/errors" "^6.12.3" events "^3.3.0" "@ledgerhq/logs@^5.30.0", "@ledgerhq/logs@^5.48.0", "@ledgerhq/logs@^5.50.0": @@ -1308,9 +1301,9 @@ node-fetch "^2.6.7" "@metaplex-foundation/mpl-auction-house@^2.3.0": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-auction-house/-/mpl-auction-house-2.3.1.tgz#9c3713c6f0812418952db1c0ad12b677aacc6f48" - integrity sha512-OqMKwjm0+afXPc4DuONP1YBrmzwjlhhX2qUc09jZm7n/uIb1Eb9XgupCAVK7Kc9WvaneJ3dEZgn9HrcNtUPsMg== + version "2.3.2" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-auction-house/-/mpl-auction-house-2.3.2.tgz#0cb1becb862b1c97d4448b12177108fa869c4461" + integrity sha512-Msj2hYuAi25hj0kmLIlBG2TafsvIDlEa6GlOcWr91z+wCn0rnrCy50p0QkbGY+qmhe7LQYWtwtA7rsqMj9IDpA== dependencies: "@metaplex-foundation/beet" "^0.6.1" "@metaplex-foundation/beet-solana" "^0.3.1" @@ -1320,14 +1313,14 @@ bn.js "^5.2.0" "@metaplex-foundation/mpl-candy-guard@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-candy-guard/-/mpl-candy-guard-0.3.0.tgz#e049abf8031665759ec0f9e965dedf93962b90fe" - integrity sha512-YJOZPtAirPqBMd48GOUQ+lav71C70QrA9OQnXsuAbbdl7jKlvbL72C9CnSNBTfdW2I+zPOmDL5H3CQddvgIWlA== + version "0.3.2" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-candy-guard/-/mpl-candy-guard-0.3.2.tgz#426e89793676b42e9bbb5e523303fba36ccd5281" + integrity sha512-QWXzPDz+6OR3957LtfW6/rcGvFWS/0AeHJa/BUO2VEVQxN769dupsKGtrsS8o5RzXCeap3wrCtDSNxN3dnWu4Q== dependencies: "@metaplex-foundation/beet" "^0.4.0" "@metaplex-foundation/beet-solana" "^0.3.0" "@metaplex-foundation/cusper" "^0.0.2" - "@solana/web3.js" "^1.56.2" + "@solana/web3.js" "^1.66.2" bn.js "^5.2.0" "@metaplex-foundation/mpl-candy-machine-core@^0.1.2": @@ -1361,9 +1354,9 @@ bs58 "^4.0.1" "@metaplex-foundation/mpl-token-metadata@^2.3.3": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-token-metadata/-/mpl-token-metadata-2.5.2.tgz#ec84464e2bf65bf491abdc71c3882e5973dd9978" - integrity sha512-lAjQjj2gGtyLq8MOkp4tWZSC5DK9NWgPd3EoH0KQ9gMs3sKIJRik0CBaZg+JA0uLwzkiErY2Izus4vbWtRADJQ== + version "2.8.4" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-token-metadata/-/mpl-token-metadata-2.8.4.tgz#ef73e17060a2bb7a75f5aa9201070f16db462364" + integrity sha512-QhEMjmYzwBAiJAzDv8M9GuNLfqExt46oVrIYlKml7htP3RpkG7aEzr24wWlgLos2YoGwabWwg2d+iT9DergCQw== dependencies: "@metaplex-foundation/beet" "^0.7.1" "@metaplex-foundation/beet-solana" "^0.4.0" @@ -1374,9 +1367,9 @@ debug "^4.3.4" "@noble/ed25519@^1.6.1", "@noble/ed25519@^1.7.0", "@noble/ed25519@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.1.tgz#6899660f6fbb97798a6fbd227227c4589a454724" - integrity sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw== + version "1.7.3" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" + integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== "@noble/hashes@1.0.0": version "1.0.0" @@ -1389,20 +1382,25 @@ integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== "@noble/hashes@^1.1.2", "@noble/hashes@^1.1.3": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.4.tgz#2611ebf5764c1bf754da7c7794de4fb30512336d" - integrity sha512-+PYsVPrTSqtVjatKt2A/Proukn2Yrz61OBThOCKErc5w2/r1Fh37vbDv0Eah7pyNltrmacjwTvdw3JoR+WE4TA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" + integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== "@noble/hashes@~1.1.1": version "1.1.5" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.5.tgz#1a0377f3b9020efe2fae03290bd2a12140c95c11" integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== -"@noble/secp256k1@1.7.0", "@noble/secp256k1@^1.6.3": +"@noble/secp256k1@1.7.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== +"@noble/secp256k1@^1.6.3": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1685,10 +1683,10 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@sideway/formula@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" - integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== "@sideway/pinpoint@^2.0.0": version "2.0.0" @@ -1775,31 +1773,43 @@ start-server-and-test "^1.14.0" "@solana/spl-token@^0.3.5", "@solana/spl-token@^0.3.6": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.6.tgz#35473ad2ed71fe91e5754a2ac72901e1b8b26a42" - integrity sha512-P9pTXjDIRvVbjr3J0mCnSamYqLnICeds7IoH1/Ro2R9OBuOHdp5pqKZoscfZ3UYrgnCWUc1bc9M2m/YPHjw+1g== + version "0.3.7" + resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.7.tgz#6f027f9ad8e841f792c32e50920d9d2e714fc8da" + integrity sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg== dependencies: "@solana/buffer-layout" "^4.0.0" "@solana/buffer-layout-utils" "^0.2.0" buffer "^6.0.3" "@solana/wallet-adapter-base@^0.9.2": - version "0.9.20" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.20.tgz#42a3a2f42db9f6a41e36a132ee5a06a0bd3784f0" - integrity sha512-ZvnhJ4EJk61oyuBH/a9tMpUfeWQ3g3Cc0Nzl1NzE4SdqEhiNoEW8HXDig9HMemZ9bIEUxIpPWxp+SwjVl0u+rg== + version "0.9.21" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.21.tgz#6e73e550aa64a12174ec746bbf338c21209cf70e" + integrity sha512-UPC7GKAMbeoF5Ki+eTi1BHCTjbhtxGIAbgfzSkgYYQKoziDcSr5EgdBL1ntO6wwe6/fRByO6J4q/Dhr7vakz7A== dependencies: + "@solana/wallet-standard-features" "^1.0.0" + "@wallet-standard/base" "^1.0.1" + "@wallet-standard/features" "^1.0.1" eventemitter3 "^4.0.0" +"@solana/wallet-standard-features@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-features/-/wallet-standard-features-1.0.0.tgz#fee71c47fa8c4bacbdc5c8750487e60a2e5e6746" + integrity sha512-cZKUm2w67MQOAzbfdZCGAbePWuqSwpvpbWA2K2D0UcHX30I8ry8YEeHlqwqULIOTeY8lRCHu8WMxZwC9iMEqHQ== + dependencies: + "@wallet-standard/base" "^1.0.0" + "@wallet-standard/features" "^1.0.0" + "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.35.1", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.2", "@solana/web3.js@^1.56.2", "@solana/web3.js@^1.63.1", "@solana/web3.js@^1.66.2": - version "1.70.1" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.70.1.tgz#4a2df47cc32a0f67be5161e772b2ceb6512281fa" - integrity sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ== + version "1.73.2" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.73.2.tgz#4b30cd402b35733dae3a7d0b638be26a7742b395" + integrity sha512-9WACF8W4Nstj7xiDw3Oom22QmrhBh0VyZyZ7JvvG3gOxLWLlX3hvm5nPVJOGcCE/9fFavBbCUb5A6CIuvMGdoA== dependencies: "@babel/runtime" "^7.12.5" "@noble/ed25519" "^1.7.0" "@noble/hashes" "^1.1.2" "@noble/secp256k1" "^1.6.3" "@solana/buffer-layout" "^4.0.0" + agentkeepalive "^4.2.1" bigint-buffer "^1.1.5" bn.js "^5.0.0" borsh "^0.7.0" @@ -1932,9 +1942,9 @@ "@stablelib/wipe" "^1.0.1" "@supercharge/promise-pool@^2.1.0": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-2.3.2.tgz#6366894a7e7bc699bb65e58d8c828113729cf481" - integrity sha512-f5+C7zv+QQivcUO1FH5lXi7GcuJ3CFuJF3Eg06iArhUs5ma0szCLEQwIY4+VQyh7m/RLVZdzvr4E4ZDnLe9MNg== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz#6050eea8c2d7f92ddd4ddc582ee328b15c034ad3" + integrity sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w== "@szmarczak/http-timer@^4.0.5": version "4.0.6" @@ -2175,9 +2185,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^18.7.13": - version "18.11.15" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.15.tgz#de0e1fbd2b22b962d45971431e2ae696643d3f5d" - integrity sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw== + version "18.14.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.0.tgz#94c47b9217bbac49d4a67a967fdcdeed89ebb7d0" + integrity sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A== "@types/node@10.12.18": version "10.12.18" @@ -2328,11 +2338,11 @@ invariant "^2.2.4" "@vechain/connex-driver@^2.0.8": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@vechain/connex-driver/-/connex-driver-2.0.10.tgz#0c29bd66e46b511a3d66f3a68a0921914bf990fd" - integrity sha512-Ki/wUTG4OcPD8t0vCfwcgOJnyfHFiUlWTg/oU0CXwXC+0FeOSxtXOdAY6AyKlSETQKd7AM+PAdU6MqNBADx+Ew== + version "2.0.12" + resolved "https://registry.yarnpkg.com/@vechain/connex-driver/-/connex-driver-2.0.12.tgz#70a4adfaf9860db1b3f1fc9074a6553ea344ffda" + integrity sha512-KdlpCIuFPqnOSlJGc2tnqZDC62WypSjFFj0m/wH6bkOSPKugmy5wapQfhoMs0iR8EvO8xpXzg1jDcVapN7vgXQ== dependencies: - "@vechain/connex-types" "^2.0.2" + "@vechain/connex-types" "^2.0.12" axios "^0.21.1" bignumber.js "^7.2.1" isomorphic-ws "^4.0.1" @@ -2341,19 +2351,19 @@ ws "^7.1.0" "@vechain/connex-framework@^2.0.8": - version "2.0.10" - resolved "https://registry.yarnpkg.com/@vechain/connex-framework/-/connex-framework-2.0.10.tgz#cb281ae38473d862baea061483579ad66b3d76ee" - integrity sha512-pgTxMUr99ZOfd5cjzOihVdnbwXP7qh+kdLSjKaWjW+9Yw2ZOdNk58AJ/Bs2POkKB836pgt+Phu65T7MRxPENpg== + version "2.0.12" + resolved "https://registry.yarnpkg.com/@vechain/connex-framework/-/connex-framework-2.0.12.tgz#3f759b2806dd396f6e5d29a5eb75d72804bb8eff" + integrity sha512-IwPBPHv9utWqUQc5nc2uEkQqMls6Gc1qX/4tVM1VNsc0r/MQZBZGyxJLFSIpcGumEploesZO0s3x7+zRicn7og== dependencies: - "@vechain/connex-types" "^2.0.2" + "@vechain/connex-types" "^2.0.12" bignumber.js "^7.2.1" thor-devkit "^2.0.5" validator-ts "^0.9.1" -"@vechain/connex-types@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@vechain/connex-types/-/connex-types-2.0.2.tgz#089d94137ba9934daf903025647897f804f4b7c4" - integrity sha512-as905zXnVgc74mLkWkr2zMgJRJmFTMEDrRgtOPn68rqLeYCBzR7Ye1QCGbGKnPUaYGDLbGutoIW8r1y8wmGCUg== +"@vechain/connex-types@^2.0.12", "@vechain/connex-types@^2.0.2": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@vechain/connex-types/-/connex-types-2.0.12.tgz#d89d50668f59f6c0239c94d9358c1443bc07f83e" + integrity sha512-FZLvB48U53FyL0cmDIh+eKqn6pNOjoUmp57qtMK8hDXi+hT+x6ZMEJbpmNhtcR7RrQoXqlx5/HFPOC6mVR+1Qg== "@vechain/ethers@^4.0.27-5": version "4.0.27-5" @@ -2371,6 +2381,18 @@ uuid "2.0.1" xmlhttprequest "1.8.0" +"@wallet-standard/base@^1.0.0", "@wallet-standard/base@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wallet-standard/base/-/base-1.0.1.tgz#860dd94d47c9e3c5c43b79d91c6afdbd7a36264e" + integrity sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w== + +"@wallet-standard/features@^1.0.0", "@wallet-standard/features@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wallet-standard/features/-/features-1.0.1.tgz#9aab662ebc5394ec2463e5c8f67b8bbf30fef1b2" + integrity sha512-B/WzRpoEiGQ+kwL/AuzqzNjrGvdL5J2OXiXHkDGONsNbKdtTpExU+ttZKQwSP/EvPl8+ZZ/4OO/Bz4YkigtQDg== + dependencies: + "@wallet-standard/base" "^1.0.1" + "@walletconnect/browser-utils@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951" @@ -2457,9 +2479,9 @@ tslib "1.14.1" "@walletconnect/jsonrpc-utils@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.4.tgz#2009ba3907b02516f2caacd2fb871ff0d472b2cb" - integrity sha512-y0+tDxcTZ9BHBBKBJbjZxLUXb+zQZCylf7y/jTvDPNx76J0hYYc+F9zHzyqBLeorSKepLTk6yI8hw3NXbAQB3g== + version "1.0.5" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.5.tgz#b21f0349d366c5226f4bcdea27ba4d213097fc67" + integrity sha512-4xdaegX9K6rEdguqCLvudYq2h0KCeTYWnWwNNMhooWnkilT7PrR1kmatpr/HP4l191zyvS33K5VClWhkCTeAxQ== dependencies: "@walletconnect/environment" "^1.0.1" "@walletconnect/jsonrpc-types" "^1.0.2" @@ -2575,9 +2597,9 @@ acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.4.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== aes-js@3.0.0: version "3.0.0" @@ -2589,6 +2611,15 @@ aes-js@^3.1.2: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== +agentkeepalive@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -2600,9 +2631,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.0.1: - version "8.11.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78" - integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg== + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -2615,9 +2646,9 @@ algo-msgpack-with-bigint@^2.1.1: integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== algosdk@^1.13.1, algosdk@^1.15.0-beta.1: - version "1.24.0" - resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.24.0.tgz#9f4e2fdf94d100561b2251c0a6591047fe0e2556" - integrity sha512-Q+rOpHTyn92OaL1ta0jEGz8fUQnfGiH2u5wkHj4phy5YKC9mkUrXc1+3Qk3v5fsttTV6pZlYPpzvBTNAlgIAyQ== + version "1.24.1" + resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.24.1.tgz#afc4102457ae0c38a32de6b84f4d713aedfc9e89" + integrity sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww== dependencies: algo-msgpack-with-bigint "^2.1.1" buffer "^6.0.2" @@ -2797,23 +2828,21 @@ arweave-stream-tx@^1.1.0: exponential-backoff "^3.1.0" arweave@^1.10.13, arweave@^1.11.4: - version "1.11.8" - resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.11.8.tgz#09376e0c6cec40a661cbb27a306cb11c0a663cd8" - integrity sha512-58ODeNPIC4OjaOCl2bXjKbOFGsiVZFs+DkQg3BvQGvFWNqw1zTJ4Jp01xGUz+GbdOaDyJcCC0g3l0HwdJfFPyw== + version "1.13.0" + resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.13.0.tgz#046d1b74efe5b157ad85279473f3729e8c7a47a9" + integrity sha512-pir1s0Lg7MzAxmFsPqht1SGOq8Hoj1fhf44/8PVjBd6T8l6JRrFN23UvKp7N+MXBYM5SqrLYB8KrgvxAaczGFg== dependencies: arconnect "^0.4.2" asn1.js "^5.4.1" - axios "^0.27.2" base64-js "^1.5.1" bignumber.js "^9.0.2" - util "^0.12.4" asmcrypto.js@^0.22.0: version "0.22.0" resolved "https://registry.yarnpkg.com/asmcrypto.js/-/asmcrypto.js-0.22.0.tgz#38fc1440884d802c7bd37d1d23c2b26a5cd5d2d2" integrity sha512-usgMoyXjMbx/ZPdzTSXExhMPur2FTdz/Vo5PVx2gIaBcdAAJNOFlsdgqveM8Cff7W0v+xrf9BwjOV26JSAF9qA== -asn1.js@^5.2.0, asn1.js@^5.4.1: +asn1.js@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== @@ -2901,14 +2930,14 @@ aws-sign2@~0.7.0: integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axios@*: - version "1.2.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.1.tgz#44cf04a3c9f0c2252ebd85975361c026cb9f864a" - integrity sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A== + version "1.3.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.3.tgz#e7011384ba839b885007c9c9fae1ff23dceb295b" + integrity sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -3084,7 +3113,7 @@ bignumber.js@^7.2.1: resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== -bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2: +bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2, bignumber.js@^9.1.1: version "9.1.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== @@ -3201,12 +3230,12 @@ bn.js@5.2.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== -bn.js@5.2.1, bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@5.2.1, bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: +bn.js@^4.0.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -3282,12 +3311,12 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: +browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== @@ -3299,48 +3328,6 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -3666,6 +3653,11 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.0.tgz#71797971162cd3cf65f0b9d24eb28f8d303acdf1" + integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA== + commander@^2.11.0, commander@^2.15.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -3686,11 +3678,6 @@ commander@^8.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== -commander@^9.4.0: - version "9.4.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" - integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== - common-path-prefix@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" @@ -3733,9 +3720,9 @@ content-hash@^2.5.2: multihashes "^0.4.15" content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie-signature@1.0.6: version "1.0.6" @@ -3776,17 +3763,9 @@ crc-32@^1.2.0, crc-32@^1.2.2: integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== crc@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/crc/-/crc-4.1.1.tgz#cb926237b56739f82c8533da1b66925ed33e011f" - integrity sha512-2U3ZqJ2phJl9ANuP2q5VS53LMpNmYU9vcpmh6nutJmsqUREhtWpTRh9yYxG7sDg3xkwaEEXytSeffTxw4cgwPg== - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" + version "4.3.2" + resolved "https://registry.yarnpkg.com/crc/-/crc-4.3.2.tgz#49b7821cbf2cf61dfd079ed93863bbebd5469b9a" + integrity sha512-uGDHf4KLLh2zsHa8D8hIQ1H/HtFQhyHrc0uhHBcoKGol/Xnb+MPYfUMw7cvON6ze/GUESTudKayDcJC5HnJv1A== create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" @@ -3799,7 +3778,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@1.1.7, create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@1.1.7, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -3846,23 +3825,6 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== -crypto-browserify@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - "crypto-exchange-rate@git+https://github.com/xp-network/exchange-rate#aedf7b2c152d6d25e9e6cec5d222c63a3ade18ab": version "1.0.0" resolved "git+https://github.com/xp-network/exchange-rate#aedf7b2c152d6d25e9e6cec5d222c63a3ade18ab" @@ -3884,30 +3846,30 @@ crypto-js@^4.1.1: resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== -csv-generate@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-4.2.1.tgz#2a0c5f0d9a5b6f7a0c1fee40f028707af048b31b" - integrity sha512-w6GFHjvApv6bcJ2xdi9JGsH6ZvUBfC+vUdfefnEzurXG6hMRwzkBLnhztU2H7v7+zfCk1I/knnQ+tGbgpxWrBw== +csv-generate@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-4.2.2.tgz#b0ae1dca9f608fb8dfbb9df32949652d8f583ade" + integrity sha512-Ah/NcMxHMqwQsuL173yp8EOzHrbLh8iyScqTy990b+TJZNjHhy7gs5FfSmyQ2arLC2QVrueO3DYJVQnibJB3WQ== -csv-parse@^5.3.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-5.3.3.tgz#3b75d2279e2edb550cbc54c65b25cbbf3d0033ad" - integrity sha512-kEWkAPleNEdhFNkHQpFHu9RYPogsFj3dx6bCxL847fsiLgidzWg0z/O0B1kVWMJUc5ky64zGp18LX2T3DQrOfw== +csv-parse@^5.3.5: + version "5.3.5" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-5.3.5.tgz#9924bbba9f7056122f06b7af18edc1a7f022ce99" + integrity sha512-8O5KTIRtwmtD3+EVfW6BCgbwZqJbhTYsQZry12F1TP5RUp0sD9tp1UnCWic3n0mLOhzeocYaCZNYxOGSg3dmmQ== -csv-stringify@^6.2.3: - version "6.2.3" - resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-6.2.3.tgz#fefd25e66fd48f8f42f43b85a66a4663a2c3e796" - integrity sha512-4qGjUMwnlaRc00gc2jrIYh2w/h1fo25B0mTuY9K8fBiIgtmCX3LcgUbrEGViL98Ci4Se/F5LFEtu8k+dItJVZQ== +csv-stringify@^6.2.4: + version "6.2.4" + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-6.2.4.tgz#9ae7a660b771e55c09d6cf4cf936fbbdf9499962" + integrity sha512-RVzGaBeHl0IspzOSiNr1e7XDM7ajuESlqetQbxH2pBPplIWycx0gAVclxNEa4lc91brK6LIE0PrdEoHtZYIHIQ== csv@^6.0.5: - version "6.2.5" - resolved "https://registry.yarnpkg.com/csv/-/csv-6.2.5.tgz#e01fd3db2f0856a120ae9140bd179c1a186ee2b9" - integrity sha512-T+K0H7MIrlrnP6KxYKo3lK+uLl6OC2Gmwdd81TG/VdkhKvpatl35sR7tyRSpDLGl22y2T+q9KvNHnVtn4OAscQ== + version "6.2.7" + resolved "https://registry.yarnpkg.com/csv/-/csv-6.2.7.tgz#29f09bcf5929ab3eaa71f5f74a5ed7d122c195f5" + integrity sha512-W9rB5/QWqXg2rQcAOT7lDHfxhDavg1BEmy+WaxKRYowzK9Dq+7WHIJo/8Xvry7rtaWQTMgl0wkS/cfd1k9cQUg== dependencies: - csv-generate "^4.2.1" - csv-parse "^5.3.3" - csv-stringify "^6.2.3" - stream-transform "^3.2.1" + csv-generate "^4.2.2" + csv-parse "^5.3.5" + csv-stringify "^6.2.4" + stream-transform "^3.2.2" curve25519-js@0.0.4: version "0.0.4" @@ -3930,9 +3892,9 @@ dashdash@^1.12.0: assert-plus "^1.0.0" dataloader@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.1.0.tgz#c69c538235e85e7ac6c6c444bae8ecabf5de9df7" - integrity sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ== + version "2.2.2" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" + integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== debug@2.6.9, debug@^2.2.0: version "2.6.9" @@ -3941,7 +3903,7 @@ debug@2.6.9, debug@^2.2.0: dependencies: ms "2.0.0" -debug@4.3.4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -3997,9 +3959,9 @@ deep-is@^0.1.3: integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + version "4.3.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" + integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== defaults@^1.0.3: version "1.0.4" @@ -4014,9 +3976,9 @@ defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== dependencies: has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -4046,7 +4008,7 @@ depd@2.0.0, depd@^2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -depd@~1.1.2: +depd@^1.1.2, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== @@ -4056,14 +4018,6 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" @@ -4089,15 +4043,6 @@ diff@^5.0.0: resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -4162,7 +4107,7 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -4192,21 +4137,21 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~6.2.3: - version "6.2.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.3.tgz#a8cbdab003162529db85e9de31575097f6d29458" - integrity sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw== +engine.io-client@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.4.0.tgz#88cd3082609ca86d7d3c12f0e746d12db4f47c91" + integrity sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" engine.io-parser "~5.0.3" - ws "~8.2.3" + ws "~8.11.0" xmlhttprequest-ssl "~2.0.0" engine.io-parser@~5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" - integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== + version "5.0.6" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" + integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== enquirer@^2.3.5: version "2.3.6" @@ -4230,26 +4175,32 @@ error-polyfill@^0.1.3: u3 "^0.1.1" es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.20.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" - integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== + version "1.21.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" + integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== dependencies: + available-typed-arrays "^1.0.5" call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" get-intrinsic "^1.1.3" get-symbol-description "^1.0.0" + globalthis "^1.0.3" gopd "^1.0.1" has "^1.0.3" has-property-descriptors "^1.0.0" + has-proto "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" + internal-slot "^1.0.4" + is-array-buffer "^3.0.1" 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.10" is-weakref "^1.0.2" object-inspect "^1.12.2" object-keys "^1.1.1" @@ -4258,7 +4209,18 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: safe-regex-test "^1.0.0" string.prototype.trimend "^1.0.6" string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" es-shim-unscopables@^1.0.0: version "1.0.0" @@ -4468,9 +4430,9 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^8.3.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== + version "8.6.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" + integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== eslint-plugin-eslint-comments@^3.2.0: version "3.2.0" @@ -4584,9 +4546,9 @@ esprima@^4.0.0: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + version "1.4.2" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.2.tgz#c6d3fee05dd665808e2ad870631f221f5617b1d1" + integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng== dependencies: estraverse "^5.1.0" @@ -4674,7 +4636,7 @@ ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -4767,7 +4729,7 @@ events@^3.3.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: +evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== @@ -4829,9 +4791,9 @@ expo-random@*: base64-js "^1.3.0" exponential-backoff@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.0.tgz#9409c7e579131f8bd4b32d7d8094a911040f2e68" - integrity sha512-oBuz5SYz5zzyuHINoe9ooePwSu0xApKWgeNzok4hZ5YKXFh9zrQBEM15CXqoZkJJPuI2ArvqjPQd8UKJA753XA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== express@^4.14.0: version "4.18.2" @@ -4945,9 +4907,9 @@ fast-stable-stringify@^1.0.0: integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== fastq@^1.6.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" - integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" @@ -5068,9 +5030,9 @@ flow-typed@^3.2.1: yargs "^15.1.0" flowgen@^1.10.0: - version "1.20.1" - resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.20.1.tgz#336871d59a36980fbe2c3de553bd558f06a46e24" - integrity sha512-Wus3KAhsOF7CiZGkBKZawf0AJXe06Wot6UGQt7h9QS6MBtBkFgG30wTAgpy1byA3FKYb059vO341XtN8LUhenQ== + version "1.21.0" + resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.21.0.tgz#f7ecb693892c4bd069492dbf77db561bbb451aa9" + integrity sha512-pFNFFyMLRmW6njhOIm5TrbGUDTv64aujmys2KrkRE2NYD8sXwJUyicQRwU5SPRBRJnFSD/FNlnHo2NnHI5eJSw== dependencies: "@babel/code-frame" "^7.16.7" "@babel/highlight" "^7.16.7" @@ -5249,10 +5211,10 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== dependencies: function-bind "^1.1.1" has "^1.0.3" @@ -5310,9 +5272,9 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: path-is-absolute "^1.0.0" glob@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -5329,12 +5291,19 @@ global@~4.4.0: process "^0.11.10" globals@^13.6.0, globals@^13.9.0: - version "13.19.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" - integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + globby@^11.0.3: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -5446,6 +5415,11 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" @@ -5510,9 +5484,9 @@ hmac-drbg@^1.0.1: minimalistic-crypto-utils "^1.0.1" http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-errors@2.0.0: version "2.0.0" @@ -5576,10 +5550,17 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + husky@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236" - integrity sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg== + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" @@ -5606,9 +5587,9 @@ ignore@^4.0.6: integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.0.5, ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c" - integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -5667,12 +5648,12 @@ inquirer@^8.2.0: through "^2.3.6" wrap-ansi "^7.0.0" -internal-slot@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" - integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== +internal-slot@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.0" has "^1.0.3" side-channel "^1.0.4" @@ -5713,6 +5694,15 @@ is-arguments@^1.0.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-array-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" + integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-typed-array "^1.1.10" + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -5874,7 +5864,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.3: +is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: version "1.1.10" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== @@ -5974,21 +5964,21 @@ jayson@^3.4.4: uuid "^8.3.2" ws "^7.4.5" -joi@^17.6.0: - version "17.7.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.7.0.tgz#591a33b1fe1aca2bc27f290bcad9b9c1c570a6b3" - integrity sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg== +joi@^17.7.0: + version "17.8.3" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.8.3.tgz#d772fe27a87a5cda21aace5cf11eee8671ca7e6f" + integrity sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.0" + "@sideway/formula" "^3.0.1" "@sideway/pinpoint" "^2.0.0" -js-base64@^3.6.1, js-base64@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.3.tgz#2e784bb0851636bf1e99ef12e4f3a8a8c9b7639f" - integrity sha512-PAr6Xg2jvd7MCR6Ld9Jg3BmTcjYsHEBx1VlwEwULb/qowPf5VD9kEMagj23Gm7JRnSvE/Da/57nChZjnvL8v6A== +js-base64@^3.6.1, js-base64@^3.7.2, js-base64@^3.7.4: + version "3.7.5" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" + integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== js-logger@^1.6.1: version "1.6.1" @@ -6138,9 +6128,9 @@ just-extend@^4.0.2: integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== keccak@^3.0.0, keccak@^3.0.1, keccak@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== + version "3.0.3" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" + integrity sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ== dependencies: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" @@ -6177,9 +6167,9 @@ levn@^0.4.1: type-check "~0.4.0" local-pkg@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f" - integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg== + version "0.4.3" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== locate-path@^5.0.0: version "5.0.0" @@ -6196,9 +6186,9 @@ locate-path@^6.0.0: p-locate "^5.0.0" locate-path@^7.1.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.1.1.tgz#8e1e5a75c7343770cef02ff93c4bf1f0aa666374" - integrity sha512-vJXaRMJgRVD3+cUZs3Mncj2mxpt5mP0EmNOsxRSZRMlbqjvxzDEOIUWXGmavo0ZC9+tNZCBLQ66reA11nbpHZg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== dependencies: p-locate "^6.0.0" @@ -6329,9 +6319,9 @@ map-stream@~0.1.0: integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== marked@^4.0.16: - version "4.2.4" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.4.tgz#5a4ce6c7a1ae0c952601fce46376ee4cf1797e1c" - integrity sha512-Wcc9ikX7Q5E4BYDPvh1C6QNSxrjC9tBgz+A/vAhp59KXUgachw++uMvMKiSW8oA85nopmPZcEvBoex/YLMsiyA== + version "4.2.12" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.12.tgz#d69a64e21d71b06250da995dcd065c11083bebb5" + integrity sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw== md5.js@^1.3.4: version "1.3.5" @@ -6395,14 +6385,6 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" @@ -6470,16 +6452,16 @@ minimatch@^3.0.4, minimatch@^3.1.1: brace-expansion "^1.1.7" minimatch@^5.0.1, minimatch@^5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.1.tgz#6c9dffcf9927ff2a31e74b5af11adf8b9604b022" - integrity sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g== + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6, minimist@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" @@ -6513,10 +6495,10 @@ mkdirp-promise@^5.0.1: dependencies: mkdirp "*" -mkdirp@*, mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@*: + version "2.1.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.3.tgz#b083ff37be046fd3d6552468c1f0ff44c1545d1f" + integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw== mkdirp@^0.5.5: version "0.5.6" @@ -6525,6 +6507,11 @@ mkdirp@^0.5.5: dependencies: minimist "^1.2.6" +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mock-fs@^4.1.0: version "4.14.0" resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" @@ -6545,7 +6532,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.0.0: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -6765,7 +6752,14 @@ node-addon-api@^4.2.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== -node-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7: +node-fetch@2, node-fetch@^2.6.1, node-fetch@^2.6.7: + version "2.6.9" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" + integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -6773,9 +6767,9 @@ node-fetch@2, node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7: whatwg-url "^5.0.0" node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" - integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + version "4.6.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" + integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== node-hid@2.1.1: version "2.1.1" @@ -6849,9 +6843,9 @@ object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== object-is@^1.0.1: version "1.1.5" @@ -7019,17 +7013,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parse-headers@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" @@ -7094,7 +7077,7 @@ pause-stream@0.0.11: dependencies: through "~2.3" -pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.2: +pbkdf2@^3.0.17, pbkdf2@^3.0.9, pbkdf2@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -7138,9 +7121,9 @@ platform@1.3.6: integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== postcss@^8.4.18: - version "8.4.20" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" - integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== + version "8.4.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -7176,9 +7159,9 @@ prettier@^1.19.1: integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== prettier@^2.3.2, prettier@^2.5.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" - integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== + version "2.8.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" + integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== pretty-quick@^3.1.3: version "3.1.3" @@ -7246,9 +7229,9 @@ protobufjs@6.11.3, protobufjs@^6.11.2, protobufjs@^6.11.3: long "^4.0.0" protobufjs@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.1.2.tgz#a0cf6aeaf82f5625bffcf5a38b7cd2a7de05890c" - integrity sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ== + version "7.2.2" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.2.tgz#2af401d8c547b9476fb37ffc65782cf302342ca3" + integrity sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -7293,18 +7276,6 @@ psl@^1.1.28: resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -7319,9 +7290,9 @@ punycode@2.1.0: integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== pvtsutils@^1.3.2: version "1.3.2" @@ -7382,21 +7353,13 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.0.1, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -7640,10 +7603,10 @@ rxjs@6, rxjs@^6.6.3, rxjs@^6.6.7: dependencies: tslib "^1.9.0" -rxjs@^7.5.4, rxjs@^7.5.5: - version "7.6.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.6.0.tgz#361da5362b6ddaa691a2de0b4f2d32028f1eb5a2" - integrity sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ== +rxjs@^7.5.5, rxjs@^7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== dependencies: tslib "^2.1.0" @@ -7696,9 +7659,9 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-gyp-build "^4.2.0" secretjs@^1.6.10: - version "1.6.10" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.6.10.tgz#ee98cb4c0b81f715cfba576062410266672ac65d" - integrity sha512-XFjNbn1akifwE5ceSVhzPj1V95gKjuXmyFr8X3dFmGNd7L4pyDOvgpR+32uwK7GVz5PMDvusVIff16a8D43/bw== + version "1.6.13" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.6.13.tgz#d73a5f68d869f7f4ab5a49621ff7dee2e876820f" + integrity sha512-eWQpARcEmHARl+EBZ7uWrlkTHotB464e/ZXgFp+uBD8coqHd8QucRrSuU9rTyGmfg92UYPnXOe1aKXs8M4XeSw== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" @@ -7933,19 +7896,19 @@ snake-case@^3.0.4: tslib "^2.0.3" socket.io-client@^4.1.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.4.tgz#d3cde8a06a6250041ba7390f08d2468ccebc5ac9" - integrity sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g== + version "4.6.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.6.1.tgz#80d97d5eb0feca448a0fb6d69a7b222d3d547eab" + integrity sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.2" - engine.io-client "~6.2.3" + engine.io-client "~6.4.0" socket.io-parser "~4.2.1" socket.io-parser@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" - integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== + version "4.2.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" + integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" @@ -7993,9 +7956,9 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" start-server-and-test@^1.14.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.15.2.tgz#3c4f9b358a0dc5ae03a96dd7d7ae9e25a3b24165" - integrity sha512-t5xJX04Hg7hqxiKHMJBz/n4zIMsE6G7hpAcerFAH+4Vh9le/LeyFcJERJM7WLiPygWF9TOg33oroJF1XOzJtYQ== + version "1.15.4" + resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.15.4.tgz#8dd7c695c2c1f7e6e024843ca2224ee7d58d9a02" + integrity sha512-ucQtp5+UCr0m4aHlY+aEV2JSYNTiMZKdSKK/bsIr6AlmwAWDYDnV7uGlWWEtWa7T4XvRI5cPYcPcQgeLqpz+Tg== dependencies: arg "^5.0.2" bluebird "3.7.2" @@ -8004,7 +7967,7 @@ start-server-and-test@^1.14.0: execa "5.1.1" lazy-ass "1.6.0" ps-tree "1.2.0" - wait-on "6.0.1" + wait-on "7.0.1" statuses@2.0.1: version "2.0.1" @@ -8028,10 +7991,10 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" -stream-transform@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-3.2.1.tgz#4c8cbdd3e4fa7254c770ef34a962cec68349fcb0" - integrity sha512-ApK+WTJ5bCOf0A2tlec1qhvr8bGEBM/sgXXB7mysdCYgZJO5DZeaV3h3G+g0HnAQ372P5IhiGqnW29zoLOfTzQ== +stream-transform@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-3.2.2.tgz#3d6083d6582eddac233645fcee574fc56ebeb184" + integrity sha512-DHZQPNxvjU2qdQlGcpitn8pkJHQVTqdshtgXaLz6Vc5VCAognbGuuwGS5ugeqGVnyw8j4h89QcV8cwm0D1+V0A== strict-uri-encode@^1.0.0: version "1.1.0" @@ -8256,9 +8219,9 @@ text-table@^0.2.0: integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== thor-devkit@^2.0.4, thor-devkit@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/thor-devkit/-/thor-devkit-2.0.6.tgz#94e59e438d5db5efdb5c549ecf6c5f4bcb261ddf" - integrity sha512-kvg4cJuTOmW4kcXR+RwYsatAK47pL+88c7WE66j5HWYc+4kbVYGrzplrLHITo38iziFMqvbhBLf5gteyfNwwfg== + version "2.0.7" + resolved "https://registry.yarnpkg.com/thor-devkit/-/thor-devkit-2.0.7.tgz#0454053eda03abe1b785dc4f534f7aa1321dd89c" + integrity sha512-km+r+4fD9KP9Ea8bCfobVg6dsRgiTfi2GK9vVGHmnFHP7WJc98C+7B/VmfunEigsavkwcHcASLX50CwzZfgU+g== dependencies: "@vechain/ethers" "^4.0.27-5" bignumber.js "^7.2.1" @@ -8295,9 +8258,9 @@ tinypool@^0.2.4: integrity sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ== tinyspy@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d" - integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== + version "1.1.1" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.1.1.tgz#0cb91d5157892af38cb2d217f5c7e8507a5bf092" + integrity sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g== tmp-promise@^3.0.2: version "3.0.3" @@ -8363,9 +8326,9 @@ ton-crypto@^3.0.0: tweetnacl "1.0.3" ton-x@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ton-x/-/ton-x-2.0.0.tgz#c29587698969a747acb80fe8e9d35acbd5562f1c" - integrity sha512-APzTmKydNVre2IaDuC8gxmVK/TcJpA5jUER+OrwxKDwRWckzFFzElxVHu6AGilljRHYd45At4QDoHTfsBkUuZA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/ton-x/-/ton-x-2.1.0.tgz#d4983a5c487bbcbe76b5e374ad346024afb06b4e" + integrity sha512-AJx4kRaRqPdTCQO8ik8E0aICg4NutUgTxnepbjoc7Emi3bMKoANiketmOFK07+vFX9QQO2NoJnqM8kgSsposhw== dependencies: "@types/bn.js" "^5.1.0" axios "^0.27.0" @@ -8481,9 +8444,9 @@ tslib@1.14.1, tslib@^1.8.1, tslib@^1.9.0: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" - integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== tsutils@^3.21.0: version "3.21.0" @@ -8549,6 +8512,15 @@ type@^2.7.2: resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -8583,9 +8555,9 @@ typescript-compiler@^1.4.1-2: integrity sha512-EMopKmoAEJqA4XXRFGOb7eSBhmQMbBahW6P1Koayeatp0b4AW2q/bBqYWkpG7QVQc9HGQUiS4trx2ZHcnAaZUg== typescript@^4.9.3: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typescript@~4.4.4: version "4.4.4" @@ -8674,7 +8646,7 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.0, util@^0.12.4: +util@^0.12.0, util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -8726,9 +8698,9 @@ validator-ts@^0.9.1: integrity sha512-3PCL0AzKWvG/4Y12zUgk6OVup9zQ3vXGzqUIZ69GnSapIV9lgr9VCLFReUgTe04vY6Fm4WzAL7a1HdIVyWRw8Q== validator@^13.7.0: - version "13.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" - integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== + version "13.9.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.9.0.tgz#33e7b85b604f3bbce9bb1a05d5c3e22e1c2ff855" + integrity sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA== varint@^5.0.0: version "5.0.2" @@ -8791,16 +8763,16 @@ vscode-textmate@5.2.0: resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== -wait-on@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.1.tgz#16bbc4d1e4ebdd41c5b4e63a2e16dbd1f4e5601e" - integrity sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw== +wait-on@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-7.0.1.tgz#5cff9f8427e94f4deacbc2762e6b0a489b19eae9" + integrity sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog== dependencies: - axios "^0.25.0" - joi "^17.6.0" + axios "^0.27.2" + joi "^17.7.0" lodash "^4.17.21" - minimist "^1.2.5" - rxjs "^7.5.4" + minimist "^1.2.7" + rxjs "^7.8.0" wcwidth@^1.0.1: version "1.0.1" @@ -8809,172 +8781,171 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web3-bzz@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.1.tgz#81397be5ce262d03d82b92e9d8acc11f8a609ea1" - integrity sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w== +web3-bzz@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.2.tgz#67ea1c775874056250eece551ded22905ed08784" + integrity sha512-1EEnxjPnFnvNWw3XeeKuTR8PBxYd0+XWzvaLK7OJC/Go9O8llLGxrxICbKV+8cgIE0sDRBxiYx02X+6OhoAQ9w== dependencies: "@types/node" "^12.12.6" got "12.1.0" swarm-js "^0.1.40" -web3-core-helpers@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz#7904747b23fd0afa4f2c86ed98ea9418ccad7672" - integrity sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw== +web3-core-helpers@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz#82066560f8085e6c7b93bcc8e88b441289ea9f9f" + integrity sha512-6B1eLlq9JFrfealZBomd1fmlq1o4A09vrCVQSa51ANoib/jllT3atZrRDr0zt1rfI7TSZTZBXdN/aTdeN99DWw== dependencies: - web3-eth-iban "1.8.1" - web3-utils "1.8.1" + web3-eth-iban "1.8.2" + web3-utils "1.8.2" -web3-core-method@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.1.tgz#0fc5a433a9fc784c447522f141c0a8e0163c7790" - integrity sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA== +web3-core-method@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.2.tgz#ba5ec68084e903f0516415010477618be017eac2" + integrity sha512-1qnr5mw5wVyULzLOrk4B+ryO3gfGjGd/fx8NR+J2xCGLf1e6OSjxT9vbfuQ3fErk/NjSTWWreieYWLMhaogcRA== dependencies: "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-utils "1.8.1" + web3-core-helpers "1.8.2" + web3-core-promievent "1.8.2" + web3-core-subscriptions "1.8.2" + web3-utils "1.8.2" -web3-core-promievent@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz#f334c8b2ceac6c2228f06d2a515f6d103157f036" - integrity sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg== +web3-core-promievent@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz#e670d6b4453632e6ecfd9ad82da44f77ac1585c9" + integrity sha512-nvkJWDVgoOSsolJldN33tKW6bKKRJX3MCPDYMwP5SUFOA/mCzDEoI88N0JFofDTXkh1k7gOqp1pvwi9heuaxGg== dependencies: eventemitter3 "4.0.4" -web3-core-requestmanager@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz#272ffa55b7b568ecbc8e4a257ca080355c31c60e" - integrity sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw== +web3-core-requestmanager@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz#dda95e83ca4808949612a41e54ecea557f78ef26" + integrity sha512-p1d090RYs5Mu7DK1yyc3GCBVZB/03rBtFhYFoS2EruGzOWs/5Q0grgtpwS/DScdRAm8wB8mYEBhY/RKJWF6B2g== dependencies: - util "^0.12.0" - web3-core-helpers "1.8.1" - web3-providers-http "1.8.1" - web3-providers-ipc "1.8.1" - web3-providers-ws "1.8.1" + util "^0.12.5" + web3-core-helpers "1.8.2" + web3-providers-http "1.8.2" + web3-providers-ipc "1.8.2" + web3-providers-ws "1.8.2" -web3-core-subscriptions@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz#f5ae1380e92746eadfab6475b8a70ef5a1be6bbf" - integrity sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw== +web3-core-subscriptions@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz#0c8bd49439d83c6f0a03c70f00b24a915a70a5ed" + integrity sha512-vXQogHDmAIQcKpXvGiMddBUeP9lnKgYF64+yQJhPNE5PnWr1sAibXuIPV7mIPihpFr/n/DORRj6Wh1pUv9zaTw== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" + web3-core-helpers "1.8.2" -web3-core@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.1.tgz#050b1c408d1f9b7ae539e90f7f7d1b7a7d10578b" - integrity sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw== +web3-core@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.2.tgz#333e93d7872b1a36efe758ed8b89a7acbdd962c2" + integrity sha512-DJTVEAYcNqxkqruJE+Rxp3CIv0y5AZMwPHQmOkz/cz+MM75SIzMTc0AUdXzGyTS8xMF8h3YWMQGgGEy8SBf1PQ== dependencies: "@types/bn.js" "^5.1.0" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-requestmanager "1.8.1" - web3-utils "1.8.1" + web3-core-helpers "1.8.2" + web3-core-method "1.8.2" + web3-core-requestmanager "1.8.2" + web3-utils "1.8.2" -web3-eth-abi@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz#47455d6513217c4b0866fea6f97b1c4afa0b6535" - integrity sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w== +web3-eth-abi@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz#16e1e9be40e2527404f041a4745111211488f31a" + integrity sha512-Om9g3kaRNjqiNPAgKwGT16y+ZwtBzRe4ZJFGjLiSs6v5I7TPNF+rRMWuKnR6jq0azQZDj6rblvKFMA49/k48Og== dependencies: "@ethersproject/abi" "^5.6.3" - web3-utils "1.8.1" + web3-utils "1.8.2" -web3-eth-accounts@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz#1ce7387721f118aeb0376291e4d8bbe2ac323406" - integrity sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg== +web3-eth-accounts@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz#b894f5d5158fcae429da42de75d96520d0712971" + integrity sha512-c367Ij63VCz9YdyjiHHWLFtN85l6QghgwMQH2B1eM/p9Y5lTlTX7t/Eg/8+f1yoIStXbk2w/PYM2lk+IkbqdLA== dependencies: "@ethereumjs/common" "2.5.0" "@ethereumjs/tx" "3.3.2" - crypto-browserify "3.12.0" eth-lib "0.2.8" - ethereumjs-util "^7.0.10" + ethereumjs-util "^7.1.5" scrypt-js "^3.0.1" uuid "^9.0.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" + web3-core "1.8.2" + web3-core-helpers "1.8.2" + web3-core-method "1.8.2" + web3-utils "1.8.2" -web3-eth-contract@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz#bdf3e33bbcb79a1b6144dffd6a0deefd2e459272" - integrity sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg== +web3-eth-contract@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz#5388b7130923d2b790c09a420391a81312a867fb" + integrity sha512-ID5A25tHTSBNwOPjiXSVzxruz006ULRIDbzWTYIFTp7NJ7vXu/kynKK2ag/ObuTqBpMbobP8nXcA9b5EDkIdQA== dependencies: "@types/bn.js" "^5.1.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-utils "1.8.1" - -web3-eth-ens@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz#e78a9651fea8282abe8565b001819e2d645e5929" - integrity sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ== + web3-core "1.8.2" + web3-core-helpers "1.8.2" + web3-core-method "1.8.2" + web3-core-promievent "1.8.2" + web3-core-subscriptions "1.8.2" + web3-eth-abi "1.8.2" + web3-utils "1.8.2" + +web3-eth-ens@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz#0a086ad4d919102e28b9fd3036df246add9df22a" + integrity sha512-PWph7C/CnqdWuu1+SH4U4zdrK4t2HNt0I4XzPYFdv9ugE8EuojselioPQXsVGvjql+Nt3jDLvQvggPqlMbvwRw== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-contract "1.8.1" - web3-utils "1.8.1" - -web3-eth-iban@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz#c6484e5d68ca644aa78431301e7acd5df24598d1" - integrity sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg== + web3-core "1.8.2" + web3-core-helpers "1.8.2" + web3-core-promievent "1.8.2" + web3-eth-abi "1.8.2" + web3-eth-contract "1.8.2" + web3-utils "1.8.2" + +web3-eth-iban@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz#5cb3022234b13986f086353b53f0379a881feeaf" + integrity sha512-h3vNblDWkWMuYx93Q27TAJz6lhzpP93EiC3+45D6xoz983p6si773vntoQ+H+5aZhwglBtoiBzdh7PSSOnP/xQ== dependencies: bn.js "^5.2.1" - web3-utils "1.8.1" + web3-utils "1.8.2" -web3-eth-personal@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz#00b5ff1898b62044d25ed5fddd8486168d4827cf" - integrity sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA== +web3-eth-personal@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz#3526c1ebaa4e7bf3a0a8ec77e34f067cc9a750b2" + integrity sha512-Vg4HfwCr7doiUF/RC+Jz0wT4+cYaXcOWMAW2AHIjHX6Z7Xwa8nrURIeQgeEE62qcEHAzajyAdB1u6bJyTfuCXw== dependencies: "@types/node" "^12.12.6" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - -web3-eth@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.1.tgz#395f6cd56edaac5dbb23e8cec9886c3fd32c430e" - integrity sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg== - dependencies: - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-accounts "1.8.1" - web3-eth-contract "1.8.1" - web3-eth-ens "1.8.1" - web3-eth-iban "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - -web3-net@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.1.tgz#2bed4d4b93166724129ec33d0e5dea98880285f4" - integrity sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ== - dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" + web3-core "1.8.2" + web3-core-helpers "1.8.2" + web3-core-method "1.8.2" + web3-net "1.8.2" + web3-utils "1.8.2" + +web3-eth@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.2.tgz#8562287ae1803c30eb54dc7d832092e5739ce06a" + integrity sha512-JoTiWWc4F4TInpbvDUGb0WgDYJsFhuIjJlinc5ByjWD88Gvh+GKLsRjjFdbqe5YtwIGT4NymwoC5LQd1K6u/QQ== + dependencies: + web3-core "1.8.2" + web3-core-helpers "1.8.2" + web3-core-method "1.8.2" + web3-core-subscriptions "1.8.2" + web3-eth-abi "1.8.2" + web3-eth-accounts "1.8.2" + web3-eth-contract "1.8.2" + web3-eth-ens "1.8.2" + web3-eth-iban "1.8.2" + web3-eth-personal "1.8.2" + web3-net "1.8.2" + web3-utils "1.8.2" + +web3-net@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.2.tgz#97e1e0015fabc4cda31017813e98d0b5468dd04f" + integrity sha512-1itkDMGmbgb83Dg9nporFes9/fxsU7smJ3oRXlFkg4ZHn8YJyP1MSQFPJWWwSc+GrcCFt4O5IrUTvEkHqE3xag== + dependencies: + web3-core "1.8.2" + web3-core-method "1.8.2" + web3-utils "1.8.2" web3-providers-connex@^0.3.1: version "0.3.1" @@ -8988,47 +8959,47 @@ web3-providers-connex@^0.3.1: thor-devkit "^2.0.4" web3 "^1.7.1" -web3-providers-http@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.1.tgz#8aa89c11a9272f11ddb74b871273c92225faa28d" - integrity sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg== +web3-providers-http@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.2.tgz#fbda3a3bbc8db004af36e91bec35f80273b37885" + integrity sha512-2xY94IIEQd16+b+vIBF4IC1p7GVaz9q4EUFscvMUjtEq4ru4Atdzjs9GP+jmcoo49p70II0UV3bqQcz0TQfVyQ== dependencies: abortcontroller-polyfill "^1.7.3" cross-fetch "^3.1.4" es6-promise "^4.2.8" - web3-core-helpers "1.8.1" + web3-core-helpers "1.8.2" -web3-providers-ipc@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz#6128a3a3a824d06bf0efcfe86325401f8691a5ca" - integrity sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA== +web3-providers-ipc@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz#e52a7250f40c83b99a2482ec5b4cf2728377ae5c" + integrity sha512-p6fqKVGFg+WiXGHWnB1hu43PbvPkDHTz4RgoEzbXugv5rtv5zfYLqm8Ba6lrJOS5ks9kGKR21a0y3NzE3u7V4w== dependencies: oboe "2.1.5" - web3-core-helpers "1.8.1" + web3-core-helpers "1.8.2" -web3-providers-ws@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz#5e5370e07eb8c615ed298ebc8602b283c7b7d649" - integrity sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA== +web3-providers-ws@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz#56a2b701387011aca9154ca4bc06ea4b5f27e4ef" + integrity sha512-3s/4K+wHgbiN+Zrp9YjMq2eqAF6QGABw7wFftPdx+m5hWImV27/MoIx57c6HffNRqZXmCHnfWWFCNHHsi7wXnA== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" + web3-core-helpers "1.8.2" websocket "^1.0.32" -web3-shh@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.1.tgz#028a95cf9d3a36020380938b9a127610efbb9be7" - integrity sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g== +web3-shh@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.2.tgz#217a417f0d6e243dd4d441848ffc2bd164cea8a0" + integrity sha512-uZ+3MAoNcaJsXXNCDnizKJ5viBNeHOFYsCbFhV755Uu52FswzTOw6DtE7yK9nYXMtIhiSgi7nwl1RYzP8pystw== dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-net "1.8.1" + web3-core "1.8.2" + web3-core-method "1.8.2" + web3-core-subscriptions "1.8.2" + web3-net "1.8.2" -web3-utils@1.8.1, web3-utils@^1.3.4: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.1.tgz#f2f7ca7eb65e6feb9f3d61056d0de6bbd57125ff" - integrity sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ== +web3-utils@1.8.2, web3-utils@^1.3.4: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.2.tgz#c32dec5e9b955acbab220eefd7715bc540b75cc9" + integrity sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA== dependencies: bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" @@ -9039,22 +9010,22 @@ web3-utils@1.8.1, web3-utils@^1.3.4: utf8 "3.0.0" web3@^1.7.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.1.tgz#8ea67215ef5f3a6f6d3381800b527242ea22885a" - integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ== - dependencies: - web3-bzz "1.8.1" - web3-core "1.8.1" - web3-eth "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-shh "1.8.1" - web3-utils "1.8.1" + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.2.tgz#95a4e5398fd0f01325264bf8e5e8cdc69a7afe86" + integrity sha512-92h0GdEHW9wqDICQQKyG4foZBYi0OQkyg4CRml2F7XBl/NG+fu9o6J19kzfFXzSBoA4DnJXbyRgj/RHZv5LRiw== + dependencies: + web3-bzz "1.8.2" + web3-core "1.8.2" + web3-eth "1.8.2" + web3-eth-personal "1.8.2" + web3-net "1.8.2" + web3-shh "1.8.2" + web3-utils "1.8.2" webcrypto-core@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.5.tgz#c02104c953ca7107557f9c165d194c6316587ca4" - integrity sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A== + version "1.7.6" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.6.tgz#e32c4a12a13de4251f8f9ef336a6cba7cdec9b55" + integrity sha512-TBPiewB4Buw+HI3EQW+Bexm19/W4cP/qZG/02QJCXN+iN+T5sl074vZ3rJcle/ZtDBQSgjkbsQO/1eFcxnSBUA== dependencies: "@peculiar/asn1-schema" "^2.1.6" "@peculiar/json-schema" "^1.1.12" @@ -9108,7 +9079,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== -which-typed-array@^1.1.2: +which-typed-array@^1.1.2, which-typed-array@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== @@ -9201,15 +9172,15 @@ ws@^7.1.0, ws@^7.4.5: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.5.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.1.tgz#c51e583d79140b5e42e39be48c934131942d4a8f" + integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew== + +ws@~8.11.0: version "8.11.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== -ws@~8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" - integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== - xhr-request-promise@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" @@ -9335,9 +9306,9 @@ yargs@^16.2.0: yargs-parser "^20.2.2" yarn-audit-fix@^9.3.7: - version "9.3.7" - resolved "https://registry.yarnpkg.com/yarn-audit-fix/-/yarn-audit-fix-9.3.7.tgz#bd8c66ce2edecd930d99d55e9c6470aabdd35811" - integrity sha512-zYSp7fp3oJhGGt7o4/DvwQJTfV8M0ozOUPVpHmCAeQkJhNDj/3Zq8vLYToyffvzy2A86zZKEMPTQsLrNvYvqqA== + version "9.3.9" + resolved "https://registry.yarnpkg.com/yarn-audit-fix/-/yarn-audit-fix-9.3.9.tgz#24b6e16af8fc7987d9ceb0f8d8612469261864b5" + integrity sha512-RVmbSVm0Dfr4qSUtqc8EM0wvOAKRL5wtw2i/nUfaIqg8m4seP/umyUcpEvkU8gBmizY7QdDeVWIVndy3qAWBhw== dependencies: "@types/find-cache-dir" "^3.2.1" "@types/fs-extra" "^9.0.13" @@ -9346,7 +9317,7 @@ yarn-audit-fix@^9.3.7: "@types/yarnpkg__lockfile" "^1.1.5" "@yarnpkg/lockfile" "^1.1.0" chalk "^5.0.1" - commander "^9.4.0" + commander "^10.0.0" find-cache-dir "^4.0.0" find-up "^6.3.0" fs-extra "^10.1.0" From bce5183e4fe9c7e4fb9d0897f907a0c7bf5083e3 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 21 Feb 2023 14:27:11 +0200 Subject: [PATCH 908/956] update solana mainnet node --- src/consts.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index eb515f28f..b44abbebf 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -103,7 +103,7 @@ export enum MainNetRpcUri { OKC = "https://exchainrpc.okex.org/", ARBITRUM = "https://nova.arbitrum.io/rpc", BITGERT = "https://dedicated.brisescan.com", - SOLANA = "https://misty-rough-moon.solana-devnet.discover.quiknode.pro/af581f92338f671c86cf6fad96a9aa3451448ffd/", + SOLANA = "https://solana-mainnet.g.alchemy.com/v2/4Fm2r6LjJO91nXrKVcZBQXcWgtVe-_gx", // TODO: Algorand } @@ -121,7 +121,7 @@ type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; type AptosMeta = [AptosHelper, AptosParams]; // Static Assert to Ensure all values of Chain are in MetaMap -type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; +type MetaMapAssert = { [idx in (typeof Chain)[keyof typeof Chain]]: unknown }; export type MetaMap = { 2: ElrondMeta; From c6030295f40bb7717485fe72a854bd6c429f5aa1 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 21 Feb 2023 21:52:14 +0530 Subject: [PATCH 909/956] factory: helper: add solana to ignore contract field --- src/factory/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 116b5a444..d9a46ea7e 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -839,9 +839,9 @@ export function ChainFactory( ) => { //@ts-ignore if (nft.native.contract) { - if (![9, 18, 24, 31, 27].includes(fromChain.getNonce())) { + if (![9, 18, 24, 31, 27, 26].includes(fromChain.getNonce())) { //@ts-ignore - checkNotOldWrappedNft(new utils.getAddress(nft.native.contract)); + checkNotOldWrappedNft(utils.getAddress(nft.native.contract)); } } From 5c988ee934b6496c2ae3363cf53fd7000069ed78 Mon Sep 17 00:00:00 2001 From: rony derra Date: Mon, 20 Feb 2023 17:47:11 +0200 Subject: [PATCH 910/956] estimateContractDep --- src/factory/index.ts | 71 ++++++++++++++++++++++++++++++++++---------- src/helpers/chain.ts | 3 ++ src/helpers/web3.ts | 30 +++++++++++++++++++ 3 files changed, 88 insertions(+), 16 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d9a46ea7e..2ed754e84 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -463,25 +463,64 @@ export function ChainFactory( receiver: string, extraFee?: BigNumber.Value ) => { - const estimate = await toChain.estimateValidateTransferNft( - receiver, - nft as any, - "" - ); + try { + const axiosResult = await axios.get( + `https://sc-verify.xp.network/verify/list?from=${ + nft.collectionIdent + }&targetChain=${toChain.getNonce()}&fromChain=${fromChain.getNonce()}&tokenId=${ + nft.tokenId + }` + ); + console.log( + axiosResult?.data?.data?.length > 0 || + nft?.originChain == toChain?.getNonce() + ); + const estimate = + axiosResult?.data?.data?.length > 0 || + nft?.originChain == toChain?.getNonce() + ? await toChain?.estimateValidateTransferNft(receiver, nft as any, "") + : toChain?.estimateContractDep + ? await toChain?.estimateContractDep(toChain) + : await toChain?.estimateValidateTransferNft( + receiver, + nft as any, + "" + ); + + console.log({ estimate }); + + let conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate, + toChain.getFeeMargin() + ); - let conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate, - toChain.getFeeMargin() - ); + if (extraFee) { + conv = conv.multipliedBy(extraFee).integerValue(BigNumber.ROUND_CEIL); + console.log("extra conv"); + } - if (extraFee) { - conv = conv.multipliedBy(extraFee).integerValue(BigNumber.ROUND_CEIL); - console.log("extra conv"); + return conv; + } catch (err: any) { + console.log(err.message); + const estimate = await toChain?.estimateValidateTransferNft( + receiver, + nft as any, + "" + ); + let conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate, + toChain.getFeeMargin() + ); + if (extraFee) { + conv = conv.multipliedBy(extraFee).integerValue(BigNumber.ROUND_CEIL); + console.log("extra conv"); + } + return conv; } - - return conv; }; const estimateSFTfees = async ( diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 2a1cda600..392bc2489 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -10,6 +10,8 @@ export type NftInfo = { readonly uri: string; readonly native: Raw; readonly collectionIdent: string; + readonly tokenId?: any; + readonly originChain?: any; }; /** @@ -101,6 +103,7 @@ export interface EstimateTxFees { metadata: NftInfo, mintWith: string ): Promise; + estimateContractDep?(toChain: any): Promise; estimateValidateUnfreezeNft( to: string, metadata: NftInfo, diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index c7a06a3aa..f9781ed65 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -737,6 +737,36 @@ export async function web3HelperFactory( return new BigNumber(gas.mul(150_000).toString()); }, + async estimateContractDep(toChain: any): Promise { + try { + const gas = await provider.getGasPrice(); + const pro = toChain.getProvider(); + const wl = ["0x47Bf0dae6e92e49a3c95e5b0c71422891D5cd4FE"]; + const gk = 123; + const gkx = 42; + console.log(Minter__factory.abi, Minter__factory.bytecode); + const factory = new ethers.ContractFactory( + Minter__factory.abi, + Minter__factory.bytecode + ); + const estimateGas = await pro.estimateGas( + factory.getDeployTransaction(gk, gkx, wl) + ); + const contractFee = gas.mul(estimateGas); + const trxFee = gas.mul(150_000); + const sum = new BigNumber(contractFee.add(trxFee).toString()); + console.log({ + contractFee: new BigNumber(contractFee.toString()), + trxFee: new BigNumber(trxFee.toString()), + sum, + }); + return sum; + } catch (error: any) { + console.log(error.message); + const gas = await provider.getGasPrice(); + return new BigNumber(gas.mul(150_000).toString()); + } + }, validateAddress(adr) { return Promise.resolve(ethers.utils.isAddress(adr)); }, From ed94dd76dc87da430d9e4dd2e27d6e3769ebc014 Mon Sep 17 00:00:00 2001 From: rony derra Date: Mon, 20 Feb 2023 17:52:11 +0200 Subject: [PATCH 911/956] log --- src/helpers/web3.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index f9781ed65..9314be057 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -739,12 +739,12 @@ export async function web3HelperFactory( }, async estimateContractDep(toChain: any): Promise { try { + console.log("NEED TO DEPLOY CONTRACT"); const gas = await provider.getGasPrice(); const pro = toChain.getProvider(); const wl = ["0x47Bf0dae6e92e49a3c95e5b0c71422891D5cd4FE"]; const gk = 123; const gkx = 42; - console.log(Minter__factory.abi, Minter__factory.bytecode); const factory = new ethers.ContractFactory( Minter__factory.abi, Minter__factory.bytecode @@ -755,11 +755,6 @@ export async function web3HelperFactory( const contractFee = gas.mul(estimateGas); const trxFee = gas.mul(150_000); const sum = new BigNumber(contractFee.add(trxFee).toString()); - console.log({ - contractFee: new BigNumber(contractFee.toString()), - trxFee: new BigNumber(trxFee.toString()), - sum, - }); return sum; } catch (error: any) { console.log(error.message); From bde2ed0877aa248f4161cf639a99adc68afc4615 Mon Sep 17 00:00:00 2001 From: rony derra Date: Tue, 21 Feb 2023 12:54:37 +0200 Subject: [PATCH 912/956] isNftWhitelisted --- src/factory/index.ts | 45 ++++++++++++++++++++++---------------------- src/helpers/chain.ts | 1 + 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 2ed754e84..cbd8299d9 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -464,30 +464,31 @@ export function ChainFactory( extraFee?: BigNumber.Value ) => { try { + if (toChain?.isNftWhitelisted && fromChain?.isNftWhitelisted) { + console.log({ fromChain, toChain }); + console.log({ from: await fromChain?.isNftWhitelisted(nft) }); + console.log({ tochain: await toChain?.isNftWhitelisted(nft) }); + console.log(nft?.native); + } const axiosResult = await axios.get( - `https://sc-verify.xp.network/verify/list?from=${ - nft.collectionIdent - }&targetChain=${toChain.getNonce()}&fromChain=${fromChain.getNonce()}&tokenId=${ - nft.tokenId - }` - ); - console.log( - axiosResult?.data?.data?.length > 0 || - nft?.originChain == toChain?.getNonce() + `https://sc-verify.xp.network/verify/list?from=${nft.collectionIdent.toLowerCase()}&targetChain=${fromChain.getNonce()}&fromChain=${ + nft?.originChain + }&tokenId=${nft.tokenId}` ); - const estimate = - axiosResult?.data?.data?.length > 0 || - nft?.originChain == toChain?.getNonce() - ? await toChain?.estimateValidateTransferNft(receiver, nft as any, "") - : toChain?.estimateContractDep - ? await toChain?.estimateContractDep(toChain) - : await toChain?.estimateValidateTransferNft( - receiver, - nft as any, - "" - ); - - console.log({ estimate }); + let estimate: BigNumber; + if ( + axiosResult?.data?.data?.length == 0 && + nft?.originChain != toChain?.getNonce() && + toChain?.estimateContractDep + ) { + estimate = await toChain?.estimateContractDep(toChain); + } else { + estimate = await toChain?.estimateValidateTransferNft( + receiver, + nft as any, + "" + ); + } let conv = await calcExchangeFees( fromChain.getNonce(), diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 392bc2489..4a93bccd9 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -104,6 +104,7 @@ export interface EstimateTxFees { mintWith: string ): Promise; estimateContractDep?(toChain: any): Promise; + isNftWhitelisted?(nft: any): Promise; estimateValidateUnfreezeNft( to: string, metadata: NftInfo, From cb765d3ed59609e9dd2aa7f7a781843980e74049 Mon Sep 17 00:00:00 2001 From: rony derra Date: Tue, 21 Feb 2023 14:21:51 +0200 Subject: [PATCH 913/956] estimateFees --- src/factory/index.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index cbd8299d9..123f6ab14 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -459,22 +459,24 @@ export function ChainFactory( const estimateFees = async ( fromChain: FullChain, toChain: FullChain, - nft: NftInfo, + nft: NftInfo, receiver: string, extraFee?: BigNumber.Value ) => { try { - if (toChain?.isNftWhitelisted && fromChain?.isNftWhitelisted) { - console.log({ fromChain, toChain }); - console.log({ from: await fromChain?.isNftWhitelisted(nft) }); - console.log({ tochain: await toChain?.isNftWhitelisted(nft) }); - console.log(nft?.native); - } const axiosResult = await axios.get( `https://sc-verify.xp.network/verify/list?from=${nft.collectionIdent.toLowerCase()}&targetChain=${fromChain.getNonce()}&fromChain=${ nft?.originChain - }&tokenId=${nft.tokenId}` + }&tokenId=${nft?.native?.tokenId}` + ); + console.log({ nft }); + console.log( + nft.collectionIdent.toLowerCase(), + fromChain.getNonce(), + nft?.originChain, + nft?.native?.tokenId ); + console.log(axiosResult?.data?.data); let estimate: BigNumber; if ( axiosResult?.data?.data?.length == 0 && From e45b61e77fe101f0bfdcb9f130ea50a51f7c387b Mon Sep 17 00:00:00 2001 From: rony derra Date: Tue, 21 Feb 2023 16:22:12 +0200 Subject: [PATCH 914/956] isWrappedNft --- src/factory/index.ts | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index 123f6ab14..d8465f6dc 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -464,22 +464,28 @@ export function ChainFactory( extraFee?: BigNumber.Value ) => { try { - const axiosResult = await axios.get( - `https://sc-verify.xp.network/verify/list?from=${nft.collectionIdent.toLowerCase()}&targetChain=${fromChain.getNonce()}&fromChain=${ - nft?.originChain - }&tokenId=${nft?.native?.tokenId}` - ); - console.log({ nft }); - console.log( - nft.collectionIdent.toLowerCase(), + const isWrapped = await isWrappedNft( + nft, fromChain.getNonce(), - nft?.originChain, - nft?.native?.tokenId + toChain.getNonce() ); - console.log(axiosResult?.data?.data); + let originalContract, originalChain; + if (isWrapped) { + const resp = await axios.get(nft.uri); + originalContract = resp.data.wrapped.contract.toLowerCase(); + originalChain = resp.data.wrapped.origin; + } else { + originalContract = nft.native.contract.toLowerCase(); + originalChain = nft.native.chainId; + } + const axiosResult = await axios.get( + `https://sc-verify.xp.network/verify/list?from=${originalContract}&targetChain=${fromChain.getNonce()}&fromChain=${originalChain}` + ); + let estimate: BigNumber; if ( - axiosResult?.data?.data?.length == 0 && + (axiosResult?.data?.data?.length == 0 || + axiosResult?.data?.code != 200) && nft?.originChain != toChain?.getNonce() && toChain?.estimateContractDep ) { From 1f70fb089788a421cf57e8bcd9e3ca492dc8ff5d Mon Sep 17 00:00:00 2001 From: rony derra Date: Wed, 22 Feb 2023 10:51:51 +0200 Subject: [PATCH 915/956] estimateContractDep --- src/factory/index.ts | 118 +++++++++++++++++++++++++++++++------------ src/helpers/web3.ts | 3 +- 2 files changed, 86 insertions(+), 35 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index d8465f6dc..76e6a098f 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -203,6 +203,13 @@ export type ChainFactory = { receiver: string ): Promise; + estimateWithContractDep( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + receiver: string + ): Promise<{ calcTransfer: BigNumber; calcContractDep: BigNumber | number }>; + estimateSFTfees( fromChain: FullChain, amount: bigint, @@ -457,6 +464,39 @@ export function ChainFactory( .integerValue(BigNumber.ROUND_CEIL); } const estimateFees = async ( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + receiver: string, + extraFee?: BigNumber.Value + ) => { + const estimate = await toChain.estimateValidateTransferNft( + receiver, + nft as any, + "" + ); + + let conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate, + toChain.getFeeMargin() + ); + + if (extraFee) { + conv = conv.multipliedBy(extraFee).integerValue(BigNumber.ROUND_CEIL); + console.log("extra conv"); + } + + return conv; + }; + const estimateWithContractDep = async < + SignerF, + RawNftF, + SignerT, + RawNftT, + Resp + >( fromChain: FullChain, toChain: FullChain, nft: NftInfo, @@ -464,41 +504,49 @@ export function ChainFactory( extraFee?: BigNumber.Value ) => { try { - const isWrapped = await isWrappedNft( - nft, - fromChain.getNonce(), - toChain.getNonce() - ); - let originalContract, originalChain; + let calcContractDep: BigNumber | number = 0, + originalContract, + originalChain; + + const [isWrapped, estimate] = await Promise.all([ + await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce()), + await toChain?.estimateValidateTransferNft(receiver, nft as any, ""), + ]); + if (isWrapped) { const resp = await axios.get(nft.uri); - originalContract = resp.data.wrapped.contract.toLowerCase(); - originalChain = resp.data.wrapped.origin; + originalContract = resp?.data?.wrapped?.contract?.toLowerCase(); + originalChain = resp?.data?.wrapped?.origin; } else { originalContract = nft.native.contract.toLowerCase(); originalChain = nft.native.chainId; } - const axiosResult = await axios.get( - `https://sc-verify.xp.network/verify/list?from=${originalContract}&targetChain=${fromChain.getNonce()}&fromChain=${originalChain}` - ); - let estimate: BigNumber; - if ( - (axiosResult?.data?.data?.length == 0 || - axiosResult?.data?.code != 200) && - nft?.originChain != toChain?.getNonce() && - toChain?.estimateContractDep - ) { - estimate = await toChain?.estimateContractDep(toChain); - } else { - estimate = await toChain?.estimateValidateTransferNft( - receiver, - nft as any, - "" + const axiosResult = await axios + .post(`https://sc-verify.xp.network/default/checkWithOutTokenId`, { + fromChain: Number(originalChain), + chain: + fromChain?.getNonce() == originalChain //if first time sending + ? Number(toChain.getNonce()) + : toChain.getNonce() == originalChain //if sending back + ? Number(fromChain.getNonce()) + : Number(toChain.getNonce()), //all the rest + sc: originalContract, + }) + .catch(() => false); + + if (!axiosResult) { + //@ts-ignore + const contractFee = await toChain?.estimateContractDep(toChain); + calcContractDep = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + contractFee, + toChain.getFeeMargin() ); } - let conv = await calcExchangeFees( + let calcTransfer = await calcExchangeFees( fromChain.getNonce(), toChain.getNonce(), estimate, @@ -506,29 +554,32 @@ export function ChainFactory( ); if (extraFee) { - conv = conv.multipliedBy(extraFee).integerValue(BigNumber.ROUND_CEIL); + calcTransfer = calcTransfer + .multipliedBy(extraFee) + .integerValue(BigNumber.ROUND_CEIL); console.log("extra conv"); } - - return conv; - } catch (err: any) { - console.log(err.message); + return { calcTransfer, calcContractDep }; + } catch (error: any) { + console.log(error.message); const estimate = await toChain?.estimateValidateTransferNft( receiver, nft as any, "" ); - let conv = await calcExchangeFees( + let calcTransfer = await calcExchangeFees( fromChain.getNonce(), toChain.getNonce(), estimate, toChain.getFeeMargin() ); if (extraFee) { - conv = conv.multipliedBy(extraFee).integerValue(BigNumber.ROUND_CEIL); + calcTransfer = calcTransfer + .multipliedBy(extraFee) + .integerValue(BigNumber.ROUND_CEIL); console.log("extra conv"); } - return conv; + return { calcTransfer, calcContractDep: 0 }; } }; @@ -701,6 +752,7 @@ export function ChainFactory( } return { + estimateWithContractDep, getVerifiedContract, balance: (i, a) => i.balance(a), async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 9314be057..06ebb9187 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -753,8 +753,7 @@ export async function web3HelperFactory( factory.getDeployTransaction(gk, gkx, wl) ); const contractFee = gas.mul(estimateGas); - const trxFee = gas.mul(150_000); - const sum = new BigNumber(contractFee.add(trxFee).toString()); + const sum = new BigNumber(contractFee.toString()); return sum; } catch (error: any) { console.log(error.message); From 5298e283cf0bf555ddb5a1178220d6b75dcc7d2b Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 21 Feb 2023 12:34:07 +0200 Subject: [PATCH 916/956] update solana rpc mainnet --- src/consts.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index b44abbebf..eb515f28f 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -103,7 +103,7 @@ export enum MainNetRpcUri { OKC = "https://exchainrpc.okex.org/", ARBITRUM = "https://nova.arbitrum.io/rpc", BITGERT = "https://dedicated.brisescan.com", - SOLANA = "https://solana-mainnet.g.alchemy.com/v2/4Fm2r6LjJO91nXrKVcZBQXcWgtVe-_gx", + SOLANA = "https://misty-rough-moon.solana-devnet.discover.quiknode.pro/af581f92338f671c86cf6fad96a9aa3451448ffd/", // TODO: Algorand } @@ -121,7 +121,7 @@ type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; type AptosMeta = [AptosHelper, AptosParams]; // Static Assert to Ensure all values of Chain are in MetaMap -type MetaMapAssert = { [idx in (typeof Chain)[keyof typeof Chain]]: unknown }; +type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; export type MetaMap = { 2: ElrondMeta; From 1ca92a637b7b2aa5279ae2fe8a1f6d84782225e1 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Tue, 21 Feb 2023 14:27:11 +0200 Subject: [PATCH 917/956] update solana mainnet node --- src/consts.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index eb515f28f..b44abbebf 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -103,7 +103,7 @@ export enum MainNetRpcUri { OKC = "https://exchainrpc.okex.org/", ARBITRUM = "https://nova.arbitrum.io/rpc", BITGERT = "https://dedicated.brisescan.com", - SOLANA = "https://misty-rough-moon.solana-devnet.discover.quiknode.pro/af581f92338f671c86cf6fad96a9aa3451448ffd/", + SOLANA = "https://solana-mainnet.g.alchemy.com/v2/4Fm2r6LjJO91nXrKVcZBQXcWgtVe-_gx", // TODO: Algorand } @@ -121,7 +121,7 @@ type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; type AptosMeta = [AptosHelper, AptosParams]; // Static Assert to Ensure all values of Chain are in MetaMap -type MetaMapAssert = { [idx in typeof Chain[keyof typeof Chain]]: unknown }; +type MetaMapAssert = { [idx in (typeof Chain)[keyof typeof Chain]]: unknown }; export type MetaMap = { 2: ElrondMeta; From 5b68a05d368cdb144a467063f0a8c42d4b6f2b2b Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 22 Feb 2023 13:26:31 +0200 Subject: [PATCH 918/956] pull feeDeployment --- dist/config.d.ts | 12 + dist/config.d.ts.map | 1 + dist/config.js | 71 + dist/consts.d.ts | 212 + dist/consts.d.ts.map | 1 + dist/consts.js | 649 +++ dist/emitter.d.ts | 2 + dist/emitter.d.ts.map | 1 + dist/emitter.js | 5 + dist/factory/cons.d.ts | 17 + dist/factory/cons.d.ts.map | 1 + dist/factory/cons.js | 107 + dist/factory/factories.d.ts | 7 + dist/factory/factories.d.ts.map | 1 + dist/factory/factories.js | 1155 ++++++ dist/factory/index.d.ts | 333 ++ dist/factory/index.d.ts.map | 1 + dist/factory/index.js | 660 +++ dist/heartbeat/index.d.ts | 6 + dist/heartbeat/index.d.ts.map | 1 + dist/heartbeat/index.js | 22 + dist/heartbeat/resp.d.ts | 17 + dist/heartbeat/resp.d.ts.map | 1 + dist/heartbeat/resp.js | 3 + dist/helpers/algorand.d.ts | 108 + dist/helpers/algorand.d.ts.map | 1 + dist/helpers/algorand.js | 452 +++ dist/helpers/aptos/bridge_client.d.ts | 130 + dist/helpers/aptos/bridge_client.d.ts.map | 1 + dist/helpers/aptos/bridge_client.js | 265 ++ dist/helpers/aptos/bridge_client_abis.d.ts | 4 + .../helpers/aptos/bridge_client_abis.d.ts.map | 1 + dist/helpers/aptos/bridge_client_abis.js | 72 + dist/helpers/aptos/index.d.ts | 72 + dist/helpers/aptos/index.d.ts.map | 1 + dist/helpers/aptos/index.js | 167 + dist/helpers/bridge_pool.teal.d.ts | 3 + dist/helpers/bridge_pool.teal.d.ts.map | 1 + dist/helpers/bridge_pool.teal.js | 69 + dist/helpers/chain.d.ts | 184 + dist/helpers/chain.d.ts.map | 1 + dist/helpers/chain.js | 34 + dist/helpers/dfinity/dfinity.d.ts | 64 + dist/helpers/dfinity/dfinity.d.ts.map | 1 + dist/helpers/dfinity/dfinity.js | 256 ++ dist/helpers/dfinity/idl.d.ts | 2 + dist/helpers/dfinity/idl.d.ts.map | 1 + dist/helpers/dfinity/idl.js | 174 + dist/helpers/elrond.d.ts | 190 + dist/helpers/elrond.d.ts.map | 1 + dist/helpers/elrond.js | 647 +++ dist/helpers/hedera/hts_abi.d.ts | 238 ++ dist/helpers/hedera/hts_abi.d.ts.map | 1 + dist/helpers/hedera/hts_abi.js | 3571 +++++++++++++++++ dist/helpers/near.d.ts | 89 + dist/helpers/near.d.ts.map | 1 + dist/helpers/near.js | 232 ++ dist/helpers/secret.d.ts | 79 + dist/helpers/secret.d.ts.map | 1 + dist/helpers/secret.js | 255 ++ dist/helpers/solana/idl.d.ts | 898 +++++ dist/helpers/solana/idl.d.ts.map | 1 + dist/helpers/solana/idl.js | 900 +++++ dist/helpers/solana/index.d.ts | 44 + dist/helpers/solana/index.d.ts.map | 1 + dist/helpers/solana/index.js | 273 ++ dist/helpers/tezos.d.ts | 83 + dist/helpers/tezos.d.ts.map | 1 + dist/helpers/tezos.js | 242 ++ dist/helpers/ton-bridge.d.ts | 48 + dist/helpers/ton-bridge.d.ts.map | 1 + dist/helpers/ton-bridge.js | 92 + dist/helpers/ton.d.ts | 113 + dist/helpers/ton.d.ts.map | 1 + dist/helpers/ton.js | 347 ++ dist/helpers/tron.d.ts | 115 + dist/helpers/tron.d.ts.map | 1 + dist/helpers/tron.js | 300 ++ dist/helpers/web3.d.ts | 199 + dist/helpers/web3.d.ts.map | 1 + dist/helpers/web3.js | 529 +++ dist/helpers/web3_erc20.d.ts | 17 + dist/helpers/web3_erc20.d.ts.map | 1 + dist/helpers/web3_erc20.js | 400 ++ dist/index.d.ts | 11 + dist/index.d.ts.map | 1 + dist/index.js | 35 + dist/notifier/index.d.ts | 33 + dist/notifier/index.d.ts.map | 1 + dist/notifier/index.js | 92 + dist/scripts/deploy_tron.d.ts | 2 + dist/scripts/deploy_tron.d.ts.map | 1 + dist/scripts/deploy_tron.js | 36 + dist/socket.d.ts | 42 + dist/socket.d.ts.map | 1 + dist/socket.js | 115 + dist/type-utils.d.ts | 36 + dist/type-utils.d.ts.map | 1 + dist/type-utils.js | 3 + src/factory/index.ts | 102 +- src/helpers/chain.ts | 4 + src/helpers/web3.ts | 6 +- src/helpers/web3_erc20.ts | 1 + tsconfig.json | 4 +- 104 files changed, 15725 insertions(+), 65 deletions(-) create mode 100644 dist/config.d.ts create mode 100644 dist/config.d.ts.map create mode 100644 dist/config.js create mode 100644 dist/consts.d.ts create mode 100644 dist/consts.d.ts.map create mode 100644 dist/consts.js create mode 100644 dist/emitter.d.ts create mode 100644 dist/emitter.d.ts.map create mode 100644 dist/emitter.js create mode 100644 dist/factory/cons.d.ts create mode 100644 dist/factory/cons.d.ts.map create mode 100644 dist/factory/cons.js create mode 100644 dist/factory/factories.d.ts create mode 100644 dist/factory/factories.d.ts.map create mode 100644 dist/factory/factories.js create mode 100644 dist/factory/index.d.ts create mode 100644 dist/factory/index.d.ts.map create mode 100644 dist/factory/index.js create mode 100644 dist/heartbeat/index.d.ts create mode 100644 dist/heartbeat/index.d.ts.map create mode 100644 dist/heartbeat/index.js create mode 100644 dist/heartbeat/resp.d.ts create mode 100644 dist/heartbeat/resp.d.ts.map create mode 100644 dist/heartbeat/resp.js create mode 100644 dist/helpers/algorand.d.ts create mode 100644 dist/helpers/algorand.d.ts.map create mode 100644 dist/helpers/algorand.js create mode 100644 dist/helpers/aptos/bridge_client.d.ts create mode 100644 dist/helpers/aptos/bridge_client.d.ts.map create mode 100644 dist/helpers/aptos/bridge_client.js create mode 100644 dist/helpers/aptos/bridge_client_abis.d.ts create mode 100644 dist/helpers/aptos/bridge_client_abis.d.ts.map create mode 100644 dist/helpers/aptos/bridge_client_abis.js create mode 100644 dist/helpers/aptos/index.d.ts create mode 100644 dist/helpers/aptos/index.d.ts.map create mode 100644 dist/helpers/aptos/index.js create mode 100644 dist/helpers/bridge_pool.teal.d.ts create mode 100644 dist/helpers/bridge_pool.teal.d.ts.map create mode 100644 dist/helpers/bridge_pool.teal.js create mode 100644 dist/helpers/chain.d.ts create mode 100644 dist/helpers/chain.d.ts.map create mode 100644 dist/helpers/chain.js create mode 100644 dist/helpers/dfinity/dfinity.d.ts create mode 100644 dist/helpers/dfinity/dfinity.d.ts.map create mode 100644 dist/helpers/dfinity/dfinity.js create mode 100644 dist/helpers/dfinity/idl.d.ts create mode 100644 dist/helpers/dfinity/idl.d.ts.map create mode 100644 dist/helpers/dfinity/idl.js create mode 100644 dist/helpers/elrond.d.ts create mode 100644 dist/helpers/elrond.d.ts.map create mode 100644 dist/helpers/elrond.js create mode 100644 dist/helpers/hedera/hts_abi.d.ts create mode 100644 dist/helpers/hedera/hts_abi.d.ts.map create mode 100644 dist/helpers/hedera/hts_abi.js create mode 100644 dist/helpers/near.d.ts create mode 100644 dist/helpers/near.d.ts.map create mode 100644 dist/helpers/near.js create mode 100644 dist/helpers/secret.d.ts create mode 100644 dist/helpers/secret.d.ts.map create mode 100644 dist/helpers/secret.js create mode 100644 dist/helpers/solana/idl.d.ts create mode 100644 dist/helpers/solana/idl.d.ts.map create mode 100644 dist/helpers/solana/idl.js create mode 100644 dist/helpers/solana/index.d.ts create mode 100644 dist/helpers/solana/index.d.ts.map create mode 100644 dist/helpers/solana/index.js create mode 100644 dist/helpers/tezos.d.ts create mode 100644 dist/helpers/tezos.d.ts.map create mode 100644 dist/helpers/tezos.js create mode 100644 dist/helpers/ton-bridge.d.ts create mode 100644 dist/helpers/ton-bridge.d.ts.map create mode 100644 dist/helpers/ton-bridge.js create mode 100644 dist/helpers/ton.d.ts create mode 100644 dist/helpers/ton.d.ts.map create mode 100644 dist/helpers/ton.js create mode 100644 dist/helpers/tron.d.ts create mode 100644 dist/helpers/tron.d.ts.map create mode 100644 dist/helpers/tron.js create mode 100644 dist/helpers/web3.d.ts create mode 100644 dist/helpers/web3.d.ts.map create mode 100644 dist/helpers/web3.js create mode 100644 dist/helpers/web3_erc20.d.ts create mode 100644 dist/helpers/web3_erc20.d.ts.map create mode 100644 dist/helpers/web3_erc20.js create mode 100644 dist/index.d.ts create mode 100644 dist/index.d.ts.map create mode 100644 dist/index.js create mode 100644 dist/notifier/index.d.ts create mode 100644 dist/notifier/index.d.ts.map create mode 100644 dist/notifier/index.js create mode 100644 dist/scripts/deploy_tron.d.ts create mode 100644 dist/scripts/deploy_tron.d.ts.map create mode 100644 dist/scripts/deploy_tron.js create mode 100644 dist/socket.d.ts create mode 100644 dist/socket.d.ts.map create mode 100644 dist/socket.js create mode 100644 dist/type-utils.d.ts create mode 100644 dist/type-utils.d.ts.map create mode 100644 dist/type-utils.js diff --git a/dist/config.d.ts b/dist/config.d.ts new file mode 100644 index 000000000..e9d1ceede --- /dev/null +++ b/dist/config.d.ts @@ -0,0 +1,12 @@ +import { AppConfig, ChainFactory } from "."; +export declare namespace AppConfigs { + const MainNet: () => AppConfig; + const TestNet: () => AppConfig; + const Staging: () => AppConfig; +} +export declare namespace ChainFactories { + const MainNet: () => Promise; + const TestNet: () => Promise; + const Staging: () => Promise; +} +//# sourceMappingURL=config.d.ts.map diff --git a/dist/config.d.ts.map b/dist/config.d.ts.map new file mode 100644 index 000000000..8af4855d1 --- /dev/null +++ b/dist/config.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAuB,MAAM,GAAG,CAAC;AAEjE,yBAAiB,UAAU,CAAC;IACnB,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;IACK,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;CACH;AAED,yBAAiB,cAAc,CAAC;IACvB,MAAM,OAAO,6BAKnB,CAAC;IAEK,MAAM,OAAO,6BAKnB,CAAC;IACK,MAAM,OAAO,6BAKnB,CAAC;CACH"} \ No newline at end of file diff --git a/dist/config.js b/dist/config.js new file mode 100644 index 000000000..77ef07484 --- /dev/null +++ b/dist/config.js @@ -0,0 +1,71 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ChainFactories = exports.AppConfigs = void 0; +const _1 = require("."); +var AppConfigs; +(function (AppConfigs) { + AppConfigs.MainNet = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://nft-index.xp.network/index/", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", + txSocketUri: "https://transaction-socket.xp.network", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com", + wrappedNftPrefix: "https://nft.xp.network/w/", + scVerifyUri: "https://sc-verify.xp.network", + network: "mainnet", + }; + }; + AppConfigs.TestNet = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://testnet-notifier.xp.network/testnet-indexer/", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1MjA4NzAwNiwiZXhwIjoxNjU5ODYzMDA2fQ.ERjXpljkyuklPTJCSXQXZ-Wh09oxQwA4u8HKIbIwO1TSajvLIlNgxseqBVEd5D4lkqXYGwcezkuezuRc3kKkKg", + txSocketUri: "https://testnet-tx-socket.herokuapp.com", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", + wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", + scVerifyUri: "https://testnet-sc-verify.herokuapp.com", + network: "testnet", + }; + }; + AppConfigs.Staging = () => { + return { + exchangeRateUri: "https://testing-bridge.xp.network/exchange/", + nftListUri: "https://tools.xp.network/index", + nftListAuthToken: + "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", + txSocketUri: "https://bridge1.xp.network/tx-socket", + tronScanUri: "https://apilist.tronscan.org/api/", + heartbeatUri: "https://xpheartbeat.herokuapp.com", + wrappedNftPrefix: "https://staging-nft.xp.network/w/", + scVerifyUri: "https://bridge1.xp.network/sc-verify", + network: "staging", + }; + }; +})((AppConfigs = exports.AppConfigs || (exports.AppConfigs = {}))); +var ChainFactories; +(function (ChainFactories) { + ChainFactories.MainNet = async () => { + return (0, _1.ChainFactory)( + AppConfigs.MainNet(), + await _1.ChainFactoryConfigs.MainNet() + ); + }; + ChainFactories.TestNet = async () => { + return (0, _1.ChainFactory)( + AppConfigs.TestNet(), + await _1.ChainFactoryConfigs.TestNet() + ); + }; + ChainFactories.Staging = async () => { + return (0, _1.ChainFactory)( + AppConfigs.Staging(), + await _1.ChainFactoryConfigs.Staging() + ); + }; +})((ChainFactories = exports.ChainFactories || (exports.ChainFactories = {}))); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3QkFBaUU7QUFFakUsSUFBaUIsVUFBVSxDQTRDMUI7QUE1Q0QsV0FBaUIsVUFBVTtJQUNaLGtCQUFPLEdBQW9CLEdBQUcsRUFBRTtRQUMzQyxPQUFPO1lBQ0wsZUFBZSxFQUFFLDZDQUE2QztZQUM5RCxVQUFVLEVBQUUscUNBQXFDO1lBQ2pELGdCQUFnQixFQUNkLGdMQUFnTDtZQUNsTCxXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELFdBQVcsRUFBRSxtQ0FBbUM7WUFDaEQsWUFBWSxFQUFFLG1DQUFtQztZQUNqRCxnQkFBZ0IsRUFBRSwyQkFBMkI7WUFDN0MsV0FBVyxFQUFFLDhCQUE4QjtZQUMzQyxPQUFPLEVBQUUsU0FBUztTQUNuQixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBQ1csa0JBQU8sR0FBb0IsR0FBRyxFQUFFO1FBQzNDLE9BQU87WUFDTCxlQUFlLEVBQUUsNkNBQTZDO1lBQzlELFVBQVUsRUFBRSxzREFBc0Q7WUFDbEUsZ0JBQWdCLEVBQ2QsZ0xBQWdMO1lBQ2xMLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsV0FBVyxFQUFFLG1DQUFtQztZQUNoRCxZQUFZLEVBQUUsaURBQWlEO1lBQy9ELGdCQUFnQixFQUFFLDBDQUEwQztZQUM1RCxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUM7SUFDSixDQUFDLENBQUM7SUFFVyxrQkFBTyxHQUFvQixHQUFHLEVBQUU7UUFDM0MsT0FBTztZQUNMLGVBQWUsRUFBRSw2Q0FBNkM7WUFDOUQsVUFBVSxFQUFFLGdDQUFnQztZQUM1QyxnQkFBZ0IsRUFDZCxnTEFBZ0w7WUFDbEwsV0FBVyxFQUFFLHNDQUFzQztZQUNuRCxXQUFXLEVBQUUsbUNBQW1DO1lBQ2hELFlBQVksRUFBRSxtQ0FBbUM7WUFDakQsZ0JBQWdCLEVBQUUsbUNBQW1DO1lBQ3JELFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsRUE1Q2dCLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBNEMxQjtBQUVELElBQWlCLGNBQWMsQ0FvQjlCO0FBcEJELFdBQWlCLGNBQWM7SUFDaEIsc0JBQU8sR0FBRyxLQUFLLElBQUksRUFBRTtRQUNoQyxPQUFPLElBQUEsZUFBWSxFQUNqQixVQUFVLENBQUMsT0FBTyxFQUFFLEVBQ3BCLE1BQU0sc0JBQW1CLENBQUMsT0FBTyxFQUFFLENBQ3BDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFVyxzQkFBTyxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ2hDLE9BQU8sSUFBQSxlQUFZLEVBQ2pCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFDcEIsTUFBTSxzQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FDcEMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUNXLHNCQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDaEMsT0FBTyxJQUFBLGVBQVksRUFDakIsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUNwQixNQUFNLHNCQUFtQixDQUFDLE9BQU8sRUFBRSxDQUNwQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxFQXBCZ0IsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFvQjlCIn0= diff --git a/dist/consts.d.ts b/dist/consts.d.ts new file mode 100644 index 000000000..dc186e72f --- /dev/null +++ b/dist/consts.d.ts @@ -0,0 +1,212 @@ +import { ElrondParams, ElrondHelper } from "./helpers/elrond"; +import { TronParams, TronHelper } from "./helpers/tron"; +import { Web3Params, Web3Helper } from "./helpers/web3"; +import { + SupportedCurrency, + SupportedCurrencyName, +} from "crypto-exchange-rate/dist/model/domain"; +import { AlgorandParams, AlgorandHelper } from "./helpers/algorand"; +import { TezosHelper, TezosParams } from "./helpers/tezos"; +import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; +import { SecretHelper, SecretParams } from "./helpers/secret"; +import { SolanaHelper, SolanaParams } from "./helpers/solana"; +import { TonHelper, TonParams } from "./helpers/ton"; +import { DfinityHelper, DfinityParams } from "./helpers/dfinity/dfinity"; +import { NearHelper, NearParams } from "./helpers/near"; +import { AptosHelper, AptosParams } from "./helpers/aptos"; +import { Web3ERC20Params } from "./helpers/web3_erc20"; +export declare enum TestNetRpcUri { + ELROND = "https://devnet-gateway.elrond.com", + HECO = "https://http-testnet.hecochain.com", + BSC = "https://data-seed-prebsc-2-s3.binance.org:8545/", + ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", + AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", + POLYGON = "https://matic-mumbai.chainstacklabs.com", + FANTOM = "https://fantom-testnet.public.blastapi.io", + TRON = "https://api.shasta.trongrid.io/", + CELO = "https://alfajores-forno.celo-testnet.org", + HARMONY = "https://api.s0.b.hmny.io", + XDAI = "https://sokol.poa.network", + UNIQUE = "https://rpc-opal.unique.network/", + TEZOS = "https://ghostnet.smartpy.io", + VELAS = "https://explorer.testnet.velas.com/rpc", + IOTEX = "https://babel-api.testnet.iotex.io", + AURORA = "https://testnet.aurora.dev/", + GODWOKEN = "https://godwoken-testnet-v1.ckbapp.dev", + GATECHAIN = "https://meteora-evm.gatenode.cc", + VECHAIN = "https://sync-testnet.veblocks.net", + SECRET = "https://api.pulsar.scrttestnet.com", + SKALE = "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar", + HEDERA = "https://0.testnet.hedera.com/", + NEAR = "https://rpc.testnet.near.org", + MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", + ABEYCHAIN = "https://testrpc.abeychain.com", + APTOS = "https://fullnode.testnet.aptoslabs.com", + TON = "https://testnet.toncenter.com/api/v2/jsonRPC", + SOLANA = "https://api.devnet.solana.com", + CADUCEUS = "https://galaxy.block.caduceus.foundation", + OKC = "https://exchaintestrpc.okex.org", + ARBITRUM = "https://goerli-rollup.arbitrum.io/rpc", + BITGERT = "https://testnet-rpc.brisescan.com", +} +export declare enum MainNetRpcUri { + ELROND = "https://gateway.elrond.com", + HECO = "https://http-mainnet-node.huobichain.com", + BSC = "https://bsc-dataseed.binance.org/", + ETHEREUM = "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", + AVALANCHE = "https://api.avax.network/ext/bc/C/rpc", + POLYGON = "https://polygon-rpc.com", + FANTOM = "https://rpc.ftm.tools/", + TRON = "https://api.trongrid.io/", + CELO = "https://forno.celo.org", + HARMONY = "https://rpc.s0.t.hmny.io", + XDAI = "https://gnosischain-rpc.gateway.pokt.network/", + FUSE = "https://rpc.fuse.io/", + VELAS = "https://mainnet.velas.com/rpc", + TEZOS = "https://mainnet.smartpy.io", + IOTEX = "https://babel-api.mainnet.iotex.io", + AURORA = "https://mainnet.aurora.dev", + GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", + GATECHAIN = "https://evm.gatenode.cc", + VECHAIN = "https://sync-mainnet.veblocks.net", + SECRET = "https://secret-4.api.trivium.network:1317", + SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", + NEAR = "https://rpc.mainnet.near.org", + MOONBEAM = "https://rpc.api.moonbeam.network", + ABEYCHAIN = "https://rpc.abeychain.com", + TON = "https://toncenter.com/api/v2/jsonRPC", + APTOS = "https://fullnode.mainnet.aptoslabs.com/", + CADUCEUS = "https://mainnet.block.caduceus.foundation/", + OKC = "https://exchainrpc.okex.org/", + ARBITRUM = "https://nova.arbitrum.io/rpc", + BITGERT = "https://dedicated.brisescan.com", + SOLANA = "https://solana-mainnet.g.alchemy.com/v2/4Fm2r6LjJO91nXrKVcZBQXcWgtVe-_gx", +} +declare type ElrondMeta = [ElrondHelper, ElrondParams]; +declare type Web3Meta = [Web3Helper, Web3Params]; +declare type TronMeta = [TronHelper, TronParams]; +declare type AlgoMeta = [AlgorandHelper, AlgorandParams]; +declare type TezosMeta = [TezosHelper, TezosParams]; +declare type SecretMeta = [SecretHelper, SecretParams]; +declare type SolanaMeta = [SolanaHelper, SolanaParams]; +declare type TonMeta = [TonHelper, TonParams]; +declare type DfinityMeta = [DfinityHelper, DfinityParams]; +declare type NearMeta = [NearHelper, NearParams]; +declare type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; +declare type AptosMeta = [AptosHelper, AptosParams]; +declare type MetaMapAssert = { + [idx in typeof Chain[keyof typeof Chain]]: unknown; +}; +export declare type MetaMap = { + 2: ElrondMeta; + 3: Web3Meta; + 4: Web3Meta; + 5: Web3Meta; + 6: Web3Meta; + 7: Web3Meta; + 8: Web3Meta; + 9: TronMeta; + 0xb: Web3Meta; + 0xc: Web3Meta; + 0xd: Web3Meta; + 0xe: Web3Meta; + 0xf: AlgoMeta; + 0x10: Web3Meta; + 0x11: Web3Meta; + 0x12: TezosMeta; + 0x13: Web3Meta; + 0x14: Web3Meta; + 0x15: Web3Meta; + 0x16: Web3Meta; + 0x17: Web3Meta; + 0x18: SecretMeta; + 0x19: Web3Meta; + 0x1a: SolanaMeta; + 0x1b: TonMeta; + 0x1c: DfinityMeta; + 0x1d: Web3Meta; + 0x1e: Web3ERC20Meta; + 0x1f: NearMeta; + 0x20: Web3Meta; + 0x21: Web3Meta; + 0x22: AptosMeta; + 0x23: Web3Meta; + 0x24: Web3Meta; + 0x25: Web3Meta; + 0x26: Web3Meta; +} & MetaMapAssert; +export declare namespace Chain { + const ELROND = 2; + const HECO = 3; + const BSC = 4; + const ETHEREUM = 5; + const AVALANCHE = 6; + const POLYGON = 7; + const FANTOM = 8; + const TRON = 9; + const CELO = 11; + const HARMONY = 12; + const ONT = 13; + const XDAI = 14; + const ALGORAND = 15; + const FUSE = 16; + const UNIQUE = 17; + const TEZOS = 18; + const VELAS = 19; + const IOTEX = 20; + const AURORA = 21; + const GODWOKEN = 22; + const GATECHAIN = 23; + const SECRET = 24; + const VECHAIN = 25; + const SOLANA = 26; + const TON = 27; + const DFINITY = 28; + const HEDERA = 29; + const SKALE = 30; + const NEAR = 31; + const MOONBEAM = 32; + const ABEYCHAIN = 33; + const APTOS = 34; + const CADUCEUS = 35; + const OKC = 36; + const ARBITRUM = 37; + const BITGERT = 38; +} +interface ChainData { + name: string; + nonce: number; + decimals: number; + constructor: (p: InferChainParam) => Promise>; + blockExplorerUrl: string; + tnBlockExplorerUrl?: string | ((tx: string) => string); + chainId?: number; + tnChainId?: number; + currency: SupportedCurrency; + currencySymbol: SupportedCurrencyName; + type: string; + blockExplorerUrlAddr?: string; + tnBlockExplorerUrlAddr?: string | ((tx: string) => string); + rejectUnfreeze?: string[]; +} +declare type ChainInfo = { + set(k: T, v: ChainData | undefined): void; + get(k: T): ChainData | undefined; +} & Map>; +export declare enum ChainType { + EVM = "EVM", + ELROND = "ELROND", + TRON = "TRON", + TEZOS = "TEZOS", + ALGORAND = "ALGORAND", + COSMOS = "COSMOS", + DFINITY = "DFINITY", + SOLANA = "SOLANA", + TON = "TON", + NEAR = "NEAR", + HEDERA = "HEDERA", + APTOS = "APTOS", +} +export declare const CHAIN_INFO: ChainInfo; +export {}; +//# sourceMappingURL=consts.d.ts.map diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map new file mode 100644 index 000000000..51b26795c --- /dev/null +++ b/dist/consts.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js new file mode 100644 index 000000000..8c166bac5 --- /dev/null +++ b/dist/consts.js @@ -0,0 +1,649 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CHAIN_INFO = + exports.ChainType = + exports.Chain = + exports.MainNetRpcUri = + exports.TestNetRpcUri = + void 0; +const elrond_1 = require("./helpers/elrond"); +const tron_1 = require("./helpers/tron"); +const web3_1 = require("./helpers/web3"); +const domain_1 = require("crypto-exchange-rate/dist/model/domain"); +const Decimals_1 = require("crypto-exchange-rate/dist/model/domain/Decimals"); +const algorand_1 = require("./helpers/algorand"); +const tezos_1 = require("./helpers/tezos"); +const secret_1 = require("./helpers/secret"); +const solana_1 = require("./helpers/solana"); +const ton_1 = require("./helpers/ton"); +const dfinity_1 = require("./helpers/dfinity/dfinity"); +const near_1 = require("./helpers/near"); +const aptos_1 = require("./helpers/aptos"); +const web3_erc20_1 = require("./helpers/web3_erc20"); +// All the supported testnet uri's are here. +var TestNetRpcUri; +(function (TestNetRpcUri) { + TestNetRpcUri["ELROND"] = "https://devnet-gateway.elrond.com"; + TestNetRpcUri["HECO"] = "https://http-testnet.hecochain.com"; + TestNetRpcUri["BSC"] = "https://data-seed-prebsc-2-s3.binance.org:8545/"; + TestNetRpcUri["ROPSTEN"] = + "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467"; + TestNetRpcUri["AVALANCHE"] = "https://api.avax-test.network/ext/bc/C/rpc"; + TestNetRpcUri["POLYGON"] = "https://matic-mumbai.chainstacklabs.com"; + TestNetRpcUri["FANTOM"] = "https://fantom-testnet.public.blastapi.io"; + TestNetRpcUri["TRON"] = "https://api.shasta.trongrid.io/"; + TestNetRpcUri["CELO"] = "https://alfajores-forno.celo-testnet.org"; + TestNetRpcUri["HARMONY"] = "https://api.s0.b.hmny.io"; + TestNetRpcUri["XDAI"] = "https://sokol.poa.network"; + TestNetRpcUri["UNIQUE"] = "https://rpc-opal.unique.network/"; + TestNetRpcUri["TEZOS"] = "https://ghostnet.smartpy.io"; + TestNetRpcUri["VELAS"] = "https://explorer.testnet.velas.com/rpc"; + TestNetRpcUri["IOTEX"] = "https://babel-api.testnet.iotex.io"; + TestNetRpcUri["AURORA"] = "https://testnet.aurora.dev/"; + TestNetRpcUri["GODWOKEN"] = "https://godwoken-testnet-v1.ckbapp.dev"; + TestNetRpcUri["GATECHAIN"] = "https://meteora-evm.gatenode.cc"; + TestNetRpcUri["VECHAIN"] = "https://sync-testnet.veblocks.net"; + TestNetRpcUri["SECRET"] = "https://api.pulsar.scrttestnet.com"; + TestNetRpcUri["SKALE"] = + "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar"; + TestNetRpcUri["HEDERA"] = "https://0.testnet.hedera.com/"; + TestNetRpcUri["NEAR"] = "https://rpc.testnet.near.org"; + TestNetRpcUri["MOONBEAM"] = "https://rpc.api.moonbase.moonbeam.network"; + TestNetRpcUri["ABEYCHAIN"] = "https://testrpc.abeychain.com"; + TestNetRpcUri["APTOS"] = "https://fullnode.testnet.aptoslabs.com"; + TestNetRpcUri["TON"] = "https://testnet.toncenter.com/api/v2/jsonRPC"; + TestNetRpcUri["SOLANA"] = "https://api.devnet.solana.com"; + TestNetRpcUri["CADUCEUS"] = "https://galaxy.block.caduceus.foundation"; + TestNetRpcUri["OKC"] = "https://exchaintestrpc.okex.org"; + TestNetRpcUri["ARBITRUM"] = "https://goerli-rollup.arbitrum.io/rpc"; + TestNetRpcUri["BITGERT"] = "https://testnet-rpc.brisescan.com"; + // TODO: Algorand + // TODO: Fuse +})((TestNetRpcUri = exports.TestNetRpcUri || (exports.TestNetRpcUri = {}))); +var MainNetRpcUri; +(function (MainNetRpcUri) { + MainNetRpcUri["ELROND"] = "https://gateway.elrond.com"; + MainNetRpcUri["HECO"] = "https://http-mainnet-node.huobichain.com"; + MainNetRpcUri["BSC"] = "https://bsc-dataseed.binance.org/"; + MainNetRpcUri["ETHEREUM"] = + "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161"; + MainNetRpcUri["AVALANCHE"] = "https://api.avax.network/ext/bc/C/rpc"; + MainNetRpcUri["POLYGON"] = "https://polygon-rpc.com"; + MainNetRpcUri["FANTOM"] = "https://rpc.ftm.tools/"; + MainNetRpcUri["TRON"] = "https://api.trongrid.io/"; + MainNetRpcUri["CELO"] = "https://forno.celo.org"; + MainNetRpcUri["HARMONY"] = "https://rpc.s0.t.hmny.io"; + MainNetRpcUri["XDAI"] = "https://gnosischain-rpc.gateway.pokt.network/"; + MainNetRpcUri["FUSE"] = "https://rpc.fuse.io/"; + MainNetRpcUri["VELAS"] = "https://mainnet.velas.com/rpc"; + MainNetRpcUri["TEZOS"] = "https://mainnet.smartpy.io"; + MainNetRpcUri["IOTEX"] = "https://babel-api.mainnet.iotex.io"; + MainNetRpcUri["AURORA"] = "https://mainnet.aurora.dev"; + MainNetRpcUri["GODWOKEN"] = "https://v1.mainnet.godwoken.io/rpc"; + MainNetRpcUri["GATECHAIN"] = "https://evm.gatenode.cc"; + MainNetRpcUri["VECHAIN"] = "https://sync-mainnet.veblocks.net"; + MainNetRpcUri["SECRET"] = "https://secret-4.api.trivium.network:1317"; + MainNetRpcUri["SKALE"] = + "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague"; + MainNetRpcUri["NEAR"] = "https://rpc.mainnet.near.org"; + MainNetRpcUri["MOONBEAM"] = "https://rpc.api.moonbeam.network"; + MainNetRpcUri["ABEYCHAIN"] = "https://rpc.abeychain.com"; + MainNetRpcUri["TON"] = "https://toncenter.com/api/v2/jsonRPC"; + MainNetRpcUri["APTOS"] = "https://fullnode.mainnet.aptoslabs.com/"; + MainNetRpcUri["CADUCEUS"] = "https://mainnet.block.caduceus.foundation/"; + MainNetRpcUri["OKC"] = "https://exchainrpc.okex.org/"; + MainNetRpcUri["ARBITRUM"] = "https://nova.arbitrum.io/rpc"; + MainNetRpcUri["BITGERT"] = "https://dedicated.brisescan.com"; + MainNetRpcUri["SOLANA"] = + "https://solana-mainnet.g.alchemy.com/v2/4Fm2r6LjJO91nXrKVcZBQXcWgtVe-_gx"; + // TODO: Algorand +})((MainNetRpcUri = exports.MainNetRpcUri || (exports.MainNetRpcUri = {}))); +var Chain; +(function (Chain) { + Chain.ELROND = 2; + Chain.HECO = 3; + Chain.BSC = 4; + Chain.ETHEREUM = 5; + Chain.AVALANCHE = 0x6; + Chain.POLYGON = 7; + Chain.FANTOM = 8; + Chain.TRON = 9; + Chain.CELO = 0xb; //11 + Chain.HARMONY = 0xc; //12 + Chain.ONT = 0xd; //13 + Chain.XDAI = 0xe; //14 + Chain.ALGORAND = 0xf; //15 + Chain.FUSE = 0x10; // 16 + Chain.UNIQUE = 0x11; // 17 + Chain.TEZOS = 0x12; // 18 + Chain.VELAS = 0x13; // 19 + Chain.IOTEX = 0x14; // 20 + Chain.AURORA = 0x15; // 21 + Chain.GODWOKEN = 0x16; // 22 + Chain.GATECHAIN = 0x17; // 23 + Chain.SECRET = 0x18; // 24 + Chain.VECHAIN = 0x19; // 25 + Chain.SOLANA = 0x1a; // 26 + Chain.TON = 0x1b; // 27 + Chain.DFINITY = 0x1c; // 28 + Chain.HEDERA = 0x1d; // 29 + Chain.SKALE = 0x1e; // 30 + Chain.NEAR = 0x1f; // 31 + Chain.MOONBEAM = 0x20; // 32 + Chain.ABEYCHAIN = 0x21; // 33 + Chain.APTOS = 0x22; // 34 + Chain.CADUCEUS = 0x23; // 35 + Chain.OKC = 0x24; // 36 + Chain.ARBITRUM = 0x25; //37 + Chain.BITGERT = 0x26; //37 +})((Chain = exports.Chain || (exports.Chain = {}))); +var ChainType; +(function (ChainType) { + ChainType["EVM"] = "EVM"; + ChainType["ELROND"] = "ELROND"; + ChainType["TRON"] = "TRON"; + ChainType["TEZOS"] = "TEZOS"; + ChainType["ALGORAND"] = "ALGORAND"; + ChainType["COSMOS"] = "COSMOS"; + ChainType["DFINITY"] = "DFINITY"; + ChainType["SOLANA"] = "SOLANA"; + ChainType["TON"] = "TON"; + ChainType["NEAR"] = "NEAR"; + ChainType["HEDERA"] = "HEDERA"; + ChainType["APTOS"] = "APTOS"; +})((ChainType = exports.ChainType || (exports.ChainType = {}))); +exports.CHAIN_INFO = new Map(); +exports.CHAIN_INFO.set(Chain.ELROND, { + name: "Elrond", + nonce: 2, + decimals: Decimals_1.DecimalsByCurrency.EGLD, + constructor: elrond_1.elrondHelperFactory, + blockExplorerUrl: "https://explorer.elrond.com/transactions/", + blockExplorerUrlAddr: "https://explorer.elrond.com/address/", + tnBlockExplorerUrl: "https://testnet-explorer.elrond.com/transactions/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.elrond.com/address/", + currency: domain_1.SupportedCurrency.EGLD, + currencySymbol: domain_1.SupportedCurrencyName.EGLD, + type: ChainType.ELROND, +}); +exports.CHAIN_INFO.set(Chain.HECO, { + name: "HECO", + nonce: 3, + chainId: 256, + decimals: Decimals_1.DecimalsByCurrency.HT, + blockExplorerUrl: "https://testnet.hecoinfo.com/tx", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.HT, + currencySymbol: domain_1.SupportedCurrencyName.HT, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.BSC, { + name: "BSC", + nonce: 4, + chainId: 97, + decimals: Decimals_1.DecimalsByCurrency.BNB, + blockExplorerUrl: "https://bscscan.com/tx/", + blockExplorerUrlAddr: "https://bscscan.com/address/", + tnBlockExplorerUrl: "https://testnet.bscscan.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet.bscscan.com/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.BNB, + currencySymbol: domain_1.SupportedCurrencyName.BNB, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.ETHEREUM, { + name: "Ethereum", + nonce: 5, + currency: domain_1.SupportedCurrency.ETH, + currencySymbol: domain_1.SupportedCurrencyName.ETH, + chainId: 5, + decimals: Decimals_1.DecimalsByCurrency.ETH, + blockExplorerUrl: "https://etherscan.io/tx/", + blockExplorerUrlAddr: "https://etherscan.io/address/", + tnBlockExplorerUrl: "https://goerli.etherscan.io/tx/", + tnBlockExplorerUrlAddr: "https://goerli.etherscan.io/address/", + constructor: web3_1.web3HelperFactory, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.AVALANCHE, { + name: "Avalanche", + nonce: 6, + chainId: 43113, + decimals: Decimals_1.DecimalsByCurrency.AVAX, + blockExplorerUrl: "https://snowtrace.io/tx/", + tnBlockExplorerUrl: "https://testnet.snowtrace.io/tx/", + blockExplorerUrlAddr: "https://snowtrace.io/address/", + tnBlockExplorerUrlAddr: "https://testnet.snowtrace.io/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.AVAX, + currencySymbol: domain_1.SupportedCurrencyName.AVAX, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.POLYGON, { + name: "Polygon", + nonce: 0x7, + chainId: 80001, + decimals: Decimals_1.DecimalsByCurrency.MATIC, + blockExplorerUrl: "https://polygonscan.com/tx/", + tnBlockExplorerUrl: "https://mumbai.polygonscan.com/tx/", + blockExplorerUrlAddr: "https://polygonscan.com/address/", + tnBlockExplorerUrlAddr: "https://mumbai.polygonscan.com/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.MATIC, + currencySymbol: domain_1.SupportedCurrencyName.MATIC, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.FANTOM, { + name: "Fantom", + nonce: 0x8, + decimals: Decimals_1.DecimalsByCurrency.FTM, + chainId: 4002, + blockExplorerUrl: "https://ftmscan.com/tx/", + blockExplorerUrlAddr: "https://ftmscan.com/address/", + tnBlockExplorerUrlAddr: "https://testnet.ftmscan.com/address/", + tnBlockExplorerUrl: "https://testnet.ftmscan.com/tx/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.FTM, + currencySymbol: domain_1.SupportedCurrencyName.FTM, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.TRON, { + name: "Tron", + nonce: 0x9, + decimals: Decimals_1.DecimalsByCurrency.TRX, + blockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", + tnBlockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", + blockExplorerUrlAddr: "https://tronscan.io/#/address/", + tnBlockExplorerUrlAddr: "https://shasta.tronscan.org/#/address/", + constructor: tron_1.tronHelperFactory, + currency: domain_1.SupportedCurrency.TRX, + currencySymbol: domain_1.SupportedCurrencyName.TRX, + type: ChainType.TRON, +}); +exports.CHAIN_INFO.set(Chain.CELO, { + name: "Celo", + nonce: 0xb, + decimals: Decimals_1.DecimalsByCurrency.CELO, + chainId: 44787, + blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.CELO, + currencySymbol: domain_1.SupportedCurrencyName.CELO, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.HARMONY, { + name: "Harmony", + nonce: 0xc, + decimals: Decimals_1.DecimalsByCurrency.ONE, + chainId: 1666700000, + blockExplorerUrl: "https://explorer.harmony.one/tx/", + tnBlockExplorerUrl: "https://explorer.testnet.harmony.one/tx/", + blockExplorerUrlAddr: "https://explorer.harmony.one/address/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.harmony.one/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.ONE, + currencySymbol: domain_1.SupportedCurrencyName.ONE, + type: ChainType.EVM, + rejectUnfreeze: [ + "0xb90Dc9e354001e6260DE670EDD6aBaDb890C6aC9", + "0xAd6f94bDefB6D5ae941392Da5224ED083AE33adc", + ], +}); +exports.CHAIN_INFO.set(Chain.ONT, { + name: "Ontology", + nonce: 0xd, + decimals: Decimals_1.DecimalsByCurrency.ONT, + chainId: 1666700000, + blockExplorerUrl: "https://explorer.pops.one/tx", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.ONT, + currencySymbol: domain_1.SupportedCurrencyName.ONT, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.XDAI, { + name: "xDai", + nonce: 0xe, + decimals: Decimals_1.DecimalsByCurrency.XDAI, + chainId: 0x64, + blockExplorerUrl: "https://blockscout.com/xdai/mainnet/tx/", + blockExplorerUrlAddr: "https://blockscout.com/xdai/mainnet/address/", + tnBlockExplorerUrl: "https://blockscout.com/xdai/testnet/tx/", + tnBlockExplorerUrlAddr: "https://blockscout.com/xdai/testnet/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.XDAI, + currencySymbol: domain_1.SupportedCurrencyName.XDAI, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.ALGORAND, { + name: "Algorand", + nonce: 0xf, + decimals: Decimals_1.DecimalsByCurrency.ALGO, + chainId: undefined, + blockExplorerUrl: "https://algoexplorer.io/tx/", + tnBlockExplorerUrl: "https://testnet.algoexplorer.io/tx/", + blockExplorerUrlAddr: "https://algoexplorer.io/address/", + tnBlockExplorerUrlAddr: "https://testnet.algoexplorer.io/address/", + currency: domain_1.SupportedCurrency.ALGO, + currencySymbol: domain_1.SupportedCurrencyName.ALGO, + constructor: (p) => Promise.resolve((0, algorand_1.algorandHelper)(p)), + type: ChainType.ALGORAND, +}); +exports.CHAIN_INFO.set(Chain.FUSE, { + name: "FUSE", + nonce: 0x10, + decimals: Decimals_1.DecimalsByCurrency.FUSE, + chainId: undefined, + blockExplorerUrl: "https://explorer.fuse.io/tx/", + tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", + blockExplorerUrlAddr: "https://explorer.fuse.io/address/", + tnBlockExplorerUrlAddr: "https://explorer.fusespark.io/address/", + currencySymbol: domain_1.SupportedCurrencyName.FUSE, + currency: domain_1.SupportedCurrency.FUSE, + constructor: web3_1.web3HelperFactory, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.UNIQUE, { + name: "Unique", + nonce: 0x11, + decimals: Decimals_1.DecimalsByCurrency.OPL, + chainId: 8888, + blockExplorerUrl: "CANT FIND", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.OPL, + currencySymbol: domain_1.SupportedCurrencyName.OPL, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.TEZOS, { + name: "Tezos", + nonce: 0x12, + decimals: Decimals_1.DecimalsByCurrency.XTZ, + constructor: tezos_1.tezosHelperFactory, + currency: domain_1.SupportedCurrency.XTZ, + currencySymbol: domain_1.SupportedCurrencyName.XTZ, + blockExplorerUrl: "https://tzkt.io/", + tnBlockExplorerUrl: "https://ghostnet.tzkt.io/", + tnBlockExplorerUrlAddr: "https://ghostnet.tzkt.io/", + blockExplorerUrlAddr: "https://tzkt.io/", + type: ChainType.TEZOS, +}); +exports.CHAIN_INFO.set(Chain.VELAS, { + name: "Velas", + blockExplorerUrl: "https://explorer.velas.com/tx/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.velas.com/address/", + blockExplorerUrlAddr: "https://explorer.velas.com/address/", + tnBlockExplorerUrl: "https://explorer.testnet.velas.com/tx/", + nonce: 0x13, + decimals: Decimals_1.DecimalsByCurrency.VLX, + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.VLX, + currencySymbol: domain_1.SupportedCurrencyName.VLX, + chainId: 111, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.AURORA, { + name: "Aurora", + blockExplorerUrl: "https://aurorascan.dev/tx/", + tnBlockExplorerUrl: "hhttps://testnet.aurorascan.dev/tx/", + blockExplorerUrlAddr: "https://aurorascan.dev/address/", + tnBlockExplorerUrlAddr: "https://testnet.aurorascan.dev/address", + nonce: Chain.AURORA, + decimals: Decimals_1.DecimalsByCurrency.AURORA, + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.AURORA, + currencySymbol: domain_1.SupportedCurrencyName.AURORA, + chainId: 1313161554, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.IOTEX, { + name: "IoTeX", + blockExplorerUrl: "https://iotexscan.io/tx/", + blockExplorerUrlAddr: "https://iotexscan.io/address/", + tnBlockExplorerUrl: "https://testnet.iotexscan.io/tx/", + tnBlockExplorerUrlAddr: "https://testnet.iotexscan.io/address/", + nonce: 0x14, + decimals: Decimals_1.DecimalsByCurrency.IOTX, + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.IOTX, + currencySymbol: domain_1.SupportedCurrencyName.IOTX, + chainId: 4689, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.GODWOKEN, { + name: "GodWoken", + blockExplorerUrl: "https://gwscan.com/tx/", + tnBlockExplorerUrl: "https://v1.testnet.gwscan.com/tx/", + blockExplorerUrlAddr: "https://gwscan.com/account/", + tnBlockExplorerUrlAddr: "https://v1.testnet.gwscan.com/account/", + constructor: web3_1.web3HelperFactory, + nonce: 0x16, + decimals: Decimals_1.DecimalsByCurrency.CKB, + currency: domain_1.SupportedCurrency.CKB, + currencySymbol: domain_1.SupportedCurrencyName.CKB, + chainId: 868455272153094, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.GATECHAIN, { + name: "GateChain", + blockExplorerUrl: "https://gatescan.org/tx/", + tnBlockExplorerUrl: "https://gatescan.org/testnet/tx/", + blockExplorerUrlAddr: "https://gatescan.org/address/", + tnBlockExplorerUrlAddr: "https://gatescan.org/testnet/address/", + constructor: web3_1.web3HelperFactory, + nonce: 0x17, + decimals: Decimals_1.DecimalsByCurrency.GT, + currency: domain_1.SupportedCurrency.GT, + currencySymbol: domain_1.SupportedCurrencyName.GT, + chainId: 85, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.VECHAIN, { + name: "VeChain", + tnBlockExplorerUrl: "https://explore-testnet.vechain.org/transactions/", + blockExplorerUrlAddr: "https://explore.vechain.org/accounts/", + blockExplorerUrl: "https://explore.vechain.org/transactions/", + tnBlockExplorerUrlAddr: "https://explore-testnet.vechain.org/accounts/", + constructor: web3_1.web3HelperFactory, + nonce: 0x19, + currency: domain_1.SupportedCurrency.VET, + currencySymbol: domain_1.SupportedCurrencyName.VET, + decimals: Decimals_1.DecimalsByCurrency.VET, + chainId: 39, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.SECRET, { + name: "Secret", + //blockExplorerUrl: "", // TODO + constructor: secret_1.secretHelperFactory, + nonce: Chain.SECRET, + currency: domain_1.SupportedCurrency.SCRT, + currencySymbol: domain_1.SupportedCurrencyName.SCRT, + decimals: Decimals_1.DecimalsByCurrency.SCRT, + type: ChainType.COSMOS, + blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", + blockExplorerUrlAddr: "https://atomscan.com/secret-network/accounts/", +}); +exports.CHAIN_INFO.set(Chain.SOLANA, { + name: "Solana", + blockExplorerUrl: "https://solscan.io/tx/", + blockExplorerUrlAddr: "https://solscan.io/account/", + tnBlockExplorerUrl: (tx) => `https://solscan.io/tx/${tx}?cluster=devnet`, + tnBlockExplorerUrlAddr: (address) => + `https://solscan.io/account/${address}?cluster=devnet`, + constructor: solana_1.solanaHelper, + nonce: Chain.SOLANA, + currency: domain_1.SupportedCurrency.SOL, + currencySymbol: domain_1.SupportedCurrencyName.SOL, + decimals: Decimals_1.DecimalsByCurrency.SOL, + type: ChainType.SOLANA, +}); +exports.CHAIN_INFO.set(Chain.HEDERA, { + blockExplorerUrl: "https://hashscan.io/#/mainnet/transaction/", + tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.HBAR, + currencySymbol: domain_1.SupportedCurrencyName.HBAR, + decimals: Decimals_1.DecimalsByCurrency.HBAR, + nonce: Chain.HEDERA, + name: "Hedera", + type: ChainType.HEDERA, + blockExplorerUrlAddr: "https://hashscan.io/#/mainnet/account/", + tnBlockExplorerUrlAddr: "https://hashscan.io/#/testnet/account/", +}); +exports.CHAIN_INFO.set(Chain.SKALE, { + name: "Skale", + //needs additional query params + blockExplorerUrl: + "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/tx/", + tnBlockExplorerUrl: + "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", + blockExplorerUrlAddr: + "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/address/", + tnBlockExplorerUrlAddr: + "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", + constructor: web3_erc20_1.web3ERC20HelperFactory, + currency: domain_1.SupportedCurrency.ETH, + currencySymbol: domain_1.SupportedCurrencyName.ETH, + decimals: Decimals_1.DecimalsByCurrency.ETH, + tnChainId: 0x1482a7b2, + nonce: Chain.SKALE, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.DFINITY, { + blockExplorerUrl: "", + constructor: dfinity_1.dfinityHelper, + currency: domain_1.SupportedCurrency.ICP, + currencySymbol: domain_1.SupportedCurrencyName.ICP, + decimals: Decimals_1.DecimalsByCurrency.ICP, + name: "DFINITY", + nonce: Chain.DFINITY, + type: ChainType.DFINITY, +}); +exports.CHAIN_INFO.set(Chain.NEAR, { + blockExplorerUrl: "https://explorer.mainnet.near.org/transactions/", + tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", + constructor: near_1.nearHelperFactory, + currency: domain_1.SupportedCurrency.NEAR, + currencySymbol: domain_1.SupportedCurrencyName.NEAR, + decimals: Decimals_1.DecimalsByCurrency.NEAR, + name: "NEAR", + nonce: Chain.NEAR, + type: ChainType.NEAR, + blockExplorerUrlAddr: "https://explorer.mainnet.near.org/accounts/", + tnBlockExplorerUrlAddr: "https://explorer.testnet.near.org/accounts/", +}); +exports.CHAIN_INFO.set(Chain.MOONBEAM, { + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.GLMR, + currencySymbol: domain_1.SupportedCurrencyName.GLMR, + decimals: Decimals_1.DecimalsByCurrency.GLMR, + name: "MoonBeam", + nonce: Chain.MOONBEAM, + chainId: 0x507, + type: ChainType.EVM, + blockExplorerUrlAddr: "https://moonbeam.moonscan.io/address/", + tnBlockExplorerUrlAddr: "https://moonbase.moonscan.io/address/", + blockExplorerUrl: "https://moonscan.io/tx/", + tnBlockExplorerUrl: "https://moonbase.moonscan.io/tx/", +}); +exports.CHAIN_INFO.set(Chain.ABEYCHAIN, { + tnBlockExplorerUrl: "https://testnet-explorer.abeychain.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.abeychain.com/address/", + blockExplorerUrl: "https://scan.abeychain.com/tx/", + blockExplorerUrlAddr: "https://scan.abeychain.com/address/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.ABEY, + currencySymbol: domain_1.SupportedCurrencyName.ABEY, + decimals: Decimals_1.DecimalsByCurrency.ABEY, + name: "AbeyChain", + nonce: Chain.ABEYCHAIN, + chainId: 178, + type: ChainType.EVM, +}); +exports.CHAIN_INFO.set(Chain.APTOS, { + constructor: aptos_1.aptosHelper, + currency: domain_1.SupportedCurrency.APTOS, + currencySymbol: domain_1.SupportedCurrencyName.APTOS, + decimals: Decimals_1.DecimalsByCurrency.APTOS, + name: "Aptos", + nonce: Chain.APTOS, + type: ChainType.APTOS, + //needs additional query params + blockExplorerUrl: "https://explorer.aptoslabs.com/txn/", + blockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", + tnBlockExplorerUrl: "https://explorer.aptoslabs.com/txn/", + tnBlockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", +}); +exports.CHAIN_INFO.set(Chain.TON, { + name: "TON", + constructor: ton_1.tonHelper, + currency: domain_1.SupportedCurrency.TON, + currencySymbol: domain_1.SupportedCurrencyName.TON, + decimals: Decimals_1.DecimalsByCurrency.TON, + nonce: Chain.TON, + type: ChainType.TON, + tnBlockExplorerUrl: "https://testnet.tonscan.org/tx/", + blockExplorerUrl: "https://tonscan.org/tx/", + blockExplorerUrlAddr: "https://tonscan.org/address/", + tnBlockExplorerUrlAddr: "https://testnet.tonscan.org/address/", +}); +exports.CHAIN_INFO.set(Chain.CADUCEUS, { + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.CMP, + currencySymbol: domain_1.SupportedCurrencyName.CMP, + decimals: Decimals_1.DecimalsByCurrency.CMP, + name: "Caduceus", + nonce: Chain.CADUCEUS, + blockExplorerUrl: "https://mainnet.scan.caduceus.foundation/tx/", + tnBlockExplorerUrl: "https://galaxy.scan.caduceus.foundation/tx/", + blockExplorerUrlAddr: "https://mainnet.scan.caduceus.foundation/address/", + tnBlockExplorerUrlAddr: "https://galaxy.scan.caduceus.foundation/address/", + type: ChainType.EVM, + chainId: 256256, + tnChainId: 512512, +}); +exports.CHAIN_INFO.set(Chain.OKC, { + blockExplorerUrl: "https://www.oklink.com/okc/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.OKT, + currencySymbol: domain_1.SupportedCurrencyName.OKT, + decimals: Decimals_1.DecimalsByCurrency.OKT, + name: "OKC", + nonce: Chain.OKC, + type: ChainType.EVM, + chainId: 66, + blockExplorerUrlAddr: "https://www.oklink.com/en/okc/address/", + tnBlockExplorerUrl: "https://www.oklink.com/okc-test/", + tnBlockExplorerUrlAddr: "https://www.oklink.com/en/okc-test/address/", + tnChainId: 65, +}); +exports.CHAIN_INFO.set(Chain.ARBITRUM, { + blockExplorerUrl: "https://nova.arbiscan.io/tx/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.ETH, + currencySymbol: domain_1.SupportedCurrencyName.ETH, + decimals: Decimals_1.DecimalsByCurrency.ETH, + name: "Arbitrum", + nonce: Chain.ARBITRUM, + type: ChainType.EVM, + chainId: 42170, + blockExplorerUrlAddr: "https://nova.arbiscan.io/address/", + tnBlockExplorerUrl: "https://goerli-rollup-explorer.arbitrum.io/tx/", + tnBlockExplorerUrlAddr: "https://goerli-rollup-explorer.arbitrum.io/address/", + tnChainId: 421613, +}); +exports.CHAIN_INFO.set(Chain.BITGERT, { + blockExplorerUrl: "https://brisescan.com/tx/", + constructor: web3_1.web3HelperFactory, + currency: domain_1.SupportedCurrency.BRISE, + currencySymbol: domain_1.SupportedCurrencyName.BRISE, + decimals: Decimals_1.DecimalsByCurrency.ETH, + name: "Bitgert", + nonce: Chain.BITGERT, + type: ChainType.EVM, + chainId: 3250, + blockExplorerUrlAddr: "https://brisescan.com/address/", + tnBlockExplorerUrl: "https://testnet-explorer.brisescan.com/tx/", + tnBlockExplorerUrlAddr: "https://testnet-explorer.brisescan.com/address/", + tnChainId: 64668, +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFHZ0Q7QUFDaEQsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 diff --git a/dist/emitter.d.ts b/dist/emitter.d.ts new file mode 100644 index 000000000..a0ebebdb7 --- /dev/null +++ b/dist/emitter.d.ts @@ -0,0 +1,2 @@ +export declare const Emitter: EventTarget | undefined; +//# sourceMappingURL=emitter.d.ts.map diff --git a/dist/emitter.d.ts.map b/dist/emitter.d.ts.map new file mode 100644 index 000000000..c05eaa4b0 --- /dev/null +++ b/dist/emitter.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,yBAC2C,CAAC"} \ No newline at end of file diff --git a/dist/emitter.js b/dist/emitter.js new file mode 100644 index 000000000..286e80f6b --- /dev/null +++ b/dist/emitter.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Emitter = void 0; +exports.Emitter = typeof window !== "undefined" ? new EventTarget() : undefined; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsT0FBTyxHQUNsQixPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyJ9 diff --git a/dist/factory/cons.d.ts b/dist/factory/cons.d.ts new file mode 100644 index 000000000..41b83692d --- /dev/null +++ b/dist/factory/cons.d.ts @@ -0,0 +1,17 @@ +import { BatchExchangeRateRepo, ExchangeRateRepo } from "crypto-exchange-rate"; +import { NftInfo, FullChain } from ".."; +export declare const _headers: { + "Content-Type": string; + Accept: string; +}; +export declare function exchangeRateRepo( + baseUrl: string +): ExchangeRateRepo & BatchExchangeRateRepo; +export declare function checkBlockedContracts(to: any, contract: string): void; +export declare function getDefaultContract( + nft: NftInfo, + fromChain: FullChain, + toChain: FullChain +): string | undefined; +export declare function prepareTokenId(nft: NftInfo, from: number): any; +//# sourceMappingURL=cons.d.ts.map diff --git a/dist/factory/cons.d.ts.map b/dist/factory/cons.d.ts.map new file mode 100644 index 000000000..8a2330027 --- /dev/null +++ b/dist/factory/cons.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"cons.d.ts","sourceRoot":"","sources":["../../src/factory/cons.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIxC,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,qBAAqB,CAS1C;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAO9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAChE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GACzC,MAAM,GAAG,SAAS,CAsDpB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,OAuB7D"} \ No newline at end of file diff --git a/dist/factory/cons.js b/dist/factory/cons.js new file mode 100644 index 000000000..cc8f8deae --- /dev/null +++ b/dist/factory/cons.js @@ -0,0 +1,107 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.prepareTokenId = + exports.getDefaultContract = + exports.checkBlockedContracts = + exports.exchangeRateRepo = + exports._headers = + void 0; +const crypto_exchange_rate_1 = require("crypto-exchange-rate"); +const consts_1 = require("../consts"); +exports._headers = { + "Content-Type": "application/json", + Accept: "*/*", +}; +function exchangeRateRepo(baseUrl) { + const baseService = + crypto_exchange_rate_1.NetworkModel.batchExchangeRateService(baseUrl); + return (0, crypto_exchange_rate_1.cachedExchangeRateRepo)( + (0, crypto_exchange_rate_1.networkBatchExchangeRateRepo)( + baseService, + crypto_exchange_rate_1.NetworkModel.exchangeRateDtoMapper() + ) + ); +} +exports.exchangeRateRepo = exchangeRateRepo; +function checkBlockedContracts(to, contract) { + const chain = consts_1.CHAIN_INFO.get(to); + if (chain?.rejectUnfreeze && chain?.rejectUnfreeze.includes(contract)) { + throw new Error( + `Transfering to ${chain.name} is prohibited by the NFT project team` + ); + } +} +exports.checkBlockedContracts = checkBlockedContracts; +function getDefaultContract(nft, fromChain, toChain) { + const defaultMintError = new Error( + `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` + ); + const from = fromChain.getNonce(); + const to = toChain.getNonce(); + const fromType = consts_1.CHAIN_INFO.get(from)?.type; + const toType = consts_1.CHAIN_INFO.get(to)?.type; + const contract = + //@ts-ignore contractType is checked + "contractType" in nft.native && + //@ts-ignore contractType is checked + nft.native.contractType === "ERC1155" && + toChain.XpNft1155 + ? toChain.XpNft1155 + : toChain.XpNft; + if ( + typeof window !== "undefined" && + (/(allowDefaultMint=true)/.test(window.location.search) || + /testnet/.test(window.location.pathname)) + ) { + return contract; + } + if ( + (from === consts_1.Chain.VECHAIN && toType === consts_1.ChainType.EVM) || + (to === consts_1.Chain.VECHAIN && fromType === consts_1.ChainType.EVM) + ) { + throw defaultMintError; + } + if ( + (fromType === consts_1.ChainType.EVM && + toType === consts_1.ChainType.ELROND) || + (fromType === consts_1.ChainType.ELROND && + toType === consts_1.ChainType.EVM) + ) { + throw defaultMintError; + } + if ( + (fromType === consts_1.ChainType.EVM && + toType === consts_1.ChainType.TEZOS) || + (fromType === consts_1.ChainType.TEZOS && toType === consts_1.ChainType.EVM) + ) { + throw defaultMintError; + } + if (fromType === consts_1.ChainType.TRON) { + throw defaultMintError; + } + return contract; +} +exports.getDefaultContract = getDefaultContract; +function prepareTokenId(nft, from) { + const tokenId = + //@ts-ignore + nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); + if (tokenId) { + const notNumber = isNaN(Number(tokenId)); + if (notNumber) { + if (from === consts_1.Chain.ELROND) { + if (nft.native.nonce) return String(nft.native.nonce); + const hex = tokenId.split("-")?.at(2); + return String(hex ? parseInt(hex, 16) : ""); + } + if (from === consts_1.Chain.TON) { + return "1"; + } + } else { + return tokenId; + } + } + return undefined; +} +exports.prepareTokenId = prepareTokenId; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3J5L2NvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBTThCO0FBSTlCLHNDQUF5RDtBQUU1QyxRQUFBLFFBQVEsR0FBRztJQUN0QixjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLFNBQWdCLGdCQUFnQixDQUM5QixPQUFlO0lBRWYsTUFBTSxXQUFXLEdBQUcsbUNBQVksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRSxPQUFPLElBQUEsNkNBQXNCLEVBQzNCLElBQUEsbURBQTRCLEVBQzFCLFdBQVcsRUFDWCxtQ0FBWSxDQUFDLHFCQUFxQixFQUFFLENBQ3JDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFYRCw0Q0FXQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLEVBQU8sRUFBRSxRQUFnQjtJQUM3RCxNQUFNLEtBQUssR0FBRyxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxJQUFJLEtBQUssRUFBRSxjQUFjLElBQUksS0FBSyxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDckUsTUFBTSxJQUFJLEtBQUssQ0FDYixrQkFBa0IsS0FBSyxDQUFDLElBQUksd0NBQXdDLENBQ3JFLENBQUM7S0FDSDtBQUNILENBQUM7QUFQRCxzREFPQztBQUVELFNBQWdCLGtCQUFrQixDQUNoQyxHQUFxQixFQUNyQixTQUE0QyxFQUM1QyxPQUEwQztJQUUxQyxNQUFNLGdCQUFnQixHQUFHLElBQUksS0FBSyxDQUNoQyx5R0FBeUcsQ0FDMUcsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFOUIsTUFBTSxRQUFRLEdB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 diff --git a/dist/factory/factories.d.ts b/dist/factory/factories.d.ts new file mode 100644 index 000000000..dc49c8ce0 --- /dev/null +++ b/dist/factory/factories.d.ts @@ -0,0 +1,7 @@ +import { ChainParams } from "."; +export declare namespace ChainFactoryConfigs { + const TestNet: () => Promise>; + const Staging: () => Promise>; + const MainNet: () => Promise>; +} +//# sourceMappingURL=factories.d.ts.map diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map new file mode 100644 index 000000000..e7c161b97 --- /dev/null +++ b/dist/factory/factories.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAyYvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA6LvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAmXvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js new file mode 100644 index 000000000..12b0cd420 --- /dev/null +++ b/dist/factory/factories.js @@ -0,0 +1,1155 @@ +"use strict"; +var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); +var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } + : function (o, v) { + o["default"] = v; + }); +var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ChainFactoryConfigs = void 0; +//@ts-ignore +const tronweb_1 = __importDefault(require("tronweb")); +const consts_1 = require("../consts"); +const ethers_1 = require("ethers"); +const taquito_1 = require("@taquito/taquito"); +const notifier_1 = require("../notifier"); +const connex_driver_1 = require("@vechain/connex-driver"); +const thor = __importStar(require("web3-providers-connex")); +const connex_framework_1 = require("@vechain/connex-framework"); +const hethers_1 = require("@hashgraph/hethers"); +const agent_1 = require("@dfinity/agent"); +const principal_1 = require("@dfinity/principal"); +const tonweb_1 = __importDefault(require("tonweb")); +/*const EVM_VALIDATORS = [ + "0xffa74a26bf87a32992bb4be080467bb4a8019e00", + "0x837b2eb764860b442c971f98f505e7c5f419edd7", + "0x9671ce5a02eb53cf0f2cbd220b34e50c39c0bf23", + "0x90e79cc7a06dbd227569920a8c4a625f630d77f4", + "0xdc80905cafeda39cb19a566baeef52472848e82f", + "0x77745cd585798e55938940e3d4dd0fd7cde7bdd6", + "0xc2a29b4e9fa71e9033a52611544403241c56ac5e", +];*/ +// const _EVM_TESTNET_VALIDATORS = [ +// "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", +// "0xae87208a5204B6606d3AB177Be5fdf62267Cd499", +// "0x5002258315873AdCbdEF25a8E71C715A4f701dF5", +// ]; +const middleware_uri = "https://notifier.xp.network"; +const testnet_middleware_uri = + "https://testnet-notifier.xp.network/notify-test/"; +var ChainFactoryConfigs; +(function (ChainFactoryConfigs) { + ChainFactoryConfigs.TestNet = async () => { + const feeMargin = { min: 1, max: 5 }; + const notifier = (0, notifier_1.evNotifier)(testnet_middleware_uri); + // VeChain related: + const net = new connex_driver_1.SimpleNet(consts_1.TestNetRpcUri.VECHAIN); + const driver = await connex_driver_1.Driver.connect(net); + const provider = thor.ethers.modifyProvider( + new ethers_1.ethers.providers.Web3Provider( + new thor.ConnexProvider({ + connex: new connex_framework_1.Framework(driver), + }) + ) + ); + return { + elrondParams: { + node_uri: consts_1.TestNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgqy2nx5z4cpr90de4sga2v2yx62fph3lg8g6vskt0k2f", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqc854pa9ruzgs5f8rdzzc02xgq8kqku3ng6vs59vmf8", + esdt_nft: "XPNFT-af3fde", + esdt_swap: "WEGLD-708f9b", + notifier, + nonce: 2, + feeMargin, + }, + tonParams: { + tonweb: new tonweb_1.default( + new tonweb_1.default.HttpProvider(consts_1.TestNetRpcUri.TON, { + apiKey: + "abe8c1222f19b0891a9a35889d112dc88562093467db8dda39961eeacd50f9b1", + }) + ), + bridgeAddr: "kQBwUu-b4O6qDYq3iDRvsYUnTD6l3WCxLXkv0aH6ywAaPs3c", + burnerAddr: "kQCbH9gGgqJzXuusUVajW_40brrl2fxTYqMkk6HUhJnIgOQA", + xpnftAddr: "EQDji0YH-SNT-qi6o5dQQBLeWL0Xmm46fnqj34EYhOL34WDc", + feeMargin, + notifier, + }, + solanaParams: { + xpnftAddr: "C7bw5dJZwhjWd6TZE3LnE2b1RLqWDiy9XRMA1rajPKQY", + bridgeContractAddr: "FXaXLtmkuoJCJeX6BnLwQJWgT8cPdwuXN8BmmQzVvuRA", + endpoint: consts_1.TestNetRpcUri.SOLANA, + notifier, + feeMargin, + }, + vechainParams: { + notifier, + feeMargin, + nonce: consts_1.Chain.VECHAIN, + provider, + minter_addr: "0x5142f6Cc88a9a91b4F6a1972Ce412d57245092A8", + erc721_addr: "0x1cCF127eB11bD9bdbf2b4000dCef04c34C13850B", + erc1155_addr: "0x1109b0CAB4C4e51aBA040a8A6d16273c305941F8", + erc721Minter: "0x1E749e1580889334Bd61254fFab15c1B3ADe1Afd", + erc1155Minter: "0xDA5e020bA795191ff97A5AF97631bACbdcD1354b", + }, + tronParams: { + provider: new tronweb_1.default({ + fullHost: consts_1.TestNetRpcUri.TRON, + }), + notifier, + minter_addr: "TY46GA3GGdMtu9GMaaSPPSQtqq9CZAv5sK", + erc721_addr: "TDhb2kyurMwoc1eMndKzqNebji1ap1DJC4", + erc1155_addr: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", + erc1155Minter: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", + erc721Minter: "TMVDt5PP53eQro5hLafibv2xWzSSDSMyjy", + validators: [ + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + ], + nonce: consts_1.Chain.TRON, + feeMargin, + }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.CADUCEUS + ), + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + nonce: consts_1.Chain.CADUCEUS, + }, + avalancheParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.AVALANCHE + ), + minter_addr: "0xDdF1f6B8Ae8cd26dBE7C4C3ed9ac8E6D8B3a4FdC", + erc721_addr: "0xE1D8Df2e06797F22e7ce25c95A7ddccb926f8A1E", + erc1155Minter: "0xfA9214AEe59a6631A400DC039808457524dE70A2", + erc721Minter: "0x54Db938575DD089702822F191AEbB25C2Af7D1Ef", + erc1155_addr: "0xfA9214AEe59a6631A400DC039808457524dE70A2", + nonce: consts_1.Chain.AVALANCHE, + feeMargin, + }, + polygonParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.POLYGON + ), + minter_addr: "0x224f78681099D66ceEdf4E52ee62E5a98CCB4b9e", + erc721_addr: "0xb678b13E41a47e46A4046a4D8315b32E0F34389c", + erc1155Minter: "0x5A768f8dDC67ccCA1431879BcA28E93a6c7722bb", + erc1155_addr: "0xc1D778Ce89154357471bA6c4C6E51f0e590FFe57", + erc721Minter: "0x6516E2D3387A9CF4E5e868E7842D110c95A9f3B4", + nonce: consts_1.Chain.POLYGON, + feeMargin, + }, + dfinityParams: { + agent: new agent_1.HttpAgent({ + host: "https://ic0.app", + }), + bridgeContract: principal_1.Principal.fromText( + "e3io4-qaaaa-aaaak-qasua-cai" + ), + xpnftId: principal_1.Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), + umt: principal_1.Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), + notifier, + feeMargin, + }, + moonbeamParams: { + nonce: consts_1.Chain.MOONBEAM, + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.MOONBEAM + ), + erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", + erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + erc1155_addr: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", + erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + }, + aptosParams: { + rpcUrl: consts_1.TestNetRpcUri.APTOS, + bridge: + "0x2b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58", + xpnft: "XPNFT", + notifier, + feeMargin, + nonce: consts_1.Chain.APTOS, + network: "testnet", + }, + abeyChainParams: { + nonce: consts_1.Chain.ABEYCHAIN, + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.ABEYCHAIN + ), + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + }, + fantomParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.FANTOM + ), + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", + erc1155Minter: "string", + erc1155_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc721Minter: "string", + nonce: consts_1.Chain.FANTOM, + feeMargin, + }, + bscParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.BSC + ), + minter_addr: "0x3Dd26fFf61D2a79f5fB77100d6daDBF073F334E6", + erc721_addr: "0x783eF7485DCF27a3Cf59F5A0A406eEe3f9b2AaeB", + erc1155Minter: "0x5dA3b7431f4581a7d35aEc2f3429174DC0f2A2E1", + erc721Minter: "0x97CD6fD6cbFfaa24f5c858843955C2601cc7F2b9", + erc1155_addr: "0xb5278A4808e2345A3B9d08bAc8909A121aFaEBB3", + nonce: consts_1.Chain.BSC, + feeMargin, + }, + celoParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.CELO + ), + minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", + erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", + erc1155_addr: "", + erc1155Minter: "string", + erc721Minter: "string", + nonce: consts_1.Chain.CELO, + feeMargin, + }, + harmonyParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.HARMONY + ), + minter_addr: "0x198Cae9EE853e7b44E99c0b35Bddb451F83485d5", + erc721_addr: "0x1280c5c11bF0aAaaEAeBc998893B42e08B26fD5A", + erc1155Minter: "0xB546c2358A6e4b0B83192cCBB83CaE37FA572fe1", + erc721Minter: "0xb036640d6f7cAfd338103dc60493250561Af2eBc", + erc1155_addr: "0x44FCF0001A2B03260e4Bba44AF93a60C64cE79A2", + nonce: consts_1.Chain.HARMONY, + feeMargin, + }, + ropstenParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.ROPSTEN + ), + erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + erc721_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", + erc1155Minter: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", + erc721Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + minter_addr: "0x04a5f9158829Cae5a0a549954AdEaBD47BbB3d2d", + nonce: consts_1.Chain.ETHEREUM, + feeMargin, + }, + okcParams: { + erc721Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc1155Minter: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc1155_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + erc721_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + minter_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + feeMargin, + nonce: consts_1.Chain.OKC, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.OKC + ), + }, + arbitrumParams: { + erc721Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", + erc1155Minter: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", + erc1155_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", + erc721_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + minter_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", + feeMargin, + nonce: consts_1.Chain.ARBITRUM, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.ARBITRUM + ), + }, + bitgertParams: { + erc721Minter: "0xf185759aDb97977b419e3bc25b14E751c93865e", + erc1155Minter: "0xb0801bffD146c21EF91E86625756aAa7f74aDB3a", + erc1155_addr: "0x7b7Bb6ba1796f2C766cFae6A2C60463766615c69", + erc721_addr: "0x56E5298Ba72125DbF8180b199f74aC2B51d31Deb", + minter_addr: "0x39d4F26213245D33f506ECA1ce68D08dCF4d8d14", + feeMargin, + nonce: consts_1.Chain.BITGERT, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.BITGERT + ), + }, + xDaiParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.XDAI + ), + minter_addr: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + erc721_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", + erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + erc1155_addr: "0x1C6d7aa611B30C9C1e5f52068E145b77b0e661b2", + nonce: consts_1.Chain.XDAI, + feeMargin, + }, + algorandParams: { + algodApiKey: + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + indexerUri: "https://algoindexer.testnet.algoexplorerapi.io", + algodUri: "https://node.testnet.algoexplorerapi.io", + nonce: consts_1.Chain.ALGORAND, + sendNftAppId: 83148194, + algodPort: 443, + notifier, + feeMargin, + }, + auroraParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.AURORA + ), + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + nonce: consts_1.Chain.AURORA, + feeMargin, + }, + uniqueParams: { + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.UNIQUE + ), + nonce: consts_1.Chain.UNIQUE, + erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc1155_addr: "", + minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155Minter: "string", + erc721Minter: "string", + notifier, + feeMargin, + }, + tezosParams: { + bridgeAddress: "KT1NJG7j4Z5LbU3obL5TUaJPGNT45ukRTQrH", + notifier, + Tezos: new taquito_1.TezosToolkit(consts_1.TestNetRpcUri.TEZOS), + xpnftAddress: "KT1GRqXuUpGJGDLCRsgQ9nDvVu7tap6LPxTC", + validators: [ + "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", + "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", + "tz1exbY3JKPRpo2KLegK8iqoVNRLn1zFrnZi", + ], + feeMargin, + }, + velasParams: { + notifier, + erc721_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc1155_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", + minter_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", + erc1155Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", + erc721Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", + nonce: consts_1.Chain.VELAS, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.VELAS + ), + feeMargin, + }, + iotexParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.IOTEX + ), + minter_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", + erc721_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", + erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + erc1155Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", + erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", + nonce: consts_1.Chain.IOTEX, + feeMargin, + }, + hederaParams: { + notifier, + provider: hethers_1.hethers.getDefaultProvider("testnet"), + feeMargin, + nonce: consts_1.Chain.HEDERA, + erc721_addr: "0x0000000000000000000000000000000002e88e04", + erc1155_addr: "0x0000000000000000000000000000000002e88e04", + minter_addr: "0x0000000000000000000000000000000002e86d67", + erc721Minter: "0x0000000000000000000000000000000002da3c1d", + erc1155Minter: "0x0000000000000000000000000000000002da3c20", + }, + skaleParams: { + nonce: consts_1.Chain.SKALE, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.SKALE + ), + feeMargin, + erc1155_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + erc1155Minter: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", + erc721Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", + erc721_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", + minter_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", + paymentTokenAddress: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", + }, + godwokenParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.GODWOKEN + ), + minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + nonce: consts_1.Chain.GODWOKEN, + feeMargin, + }, + gateChainParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.TestNetRpcUri.GATECHAIN + ), + minter_addr: "0x2B24de7BFf5d2ab01b1C53682Ee5987c9BCf1BAc", + erc721_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", + erc1155_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", + erc721Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155Minter: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + nonce: consts_1.Chain.GATECHAIN, + feeMargin, + }, + secretParams: { + notifier, + rpcUrl: consts_1.TestNetRpcUri.SECRET, + bridge: { + contractAddress: "secret1ecsxtsrct6h647lpztnnzc9e47ezh0uu673c8h", + codeHash: + "29a127369d1f4326fb684435fde702fa9619c812dfb5b3a1929529bab0e308e0", + }, + xpnft: { + contractAddress: "secret1x4afa2shvq4uwwtl0ld8qnjfm3jkmyvap3yn9g", + codeHash: + "090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", + }, + umt: { + contractAddress: "secret146snljq0kjsva7qrx4am54nv3fhfaet7srx4n2", + codeHash: + "af076a49141264ec048270318f1358c9be193893c3f829425cab53ee5eb05e5c", + }, + chainId: "pulsar-2", + feeMargin, + }, + nearParams: { + networkId: "testnet", + nonce: consts_1.Chain.NEAR, + rpcUrl: consts_1.TestNetRpcUri.NEAR, + bridge: "xp_new_bridge.testnet", + xpnft: "xp_new_nft.testnet", + walletUrl: "https://wallet.testnet.near.org", + helperUrl: "https://helper.testnet.near.org", + feeMargin, + notifier, + }, + }; + }; + ChainFactoryConfigs.Staging = async () => { + const feeMargin = { min: 1, max: 5 }; + const notifier = (0, notifier_1.evNotifier)( + "https://bridge1.xp.network/notifier" + ); + return { + tonParams: { + bridgeAddr: "kQBGFgZOXaF7LPRxWrjd9l6Iws6KGhWiMs3BKzAZGyeMq2AS", + burnerAddr: "kQAee5m2tk_-ipbrq40Geey7_yZmjZwAYZFjuKy9CbWvVykL", + notifier, + tonweb: new tonweb_1.default( + new tonweb_1.default.HttpProvider( + "https://toncenter.com/api/v2/jsonRPC", + { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + } + ) + ), + xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", + feeMargin, + }, + solanaParams: { + xpnftAddr: "", + bridgeContractAddr: "kVvEBTB1h9GWEC7GcuDNTEmk6uxbCM11GvSmwvuCAwx", + endpoint: consts_1.MainNetRpcUri.SOLANA, + notifier, + feeMargin, + }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.CADUCEUS + ), + erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", + erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", + erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", + minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + nonce: consts_1.Chain.CADUCEUS, + }, + avalancheParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.AVALANCHE + ), + erc721Minter: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", + erc1155Minter: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", + erc721_addr: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", + minter_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", + erc1155_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", + nonce: consts_1.Chain.AVALANCHE, + feeMargin, + }, + algorandParams: { + algodApiKey: "kZWDAxYR7Y6S6RoyfGIi28SATZ5DfTIs5pF0UMW4", + algodUri: "https://mainnet-algorand.api.purestake.io/ps2", + indexerUri: "https://mainnet-algorand.api.purestake.io/idx2", + nonce: consts_1.Chain.ALGORAND, + sendNftAppId: 942656248, + algodPort: 443, + notifier, + feeMargin, + }, + fantomParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.FANTOM + ), + erc721Minter: "", + erc1155Minter: "", + erc1155_addr: "0xAE3bF9a0abd3D753aBB579c6E8BFD5D5F5e89c70", + erc721_addr: "0x3CF207B7E4633400B8A29B3c758296d290a51345", + minter_addr: "0xD0060e9d327fCeF5A0B0919e3624eABa56565348", + nonce: consts_1.Chain.FANTOM, + feeMargin, + }, + elrondParams: { + node_uri: consts_1.MainNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgqacac9ux4uz0pjg8ck2sf0ugxre0feczzvcas2tsatn", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgqjlnfddgj2dl4kz3x4n55yhfv7v06mxhzvcas2ec5ps", + esdt_nft: "XPNFT-976581", + esdt_swap: "WEGLD-8c393e", + notifier, + nonce: consts_1.Chain.ELROND, + feeMargin, + }, + harmonyParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.HARMONY + ), + minter_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", + erc721_addr: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", + erc1155_addr: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", + erc1155Minter: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + erc721Minter: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + nonce: consts_1.Chain.HARMONY, + feeMargin, + }, + velasParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.VELAS + ), + erc721Minter: "0x4d739e4953CE42f71604cbE142FD293841F9ed1c", + erc1155Minter: "0xeEc7955F2F7AA4E36B582D8f022c9417ecB75a44", + erc721_addr: "0x19678D8f9601AD0F099D401A3f82e4d6745B0e56", + erc1155_addr: "0x4a153028F0b40C41432127E050015963D130b01A", + minter_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", + nonce: consts_1.Chain.VELAS, + feeMargin, + }, + bscParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.BSC + ), + erc721Minter: "0x83feaeA88b1377970E7cD11492d084B63e09C87E", + erc1155_addr: "0x1B20ceec70e9635f5B56928de16A9dBc8EB8e3b6", + erc1155Minter: "0x5Af6A4C6E261315C5B7811bEb9c620CfF4722793", + erc721_addr: "0x9796B2F03e3afF786048cd67a1D33282476AB1d4", + minter_addr: "0x7Eac6825A851d79ae24301eA497AD8db2a0F4976", + nonce: consts_1.Chain.BSC, + feeMargin, + }, + secretParams: { + bridge: { + contractAddress: "secret1t0g8tvc0tyvpwdsdc5zepa9j2ptr3vfte26qhu", + codeHash: + "684afe616d92b29c097c5f00365d07c005e99c90ff1227507a0284b601a2cc5e", + }, + xpnft: { + contractAddress: "secret1ggvqzks96k7hawhdx3harrtnffhttrrq2qxmdg", + codeHash: + "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", + }, + notifier, + rpcUrl: consts_1.MainNetRpcUri.SECRET, + umt: { + contractAddress: "", + codeHash: "", + }, + chainId: "24", + feeMargin, + }, + abeyChainParams: { + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.ABEYCHAIN + ), + erc1155_addr: "0x8776073043eef8929F4a9cBa8Aacc6B59A21BA52", + erc1155Minter: "0x5Ed657a379e06CBAc1Ba1a9cF6D28e71c66B0c83", + erc721_addr: "0x3C8C51809Ee58E9D3BA37e37112843e41DcBD7B7", + erc721Minter: "0xD580913Ef2c8CA4Ca90D4bE6851ACa004cf586D8", + minter_addr: "0x14db0f56042Fa87F3b3921E871f87248f4C56A71", + nonce: consts_1.Chain.ABEYCHAIN, + }, + moonbeamParams: { + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.MOONBEAM + ), + erc1155_addr: "0x554560C6800f123B4A713F80A5AC9F21486F5De8", + erc721_addr: "0x6f64e03fcc34b774b3b82825a91aABA336Fbf931", + erc1155Minter: "0xA97FD39705583296221f39cb245fb573B28722A1", + erc721Minter: "0x0e5C62beAD14795F3eA9969B139F5433DF85319e", + minter_addr: "0xce50496C6616F4688d5775966E302A49e3876Dff", + nonce: consts_1.Chain.MOONBEAM, + }, + polygonParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.POLYGON + ), + erc721Minter: "0x32732607F67f9FC2007AF84e54B2ea9042327ed3", + erc1155Minter: "0x62E26979F555Ec475981D8D1A7e269f747643f22", + erc721_addr: "0x54024A9351B7aD68921914942f776489E71c467e", + erc1155_addr: "0x8D3e050555356a2eD4ad8cfFb189994035F5803C", + minter_addr: "0xF712f9De44425d8845A1d597a247Fe88F4A23b6f", + nonce: consts_1.Chain.POLYGON, + feeMargin, + }, + skaleParams: { + notifier, + feeMargin, + nonce: consts_1.Chain.SKALE, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.SKALE + ), + erc721Minter: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", + erc1155Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", + erc1155_addr: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", + erc721_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", + minter_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", + paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token + }, + aptosParams: { + rpcUrl: consts_1.MainNetRpcUri.APTOS, + bridge: + "0x813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37", + xpnft: "XPNFT", + notifier, + feeMargin, + nonce: consts_1.Chain.APTOS, + network: "staging", + }, + }; + }; + ChainFactoryConfigs.MainNet = async () => { + const feeMargin = { min: 1, max: 5 }; + const notifier = (0, notifier_1.evNotifier)(middleware_uri); + // VeChain related: + const net = new connex_driver_1.SimpleNet(consts_1.MainNetRpcUri.VECHAIN); + const driver = await connex_driver_1.Driver.connect(net); + const provider = thor.ethers.modifyProvider( + new ethers_1.ethers.providers.Web3Provider( + new thor.ConnexProvider({ + connex: new connex_framework_1.Framework(driver), + }) + ) + ); + return { + tonParams: { + bridgeAddr: "kQAV8Z_aSl_e3PUMwXAb-mdE9l5Bsf83vn40NKc2LtsiFlGm", + burnerAddr: "kQDsF-yKhKqg4ygCynLfYRaw_QJeSoK2BeRpamO-nXeuuSiT", + notifier, + tonweb: new tonweb_1.default( + new tonweb_1.default.HttpProvider( + "https://toncenter.com/api/v2/jsonRPC", + { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + } + ) + ), + xpnftAddr: "EQABqbZubs5e3QQF3lxVZMvdaxlaIdNQWq8W1rn8rvVvWHys", + feeMargin, + }, + elrondParams: { + node_uri: consts_1.MainNetRpcUri.ELROND, + minter_address: + "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", + esdt_swap_address: + "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", + esdt_nft: "XPNFT-cb7482", + esdt_swap: "WEGLD-5f1f8d", + notifier, + nonce: consts_1.Chain.ELROND, + feeMargin, + }, + caduceusParams: { + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.CADUCEUS + ), + erc1155_addr: "0xF8AE68714fF6704883281603a22b56f47eB23511", + erc721_addr: "0x97799bEDB7AD04d61899F0255BA12EAF641d666D", + erc1155Minter: "0xFbA4cB4B617328cfE7a92907e4fb34bf1d798eBA", + erc721Minter: "0x6b3b43029dD4695f8780d7f16E0313dA02d9507B", + minter_addr: "0x98e9510261F34438e340c03cD35b492f87f628A8", + nonce: consts_1.Chain.CADUCEUS, + }, + okcParams: { + erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", + erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", + erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", + erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", + minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", + feeMargin, + nonce: consts_1.Chain.OKC, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.OKC + ), + }, + arbitrumParams: { + erc721Minter: "0x536dDc3Be14A980d3cd15635b3D05985C297FD07", + erc1155Minter: "0x4F4F48f70892475b0D4863f61F47157Dd1Db9F1a", + erc1155_addr: "0xBd2005050a99142d7B77B415e7b603633f3B3746", + erc721_addr: "0x445712E8dcf35E42FFAbb79b900aADcE2284fB65", + minter_addr: "0x72d270bb71A90B82260b12c31D427C3F33AC0692", + feeMargin, + nonce: consts_1.Chain.ARBITRUM, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.ARBITRUM + ), + }, + bitgertParams: { + erc721Minter: "string", + erc1155Minter: "string", + erc1155_addr: "string", + erc721_addr: "string", + minter_addr: "string", + feeMargin, + nonce: consts_1.Chain.BITGERT, + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.BITGERT + ), + }, + dfinityParams: { + agent: new agent_1.HttpAgent({ + host: "https://ic0.app", + }), + bridgeContract: principal_1.Principal.fromText( + "e3io4-qaaaa-aaaak-qasua-cai" + ), + xpnftId: principal_1.Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), + umt: principal_1.Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), + notifier, + feeMargin, + }, + vechainParams: { + notifier, + feeMargin, + nonce: consts_1.Chain.VECHAIN, + provider, + minter_addr: "0xE860cef926E5e76E0E88fdc762417a582F849C27", + erc721_addr: "0xf0E778BD5C4c2F219A2A5699e3AfD2D82D50E271", + erc1155_addr: "", + erc721Minter: "0x6e2B43FeF2E750e1562AC572e60B6C484a027424", + erc1155Minter: "0x4E3a506800b894f3d7B46475Ab693DD5a567bB5C", + }, + tronParams: { + provider: new tronweb_1.default({ + fullHost: consts_1.MainNetRpcUri.TRON, + }), + notifier, + minter_addr: "TAncANF5aYbvgXDatmwTdvTa5N9PTrq95k", + erc721_addr: "TVdp7szDHg3opRyuciQaJi93LLk7y83hrC", + erc1155_addr: "", + erc1155Minter: "TYoj1JVpJt1TAWBFj3GkaKLC2vrcFnjZ1G", + erc721Minter: "TPSQTbFWaxiDZbGD7MoqR6N2aWDSWBUNfA", + validators: [ + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", + "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", + "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", + ], + nonce: consts_1.Chain.TRON, + feeMargin, + }, + avalancheParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.AVALANCHE + ), + erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", + erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + nonce: consts_1.Chain.AVALANCHE, + feeMargin, + }, + polygonParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.POLYGON + ), + erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", + erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", + erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", + erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", + minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", + nonce: consts_1.Chain.POLYGON, + feeMargin, + }, + fantomParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.FANTOM + ), + erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc1155_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", + erc721_addr: "0x75f93b47719Ab5270d27cF28a74eeA247d5DfeFF", + minter_addr: "0x97dd1B3AE755539F56Db8b29258d7C925b20b84B", + nonce: consts_1.Chain.FANTOM, + feeMargin, + }, + bscParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.BSC + ), + erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", + erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", + erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + nonce: consts_1.Chain.BSC, + feeMargin, + }, + celoParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.CELO + ), + minter_addr: "string", + erc721_addr: "string", + erc1155Minter: "string", + erc721Minter: "string", + erc1155_addr: "", + nonce: consts_1.Chain.CELO, + feeMargin, + }, + harmonyParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.HARMONY + ), + minter_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc721_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + erc1155_addr: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", + erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", + erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", + nonce: consts_1.Chain.HARMONY, + feeMargin, + }, + ropstenParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.ETHEREUM + ), + minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", + erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", + nonce: consts_1.Chain.ETHEREUM, + feeMargin, + }, + xDaiParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.XDAI + ), + erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", + erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", + erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", + erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", + minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + nonce: consts_1.Chain.XDAI, + feeMargin, + }, + algorandParams: { + algodApiKey: + "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", + algodUri: "https://algorand-node.xp.network/", + indexerUri: "https://algoindexer.algoexplorerapi.io", + nonce: consts_1.Chain.ALGORAND, + sendNftAppId: 769053604, + algodPort: 443, + notifier, + feeMargin, + }, + fuseParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.FUSE + ), + erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", + erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", + erc721_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", + erc1155_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", + minter_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", + nonce: consts_1.Chain.FUSE, + feeMargin, + }, + tezosParams: { + bridgeAddress: "KT1WKtpe58XPCqNQmPmVUq6CZkPYRms5oLvu", + notifier, + Tezos: new taquito_1.TezosToolkit(consts_1.MainNetRpcUri.TEZOS), + xpnftAddress: "KT1NEx6MX2GUEKMTX9ydyu8mn9WBNEz3QPEp", + validators: [ + "tz1MwAQrsg5EgeFD1AQHT2FTutnj9yQJNcjM", + "tz1b5AMdXs9nDxsqoN9wa3HTusvhahgBRWuF", + "tz1L5DjmMEHbj5npRzZewSARLmTQQyESW4Mj", + "tz1csq1THV9rKQQexo2XfSjSEJEg2wRCSHsD", + "tz1TBhd1NeZNtWsTbecee8jDMDzeBNLmpViN", + "tz1SHcDnXRgb7kWidiaM2J6bbTS7x5jzBr67", + ], + feeMargin, + }, + velasParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.VELAS + ), + erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", + erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", + erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", + erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", + minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", + nonce: consts_1.Chain.VELAS, + feeMargin, + }, + iotexParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.IOTEX + ), + minter_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", + erc721_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", + erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", + erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", + erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", + nonce: consts_1.Chain.IOTEX, + feeMargin, + }, + auroraParams: { + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.AURORA + ), + minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", + erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", + erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", + erc1155Minter: "0x0000000000000000000000000000000000000000", + erc721Minter: "0x0000000000000000000000000000000000000000", + nonce: consts_1.Chain.AURORA, + notifier, + feeMargin, + }, + godwokenParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.GODWOKEN + ), + minter_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", + erc721_addr: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", + erc1155_addr: "0x34933A5958378e7141AA2305Cdb5cDf514896035", + erc721Minter: "0x0000000000000000000000000000000000000000", + erc1155Minter: "0x0000000000000000000000000000000000000000", + nonce: consts_1.Chain.GODWOKEN, + feeMargin, + }, + gateChainParams: { + notifier, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.GATECHAIN + ), + minter_addr: "0xFc7f7fD2DBdAF6D8F3ee3f222b3a6a9f89729f05", + erc721_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", + erc1155_addr: "", + erc1155Minter: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", + erc721Minter: "0x0000000000000000000000000000000000000000", + nonce: consts_1.Chain.GATECHAIN, + feeMargin, + }, + skaleParams: { + notifier, + feeMargin, + nonce: consts_1.Chain.SKALE, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.SKALE + ), + erc721Minter: "0xC71C2e7b5Ee01f2cb08b41E240976E8Be6012fB0", + erc1155Minter: "0xbe6cB5C730C07a788dAB0aD7ed629d9c418a9c14", + erc1155_addr: "0x783cA58315336dD646aCeCF0b55f728099ee73ec", + erc721_addr: "0xf4C24d031C336CdcC5CC251E5abbE777235A65f3", + minter_addr: "0xa8440b0702923A54bb0FF3B55f458Cfe8142C1A0", + paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token + }, + moonbeamParams: { + nonce: consts_1.Chain.MOONBEAM, + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.MOONBEAM + ), + erc721Minter: "", + erc1155Minter: "", + erc1155_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", + erc721_addr: "0xfD3Ce0a10D4731b136a7C9e3f8a37edA1EFbf77f", + minter_addr: "0xBA3Cc81cfc54a4ce99638b5da1F17b15476E7231", + }, + abeyChainParams: { + nonce: consts_1.Chain.ABEYCHAIN, + notifier, + feeMargin, + provider: new ethers_1.ethers.providers.JsonRpcProvider( + consts_1.MainNetRpcUri.ABEYCHAIN + ), + erc721Minter: "0xBb5e9896cEe600DaC470775B6f235Db105E861BD", + erc1155Minter: "0x35c3c3959d19A310Fc052545fCC29200dc440CdA", + erc1155_addr: "0xF9DfD29ddEDEa3224f9c7E12c7Bbe37101341786", + erc721_addr: "0x55B1D1891ABb21A5d245d149B49007b55Bd3746D", + minter_addr: "0x4ceDb46481d7118E1D292C318E37510E5919bBe6", + }, + secretParams: { + notifier, + rpcUrl: consts_1.MainNetRpcUri.SECRET, + bridge: { + contractAddress: "secret18f66qjjuyudmh7q6s50hwpt9y679lanjs82jkg", + codeHash: + "224f175c92947bbfd656d26e21b5eee40f73eac6aa6b64c328db3c55261ee6b4", + }, + xpnft: { + contractAddress: "secret16zcej6asqrtfq08u3fdjhs03zpl7lgy7q32eps", + codeHash: + "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", + }, + umt: { + contractAddress: "", + codeHash: "", + }, + chainId: "24", + feeMargin, + }, + nearParams: { + networkId: "mainnet", + nonce: consts_1.Chain.NEAR, + rpcUrl: consts_1.MainNetRpcUri.NEAR, + bridge: "", + xpnft: "", + feeMargin, + notifier, + walletUrl: "https://wallet.mainnet.near.org", + helperUrl: "https://helper.mainnet.near.org", + }, + }; + }; +})( + (ChainFactoryConfigs = + exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) +); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxZQUFZO0FBQ1osc0RBQThCO0FBQzlCLHNDQUFnRTtBQUNoRSxtQ0FBZ0M7QUFDaEMsOENBQWdEO0FBQ2hELDBDQUF5QztBQUN6QywwREFBMkQ7QUFDM0QsNERBQThDO0FBQzlDLGdFQUFzRDtBQUN0RCxnREFBNkM7QUFDN0MsMENBQTJDO0FBQzNDLGtEQUErQztBQUMvQyxvREFBNEI7QUFHNUI7Ozs7Ozs7O0lBUUk7QUFFSixvQ0FBb0M7QUFDcEMsa0RBQWtEO0FBQ2xELGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsS0FBSztBQUVMLE1BQU0sY0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBQ3JELE1BQU0sc0JBQXNCLEdBQzFCLGtEQUFrRCxDQUFDO0FBRXJELElBQWlCLG1CQUFtQixDQSs3Qm5DO0FBLzdCRCxXQUFpQixtQkFBbUI7SUFDckIsMkJBQU8sR0FBd0MsS0FBSyxJQUFJLEVBQUU7UUFDckUsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFBLHFCQUFVLEVBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVwRCxtQkFBbUI7UUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSx5QkFBUyxDQUFDLHNCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDekMsSUFBSSxlQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FDL0IsSUFBSSxJQUFJLENB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 diff --git a/dist/factory/index.d.ts b/dist/factory/index.d.ts new file mode 100644 index 000000000..07673bb5f --- /dev/null +++ b/dist/factory/index.d.ts @@ -0,0 +1,333 @@ +import { ElrondParams } from "../helpers/elrond"; +import { TronParams } from "../helpers/tron"; +import { Web3Params } from "../helpers/web3"; +export * from "./cons"; +export * from "./factories"; +import BigNumber from "bignumber.js"; +import { + ChainNonceGet, + EstimateTxFees, + ExtractAction, + ExtractTxnStatus, + MintNft, + NftInfo, + TransactionStatus, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from ".."; +import { Wallet } from "@hashgraph/hethers"; +import { ethers } from "ethers"; +import { AlgorandParams, AlgoSignerH, ClaimNftInfo } from "../helpers/algorand"; +import { AptosParams } from "../helpers/aptos"; +import { + BalanceCheck, + EstimateTxFeesBatch, + GetFeeMargins, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + WhitelistCheck, +} from "../helpers/chain"; +import { DfinityParams } from "../helpers/dfinity/dfinity"; +import { NearParams } from "../helpers/near"; +import { SecretParams } from "../helpers/secret"; +import { SolanaParams } from "../helpers/solana"; +import { TezosParams } from "../helpers/tezos"; +import { TonParams } from "../helpers/ton"; +import { Web3ERC20Params } from "../helpers/web3_erc20"; +import { + ChainNonce, + InferChainH, + InferChainParam, + InferNativeNft, + InferSigner, +} from "../type-utils"; +export declare type FullChain = TransferNftForeign< + Signer, + RawNft, + Resp +> & + UnfreezeForeignNft & + EstimateTxFees & + ChainNonceGet & + ValidateAddress & { + XpNft: string; + XpNft1155?: string; + } & GetFeeMargins; +declare type FullChainBatch = FullChain< + Signer, + RawNft, + Resp +> & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFeesBatch; +/** + * A type representing a chain factory. + */ +export declare type ChainFactory = { + /** + * Creates an helper factory for a given chain + * @param chain: {@link ChainNonce} to create the helper for. + */ + inner(chain: T): Promise>; + /** + * Whether or not the bridge is alive for a given chain + * this is checked regardless before using any bridge related function(e.g transferNft) is called + */ + bridgeStatus(): Promise<{ + [chainNonce: number]: "alive" | "dead"; + }>; + /** + * Check the balance of an account + * + * @param inner The chain to check the balance in + * @param address address of the account + */ + balance(inner: BalanceCheck, address: string): Promise; + /** + * Transfers the NFT from one chain to other. + * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. + * @param toChain {@link FullChain} the chain to transfer to. Use inner method of the factory to get this. + * WARN: Algorand NFTs must be manually claimed by the receiver + * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the `nftList` method of the factory. + * @param sender {@link Sender} The owner of the NFT. + * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. + * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) + * @param mintWith an arbitrary address of the target chain minter contract + * @param gasLimit an arbitrary gas limit value (required for some chains) + */ + transferNft( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + sender: SignerF, + receiver: string, + fee?: BigNumber.Value, + mintWith?: string, + gasLimit?: ethers.BigNumberish | undefined, + extraFee?: BigNumber.Value, + gasPrice?: ethers.BigNumberish | undefined + ): Promise; + transferBatchNft( + fromChain: FullChainBatch, + toChain: FullChainBatch, + nft: NftInfo[], + sender: SignerF, + receiver: string, + fee?: BigNumber.Value, + mintWith?: string + ): Promise; + claimHederaNFT( + serialNumber: ethers.BigNumberish, + proxyAddress: string, + htsToken: string, + sender: Wallet + ): Promise; + listHederaClaimableNFT( + proxyContract: string, + htsToken: string, + sender: Wallet + ): Promise; + transferSft( + fromChain: FullChainBatch, + toChain: FullChainBatch, + nft: NftInfo, + sender: SignerF, + receiver: string, + amt: bigint, + fee?: BigNumber.Value, + mintWith?: string + ): Promise; + /** + * Mints an NFT on the chain. + * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. + * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar defi wallet. + * @param args: {@link NftMintArgs} Arguments to mint the nft. Contract is must for web3 and tron. Identifier is must for elrond. + */ + mint( + chain: MintNft, + owner: Signer, + args: Args + ): Promise; + /** + * Lists all the NFTs on the chain owner by {@param owner}. + * @param chain: Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. + * @param owner: Address of the owner of the NFT as a raw string. + */ + nftList( + chain: ChainNonceGet & T, + owner: string + ): Promise>[]>; + /** + * Estimates the required fee for transferring an NFT. + * @param fromChain: {@link FullChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. + * @param toChain: {@link FullChain} Chain to which the NFT must be sent. Can be obtained from the `inner` method on the factory. + * @param nft: {@link NftInfo} The NFT that has to be transferred. Generally comes from the `nftList` method of the factory. + * @param receiver: Address of the receiver of the NFT in raw string.. + */ + estimateFees( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + receiver: string + ): Promise; + estimateWithContractDep( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo, + receiver: string + ): Promise<{ + calcContractDep: BigNumber; + }>; + estimateSFTfees( + fromChain: FullChain, + amount: bigint, + price: number + ): Promise; + estimateBatchFees( + fromChain: FullChain, + toChain: FullChain, + nft: NftInfo[], + receiver: string + ): Promise; + /** + * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. + * @param params : New Params to be set. + */ + updateParams( + nonce: T, + params: InferChainParam + ): void; + pkeyToSigner( + nonce: S, + key: string + ): Promise>>; + /** + * Get transaction in the destination chain + * WARN: use claimAlgorandNft instead for algorand. + * + * @param chain source chain + * @param destination destination chain + * @param hash transaction hash from source chain + * + * @returns transaction hash in original chain, unique action id + */ + getDestinationTransaction( + chain: ExtractAction & ExtractTxnStatus, + destination: number, + hash: Txn + ): Promise<[string, TransactionStatus]>; + /** + * Claim an algorand nft + * + * @param originChain chain from which the nft was transferred + * @param txn Transaction Hash of the original + * @param claimer the account which can claim the nft + */ + waitAlgorandNft( + originChain: ExtractAction & ChainNonceGet, + txn: Txn, + claimer: AlgoSignerH + ): Promise; + /** + * @param claimer: the account which can claim the nfts + */ + claimableAlgorandNfts(claimer: string): Promise; + getVerifiedContract( + from: string, + targetChain: number, + fc: number, + tokenId?: string + ): Promise; + checkWhitelist( + chain: Partial> & ChainNonceGet, + nft: NftInfo + ): Promise; + isWrappedNft( + nft: NftInfo, + fromChain: number + ): Promise<{ + bool: boolean; + wrapped: any; + }>; + setProvider(fromChain: number, provider: any): Promise; + whitelistEVM( + chain: T, + address: string, + nonce: number + ): Promise<{ + success: true; + }>; +}; +/** + * A type representing all the supported chain params. + */ +export interface ChainParams { + elrondParams: ElrondParams; + hecoParams: Web3Params; + bscParams: Web3Params; + ropstenParams: Web3Params; + avalancheParams: Web3Params; + polygonParams: Web3Params; + fantomParams: Web3Params; + tronParams: TronParams; + celoParams: Web3Params; + harmonyParams: Web3Params; + ontologyParams: Web3Params; + xDaiParams: Web3Params; + algorandParams: AlgorandParams; + fuseParams: Web3Params; + uniqueParams: Web3Params; + tezosParams: TezosParams; + velasParams: Web3Params; + iotexParams: Web3Params; + vechainParams: Web3Params; + auroraParams: Web3Params; + godwokenParams: Web3Params; + gateChainParams: Web3Params; + secretParams: SecretParams; + hederaParams: Web3Params; + skaleParams: Web3ERC20Params; + dfinityParams: DfinityParams; + nearParams: NearParams; + moonbeamParams: Web3Params; + abeyChainParams: Web3Params; + tonParams: TonParams; + aptosParams: AptosParams; + solanaParams: SolanaParams; + caduceusParams: Web3Params; + okcParams: Web3Params; + arbitrumParams: Web3Params; + bitgertParams: Web3Params; +} +export declare type MoralisNetwork = "mainnet" | "testnet"; +/** + * A struct for the configuration of the library. + * @field exchangeRateUri: The URI of the exchange rate service. + * @field moralisServer: The URI of the moralis server. + * @field moralisAppId: The app id of the moralis server. + * @field tronScanUri: The URI of the tron scan service. + */ +export interface AppConfig { + exchangeRateUri: string; + heartbeatUri: string; + txSocketUri: string; + nftListUri: string; + nftListAuthToken: string; + tronScanUri: string; + wrappedNftPrefix: string; + scVerifyUri: string; + network: "testnet" | "mainnet" | "staging"; +} +/** + * This function is the basic entry point to use this package as a library. + * @param appConfig: {@link AppConfig} The configuration of the library. + * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. + * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. + */ +export declare function ChainFactory( + appConfig: AppConfig, + chainParams: Partial +): ChainFactory; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map new file mode 100644 index 000000000..9418b46c9 --- /dev/null +++ b/dist/factory/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js new file mode 100644 index 000000000..3f44636e8 --- /dev/null +++ b/dist/factory/index.js @@ -0,0 +1,660 @@ +"use strict"; +var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); +var __exportStar = + (this && this.__exportStar) || + function (m, exports) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) + __createBinding(exports, m, p); + }; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ChainFactory = void 0; +const consts_1 = require("../consts"); +__exportStar(require("./cons"), exports); +__exportStar(require("./factories"), exports); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const __1 = require(".."); +const out_1 = require("@elrondnetwork/erdjs/out"); +const hethers_1 = require("@hashgraph/hethers"); +const algosdk_1 = __importDefault(require("algosdk")); +const axios_1 = __importDefault(require("axios")); +const ethers_1 = require("ethers"); +const js_base64_1 = require("js-base64"); +const heartbeat_1 = require("../heartbeat"); +const algorand_1 = require("../helpers/algorand"); +const hts_abi_1 = require("../helpers/hedera/hts_abi"); +const cons_1 = require("./cons"); +function mapNonceToParams(chainParams) { + const cToP = new Map(); + cToP.set(consts_1.Chain.ELROND, chainParams.elrondParams); + cToP.set(consts_1.Chain.HECO, chainParams.hecoParams); + cToP.set(consts_1.Chain.BSC, chainParams.bscParams); + cToP.set(consts_1.Chain.ETHEREUM, chainParams.ropstenParams); + cToP.set(consts_1.Chain.AVALANCHE, chainParams.avalancheParams); + cToP.set(consts_1.Chain.POLYGON, chainParams.polygonParams); + cToP.set(consts_1.Chain.FANTOM, chainParams.fantomParams); + cToP.set(consts_1.Chain.TRON, chainParams.tronParams); + cToP.set(consts_1.Chain.CELO, chainParams.celoParams); + cToP.set(consts_1.Chain.HARMONY, chainParams.harmonyParams); + cToP.set(consts_1.Chain.ONT, chainParams.ontologyParams); + cToP.set(consts_1.Chain.XDAI, chainParams.xDaiParams); + cToP.set(consts_1.Chain.ALGORAND, chainParams.algorandParams); + cToP.set(consts_1.Chain.FUSE, chainParams.fuseParams); + cToP.set(consts_1.Chain.UNIQUE, chainParams.uniqueParams); + cToP.set(consts_1.Chain.TEZOS, chainParams.tezosParams); + cToP.set(consts_1.Chain.VELAS, chainParams.velasParams); + cToP.set(consts_1.Chain.IOTEX, chainParams.iotexParams); + cToP.set(consts_1.Chain.AURORA, chainParams.auroraParams); + cToP.set(consts_1.Chain.GODWOKEN, chainParams.godwokenParams); + cToP.set(consts_1.Chain.GATECHAIN, chainParams.gateChainParams); + cToP.set(consts_1.Chain.VECHAIN, chainParams.vechainParams); + cToP.set(consts_1.Chain.SECRET, chainParams.secretParams); + cToP.set(consts_1.Chain.HEDERA, chainParams.hederaParams); + cToP.set(consts_1.Chain.SKALE, chainParams.skaleParams); + cToP.set(consts_1.Chain.DFINITY, chainParams.dfinityParams); + cToP.set(consts_1.Chain.NEAR, chainParams.nearParams); + cToP.set(consts_1.Chain.MOONBEAM, chainParams.moonbeamParams); + cToP.set(consts_1.Chain.ABEYCHAIN, chainParams.abeyChainParams); + cToP.set(consts_1.Chain.TON, chainParams.tonParams); + cToP.set(consts_1.Chain.APTOS, chainParams.aptosParams); + cToP.set(consts_1.Chain.SOLANA, chainParams.solanaParams); + cToP.set(consts_1.Chain.CADUCEUS, chainParams.caduceusParams); + cToP.set(consts_1.Chain.OKC, chainParams.okcParams); + cToP.set(consts_1.Chain.ARBITRUM, chainParams.arbitrumParams); + cToP.set(consts_1.Chain.BITGERT, chainParams.bitgertParams); + return cToP; +} +/** + * This function is the basic entry point to use this package as a library. + * @param appConfig: {@link AppConfig} The configuration of the library. + * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. + * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. + */ +function ChainFactory(appConfig, chainParams) { + let helpers = new Map(); + let cToP = mapNonceToParams(chainParams); + const heartbeatRepo = (0, heartbeat_1.bridgeHeartbeat)( + appConfig.heartbeatUri + ); + const remoteExchangeRate = (0, cons_1.exchangeRateRepo)( + appConfig.exchangeRateUri + ); + const txSocket = (0, __1.socketHelper)(appConfig.txSocketUri); + const nftlistRest = axios_1.default.create({ + baseURL: appConfig.nftListUri, + headers: { + Authorization: `Bearer ${appConfig.nftListAuthToken}`, + }, + }); + const inner = async (chain) => { + let helper = helpers.get(chain); + if (helper === undefined) { + helper = await consts_1.CHAIN_INFO.get(chain).constructor( + cToP.get(chain) + ); + helpers.set(chain, helper); + } + return helper; + }; + const setProvider = async (chain, provider) => { + const args = { + ...cToP.get(chain), + provider, + }; + const helper = await consts_1.CHAIN_INFO.get(chain).constructor(args); + helpers.set(chain, helper); + }; + async function calcExchangeFees(fromChain, toChain, val, toChainFee) { + const rate = await remoteExchangeRate.getBatchedRate([ + consts_1.CHAIN_INFO.get(toChain).currency, + consts_1.CHAIN_INFO.get(fromChain).currency, + ]); + const feeR = val.dividedBy(consts_1.CHAIN_INFO.get(toChain).decimals); + const fromExRate = rate.get(consts_1.CHAIN_INFO.get(fromChain).currency); + const toExRate = rate.get(consts_1.CHAIN_INFO.get(toChain).currency); + const usdFee = Math.min( + Math.max(toChainFee.min, feeR.times(toExRate * 0.1).toNumber()), + toChainFee.max + ); + const feeProfit = usdFee / fromExRate; + return feeR + .times(toExRate / fromExRate) + .plus(feeProfit * 0.5) + .times(consts_1.CHAIN_INFO.get(fromChain).decimals) + .integerValue(bignumber_js_1.default.ROUND_CEIL); + } + const estimateFees = async (fromChain, toChain, nft, receiver, extraFee) => { + const estimate = await toChain.estimateValidateTransferNft( + receiver, + nft, + "" + ); + let conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate, + toChain.getFeeMargin() + ); + if (extraFee) { + conv = conv + .multipliedBy(extraFee) + .integerValue(bignumber_js_1.default.ROUND_CEIL); + console.log("extra conv"); + } + return conv; + }; + const estimateWithContractDep = async (fromChain, toChain, nft) => { + let calcContractDep = new bignumber_js_1.default("0"), + originalContract, + originalChain; + try { + const { bool, wrapped } = await isWrappedNft( + nft, + fromChain.getNonce(), + toChain.getNonce() + ); + if (bool) { + originalContract = wrapped?.contract?.toLowerCase(); + originalChain = wrapped?.origin; + } else { + originalContract = nft.native.contract.toLowerCase(); + originalChain = nft.native.chainId; + } + const axiosResult = await axios_1.default + .post(`https://sc-verify.xp.network/default/checkWithOutTokenId`, { + fromChain: Number(originalChain), + chain: + fromChain?.getNonce() == originalChain //if first time sending + ? Number(toChain.getNonce()) + : toChain.getNonce() == originalChain //if sending back + ? Number(fromChain.getNonce()) + : Number(toChain.getNonce()), + sc: originalContract, + }) + .catch(() => false); + if (!axiosResult && toChain?.estimateContractDep) { + //@ts-ignore + const contractFee = await toChain?.estimateContractDep(toChain); + calcContractDep = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + contractFee, + toChain.getFeeMargin() + ); + } + return { calcContractDep }; + } catch (error) { + console.log( + error.message, + console.log("error in estimateWithContractDep") + ); + return { calcContractDep }; + } + }; + const estimateSFTfees = async (fromChain, amount, price = 0.05) => { + const rate = await remoteExchangeRate.getBatchedRate([ + consts_1.CHAIN_INFO.get(fromChain.getNonce()).currency, + ]); + const fromExRate = rate.get( + consts_1.CHAIN_INFO.get(fromChain.getNonce()).currency + ); + const y = price / fromExRate; + const sftFees = Number(amount) <= 10 ? 0 : y * (Number(amount) - 10); + return new bignumber_js_1.default(sftFees) + .multipliedBy(consts_1.CHAIN_INFO.get(fromChain.getNonce()).decimals) + .integerValue(); + }; + async function bridgeStatus() { + const res = await heartbeatRepo.status(); + return Object.fromEntries( + Object.entries(res).map(([c, s]) => [ + c, + s.bridge_alive ? "alive" : "dead", + ]) + ); + } + async function estimateBatchFees(fromChain, toChain, nft, receiver) { + const estimate = await toChain.estimateValidateTransferNftBatch( + receiver, + nft, + new Array(nft.length).fill(toChain.XpNft) + ); + const conv = await calcExchangeFees( + fromChain.getNonce(), + toChain.getNonce(), + estimate.times(nft.length), + toChain.getFeeMargin() + ); + return conv; + } + async function requireBridge(chains) { + const status = await heartbeatRepo.status(); + let deadChain; + const alive = chains.every((c) => { + const stat = status[c].bridge_alive; + if (!stat) { + deadChain = c; + } + return stat; + }); + if (!alive) { + throw Error(`chain ${deadChain} is dead! its unsafe to use the bridge`); + } + } + const oldXpWraps = new Set([ + "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", + "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", + "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", + "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", + "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", + "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", + "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", + "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", + ]); + function checkNotOldWrappedNft(contract) { + if (oldXpWraps.has(contract)) { + throw new Error(`${contract} is an old wrapped NFT`); + } + } + async function isWrappedNft(nft, fc, tc) { + if (fc === consts_1.Chain.TEZOS) { + return { + bool: typeof nft.native.meta?.token?.metadata?.wrapped !== "undefined", + wrapped: undefined, + }; + } + try { + checkNotOldWrappedNft(nft.collectionIdent); + } catch (_) { + return { bool: false, wrapped: undefined }; + } + const wrapped = (await axios_1.default.get(nft.uri).catch(() => undefined)) + ?.data.wrapped; + const contract = wrapped?.contract || wrapped?.source_mint_ident; + tc && contract && (0, cons_1.checkBlockedContracts)(tc, contract); + return { bool: typeof wrapped !== "undefined", wrapped }; + } + async function algoOptInCheck(nft, toChain, receiver) { + if ("meta" in nft.native) return; + const nftDat = await axios_1.default.get(nft.uri); + if ( + nftDat.data.wrapped.origin == consts_1.Chain.ALGORAND.toString() && + "isOptIn" in toChain && + !(await toChain.isOptIn(receiver, parseInt(nftDat.data.wrapped.assetID))) + ) { + throw Error("receiver hasn't opted-in to wrapped nft"); + } + } + async function getVerifiedContract(from, tc, fc, tokenId) { + const res = await axios_1.default + .post( + `${appConfig.scVerifyUri}/default/`, + { + sc: from, + chain: tc, + fromChain: fc, + tokenId: tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined, + }, + { + headers: cons_1._headers, + } + ) + .catch(() => { + return undefined; + }); + return res?.data.data; + } + async function checkMintWith(from, to, targetChain, fromChain, tokenId) { + const res = await axios_1.default + .post( + `${appConfig.scVerifyUri}/verify`, + { from, to, targetChain, fromChain, tokenId }, + { + headers: cons_1._headers, + } + ) + .catch(() => undefined); + return res?.data.data == "allowed"; + } + return { + estimateWithContractDep, + getVerifiedContract, + balance: (i, a) => i.balance(a), + async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { + let result = []; + if (appConfig.network === "mainnet") { + await requireBridge([from.getNonce(), to.getNonce()]); + } + if (!fee) { + fee = await estimateBatchFees(from, to, nfts, receiver); + } + if (!(await to.validateAddress(receiver))) { + throw Error("invalid address"); + } + console.log(`Batch Minting With: ${mw || to.XpNft1155}`); + const wrapped = []; + const unwrapped = []; + await Promise.all( + nfts.map(async (e) => { + // @ts-ignore + if (e.native.contractType && e.native.contractType === "ERC721") { + throw new Error(`ERC721 is not supported`); + } + if ((await isWrappedNft(e, from.getNonce())).bool) { + wrapped.push(e); + } else { + unwrapped.push(e); + } + }) + ); + unwrapped.length && + result.push( + from.transferNftBatchToForeign( + signer, + to.getNonce(), + receiver, + unwrapped, + mw || to.XpNft1155, + new bignumber_js_1.default(fee) + ) + ); + wrapped.length && + result.push( + from.unfreezeWrappedNftBatch( + signer, + to.getNonce(), + receiver, + wrapped, + new bignumber_js_1.default(fee) + ) + ); + return await Promise.all(result); + }, + estimateBatchFees, + async whitelistEVM(chain, address) { + const chainLocal = cToP.get(chain); + if (!chainLocal) throw new Error("Chain not found"); + const params = await consts_1.CHAIN_INFO.get(chain)?.constructor( + chainLocal + ); + if (!params) throw new Error("An error occured"); + const isAddressValid = await params.validateAddress(address); + if (!isAddressValid) throw new Error("Address is not valid"); + try { + await chainLocal.notifier.notifyEVM(chain, address); + return { success: true }; + } catch (error) { + throw new Error("An error occured"); + } + }, + async transferSft(from, to, nft, sender, receiver, amt, fee, mintWith) { + if (Number(amt) > 50) + throw new Error("Currenly more that 50 SFTs is not supported"); + let transfers = Array(parseInt(amt.toString())).fill(nft); + if (!fee) { + fee = await estimateFees(from, to, transfers[0], receiver); + } + const sftFees = await estimateSFTfees(from, amt, 0.05); + const x = new bignumber_js_1.default(fee).plus(sftFees); + console.log(x.toNumber()); + if (amt === BigInt(1)) { + const response = this.transferNft( + from, + to, + nft, + sender, + receiver, + new bignumber_js_1.default(x).integerValue(), + mintWith + ); + return response; + } else { + const response = this.transferBatchNft( + from, + to, + transfers, + sender, + receiver, + new bignumber_js_1.default(x).integerValue(), + mintWith + ); + return response; + } + const response = this.transferBatchNft( + from, + to, + transfers, + sender, + receiver, + new bignumber_js_1.default(x).integerValue(), + mintWith + ); + return response; + }, + async getDestinationTransaction(chain, targetNonce, txn) { + const action = await chain.extractAction(txn); + const hash = await txSocket.waitTxHash(targetNonce, action); + const status = await chain.extractTxnStatus(hash); + return [hash, status]; + }, + async pkeyToSigner(nonce, key) { + switch (nonce) { + case consts_1.Chain.ELROND: { + return out_1.UserSigner.fromPem(key); + } + case consts_1.Chain.TRON: { + return key; + } + case consts_1.Chain.ALGORAND: { + const algo = await inner(consts_1.Chain.ALGORAND); + const mnem = algosdk_1.default.secretKeyToMnemonic( + js_base64_1.Base64.toUint8Array(key) + ); + return (0, algorand_1.algoSignerWrapper)( + algo.algod, + algosdk_1.default.mnemonicToSecretKey(mnem) + ); + } + default: { + const chainH = await inner(nonce); + return chainH.createWallet(key); + } + } + }, + estimateFees, + estimateSFTfees, + inner, + bridgeStatus, + updateParams(chainNonce, params) { + helpers.delete(chainNonce); + cToP.set(chainNonce, params); + }, + async nftList(chain, owner) { + let res = await nftlistRest.get(`/nfts/${chain.getNonce()}/${owner}`); + if (res.headers["Retry-After"]) { + await new Promise((r) => setTimeout(r, 30000)); + return await this.nftList(chain, owner); + } + return res.data.data; + }, + transferNft: async ( + fromChain, + toChain, + nft, + sender, + receiver, + fee, + mintWith, + gasLimit, + extraFee, + gasPrice + ) => { + //@ts-ignore + if (nft.native.contract) { + if (![9, 18, 24, 31, 27, 26].includes(fromChain.getNonce())) { + //@ts-ignore + checkNotOldWrappedNft(ethers_1.utils.getAddress(nft.native.contract)); + } + } + if (appConfig.network === "mainnet") { + await requireBridge([fromChain.getNonce(), toChain.getNonce()]); + } + if (!fee) { + fee = await estimateFees(fromChain, toChain, nft, receiver, extraFee); + console.log(new bignumber_js_1.default(fee).toString()); + } + // if (!(await toChain.validateAddress(receiver))) { + // throw Error("invalid address"); + // } + if ( + (await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce())).bool + ) { + await algoOptInCheck(nft, toChain, receiver); + const res = await fromChain.unfreezeWrappedNft( + sender, + receiver, + nft, + new bignumber_js_1.default(fee), + toChain.getNonce().toString(), + gasLimit, + gasPrice + ); + return res; + } else { + const mw = + //@ts-ignore contract is checked + "contract" in nft.native && + mintWith && + (await checkMintWith( + nft.collectionIdent, + mintWith, + toChain.getNonce(), + fromChain.getNonce(), + (0, cons_1.prepareTokenId)(nft, fromChain.getNonce()) + )) + ? mintWith + : (0, cons_1.getDefaultContract)(nft, fromChain, toChain); + console.log(`Minting With : ${mw}`); + if (mw === undefined) { + throw new Error(`Mint with is not set`); + } + const res = await fromChain.transferNftToForeign( + sender, + toChain.getNonce(), + receiver, + nft, + new bignumber_js_1.default(fee), + mw, + gasLimit, + gasPrice + ); + return res; + } + }, + mint: async (chain, owner, args) => { + return await chain.mintNft(owner, args); + }, + /** + * Claim a transferred NFT + * @param serialNumber The Serial Number of the claimable NFTs + * @param contractAddress The MintWith HTS Proxy Contract used in the transfer + * @param sender wallet of the sender + * @returns txn response of the claimer + */ + async claimHederaNFT(serialNumber, contractAddress, htsToken, sender) { + const htscf = new hethers_1.ContractFactory( + hts_abi_1.HEDERA_PROXY_ABI, + hts_abi_1.HEDERA_PROXY_BC, + sender + ); + const hts_contract = htscf.attach(contractAddress); + const cf = new hethers_1.ContractFactory( + hts_abi_1.HEDERA_TOKEN_SERVICE_ABI, + "0x", + sender + ); + const contract = cf.attach("0x0000000000000000000000000000000000000167"); + ( + await contract.associateToken(await sender.getAddress(), htsToken, { + gasLimit: 1000000, + }) + ).wait(); + const res = await hts_contract.functions.claimNft( + serialNumber, + htsToken, + { + gasLimit: 1000000, + } + ); + return res; + }, + /** + * Returns all the claimable NFTs of the contract + * @param proxyContract the address of the HTS Proxy contract that was used as mintWith in the transfer + * @param sender wallet of the sender + * @returns array of tokens that were minted + */ + async listHederaClaimableNFT(proxyContract, htsToken, sender) { + const cf = new hethers_1.ContractFactory( + hts_abi_1.HEDERA_PROXY_ABI, + hts_abi_1.HEDERA_PROXY_BC, + sender + ); + const contract = cf.attach(proxyContract); + const tokens = await contract.functions.getClaimableNfts( + await sender.getAddress(), + htsToken, + { + gasLimit: 1000000, + } + ); + return tokens[0]; + }, + waitAlgorandNft: async (origin, hash, claimer) => { + const action = await origin.extractAction(hash); + return await txSocket.waitAlgorandNft( + origin.getNonce(), + claimer.address, + action + ); + }, + claimableAlgorandNfts: async (claimer) => { + const algo = await inner(consts_1.Chain.ALGORAND); + return await algo.claimableNfts(txSocket, claimer); + }, + async checkWhitelist(chain, nft) { + if ( + !chain.isNftWhitelisted || + (await isWrappedNft(nft, chain.getNonce())).bool + ) { + return true; + } + return await chain.isNftWhitelisted(nft); + }, + isWrappedNft, + setProvider, + }; +} +exports.ChainFactory = ChainFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0NBQThDO0FBSzlDLHlDQUF1QjtBQUN2Qiw4Q0FBNEI7QUFFNUIsZ0VBQXFDO0FBQ3JDLDBCQVlZO0FBRVosa0RBQXNEO0FBQ3RELGdEQUE2RDtBQUM3RCxzREFBOEI7QUFDOUIsa0RBQTBCO0FBQzFCLG1DQUF1QztBQUN2Qyx5Q0FBbUM7QUFDbkMsNENBQStDO0FBQy9DLGtEQU02QjtBQVk3Qix1REFJbUM7QUFnQm5DLGlDQU1nQjtBQTJSaEIsU0FBUyxnQkFBZ0IsQ0FBQyxXQUFpQztJQUN6RCxNQUFNLElBQUksR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxD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 diff --git a/dist/heartbeat/index.d.ts b/dist/heartbeat/index.d.ts new file mode 100644 index 000000000..f8964fc6a --- /dev/null +++ b/dist/heartbeat/index.d.ts @@ -0,0 +1,6 @@ +import { StatusResp } from "./resp"; +export declare type BridgeHeartbeat = { + status(): Promise; +}; +export declare function bridgeHeartbeat(baseURL: string): BridgeHeartbeat; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/heartbeat/index.d.ts.map b/dist/heartbeat/index.d.ts.map new file mode 100644 index 000000000..bde15c50d --- /dev/null +++ b/dist/heartbeat/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heartbeat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,oBAAY,eAAe,GAAG;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAWhE"} \ No newline at end of file diff --git a/dist/heartbeat/index.js b/dist/heartbeat/index.js new file mode 100644 index 000000000..9f455a249 --- /dev/null +++ b/dist/heartbeat/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.bridgeHeartbeat = void 0; +const axios_1 = __importDefault(require("axios")); +function bridgeHeartbeat(baseURL) { + const api = axios_1.default.create({ + baseURL, + }); + return { + async status() { + const res = await api.get("/status"); + return res.data; + }, + }; +} +exports.bridgeHeartbeat = bridgeHeartbeat; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVhcnRiZWF0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQU8xQixTQUFnQixlQUFlLENBQUMsT0FBZTtJQUM3QyxNQUFNLEdBQUcsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLE9BQU87S0FDUixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE1BQU07WUFDVixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQWEsU0FBUyxDQUFDLENBQUM7WUFDakQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2xCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQVhELDBDQVdDIn0= diff --git a/dist/heartbeat/resp.d.ts b/dist/heartbeat/resp.d.ts new file mode 100644 index 000000000..6ffa07b84 --- /dev/null +++ b/dist/heartbeat/resp.d.ts @@ -0,0 +1,17 @@ +declare type DeathReason = { + component: "node" | "validator" | "balance"; + error: string; +}; +declare type ValidatorStatus = { + status: "alive" | "dead"; + death_reason?: DeathReason; +}; +declare type ChainStatus = { + bridge_alive: boolean; + validators: ValidatorStatus[]; +}; +export declare type StatusResp = { + [chainNonce: string]: ChainStatus; +}; +export {}; +//# sourceMappingURL=resp.d.ts.map diff --git a/dist/heartbeat/resp.d.ts.map b/dist/heartbeat/resp.d.ts.map new file mode 100644 index 000000000..fa5f4b376 --- /dev/null +++ b/dist/heartbeat/resp.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"resp.d.ts","sourceRoot":"","sources":["../../src/heartbeat/resp.ts"],"names":[],"mappings":"AAAA,aAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,aAAK,eAAe,GAAG;IACrB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,aAAK,WAAW,GAAG;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC,CAAC"} \ No newline at end of file diff --git a/dist/heartbeat/resp.js b/dist/heartbeat/resp.js new file mode 100644 index 000000000..cf77ed2b9 --- /dev/null +++ b/dist/heartbeat/resp.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWFydGJlYXQvcmVzcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0= diff --git a/dist/helpers/algorand.d.ts b/dist/helpers/algorand.d.ts new file mode 100644 index 000000000..a74e8191c --- /dev/null +++ b/dist/helpers/algorand.d.ts @@ -0,0 +1,108 @@ +import WalletConnect from "@walletconnect/client"; +import algosdk, { SuggestedParams } from "algosdk"; +import { + AlgorandSocketHelper, + ChainNonceGet, + EstimateTxFees, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from ".."; +import MyAlgoConnect from "@randlabs/myalgo-connect"; +import { EvNotifier } from "../notifier"; +import { BalanceCheck, FeeMargins, GetFeeMargins, GetTokenURI } from "./chain"; +declare type TxResp = { + txId: string; +}; +declare type AlgoNft = { + "metadata-hash"?: string; + name?: string; + "unit-name"?: string; + url: string; + creator: string; + nftId: number; +}; +declare type SignedTxn = { + txID?: string; + blob: string; +}; +declare type Ledger = "MainNet" | "TestNet" | "any"; +declare type BrowserSigner = { + accounts(args: { ledger: Ledger }): Promise< + { + address: string; + }[] + >; + signTxn( + transactions: { + txn: string; + }[] + ): Promise; + send(info: { ledger: Ledger; tx: string }): Promise; +}; +export declare type ClaimNftInfo = { + appId: number; + nftId: number; +}; +/** + * Selected address & ledger must be given explicitly + */ +export declare type AlgoSignerH = { + readonly algoSigner: BrowserSigner; + readonly address: string; + readonly ledger: Ledger; +}; +/** + * This library is written in typescript. + * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. + * + * @return Strongly typed AlgoSigner from extension + */ +export declare function typedAlgoSigner(): BrowserSigner; +export declare function algoSignerWrapper( + algod: algosdk.Algodv2, + acc: algosdk.Account +): AlgoSignerH; +export declare type FullClaimNft = ClaimNftInfo & { + name: string; + uri: string; +}; +export declare type AlgorandHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + algod: algosdk.Algodv2; + claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; + claimableNfts( + txSocket: AlgorandSocketHelper, + owner: string + ): Promise; + isOptIn(address: string, nftId: number): Promise; + optInNft( + signer: AlgoSignerH, + info: ClaimNftInfo + ): Promise; + walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; + myAlgoSigner(myAlgo: MyAlgoConnect, address: string): AlgoSignerH; + } & Pick< + PreTransfer, + "preTransfer" + > & { + XpNft: string; + } & GetFeeMargins & + BalanceCheck & + GetTokenURI; +export declare type AlgorandParams = { + algodApiKey: string; + algodUri: string; + indexerUri: string; + algodPort: number | undefined; + sendNftAppId: number; + notifier: EvNotifier; + feeMargin: FeeMargins; +}; +export declare function algorandHelper(args: AlgorandParams): AlgorandHelper; +export {}; +//# sourceMappingURL=algorand.d.ts.map diff --git a/dist/helpers/algorand.d.ts.map b/dist/helpers/algorand.d.ts.map new file mode 100644 index 000000000..a41513853 --- /dev/null +++ b/dist/helpers/algorand.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"algorand.d.ts","sourceRoot":"","sources":["../../src/helpers/algorand.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/algorand.js b/dist/helpers/algorand.js new file mode 100644 index 000000000..1e5977208 --- /dev/null +++ b/dist/helpers/algorand.js @@ -0,0 +1,452 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.algorandHelper = + exports.algoSignerWrapper = + exports.typedAlgoSigner = + void 0; +const algosdk_1 = __importDefault(require("algosdk")); +const utils_1 = require("@json-rpc-tools/utils"); +const bignumber_js_1 = require("bignumber.js"); +const js_base64_1 = require("js-base64"); +const __1 = require(".."); +/** + * This library is written in typescript. + * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. + * + * @return Strongly typed AlgoSigner from extension + */ +function typedAlgoSigner() { + //@ts-expect-error why do you inject libraries like this :| + if (typeof AlgoSigner === "undefined") { + throw Error("algosigner not available!"); + } + //@ts-expect-error why do you inject libraries like this :| + return AlgoSigner; +} +exports.typedAlgoSigner = typedAlgoSigner; +function algoSignerWrapper(algod, acc) { + const signer = { + accounts(_) { + return Promise.resolve([ + { + address: acc.addr, + }, + ]); + }, + signTxn(txns) { + return Promise.resolve( + txns.map((t) => { + const signed = algosdk_1.default.signTransaction( + algosdk_1.default.decodeUnsignedTransaction( + js_base64_1.Base64.toUint8Array(t.txn) + ), + acc.sk + ); + return { + txID: signed.txID, + blob: js_base64_1.Base64.fromUint8Array(signed.blob), + }; + }) + ); + }, + send({ tx }) { + return algod.sendRawTransaction(js_base64_1.Base64.toUint8Array(tx)).do(); + }, + }; + return { + algoSigner: signer, + address: acc.addr, + ledger: "any", + }; +} +exports.algoSignerWrapper = algoSignerWrapper; +// type MinWrappedNft = { +// wrapped: { +// origin: string; +// }; +// }; +const encoder = new TextEncoder(); +const MINT_NFT_COST = new bignumber_js_1.BigNumber(1000); +function algorandHelper(args) { + const appAddr = algosdk_1.default.getApplicationAddress(args.sendNftAppId); + const algod = new algosdk_1.default.Algodv2( + args.algodApiKey, + args.algodUri, + args.algodPort + ); + const indexer = new algosdk_1.default.Indexer( + args.algodApiKey, + args.indexerUri, + args.algodPort + ); + async function waitTxnConfirm(txId) { + const status = await algod.status().do(); + let lastRound = status["last-round"]; + algod.pendingTransactionsInformation(); + let pendingInfo = await algod + .pendingTransactionInformation(txId) + .do() + .catch(() => ({})); + while ( + !(pendingInfo["confirmed-round"] && pendingInfo["confirmed-round"] > 0) + ) { + lastRound += 1; + await algod.statusAfterBlock(lastRound).do(); + pendingInfo = await algod.pendingTransactionInformation(txId).do(); + } + } + // async function compileProgram( + // client: Algodv2, + // programSource: string + // ) { + // const enc = new TextEncoder(); + // const programBytes = enc.encode(programSource); + // const compileResponse = await client.compile(programBytes).do(); + // const compiledBytes = new Uint8Array( + // Buffer.from(compileResponse.result, 'base64') + // ); + // return compiledBytes; + // }; + // async function getMintPoolProgram(client: Algodv2, recv: any) { + // const poolSrc = fs.readFileSync(__dirname + '/bridge_pool.tmpl.teal'); + // return await compileProgram( + // client, + // poolSrc.toString().replace('TMPL_RECV_ADDR', recv) + // ); + // } + const transferNft = async ( + signer, + chain_nonce, + to, + nft, + txFees, + mintWith + ) => { + const suggested = await algod.getTransactionParams().do(); + const transferTx = + algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: 1, + assetIndex: nft.native.nftId, + suggestedParams: suggested, + }); + const paymentTxn = + algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ + from: signer.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(txFees.toString()), + }); + const appArgs = [ + encoder.encode("freeze_nft"), + encoder.encode(to), + new Uint8Array( + Buffer.concat([ + Buffer.from(new Uint32Array([0]).buffer), + Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse(), + ]) + ), + ]; + if (mintWith) { + appArgs.push(encoder.encode(mintWith)); + } + const tCallTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs, + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + algosdk_1.default.assignGroupID([tCallTx, transferTx, paymentTxn]); + const encodedTxns = [ + { txn: js_base64_1.Base64.fromUint8Array(tCallTx.toByte()) }, + { txn: js_base64_1.Base64.fromUint8Array(transferTx.toByte()) }, + { txn: js_base64_1.Base64.fromUint8Array(paymentTxn.toByte()) }, + ]; + const signedTxns = await signer.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + js_base64_1.Base64.toUint8Array(signedTxns[0].blob), + js_base64_1.Base64.toUint8Array(signedTxns[1].blob), + js_base64_1.Base64.toUint8Array(signedTxns[2].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + await args.notifier.notifyAlgorand(sendRes.txId); + return sendRes.txId; + }; + async function isOptIn(addr, nftId) { + const userRes = await indexer.lookupAccountByID(addr).do(); + const user = userRes["account"]; + if (!user.assets) return false; + for (let i = 0; i < user["assets"].length; i++) { + if (user["assets"][i]["asset-id"] === nftId) { + return true; + } + } + return false; + } + async function optInNft(signer, nft) { + if (await isOptIn(signer.address, nft.nftId)) { + return undefined; + } + const suggested = await algod.getTransactionParams().do(); + const optIn = + algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: signer.address, + amount: 0, + assetIndex: nft.nftId, + suggestedParams: suggested, + }); + const encodedTx = js_base64_1.Base64.fromUint8Array(optIn.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob, + }); + await waitTxnConfirm(res.txId); + return res.txId; + } + async function claimNft(signer, info) { + await optInNft(signer, info); + const suggested = await algod.getTransactionParams().do(); + const txn = algosdk_1.default.makeApplicationNoOpTxnFromObject({ + from: signer.address, + suggestedParams: suggested, + appIndex: info.appId, + appArgs: [encoder.encode("transfer_nft")], + foreignAssets: [info.nftId], + }); + const encodedTx = js_base64_1.Base64.fromUint8Array(txn.toByte()); + const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); + const res = await signer.algoSigner.send({ + ledger: signer.ledger, + tx: signedTx[0].blob, + }); + await waitTxnConfirm(res.txId); + return res.txId; + } + return { + XpNft: "", + algod, + getNonce: () => __1.Chain.ALGORAND, + claimNft, + optInNft, + isOptIn, + async balance(address) { + const acc = await algod + .accountInformation(address) + .do() + .catch(() => undefined); + if (!acc) return new bignumber_js_1.BigNumber(0); + return new bignumber_js_1.BigNumber(acc.amount); + }, + async preTransfer(sender, nft, fee) { + if (await isOptIn(sender.address, nft.native.nftId)) { + return undefined; + } + const suggested = await algod.getTransactionParams().do(); + const callTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ + from: sender.address, + appIndex: args.sendNftAppId, + appArgs: [encoder.encode("optin_asset")], + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + const feesTx = + algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ + from: sender.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(fee.toString()), + }); + algosdk_1.default.assignGroupID([callTx, feesTx]); + const encodedTxns = [ + { txn: js_base64_1.Base64.fromUint8Array(callTx.toByte()) }, + { txn: js_base64_1.Base64.fromUint8Array(feesTx.toByte()) }, + ]; + const signedTxns = await sender.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + js_base64_1.Base64.toUint8Array(signedTxns[0].blob), + js_base64_1.Base64.toUint8Array(signedTxns[1].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + return suggested; + }, + getFeeMargin() { + return args.feeMargin; + }, + transferNftToForeign: transferNft, + unfreezeWrappedNft: async (signer, to, nft, txFees, nonce) => { + const suggested = await algod.getTransactionParams().do(); + const transferTx = + algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ + from: signer.address, + to: appAddr, + amount: 1, + assetIndex: nft.native.nftId, + suggestedParams: suggested, + }); + const sTransferTx = await signer.algoSigner.signTxn([ + { txn: js_base64_1.Base64.fromUint8Array(transferTx.toByte()) }, + ]); + const transferRes = await algod + .sendRawTransaction( + js_base64_1.Base64.toUint8Array(sTransferTx[0].blob) + ) + .do(); + await waitTxnConfirm(transferRes.txId); + const paymentTxn = + algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ + from: signer.address, + suggestedParams: suggested, + to: appAddr, + amount: BigInt(txFees.toString()), + }); + const appArgs = [ + encoder.encode("withdraw_nft"), + encoder.encode(to), + new Uint8Array( + Buffer.from(new Uint32Array([parseInt(nonce)]).buffer).reverse() + ), + new Uint8Array(Buffer.from("")), + ]; + const tCallTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ + from: signer.address, + appIndex: args.sendNftAppId, + appArgs, + foreignAssets: [nft.native.nftId], + suggestedParams: suggested, + }); + algosdk_1.default.assignGroupID([tCallTx, paymentTxn]); + const encodedTxns = [ + { txn: js_base64_1.Base64.fromUint8Array(tCallTx.toByte()) }, + { txn: js_base64_1.Base64.fromUint8Array(paymentTxn.toByte()) }, + ]; + const signedTxns = await signer.algoSigner.signTxn(encodedTxns); + const sendRes = await algod + .sendRawTransaction([ + js_base64_1.Base64.toUint8Array(signedTxns[0].blob), + js_base64_1.Base64.toUint8Array(signedTxns[1].blob), + ]) + .do(); + await waitTxnConfirm(sendRes.txId); + await args.notifier.notifyAlgorand(sendRes.txId); + return sendRes.txId; + }, + estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), + estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), + validateAddress: (adr) => + Promise.resolve(algosdk_1.default.isValidAddress(adr)), + claimableNfts: async (txSocket, owner) => { + await txSocket.cleanNfts(owner); + const claims = await txSocket.claimNfts(owner); + const res = await Promise.all( + claims.map(async (v) => { + const appId = parseInt(v.app_id); + const nftId = parseInt(v.nft_id); + const assetRes = await indexer + .lookupAssetByID(nftId) + .do() + .catch(() => undefined); + if (assetRes == undefined) return []; + const assetInfo = assetRes.asset; + const bal = await indexer + .lookupAssetBalances(nftId) + .currencyGreaterThan(0) + .currencyLessThan(2) + .limit(1) + .do(); + if (bal.balances[0].address == owner || bal.balances[0].amount == 0) + return []; + return [ + { + nftId, + appId, + uri: assetInfo.params.url, + name: assetInfo.params.name || "", + }, + ]; + }) + ); + return res.flat(); + }, + walletConnectSigner(connector, address) { + const signer = { + accounts(_) { + return Promise.resolve( + connector.accounts.map((s) => ({ address: s })) + ); + }, + async signTxn(txns) { + const req = (0, utils_1.formatJsonRpcRequest)("algo_signTxn", [txns]); + const signed = await connector.sendCustomRequest(req); + const decoded = signed.map((s) => { + return { + blob: s ?? "", + }; + }); + if (decoded.length != txns.length) { + throw Error("Couldn't sign all transactions!"); + } + return decoded; + }, + send(info) { + return algod + .sendRawTransaction(js_base64_1.Base64.toUint8Array(info.tx)) + .do(); + }, + }; + return { + algoSigner: signer, + address, + ledger: "any", + }; + }, + myAlgoSigner(myAlgo, address) { + const signer = { + async accounts(_) { + const accs = await myAlgo.connect(); + return accs; + }, + async signTxn(txns) { + const stxs = await myAlgo.signTransaction(txns.map(({ txn }) => txn)); + return stxs.map((tx) => ({ + txID: tx.txID, + blob: js_base64_1.Base64.fromUint8Array(tx.blob), + })); + }, + send(info) { + return algod + .sendRawTransaction(js_base64_1.Base64.toUint8Array(info.tx)) + .do(); + }, + }; + return { + algoSigner: signer, + address, + ledger: "any", + }; + }, + async getTokenURI(_, tokenId) { + if (tokenId) { + const res = await indexer.lookupAssetByID(+tokenId).do(); + if (res?.asset?.params) { + return res.asset.params.url; + } + } + return ""; + }, + }; +} +exports.algorandHelper = algorandHelper; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxnb3JhbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9hbGdvcmFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxzREFBbUQ7QUFDbkQsaURBQTZEO0FBQzdELCtDQUF5QztBQUN6Qyx5Q0FBbUM7QUFDbkMsMEJBVVk7QUE2Q1o7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlO0lBQzdCLDJEQUEyRDtJQUMzRCxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRTtRQUNyQyxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQzFDO0lBRUQsMkRBQTJEO0lBQzNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFSRCwwQ0FRQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixLQUFzQixFQUN0QixHQUFvQjtJQUVwQixNQUFNLE1BQU0sR0FBa0I7UUFDNUIsUUFBUSxDQUFDLENBQUM7WUFDUixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ3JCO29CQUNFLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSTtpQkFDbEI7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUk7WUFDVixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDYixNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLGVBQWUsQ0FDcEMsaUJBQU8sQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDN0QsR0FBRyxDQUFDLEVBQUUsQ0FDUCxDQUFDO2dCQUNGLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNqQixJQUFJLEVBQUUsa0JBQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztpQkFDekMsQ0FBQztZQUNK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 diff --git a/dist/helpers/aptos/bridge_client.d.ts b/dist/helpers/aptos/bridge_client.d.ts new file mode 100644 index 000000000..d2bde53f4 --- /dev/null +++ b/dist/helpers/aptos/bridge_client.d.ts @@ -0,0 +1,130 @@ +import { AptosAccount, AptosClient, HexString, MaybeHexString } from "aptos"; +interface BridgeData { + action_cnt: string; + burning_nfts: { + handle: string; + }; + consumed_actions: { + handle: string; + }; + group_key: string; + paused: boolean; + frozen_nfts: { + handle: string; + }; + whitelist: { + handle: string; + }; +} +export declare class BridgeClient { + private aptosClient; + private transactionBuilder; + private address; + constructor( + aptosClient: AptosClient, + address: string, + network: "mainnet" | "staging" | "testnet" + ); + initialize(account: AptosAccount, groupKey: Uint8Array): Promise; + pause( + account: AptosAccount, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + unpause( + account: AptosAccount, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + validateWhitelist( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + validateBlacklist( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + validateWithdrawFees( + account: AptosAccount, + to: HexString, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + validateTransferNft( + account: AptosAccount, + collection: string, + name: string, + description: string, + maximum: number | bigint, + uri: string, + royaltyPayeeAddress: HexString, + royaltyPointsDenominator: number | bigint, + royaltyPointsNumerator: number | bigint, + mutateSetting: boolean[], + to: HexString, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + withdrawNft( + account: AptosAccount, + _bridgeAdmin: HexString, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string, + price: number | bigint, + chainNonce: number | bigint, + to: string, + mintWith: string + ): Promise; + validateBurnNft( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + freezeNft( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: number | bigint, + price: number | bigint, + chainNonce: number | bigint, + to: string, + mintWith: string + ): Promise; + validateUnfreezeNft( + account: AptosAccount, + collectionCreator: HexString, + collectionName: string, + tokenName: string, + propertyVersion: string, + to: HexString, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + updateGroupKey( + account: AptosAccount, + groupKey: Uint8Array, + actionId: number | bigint, + signature: Uint8Array + ): Promise; + getBridgeData(): Promise; + getAddress(): string; + isWhitelist( + collectionCreator: MaybeHexString, + collectionName: string + ): Promise; +} +export {}; +//# sourceMappingURL=bridge_client.d.ts.map diff --git a/dist/helpers/aptos/bridge_client.d.ts.map b/dist/helpers/aptos/bridge_client.d.ts.map new file mode 100644 index 000000000..62ccf1aa3 --- /dev/null +++ b/dist/helpers/aptos/bridge_client.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bridge_client.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/bridge_client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EAEf,MAAM,OAAO,CAAC;AAOf,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,gBAAgB,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,kBAAkB,CAAwB;IAClD,OAAO,CAAC,OAAO,CAAS;gBAGtB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;IAuBtC,UAAU,CACd,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,MAAM,CAAC;IAUZ,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC;IAUZ,OAAO,CACX,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC;IAUZ,iBAAiB,CACrB,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,SAAS,EAC5B,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC;IAUZ,iBAAiB,CACrB,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,SAAS,EAC5B,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC;IAUZ,oBAAoB,CACxB,OAAO,EAAE,YAAY,EACrB,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC;IAUZ,mBAAmB,CACvB,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,GAAG,EAAE,MAAM,EACX,mBAAmB,EAAE,SAAS,EAC9B,wBAAwB,EAAE,MAAM,GAAG,MAAM,EACzC,sBAAsB,EAAE,MAAM,GAAG,MAAM,EACvC,aAAa,EAAE,OAAO,EAAE,EACxB,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC;IAuBZ,WAAW,CACf,OAAO,EAAE,YAAY,EACrB,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,SAAS,EAC5B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAmBZ,eAAe,CACnB,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,SAAS,EAC5B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC;IAiBZ,SAAS,CACb,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,SAAS,EAC5B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GAAG,MAAM,EAChC,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAmBZ,mBAAmB,CACvB,OAAO,EAAE,YAAY,EACrB,iBAAiB,EAAE,SAAS,EAC5B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC;IAkBZ,cAAc,CAClB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC;IAUZ,aAAa;IAUnB,UAAU;IAIJ,WAAW,CAAC,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM;CAiB5E"} \ No newline at end of file diff --git a/dist/helpers/aptos/bridge_client.js b/dist/helpers/aptos/bridge_client.js new file mode 100644 index 000000000..0010bd8c4 --- /dev/null +++ b/dist/helpers/aptos/bridge_client.js @@ -0,0 +1,265 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BridgeClient = void 0; +const aptos_1 = require("aptos"); +const bridge_client_abis_1 = require("./bridge_client_abis"); +class BridgeClient { + constructor(aptosClient, address, network) { + this.aptosClient = aptosClient; + let abi; + switch (network) { + case "mainnet": + abi = bridge_client_abis_1.MAINNET_BRIDGE_ABIS; + break; + case "staging": + abi = bridge_client_abis_1.STAGING_BRIDGE_ABIS; + break; + case "testnet": + abi = bridge_client_abis_1.TESTNET_BRIDGE_ABIS; + break; + default: + throw new Error("Invalid network"); + } + this.transactionBuilder = new aptos_1.TransactionBuilderABI( + abi.map((abi) => new aptos_1.HexString(abi).toUint8Array()) + ); + this.address = address; + } + async initialize(account, groupKey) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::initialize`, + [], + [groupKey] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async pause(account, actionId, signature) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::pause`, + [], + [actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async unpause(account, actionId, signature) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::unpause`, + [], + [actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateWhitelist( + account, + collectionCreator, + collectionName, + actionId, + signature + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_whitelist`, + [], + [collectionCreator.toString(), collectionName, actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateBlacklist( + account, + collectionCreator, + collectionName, + actionId, + signature + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_blacklist`, + [], + [collectionCreator.toString(), collectionName, actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateWithdrawFees(account, to, actionId, signature) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_withdraw_fees`, + [], + [to.toString(), actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateTransferNft( + account, + collection, + name, + description, + maximum, + uri, + royaltyPayeeAddress, + royaltyPointsDenominator, + royaltyPointsNumerator, + mutateSetting, + to, + actionId, + signature + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_transfer_nft`, + [], + [ + collection, + name, + description, + maximum, + uri, + royaltyPayeeAddress.toString(), + royaltyPointsDenominator.toString(), + royaltyPointsNumerator.toString(), + mutateSetting, + to.toString(), + actionId, + signature, + ] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async withdrawNft( + account, + _bridgeAdmin, + collectionCreator, + collectionName, + tokenName, + propertyVersion, + price, + chainNonce, + to, + mintWith + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::withdraw_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + price, + chainNonce, + to, + mintWith, + ] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateBurnNft( + account, + collectionCreator, + collectionName, + tokenName, + propertyVersion, + actionId, + signature + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_burn_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + actionId, + signature, + ] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async freezeNft( + account, + collectionCreator, + collectionName, + tokenName, + propertyVersion, + price, + chainNonce, + to, + mintWith + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::freeze_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + price, + chainNonce, + to, + mintWith, + ] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async validateUnfreezeNft( + account, + collectionCreator, + collectionName, + tokenName, + propertyVersion, + to, + actionId, + signature + ) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::validate_unfreeze_nft`, + [], + [ + collectionCreator.toString(), + collectionName, + tokenName, + propertyVersion, + to.toString(), + actionId, + signature, + ] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async updateGroupKey(account, groupKey, actionId, signature) { + const payload = this.transactionBuilder.buildTransactionPayload( + `${this.getAddress()}::bridge::update_group_key`, + [], + [groupKey, actionId, signature] + ); + return this.aptosClient.generateSignSubmitTransaction(account, payload); + } + async getBridgeData() { + const resources = await this.aptosClient.getAccountResources( + this.getAddress() + ); + const accountResource = resources.find( + (r) => r.type == `${this.getAddress()}::bridge::Bridge` + ); + return accountResource?.data; + } + getAddress() { + return this.address; + } + async isWhitelist(collectionCreator, collectionName) { + const data = await this.getBridgeData(); + const { handle } = data.whitelist; + try { + const res = await this.aptosClient.getTableItem(handle, { + key_type: `${this.getAddress()}::bridge::CollectionId`, + value_type: "bool", + key: { + creator: collectionCreator.toString(), + name: collectionName, + }, + }); + return res; + } catch (e) { + return false; + } + } +} +exports.BridgeClient = BridgeClient; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2FwdG9zL2JyaWRnZV9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBTWU7QUFDZiw2REFJOEI7QUFvQjlCLE1BQWEsWUFBWTtJQUt2QixZQUNFLFdBQXdCLEVBQ3hCLE9BQWUsRUFDZixPQUEwQztRQUUxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLEdBQUcsQ0FBQztRQUNSLFFBQVEsT0FBTyxFQUFFO1lBQ2YsS0FBSyxTQUFTO2dCQUNaLEdBQUcsR0FBRyx3Q0FBbUIsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixHQUFHLEdBQUcsd0NBQW1CLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osR0FBRyxHQUFHLHdDQUFtQixDQUFDO2dCQUMxQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksNkJBQXFCLENBQ2pELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUNwRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQ2QsT0FBcUIsRUFDckIsUUFBb0I7UUFFcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUM3RCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLEVBQzFDLEVBQUUsRUFDRixDQUFDLFFBQVEsQ0FBQyxDQUNYLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxX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 diff --git a/dist/helpers/aptos/bridge_client_abis.d.ts b/dist/helpers/aptos/bridge_client_abis.d.ts new file mode 100644 index 000000000..4c19f20a8 --- /dev/null +++ b/dist/helpers/aptos/bridge_client_abis.d.ts @@ -0,0 +1,4 @@ +export declare const MAINNET_BRIDGE_ABIS: string[]; +export declare const TESTNET_BRIDGE_ABIS: string[]; +export declare const STAGING_BRIDGE_ABIS: string[]; +//# sourceMappingURL=bridge_client_abis.d.ts.map diff --git a/dist/helpers/aptos/bridge_client_abis.d.ts.map b/dist/helpers/aptos/bridge_client_abis.d.ts.map new file mode 100644 index 000000000..01a6522d5 --- /dev/null +++ b/dist/helpers/aptos/bridge_client_abis.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bridge_client_abis.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/bridge_client_abis.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,UAyB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAyB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAY/B,CAAC"} \ No newline at end of file diff --git a/dist/helpers/aptos/bridge_client_abis.js b/dist/helpers/aptos/bridge_client_abis.js new file mode 100644 index 000000000..abe906c5e --- /dev/null +++ b/dist/helpers/aptos/bridge_client_abis.js @@ -0,0 +1,72 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.STAGING_BRIDGE_ABIS = + exports.TESTNET_BRIDGE_ABIS = + exports.MAINNET_BRIDGE_ABIS = + void 0; +exports.MAINNET_BRIDGE_ABIS = [ + // ../build/aptos-bridge/abis/bridge/initialize.abi + "010a696e697469616c697a65f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000010967726f75705f6b65790601", + // ../build/aptos-bridge/abis/bridge/pause.abi + "01057061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/unpause.abi + "0107756e7061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/update_group_key.abi + "01107570646174655f67726f75705f6b6579f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi + "011276616c69646174655f77686974656c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi + "011276616c69646174655f626c61636b6c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi + "011676616c69646174655f77697468647261775f66656573f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi + "011576616c69646174655f7472616e736665725f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi + "010c77697468647261775f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/validate_burn_nft.abi + "011176616c69646174655f6275726e5f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/freeze_nft.abi + "010a667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi + "011576616c69646174655f756e667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; +exports.TESTNET_BRIDGE_ABIS = [ + // ../build/aptos-bridge/abis/bridge/initialize.abi + "010a696e697469616c697a652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000010967726f75705f6b65790601", + // ../build/aptos-bridge/abis/bridge/pause.abi + "010570617573652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/unpause.abi + "0107756e70617573652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000209616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/update_group_key.abi + "01107570646174655f67726f75705f6b65792b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi + "011276616c69646174655f77686974656c6973742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi + "011276616c69646174655f626c61636b6c6973742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi + "011676616c69646174655f77697468647261775f666565732b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi + "011576616c69646174655f7472616e736665725f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi + "010c77697468647261775f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/freeze_nft.abi + "010a667265657a655f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi + "011576616c69646174655f756e667265657a655f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", + // ../build/aptos-bridge/abis/bridge/create_collection.abi + "01116372656174655f636f6c6c656374696f6e2b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000050f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670016636f6c6c656374696f6e5f6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000e636f6c6c656374696f6e5f75726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020e6d75746174655f73657474696e670600", +]; +exports.STAGING_BRIDGE_ABIS = [ + "010a696e697469616c697a65813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000010967726f75705f6b65790601", + "01057061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", + "0107756e7061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", + "01107570646174655f67726f75705f6b6579813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f77686974656c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011276616c69646174655f626c61636b6c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", + "011676616c69646174655f77697468647261775f66656573813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", + "011576616c69646174655f7472616e736665725f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", + "010c77697468647261775f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "010a667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", + "011576616c69646174655f756e667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2NsaWVudF9hYmlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvYXB0b3MvYnJpZGdlX2NsaWVudF9hYmlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsbURBQW1EO0lBQ25ELHNJQUFzSTtJQUN0SSw4Q0FBOEM7SUFDOUMsa0pBQWtKO0lBQ2xKLGdEQUFnRDtJQUNoRCxzSkFBc0o7SUFDdEoseURBQXlEO0lBQ3pELHdNQUF3TTtJQUN4TSwyREFBMkQ7SUFDM0Qsb1ZBQW9WO0lBQ3BWLDJEQUEyRDtJQUMzRCxvVkFBb1Y7SUFDcFYsK0RBQStEO0lBQy9ELDRMQUE0TDtJQUM1TCw2REFBNkQ7SUFDN0QsNG1DQUE0bUM7SUFDNW1DLHFEQUFxRDtJQUNyRCxzckJBQXNyQjtJQUN0ckIsMERBQTBEO0lBQzFELDRlQUE0ZTtJQUM1ZSxtREFBbUQ7SUFDbkQsa3JCQUFrckI7SUFDbHJCLDhEQUE4RDtJQUM5RCw0ZkFBNGY7Q0FDN2YsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsbURBQW1EO0lBQ25ELHNJQUFzSTtJQUN0SSw4Q0FBOEM7SUFDOUMsa0pBQWtKO0lBQ2xKLGdEQUFnRDtJQUNoRCxzSkFBc0o7SUFDdEoseURBQXlEO0lBQ3pELHdNQUF3TTtJQUN4TSwyREFBMkQ7SUFDM0Qsb1ZBQW9WO0lBQ3BWLDJEQUEyRDtJQUMzRCxvVkFBb1Y7SUFDcFYsK0RBQStEO0lBQy9ELDRMQUE0TDtJQUM1TCw2REFBNkQ7SUFDN0QsdzBCQUF3MEI7SUFDeDBCLHFEQUFxRDtJQUNyRCxzckJBQXNyQjtJQUN0ckIsbURBQW1EO0lBQ25ELGtyQkFBa3JCO0lBQ2xyQiw4REFBOEQ7SUFDOUQsNGZBQTRmO0lBQzVmLDBEQUEwRDtJQUMxRCw0akJBQTRqQjtDQUM3akIsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsc0lBQXNJO0lBQ3RJLGtKQUFrSjtJQUNsSixzSkFBc0o7SUFDdEosd01BQXdNO0lBQ3hNLG9WQUFvVjtJQUNwVixvVkFBb1Y7SUFDcFYsNExBQTRMO0lBQzVMLHcwQkFBdzBCO0lBQ3gwQixzckJBQXNyQjtJQUN0ckIsa3JCQUFrckI7SUFDbHJCLDRmQUE0ZjtDQUM3ZixDQUFDIn0= diff --git a/dist/helpers/aptos/index.d.ts b/dist/helpers/aptos/index.d.ts new file mode 100644 index 000000000..d9de3673b --- /dev/null +++ b/dist/helpers/aptos/index.d.ts @@ -0,0 +1,72 @@ +import { + ChainNonceGet, + ClaimNFT, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + MintNft, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + BalanceCheck, +} from "../chain"; +import { AptosAccount, AptosClient, HexString } from "aptos"; +import { EvNotifier } from "../../notifier"; +export declare type AptosNFT = { + collection_creator: string; + collection_name: string; + token_name: string; + property_version: number; +}; +/** + * @param collection name of the collection u already own. if u dont own any token, then set this as undefined + * @param name name of the NFT + * @param description description of the NFT + * @param uri The URI which the NFT points to + * @param createCollection set this as true if u set collection as undefined. it will create a new collection. + */ +export declare type AptosMintArgs = { + collection: string | undefined; + name: string; + description: string; + uri: string; + createCollection: boolean; +}; +export declare type AptosClaimArgs = { + sender: HexString; + propertyVersion: number; + collectionName: string; + creator: string; + name: string; +}; +export declare type AptosHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + XpNft: string; + } & GetFeeMargins & + MintNft & + GetProvider & + ClaimNFT & + BalanceCheck & { + setPetraSigner(signer: any): void; + }; +export declare type AptosParams = { + feeMargin: FeeMargins; + rpcUrl: string; + xpnft: string; + bridge: string; + notifier: EvNotifier; + network: "mainnet" | "staging" | "testnet"; +}; +export declare function aptosHelper({ + feeMargin, + rpcUrl, + xpnft, + bridge, + notifier, + network, +}: AptosParams): Promise; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/helpers/aptos/index.d.ts.map b/dist/helpers/aptos/index.d.ts.map new file mode 100644 index 000000000..0462b2ff9 --- /dev/null +++ b/dist/helpers/aptos/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EAGV,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,oBAAY,QAAQ,GAAG;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,oBAAY,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,oBAAY,cAAc,GAAG;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,WAAW,GAAG,aAAa,GACrC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,cAAc,CAAC,QAAQ,CAAC,GACxB,eAAe,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,aAAa,GACjB,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,GAC5C,WAAW,CAAC,WAAW,CAAC,GACxB,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC9C,YAAY,GAAG;IACb,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CACnC,CAAC;AAEJ,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAChC,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,GACR,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAiJpC"} \ No newline at end of file diff --git a/dist/helpers/aptos/index.js b/dist/helpers/aptos/index.js new file mode 100644 index 000000000..76100dc2b --- /dev/null +++ b/dist/helpers/aptos/index.js @@ -0,0 +1,167 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.aptosHelper = void 0; +const aptos_1 = require("aptos"); +const consts_1 = require("../../consts"); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const bridge_client_1 = require("./bridge_client"); +async function aptosHelper({ + feeMargin, + rpcUrl, + xpnft, + bridge, + notifier, + network, +}) { + const client = new aptos_1.AptosClient(rpcUrl); + const bridgeClient = new bridge_client_1.BridgeClient( + client, + bridge, + network + ); + const coinClient = new aptos_1.CoinClient(client); + return { + getNonce() { + return consts_1.Chain.APTOS; + }, + getFeeMargin() { + return feeMargin; + }, + setPetraSigner(signer) { + //imposter + client.generateSignSubmitTransaction = async function (_, payload) { + const trx = await signer.signAndSubmitTransaction(payload); + return trx.hash; + }; + }, + balance: async (address) => { + return new bignumber_js_1.default( + (await coinClient.checkBalance(address)).toString() + ); + }, + async validateAddress(adr) { + try { + await client.getAccount(adr); + return true; + } catch (e) { + return false; + } + }, + XpNft: xpnft, + async estimateValidateTransferNft(_to, _metadata, _mintWith) { + return new bignumber_js_1.default(0); + }, + async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { + return new bignumber_js_1.default(0); + }, + async transferNftToForeign( + sender, + chain_nonce, + to, + id, + txFees, + mintWith, + _gasLimit + ) { + const receipt = await bridgeClient.freezeNft( + sender, + aptos_1.HexString.ensure(id.native.collection_creator), + id.native.collection_name, + id.native.token_name, + id.native.property_version, + BigInt(txFees.toString()), + chain_nonce, + to, + mintWith + ); + await new Promise((r) => setTimeout(r, 10000)); + await notifier.notifyAptos(receipt); + return receipt; + }, + getProvider() { + return client; + }, + async mintNft(owner, options) { + //AptosAccount.fromAptosAccountObject({""}) + const tc = new aptos_1.TokenClient(client); + if (options.createCollection) { + await tc.createCollection( + owner, + "UMT", + "UserNftMinter - Mint your NFTs Here To Test", + "https://example.com", + BigInt(2 ** 64) - BigInt(1) + ); + const response = await tc.createToken( + owner, + "UMT", + options.name, + options.description, + 1, + options.uri, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined + ); + return response; + } else { + const response = await tc.createToken( + owner, + options.collection, + options.name, + options.description, + 1, + options.uri, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined + ); + return response; + } + }, + async claimNFT(signer, params) { + const tokenClient = new aptos_1.TokenClient(client); + const claim = await tokenClient.claimToken( + signer, + params.sender, + params.creator, + params.collectionName, + params.name, + params.propertyVersion + ); + return claim; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const receipt = await bridgeClient.withdrawNft( + sender, + aptos_1.HexString.ensure(bridge), + aptos_1.HexString.ensure(id.native.collection_creator), + id.native.collection_name, + id.native.token_name, + id.native.property_version.toString(), + BigInt(txFees.toString()), + parseInt(nonce), + to, + id.native.collection_creator + ); + await new Promise((r) => setTimeout(r, 10000)); + await notifier.notifyAptos(receipt); + return receipt; + }, + }; +} +exports.aptosHelper = aptosHelper; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9hcHRvcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFjQSxpQ0FNZTtBQUVmLHlDQUFxQztBQUNyQyxnRUFBcUM7QUFDckMsbURBQStDO0FBd0R4QyxLQUFLLFVBQVUsV0FBVyxDQUFDLEVBQ2hDLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxHQUNLO0lBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXZDLE1BQU0sWUFBWSxHQUFHLElBQUksNEJBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxQyxPQUFPO1FBQ0wsUUFBUTtZQUNOLE9BQU8sY0FBSyxDQUFDLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsWUFBWTtZQUNWLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxjQUFjLENBQUMsTUFBVztZQUN4QixVQUFVO1lBQ1YsTUFBTSxDQUFDLDZCQUE2QixHQUFHLEtBQUssV0FDMUMsQ0FBZSxFQUNmLE9BQVk7Z0JBRVosTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzNELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztZQUNsQixDQUFDLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN6QixPQUFPLElBQUksc0JBQVMsQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQztR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 diff --git a/dist/helpers/bridge_pool.teal.d.ts b/dist/helpers/bridge_pool.teal.d.ts new file mode 100644 index 000000000..55080bca3 --- /dev/null +++ b/dist/helpers/bridge_pool.teal.d.ts @@ -0,0 +1,3 @@ +export declare const BRIDGE_TEAL = + '#pragma version 5\nintcblock 1 6 3\nbytecblock TMPL_RECV_ADDR\ntxn TypeEnum\npushint 4 // axfer\n==\ntxn AssetAmount\nintc_0 // 1\n==\n&&\ntxn AssetReceiver\nbytec_0 // TMPL_RECV_ADDR\n==\n&&\nbnz main_l6\ngtxn 0 TypeEnum\nintc_1 // appl\n==\ngtxna 0 ApplicationArgs 0\npushbytes 0x6372656174655f6e6674 // "create_nft"\n==\n&&\ngtxna 0 Accounts 1\nbytec_0 // TMPL_RECV_ADDR\n==\n&&\ngtxn 1 TypeEnum\nintc_2 // acfg\n==\n&&\ngtxn 1 ConfigAssetTotal\nintc_0 // 1\n==\n&&\ngtxn 1 ConfigAssetDecimals\npushint 0 // 0\n==\n&&\nbnz main_l5\ngtxn 0 TypeEnum\nintc_1 // appl\n==\ngtxna 0 ApplicationArgs 0\npushbytes 0x77697468647261775f6e6674 // "withdraw_nft"\n==\n&&\ngtxn 1 TypeEnum\nintc_2 // acfg\n==\n&&\ngtxn 1 ConfigAsset\ngtxna 0 Assets 0\n==\n&&\nbnz main_l4\nerr\nmain_l4:\nintc_0 // 1\nreturn\nmain_l5:\nintc_0 // 1\nreturn\nmain_l6:\nintc_0 // 1\nreturn'; +//# sourceMappingURL=bridge_pool.teal.d.ts.map diff --git a/dist/helpers/bridge_pool.teal.d.ts.map b/dist/helpers/bridge_pool.teal.d.ts.map new file mode 100644 index 000000000..61be1fc24 --- /dev/null +++ b/dist/helpers/bridge_pool.teal.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"bridge_pool.teal.d.ts","sourceRoot":"","sources":["../../src/helpers/bridge_pool.teal.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,o2BAgEjB,CAAC"} \ No newline at end of file diff --git a/dist/helpers/bridge_pool.teal.js b/dist/helpers/bridge_pool.teal.js new file mode 100644 index 000000000..0c27fe1a5 --- /dev/null +++ b/dist/helpers/bridge_pool.teal.js @@ -0,0 +1,69 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BRIDGE_TEAL = void 0; +exports.BRIDGE_TEAL = `#pragma version 5 +intcblock 1 6 3 +bytecblock TMPL_RECV_ADDR +txn TypeEnum +pushint 4 // axfer +== +txn AssetAmount +intc_0 // 1 +== +&& +txn AssetReceiver +bytec_0 // TMPL_RECV_ADDR +== +&& +bnz main_l6 +gtxn 0 TypeEnum +intc_1 // appl +== +gtxna 0 ApplicationArgs 0 +pushbytes 0x6372656174655f6e6674 // "create_nft" +== +&& +gtxna 0 Accounts 1 +bytec_0 // TMPL_RECV_ADDR +== +&& +gtxn 1 TypeEnum +intc_2 // acfg +== +&& +gtxn 1 ConfigAssetTotal +intc_0 // 1 +== +&& +gtxn 1 ConfigAssetDecimals +pushint 0 // 0 +== +&& +bnz main_l5 +gtxn 0 TypeEnum +intc_1 // appl +== +gtxna 0 ApplicationArgs 0 +pushbytes 0x77697468647261775f6e6674 // "withdraw_nft" +== +&& +gtxn 1 TypeEnum +intc_2 // acfg +== +&& +gtxn 1 ConfigAsset +gtxna 0 Assets 0 +== +&& +bnz main_l4 +err +main_l4: +intc_0 // 1 +return +main_l5: +intc_0 // 1 +return +main_l6: +intc_0 // 1 +return`; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX3Bvb2wudGVhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2JyaWRnZV9wb29sLnRlYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxXQUFXLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnRXBCLENBQUMifQ== diff --git a/dist/helpers/chain.d.ts b/dist/helpers/chain.d.ts new file mode 100644 index 000000000..6eb3a664a --- /dev/null +++ b/dist/helpers/chain.d.ts @@ -0,0 +1,184 @@ +import BigNumber from "bignumber.js"; +import { ethers } from "ethers"; +import { ChainNonce } from "../type-utils"; +/** + * NFT Info + */ +export declare type NftInfo = { + readonly uri: string; + readonly native: Raw; + readonly collectionIdent: string; + readonly tokenId?: any; + readonly originChain?: any; +}; +/** + * Action to perform before transfer/unfreeze (if any) + */ +export interface PreTransfer { + preTransfer( + sender: Signer, + nft: NftInfo, + fee: BigNumber, + args?: ExtraArgs + ): Promise; + preUnfreeze( + sender: Signer, + nft: NftInfo, + fee: BigNumber, + args?: ExtraArgs + ): Promise; +} +/** + * Transfer NFT to a foreign chain, freezing the original one + * + * @param sender Account which owns the NFT on the native chain, able to sign transactions + * @param chain_nonce Nonce of the target chain + * @param to Address of the receiver on the foreign chain + * @param id Information required to freeze this nft + * + * @returns Transaction and the Identifier of this action to track the status + */ +export interface TransferNftForeign { + transferNftToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: NftInfo, + txFees: BigNumber, + mintWith: string, + gasLimit?: ethers.BigNumberish | undefined, + gasPrice?: ethers.BigNumberish | undefined + ): Promise; +} +/** + * Unfreeze native NFT existing on a foreign chain(Send back NFT) + * chain_nonce is automatically derived + * + * @param sender Account which owns the wrapped NFT on this chain, able to sign transactions + * @param to Address of the receiver on the original chain + * @param id Information required to unfreeze this nft + * + * @returns Transaction and the Identifier of this action to track the status + */ +export interface UnfreezeForeignNft { + unfreezeWrappedNft( + sender: Signer, + to: string, + id: NftInfo, + txFees: BigNumber, + nonce: string, + gasLimit: ethers.BigNumberish | undefined, + gasPrice: ethers.BigNumberish | undefined + ): Promise; +} +/** + * Get the balance of an address on the chain + */ +export interface BalanceCheck { + balance(address: string): Promise; +} +/** + * Create a new NFT on this chain + * + * @param options Arguments required to mint the nft + */ +export interface MintNft { + mintNft(owner: Signer, options: Args): Promise; +} +export interface ValidateAddress { + validateAddress(adr: string): Promise; +} +export interface EstimateTxFees { + estimateValidateTransferNft( + to: string, + metadata: NftInfo, + mintWith: string + ): Promise; + estimateContractDep?(toChain: any): Promise; + isNftWhitelisted?(nft: any): Promise; + estimateValidateUnfreezeNft( + to: string, + metadata: NftInfo, + mintWith: string + ): Promise; +} +export declare function ConcurrentSendError(): Error; +export interface PreTransferRawTxn { + preTransferRawTxn( + id: NftInfo, + address: string, + value?: BigNumber + ): Promise; +} +export interface ChainNonceGet { + getNonce(): ChainNonce; +} +export interface ExtractAction { + extractAction(txn: Txn): Promise; +} +export declare enum TransactionStatus { + PENDING = "pending", + SUCCESS = "success", + FAILURE = "failure", + UNKNOWN = "unknown", +} +export interface ExtractTxnStatus { + extractTxnStatus(txn: string): Promise; +} +export interface GetTokenURI { + getTokenURI(contract: string, tokenId: string): Promise; +} +export interface TransferNftForeignBatch { + transferNftBatchToForeign( + sender: Signer, + chain_nonce: number, + to: string, + id: NftInfo[], + mintWith: string, + txFees: BigNumber + ): Promise; +} +export interface UnfreezeForeignNftBatch { + unfreezeWrappedNftBatch( + sender: Signer, + chainNonce: number, + to: string, + nfts: NftInfo[], + txFees: BigNumber + ): Promise; +} +export interface EstimateTxFeesBatch { + estimateValidateTransferNftBatch( + to: string, + metadatas: NftInfo[], + mintWith: string[] + ): Promise; + estimateValidateUnfreezeNftBatch( + to: string, + metadatas: NftInfo[] + ): Promise; +} +export declare type WhitelistCheck = { + isNftWhitelisted(nft: NftInfo): Promise; +}; +export interface GetProvider { + getProvider(): Provider; +} +export declare function isWrappedNft(nft: NftInfo): Promise; +export interface IsContractAddress { + isContractAddress(address: string): Promise; +} +export interface ParamsGetter { + getParams(): T; +} +export interface FeeMargins { + min: number; + max: number; +} +export interface GetFeeMargins { + getFeeMargin(): FeeMargins; +} +export interface ClaimNFT { + claimNFT(signer: Signer, args: ClaimArgs): Promise; +} +//# sourceMappingURL=chain.d.ts.map diff --git a/dist/helpers/chain.d.ts.map b/dist/helpers/chain.d.ts.map new file mode 100644 index 000000000..fbf52b75b --- /dev/null +++ b/dist/helpers/chain.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/helpers/chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/chain.js b/dist/helpers/chain.js new file mode 100644 index 000000000..261c63d06 --- /dev/null +++ b/dist/helpers/chain.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isWrappedNft = + exports.TransactionStatus = + exports.ConcurrentSendError = + void 0; +const axios_1 = __importDefault(require("axios")); +function ConcurrentSendError() { + return new Error("concurrent_send"); +} +exports.ConcurrentSendError = ConcurrentSendError; +var TransactionStatus; +(function (TransactionStatus) { + TransactionStatus["PENDING"] = "pending"; + TransactionStatus["SUCCESS"] = "success"; + TransactionStatus["FAILURE"] = "failure"; + TransactionStatus["UNKNOWN"] = "unknown"; +})( + (TransactionStatus = + exports.TransactionStatus || (exports.TransactionStatus = {})) +); +async function isWrappedNft(nft) { + return ( + typeof (await axios_1.default.get(nft.uri).catch(() => undefined))?.data + .wrapped !== "undefined" + ); +} +exports.isWrappedNft = isWrappedNft; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFrSDFCLFNBQWdCLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUZELGtEQUVDO0FBa0JELElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUMzQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFLNUI7QUFrRE0sS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFxQjtJQUN0RCxPQUFPLENBQ0wsT0FBTyxDQUFDLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDdEUsV0FBVyxDQUNaLENBQUM7QUFDSixDQUFDO0FBTEQsb0NBS0MifQ== diff --git a/dist/helpers/dfinity/dfinity.d.ts b/dist/helpers/dfinity/dfinity.d.ts new file mode 100644 index 000000000..2794e4eeb --- /dev/null +++ b/dist/helpers/dfinity/dfinity.d.ts @@ -0,0 +1,64 @@ +import { HttpAgent, Identity, SubmitResponse } from "@dfinity/agent"; +import { AccountIdentifier } from "@dfinity/nns"; +import { Principal } from "@dfinity/principal"; +import { EvNotifier } from "../../notifier"; +import { + BalanceCheck, + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + MintNft, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "../chain"; +export declare type DfinitySigner = Identity; +export declare type DfinityNft = { + canisterId: string; + tokenId: string; +}; +export declare type DfinityMintArgs = { + canisterId?: string; + uri: string; +}; +export declare type User = + | { + principal: Principal; + } + | { + address: AccountIdentifier; + }; +export interface MintRequest { + to: User; + metadata: [] | [Array]; +} +export declare type DfinityHelper = ChainNonceGet & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + XpNft: string; + } & Pick< + PreTransfer, + "preTransfer" + > & + BalanceCheck & + GetFeeMargins & + MintNft & { + nftList(owner: string, contract: string): Promise[]>; + }; +export declare type DfinityParams = { + agent: HttpAgent; + bridgeContract: Principal; + xpnftId: Principal; + notifier: EvNotifier; + feeMargin: FeeMargins; + umt: Principal; +}; +export declare function dfinityHelper( + args: DfinityParams +): Promise; +//# sourceMappingURL=dfinity.d.ts.map diff --git a/dist/helpers/dfinity/dfinity.d.ts.map b/dist/helpers/dfinity/dfinity.d.ts.map new file mode 100644 index 000000000..88ea7d404 --- /dev/null +++ b/dist/helpers/dfinity/dfinity.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"dfinity.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/dfinity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,QAAQ,EACR,cAAc,EACf,MAAM,gBAAgB,CAAC;AAexB,OAAO,EAAE,iBAAiB,EAAuB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,UAAU,CAAC;AAIlB,oBAAY,aAAa,GAAG,QAAQ,CAAC;AAErC,oBAAY,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAyBF,oBAAY,IAAI,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC7E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAChC;AAcD,oBAAY,aAAa,GAAG,aAAa,GACvC,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,cAAc,CAAC,UAAU,CAAC,GAC1B,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CACxC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EACzD,aAAa,CACd,GACD,YAAY,GACZ,aAAa,GACb,OAAO,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG;IACxD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;CAC1E,CAAC;AAEJ,oBAAY,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,aAAa,CAAC,CA8NxB"} \ No newline at end of file diff --git a/dist/helpers/dfinity/dfinity.js b/dist/helpers/dfinity/dfinity.js new file mode 100644 index 000000000..9d27b04ac --- /dev/null +++ b/dist/helpers/dfinity/dfinity.js @@ -0,0 +1,256 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.dfinityHelper = void 0; +const agent_1 = require("@dfinity/agent"); +const candid_1 = require("@dfinity/candid"); +const idl_1 = require("@dfinity/candid/lib/cjs/idl"); +const nns_1 = require("@dfinity/nns"); +const principal_1 = require("@dfinity/principal"); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const consts_1 = require("../../consts"); +const idl_2 = require("./idl"); +const Metadata = candid_1.IDL.Variant({ + fungible: candid_1.IDL.Record({ + decimals: candid_1.IDL.Nat8, + metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), + name: candid_1.IDL.Text, + symbol: candid_1.IDL.Text, + }), + nonfungible: candid_1.IDL.Record({ + metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), + }), +}); +const CommonError = candid_1.IDL.Variant({ + InvalidToken: candid_1.IDL.Text, + Other: candid_1.IDL.Text, +}); +const Result_Bearer = candid_1.IDL.Variant({ + ok: candid_1.IDL.Text, + err: CommonError, +}); +const User = candid_1.IDL.Variant({ + principal: candid_1.IDL.Principal, + address: candid_1.IDL.Text, +}); +const MintRequest = candid_1.IDL.Record({ + to: User, + metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), +}); +const ApproveRequest = (0, idl_1.Record)({ + token: idl_1.Text, + subaccount: (0, idl_1.Opt)((0, idl_1.Vec)(idl_1.Nat8)), + allowance: idl_1.Nat, + spender: new idl_1.PrincipalClass(), +}); +async function dfinityHelper(args) { + const ledger = nns_1.LedgerCanister.create({ agent: args.agent }); + const minter = agent_1.Actor.createActor(idl_2.idlFactory, { + agent: args.agent, + canisterId: args.bridgeContract, + }); + async function transferTxFee(amt) { + return await ledger.transfer({ + to: nns_1.AccountIdentifier.fromPrincipal({ + principal: args.bridgeContract, + }), + amount: nns_1.ICP.fromE8s(BigInt(amt.toString())), + }); + } + const to32bits = (num) => { + let b = new ArrayBuffer(4); + new DataView(b).setUint32(0, num); + 1 << 5; + return Array.from(new Uint8Array(b)); + }; + const tokenIdentifier = (principal, index) => { + const padding = Buffer.from("\x0Atid"); + const array = new Uint8Array([ + ...padding, + ...principal_1.Principal.fromText(principal).toUint8Array(), + ...to32bits(index), + ]); + return principal_1.Principal.fromUint8Array(array).toText(); + }; + // async function waitActionId(requestId: RequestId) { + // const pollStrat = polling.defaultStrategy(); + // const resp = await polling.pollForResponse( + // args.agent, + // args.bridgeContract, + // requestId, + // pollStrat + // ); + // return decode([Nat], resp)[0].toString() as string; + // } + return { + XpNft: args.xpnftId.toString(), + getNonce: () => consts_1.Chain.DFINITY, + estimateValidateTransferNft: async () => new bignumber_js_1.default(0), + estimateValidateUnfreezeNft: async () => new bignumber_js_1.default(0), + async validateAddress(adr) { + try { + principal_1.Principal.fromText(adr); + return true; + } catch { + return false; + } + }, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { + args.agent.replaceIdentity(sender); + const txFeeBlock = await transferTxFee(txFees); + const actionId = await minter.freeze_nft( + txFeeBlock, + principal_1.Principal.fromText(id.native.canisterId), + BigInt(id.native.tokenId), + BigInt(chain_nonce), + to, + mintWith + ); + await args.notifier.notifyDfinity(actionId.toString()); + return "NO TX RESP YET"; + }, + async mintNft(owner, options) { + const canister = principal_1.Principal.fromText( + options.canisterId ? options.canisterId : args.umt.toText() + ); + let mint = await args.agent.call(canister, { + methodName: "mintNFT", + arg: (0, idl_1.encode)( + [MintRequest], + [ + { + metadata: [[...Buffer.from(options.uri)]], + to: { + principal: owner.getPrincipal(), + }, + }, + ] + ), + }); + return mint; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + args.agent.replaceIdentity(sender); + const txFeeBlock = await transferTxFee(txFees); + const actionId = await minter.withdraw_nft( + txFeeBlock, + principal_1.Principal.fromText(id.native.canisterId), + BigInt(id.native.tokenId), + BigInt(nonce), + to + ); + await args.notifier.notifyDfinity(actionId.toString()); + return "NO TX RESP YET"; + }, + /// owner = principal of owner + async nftList(owner, contract) { + let aid = nns_1.AccountIdentifier.fromPrincipal({ + principal: principal_1.Principal.fromText(owner), + }); + let tokens = []; + const response = await args.agent.query(contract, { + methodName: "getTokens", + arg: (0, idl_1.encode)([], []), + }); + if ("reply" in response) { + let decoded = (0, idl_1.decode)( + [candid_1.IDL.Vec(candid_1.IDL.Tuple(idl_1.Nat32, Metadata))], + response.reply.arg + )[0]; + await Promise.all( + decoded.map(async (e) => { + let [tokenId, metadata] = e; + let tid = tokenIdentifier(contract, tokenId); + const ownerQuery = await args.agent.query(contract, { + methodName: "bearer", + arg: (0, idl_1.encode)([idl_1.Text], [tid]), + }); + if ("reply" in ownerQuery) { + const response = (0, idl_1.decode)( + [Result_Bearer], + ownerQuery.reply.arg + )[0]; + if ("ok" in response) { + if (response.ok === aid.toHex()) { + tokens.push({ + collectionIdent: contract, + native: { + canisterId: contract, + tokenId: tokenId.toString(), + }, + uri: Buffer.from( + metadata["nonfungible"]["metadata"][0] ?? [] + ).toString("utf-8"), + }); + } + } + } + }) + ); + } + return tokens; + }, + async preTransfer(sender, nft) { + args.agent.replaceIdentity(sender); + const tid = tokenIdentifier( + nft.collectionIdent, + Number(nft.native.tokenId) + ); + const nftContract = principal_1.Principal.fromText(nft.native.canisterId); + const approvedQuery = await args.agent.query(nftContract, { + methodName: "getAllowances", + arg: (0, idl_1.encode)([idl_1.Text], [tid]), + }); + if ("reply" in approvedQuery) { + let decoded = (0, idl_1.decode)( + [ + (0, idl_1.Vec)( + (0, idl_1.Tuple)(idl_1.Nat32, new idl_1.PrincipalClass()) + ), + ], + approvedQuery.reply.arg + )[0]; + for (const item of decoded) { + if (item[0] === Number(nft.native.tokenId)) { + if (item[1].toText() === args.bridgeContract.toText()) { + return undefined; + } + } + } + } + const approveCall = await args.agent.call(nftContract, { + methodName: "approve", + arg: (0, idl_1.encode)( + [ApproveRequest], + [ + { + token: tid, + allowance: BigInt(1), + spender: args.bridgeContract, + subaccount: [], + }, + ] + ), + }); + return Buffer.from(approveCall.requestId).toString("hex"); + }, + getFeeMargin() { + return args.feeMargin; + }, + async balance(address) { + const bal = await ledger.accountBalance({ + accountIdentifier: nns_1.AccountIdentifier.fromPrincipal({ + principal: principal_1.Principal.fromText(address), + }), + }); + const e8s = bal.toE8s().toString(); + return new bignumber_js_1.default(e8s); + }, + }; +} +exports.dfinityHelper = dfinityHelper; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZpbml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2RmaW5pdHkvZGZpbml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwQ0FNd0I7QUFDeEIsNENBQXNDO0FBQ3RDLHFEQVlxQztBQUNyQyxzQ0FBc0U7QUFDdEUsa0RBQStDO0FBQy9DLGdFQUFxQztBQUNyQyx5Q0FBcUM7QUFnQnJDLCtCQUFtQztBQWVuQyxNQUFNLFFBQVEsR0FBRyxZQUFHLENBQUMsT0FBTyxDQUFDO0lBQzNCLFFBQVEsRUFBRSxZQUFHLENBQUMsTUFBTSxDQUFDO1FBQ25CLFFBQVEsRUFBRSxZQUFHLENBQUMsSUFBSTtRQUNsQixRQUFRLEVBQUUsWUFBRyxDQUFDLEdBQUcsQ0FBQyxZQUFHLENBQUMsR0FBRyxDQUFDLFlBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLEVBQUUsWUFBRyxDQUFDLElBQUk7UUFDZCxNQUFNLEVBQUUsWUFBRyxDQUFDLElBQUk7S0FDakIsQ0FBQztJQUNGLFdBQVcsRUFBRSxZQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFlBQUcsQ0FBQyxHQUFHLENBQUMsWUFBRyxDQUFDLEdBQUcsQ0FBQyxZQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO0NBQ2xFLENBQUMsQ0FBQztBQUNILE1BQU0sV0FBVyxHQUFHLFlBQUcsQ0FBQyxPQUFPLENBQUM7SUFDOUIsWUFBWSxFQUFFLFlBQUcsQ0FBQyxJQUFJO0lBQ3RCLEtBQUssRUFBRSxZQUFHLENBQUMsSUFBSTtDQUNoQixDQUFDLENBQUM7QUFFSCxNQUFNLGFBQWEsR0FBRyxZQUFHLENBQUMsT0FBTyxDQUFDO0lBQ2hDLEVBQUUsRUFBRSxZQUFHLENBQUMsSUFBSTtJQUNaLEdBQUcsRUFBRSxXQUFXO0NBQ2pCLENBQUMsQ0FBQztBQUVILE1BQU0sSUFBSSxHQUFHLFlBQUcsQ0FBQyxPQUFPLENB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 diff --git a/dist/helpers/dfinity/idl.d.ts b/dist/helpers/dfinity/idl.d.ts new file mode 100644 index 000000000..102e4ebec --- /dev/null +++ b/dist/helpers/dfinity/idl.d.ts @@ -0,0 +1,2 @@ +export declare const idlFactory: ({ IDL }: { IDL: any }) => any; +//# sourceMappingURL=idl.d.ts.map diff --git a/dist/helpers/dfinity/idl.d.ts.map b/dist/helpers/dfinity/idl.d.ts.map new file mode 100644 index 000000000..e4bd27e68 --- /dev/null +++ b/dist/helpers/dfinity/idl.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/idl.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;SAAoB,GAAG;SAwK7C,CAAC"} \ No newline at end of file diff --git a/dist/helpers/dfinity/idl.js b/dist/helpers/dfinity/idl.js new file mode 100644 index 000000000..06bdb6607 --- /dev/null +++ b/dist/helpers/dfinity/idl.js @@ -0,0 +1,174 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.idlFactory = void 0; +const idlFactory = ({ IDL }) => { + const ValidateWhitelistDip721 = IDL.Record({ + dip_contract: IDL.Principal, + }); + const ValidateCleanLogs = IDL.Record({ + from_action: IDL.Nat, + to_action: IDL.Nat, + }); + const ValidateTransferNft = IDL.Record({ + to: IDL.Principal, + mint_with: IDL.Principal, + token_url: IDL.Text, + }); + const ValidateTransferNftBatch = IDL.Record({ + to: IDL.Principal, + mint_with: IDL.Vec(IDL.Principal), + token_urls: IDL.Vec(IDL.Text), + }); + const ValidateUnfreezeNft = IDL.Record({ + to: IDL.Principal, + dip_contract: IDL.Principal, + token_id: IDL.Nat, + }); + const ValidateUnfreezeNftBatch = IDL.Record({ + to: IDL.Principal, + dip_contracts: IDL.Vec(IDL.Principal), + token_ids: IDL.Vec(IDL.Nat), + }); + const Config = IDL.Record({ + event_cnt: IDL.Nat, + chain_nonce: IDL.Nat64, + group_key: IDL.Vec(IDL.Nat8), + paused: IDL.Bool, + }); + const BridgeEventCtx = IDL.Record({ + to: IDL.Text, + action_id: IDL.Nat, + tx_fee: IDL.Nat64, + chain_nonce: IDL.Nat64, + }); + const UnfreezeNftBatch = IDL.Record({ + uris: IDL.Vec(IDL.Text), + token_ids: IDL.Vec(IDL.Nat), + burner: IDL.Principal, + }); + const UnfreezeNft = IDL.Record({ + uri: IDL.Text, + token_id: IDL.Nat, + burner: IDL.Principal, + }); + const TransferNft = IDL.Record({ + dip721_contract: IDL.Principal, + token_id: IDL.Nat, + mint_with: IDL.Text, + token_data: IDL.Text, + }); + const TransferNftBatch = IDL.Record({ + dip721_contract: IDL.Principal, + token_datas: IDL.Vec(IDL.Text), + mint_with: IDL.Text, + token_ids: IDL.Vec(IDL.Nat), + }); + const BridgeEvent = IDL.Variant({ + UnfreezeNftBatch: UnfreezeNftBatch, + UnfreezeNft: UnfreezeNft, + TransferNft: TransferNft, + TransferNftBatch: TransferNftBatch, + }); + const ValidateSetGroupKey = IDL.Record({ group_key: IDL.Vec(IDL.Nat8) }); + const ValidateSetPause = IDL.Record({ pause: IDL.Bool }); + const ValidateWithdrawFees = IDL.Record({ to: IDL.Principal }); + return IDL.Service({ + add_whitelist: IDL.Func( + [IDL.Nat, ValidateWhitelistDip721, IDL.Vec(IDL.Nat8)], + [], + [] + ), + clean_logs: IDL.Func( + [IDL.Nat, ValidateCleanLogs, IDL.Vec(IDL.Nat8)], + [], + [] + ), + encode_validate_transfer_nft: IDL.Func( + [IDL.Nat, ValidateTransferNft], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_transfer_nft_batch: IDL.Func( + [IDL.Nat, ValidateTransferNftBatch], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_unfreeze_nft: IDL.Func( + [IDL.Nat, ValidateUnfreezeNft], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + encode_validate_unfreeze_nft_batch: IDL.Func( + [IDL.Nat, ValidateUnfreezeNftBatch], + [IDL.Vec(IDL.Nat8)], + ["query"] + ), + freeze_nft: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text, IDL.Text], + [IDL.Nat], + [] + ), + freeze_nft_batch: IDL.Func( + [ + IDL.Nat64, + IDL.Principal, + IDL.Vec(IDL.Nat), + IDL.Nat64, + IDL.Text, + IDL.Text, + ], + [IDL.Nat], + [] + ), + get_config: IDL.Func([], [Config], ["query"]), + get_event: IDL.Func( + [IDL.Nat], + [IDL.Opt(IDL.Tuple(BridgeEventCtx, BridgeEvent))], + ["query"] + ), + is_whitelisted: IDL.Func([IDL.Principal], [IDL.Bool], ["query"]), + set_group_key: IDL.Func( + [IDL.Nat, ValidateSetGroupKey, IDL.Vec(IDL.Nat8)], + [], + [] + ), + set_pause: IDL.Func([IDL.Nat, ValidateSetPause, IDL.Vec(IDL.Nat8)], [], []), + validate_transfer_nft: IDL.Func( + [IDL.Nat, ValidateTransferNft, IDL.Vec(IDL.Nat8)], + [IDL.Nat32], + [] + ), + validate_transfer_nft_batch: IDL.Func( + [IDL.Nat, ValidateTransferNftBatch, IDL.Vec(IDL.Nat8)], + [], + [] + ), + validate_unfreeze_nft: IDL.Func( + [IDL.Nat, ValidateUnfreezeNft, IDL.Vec(IDL.Nat8)], + [], + [] + ), + validate_unfreeze_nft_batch: IDL.Func( + [IDL.Nat, ValidateUnfreezeNftBatch, IDL.Vec(IDL.Nat8)], + [], + [] + ), + withdraw_fees: IDL.Func( + [IDL.Nat, ValidateWithdrawFees, IDL.Vec(IDL.Nat8)], + [IDL.Nat64], + [] + ), + withdraw_nft: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text], + [IDL.Nat], + [] + ), + withdraw_nft_batch: IDL.Func( + [IDL.Nat64, IDL.Principal, IDL.Vec(IDL.Nat), IDL.Nat64, IDL.Text], + [IDL.Nat], + [] + ), + }); +}; +exports.idlFactory = idlFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvZGZpbml0eS9pZGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQU8sTUFBTSxVQUFVLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBZ0IsRUFBRSxFQUFFO0lBQ2xELE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUN6QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFNBQVM7S0FDNUIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ25DLFdBQVcsRUFBRSxHQUFHLENBQUMsR0FBRztRQUNwQixTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUc7S0FDbkIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3JDLEVBQUUsRUFBRSxHQUFHLENBQUMsU0FBUztRQUNqQixTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDeEIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJO0tBQ3BCLENBQUMsQ0FBQztJQUNILE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUMxQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDakIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0tBQzlCLENBQUMsQ0FBQztJQUNILE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNyQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDakIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQzNCLFFBQVEsRUFBRSxHQUFHLENBQUMsR0FBRztLQUNsQixDQUFDLENBQUM7SUFDSCxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDMUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQ2pCLGFBQWEsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDckMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztLQUM1QixDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3hCLFNBQVMsRUFBRSxHQUFHLENBQUMsR0FBRztRQUNsQixXQUFXLEVBQUUsR0FBRyxDQUFDLEtBQUs7UUFDdEIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztRQUM1QixNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUk7S0FDakIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDWixTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUc7UUFDbEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ2pCLFdBQVcsRUFBRSxHQUFHLENBQUMsS0FBSztLQUN2QixDQUFDLENBQUM7SUFDSCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDbEMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN2QixTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQzNCLE1BQU0sRUFBRSxHQUFHLENBQUMsU0FBUztLQUN0QixDQUFDLENBQUM7SUFDSCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQzdCLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNiLFFBQVEsRUFBRSxHQUFHLENBQUMsR0FBRztRQUNqQixNQUFNLEVBQUUsR0FBRyxDQUFDLFNBQVM7S0FDdEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUM3QixlQUFlLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDOUIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxHQUFHO1FBQ2pCLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNuQixVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUk7S0FDckIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2xDLGVBQWUsRUFBRSxHQUFHLENBQUMsU0FBUztRQUM5QixXQUFXLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQzlCLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNuQixTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0tBQzVCLENBQUMsQ0FBQztJQUNILE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDOUIsZ0JBQWdCLEVBQUUsZ0JBQWdCO1FBQ2xDLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLGdCQUFnQixFQUFFLGdCQUFnQjtLQUNuQyxDQUFDLENBQUM7SUFDSCxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDL0QsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ2pCLGFBQWEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUNyQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDckQsRUFBRSxFQUNGLEVBQUUsQ0FDSDtRQUNELFVBQVUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUNsQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDL0MsRUFBRSxFQUNGLEVBQUUsQ0FDSDtRQUNELDRCQUE0QixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQ3BDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxFQUM5QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ25CLENBQUMsT0FBTyxDQUFDLENBQ1Y7UUFDRCxrQ0FBa0MsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUMxQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUMsRUFDbkMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNuQixDQUFDLE9BQU8sQ0FBQyxDQUNWO1FBQ0QsNEJBQTRCLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FDcEMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLEVBQzlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDbkIsQ0FBQyxPQUFPLENBQUMsQ0FDVjtRQUNELGtDQUFrQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQzFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxFQUNuQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ25CLENBQUMsT0FBTyxDQUFDLENBQ1Y7UUFDRCxVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FDbEIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUNsRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFDVCxFQUFFLENBQ0g7UUFDRCxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUN4QjtZQUNFLEdBQUcsQ0FBQyxLQUFLO1lBQ1QsR0FBRyxDQUFDLFNBQVM7WUFDYixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDaEIsR0FBRyxDQUFDLEtBQUs7WUFDVCxHQUFHLENBQUMsSUFBSTtZQUNSLEdBQUcsQ0FBQyxJQUFJO1NBQ1QsRUFDRCxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFDVCxFQUFFLENBQ0g7UUFDRCxVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUNqQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFDVCxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNqRCxDQUFDLE9BQU8sQ0FBQyxDQUNWO1FBQ0QsY0FBYyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxhQUFhLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FDckIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ2pELEVBQUUsRUFDRixFQUFFLENBQ0g7UUFDRCxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzNFLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQzdCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNqRCxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFDWCxFQUFFLENBQ0g7UUFDRCwyQkFBMkIsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUNuQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDdEQsRUFBRSxFQUNGLEVBQUUsQ0FDSDtRQUNELHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQzdCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNqRCxFQUFFLEVBQ0YsRUFBRSxDQUNIO1FBQ0QsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FDbkMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3RELEVBQUUsRUFDRixFQUFFLENBQ0g7UUFDRCxhQUFhLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FDckIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ2xELENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUNYLEVBQUUsQ0FDSDtRQUNELFlBQVksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUNwQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUN4RCxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFDVCxFQUFFLENBQ0g7UUFDRCxrQkFBa0IsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUMxQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFDakUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQ1QsRUFBRSxDQUNIO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBeEtXLFFBQUEsVUFBVSxjQXdLckIifQ== diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts new file mode 100644 index 000000000..702c0e82b --- /dev/null +++ b/dist/helpers/elrond.d.ts @@ -0,0 +1,190 @@ +/** + * Elrond Implementation for cross chain traits + * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp + * Note that Unsigned Transactions need to be manually handled after they have been added to the block + * @module + */ +import { + Address, + ExtensionProvider, + ISigner, + Transaction, + WalletConnectProvider, +} from "@elrondnetwork/erdjs"; +import BigNumber from "bignumber.js"; +import { + BalanceCheck, + MintNft, + TransferNftForeign, + UnfreezeForeignNft, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + EstimateTxFeesBatch, + GetFeeMargins, + FeeMargins, + IsContractAddress, + GetTokenURI, +} from "./chain"; +import { + ChainNonceGet, + EstimateTxFees, + ExtractAction, + ExtractTxnStatus, + PreTransfer, + PreTransferRawTxn, + ValidateAddress, +} from ".."; +import { EvNotifier } from "../notifier"; +declare type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; +/** + * Information associated with an ESDT Token + */ +export declare type EsdtTokenInfo = { + readonly balance: 1 | string; + readonly tokenIdentifier: string; +}; +declare type BEsdtNftInfo = { + readonly attributes?: string[]; + readonly creator: string; + readonly name: string; + readonly nonce: number; + readonly royalties: string; + readonly uris: string[]; +}; +/** + * Information associated with an ESDT NFT + */ +export declare type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; +/** + * arguments required to issue an NFT + */ +export declare type NftIssueArgs = { + readonly identifier: string; + readonly uris: Array; + readonly name: string; + readonly quantity?: number; + readonly royalties?: number; + readonly hash?: string; + readonly attrs?: string; +}; +/** + * Utility for issuing ESDT which supports NFT minting + */ +export interface IssueESDTNFT { + /** + * Issue a new ESDT supporting NFTs + * + * @param sender Owner of this ESDT + * @param name Name of the ESDT + * @param ticker Ticker of the ESDT + * @param canFreeze Wheteher this ESDT can be frozen + * @param canWipe Whether this ESDT can be wiped + * @param canTransferNFTCreateRole Whether the NFT Creation role can be transferred + * + * @returns ticker of the esdt + */ + issueESDTNft( + sender: ElrondSigner, + name: string, + ticker: string, + canFreeze: boolean | undefined, + canWipe: boolean | undefined, + canTransferNFTCreateRole: boolean | undefined + ): Promise; +} +/** + * Possible roles for an ESDT + * + * ESDTRoleNFTCreate: Allow creating NFTs + * ESDTRoleNFTBurn: Allow burning NFTs + * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) + */ +export declare type ESDTRole = + | "ESDTRoleNFTCreate" + | "ESDTRoleNFTBurn" + | "ESDTRoleNFTAddQuantity"; +/** + * Utility for setting ESDT roles + */ +export interface SetESDTRoles { + /** + * + * Set the roles for a given account for an esdt + * + * @param sender Target account + * @param token ESDT Identifier + * @param roles Roles to set + */ + setESDTRole( + sender: ElrondSigner, + token: string, + target: Address, + roles: ESDTRole[] + ): Promise; + transferESDTOwnership( + sender: ElrondSigner, + token: string, + target: Address + ): Promise; +} +export interface ElrondRawUnsignedTxn { + readonly nonce: number; + readonly value: string; + readonly receiver: string; + readonly sender: string; + readonly gasPrice: number; + readonly gasLimit: number; + readonly data?: string; + readonly chainID: string; + readonly version: number; + readonly options?: number; + readonly signature?: string; +} +/** + * Traits implemented by this module + */ +export declare type ElrondHelper = BalanceCheck & + TransferNftForeign & + UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + IssueESDTNFT & + MintNft & { + mintableEsdts(address: Address): Promise; + } & ChainNonceGet & + ValidateAddress & + ExtractAction & + PreTransfer & + EstimateTxFees & + EstimateTxFeesBatch & + PreTransferRawTxn & + ExtractTxnStatus & + SetESDTRoles & { + XpNft: string; + } & GetFeeMargins & { + wegldBalance(address: string): Promise; + unwrapWegld(sender: ElrondSigner, amt: BigNumber): Promise; + } & IsContractAddress & + GetTokenURI; +/** + * Create an object implementing cross chain utilities for elrond + * + * @param node_uri URI of the elrond node + * @param minter_address Address of the minter smart contract + * @param middleware_uri REST API of elrond-event-middleware + * @param esdt_nft Identifier of the ESDT NFT Wrapper + */ +export interface ElrondParams { + node_uri: string; + notifier: EvNotifier; + minter_address: string; + esdt_swap_address: string; + esdt_nft: string; + esdt_swap: string; + feeMargin: FeeMargins; +} +export declare function elrondHelperFactory( + elrondParams: ElrondParams +): Promise; +export {}; +//# sourceMappingURL=elrond.d.ts.map diff --git a/dist/helpers/elrond.d.ts.map b/dist/helpers/elrond.d.ts.map new file mode 100644 index 000000000..07e725763 --- /dev/null +++ b/dist/helpers/elrond.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"elrond.d.ts","sourceRoot":"","sources":["../../src/helpers/elrond.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js new file mode 100644 index 000000000..206e7ed20 --- /dev/null +++ b/dist/helpers/elrond.js @@ -0,0 +1,647 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.elrondHelperFactory = void 0; +/** + * Elrond Implementation for cross chain traits + * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp + * Note that Unsigned Transactions need to be manually handled after they have been added to the block + * @module + */ +const erdjs_1 = require("@elrondnetwork/erdjs"); +const axios_1 = __importDefault(require("axios")); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const chain_1 = require("./chain"); +const __1 = require(".."); +const js_base64_1 = require("js-base64"); +const ESDT_ISSUE_ADDR = new erdjs_1.Address( + "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" +); +const ESDT_ISSUE_COST = "50000000000000000"; +const NFT_TRANSFER_COST = new bignumber_js_1.default(350000000); +const NFT_UNFREEZE_COST = new bignumber_js_1.default(350000000); +async function elrondHelperFactory(elrondParams) { + const provider = new erdjs_1.ProxyProvider(elrondParams.node_uri); + await erdjs_1.NetworkConfig.getDefault().sync(provider); + const mintContract = new erdjs_1.Address(elrondParams.minter_address); + const swapContract = new erdjs_1.Address(elrondParams.esdt_swap_address); + const providerRest = axios_1.default.create({ + baseURL: elrondParams.node_uri, + }); + const esdtNftHex = Buffer.from(elrondParams.esdt_nft, "utf-8"); + const esdtSwaphex = Buffer.from(elrondParams.esdt_swap, "utf-8"); + const networkConfig = await provider.getNetworkConfig(); + const gasPriceModif = + networkConfig.MinGasPrice.valueOf() * + networkConfig.GasPriceModifier.valueOf(); + async function notifyValidator(txn, sender, uri, action_id) { + await elrondParams.notifier.notifyElrond( + txn.getHash().toString(), + sender, + uri, + action_id + ); + } + const syncAccount = async (signer) => { + const account = new erdjs_1.Account(await getAddress(signer)); + await account.sync(provider); + return account; + }; + const signAndSend = async (signer, tx) => { + const acc = await syncAccount(signer); + tx.setNonce(acc.nonce); + let stx; + if (signer instanceof erdjs_1.WalletConnectProvider) { + const txs = await signer.signTransactions([tx]); + stx = txs[0]; + } else if (signer instanceof erdjs_1.ExtensionProvider) { + stx = await signer.signTransaction(tx); + } else if (signer instanceof erdjs_1.UserSigner) { + await signer.sign(tx); + stx = tx; + } else { + //@ts-ignore + stx = await signer.signTransaction(tx); + } + try { + await stx.send(provider); + } catch (e) { + if (e.message.includes("lowerNonceInTx")) { + throw (0, chain_1.ConcurrentSendError)(); + } else { + throw e; + } + } + return stx; + }; + const transactionResult = async (tx_hash) => { + const uri = `/transaction/${tx_hash.toString()}?withResults=true`; + let tries = 0; + while (tries < 10) { + tries += 1; + let err; + // TODO: type safety + const res = await providerRest.get(uri).catch((e) => (err = e)); + if (err) { + await new Promise((r) => setTimeout(r, 3000)); + continue; + } + const data = res.data; + if (data["code"] != "successful") { + throw Error("failed to execute txn"); + } + const tx_info = data["data"]["transaction"]; + if (tx_info["status"] == "pending") { + await new Promise((r) => setTimeout(r, 5000)); + continue; + } + if (tx_info["status"] != "success") { + throw Error("failed to execute txn"); + } + return tx_info; + } + throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); + }; + const doEgldSwap = async (sender, nft, value) => { + const esdts = await listEsdt((await sender.getAddress()).toString()); + const res = esdts[nft.native.nonce]; + if ( + res === undefined || + new bignumber_js_1.default(res.balance).lt(value) + ) { + const utx = new erdjs_1.Transaction({ + receiver: swapContract, + gasLimit: new erdjs_1.GasLimit(300000000), + value: new erdjs_1.Balance( + erdjs_1.Egld.getToken(), + erdjs_1.Egld.getNonce(), + new bignumber_js_1.default(value.toString()) + ), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("wrapEgld")) + .build(), + }); + const tx = await signAndSend(sender, utx); + await transactionResult(tx.getHash()); + return tx.getHash().toString(); + } + return undefined; + }; + const unsignedMintNftTxn = ( + owner, + { identifier, quantity, name, royalties, hash, attrs, uris } + ) => { + let baseArgs = erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("ESDTNFTCreate")) + .addArg( + new erdjs_1.TokenIdentifierValue(Buffer.from(identifier, "utf-8")) + ) + .addArg( + new erdjs_1.BigUIntValue(new bignumber_js_1.default(quantity ?? 1)) + ) + .addArg(new erdjs_1.BytesValue(Buffer.from(name, "utf-8"))) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(royalties ?? 0))) + .addArg( + new erdjs_1.BytesValue( + hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0) + ) + ) + .addArg( + new erdjs_1.BytesValue( + attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0) + ) + ); + for (const uri of uris) { + baseArgs = baseArgs.addArg( + new erdjs_1.BytesValue(Buffer.from(uri, "utf-8")) + ); + } + return new erdjs_1.Transaction({ + receiver: owner, + gasLimit: new erdjs_1.GasLimit(70000000), + data: baseArgs.build(), + }); + }; + function tokenIdentReal(tokenIdentifier) { + const base = tokenIdentifier.split("-"); + base.pop(); + return base.join("-"); + } + const unsignedTransferNftTxn = ( + chain_nonce, + address, + to, + { tokenIdentifier, nonce }, + tx_fees, + mintWith + ) => { + return new erdjs_1.Transaction({ + receiver: address, + gasLimit: new erdjs_1.GasLimit(300000000), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) + .addArg(new erdjs_1.AddressValue(mintContract)) + .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(2))) + .addArg( + new erdjs_1.TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + ) + ) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(nonce))) + .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(1))) + .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(0x0))) + .addArg(new erdjs_1.BigUIntValue(tx_fees)) + .addArg(new erdjs_1.BytesValue(Buffer.from("freezeSendNft", "ascii"))) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) + .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) + .addArg(new erdjs_1.BytesValue(Buffer.from(mintWith, "ascii"))) + .build(), + }); + }; + const unsignedUnfreezeNftTxn = ( + address, + to, + { tokenIdentifier, nonce }, + tx_fees, + chain_nonce + ) => { + return new erdjs_1.Transaction({ + receiver: address, + gasLimit: new erdjs_1.GasLimit(300000000), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) + .addArg(new erdjs_1.AddressValue(mintContract)) + .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(2))) + .addArg( + new erdjs_1.TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + ) + ) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(nonce))) + .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(1))) + .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(0x0))) + .addArg(new erdjs_1.BigUIntValue(tx_fees)) + .addArg(new erdjs_1.BytesValue(Buffer.from("withdrawNft", "ascii"))) + .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) + .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) + .build(), + }); + }; + const listEsdt = async (owner) => { + const raw = await providerRest(`/address/${owner}/esdt`); + const dat = raw.data.data.esdts; + return dat; + }; + const unsignedIssueESDTNft = ( + name, + ticker, + canFreeze, + canWipe, + canTransferNFTCreateRole + ) => { + let baseArgs = erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("issueNonFungible")) + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(name, "utf-8"))) + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); + if (canFreeze !== undefined) { + baseArgs = baseArgs + .addArg(new erdjs_1.BytesValue(Buffer.from("canFreeze", "ascii"))) + .addArg( + new erdjs_1.BytesValue( + Buffer.from(canFreeze ? "true" : "false", "ascii") + ) + ); + } + if (canWipe !== undefined) { + baseArgs = baseArgs + .addArg(new erdjs_1.BytesValue(Buffer.from("canWipe", "ascii"))) + .addArg( + new erdjs_1.BytesValue( + Buffer.from(canWipe ? "true" : "false", "ascii") + ) + ); + } + if (canTransferNFTCreateRole !== undefined) { + baseArgs = baseArgs + .addArg(new erdjs_1.BytesValue(Buffer.from("canChangeOwner", "ascii"))) + .addArg( + new erdjs_1.BytesValue( + Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") + ) + ); + } + return new erdjs_1.Transaction({ + receiver: ESDT_ISSUE_ADDR, + value: new erdjs_1.Balance( + erdjs_1.Egld.getToken(), + erdjs_1.Egld.getNonce(), + new bignumber_js_1.default(ESDT_ISSUE_COST.toString()) + ), + gasLimit: new erdjs_1.GasLimit(60000000), + data: baseArgs.build(), + }); + }; + const unsignedSetESDTRoles = (token, target, roles) => { + let baseArgs = erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("setSpecialRole")) + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token))) + .addArg(new erdjs_1.AddressValue(target)); + for (const role of roles) { + baseArgs = baseArgs.addArg( + new erdjs_1.BytesValue(Buffer.from(role, "utf-8")) + ); + } + return new erdjs_1.Transaction({ + receiver: ESDT_ISSUE_ADDR, + gasLimit: new erdjs_1.GasLimit(70000000), + data: baseArgs.build(), + }); + }; + async function extractAction(tx) { + let err; + await tx.awaitExecuted(provider).catch((e) => (err = e)); + if (err) { + await new Promise((r) => setTimeout(r, 3000)); + return await extractAction(tx); + } + const txr = await transactionResult(tx.getHash()); + const id = filterEventId(txr["smartContractResults"]); + return id.toString(); + } + function estimateGas(base_fees) { + return base_fees.multipliedBy(gasPriceModif); // assume execution takes about twice as much gas fees + } + async function getAddress(sender) { + return new erdjs_1.Address(await sender.getAddress()); + } + return { + XpNft: elrondParams.esdt_nft, + async balance(address) { + const wallet = new erdjs_1.Account(new erdjs_1.Address(address)); + await wallet.sync(provider); + return wallet.balance.valueOf(); + }, + async isContractAddress(address) { + return erdjs_1.Address.fromString(address).isContractAddress(); + }, + getFeeMargin() { + return elrondParams.feeMargin; + }, + async extractTxnStatus(txn) { + const status = await provider.getTransactionStatus( + new erdjs_1.TransactionHash(txn) + ); + if (status.isPending()) { + return chain_1.TransactionStatus.PENDING; + } + if (status.isSuccessful()) { + return chain_1.TransactionStatus.SUCCESS; + } + if (status.isFailed()) { + return chain_1.TransactionStatus.FAILURE; + } + return chain_1.TransactionStatus.UNKNOWN; + }, + preTransfer: doEgldSwap, + preUnfreeze: doEgldSwap, + extractAction, + async transferNftToForeign( + sender, + chain_nonce, + to, + info, + txFees, + mintWith + ) { + const txu = unsignedTransferNftTxn( + chain_nonce, + await getAddress(sender), + to, + info.native, + new bignumber_js_1.default(txFees.toString()), + mintWith + ); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + [info.uri], + undefined + // await extractAction(tx) + ); + return tx; + }, + async unfreezeWrappedNft(sender, to, nft, txFees, nonce) { + console.log(`Unfreezing`); + const txu = unsignedUnfreezeNftTxn( + await getAddress(sender), + to, + nft.native, + new bignumber_js_1.default(txFees.toString()), + nonce + ); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + [nft.uri], + undefined + // await extractAction(tx) + ); + return tx; + }, + async issueESDTNft( + sender, + name, + ticker, + canFreeze = false, + canWipe = false, + canTransferNFTCreateRole = false + ) { + const txu = unsignedIssueESDTNft( + name, + ticker, + canFreeze, + canWipe, + canTransferNFTCreateRole + ); + const tx = await signAndSend(sender, txu); + const res = await transactionResult(tx.getHash()); + const tickerh = res["smartContractResults"][0].data.split("@")[2]; + return Buffer.from(tickerh, "hex").toString("utf-8"); + }, + async mintNft(owner, args) { + const txu = unsignedMintNftTxn(await getAddress(owner), args); + const tx = await signAndSend(owner, txu); + return tx.getHash().toString(); + }, + async mintableEsdts(address) { + const res = await providerRest.get( + `/address/${address.toString()}/esdts-with-role/ESDTRoleNFTCreate` + ); + return res.data["data"]["tokens"]; + }, + async preTransferRawTxn(id, address, value) { + if (!address || !value) { + throw new Error("address and value is required for elrond egld swap"); + } + const esdts = await listEsdt(address); + const res = esdts[id.native.nonce]; + if ( + res === undefined || + new bignumber_js_1.default(res.balance).lt(value) + ) { + const utx = new erdjs_1.Transaction({ + receiver: swapContract, + gasLimit: new erdjs_1.GasLimit(50000000), + value: new erdjs_1.Balance( + erdjs_1.Egld.getToken(), + erdjs_1.Egld.getNonce(), + new bignumber_js_1.default(value.toString()) + ), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("wrapEgld")) + .build(), + }); + return utx.toPlainObject(); + } + return undefined; + }, + async setESDTRole(manager, token, target, roles) { + const txu = unsignedSetESDTRoles(token, target, roles); + const tx = await signAndSend(manager, txu); + await transactionResult(tx.getHash()); + return tx; + }, + async transferESDTOwnership(sender, token, target) { + const txu = new erdjs_1.Transaction({ + receiver: new erdjs_1.Address( + "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" + ), + gasLimit: new erdjs_1.GasLimit(60000000), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("transferOwnership")) + .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token, "utf-8"))) + .addArg(new erdjs_1.AddressValue(target)) + .build(), + }); + return await signAndSend(sender, txu); + }, + getNonce() { + return __1.Chain.ELROND; + }, + async estimateValidateTransferNft(_toAddress, _nftUri) { + return estimateGas(NFT_TRANSFER_COST); // TODO: properly estimate NFT_TRANSFER_COST + }, + async estimateValidateUnfreezeNft(_to, _nftUri) { + return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST + }, + async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { + const txu = new erdjs_1.Transaction({ + receiver: await getAddress(sender), + gasLimit: new erdjs_1.GasLimit(40000000 + 5000000 * nfts.length), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) + .setArgs([ + new erdjs_1.AddressValue(mintContract), + new erdjs_1.BigUIntValue( + new bignumber_js_1.default(nfts.length + 1) + ), + ...nfts.flatMap((nft) => [ + new erdjs_1.TokenIdentifierValue(esdtNftHex), + new erdjs_1.U64Value( + new bignumber_js_1.default(nft.native.nonce) + ), + new erdjs_1.BigUIntValue(new bignumber_js_1.default(1)), + ]), + new erdjs_1.TokenIdentifierValue(esdtSwaphex), + new erdjs_1.U64Value(new bignumber_js_1.default(0x0)), + new erdjs_1.BigUIntValue(txFees), + new erdjs_1.BytesValue(Buffer.from("withdrawBatchNft", "ascii")), + new erdjs_1.U64Value(new bignumber_js_1.default(chainNonce)), + new erdjs_1.BytesValue(Buffer.from(to, "ascii")), + ]) + .build(), + }); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + nfts.map((n) => n.uri), + undefined + // await extractAction(tx) + ); + return tx; + }, + async transferNftBatchToForeign( + sender, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const txu = new erdjs_1.Transaction({ + receiver: await getAddress(sender), + gasLimit: new erdjs_1.GasLimit(50000000 + 5000000 * nfts.length), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) + .setArgs([ + new erdjs_1.AddressValue(mintContract), + new erdjs_1.BigUIntValue( + new bignumber_js_1.default(nfts.length + 1) + ), + ...nfts.flatMap((nft) => [ + new erdjs_1.TokenIdentifierValue( + Buffer.from(tokenIdentReal(nft.native.tokenIdentifier), "utf-8") + ), + new erdjs_1.U64Value( + new bignumber_js_1.default(nft.native.nonce) + ), + new erdjs_1.BigUIntValue(new bignumber_js_1.default(1)), + ]), + new erdjs_1.TokenIdentifierValue(esdtSwaphex), + new erdjs_1.U64Value(new bignumber_js_1.default(0x0)), + new erdjs_1.BigUIntValue(txFees), + new erdjs_1.BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), + new erdjs_1.U64Value(new bignumber_js_1.default(chainNonce)), + new erdjs_1.BytesValue(Buffer.from(to, "ascii")), + new erdjs_1.BytesValue(Buffer.from(mintWith, "ascii")), + ]) + .build(), + }); + const tx = await signAndSend(sender, txu); + await notifyValidator( + tx, + sender.getAddress().toString(), + nfts.map((n) => n.uri), + undefined + // await extractAction(tx) + ); + return tx; + }, + async wegldBalance(addr) { + const esdtInfo = await provider.getAddressEsdt( + new erdjs_1.Address(addr), + elrondParams.esdt_swap + ); + return new bignumber_js_1.default(esdtInfo.balance); + }, + async unwrapWegld(sender, amount) { + const txu = new erdjs_1.Transaction({ + receiver: swapContract, + gasLimit: new erdjs_1.GasLimit(300500000), + data: erdjs_1.TransactionPayload.contractCall() + .setFunction(new erdjs_1.ContractFunction("ESDTTransfer")) + .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) + .addArg(new erdjs_1.U64Value(amount)) + .addArg(new erdjs_1.BytesValue(Buffer.from("unwrapEgld"))) + .build(), + }); + const tx = await signAndSend(sender, txu); + return tx.getHash().toString(); + }, + async estimateValidateTransferNftBatch(_, nfts) { + return estimateGas( + new bignumber_js_1.default(360000000 + 5000000 * nfts.length) + ); + }, + async estimateValidateUnfreezeNftBatch(_, nfts) { + return estimateGas( + new bignumber_js_1.default(340000000 + 5000000 * nfts.length) + ); + }, + async validateAddress(adr) { + try { + new erdjs_1.Address(adr); + return await providerRest + .get(`/address/${adr}/esdt`) + .then((_) => true) + .catch((_) => false); + } catch (_) { + return false; + } + }, + async getTokenURI(_, tokenId) { + if (tokenId) { + const url = `https://api.elrond.com/nfts/${tokenId}`; + const res = await (0, axios_1.default)(url).catch(() => ({ + data: null, + })); + if (res.data?.metadata) { + return url; + } + const uri = res.data?.uris[1] || res.data?.uris[0]; + if (uri) { + return js_base64_1.Base64.decode(uri); + } + } + return ""; + }, + }; +} +exports.elrondHelperFactory = elrondHelperFactory; +function filterEventId(results) { + for (const res of results) { + if (res["nonce"] === 0) { + continue; + } + const data = res.data.split("@"); + if (data[0] != "" || data[1] != "6f6b" || data.length != 3) { + continue; + } + try { + return parseInt(data[2], 16); + } catch (NumberFormatException) { + continue; + } + } + throw Error(`invalid result: ${results.toString()}`); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBcUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQiwwQkFVWTtBQUVaLHlDQUFtQztBQU1uQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQU8sQ0FDakMsZ0VBQWdFLENBQ2pFLENBQUM7QUFDRixNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQUU1QyxNQUFNLGlCQUFpQixHQUFHLElBQUksc0JBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuRCxNQUFNLGlCQUFpQixHQUFHLElBQUksc0JBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQW1LNUMsS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxZQUEwQjtJQUUxQixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFELE1BQU0scUJBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFlBQVksQ0FBQyxRQUFRO0tBQy9CLENBQUMsQ0FBQztJQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FB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 diff --git a/dist/helpers/hedera/hts_abi.d.ts b/dist/helpers/hedera/hts_abi.d.ts new file mode 100644 index 000000000..72abfd16e --- /dev/null +++ b/dist/helpers/hedera/hts_abi.d.ts @@ -0,0 +1,238 @@ +export declare const HEDERA_TOKEN_SERVICE_ABI: ( + | { + inputs: ( + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: { + internalType: string; + name: string; + type: string; + }[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + )[]; + name: string; + outputs: { + internalType: string; + name: string; + type: string; + }[]; + stateMutability: string; + type: string; + } + | { + inputs: { + internalType: string; + name: string; + type: string; + }[]; + name: string; + outputs: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: ( + | { + components: ( + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: { + internalType: string; + name: string; + type: string; + }[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + )[]; + internalType: string; + name: string; + type: string; + } + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + )[]; + internalType: string; + name: string; + type: string; + } + )[]; + stateMutability: string; + type: string; + } +)[]; +export declare const HEDERA_PROXY_ABI: ( + | { + anonymous: boolean; + inputs: { + indexed: boolean; + internalType: string; + name: string; + type: string; + }[]; + name: string; + type: string; + outputs?: undefined; + stateMutability?: undefined; + } + | { + inputs: { + internalType: string; + name: string; + type: string; + }[]; + name: string; + outputs: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: { + internalType: string; + name: string; + type: string; + }[]; + internalType: string; + name: string; + type: string; + } + )[]; + stateMutability: string; + type: string; + anonymous?: undefined; + } + | { + inputs: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: ( + | { + internalType: string; + name: string; + type: string; + components?: undefined; + } + | { + components: { + internalType: string; + name: string; + type: string; + }[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + )[]; + internalType: string; + name: string; + type: string; + } + )[]; + name: string; + outputs: { + internalType: string; + name: string; + type: string; + }[]; + stateMutability: string; + type: string; + anonymous?: undefined; + } +)[]; +export declare const HEDERA_PROXY_BC = + "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; +//# sourceMappingURL=hts_abi.d.ts.map diff --git a/dist/helpers/hedera/hts_abi.d.ts.map b/dist/helpers/hedera/hts_abi.d.ts.map new file mode 100644 index 000000000..5855fc55e --- /dev/null +++ b/dist/helpers/hedera/hts_abi.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"hts_abi.d.ts","sourceRoot":"","sources":["../../../src/helpers/hedera/hts_abi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAk4FpC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsmB5B,CAAC;AACF,eAAO,MAAM,eAAe,mzgDACsxgD,CAAC"} \ No newline at end of file diff --git a/dist/helpers/hedera/hts_abi.js b/dist/helpers/hedera/hts_abi.js new file mode 100644 index 000000000..c9dfa788c --- /dev/null +++ b/dist/helpers/hedera/hts_abi.js @@ -0,0 +1,3571 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HEDERA_PROXY_BC = + exports.HEDERA_PROXY_ABI = + exports.HEDERA_TOKEN_SERVICE_ABI = + void 0; +exports.HEDERA_TOKEN_SERVICE_ABI = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "approved", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "approveNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "associateToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address[]", + name: "tokens", + type: "address[]", + }, + ], + name: "associateTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint64", + name: "amount", + type: "uint64", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + name: "burnToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint64", + name: "newTotalSupply", + type: "uint64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + internalType: "uint64", + name: "initialTotalSupply", + type: "uint64", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + ], + name: "createFungibleToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + internalType: "uint64", + name: "initialTotalSupply", + type: "uint64", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + ], + name: "createFungibleTokenWithCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + ], + name: "createNonFungibleToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "token", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + ], + name: "createNonFungibleTokenWithCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "tokenAddress", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "address", + name: "accountID", + type: "address", + }, + { + internalType: "int64", + name: "amount", + type: "int64", + }, + ], + internalType: "struct IHederaTokenService.AccountAmount[]", + name: "transfers", + type: "tuple[]", + }, + { + components: [ + { + internalType: "address", + name: "senderAccountID", + type: "address", + }, + { + internalType: "address", + name: "receiverAccountID", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + internalType: "struct IHederaTokenService.NftTransfer[]", + name: "nftTransfers", + type: "tuple[]", + }, + ], + internalType: "struct IHederaTokenService.TokenTransferList[]", + name: "tokenTransfers", + type: "tuple[]", + }, + ], + name: "cryptoTransfer", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "deleteToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "dissociateToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "address[]", + name: "tokens", + type: "address[]", + }, + ], + name: "dissociateTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "freezeToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "getApproved", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "address", + name: "approved", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getFungibleTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + { + internalType: "uint32", + name: "decimals", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.FungibleTokenInfo", + name: "fungibleTokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + name: "getNonFungibleTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + { + internalType: "address", + name: "ownerId", + type: "address", + }, + { + internalType: "int64", + name: "creationTime", + type: "int64", + }, + { + internalType: "bytes", + name: "metadata", + type: "bytes", + }, + { + internalType: "address", + name: "spenderId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.NonFungibleTokenInfo", + name: "nonFungibleTokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenCustomFees", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenDefaultFreezeStatus", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "defaultFreezeStatus", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenDefaultKycStatus", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenExpiryInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "hedera", + type: "tuple", + }, + { + components: [ + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "bool", + name: "useCurrentTokenForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FixedFee[]", + name: "fixedFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "minimumAmount", + type: "uint32", + }, + { + internalType: "uint32", + name: "maximumAmount", + type: "uint32", + }, + { + internalType: "bool", + name: "netOfTransfers", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.FractionalFee[]", + name: "fractionalFees", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "numerator", + type: "uint32", + }, + { + internalType: "uint32", + name: "denominator", + type: "uint32", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + { + internalType: "address", + name: "tokenId", + type: "address", + }, + { + internalType: "bool", + name: "useHbarsForPayment", + type: "bool", + }, + { + internalType: "address", + name: "feeCollector", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.RoyaltyFee[]", + name: "royaltyFees", + type: "tuple[]", + }, + { + internalType: "bool", + name: "defaultKycStatus", + type: "bool", + }, + { + internalType: "bool", + name: "deleted", + type: "bool", + }, + { + internalType: "string", + name: "ledgerId", + type: "string", + }, + { + internalType: "bool", + name: "pauseStatus", + type: "bool", + }, + { + internalType: "uint64", + name: "totalSupply", + type: "uint64", + }, + ], + internalType: "struct IHederaTokenService.TokenInfo", + name: "tokenInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + ], + name: "getTokenKey", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenType", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "int32", + name: "tokenType", + type: "int32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "isApprovedForAll", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isFrozen", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "frozen", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "kycGranted", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "isToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "isToken", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint64", + name: "amount", + type: "uint64", + }, + { + internalType: "bytes[]", + name: "metadata", + type: "bytes[]", + }, + ], + name: "mintToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "uint64", + name: "newTotalSupply", + type: "uint64", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "pauseToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + name: "setApprovalForAll", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "serialNumber", + type: "uint256", + }, + ], + name: "transferFromNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int64", + name: "serialNumber", + type: "int64", + }, + ], + name: "transferNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address[]", + name: "sender", + type: "address[]", + }, + { + internalType: "address[]", + name: "receiver", + type: "address[]", + }, + { + internalType: "int64[]", + name: "serialNumber", + type: "int64[]", + }, + ], + name: "transferNFTs", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int64", + name: "amount", + type: "int64", + }, + ], + name: "transferToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address[]", + name: "accountId", + type: "address[]", + }, + { + internalType: "int64[]", + name: "amount", + type: "int64[]", + }, + ], + name: "transferTokens", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "unfreezeToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "unpauseToken", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + name: "updateTokenExpiryInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "tokenInfo", + type: "tuple", + }, + ], + name: "updateTokenInfo", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "keys", + type: "tuple[]", + }, + ], + name: "updateTokenKeys", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint32", + name: "amount", + type: "uint32", + }, + ], + name: "wipeTokenAccount", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "int64[]", + name: "serialNumbers", + type: "int64[]", + }, + ], + name: "wipeTokenAccountNFT", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; +exports.HEDERA_PROXY_ABI = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + inputs: [], + name: "DEFAULT_EXPIRY", + outputs: [ + { + internalType: "uint32", + name: "", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "MAX_INT", + outputs: [ + { + internalType: "int64", + name: "", + type: "int64", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "baseUri", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "uint256", + name: "serialNum", + type: "uint256", + }, + ], + name: "burnFor", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int64", + name: "serialNum", + type: "int64", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "claimNft", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "data", + type: "uint256", + }, + ], + name: "decodeHts", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "int64", + name: "", + type: "int64", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "claimer", + type: "address", + }, + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getClaimableNfts", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "getTokenExpiryInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "grantTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "htsToken", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "string", + name: "baseURI_", + type: "string", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "isKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + { + internalType: "bool", + name: "kycGranted", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "id", + type: "uint256", + }, + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "pauseToken", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "revokeTokenKyc", + outputs: [ + { + internalType: "int64", + name: "responseCode", + type: "int64", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_serialNum", + type: "uint256", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "tokenURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "unpauseToken", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiryInfo", + type: "tuple", + }, + ], + name: "updateTokenExpiryInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + components: [ + { + internalType: "string", + name: "name", + type: "string", + }, + { + internalType: "string", + name: "symbol", + type: "string", + }, + { + internalType: "address", + name: "treasury", + type: "address", + }, + { + internalType: "string", + name: "memo", + type: "string", + }, + { + internalType: "bool", + name: "tokenSupplyType", + type: "bool", + }, + { + internalType: "int64", + name: "maxSupply", + type: "int64", + }, + { + internalType: "bool", + name: "freezeDefault", + type: "bool", + }, + { + components: [ + { + internalType: "uint256", + name: "keyType", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "inheritAccountKey", + type: "bool", + }, + { + internalType: "address", + name: "contractId", + type: "address", + }, + { + internalType: "bytes", + name: "ed25519", + type: "bytes", + }, + { + internalType: "bytes", + name: "ECDSA_secp256k1", + type: "bytes", + }, + { + internalType: "address", + name: "delegatableContractId", + type: "address", + }, + ], + internalType: "struct IHederaTokenService.KeyValue", + name: "key", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.TokenKey[]", + name: "tokenKeys", + type: "tuple[]", + }, + { + components: [ + { + internalType: "uint32", + name: "second", + type: "uint32", + }, + { + internalType: "address", + name: "autoRenewAccount", + type: "address", + }, + { + internalType: "uint32", + name: "autoRenewPeriod", + type: "uint32", + }, + ], + internalType: "struct IHederaTokenService.Expiry", + name: "expiry", + type: "tuple", + }, + ], + internalType: "struct IHederaTokenService.HederaToken", + name: "tokenInfo", + type: "tuple", + }, + ], + name: "updateTokenInfo", + outputs: [ + { + internalType: "int256", + name: "responseCode", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; +exports.HEDERA_PROXY_BC = + "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRzX2FiaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2hlZGVyYS9odHNfYWJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEM7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxXQUFXO1FBQ2pCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUks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 diff --git a/dist/helpers/near.d.ts b/dist/helpers/near.d.ts new file mode 100644 index 000000000..c4386e117 --- /dev/null +++ b/dist/helpers/near.d.ts @@ -0,0 +1,89 @@ +import { Account, Near, WalletConnection, Contract } from "near-api-js"; +import { FinalExecutionOutcome } from "near-api-js/lib/providers"; +import { EvNotifier } from "../notifier"; +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + MintNft, + NftInfo, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + BalanceCheck, + PreTransfer, +} from "./chain"; +declare type NearTxResult = [FinalExecutionOutcome, any]; +declare type NearPreTransferArgs = { + to: string; + receiver: string; +}; +export declare type NearParams = { + readonly networkId: string; + readonly nonce: number; + readonly rpcUrl: string; + readonly bridge: string; + readonly xpnft: string; + readonly feeMargin: FeeMargins; + readonly notifier: EvNotifier; + readonly walletUrl: string; + readonly helperUrl: string; +}; +export declare type NearNFT = { + tokenId: string; + contract: string; +}; +export declare type Metadata = { + title?: string; + description?: string; + media?: string; + mediaHash: Uint8Array | null; + issued_at: string | null; + expires_at: string | null; + starts_at: string | null; + updated_at: string | null; + extra?: string; + reference: string | null; + referenceHash: Uint8Array | null; +}; +export interface NearMintArgs { + contract: string; + token_id: string; + token_owner_id: string; + metadata: Metadata; +} +interface BrowserMethods { + connectWallet(): Promise; + getContract(signer: Account, _contract: string): Promise; + getUserMinter(keypair: string, address: string): Promise; +} +export declare type NearHelper = ChainNonceGet & + BalanceCheck & + TransferNftForeign & + UnfreezeForeignNft & + MintNft & + EstimateTxFees & + Pick< + PreTransfer, + "preTransfer" + > & + ValidateAddress & { + XpNft: string; + nftList(owner: Account, contract: string): Promise[]>; + } & GetFeeMargins & + GetProvider & + BrowserMethods; +export declare function nearHelperFactory({ + networkId, + bridge, + rpcUrl, + xpnft, + feeMargin, + notifier, + walletUrl, + helperUrl, +}: NearParams): Promise; +export {}; +//# sourceMappingURL=near.d.ts.map diff --git a/dist/helpers/near.d.ts.map b/dist/helpers/near.d.ts.map new file mode 100644 index 000000000..f74ef6fc1 --- /dev/null +++ b/dist/helpers/near.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/helpers/near.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/near.js b/dist/helpers/near.js new file mode 100644 index 000000000..843bfc834 --- /dev/null +++ b/dist/helpers/near.js @@ -0,0 +1,232 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.nearHelperFactory = void 0; +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const bn_js_1 = require("bn.js"); +const near_api_js_1 = require("near-api-js"); +const providers_1 = require("near-api-js/lib/providers"); +const consts_1 = require("../consts"); +async function nearHelperFactory({ + networkId, + bridge, + rpcUrl, + xpnft, + feeMargin, + notifier, + walletUrl, + helperUrl, +}) { + const near = await (0, near_api_js_1.connect)({ + nodeUrl: rpcUrl, + networkId, + headers: {}, + }); + const isApproved = async (account, nft) => { + const { tokenId: token_id, contract } = nft.native; + const result = await account.viewFunction({ + args: { + token_id, + approved_account_id: bridge, + approval_id: null, + }, + contractId: contract, + methodName: "nft_is_approved", + }); + return result; + }; + const getWalletCallbackUrl = (params) => { + let walletCallbackUrl = undefined; + if (globalThis.window !== undefined) { + const network = + location.pathname.match(/^\/(staging|testnet)\/.+/)?.at(1) || ""; + walletCallbackUrl = `${location.protocol}//${location.host}/${network}/connect?${params}`; + } + return walletCallbackUrl; + }; + return { + async estimateValidateTransferNft(_to, _metadata, _mintWith) { + return new bignumber_js_1.default(0); // TODO + }, + async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { + return new bignumber_js_1.default(0); // TODO + }, + getNonce() { + return consts_1.Chain.NEAR; + }, + async balance(address) { + const res = ( + await new near_api_js_1.Account( + near.connection, + address + ).getAccountBalance() + ).available; + return new bignumber_js_1.default(res); + }, + async mintNft(owner, options) { + const result = await owner.functionCall({ + contractId: options.contract, + methodName: "nft_mint", + args: { + token_id: options.token_id, + token_owner_id: options.token_owner_id, + token_metadata: options.metadata, + }, + attachedDeposit: new bn_js_1.BN("10000000000000000000000"), // 0.01 Near + }); + return [result, (0, providers_1.getTransactionLastResult)(result)]; + }, + async nftList(owner, contract) { + const result = await owner.functionCall({ + contractId: contract, + methodName: "nft_tokens_for_owner", + args: { account_id: owner.accountId }, + }); + const res = (0, providers_1.getTransactionLastResult)(result); + return res.map((r) => { + return { + native: { + tokenId: r.token_id, + contract, + }, + collectionIdent: contract, + uri: r.metadata.extra || r.metadata.media, + }; + }); + }, + async preTransfer(sender, nft, _fee, args) { + if (await isApproved(sender, nft)) { + return undefined; + } + if (!args) { + throw new Error("Missing args"); + } + const { receiver, to } = args; + const walletCallbackUrl = getWalletCallbackUrl( + `NEARTRX=true&type=approve&to=${to}&receiver=${encodeURIComponent( + receiver + )}&tokenId=${encodeURIComponent(nft.native.tokenId)}` + ); + const result = await sender.functionCall({ + contractId: nft.native.contract, + methodName: "nft_approve", + args: { + token_id: nft.native.tokenId, + account_id: bridge, + }, + attachedDeposit: new bn_js_1.BN("1000000000000000000000"), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), + }); + return result.transaction_outcome.id; + }, + XpNft: xpnft, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mint_with) { + const walletCallbackUrl = getWalletCallbackUrl( + `NEARTRX=true&type=transfer&to=${chain_nonce}&receiver=${encodeURIComponent( + to + )}&tokenId=${encodeURIComponent( + id.native.tokenId + )}&contract=${encodeURIComponent(id.native.contract)}` + ); + const result = await sender.functionCall({ + contractId: bridge, + args: { + token_id: id.native.tokenId, + chain_nonce, + to, + amt: new bignumber_js_1.default(txFees), + mint_with, + token_contract: id.native.contract, + }, + methodName: "freeze_nft", + attachedDeposit: new bn_js_1.BN(txFees.toString(10)), + gas: new bn_js_1.BN("46000000000000"), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), + }); + await notifier.notifyNear(result.transaction.hash); + return [result, (0, providers_1.getTransactionLastResult)(result)]; + }, + getFeeMargin() { + return feeMargin; + }, + getProvider() { + return near; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const walletCallbackUrl = getWalletCallbackUrl( + `NEARTRX=true&type=unfreeze&to=${nonce}&receiver=${encodeURIComponent( + to + )}&tokenId=${encodeURIComponent( + id.native.tokenId + )}&contract=${encodeURIComponent(id.native.contract)}` + ); + const result = await sender.functionCall({ + contractId: bridge, + args: { + token_id: id.native.tokenId, + chain_nonce: parseInt(nonce), + to, + amt: parseInt(txFees.toString()), + token_contract: id.native.contract, + }, + methodName: "withdraw_nft", + attachedDeposit: new bn_js_1.BN(txFees.toString(10)), + gas: new bn_js_1.BN(65000000000000), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), + }); + await notifier.notifyNear(result.transaction.hash); + return [result, (0, providers_1.getTransactionLastResult)(result)]; + }, + async validateAddress(adr) { + try { + await new near_api_js_1.Account( + near.connection, + adr + ).getAccountBalance(); + return true; + } catch (e) { + return false; + } + }, + async connectWallet() { + if (typeof window === "undefined") { + throw new Error("Browser method only"); + } + const nearConnection = await (0, near_api_js_1.connect)({ + networkId, + nodeUrl: rpcUrl, + keyStore: new near_api_js_1.keyStores.BrowserLocalStorageKeyStore(), + headers: {}, + walletUrl, + helperUrl, + }); + const wc = new near_api_js_1.WalletConnection(nearConnection, ""); + return wc; + }, + async getContract(signer, _contract) { + return new near_api_js_1.Contract(signer, _contract, { + viewMethods: [], + changeMethods: ["nft_mint"], + }); + }, + async getUserMinter(keypair, address) { + const keyStore = new near_api_js_1.keyStores.InMemoryKeyStore(); + const keyPair = near_api_js_1.KeyPair.fromString(keypair); + keyStore.setKey(networkId, address, keyPair); + const signer = new near_api_js_1.InMemorySigner(keyStore); + const provider = await (0, near_api_js_1.connect)({ + headers: {}, + nodeUrl: rpcUrl, + networkId, + signer, + }); + return provider; + }, + }; +} +exports.nearHelperFactory = nearHelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL25lYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLGlDQUEyQjtBQUUzQiw2Q0FTcUI7QUFFckIseURBR21DO0FBQ25DLHNDQUFrQztBQW9GM0IsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEVBQ3RDLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEdBQ0U7SUFDWCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEscUJBQU8sRUFBQztRQUN6QixPQUFPLEVBQUUsTUFBTTtRQUNmLFNBQVM7UUFDVCxPQUFPLEVBQUUsRUFBRTtLQUNaLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLEtBQUssRUFDdEIsT0FBZ0IsRUFDaEIsR0FBcUIsRUFDSCxFQUFFO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDbkQsTUFBTSxNQUFNLEdBQVksTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ2pELElBQUksRUFBRTtnQkFDSixRQUFRO2dCQUNSLG1CQUFtQixFQUFFLE1BQU07Z0JBQzNCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCO1lBQ0QsVUFBVSxFQUFFLFFBQVE7WUFDcEIsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QixDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7SUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDOUMsSUFBSSxpQkFBaUIsR0FBdUIsU0FBUyxDQUFDO1FBQ3RELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDbkMsTUFBTSxPQUFPLEdBQ1gsUUFBUSxDQUFDLFFB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 diff --git a/dist/helpers/secret.d.ts b/dist/helpers/secret.d.ts new file mode 100644 index 000000000..d706a7e96 --- /dev/null +++ b/dist/helpers/secret.d.ts @@ -0,0 +1,79 @@ +import { SecretNetworkClient, TxResponse } from "secretjs"; +import { Extension } from "secretjs/dist/extensions/snip721/types"; +import { EvNotifier } from "../notifier"; +import { + BalanceCheck, + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + MintNft, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from "./chain"; +export declare type SecretNftInfo = { + contract: string; + contractHash: string; + chainId: string; + tokenId: string; + vk: string; + metadata: Extension | undefined; +}; +export declare type SecretMintArgs = { + url: string; + contract?: SecretContract; +}; +declare type SecretSigner = SecretNetworkClient; +export declare type SecretHelper = TransferNftForeign< + SecretSigner, + SecretNftInfo, + TxResponse +> & + UnfreezeForeignNft & + ValidateAddress & + EstimateTxFees & + ChainNonceGet & + PreTransfer & + BalanceCheck & + GetFeeMargins & { + XpNft: string; + } & GetProvider & + MintNft & { + nftList( + owner: string, + viewingKey: string, + contract: string, + codeHash?: string + ): Promise[]>; + setViewingKey( + client: SecretNetworkClient, + contract: string, + vk: string + ): Promise; + isApprovedForMinter( + sender: SecretSigner, + nft: NftInfo + ): Promise; + }; +export declare type SecretContract = { + contractAddress: string; + codeHash: string; +}; +export declare type SecretParams = { + rpcUrl: string; + chainId: string; + notifier: EvNotifier; + bridge: SecretContract; + xpnft: SecretContract; + umt: SecretContract; + feeMargin: FeeMargins; +}; +export declare function secretHelperFactory( + p: SecretParams +): Promise; +export {}; +//# sourceMappingURL=secret.d.ts.map diff --git a/dist/helpers/secret.d.ts.map b/dist/helpers/secret.d.ts.map new file mode 100644 index 000000000..2d8231bee --- /dev/null +++ b/dist/helpers/secret.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/helpers/secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,mBAAmB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EACL,SAAS,EAEV,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,oBAAY,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC;AACF,oBAAY,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,aAAK,YAAY,GAAG,mBAAmB,CAAC;AAMxC,oBAAY,YAAY,GAAG,kBAAkB,CAC3C,YAAY,EACZ,aAAa,EACb,UAAU,CACX,GACC,kBAAkB,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,GAC3D,eAAe,GACf,cAAc,CAAC,aAAa,CAAC,GAC7B,aAAa,GACb,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,GAC3D,YAAY,GACZ,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC,mBAAmB,CAAC,GACpE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG;IAClD,OAAO,CACL,KAAK,EAAE,MAAM,EAEb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrC,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,mBAAmB,CACjB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAEJ,oBAAY,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAQF,wBAAsB,mBAAmB,CACvC,CAAC,EAAE,YAAY,GACd,OAAO,CAAC,YAAY,CAAC,CAmQvB"} \ No newline at end of file diff --git a/dist/helpers/secret.js b/dist/helpers/secret.js new file mode 100644 index 000000000..be130790f --- /dev/null +++ b/dist/helpers/secret.js @@ -0,0 +1,255 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.secretHelperFactory = void 0; +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const secretjs_1 = require("secretjs"); +// TODO +const TRANSFER_GASL = new bignumber_js_1.default(0); +// TODO +const UNFREEZE_GASL = new bignumber_js_1.default(0); +async function secretHelperFactory(p) { + const queryClient = new secretjs_1.SecretNetworkClient({ + url: p.rpcUrl, + chainId: p.chainId, + }); + // TODO + const gasPrice = 1; + async function isApprovedForMinter(sender, nft) { + const approval = await sender.query.snip721.GetTokenInfo({ + auth: { + viewer: { + address: sender.address, + viewing_key: nft.native.vk, + }, + }, + contract: { + address: nft.collectionIdent, + codeHash: nft.native.contractHash, + }, + token_id: nft.native.tokenId, + }); + for (let appr of approval.all_nft_info.access.approvals) { + if ( + appr["spender"].toLowerCase() === p.bridge.contractAddress.toLowerCase() + ) { + return true; + } + } + return false; + } + async function preTransfer(sender, nft) { + // TODO: check if approved + if (await isApprovedForMinter(sender, nft)) { + return undefined; + } + const res = await sender.tx.compute.executeContract( + { + sender: sender.address, + contract_address: nft.native.contract, + code_hash: nft.native.contractHash, + msg: { + approve: { + spender: p.bridge.contractAddress, + token_id: nft.native.tokenId, + }, + }, + }, + { + waitForCommit: true, + gasLimit: 250000, + } + ); + return res.transactionHash; + } + return { + getFeeMargin() { + return p.feeMargin; + }, + getProvider() { + return queryClient; + }, + getNonce: () => 0x18, + balance: async (address) => { + const b = await queryClient.query.bank.balance({ + address, + denom: "uscrt", + }); + return new bignumber_js_1.default(b.balance?.amount || 0); + }, + isApprovedForMinter, + async mintNft(signer, args) { + const minter = args.contract ? args.contract : p.umt; + const tx = await signer.tx.compute.executeContract( + { + contract_address: minter.contractAddress, + code_hash: minter.codeHash, + msg: { + mint_nft: { + public_metadata: { + token_uri: args.url, + }, + owner: signer.address, + transferable: true, + }, + }, + sender: signer.address, + }, + { + waitForCommit: true, + gasLimit: 500000, + } + ); + return tx; + }, + XpNft: `${p.xpnft.contractAddress},${p.xpnft.codeHash}`, + validateAddress: async (a) => { + try { + secretjs_1.Bech32.decode(a); + return true; + } catch { + return false; + } + }, + async nftList(owner, vk, contractAddress, codeHash) { + const auth = { + viewer: { + viewing_key: vk, + address: owner, + }, + }; + if (!codeHash) { + codeHash = ( + await queryClient.query.compute.codeHashByContractAddress({ + contract_address: contractAddress, + }) + ).code_hash; + } + const contract = { + address: contractAddress, + codeHash: codeHash || "", + }; + const { token_list, generic_err } = + await queryClient.query.snip721.GetOwnedTokens({ + contract, + auth, + owner, + }); + if (generic_err) throw new Error(generic_err.msg); + const response = []; + await Promise.all( + token_list.tokens.map(async (token) => { + const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ + contract, + auth, + token_id: token, + }); + response.push({ + collectionIdent: contractAddress, + uri: tokenInfo.all_nft_info.info?.token_uri || "", + native: { + chainId: p.chainId, + contract: contractAddress, + contractHash: codeHash || "", + tokenId: token, + vk, + metadata: tokenInfo.all_nft_info.info?.extension, + }, + }); + }) + ); + return response; + }, + estimateValidateTransferNft: async () => { + return TRANSFER_GASL.times(gasPrice); + }, + estimateValidateUnfreezeNft: async () => { + return UNFREEZE_GASL.times(gasPrice); + }, + async setViewingKey(client, contract, vk) { + const tx = await client.tx.snip721.setViewingKey( + { + contract_address: contract, + msg: { + set_viewing_key: { + key: vk, + }, + }, + sender: client.address, + }, + { + waitForCommit: true, + gasLimit: 500000, + } + ); + return tx; + }, + preTransfer, + preUnfreeze: preTransfer, + transferNftToForeign: async (wallet, chainNonce, to, nft, fee, mw) => { + const tx = await wallet.tx.compute.executeContract( + { + sender: wallet.address, + contract_address: p.bridge.contractAddress, + code_hash: p.bridge.codeHash, + msg: { + freeze_nft: { + contract: nft.native.contract, + contract_hash: nft.native.contractHash, + viewer: { + viewing_key: nft.native.vk, + address: wallet.address, + }, + token_id: nft.native.tokenId, + to, + chain_nonce: chainNonce, + minter: mw, + }, + }, + sent_funds: [ + { + denom: "uscrt", + amount: fee.toString(10), + }, + ], + }, + { waitForCommit: true, gasLimit: 500000 } + ); + await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); + return tx; + }, + unfreezeWrappedNft: async (wallet, to, nft, fee, chainNonce) => { + const tx = await wallet.tx.compute.executeContract( + { + sender: wallet.address, + contract_address: p.bridge.contractAddress, + code_hash: p.bridge.codeHash, + msg: { + withdraw_nft: { + burner: nft.native.contract, + burner_hash: nft.native.contractHash, + token_id: nft.native.tokenId, + to, + chain_nonce: Number(chainNonce), + }, + }, + sent_funds: [ + { + denom: "uscrt", + amount: fee.toString(10), + }, + ], + }, + { waitForCommit: true, gasLimit: 500000 } + ); + await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); + return tx; + }, + }; +} +exports.secretHelperFactory = secretHelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFxQztBQUNyQyx1Q0FBbUU7QUF1Rm5FLE9BQU87QUFDUCxNQUFNLGFBQWEsR0FBRyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdkMsT0FBTztBQUNQLE1BQU0sYUFBYSxHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVoQyxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLENBQWU7SUFFZixNQUFNLFdBQVcsR0FBRyxJQUFJLDhCQUFtQixDQUFDO1FBQzFDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNiLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztLQUNuQixDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLEtBQUssVUFBVSxtQkFBbUIsQ0FDaEMsTUFBb0IsRUFDcEIsR0FBMkI7UUFFM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDdkQsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87b0JBQ3ZCLFdBQVcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQzNCO2FBQ0Y7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxlQUFlO2dCQUM1QixRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZO2FBQ2xDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztTQUM3QixDQUFDLENBQUM7UUFDSCxLQUFLLElBQUksSUFBSSxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFB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 diff --git a/dist/helpers/solana/idl.d.ts b/dist/helpers/solana/idl.d.ts new file mode 100644 index 000000000..4b53ae552 --- /dev/null +++ b/dist/helpers/solana/idl.d.ts @@ -0,0 +1,898 @@ +export declare type XpBridge = { + version: "0.1.0"; + name: "xp_bridge"; + instructions: [ + { + name: "initialize"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "groupKey"; + type: { + array: ["u8", 32]; + }; + } + ]; + }, + { + name: "validatePause"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "PauseData"; + }; + } + ]; + }, + { + name: "validateUnpause"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UnpauseData"; + }; + } + ]; + }, + { + name: "validateWithdrawFees"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "WithdrawFeesData"; + }; + } + ]; + }, + { + name: "validateUpdateGroupkey"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "user"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UpdateGroupkeyData"; + }; + } + ]; + }, + { + name: "validateTransferNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "payer"; + isMut: true; + isSigner: true; + }, + { + name: "authority"; + isMut: false; + isSigner: false; + }, + { + name: "mint"; + isMut: true; + isSigner: false; + }, + { + name: "tokenAccount"; + isMut: true; + isSigner: false; + }, + { + name: "metadataAccount"; + isMut: true; + isSigner: false; + }, + { + name: "editionAccount"; + isMut: true; + isSigner: false; + }, + { + name: "metadataProgram"; + isMut: false; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "rent"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "TransferNftData"; + }; + } + ]; + }, + { + name: "withdrawNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "authority"; + isMut: true; + isSigner: true; + }, + { + name: "mint"; + isMut: true; + isSigner: false; + }, + { + name: "tokenAccount"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "chainNonce"; + type: "u8"; + }, + { + name: "to"; + type: "string"; + }, + { + name: "lamports"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }, + { + name: "freezeNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "authority"; + isMut: true; + isSigner: true; + }, + { + name: "from"; + isMut: true; + isSigner: false; + }, + { + name: "to"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "chainNonce"; + type: "u8"; + }, + { + name: "to"; + type: "string"; + }, + { + name: "lamports"; + type: "u64"; + }, + { + name: "mintWith"; + type: "string"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }, + { + name: "validateUnfreezeNft"; + accounts: [ + { + name: "bridge"; + isMut: true; + isSigner: false; + }, + { + name: "from"; + isMut: true; + isSigner: false; + }, + { + name: "to"; + isMut: true; + isSigner: false; + }, + { + name: "tokenProgram"; + isMut: false; + isSigner: false; + }, + { + name: "consumedAction"; + isMut: true; + isSigner: false; + }, + { + name: "payer"; + isMut: true; + isSigner: true; + }, + { + name: "systemProgram"; + isMut: false; + isSigner: false; + }, + { + name: "instructionAcc"; + isMut: false; + isSigner: false; + } + ]; + args: [ + { + name: "data"; + type: { + defined: "UnfreezeNftData"; + }; + } + ]; + } + ]; + accounts: [ + { + name: "bridge"; + type: { + kind: "struct"; + fields: [ + { + name: "paused"; + type: "bool"; + }, + { + name: "groupKey"; + type: { + array: ["u8", 32]; + }; + }, + { + name: "actionId"; + type: "u128"; + } + ]; + }; + }, + { + name: "consumedAction"; + type: { + kind: "struct"; + fields: [ + { + name: "consumed"; + type: "bool"; + } + ]; + }; + } + ]; + types: [ + { + name: "PauseData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UnpauseData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UpdateGroupkeyData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "newKey"; + type: { + array: ["u8", 32]; + }; + } + ]; + }; + }, + { + name: "TransferNftData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "authBump"; + type: "u8"; + }, + { + name: "chainNonce"; + type: "u64"; + }, + { + name: "name"; + type: "string"; + }, + { + name: "symbol"; + type: "string"; + }, + { + name: "uri"; + type: "string"; + }, + { + name: "owner"; + type: "publicKey"; + }, + { + name: "collection"; + type: { + option: { + defined: "AnchorCollection"; + }; + }; + }, + { + name: "sellerFeeBasisPoints"; + type: { + option: "u16"; + }; + }, + { + name: "creators"; + type: { + option: { + vec: { + defined: "AnchorCreator"; + }; + }; + }; + } + ]; + }; + }, + { + name: "AnchorDataV2"; + type: { + kind: "struct"; + fields: [ + { + name: "name"; + docs: ["The name of the asset"]; + type: "string"; + }, + { + name: "symbol"; + docs: ["The symbol for the asset"]; + type: "string"; + }, + { + name: "uri"; + docs: ["URI pointing to JSON representing the asset"]; + type: "string"; + }, + { + name: "sellerFeeBasisPoints"; + docs: [ + "Royalty basis points that goes to creators in secondary sales (0-10000)" + ]; + type: "u16"; + }, + { + name: "creators"; + docs: ["Array of creators, optional"]; + type: { + option: { + vec: { + defined: "AnchorCreator"; + }; + }; + }; + }, + { + name: "collection"; + docs: ["Collection"]; + type: { + option: { + defined: "AnchorCollection"; + }; + }; + }, + { + name: "uses"; + docs: ["Uses"]; + type: { + option: { + defined: "AnchorUses"; + }; + }; + } + ]; + }; + }, + { + name: "AnchorCreator"; + type: { + kind: "struct"; + fields: [ + { + name: "address"; + type: "publicKey"; + }, + { + name: "verified"; + type: "bool"; + }, + { + name: "share"; + type: "u8"; + } + ]; + }; + }, + { + name: "AnchorCollection"; + type: { + kind: "struct"; + fields: [ + { + name: "verified"; + type: "bool"; + }, + { + name: "key"; + type: "publicKey"; + } + ]; + }; + }, + { + name: "AnchorUses"; + type: { + kind: "struct"; + fields: [ + { + name: "useMethod"; + type: { + defined: "AnchorUseMethod"; + }; + }, + { + name: "remaining"; + type: "u64"; + }, + { + name: "total"; + type: "u64"; + } + ]; + }; + }, + { + name: "WithdrawFeesData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + } + ]; + }; + }, + { + name: "UnfreezeNftData"; + type: { + kind: "struct"; + fields: [ + { + name: "actionId"; + type: "u64"; + }, + { + name: "bridgeBump"; + type: "u8"; + }, + { + name: "receiver"; + type: "publicKey"; + }, + { + name: "mint"; + type: "publicKey"; + } + ]; + }; + }, + { + name: "AnchorUseMethod"; + type: { + kind: "enum"; + variants: [ + { + name: "Burn"; + }, + { + name: "Multiple"; + }, + { + name: "Single"; + } + ]; + }; + } + ]; + events: [ + { + name: "TransferNft"; + fields: [ + { + name: "chainNonce"; + type: "u8"; + index: false; + }, + { + name: "to"; + type: "string"; + index: true; + }, + { + name: "mint"; + type: "publicKey"; + index: false; + }, + { + name: "actionId"; + type: "u128"; + index: false; + }, + { + name: "mintWith"; + type: "string"; + index: false; + }, + { + name: "lamports"; + type: "u64"; + index: false; + } + ]; + }, + { + name: "UnfreezeNft"; + fields: [ + { + name: "chainNonce"; + type: "u8"; + index: false; + }, + { + name: "to"; + type: "string"; + index: true; + }, + { + name: "actionId"; + type: "u128"; + index: false; + }, + { + name: "mint"; + type: "publicKey"; + index: false; + }, + { + name: "lamports"; + type: "u64"; + index: false; + } + ]; + } + ]; + errors: [ + { + code: 6000; + name: "Paused"; + msg: "Pausable: paused"; + }, + { + code: 6001; + name: "Unpaused"; + msg: "Pausable: unpaused"; + }, + { + code: 6002; + name: "AlreadyMinted"; + msg: "Already minted"; + }, + { + code: 6003; + name: "AlreadyBurned"; + msg: "Already burned"; + }, + { + code: 6004; + name: "InstructionAtWrongIndex"; + msg: "instruction at wrong index"; + }, + { + code: 6005; + name: "InvalidEd25519Instruction"; + msg: "invalid ed25519 instruction"; + }, + { + code: 6006; + name: "InvalidGroupKey"; + msg: "invalid group key"; + }, + { + code: 6007; + name: "InvalidProgramId"; + msg: "invalid program id"; + }, + { + code: 6008; + name: "InvalidArgs"; + msg: "invalid args"; + }, + { + code: 6009; + name: "InvalidActionId"; + msg: "invalid action id"; + }, + { + code: 6010; + name: "DuplicatedAction"; + msg: "duplicated action"; + }, + { + code: 6011; + name: "IncorrectOwner"; + msg: "incorrect owner"; + }, + { + code: 6012; + name: "InvalidMint"; + msg: "invalid mint"; + }, + { + code: 6013; + name: "InsufficientFundsForTransaction"; + msg: "insufficient funds for transaction"; + } + ]; +}; +export declare const IDL: XpBridge; +//# sourceMappingURL=idl.d.ts.map diff --git a/dist/helpers/solana/idl.d.ts.map b/dist/helpers/solana/idl.d.ts.map new file mode 100644 index 000000000..eb7db4f2e --- /dev/null +++ b/dist/helpers/solana/idl.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/idl.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/solana/idl.js b/dist/helpers/solana/idl.js new file mode 100644 index 000000000..7c914eff2 --- /dev/null +++ b/dist/helpers/solana/idl.js @@ -0,0 +1,900 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IDL = void 0; +exports.IDL = { + version: "0.1.0", + name: "xp_bridge", + instructions: [ + { + name: "initialize", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "groupKey", + type: { + array: ["u8", 32], + }, + }, + ], + }, + { + name: "validatePause", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "PauseData", + }, + }, + ], + }, + { + name: "validateUnpause", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UnpauseData", + }, + }, + ], + }, + { + name: "validateWithdrawFees", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "WithdrawFeesData", + }, + }, + ], + }, + { + name: "validateUpdateGroupkey", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "user", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UpdateGroupkeyData", + }, + }, + ], + }, + { + name: "validateTransferNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "payer", + isMut: true, + isSigner: true, + }, + { + name: "authority", + isMut: false, + isSigner: false, + }, + { + name: "mint", + isMut: true, + isSigner: false, + }, + { + name: "tokenAccount", + isMut: true, + isSigner: false, + }, + { + name: "metadataAccount", + isMut: true, + isSigner: false, + }, + { + name: "editionAccount", + isMut: true, + isSigner: false, + }, + { + name: "metadataProgram", + isMut: false, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "rent", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "TransferNftData", + }, + }, + ], + }, + { + name: "withdrawNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "authority", + isMut: true, + isSigner: true, + }, + { + name: "mint", + isMut: true, + isSigner: false, + }, + { + name: "tokenAccount", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "chainNonce", + type: "u8", + }, + { + name: "to", + type: "string", + }, + { + name: "lamports", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + { + name: "freezeNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "authority", + isMut: true, + isSigner: true, + }, + { + name: "from", + isMut: true, + isSigner: false, + }, + { + name: "to", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "chainNonce", + type: "u8", + }, + { + name: "to", + type: "string", + }, + { + name: "lamports", + type: "u64", + }, + { + name: "mintWith", + type: "string", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + { + name: "validateUnfreezeNft", + accounts: [ + { + name: "bridge", + isMut: true, + isSigner: false, + }, + { + name: "from", + isMut: true, + isSigner: false, + }, + { + name: "to", + isMut: true, + isSigner: false, + }, + { + name: "tokenProgram", + isMut: false, + isSigner: false, + }, + { + name: "consumedAction", + isMut: true, + isSigner: false, + }, + { + name: "payer", + isMut: true, + isSigner: true, + }, + { + name: "systemProgram", + isMut: false, + isSigner: false, + }, + { + name: "instructionAcc", + isMut: false, + isSigner: false, + }, + ], + args: [ + { + name: "data", + type: { + defined: "UnfreezeNftData", + }, + }, + ], + }, + ], + accounts: [ + { + name: "bridge", + type: { + kind: "struct", + fields: [ + { + name: "paused", + type: "bool", + }, + { + name: "groupKey", + type: { + array: ["u8", 32], + }, + }, + { + name: "actionId", + type: "u128", + }, + ], + }, + }, + { + name: "consumedAction", + type: { + kind: "struct", + fields: [ + { + name: "consumed", + type: "bool", + }, + ], + }, + }, + ], + types: [ + { + name: "PauseData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UnpauseData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UpdateGroupkeyData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "newKey", + type: { + array: ["u8", 32], + }, + }, + ], + }, + }, + { + name: "TransferNftData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "authBump", + type: "u8", + }, + { + name: "chainNonce", + type: "u64", + }, + { + name: "name", + type: "string", + }, + { + name: "symbol", + type: "string", + }, + { + name: "uri", + type: "string", + }, + { + name: "owner", + type: "publicKey", + }, + { + name: "collection", + type: { + option: { + defined: "AnchorCollection", + }, + }, + }, + { + name: "sellerFeeBasisPoints", + type: { + option: "u16", + }, + }, + { + name: "creators", + type: { + option: { + vec: { + defined: "AnchorCreator", + }, + }, + }, + }, + ], + }, + }, + { + name: "AnchorDataV2", + type: { + kind: "struct", + fields: [ + { + name: "name", + docs: ["The name of the asset"], + type: "string", + }, + { + name: "symbol", + docs: ["The symbol for the asset"], + type: "string", + }, + { + name: "uri", + docs: ["URI pointing to JSON representing the asset"], + type: "string", + }, + { + name: "sellerFeeBasisPoints", + docs: [ + "Royalty basis points that goes to creators in secondary sales (0-10000)", + ], + type: "u16", + }, + { + name: "creators", + docs: ["Array of creators, optional"], + type: { + option: { + vec: { + defined: "AnchorCreator", + }, + }, + }, + }, + { + name: "collection", + docs: ["Collection"], + type: { + option: { + defined: "AnchorCollection", + }, + }, + }, + { + name: "uses", + docs: ["Uses"], + type: { + option: { + defined: "AnchorUses", + }, + }, + }, + ], + }, + }, + { + name: "AnchorCreator", + type: { + kind: "struct", + fields: [ + { + name: "address", + type: "publicKey", + }, + { + name: "verified", + type: "bool", + }, + { + name: "share", + type: "u8", + }, + ], + }, + }, + { + name: "AnchorCollection", + type: { + kind: "struct", + fields: [ + { + name: "verified", + type: "bool", + }, + { + name: "key", + type: "publicKey", + }, + ], + }, + }, + { + name: "AnchorUses", + type: { + kind: "struct", + fields: [ + { + name: "useMethod", + type: { + defined: "AnchorUseMethod", + }, + }, + { + name: "remaining", + type: "u64", + }, + { + name: "total", + type: "u64", + }, + ], + }, + }, + { + name: "WithdrawFeesData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + ], + }, + }, + { + name: "UnfreezeNftData", + type: { + kind: "struct", + fields: [ + { + name: "actionId", + type: "u64", + }, + { + name: "bridgeBump", + type: "u8", + }, + { + name: "receiver", + type: "publicKey", + }, + { + name: "mint", + type: "publicKey", + }, + ], + }, + }, + { + name: "AnchorUseMethod", + type: { + kind: "enum", + variants: [ + { + name: "Burn", + }, + { + name: "Multiple", + }, + { + name: "Single", + }, + ], + }, + }, + ], + events: [ + { + name: "TransferNft", + fields: [ + { + name: "chainNonce", + type: "u8", + index: false, + }, + { + name: "to", + type: "string", + index: true, + }, + { + name: "mint", + type: "publicKey", + index: false, + }, + { + name: "actionId", + type: "u128", + index: false, + }, + { + name: "mintWith", + type: "string", + index: false, + }, + { + name: "lamports", + type: "u64", + index: false, + }, + ], + }, + { + name: "UnfreezeNft", + fields: [ + { + name: "chainNonce", + type: "u8", + index: false, + }, + { + name: "to", + type: "string", + index: true, + }, + { + name: "actionId", + type: "u128", + index: false, + }, + { + name: "mint", + type: "publicKey", + index: false, + }, + { + name: "lamports", + type: "u64", + index: false, + }, + ], + }, + ], + errors: [ + { + code: 6000, + name: "Paused", + msg: "Pausable: paused", + }, + { + code: 6001, + name: "Unpaused", + msg: "Pausable: unpaused", + }, + { + code: 6002, + name: "AlreadyMinted", + msg: "Already minted", + }, + { + code: 6003, + name: "AlreadyBurned", + msg: "Already burned", + }, + { + code: 6004, + name: "InstructionAtWrongIndex", + msg: "instruction at wrong index", + }, + { + code: 6005, + name: "InvalidEd25519Instruction", + msg: "invalid ed25519 instruction", + }, + { + code: 6006, + name: "InvalidGroupKey", + msg: "invalid group key", + }, + { + code: 6007, + name: "InvalidProgramId", + msg: "invalid program id", + }, + { + code: 6008, + name: "InvalidArgs", + msg: "invalid args", + }, + { + code: 6009, + name: "InvalidActionId", + msg: "invalid action id", + }, + { + code: 6010, + name: "DuplicatedAction", + msg: "duplicated action", + }, + { + code: 6011, + name: "IncorrectOwner", + msg: "incorrect owner", + }, + { + code: 6012, + name: "InvalidMint", + msg: "invalid mint", + }, + { + code: 6013, + name: "InsufficientFundsForTransaction", + msg: "insufficient funds for transaction", + }, + ], +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvc29sYW5hL2lkbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpNEJhLFFBQUEsR0FBRyxHQUFhO0lBQzNCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLElBQUksRUFBRSxXQUFXO0lBQ2pCLFlBQVksRUFBRTtRQUNaO1lBQ0UsSUFBSSxFQUFFLFlBQVk7WUFDbEIsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRSxLQUFLO2lCQUNoQjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZUFBZTtvQkFDckIsS0FBSyxFQUFFLEtBQUs7b0JBQ1osUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0o7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3FCQUNsQjtpQkFDRjthQUNGO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxlQUFlO1lBQ3JCLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsS0FBSztpQkFDaEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2dCQUNEO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNEO29CQUNFLElBQUksRUFBRSxlQUFlO29CQUNy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 diff --git a/dist/helpers/solana/index.d.ts b/dist/helpers/solana/index.d.ts new file mode 100644 index 000000000..b61ebba2e --- /dev/null +++ b/dist/helpers/solana/index.d.ts @@ -0,0 +1,44 @@ +import { Wallet } from "@project-serum/anchor"; +import { Connection } from "@solana/web3.js"; +import { EvNotifier } from "../../notifier"; +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + GetProvider, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + BalanceCheck, + MintNft, +} from "../chain"; +export declare type SolanaSigner = Wallet; +export declare type SolanaNft = { + nftMint: string; +}; +declare type SolanaMintArgs = { + uri: string; +}; +export declare type SolanaHelper = ChainNonceGet & + BalanceCheck & + MintNft & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + connection: Connection; + } & { + XpNft: string; + } & GetFeeMargins & + GetProvider; +export declare type SolanaParams = { + endpoint: string; + bridgeContractAddr: string; + xpnftAddr: string; + notifier: EvNotifier; + feeMargin: FeeMargins; +}; +export declare function solanaHelper(args: SolanaParams): Promise; +export {}; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/helpers/solana/index.d.ts.map b/dist/helpers/solana/index.d.ts.map new file mode 100644 index 000000000..c906f3033 --- /dev/null +++ b/dist/helpers/solana/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,MAAM,EAKP,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACL,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACR,MAAM,UAAU,CAAC;AAGlB,oBAAY,YAAY,GAAG,MAAM,CAAC;AAElC,oBAAY,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,aAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,YAAY,GAAG,aAAa,GACtC,YAAY,GACZ,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC7C,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,cAAc,CAAC,SAAS,CAAC,GACzB,eAAe,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GACrC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE1B,oBAAY,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AA4DF,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuN5E"} \ No newline at end of file diff --git a/dist/helpers/solana/index.js b/dist/helpers/solana/index.js new file mode 100644 index 000000000..20abaa878 --- /dev/null +++ b/dist/helpers/solana/index.js @@ -0,0 +1,273 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.solanaHelper = void 0; +/*import { + Metaplex, + bundlrStorage, + walletAdapterIdentity, +} from "@metaplex-foundation/js";*/ +const anchor_1 = require("@project-serum/anchor"); +const spl_token_1 = require("@solana/spl-token"); +const web3_js_1 = require("@solana/web3.js"); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const __1 = require("../.."); +const idl_1 = require("./idl"); +// Based on https://github.com/solana-labs/solana-program-library/blob/118bd047aa0f1ba1930b5bc4639d40aa2a375ccb/token/js/src/actions/getOrCreateAssociatedTokenAccount.ts +async function getOrCreateAssociatedTokenAccount( + connection, + payer, + mint, + owner, + allowOwnerOffCurve = false +) { + const provider = new anchor_1.AnchorProvider(connection, payer, {}); + const associatedToken = await (0, spl_token_1.getAssociatedTokenAddress)( + mint, + owner, + allowOwnerOffCurve + ); + // This is the optimal logic, considering TX fee, client-side computation, RPC roundtrips and guaranteed idempotent. + // Sadly we can't do this atomically. + let account; + try { + account = await (0, spl_token_1.getAccount)(connection, associatedToken); + } catch (error) { + // TokenAccountNotFoundError can be possible if the associated address has already received some lamports, + // becoming a system account. Assuming program derived addressing is safe, this is the only case for the + // TokenInvalidAccountOwnerError in this code path. + if ( + error instanceof spl_token_1.TokenAccountNotFoundError || + error instanceof spl_token_1.TokenInvalidAccountOwnerError + ) { + // As this isn't atomic, it's possible others can create associated accounts meanwhile. + try { + const transaction = new web3_js_1.Transaction().add( + (0, spl_token_1.createAssociatedTokenAccountInstruction)( + payer.publicKey, + associatedToken, + owner, + mint + ) + ); + await provider.sendAndConfirm(transaction); + } catch (error) { + // Ignore all errors; for now there is no API-compatible way to selectively ignore the expected + // instruction error if the associated account exists already. + } + // Now this should always succeed + account = await (0, spl_token_1.getAccount)(connection, associatedToken); + } else { + throw error; + } + } + if (!account.mint.equals(mint)) throw new spl_token_1.TokenInvalidMintError(); + if (!account.owner.equals(owner)) + throw new spl_token_1.TokenInvalidOwnerError(); + return account; +} +async function solanaHelper(args) { + const conn = new web3_js_1.Connection(args.endpoint); + async function getOrCreateTokenAccount(mint, owner, provider) { + const tokenProgram = anchor_1.Spl.token(provider); + const program = anchor_1.Spl.associatedToken(provider); + const [associatedToken] = await web3_js_1.PublicKey.findProgramAddress( + [owner.toBuffer(), tokenProgram.programId.toBuffer(), mint.toBuffer()], + program.programId + ); + try { + const tokenAccount = await tokenProgram.account.token.fetch( + associatedToken + ); + return { + address: associatedToken, + owner: tokenAccount.authority, + ...tokenAccount, + }; + } catch (e) { + try { + await program.methods + .create() + .accounts({ + mint, + owner, + associatedAccount: associatedToken, + }) + .rpc(); + const tokenAccount = await tokenProgram.account.token.fetch( + associatedToken + ); + return { + address: associatedToken, + owner: tokenAccount.authority, + ...tokenAccount, + }; + } catch (e) { + throw e; + } + } + } + return { + XpNft: args.xpnftAddr, + connection: conn, + async balance(address) { + return new bignumber_js_1.default( + await conn.getBalance(new web3_js_1.PublicKey(address)) + ); + }, + getNonce: () => __1.Chain.SOLANA, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { + const provider = new anchor_1.AnchorProvider(conn, sender, {}); + const bridgeContract = new anchor_1.Program( + idl_1.IDL, + args.bridgeContractAddr, + provider + ); + const [bridge, bridgeBump] = await web3_js_1.PublicKey.findProgramAddress( + [Buffer.from("bridge")], + bridgeContract.programId + ); + const mintAddr = new web3_js_1.PublicKey(id.native.nftMint); + const fromTokenAcc = await getOrCreateTokenAccount( + mintAddr, + sender.publicKey, + provider + ); + const toAccount = await getOrCreateTokenAccount( + mintAddr, + bridge, + provider + ); + const tx = await bridgeContract.methods + .freezeNft( + chain_nonce, + to, + new anchor_1.BN(txFees.toString(10)), + mintWith, + bridgeBump + ) + .accounts({ + bridge, + authority: sender.publicKey, + from: fromTokenAcc.address, + to: toAccount.address, + tokenProgram: spl_token_1.TOKEN_PROGRAM_ID, + }) + .rpc(); + await args.notifier.notifySolana(tx); + return tx; + }, + getFeeMargin() { + return args.feeMargin; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + console.log(`Unfreezing`); + const provider = new anchor_1.AnchorProvider(conn, sender, {}); + const bridgeContract = new anchor_1.Program( + idl_1.IDL, + args.bridgeContractAddr, + provider + ); + const [bridge, bridgeBump] = await web3_js_1.PublicKey.findProgramAddress( + [Buffer.from("bridge")], + bridgeContract.programId + ); + const mintAddr = new web3_js_1.PublicKey(id.native.nftMint); + const tokenAcc = await getOrCreateAssociatedTokenAccount( + conn, + sender, + mintAddr, + sender.publicKey + ).catch((e) => { + console.error(e); + throw e; + }); + const tx = await bridgeContract.methods + .withdrawNft( + parseInt(nonce), + to, + new anchor_1.BN(txFees.toString(10)), + bridgeBump + ) + .accounts({ + bridge, + authority: sender.publicKey, + mint: tokenAcc.mint, + tokenAccount: tokenAcc.address, + tokenProgram: spl_token_1.TOKEN_PROGRAM_ID, + }) + .rpc(); + await args.notifier.notifySolana(tx); + return tx; + }, + getProvider() { + return conn; + }, + async mintNft() { + /*console.log(Metaplex, walletAdapterIdentity, bundlrStorage); + console.log(args, "args"); + console.log(sender, "sender"); + const provider = new AnchorProvider(conn, sender, {}); + console.log(provider.wallet, "provider"); + + /*const txn = await conn.requestAirdrop( + sender.publicKey, + LAMPORTS_PER_SOL * 2 + ); + const block = await conn.getLatestBlockhash(); + const sig = conn.confirmTransaction( + { + blockhash: block.blockhash, + lastValidBlockHeight: block.lastValidBlockHeight, + signature: txn, + }, + "finalized" + ); + console.log(`Airdrop: ${txn}`); + console.log(`sig ${sig}`); + console.log(`Waiting for 5s`); + await new Promise((r) => setTimeout(r, 5000)); + //sender.payer.secretKey. + const _metaplex = Metaplex.make(conn) + .use(walletAdapterIdentity(sender)) + .use(bundlrStorage()); + const nftc = _metaplex.nfts(); + + const _col = await nftc.create( + { + name: "Uniair1", + symbol: "UNIAIRT", + + uri: args.uri, + sellerFeeBasisPoints: 0, + }, + { + commitment: "processed", + } + ); + + console.log(_col);*/ + return ""; + }, + async estimateValidateTransferNft() { + return new bignumber_js_1.default(0); // TODO + }, + async estimateValidateUnfreezeNft() { + return new bignumber_js_1.default(0); // TODO + }, + async validateAddress(adr) { + try { + new web3_js_1.PublicKey(adr); + return true; + } catch { + return false; + } + }, + }; +} +exports.solanaHelper = solanaHelper; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9zb2xhbmEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7bUNBSW1DO0FBQ25DLGtEQU0rQjtBQUMvQixpREFVMkI7QUFDM0IsNkNBS3lCO0FBRXpCLGdFQUFxQztBQUNyQyw2QkFBOEI7QUFjOUIsK0JBQTRCO0FBK0I1Qix5S0FBeUs7QUFDekssS0FBSyxVQUFVLGlDQUFpQyxDQUM5QyxVQUFzQixFQUN0QixLQUFtQixFQUNuQixJQUFlLEVBQ2YsS0FBZ0IsRUFDaEIsa0JBQWtCLEdBQUcsS0FBSztJQUUxQixNQUFNLFFBQVEsR0FBRyxJQUFJLHVCQUFjLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUEscUNBQXlCLEVBQ3JELElBQUksRUFDSixLQUFLLEVBQ0wsa0JBQWtCLENBQ25CLENBQUM7SUFFRixvSEFBb0g7SUFDcEgscUNBQXFDO0lBQ3JDLElBQUksT0FBZ0IsQ0FBQztJQUNyQixJQUFJO1FBQ0YsT0FBTyxHQUFHLE1BQU0sSUFBQSxzQkFBVSxFQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztLQUN6RDtJQUFDLE9BQU8sS0FBYyxFQUFFO1FBQ3ZCLDBHQUEwRztRQUMxRyx3R0FBd0c7UUFDeEcsbURBQW1EO1FBQ25ELElBQ0UsS0FBSyxZQUFZLHFDQUF5QjtZQUMxQyxLQUFLLFlBQVkseUNBQTZCLEVBQzlDO1lBQ0EsdUZBQXVGO1lBQ3ZGLElBQUk7Z0JBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQkFBVyxFQUFFLENBQUMsR0FBRyxDQUN2QyxJQUFBLG1EQUF1QyxFQUNyQyxLQUFLLENBQUMsU0FBUyxFQUNmLGVBQWUsRUFDZixLQUFLLEVBQ0wsSUFBSSxDQUNMLENBQ0YsQ0FBQztnQkFFRixNQUFNLFFBQVEsQ0FBQyxjQUFj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 diff --git a/dist/helpers/tezos.d.ts b/dist/helpers/tezos.d.ts new file mode 100644 index 000000000..b17c82785 --- /dev/null +++ b/dist/helpers/tezos.d.ts @@ -0,0 +1,83 @@ +import { + BalanceCheck, + ChainNonceGet, + EstimateTxFees, + MintNft, + NftInfo, + PreTransfer, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, +} from ".."; +import { Signer, TezosToolkit, WalletProvider } from "@taquito/taquito"; +import { EvNotifier } from "../notifier"; +import { + FeeMargins, + GetFeeMargins, + WhitelistCheck, + GetTokenURI, + TransferNftForeignBatch, + UnfreezeForeignNftBatch, + EstimateTxFeesBatch, +} from "./chain"; +declare type TezosSigner = WalletProvider | Signer; +export declare type TezosNftInfo = { + contract: string; + token_id: string; + amt: number; +}; +declare type TezosMintArgs = { + identifier: string; + contract: string; + uri: string; + to: string; + amt: number; +}; +export declare type TezosHelper = TransferNftForeign< + TezosSigner, + TezosNftInfo, + string +> & + MintNft & + BalanceCheck & + UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFeesBatch & + ValidateAddress & + EstimateTxFees & + ChainNonceGet & + Pick, "preTransfer"> & { + isApprovedForMinter( + nft: NftInfo, + signer: TezosSigner + ): Promise; + } & { + approveForMinter( + address: NftInfo, + sender: TezosSigner + ): Promise; + } & { + XpNft: string; + XpNft1155: string; + } & GetFeeMargins & + WhitelistCheck & + GetTokenURI; +export declare type TezosParams = { + Tezos: TezosToolkit; + notifier: EvNotifier; + xpnftAddress: string; + bridgeAddress: string; + validators: string[]; + feeMargin: FeeMargins; +}; +export declare function tezosHelperFactory({ + Tezos, + notifier, + xpnftAddress, + bridgeAddress, + validators, + feeMargin, +}: TezosParams): Promise; +export {}; +//# sourceMappingURL=tezos.d.ts.map diff --git a/dist/helpers/tezos.d.ts.map b/dist/helpers/tezos.d.ts.map new file mode 100644 index 000000000..92475acf3 --- /dev/null +++ b/dist/helpers/tezos.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/helpers/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAOL,MAAM,EACN,YAAY,EAIZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,aAAK,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3C,oBAAY,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,aAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,WAAW,GAAG,kBAAkB,CAC1C,WAAW,EACX,YAAY,EACZ,MAAM,CACP,GACC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAC3C,YAAY,GACZ,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GACrD,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,mBAAmB,CAAC,YAAY,CAAC,GACjC,eAAe,GACf,cAAc,CAAC,YAAY,CAAC,GAC5B,aAAa,GACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG;IAC1E,mBAAmB,CACjB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,GAAG;IACF,gBAAgB,CACd,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,GACjB,cAAc,CAAC,YAAY,CAAC,GAC5B,WAAW,CAAC;AAEd,oBAAY,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA+OpC"} \ No newline at end of file diff --git a/dist/helpers/tezos.js b/dist/helpers/tezos.js new file mode 100644 index 000000000..dd8ff421a --- /dev/null +++ b/dist/helpers/tezos.js @@ -0,0 +1,242 @@ +"use strict"; +var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); +var __setModuleDefault = + (this && this.__setModuleDefault) || + (Object.create + ? function (o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } + : function (o, v) { + o["default"] = v; + }); +var __importStar = + (this && this.__importStar) || + function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tezosHelperFactory = void 0; +const __1 = require(".."); +const taquito_1 = require("@taquito/taquito"); +const utils = __importStar(require("@taquito/utils")); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +async function tezosHelperFactory({ + Tezos, + notifier, + xpnftAddress, + bridgeAddress, + validators, + feeMargin, +}) { + const estimateGas = (validators, baseprice) => { + return new bignumber_js_1.default(baseprice * (validators.length + 1)); + }; + async function withContract(sender, contract, cb, params) { + if ("publicKeyHash" in sender) { + Tezos.setSignerProvider(sender); + const contractI = await Tezos.contract.at(contract); + const res = cb(contractI); + const tx = await res.send(params); + await tx.confirmation(); + return tx.hash; + } else { + Tezos.setWalletProvider(sender); + const contractI = await Tezos.wallet.at(contract); + const res = cb(contractI); + const estim = await Tezos.estimate + .transfer(res.toTransferParams(params)) + .catch(() => ({ storageLimit: 0 })); + if (params) { + if (!params.storageLimit) params.storageLimit = estim.storageLimit; + } else { + params = { storageLimit: estim.storageLimit }; + } + const tx = await res.send(params); + await tx.confirmation(); + return tx.opHash; + } + } + function withBridge(sender, cb, params) { + return withContract(sender, bridgeAddress, cb, params); + } + function getAddress(sender) { + if ("publicKeyHash" in sender) { + return sender.publicKeyHash(); + } else { + return sender.getPKH(); + } + } + async function isApprovedForMinter(nft, sender) { + const owner = await getAddress(sender); + const contract = await Tezos.contract.at(nft.native.contract); + const storage = await contract.storage(); + const storageOperator = storage.operator || storage.operators; + const args = storage.operator + ? [bridgeAddress, nft.native.token_id, owner] + : { + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }; + const op = await storageOperator?.get(args); + return op != undefined; + } + async function notifyValidator(hash) { + await notifier.notifyTezos(hash); + } + async function preTransfer(signer, nft) { + if (await isApprovedForMinter(nft, signer)) { + return; + } + const owner = await getAddress(signer); + return await withContract(signer, nft.native.contract, (contract) => + contract.methods.update_operators([ + { + add_operator: { + owner, + operator: bridgeAddress, + token_id: nft.native.token_id, + }, + }, + ]) + ); + } + let transferNft = async (sender, chain, to, nft, fee, mw, amt) => { + // await preTransfer(sender, nft); + const hash = await withBridge( + sender, + (bridge) => + bridge.methodsObject.freeze_fa2({ + fa2_address: nft.collectionIdent, + token_id: parseInt(nft.native.token_id), + chain_nonce: chain, + to, + mint_with: mw, + amt, + }), + { amount: fee.toNumber() / 1e6 } + ); + notifyValidator(hash); + return hash; + }; + let unfreezeWrappedNft = async (sender, to, nft, fee, nonce, amt) => { + const hash = await withBridge( + sender, + (bridge) => { + return bridge.methodsObject.withdraw_nft({ + amt, + burner: nft.native.contract, + chain_nonce: nonce, + to, + token_id: parseInt(nft.native.token_id), + }); + }, + { amount: fee.toNumber() / 1e6 } + ); + notifyValidator(hash); + return hash; + }; + return { + XpNft: xpnftAddress, + XpNft1155: xpnftAddress, + transferNftToForeign: (sender, chain, to, nft, fee, mw) => + transferNft(sender, chain, to, nft, fee, mw, 1), + transferNftBatchToForeign: ( + sender, + chain_nonce, + to, + id, + mintWith, + txFees + ) => + transferNft(sender, chain_nonce, to, id[0], txFees, mintWith, id.length), + async balance(address) { + return new bignumber_js_1.default( + (await Tezos.tz.getBalance(address)).toString(10) + ); + }, + unfreezeWrappedNftBatch: (sender, chainNonce, to, nfts, txFees) => + unfreezeWrappedNft(sender, to, nfts[0], txFees, chainNonce, nfts.length), + unfreezeWrappedNft: (sender, to, nft, txFees, chainNonce) => + unfreezeWrappedNft(sender, to, nft, txFees, parseInt(chainNonce), 1), + async mintNft(signer, { identifier, contract, uri, to, amt }) { + const metadata = new taquito_1.MichelsonMap(); + metadata.set("", utils.char2Bytes(uri)); + return await withContract(signer, contract, (umt) => + umt.methods.mint(to, amt, metadata, identifier) + ); + }, + async validateAddress(adr) { + return Promise.resolve( + utils.validateAddress(adr) === utils.ValidationResult.VALID + ); + }, + getNonce() { + return __1.Chain.TEZOS; + }, + getFeeMargin() { + return feeMargin; + }, + async estimateValidateTransferNft() { + return estimateGas(validators, 1.2e5); + }, + async estimateValidateUnfreezeNft() { + return estimateGas(validators, 1.2e4); + }, + async estimateValidateTransferNftBatch(_, ids) { + return estimateGas(validators, 1.2e5 * ids.length); + }, + async estimateValidateUnfreezeNftBatch(_, ids) { + return estimateGas(validators, 1.2e4 * ids.length); + }, + preTransfer, + isApprovedForMinter, + approveForMinter: (nft, sender) => preTransfer(sender, nft), + async isNftWhitelisted(nft) { + const bridge = await Tezos.contract.at(bridgeAddress); + const storage = await bridge.storage(); + const whitelisted = await storage.nft_whitelist.get(nft.native.contract); + return whitelisted == 2; + }, + async getTokenURI(contract, tokenId) { + if (utils.validateAddress(contract) && tokenId) { + const _contract = await Tezos.contract.at(contract); + const storage = await _contract.storage(); + const tokenStorage = await storage.token_metadata.get(tokenId); + if (tokenStorage) { + return utils.bytes2Char(tokenStorage.token_info?.get("")); + } + } + return ""; + }, + }; +} +exports.tezosHelperFactory = tezosHelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV6b3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90ZXpvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMEJBV1k7QUFDWiw4Q0FhMEI7QUFFMUIsc0RBQXdDO0FBQ3hDLGdFQUFxQztBQW9FOUIsS0FBSyxVQUFVLGtCQUFrQixDQUFDLEVBQ3ZDLEtBQUssRUFDTCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1YsU0FBUyxHQUNHO0lBQ1osTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFvQixFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUM5RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0lBRUYsS0FBSyxVQUFVLFlBQVksQ0FDekIsTUFBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsRUFFOEMsRUFDOUMsTUFBNEI7UUFFNUIsSUFBSSxlQUFlLElBQUksTUFBTSxFQUFFO1lBQzdCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVoQyxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXBELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQixNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsT0FBUSxFQUEyQixDQUFDLElBQUksQ0FBQztTQUMxQzthQUFNO1lBQ0wsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FB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 diff --git a/dist/helpers/ton-bridge.d.ts b/dist/helpers/ton-bridge.d.ts new file mode 100644 index 000000000..5d0472ab2 --- /dev/null +++ b/dist/helpers/ton-bridge.d.ts @@ -0,0 +1,48 @@ +import BN from "bn.js"; +import { ContractMethods, ContractOptions } from "tonweb"; +import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; +declare const Contract: typeof import("tonweb/dist/types/contract/contract").Contract; +declare type SeqnoMethod = () => SeqnoMethodResult; +interface SeqnoMethodResult { + call: () => Promise; +} +interface BridgeOptions extends ContractOptions { + burner: string; +} +interface BridgeMethods extends ContractMethods { + seqno: SeqnoMethod; + getPublicKey: () => Promise; + isInitialized: () => Promise; + getActionId: () => Promise; + getWhitelist: () => Promise; +} +interface WithdrawParams { + chainNonce: number; + to: Uint8Array; + txFees: BN; +} +interface FreezeParams { + chainNonce: number; + to: Uint8Array; + mintWith: Uint8Array; + amount?: number | BN; +} +export declare class BridgeContract extends Contract< + BridgeOptions, + BridgeMethods +> { + constructor(provider: HttpProvider, options: BridgeOptions); + serializeUri(uri: string): Uint8Array; + createWithdrawBody( + params: WithdrawParams + ): Promise; + createFreezeBody( + params: FreezeParams + ): Promise; + getPublicKey: () => Promise; + isInitialized: () => Promise; + getActionId: () => Promise; + getWhitelist: () => Promise; +} +export {}; +//# sourceMappingURL=ton-bridge.d.ts.map diff --git a/dist/helpers/ton-bridge.d.ts.map b/dist/helpers/ton-bridge.d.ts.map new file mode 100644 index 000000000..1a1244102 --- /dev/null +++ b/dist/helpers/ton-bridge.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ton-bridge.d.ts","sourceRoot":"","sources":["../../src/helpers/ton-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAEzE,QAAA,MAAM,QAAQ,+DAAkB,CAAC;AAGjC,OAAO,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC;AAEnD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,UAAU,aAAc,SAAQ,eAAe;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,UAAU,aAAc,SAAQ,eAAe;IAC7C,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,YAAY,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;CACjC;AAED,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,EAAE,CAAC;CACZ;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;CACtB;AAED,qBAAa,cAAe,SAAQ,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;gBAC5D,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa;IAS1D,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAI/B,kBAAkB,CAAC,MAAM,EAAE,cAAc;IAoBzC,gBAAgB,CAAC,MAAM,EAAE,YAAY;IAmB3C,YAAY,qBAOV;IAEF,aAAa,qBAOX;IAEF,WAAW,qBAOT;IAEF,YAAY,qBAOV;CACH"} \ No newline at end of file diff --git a/dist/helpers/ton-bridge.js b/dist/helpers/ton-bridge.js new file mode 100644 index 000000000..cc1d0c5ca --- /dev/null +++ b/dist/helpers/ton-bridge.js @@ -0,0 +1,92 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BridgeContract = void 0; +const bn_js_1 = __importDefault(require("bn.js")); +const tonweb_1 = __importDefault(require("tonweb")); +const Contract = tonweb_1.default.Contract; +const Cell = tonweb_1.default.boc.Cell; +class BridgeContract extends Contract { + constructor(provider, options) { + super(provider, options); + this.getPublicKey = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_public_key" + ); + return result; + }; + this.isInitialized = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "is_initialized" + ); + return result; + }; + this.getActionId = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_action_id" + ); + return result; + }; + this.getWhitelist = async () => { + const address = await this.getAddress(); + const result = await this.provider.call2( + address.toString(), + "get_whitelist" + ); + return result; + }; + this.methods.getPublicKey = this.getPublicKey; + this.methods.isInitialized = this.isInitialized; + this.methods.getActionId = this.getActionId; + this.methods.getWhitelist = this.getWhitelist; + } + serializeUri(uri) { + return new TextEncoder().encode(encodeURI(uri)); + } + async createWithdrawBody(params) { + const cell = new Cell(); + cell.bits.writeUint(0x5fcc3d14, 32); // transfer op + cell.bits.writeUint(0, 64); + cell.bits.writeAddress(new tonweb_1.default.Address(this.options.burner)); // target address + cell.bits.writeAddress(await this.getAddress()); // bridge as response address + cell.bits.writeBit(false); // null custom_payload + cell.bits.writeCoins(new bn_js_1.default(0)); // forward amount + cell.bits.writeBit(true); // forward_payload in this slice, not separate cell + const msg = new Cell(); + msg.bits.writeUint(params.chainNonce, 8); + msg.bits.writeUint(params.to.length, 16); + msg.bits.writeBytes(params.to); + msg.bits.writeBytes(new Uint8Array(12)); + cell.refs[0] = msg; + return cell; + } + async createFreezeBody(params) { + const cell = new Cell(); + cell.bits.writeUint(0x5fcc3d14, 32); // transfer op + cell.bits.writeUint(0, 64); + cell.bits.writeAddress(await this.getAddress()); // target address + cell.bits.writeAddress(undefined); // undefined as response address + cell.bits.writeBit(false); // null custom_payload + cell.bits.writeCoins(params.amount || new bn_js_1.default(0)); + cell.bits.writeBit(false); // forward_payload in this slice, not separate cell + const payload = new Cell(); + payload.bits.writeUint(params.chainNonce, 8); + payload.bits.writeUint(params.to.length, 16); + payload.bits.writeBytes(params.to); + payload.bits.writeBytes(params.mintWith); + cell.refs[0] = payload; + return cell; + } +} +exports.BridgeContract = BridgeContract; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLWJyaWRnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Rvbi1icmlkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQXVCO0FBQ3ZCLG9EQUFrRTtBQUdsRSxNQUFNLFFBQVEsR0FBRyxnQkFBTSxDQUFDLFFBQVEsQ0FBQztBQUNqQyxNQUFNLElBQUksR0FBRyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFnQzdCLE1BQWEsY0FBZSxTQUFRLFFBQXNDO0lBQ3hFLFlBQVksUUFBc0IsRUFBRSxPQUFzQjtRQUN4RCxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBbUQzQixpQkFBWSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3hCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ3RDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsZ0JBQWdCLENBQ2pCLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ3RDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsZ0JBQWdCLENBQ2pCLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRixnQkFBVyxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFD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 diff --git a/dist/helpers/ton.d.ts b/dist/helpers/ton.d.ts new file mode 100644 index 000000000..3933f63ca --- /dev/null +++ b/dist/helpers/ton.d.ts @@ -0,0 +1,113 @@ +import TonWeb from "tonweb"; +import TonWebMnemonic from "tonweb-mnemonic"; +import type { Cell } from "tonweb/dist/types/boc/cell"; +import { EvNotifier } from "../notifier"; +import { + ChainNonceGet, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + TransferNftForeign, + UnfreezeForeignNft, + ValidateAddress, + BalanceCheck, +} from "./chain"; +import { PreTransfer } from ".."; +import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; +export declare type TonSigner = { + wallet?: TonWallet; + accIdx: number; +}; +export declare type TonWalletProvider = { + isTonWallet: boolean; + send(method: string, params?: any[]): Promise; + onSuccess?(): Promise; + on(eventName: string, handler: (...data: any[]) => any): void; +}; +export declare type TonArgs = { + wallet: TonhubConnector & TonWalletProvider & Function; + config: { + seed?: string; + appPublicKey?: string; + address?: string; + [x: string]: any; + }; +}; +export declare type TonNft = { + nftItemAddr: string; +}; +export declare type TonHelper = ChainNonceGet & + BalanceCheck & + PreTransfer & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ValidateAddress & { + XpNft: string; + } & { + tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; + tonHubWrapper: (args: TonArgs) => TonSigner; + tonWalletWrapper: (args: TonArgs) => TonSigner; + tonKeeperWrapper: (args: TonArgs) => TonSigner; + } & GetFeeMargins; +export declare type TonParams = { + tonweb: TonWeb; + notifier: EvNotifier; + bridgeAddr: string; + burnerAddr: string; + xpnftAddr: string; + feeMargin: FeeMargins; +}; +declare type MethodMap = { + ton_requestAccounts: [undefined, string]; + ton_sendTransaction: [ + { + value: string; + to: string; + data: Cell; + }, + unknown + ]; + ton_getBalance: [undefined, string]; +}; +declare type ResponseUnionType = boolean & + TonhubTransactionResponse & { + hash: string; + }; +declare type TonWallet = { + send( + method: M, + params: MethodMap[M][0] + ): Promise; + onSuccess?(): Function; + handleResponse(res: ResponseUnionType): Promise; +}; +export declare function tonHelper(args: TonParams): Promise; +export {}; +/** + * + * const ton = new TonWeb( + new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + }) + ); + + const trxs = await ton.provider.getTransactions( + "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", + 20 + ); + + console.log(trxs); + + let data = new Cell(); + console.log(data); + const dict = Cell.fromBoc( + Buffer.from( + "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", + "base64" + ) + )[0].hash(); + console.log("Hash: " + dict.toString("base64")); + */ +//# sourceMappingURL=ton.d.ts.map diff --git a/dist/helpers/ton.d.ts.map b/dist/helpers/ton.d.ts.map new file mode 100644 index 000000000..0f4ca60ca --- /dev/null +++ b/dist/helpers/ton.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/ton.js b/dist/helpers/ton.js new file mode 100644 index 000000000..a642b41fd --- /dev/null +++ b/dist/helpers/ton.js @@ -0,0 +1,347 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tonHelper = void 0; +const anchor_1 = require("@project-serum/anchor"); +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const tonweb_1 = __importDefault(require("tonweb")); +const ton_1 = require("ton"); +const consts_1 = require("../consts"); +const ton_bridge_1 = require("./ton-bridge"); +const emitter_1 = require("../emitter"); +const js_base64_1 = require("js-base64"); +const axios_1 = __importDefault(require("ton/node_modules/axios")); +async function tonHelper(args) { + const bridge = new ton_bridge_1.BridgeContract(args.tonweb.provider, { + address: args.bridgeAddr, + burner: args.burnerAddr, + }); + const ton = args.tonweb; + ton.provider.sendBoc = (b) => + ton.provider.send("sendBocReturnHash", { boc: b }); + async function waitTonTrx(exBodyMsg, value, address, msgType) { + console.log(exBodyMsg, "TON:exBodyMsg"); + let body = ""; + let stop = false; + let fastResolve; + const setStop = () => { + stop = true; + emitter_1.Emitter?.removeEventListener("cancel tonKeeper", setStop); + fastResolve(true); + throw new Error("User has declined transaction"); + }; + const noTrx = setTimeout(() => { + stop = true; + throw new Error("waitTonTrx timeout"); + }, 60 * 1000 * 20); + emitter_1.Emitter?.addEventListener("cancel tonKeeper", setStop); + await new Promise((r) => { + setTimeout(r, 10 * 1000); + }); + async function getUserTrxs(address) { + try { + await new Promise((r) => { + setTimeout(r, 30 * 1000); + }); + const trxs = await ton.provider.getTransactions(address, 20); + return trxs; + } catch (e) { + console.log(e, "new iterration 30 sec"); + return await getUserTrxs(address); + } + } + while (!body) { + console.log("TON:tring to find the trx..."); + if (stop) return; + //get last 20 trx of address + const timeout = setTimeout(() => { + throw new Error("TON: timeout when trying to send trx"); + }, 60 * 1000 * 10); + const trxs = await getUserTrxs(address); + if (trxs) { + clearTimeout(timeout); + } + //find body of the trx + body = trxs.find((trx) => { + const messages = trx[msgType]; + let message = ""; + let msgVal = ""; + message = Array.isArray(messages) + ? messages?.at(0)?.msg_data?.body + : messages?.msg_data?.body; + msgVal = Array.isArray(trx["out_msgs"]) + ? trx.out_msgs?.at(0)?.value + : trx["out_msgs"].value; + trx.utime * 1000 >= +new Date(Date.now() - 1000 * 60 * 5) && + console.log(trx.utime, "trx happend no more than 5 minutes ago"); + return message === exBodyMsg && msgVal === value; + })?.data; + } + clearTimeout(noTrx); + const dict = ton_1.Cell.fromBoc(Buffer.from(body, "base64"))[0].hash(); + const exHash = dict.toString("base64"); + console.log(exHash, "exHash"); + let trxData = undefined; + while (trxData === undefined) { + await new Promise((r) => setTimeout(r, 6 * 1000)); + const res = await (0, axios_1.default)( + `https://toncenter.com/api/index/getTransactionByHash?tx_hash=${encodeURIComponent( + exHash + )}&include_msg_body=true` + ).catch(() => undefined); + trxData = res?.data; + } + return trxData[0]["in_msg"].hash; + } + return { + preTransfer: () => Promise.resolve(true), + preUnfreeze: () => Promise.resolve(true), + getNonce: () => consts_1.Chain.TON, + XpNft: args.xpnftAddr, + async balance(address) { + return new bignumber_js_1.default(await ton.getBalance(address)); + }, + async estimateValidateTransferNft() { + return new bignumber_js_1.default(0); // TODO + }, + async estimateValidateUnfreezeNft() { + return new bignumber_js_1.default(0); // TODO + }, + async validateAddress(adr) { + return tonweb_1.default.Address.isValid(adr); + }, + getFeeMargin() { + return args.feeMargin; + }, + async transferNftToForeign(signer, chainNonce, to, nft, txFees, mintWith) { + const rSigner = signer.wallet || ton; + const txFeesFull = new anchor_1.BN(txFees.toString(10)).add( + tonweb_1.default.utils.toNano((Math.random() * 0.01).toFixed(7)) + ); + const nftFee = tonweb_1.default.utils.toNano("0.07"); + const payload = await bridge.createFreezeBody({ + amount: txFeesFull.sub(nftFee), + to: Buffer.from(to), + chainNonce, + mintWith: Buffer.from(mintWith), + }); + console.log(txFeesFull.toString(10), "val"); + console.log("TON:transferNftToForeign"); + console.log(nft.native.nftItemAddr); + const res = await rSigner.send("ton_sendTransaction", { + value: txFeesFull.toString(10), + to: nft.native.nftItemAddr, + data: payload, + }); + const hash = await rSigner.handleResponse(res); + await args.notifier.notifyTon(hash); + return hash; + }, + async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { + const rSigner = signer.wallet || ton; + const value = new anchor_1.BN(_txFees.toString(10)).add( + tonweb_1.default.utils.toNano((Math.random() * 0.01).toFixed(7)) + ); + const nftFee = tonweb_1.default.utils.toNano("0.05"); + const payload = await bridge.createWithdrawBody({ + to: new Uint8Array(Buffer.from(to)), + chainNonce: parseInt(chainNonce), + txFees: value.sub(nftFee), + }); + console.log(value.toString(10), "v"); + console.log(nft.native.nftItemAddr); + console.log("TON:unfreezeWrappedNft"); + const res = await rSigner.send("ton_sendTransaction", { + value: new anchor_1.BN(value).toString(10), + to: nft.native.nftItemAddr, + data: payload, + }); + const hash = await rSigner.handleResponse(res); + await args.notifier.notifyTon(hash); + return hash; + }, + tonKeeperWrapper(args) { + console.log(args, "args"); + let payload = ""; + let value = ""; + const tonHub = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + payload = (0, js_base64_1.fromUint8Array)( + await params.data.toBoc(false) + ); + value = params.value; + return args.wallet.send( + `https://app.tonkeeper.com/transfer/${ + params.to + }?amount=${new anchor_1.BN(value).toString( + 10 + )}&bin=${encodeURIComponent(payload)}&open=1` + ); + //! + default: + return null; + } + }, + async handleResponse(res) { + console.log(res); + const result = await waitTonTrx( + payload, + value, + args.config.address, + "out_msgs" + ); + args.wallet.onSuccess && args.wallet.onSuccess(); + return result; + }, + }; + return { + wallet: tonHub, + accIdx: 0, + }; + }, + tonWalletWrapper(args) { + let payload = ""; + let value = ""; + const tonHub = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + value = params.value; + payload = (0, js_base64_1.fromUint8Array)( + await params.data.toBoc(false) + ); + console.log(payload, "payload"); + return await args.wallet.send("ton_sendTransaction", [ + { + to: params.to, + value, + dataType: "boc", + data: payload, + }, + ]); + default: + return null; + } + }, + async handleResponse(res) { + return ( + res && + (await waitTonTrx(payload, value, args.config.address, "out_msgs")) + ); + }, + }; + return { + wallet: tonHub, + accIdx: 0, + }; + }, + tonHubWrapper(args) { + let value = ""; + const tonHub = { + async send(method, params) { + switch (method) { + case "ton_sendTransaction": + value = new anchor_1.BN(params.value).toString(); + return await args.wallet.requestTransaction({ + seed: args.config.seed, + appPublicKey: args.config.appPublicKey, + to: params.to, + value, + timeout: 5 * 60 * 1000, + text: `ton_sendTransaction to ${params.to}`, + payload: (0, js_base64_1.fromUint8Array)( + await params.data.toBoc(false) + ), + }); + default: + return null; + } + }, + async handleResponse(res) { + if (res.type === "success" && res.response != undefined) { + return await waitTonTrx( + res.response, + value, + args.config.address, + "in_msg" + ); + } else { + throw new Error(`TonHub:${res.type}`); + } + }, + }; + return { + wallet: tonHub, + accIdx: 0, + }; + }, + tonKpWrapper(kp) { + const wallet = new tonweb_1.default.Wallets.all.v3R2(ton.provider, { + publicKey: kp.publicKey, + wc: 0, + }); + const wWallet = { + async send(method, params) { + switch (method) { + case "ton_getBalance": + return await ton.getBalance(await wallet.getAddress()); + case "ton_requestAccounts": + return [await wallet.getAddress()]; + case "ton_sendTransaction": + return await wallet.methods + .transfer({ + secretKey: kp.secretKey, + toAddress: params.to, + amount: new anchor_1.BN(params.value), + seqno: (await wallet.methods.seqno().call()) || 0, + sendMode: 3, + payload: params.data, + }) + .send(); + } + }, + async handleResponse(res) { + return res.hash; + }, + }; + return { + wallet: wWallet, + accIdx: 0, + }; + }, + }; +} +exports.tonHelper = tonHelper; +/** + * + * const ton = new TonWeb( + new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { + apiKey: + "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", + }) + ); + + const trxs = await ton.provider.getTransactions( + "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", + 20 + ); + + console.log(trxs); + + let data = new Cell(); + console.log(data); + const dict = Cell.fromBoc( + Buffer.from( + "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", + "base64" + ) + )[0].hash(); + console.log("Hash: " + dict.toString("base64")); + */ +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEyQztBQUMzQyxnRUFBcUM7QUFDckMsb0RBQTRCO0FBRzVCLDZCQUFvQztBQUNwQyxzQ0FBa0M7QUFlbEMsNkNBQThDO0FBRTlDLHdDQUFxQztBQUdyQyx5Q0FBMkM7QUFDM0MsbUVBQTJDO0FBc0VwQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQWU7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUM7SUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBOEI7UUFFOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLFdBQWdCLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixpQkFBTyxFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lB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 diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts new file mode 100644 index 000000000..06b4aa487 --- /dev/null +++ b/dist/helpers/tron.d.ts @@ -0,0 +1,115 @@ +import { + BalanceCheck, + EstimateTxFees, + FeeMargins, + GetFeeMargins, + MintNft, + TransferNftForeign, + UnfreezeForeignNft, +} from "./chain"; +import { TronWeb } from "tronweb"; +import { EthNftInfo, MintArgs } from "./web3"; +import { + Approve, + ExtractAction, + ExtractTxnStatus, + IsApproved, + PreTransfer, + PreTransferRawTxn, + ValidateAddress, + WhitelistCheck, + GetTokenURI, +} from ".."; +import { ChainNonceGet } from ".."; +import { EvNotifier } from "../notifier"; +declare type TronSender = string | undefined; +export declare type MinterRes = { + minter: string; + xpnft: string; + xpnft1155: string; + whitelist: string[]; +}; +export declare type BaseTronHelper = BalanceCheck & + MintNft & { + /** + * + * Deploy an ERC721 user minter smart contract + * + * @argument deployer deployer of this smart contract + * @returns Address of the deployed smart contract + */ + deployErc721(deployer: TronSender): Promise; + /** + * Deploy Minter Smart Contract + * + * @argument deployer deployer of the smart contract + * @argument frostGroupKey FROST SECP256k1 Group Key + * @argument xpnftPrefix XP Wrapped NFT backend with "/" suffix + * @argument xpnftPrefix1155 XP Wrapped NFT Backend in erc1155 format (with {id}) + * @argument whitelist List of NFTs to whitelist + */ + deployMinter( + deployer: TronSender, + frostGroupKey: string, + xpnftPrefix: string, + xpnftPrefix1155: string, + whitelist?: string[] + ): Promise; + }; +export declare type TronHelper = BaseTronHelper & + TransferNftForeign & + UnfreezeForeignNft & + EstimateTxFees & + ChainNonceGet & + Approve & + ValidateAddress & + IsApproved & + ExtractAction & + Pick, "preTransfer"> & + PreTransferRawTxn & + ExtractTxnStatus & + WhitelistCheck & { + XpNft: string; + XpNft1155: string; + } & GetFeeMargins & + GetTokenURI; +export declare function baseTronHelperFactory( + provider: TronWeb +): Promise; +export interface TronParams { + provider: TronWeb; + notifier: EvNotifier; + minter_addr: string; + erc721_addr: string; + erc1155_addr: string; + validators: string[]; + feeMargin: FeeMargins; +} +export interface TronRawTxn { + readonly visible: boolean; + readonly txID: string; + readonly raw_data: { + readonly ref_block_bytes: string; + readonly ref_block_hash: string; + expiration: number; + readonly fee_limit: number; + readonly timestamp: number; + readonly contract: { + readonly parameter: { + readonly value: { + readonly data: string; + readonly owner_address: string; + readonly contract_address: string; + }; + readonly type_url: string; + }; + readonly type: string; + }[]; + }; + readonly raw_data_hex: string; +} +export declare function tronHelperFactory( + tronParams: TronParams +): Promise; +export {}; +//# sourceMappingURL=tron.d.ts.map diff --git a/dist/helpers/tron.d.ts.map b/dist/helpers/tron.d.ts.map new file mode 100644 index 000000000..626b89f0a --- /dev/null +++ b/dist/helpers/tron.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/helpers/tron.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAS9C,OAAO,EACL,OAAO,EAEP,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,iBAAiB,EAEjB,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,aAAa,EAAW,MAAM,IAAI,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,aAAK,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAErC,oBAAY,SAAS,GAAG;IAEtB,MAAM,EAAE,MAAM,CAAC;IAEf,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,EAAE,MAAM,CAAC;IAElB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,oBAAY,cAAc,GAAG,YAAY,GACvC,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG;IACtC;;;;;;OAMG;IACH,YAAY,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD;;;;;;;;OAQG;IACH,YAAY,CACV,QAAQ,EAAE,UAAU,EACpB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,SAAS,CAAC,CAAC;CACvB,CAAC;AAEJ,oBAAY,UAAU,GAAG,cAAc,GACrC,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,GAClD,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,GAClD,cAAc,CAAC,UAAU,CAAC,GAC1B,aAAa,GACb,OAAO,CAAC,UAAU,CAAC,GACnB,eAAe,GACf,UAAU,CAAC,UAAU,CAAC,GACtB,aAAa,CAAC,MAAM,CAAC,GACrB,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAC3E,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,GACzC,gBAAgB,GAChB,cAAc,CAAC,UAAU,CAAC,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,GACjB,WAAW,CAAC;AAEd,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,cAAc,CAAC,CAmGzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,EAAE;YACjB,QAAQ,CAAC,SAAS,EAAE;gBAClB,QAAQ,CAAC,KAAK,EAAE;oBACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;oBACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;oBAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;iBACnC,CAAC;gBACF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;aAC3B,CAAC;YACF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SACvB,EAAE,CAAC;KACL,CAAC;IACF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,CAAC,CAmPrB"} \ No newline at end of file diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js new file mode 100644 index 000000000..0563084c7 --- /dev/null +++ b/dist/helpers/tron.js @@ -0,0 +1,300 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.tronHelperFactory = exports.baseTronHelperFactory = void 0; +const bignumber_js_1 = require("bignumber.js"); +const ethers_1 = require("ethers"); +const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); +const __1 = require(".."); +async function baseTronHelperFactory(provider) { + const setSigner = (signer) => { + return signer && provider.setPrivateKey(signer); + }; + const deployErc721_i = async (deployer) => { + setSigner(deployer); + const contract = await provider.contract().new({ + abi: xpnet_web3_contracts_1.UserNftMinter__factory.abi, + bytecode: xpnet_web3_contracts_1.UserNftMinter__factory.bytecode, + feeLimit: 3000000000, + }); + return contract; + }; + const deployXpNft = async (deployer, nftPrefix) => { + setSigner(deployer); + const contract = await provider.contract().new({ + abi: xpnet_web3_contracts_1.XPNft__factory.abi, + bytecode: xpnet_web3_contracts_1.XPNft__factory.bytecode, + feeLimit: 3000000000, + parameters: ["XPNFT", "XPNFT", nftPrefix], + }); + return contract; + }; + const deployXpNft1155 = async (deployer, nftPrefix) => { + setSigner(deployer); + const contract = await provider.contract().new({ + abi: xpnet_web3_contracts_1.XPNft1155__factory.abi, + bytecode: xpnet_web3_contracts_1.XPNft1155__factory.bytecode, + feeLimit: 3000000000, + parameters: [nftPrefix], + }); + return contract; + }; + return { + async mintNft(owner, options) { + setSigner(owner); + const erc = await provider.contract( + xpnet_web3_contracts_1.UserNftMinter__factory.abi, + options.contract + ); + const res = await erc.mint(options.uri).send(); + return res; + }, + async balance(address) { + const balance = await provider.trx.getBalance(address); + return new bignumber_js_1.BigNumber(balance); + }, + deployErc721: async (owner) => + await deployErc721_i(owner).then((c) => c.address), + async deployMinter( + deployer, + frostGroupKey, + xpnftPrefix, + xpnftPrefix1155, + whitelist = [] + ) { + if (whitelist.length == 0) { + const unft = await deployErc721_i(deployer); + console.log(provider.address.fromHex(unft.address)); + whitelist.push(provider.address.fromHex(unft.address)); + } + const gk = Buffer.from(frostGroupKey, "hex"); + const gkx = ethers_1.BigNumber.from(`0x${gk.slice(1).toString("hex")}`); + // gkyp is either 0 or 1 + const gkyp = ethers_1.BigNumber.from(`0x${gk[0] & 1}`); + const erc721 = await deployXpNft(deployer, xpnftPrefix); + const erc1155 = await deployXpNft1155(deployer, xpnftPrefix1155); + const minter = await provider.contract().new({ + abi: xpnet_web3_contracts_1.Minter__factory.abi, + bytecode: xpnet_web3_contracts_1.Minter__factory.bytecode, + feeLimit: 6000000000, + parameters: [gkx, gkyp, whitelist], + }); + await erc721.transferOwnership(minter.address).send(); + await erc1155.transferOwnership(minter.address).send(); + const minterAddress = provider.address.fromHex(minter.address); + const erc721Address = provider.address.fromHex(erc721.address); + const erc1155Address = provider.address.fromHex(erc1155.address); + return { + minter: minterAddress, + xpnft: erc721Address, + xpnft1155: erc1155Address, + whitelist, + }; + }, + }; +} +exports.baseTronHelperFactory = baseTronHelperFactory; +async function tronHelperFactory(tronParams) { + const { provider, minter_addr } = tronParams; + // const station = new TronStation(provider); + const base = await baseTronHelperFactory(provider); + const minter = await provider.contract( + xpnet_web3_contracts_1.Minter__factory.abi, + minter_addr + ); + const setSigner = (signer) => { + return signer && provider.setPrivateKey(signer); + }; + async function notifyValidator(hash) { + await tronParams.notifier.notifyTron(hash); + } + async function extractAction(hash) { + await new Promise((r) => setTimeout(r, 10000)); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const getEv = async (retries = 0) => { + const res = await provider.getEventByTransactionID(hash); + if (res.length !== 0) { + return res; + } + if (retries > 15) { + throw Error("Couldn't fetch transaction after more than 15 retries!"); + } + await new Promise((r) => setTimeout(r, 3000)); + return getEv(retries + 1); + }; + const evs = await getEv(); + const ev = evs.find((e) => e?.contract == minter_addr); + const action_id = ev.result["actionId"].toString(); + return action_id; + } + // const _randomAction = () => + // Math.floor( + // Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000) + // ).toString(); + // async function _estimateGas( + // addrs: string[], + // func_sig: string, + // params: { type: string; value: any }[] + // ): Promise { + // let energy = 0; + // let bandwidth = 0; + // const nrgSun = await station.energy.burnedEnergy2Trx(1, { unit: "sun" }); + // const bandSun = 10; + // for (const [i, addr] of addrs.entries()) { + // const res = await provider.transactionBuilder.triggerConstantContract( + // minter.address, + // func_sig, + // {}, + // params, + // provider.address.toHex(addr) + // ); + // let nrg: number = res["energy_used"]; + // if (i == addrs.length - 1 && addrs.length != 1) nrg *= 2; + // energy += nrg; + // const tx_raw: string = res["transaction"]["raw_data_hex"]; + // bandwidth += tx_raw.length; + // } + // // Fee = energy * (sun per energy) + bandwidth * (sun per bandwidth) + // // bandwidth = raw tx byte length + // const fee = new BigNumber(energy).times(nrgSun).plus(bandwidth * bandSun); + // return fee; + // } + const isApprovedForMinter = async (id, _sender) => { + const erc = await provider.contract( + xpnet_web3_contracts_1.UserNftMinter__factory.abi, + id.native.contract + ); + const approvedAddress = await erc.getApproved(id.native.tokenId).call({ + from: tronParams.provider.defaultAddress.base58, + }); + if (approvedAddress === minter_addr) { + return true; + } + return false; + }; + const approveForMinter = async (id, sender) => { + await setSigner(sender); + const erc = await provider.contract( + xpnet_web3_contracts_1.UserNftMinter__factory.abi, + id.native.contract + ); + const isApproved = await isApprovedForMinter(id, sender); + if (isApproved) { + return undefined; + } + const txHash = await erc.approve(minter_addr, id.native.tokenId).send(); + return txHash; + }; + const addMinToExpirationTime = (txn, minutes) => { + const expiration = txn.raw_data.expiration; + const newExpiration = new Date(expiration).getTime() + minutes * 60000; + txn.raw_data.expiration = newExpiration; + return txn; + }; + return { + ...base, + extractAction, + XpNft1155: tronParams.erc721_addr, + XpNft: tronParams.erc721_addr, + getFeeMargin() { + return tronParams.feeMargin; + }, + approveForMinter, + preTransfer: (s, nft, _fee) => approveForMinter(nft, s), + async preTransferRawTxn(nft, address, _value) { + await setSigner(address); + const isApproved = await isApprovedForMinter(nft, address); + if (isApproved) { + return undefined; + } + const { transaction, result } = + await provider.transactionBuilder.triggerSmartContract( + nft.native.contract, + "approve(address,uint256)", + { + feeLimit: 1000000, + callValue: 0, + }, + [ + { + type: "address", + value: minter_addr, + }, + { + type: "uint256", + value: nft.native.tokenId, + }, + ], + address + ); + if (!result.result) { + throw new Error(result.toString()); + } + return addMinToExpirationTime(transaction, 15); + }, + isApprovedForMinter, + async extractTxnStatus(txnHash) { + const txn = await provider.trx.getConfirmedTransaction(txnHash); + const status = txn["ret"][0]["contractRet"]; + if (status === "SUCCESS") { + return __1.TransactionStatus.SUCCESS; + } else if (status === "FAIL") { + return __1.TransactionStatus.FAILURE; + } + return __1.TransactionStatus.PENDING; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + setSigner(sender); + const res = await minter + .withdrawNft(to, nonce, id.native.tokenId, id.native.contract) + .send({ callValue: ethers_1.BigNumber.from(txFees.toFixed(0)) }); + await notifyValidator(res); + return res; + }, + getNonce() { + return __1.Chain.TRON; + }, + async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { + setSigner(sender); + await approveForMinter(id, sender); + const txr = await minter + .freezeErc721( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith + ) + .send({ callValue: ethers_1.BigNumber.from(txFees.toFixed(0)) }); + await notifyValidator(txr); + return txr; + }, + async estimateValidateTransferNft(_to, _nftUri) { + return new bignumber_js_1.BigNumber(0); // TODO + }, + async estimateValidateUnfreezeNft(_to, _nft) { + return new bignumber_js_1.BigNumber(0); // TODO + }, + async validateAddress(adr) { + return provider.isAddress(adr); + }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract).call({ + from: tronParams.provider.defaultAddress.base58, + }); + }, + // const minter = await provider.contract(Minter__factory.abi, minter_addr); + async getTokenURI(contract, tokenId) { + return ""; + if (provider.isAddress(contract) && tokenId) { + const _contract = await provider.contract( + xpnet_web3_contracts_1.UserNftMinter__factory.abi, + contract + ); + return await _contract.tokenURI(+tokenId).call(); + } + return ""; + }, + }; +} +exports.tronHelperFactory = tronHelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQXlDO0FBZ0J6QyxtQ0FBNEM7QUFFNUMsK0RBSzhCO0FBQzlCLDBCQVlZO0FBZ0VMLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFrQixFQUFFLEVBQUU7UUFDdkMsT0FBTyxNQUFNLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsUUFBb0IsRUFBRSxFQUFFO1FBQ3BELFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLDZDQUFzQixDQUFDLEdBQUc7WUFDL0IsUUFBUSxFQUFFLDZDQUFzQixDQUFDLFFBQVE7WUFDekMsUUFBUSxFQUFFLFVBQVU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLFFBQW9CLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ3BFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLHFDQUFjLENBQUMsR0FBRztZQUN2QixRQUFRLEVBQUUscUNBQWMsQ0FBQyxRQUFRO1lBQ2pDLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1NBQzFDLENBQUMsQ0FBQztRQUVILE9BQU8s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 diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts new file mode 100644 index 000000000..aea599b09 --- /dev/null +++ b/dist/helpers/web3.d.ts @@ -0,0 +1,199 @@ +/** + * Web3 Implementation for cross chain traits + * @module + */ +import BigNumber from "bignumber.js"; +import { + BalanceCheck, + EstimateTxFeesBatch, + FeeMargins, + GetFeeMargins, + GetProvider, + IsContractAddress, + MintNft, + TransferNftForeign, + TransferNftForeignBatch, + UnfreezeForeignNft, + UnfreezeForeignNftBatch, + ParamsGetter, +} from "./chain"; +import { + ContractTransaction, + ethers, + PopulatedTransaction, + providers, + Signer, + Wallet, +} from "ethers"; +import { Provider, TransactionResponse } from "@ethersproject/providers"; +import { + Erc1155Minter, + Erc1155Minter__factory, + UserNftMinter, + UserNftMinter__factory, +} from "xpnet-web3-contracts"; +import { + ChainNonceGet, + EstimateTxFees, + ExtractAction, + ExtractTxnStatus, + GetTokenURI, + NftInfo, + PreTransfer, + PreTransferRawTxn, + ValidateAddress, + WhitelistCheck, +} from ".."; +import { ChainNonce } from "../type-utils"; +import { EvNotifier } from "../notifier"; +/** + * Information required to perform NFT transfers in this chain + */ +export declare type EthNftInfo = { + chainId: string; + tokenId: string; + owner: string; + uri: string; + contract: string; + contractType: "ERC721" | "ERC1155"; +}; +/** + * Arguments required for minting a new nft + * + * contract: address of the sc + * token: token ID of the newly minted nft + * owner: Owner of the newly minted nft + * uri: uri of the nft + */ +export declare type MintArgs = { + contract: string; + uri: string; +}; +export interface IsApproved { + isApprovedForMinter( + address: NftInfo, + sender: Sender, + txFee: BigNumber, + gasPrice?: ethers.BigNumber + ): Promise; +} +export interface Approve { + approveForMinter( + address: NftInfo, + sender: Sender, + txFee: BigNumber, + gasPrice?: ethers.BigNumber + ): Promise; +} +declare type NullableCustomData = Record | undefined; +/** + * Base util traits + */ +export declare type BaseWeb3Helper = BalanceCheck & + /** + * Mint an nft in the given ERC1155 smart contract + * + * @argument signer owner of the smart contract + * @argument args See [[MintArgs]] + */ MintNft & { + /** + * Deploy an ERC721 smart contract + * + * @argument owner Owner of this smart contract + * @returns Address of the deployed smart contract + */ + deployErc721(owner: Signer): Promise; + } & { + mintNftErc1155( + owner: Signer, + options: MintArgs + ): Promise; + }; +declare type ExtraArgs = { + gasPrice: ethers.BigNumber; +}; +/** + * Traits implemented by this module + */ +export declare type Web3Helper = BaseWeb3Helper & + TransferNftForeign & + UnfreezeForeignNft & + TransferNftForeignBatch & + UnfreezeForeignNftBatch & + EstimateTxFees & + EstimateTxFeesBatch & + ChainNonceGet & + IsApproved & + Approve & + ValidateAddress & + ExtractAction & { + createWallet(privateKey: string): Wallet; + } & Pick, "preTransfer"> & + PreTransferRawTxn & + ExtractTxnStatus & + GetProvider & { + XpNft: string; + XpNft1155: string; + } & WhitelistCheck & + GetFeeMargins & + IsContractAddress & + GetTokenURI & + ParamsGetter; +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +export declare function baseWeb3HelperFactory( + provider: Provider, + nonce: number +): Promise; +/** + * Create an object implementing cross chain utilities for a web3 chain + * + * @param provider An ethers.js provider object + * @param minter_addr Address of the minter smart contract + * @param minter_abi ABI of the minter smart contract + */ +export interface Web3Params { + provider: Provider; + notifier: EvNotifier; + minter_addr: string; + erc721_addr: string; + erc1155_addr: string; + erc721Minter: string; + erc1155Minter: string; + nonce: ChainNonce; + feeMargin: FeeMargins; +} +declare type NftMethodVal = { + freeze: "freezeErc1155" | "freezeErc721"; + validateUnfreeze: "validateUnfreezeErc1155" | "validateUnfreezeErc721"; + umt: typeof Erc1155Minter__factory | typeof UserNftMinter__factory; + approved: ( + umt: T, + sender: string, + minterAddr: string, + tok: string, + customData: NullableCustomData + ) => Promise; + approve: ( + umt: T, + forAddr: string, + tok: string, + txnUp: (tx: PopulatedTransaction) => Promise, + customData: NullableCustomData, + gasPrice: ethers.BigNumberish | undefined + ) => Promise; +}; +declare type EthNftMethodVal = NftMethodVal; +declare type NftMethodMap = Record< + "ERC1155" | "ERC721", + EthNftMethodVal | EthNftMethodVal +>; +export declare const NFT_METHOD_MAP: NftMethodMap; +export declare function web3HelperFactory( + params: Web3Params +): Promise; +export {}; +//# sourceMappingURL=web3.d.ts.map diff --git a/dist/helpers/web3.d.ts.map b/dist/helpers/web3.d.ts.map new file mode 100644 index 000000000..5cdeffe98 --- /dev/null +++ b/dist/helpers/web3.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/helpers/web3.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js new file mode 100644 index 000000000..b7c0cbffa --- /dev/null +++ b/dist/helpers/web3.js @@ -0,0 +1,529 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.web3HelperFactory = + exports.NFT_METHOD_MAP = + exports.baseWeb3HelperFactory = + void 0; +/** + * Web3 Implementation for cross chain traits + * @module + */ +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const ethers_1 = require("ethers"); +const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); +const __1 = require(".."); +const axios_1 = __importDefault(require("axios")); +const hethers_1 = require("@hashgraph/hethers"); +hethers_1.hethers.providers.BaseProvider.prototype.getGasPrice = async () => { + return ethers_1.BigNumber.from("1"); +}; +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +async function baseWeb3HelperFactory(provider, nonce) { + const w3 = provider; + return { + async balance(address) { + const bal = await w3.getBalance(address); + // ethers BigNumber is not compatible with our bignumber + return new bignumber_js_1.default(bal.toString()); + }, + async deployErc721(owner) { + const factory = new xpnet_web3_contracts_1.UserNftMinter__factory(owner); + const contract = await factory.deploy(); + return contract.address; + }, + async mintNftErc1155(owner, { contract }) { + const erc1155 = xpnet_web3_contracts_1.Erc1155Minter__factory.connect( + contract, + owner + ); + const tx = await erc1155.mintNft(await owner.getAddress()); + return tx; + }, + async mintNft(owner, { contract, uri }) { + const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + contract, + owner + ); + const txm = await erc721 + .mint(uri, { gasLimit: 1000000 }) + .catch(async (e) => { + if (nonce === 33) { + let tx; + while (!tx) { + tx = await provider.getTransaction(e["returnedHash"]); + } + return tx; + } + throw e; + }); + return txm; + }, + }; +} +exports.baseWeb3HelperFactory = baseWeb3HelperFactory; +exports.NFT_METHOD_MAP = { + ERC1155: { + freeze: "freezeErc1155", + validateUnfreeze: "validateUnfreezeErc1155", + umt: xpnet_web3_contracts_1.Erc1155Minter__factory, + approved: (umt, sender, minterAddr, _tok, customData) => { + return umt.isApprovedForAll(sender, minterAddr, { + gasLimit: "85000", + customData, + }); + }, + approve: async (umt, forAddr, _tok, txnUp, customData) => { + const tx = await umt.populateTransaction.setApprovalForAll( + forAddr, + true, + { + gasLimit: "85000", + customData, + } + ); + await txnUp(tx); + return await umt.signer.sendTransaction(tx); + }, + }, + ERC721: { + freeze: "freezeErc721", + validateUnfreeze: "validateUnfreezeErc721", + umt: xpnet_web3_contracts_1.UserNftMinter__factory, + approved: async (umt, _, minterAddr, tok, customData) => { + return ( + ( + await umt.getApproved(tok, { + gasLimit: "85000", + customData, + //@ts-ignore + }) + ).toLowerCase() == minterAddr.toLowerCase() + ); + }, + approve: async (umt, forAddr, tok, txnUp) => { + const tx = await umt.populateTransaction.approve(forAddr, tok, { + gasLimit: "85000", + }); + await txnUp(tx); + return await umt.signer.sendTransaction(tx); + }, + }, +}; +async function web3HelperFactory(params) { + const txnUnderpricedPolyWorkaround = + params.nonce == 7 + ? async (utx) => { + const res = await axios_1.default + .get( + "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" + ) + .catch(async () => { + return await axios_1.default.get( + "https://gasstation-mainnet.matic.network/v2" + ); + }); + const { result, fast } = res.data; + const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; + if (trackerGas) { + const sixtyGwei = ethers_1.ethers.utils.parseUnits( + Math.ceil(trackerGas).toString(), + "gwei" + ); + utx.maxFeePerGas = sixtyGwei; + utx.maxPriorityFeePerGas = sixtyGwei; + } + } + : () => Promise.resolve(); + const w3 = params.provider; + const { minter_addr, provider } = params; + const minter = xpnet_web3_contracts_1.Minter__factory.connect( + minter_addr, + provider + ); + async function notifyValidator( + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ) { + await params.notifier.notifyWeb3( + params.nonce, + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ); + } + //@ts-ignore + async function getTransaction(hash) { + let trx; + let fails = 0; + while (!trx && fails < 7) { + trx = await provider.getTransaction(hash); + await new Promise((resolve) => + setTimeout(() => resolve("wait"), 5000 + fails * 2) + ); + fails++; + } + return trx; + } + async function extractAction(txr) { + const receipt = await txr.wait(); + const log = receipt.logs.find((log) => log.address === minter.address); + if (log === undefined) { + throw Error("Couldn't extract action_id"); + } + const evdat = minter.interface.parseLog(log); + const action_id = evdat.args[0].toString(); + return action_id; + } + const isApprovedForMinter = async (id, signer) => { + const erc = exports.NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + signer + ); + const toApprove = + params.nonce !== 0x1d + ? minter_addr + : id.native.uri.includes("herokuapp.com") + ? params.minter_addr + : params.erc721_addr; + return await exports.NFT_METHOD_MAP[id.native.contractType].approved( + erc, + await signer.getAddress(), + toApprove, + id.native.tokenId, + params.nonce === 0x1d ? {} : undefined + ); + }; + const approveForMinter = async (id, sender, _txFees, gasPrice) => { + const isApproved = await isApprovedForMinter(id, sender); + if (isApproved) { + return undefined; + } + const erc = exports.NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + sender + ); + const toApprove = + params.nonce !== 0x1d + ? minter_addr + : id.native.uri.includes("herokuapp.com") + ? params.minter_addr + : params.erc721_addr; + const receipt = await exports.NFT_METHOD_MAP[ + id.native.contractType + ].approve( + erc, + toApprove, + id.native.tokenId, + txnUnderpricedPolyWorkaround, + params.nonce === 0x1d ? {} : undefined, + gasPrice + ); + await receipt.wait(); + return receipt.hash; + }; + const base = await baseWeb3HelperFactory(params.provider, params.nonce); + return { + ...base, + XpNft: params.erc721_addr, + XpNft1155: params.erc1155_addr, + getParams: () => params, + approveForMinter, + getProvider: () => provider, + async estimateValidateUnfreezeNft(_to, _id, _mW) { + const gas = await provider.getGasPrice(); + return new bignumber_js_1.default(gas.mul(150000).toString()); + }, + getFeeMargin() { + return params.feeMargin; + }, + isApprovedForMinter, + preTransfer: (s, id, fee, args) => + approveForMinter(id, s, fee, args?.gasPrice), + extractAction, + async isContractAddress(address) { + const code = await provider.getCode(address); + return code !== "0x"; + }, + getNonce: () => params.nonce, + async preTransferRawTxn(id, address, _value) { + const isApproved = await isApprovedForMinter( + id, + new ethers_1.VoidSigner(address, provider) + ); + if (isApproved) { + return undefined; + } + const erc = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + id.native.contract, + new ethers_1.VoidSigner(address, provider) + ); + const approvetxn = await erc.populateTransaction.approve( + minter_addr, + id.native.tokenId + ); + return approvetxn; + }, + async extractTxnStatus(txn) { + const status = (await (await provider.getTransaction(txn)).wait()).status; + if (status === undefined) { + return __1.TransactionStatus.PENDING; + } + if (status === 1) { + return __1.TransactionStatus.SUCCESS; + } else if (status === 0) { + return __1.TransactionStatus.FAILURE; + } + return __1.TransactionStatus.UNKNOWN; + }, + async getTokenURI(contract, tokenId) { + if (ethers_1.ethers.utils.isAddress(contract) && tokenId) { + const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + contract, + provider + ); + //const erc1155 = Erc1155Minter__factory.connect(contract!, provider) + //erc1155.uri() + return await erc721.tokenURI(tokenId).catch(() => ""); + } + return ""; + }, + async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { + const tx = await minter + .connect(signer) + .populateTransaction.withdrawNftBatch( + to, + chainNonce, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + nfts[0].native.contract, + { + value: ethers_1.BigNumber.from(txFees.toFixed(0)), + } + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + // await notifyValidator( + // res.hash, + // await extractAction(res), + // "Unfreeze", + // chainNonce.toString(), + // txFees.toString(), + // await signer.getAddress(), + // to, + // res.data + // ); + await notifyValidator(res.hash); + return res; + }, + async transferNftBatchToForeign( + signer, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const tx = await minter + .connect(signer) + .populateTransaction.freezeErc1155Batch( + nfts[0].native.contract, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + chainNonce, + to, + mintWith, + { + value: ethers_1.BigNumber.from(txFees.toFixed(0)), + } + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + await notifyValidator(res.hash); + return res; + }, + async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { + const gasPrice = await w3.getGasPrice(); + const gas = 40000 + 60000 * nfts.length; + return new bignumber_js_1.default(gasPrice.mul(gas).toString()); + }, + async estimateValidateUnfreezeNftBatch(_to, nfts) { + const gasPrice = await w3.getGasPrice(); + const gas = 40000 + 60000 * nfts.length; + return new bignumber_js_1.default(gasPrice.mul(gas).toString()); + }, + createWallet(privateKey) { + return new ethers_1.Wallet(privateKey, provider); + }, + async transferNftToForeign( + sender, + chain_nonce, + to, + id, + txFees, + mintWith, + gasLimit = undefined, + gasPrice + ) { + await approveForMinter(id, sender, txFees, gasPrice); + const method = exports.NFT_METHOD_MAP[id.native.contractType].freeze; + // Chain is Hedera + if (params.nonce === 0x1d) { + id.native.tokenId = ethers_1.ethers.utils.solidityPack( + ["uint160", "int96"], + [id.collectionIdent, id.native.tokenId] + ); + id.native.contract = params.erc721_addr; + } + const tx = await minter + .connect(sender) + .populateTransaction[method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + { + value: ethers_1.BigNumber.from(txFees.toFixed(0)), + gasLimit, + gasPrice, + } + ); + await txnUnderpricedPolyWorkaround(tx); + const txr = await sender.sendTransaction(tx).catch((e) => { + if (params.nonce === 33) { + return e; + } else throw e; + }); + let txHash; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = txr["transactionId"]; + } else if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = txr["returnedHash"] || txr.hash; + } else { + //@ts-ignore checked normal evm + txHash = txr.hash; + } + await notifyValidator( + //@ts-ignore + txHash + ); + if (params.nonce === 33) { + return await provider.getTransaction(txHash); + } + return txr; + }, + async unfreezeWrappedNft( + sender, + to, + id, + txFees, + nonce, + gasLimit = undefined, + gasPrice + ) { + await approveForMinter(id, sender, txFees, gasPrice); + // Chain is Hedera + if (params.nonce === 0x1d) { + id.native.tokenId = ethers_1.ethers.utils.solidityPack( + ["uint160", "int96"], + [ethers_1.BigNumber.from(id.collectionIdent), id.native.tokenId] + ); + id.native.contract = params.erc721_addr; + } + const txn = await minter + .connect(sender) + .populateTransaction.withdrawNft( + to, + nonce, + id.native.tokenId, + id.native.contract, + { + value: ethers_1.BigNumber.from(txFees.toFixed(0)), + gasLimit, + gasPrice, + } + ); + await txnUnderpricedPolyWorkaround(txn); + const res = await sender.sendTransaction(txn); + console.log(res, "res"); + let txHash; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = res["transactionId"]; + } else if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = res["returnedHash"] || res.hash; + } else { + //@ts-ignore checked normal evm + txHash = res.hash; + } + await notifyValidator(txHash); + if (params.nonce === 33) { + return await provider.getTransaction(txHash); + } + return res; + }, + async estimateValidateTransferNft(_to, _nftUri, _mintWith) { + const gas = await provider.getGasPrice(); + return new bignumber_js_1.default(gas.mul(150000).toString()); + }, + async estimateContractDep(toChain) { + try { + console.log("NEED TO DEPLOY CONTRACT"); + const gas = await provider.getGasPrice(); + const pro = toChain.getProvider(); + const wl = ["0x47Bf0dae6e92e49a3c95e5b0c71422891D5cd4FE"]; + const gk = 123; + const gkx = 42; + const factory = new ethers_1.ethers.ContractFactory( + xpnet_web3_contracts_1.Minter__factory.abi, + xpnet_web3_contracts_1.Minter__factory.bytecode + ); + const estimateGas = await pro.estimateGas( + factory.getDeployTransaction(gk, gkx, wl) + ); + const contractFee = gas.mul(estimateGas); + const sum = new bignumber_js_1.default(contractFee.toString()); + return sum; + } catch (error) { + console.log(error.message); + const gas = await provider.getGasPrice(); + return new bignumber_js_1.default(gas.mul(150000).toString()); + } + }, + validateAddress(adr) { + return Promise.resolve(ethers_1.ethers.utils.isAddress(adr)); + }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract); + }, + }; +} +exports.web3HelperFactory = web3HelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBZXJDLG1DQVNnQjtBQUVoQiwrREFNOEI7QUFDOUIsMEJBWVk7QUFHWixrREFBMEI7QUFDMUIsZ0RBQTZDO0FBNEM3QyxpQkFBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNoRSxPQUFPLGtCQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQTBERjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQixFQUNsQixLQUFhO0lBRWIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxD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 diff --git a/dist/helpers/web3_erc20.d.ts b/dist/helpers/web3_erc20.d.ts new file mode 100644 index 000000000..6d86156bd --- /dev/null +++ b/dist/helpers/web3_erc20.d.ts @@ -0,0 +1,17 @@ +import { Provider } from "@ethersproject/providers"; +import { BaseWeb3Helper, Web3Helper, Web3Params } from ".."; +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +export declare function baseWeb3HelperFactory( + provider: Provider +): Promise; +export declare type Web3ERC20Params = Web3Params & { + paymentTokenAddress: string; +}; +export declare function web3ERC20HelperFactory( + params: Web3ERC20Params +): Promise; +//# sourceMappingURL=web3_erc20.d.ts.map diff --git a/dist/helpers/web3_erc20.d.ts.map b/dist/helpers/web3_erc20.d.ts.map new file mode 100644 index 000000000..ed90e6be0 --- /dev/null +++ b/dist/helpers/web3_erc20.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"web3_erc20.d.ts","sourceRoot":"","sources":["../../src/helpers/web3_erc20.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAOzE,OAAO,EACL,cAAc,EAMd,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AAGZ;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,oBAAY,eAAe,GAAG,UAAU,GAAG;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CAsYrB"} \ No newline at end of file diff --git a/dist/helpers/web3_erc20.js b/dist/helpers/web3_erc20.js new file mode 100644 index 000000000..f1e1aece3 --- /dev/null +++ b/dist/helpers/web3_erc20.js @@ -0,0 +1,400 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.web3ERC20HelperFactory = exports.baseWeb3HelperFactory = void 0; +/** + * Web3 Implementation for cross chain traits + * @module + */ +const bignumber_js_1 = __importDefault(require("bignumber.js")); +const ethers_1 = require("ethers"); +const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); +const __1 = require(".."); +const axios_1 = __importDefault(require("axios")); +/** + * Create an object implementing minimal utilities for a web3 chain + * + * @param provider An ethers.js provider object + */ +async function baseWeb3HelperFactory(provider) { + const w3 = provider; + return { + async balance(address) { + const bal = await w3.getBalance(address); + // ethers BigNumber is not compatible with our bignumber + return new bignumber_js_1.default(bal.toString()); + }, + async deployErc721(owner) { + const factory = new xpnet_web3_contracts_1.UserNftMinter__factory(owner); + const contract = await factory.deploy(); + return contract.address; + }, + async mintNftErc1155(owner, { contract }) { + const erc1155 = xpnet_web3_contracts_1.Erc1155Minter__factory.connect( + contract, + owner + ); + const tx = await erc1155.mintNft(await owner.getAddress()); + return tx; + }, + async mintNft(owner, { contract, uri }) { + const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + contract, + owner + ); + const txm = await erc721.mint(uri, { gasLimit: 1000000 }); + return txm; + }, + }; +} +exports.baseWeb3HelperFactory = baseWeb3HelperFactory; +async function web3ERC20HelperFactory(params) { + const txnUnderpricedPolyWorkaround = + params.nonce == 7 + ? async (utx) => { + const res = await axios_1.default + .get( + "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" + ) + .catch(async () => { + return await axios_1.default.get( + "https://gasstation-mainnet.matic.network/v2" + ); + }); + const { result, fast } = res.data; + const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; + if (trackerGas) { + const sixtyGwei = ethers_1.ethers.utils.parseUnits( + Math.ceil(trackerGas).toString(), + "gwei" + ); + utx.maxFeePerGas = sixtyGwei; + utx.maxPriorityFeePerGas = sixtyGwei; + } + } + : () => Promise.resolve(); + const w3 = params.provider; + const { minter_addr, provider } = params; + const minter = xpnet_web3_contracts_1.MinterERC20__factory.connect( + minter_addr, + provider + ); + async function notifyValidator( + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ) { + await params.notifier.notifyWeb3( + params.nonce, + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ); + } + async function getTransaction(hash) { + let trx; + let fails = 0; + while (!trx && fails < 7) { + trx = await provider.getTransaction(hash); + await new Promise((resolve) => + setTimeout(() => resolve("wait"), 5000 + fails * 2) + ); + fails++; + } + return trx; + } + async function extractAction(txr) { + const receipt = await txr.wait(); + const log = receipt.logs.find((log) => log.address === minter.address); + if (log === undefined) { + throw Error("Couldn't extract action_id"); + } + const evdat = minter.interface.parseLog(log); + const action_id = evdat.args[0].toString(); + return action_id; + } + const isApprovedForMinter = async (id, signer, _txFees) => { + const erc = __1.NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + signer + ); + return await __1.NFT_METHOD_MAP[id.native.contractType].approved( + erc, + await signer.getAddress(), + minter_addr, + id.native.tokenId, + params.nonce === 0x1d ? {} : undefined + ); + }; + const approveForMinter = async (id, sender, txFees, gasPrice) => { + const isApproved = await isApprovedForMinter(id, sender, txFees); + if (isApproved) { + return undefined; + } + const erc = __1.NFT_METHOD_MAP[id.native.contractType].umt.connect( + id.native.contract, + sender + ); + const receipt = await __1.NFT_METHOD_MAP[id.native.contractType].approve( + erc, + minter_addr, + id.native.tokenId, + txnUnderpricedPolyWorkaround, + params.nonce === 0x1d ? {} : undefined, + gasPrice + ); + await receipt.wait(); + const erc20 = xpnet_web3_contracts_1.PaymentToken__factory.connect( + params.paymentTokenAddress, + sender + ); + const approval = await erc20.approve( + minter_addr, + ethers_1.BigNumber.from(txFees.toString()) + ); + return approval.hash; + }; + const base = await baseWeb3HelperFactory(params.provider); + return { + ...base, + XpNft: params.erc721_addr, + XpNft1155: params.erc1155_addr, + getParams: () => params, + approveForMinter, + getProvider: () => provider, + async estimateValidateUnfreezeNft(_to, _id, _mW) { + const gas = await provider.getGasPrice(); + return new bignumber_js_1.default(gas.mul(150000).toString()); + }, + getFeeMargin() { + return params.feeMargin; + }, + isApprovedForMinter, + preTransfer: (s, id, _fee, args) => + approveForMinter(id, s, _fee, args?.gasPrice), + extractAction, + async isContractAddress(address) { + const code = await provider.getCode(address); + return code !== "0x"; + }, + getNonce: () => params.nonce, + async preTransferRawTxn(id, address, _value) { + const isApproved = await isApprovedForMinter( + id, + new ethers_1.VoidSigner(address, provider), + _value + ); + if (isApproved) { + return undefined; + } + const erc = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + id.native.contract, + new ethers_1.VoidSigner(address, provider) + ); + const approvetxn = await erc.populateTransaction.approve( + minter_addr, + id.native.tokenId + ); + return approvetxn; + }, + async extractTxnStatus(txn) { + const status = (await (await provider.getTransaction(txn)).wait()).status; + if (status === undefined) { + return __1.TransactionStatus.PENDING; + } + if (status === 1) { + return __1.TransactionStatus.SUCCESS; + } else if (status === 0) { + return __1.TransactionStatus.FAILURE; + } + return __1.TransactionStatus.UNKNOWN; + }, + async getTokenURI(contract, tokenId) { + if (ethers_1.ethers.utils.isAddress(contract) && tokenId) { + const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( + contract, + provider + ); + return await erc721.tokenURI(tokenId).catch(() => ""); + } + return ""; + }, + async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { + const tx = await minter + .connect(signer) + .populateTransaction.withdrawNftBatch( + to, + chainNonce, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + nfts[0].native.contract, + ethers_1.BigNumber.from(txFees.toString()) + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + // await notifyValidator( + // res.hash, + // await extractAction(res), + // "Unfreeze", + // chainNonce.toString(), + // txFees.toString(), + // await signer.getAddress(), + // to, + // res.data + // ); + await notifyValidator(res.hash); + return res; + }, + async transferNftBatchToForeign( + signer, + chainNonce, + to, + nfts, + mintWith, + txFees + ) { + const tx = await minter + .connect(signer) + .populateTransaction.freezeErc1155Batch( + nfts[0].native.contract, + nfts.map((nft) => nft.native.tokenId), + new Array(nfts.length).fill(1), + chainNonce, + to, + mintWith, + ethers_1.BigNumber.from(txFees.toString()) + ); + await txnUnderpricedPolyWorkaround(tx); + const res = await signer.sendTransaction(tx); + await notifyValidator(res.hash); + return res; + }, + async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { + const gasPrice = await w3.getGasPrice(); + const gas = 40000 + 60000 * nfts.length; + return new bignumber_js_1.default(gasPrice.mul(gas).toString()); + }, + async estimateValidateUnfreezeNftBatch(_to, nfts) { + const gasPrice = await w3.getGasPrice(); + const gas = 40000 + 60000 * nfts.length; + return new bignumber_js_1.default(gasPrice.mul(gas).toString()); + }, + createWallet(privateKey) { + return new ethers_1.Wallet(privateKey, provider); + }, + async transferNftToForeign( + sender, + chain_nonce, + to, + id, + txFees, + mintWith, + gasLimit = undefined, + gasPrice + ) { + await approveForMinter(id, sender, txFees, gasPrice); + const method = __1.NFT_METHOD_MAP[id.native.contractType].freeze; + const tx = await minter + .connect(sender) + .populateTransaction[method]( + id.native.contract, + id.native.tokenId, + chain_nonce, + to, + mintWith, + ethers_1.BigNumber.from(txFees.toString()), + { + gasLimit, + } + ); + await txnUnderpricedPolyWorkaround(tx); + const txr = await sender.sendTransaction(tx).catch((e) => { + if (params.nonce === 33) { + return e; + } else throw e; + }); + let txHash; + if (params.nonce === 0x1d) { + //@ts-ignore checked hedera + txHash = txr["transactionId"]; + } + if (params.nonce === 33) { + //@ts-ignore checked abeychain + txHash = txr["returnedHash"] || txr.hash; + } else { + //@ts-ignore checked normal evm + txHash = txr.hash; + } + await notifyValidator( + //@ts-ignore + txHash, + await extractAction(await getTransaction(txHash)), + "Transfer", + chain_nonce, + txFees.toString(), + await sender.getAddress(), + to, + id.uri, + id.native.tokenId, + id.native.contract + ); + return params.nonce === 33 ? await provider.getTransaction(txHash) : txr; + }, + async unfreezeWrappedNft(sender, to, id, txFees, nonce) { + const txn = await minter + .connect(sender) + .populateTransaction.withdrawNft( + to, + nonce, + id.native.tokenId, + id.native.contract, + ethers_1.BigNumber.from(txFees.toString()) + ); + await txnUnderpricedPolyWorkaround(txn); + const res = await sender.sendTransaction(txn); + await notifyValidator( + res.hash, + await extractAction(res), + "Unfreeze", + Number(nonce), + txFees.toString(), + await sender.getAddress(), + to, + id.uri, + id.native.tokenId, + id.native.contract + ); + return res; + }, + async estimateValidateTransferNft(_to, _nftUri, _mintWith) { + const gas = await provider.getGasPrice(); + return new bignumber_js_1.default(gas.mul(150000).toString()); + }, + validateAddress(adr) { + return Promise.resolve(ethers_1.ethers.utils.isAddress(adr)); + }, + isNftWhitelisted(nft) { + return minter.nftWhitelist(nft.native.contract); + }, + }; +} +exports.web3ERC20HelperFactory = web3ERC20HelperFactory; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViM19lcmMyMC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjNfZXJjMjAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBQ3JDLG1DQVFnQjtBQUVoQiwrREFLOEI7QUFDOUIsMEJBU1k7QUFDWixrREFBMEI7QUFFMUI7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBa0I7SUFFbEIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBRTNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBYSxF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 diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 000000000..eab1c8f9d --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,11 @@ +export * from "./helpers/chain"; +export * from "./helpers/elrond"; +export * from "./helpers/web3"; +export * from "./helpers/tron"; +export * from "./socket"; +export * from "./emitter"; +export * from "./factory"; +export * from "./consts"; +export * from "./config"; +export { ChainNonce } from "./type-utils"; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map new file mode 100644 index 000000000..a50ed3812 --- /dev/null +++ b/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 000000000..2fd192d9e --- /dev/null +++ b/dist/index.js @@ -0,0 +1,35 @@ +"use strict"; +var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); +var __exportStar = + (this && this.__exportStar) || + function (m, exports) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) + __createBinding(exports, m, p); + }; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./helpers/chain"), exports); +__exportStar(require("./helpers/elrond"), exports); +__exportStar(require("./helpers/web3"), exports); +__exportStar(require("./helpers/tron"), exports); +__exportStar(require("./socket"), exports); +__exportStar(require("./emitter"), exports); +__exportStar(require("./factory"), exports); +__exportStar(require("./consts"), exports); +__exportStar(require("./config"), exports); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0IsaURBQStCO0FBQy9CLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6QiwyQ0FBeUIifQ== diff --git a/dist/notifier/index.d.ts b/dist/notifier/index.d.ts new file mode 100644 index 000000000..b1e7086fb --- /dev/null +++ b/dist/notifier/index.d.ts @@ -0,0 +1,33 @@ +export declare type EvNotifier = ReturnType; +export declare function evNotifier(url: string): { + notifyWeb3( + fromChain: number, + fromHash: string, + actionId?: string | undefined, + type?: string | undefined, + toChain?: number | undefined, + txFees?: string | undefined, + senderAddress?: string | undefined, + targetAddress?: string | undefined, + nftUri?: string | undefined, + tokenId?: string | undefined, + contract?: string | undefined + ): Promise; + notifyTron(txHash: string): Promise; + notifyElrond( + txHash: string, + sender: string, + uris: string[], + action_id: string | undefined + ): Promise; + notifyTezos(txHash: string): Promise; + notifyAlgorand(txHash: string): Promise; + notifySecret(txHash: string, vk: string): Promise; + notifySolana(txHash: string): Promise; + notifyNear(txHash: string): Promise; + notifyDfinity(actionId: string): Promise; + notifyTon(txHash: string): Promise; + notifyAptos(txHash: string): Promise; + notifyEVM(nonce: number, address: string): Promise; +}; +//# sourceMappingURL=index.d.ts.map diff --git a/dist/notifier/index.d.ts.map b/dist/notifier/index.d.ts.map new file mode 100644 index 000000000..8ab65439c --- /dev/null +++ b/dist/notifier/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,oBAAY,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM;uBAyBO,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAOjD"} \ No newline at end of file diff --git a/dist/notifier/index.js b/dist/notifier/index.js new file mode 100644 index 000000000..78914d8b9 --- /dev/null +++ b/dist/notifier/index.js @@ -0,0 +1,92 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.evNotifier = void 0; +const axios_1 = __importDefault(require("axios")); +function evNotifier(url) { + const api = axios_1.default.create({ + baseURL: url, + }); + return { + async notifyWeb3( + fromChain, + fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract + ) { + await api.post("/tx/web3", { + chain_nonce: fromChain, + tx_hash: fromHash, + actionId, + type, + toChain, + txFees, + senderAddress, + targetAddress, + nftUri, + tokenId, + contract, + }); + }, + async notifyTron(txHash) { + await api.post("/tx/tron", { + tx_hash: txHash, + }); + }, + async notifyElrond(txHash, sender, uris, action_id) { + await api.post("/tx/elrond", { + tx_hash: txHash, + sender, + uris, + action_id, + }); + }, + async notifyTezos(txHash) { + await api.post("/tx/tezos", { + tx_hash: txHash, + }); + }, + async notifyAlgorand(txHash) { + await api.post("/tx/algorand", { + tx_hash: txHash, + }); + }, + async notifySecret(txHash, vk) { + await api.post("/tx/scrt", { tx_hash: txHash, vk: vk }); + }, + async notifySolana(txHash) { + await api.post("/tx/solana", { tx_hash: txHash }); + }, + async notifyNear(txHash) { + await api.post("/tx/near", { tx_hash: txHash }); + }, + async notifyDfinity(actionId) { + await api.post("/tx/dfinity", { action_id: actionId }); + }, + async notifyTon(txHash) { + await api.post("/tx/ton", { tx_hash: txHash }); + }, + async notifyAptos(txHash) { + await api.post("/tx/aptos", { tx_hash: txHash }); + }, + async notifyEVM(nonce, address) { + await api.post("/whitelist", { + contract: address, + chain_nonce: nonce, + }); + }, + }; +} +exports.evNotifier = evNotifier; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSTFCLFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtZQUVqQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sYUFBYTtnQkFDYixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBYyxFQUNkLE1BQWMsRUFDZCxJQUFjLEVBQ2QsU0FBNkI7WUFFN0IsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsTUFBTTtnQkFDTixJQUFJO2dCQUNKLFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1lBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQWM7WUFDakMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLE1BQU07YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLEVBQVU7WUFDM0MsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYztZQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7WUFDbEMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQWM7WUFDNUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlO1lBQzVDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzNCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixXQUFXLEVBQUUsS0FBSzthQUNuQixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUF0RkQsZ0NBc0ZDIn0= diff --git a/dist/scripts/deploy_tron.d.ts b/dist/scripts/deploy_tron.d.ts new file mode 100644 index 000000000..32f4d23b0 --- /dev/null +++ b/dist/scripts/deploy_tron.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=deploy_tron.d.ts.map diff --git a/dist/scripts/deploy_tron.d.ts.map b/dist/scripts/deploy_tron.d.ts.map new file mode 100644 index 000000000..d44822911 --- /dev/null +++ b/dist/scripts/deploy_tron.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"deploy_tron.d.ts","sourceRoot":"","sources":["../../src/scripts/deploy_tron.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/scripts/deploy_tron.js b/dist/scripts/deploy_tron.js new file mode 100644 index 000000000..421e9b895 --- /dev/null +++ b/dist/scripts/deploy_tron.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +const tron_1 = require("../helpers/tron"); +//@ts-expect-error no typings, cope +const tronweb_1 = __importDefault(require("tronweb")); +const dotenv_1 = require("dotenv"); +(0, dotenv_1.config)(); +(async () => { + // Testnet + // const api = "https://api.shasta.trongrid.io"; + // const signer = process.env.TRON_SK!; + // const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; + // const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; + // const frostGroupKey = process.env.FROST_GROUP_KEY!; + // Mainnet + const api = "https://api.trongrid.io"; + const signer = process.env.TRON_SK; + const xpnftWrappedUri = "https://wnfts.xp.network/w/"; + const xpnft1155WrappedUri = "https://wnfts.xp.network/w/{id}"; + const frostGroupKey = process.env.FROST_GROUP_KEY; + const prov = new tronweb_1.default({ fullHost: api }); + const tron = await (0, tron_1.baseTronHelperFactory)(prov); + const contracts = await tron.deployMinter( + signer, + frostGroupKey, + xpnftWrappedUri, + xpnft1155WrappedUri + ); + console.log(contracts); +})().catch((e) => console.error(e)); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3Ryb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9kZXBsb3lfdHJvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBDQUF3RDtBQUN4RCxtQ0FBbUM7QUFDbkMsc0RBQThCO0FBQzlCLG1DQUFnQztBQUNoQyxJQUFBLGVBQU0sR0FBRSxDQUFDO0FBRVQsQ0FBQyxLQUFLLElBQUksRUFBRTtJQUNWLFVBQVU7SUFDVixnREFBZ0Q7SUFDaEQsdUNBQXVDO0lBQ3ZDLHFFQUFxRTtJQUNyRSw2RUFBNkU7SUFDN0Usc0RBQXNEO0lBRXRELFVBQVU7SUFDVixNQUFNLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQztJQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQVEsQ0FBQztJQUNwQyxNQUFNLGVBQWUsR0FBRyw2QkFBNkIsQ0FBQztJQUN0RCxNQUFNLG1CQUFtQixHQUFHLGlDQUFpQyxDQUFDO0lBQzlELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZ0IsQ0FBQztJQUVuRCxNQUFNLElBQUksR0FBRyxJQUFJLGlCQUFPLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsNEJBQXFCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFL0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUN2QyxNQUFNLEVBQ04sYUFBYSxFQUNiLGVBQWUsRUFDZixtQkFBbUIsQ0FDcEIsQ0FBQztJQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyJ9 diff --git a/dist/socket.d.ts b/dist/socket.d.ts new file mode 100644 index 000000000..c6b1ba0ec --- /dev/null +++ b/dist/socket.d.ts @@ -0,0 +1,42 @@ +import { ManagerOptions, SocketOptions } from "socket.io-client"; +import { ClaimNftInfo } from "./helpers/algorand"; +/** + * Tracker for cross chain transaction + */ +export declare type TxnSocketHelper = { + /** + * + * @param chain Nonce of the target chain + * @param action_id Identifier for tracking a cross chain transaction + * @returns transaction hash on the foreign chain + */ + waitTxHash(chain: number, action_id: string): Promise; +}; +export declare type AlgorandSocketHelper = { + waitAlgorandNft( + sourceChain: number, + receiver: string, + action_id: string + ): Promise; + claimNfts(receiver: string): Promise; + cleanNfts(owner: string): Promise; +}; +declare type DbClaimInfo = { + receiver: string; + app_id: string; + nft_id: string; + action_id: string; + inserted_at: Date; +}; +/** + * Create a [[SocketHelper]] + * + * @param uri URI of the Migration-Validator socket api + * @param options socket.io options + */ +export declare function socketHelper( + uri: string, + options?: Partial +): TxnSocketHelper & AlgorandSocketHelper; +export {}; +//# sourceMappingURL=socket.d.ts.map diff --git a/dist/socket.d.ts.map b/dist/socket.d.ts.map new file mode 100644 index 000000000..e097b3e0a --- /dev/null +++ b/dist/socket.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BlD;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/D,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC;AAsFF,aAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,cAAc,CAAC,GAChD,eAAe,GAAG,oBAAoB,CA0DxC"} \ No newline at end of file diff --git a/dist/socket.js b/dist/socket.js new file mode 100644 index 000000000..9a5fe10d1 --- /dev/null +++ b/dist/socket.js @@ -0,0 +1,115 @@ +"use strict"; +var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.socketHelper = void 0; +const axios_1 = __importDefault(require("axios")); +const socket_io_client_1 = require("socket.io-client"); +function pairAction(sourceChain, action_id) { + const numId = parseInt(action_id); + return numId >= sourceChain + ? numId * numId + sourceChain + numId + : numId + sourceChain * sourceChain; +} +function socketResBuf() { + const inner = {}; + const requireChain = (chain_id) => { + if (inner[chain_id] === undefined) { + inner[chain_id] = {}; + } + }; + return { + getResolver(chain_id, action_id) { + requireChain(chain_id); + return inner[chain_id][action_id]?.resolve; + }, + setResolver(chain_id, action_id, resolver) { + requireChain(chain_id); + inner[chain_id][action_id] = { resolve: resolver }; + }, + getEventRes(chain_id, action_id) { + requireChain(chain_id); + return inner[chain_id][action_id]?.event_res; + }, + setEventRes(chain_id, action_id, res) { + requireChain(chain_id); + inner[chain_id][action_id] = { event_res: res }; + }, + unsetAction(chain_id, action_id) { + requireChain(chain_id); + inner[chain_id][action_id] = undefined; + }, + }; +} +function add_event(buf, chain, id, data) { + const resolve = buf.getResolver(chain, id); + if (resolve === undefined) { + buf.setEventRes(chain, id, data); + return; + } + resolve(data); +} +async function waitSocketData(buf, chain, action_id) { + const data = buf.getEventRes(chain, action_id); + if (data !== undefined) { + buf.unsetAction(chain, action_id); + return data; + } + const dataP = new Promise((r) => { + buf.setResolver(chain, action_id, r); + }); + return await dataP; +} +/** + * Create a [[SocketHelper]] + * + * @param uri URI of the Migration-Validator socket api + * @param options socket.io options + */ +function socketHelper(uri, options) { + const socket = (0, socket_io_client_1.io)(uri, options); + const txbuf = socketResBuf(); + const algoBuf = socketResBuf(); + const dbApi = axios_1.default.create({ + baseURL: uri, + }); + socket.on("tx_executed_event", (chain, action_id, hash) => { + add_event(txbuf, chain, action_id, hash); + }); + socket.on("algorand_minted_event", (_, action_id, app_id, nft_id) => + add_event(algoBuf, 15, action_id, { + appId: app_id, + nftId: nft_id, + }) + ); + return { + async waitTxHash(chain, action_id) { + return await waitSocketData(txbuf, chain, action_id); + }, + async waitAlgorandNft(sourceChain, receiver, action_id) { + // Validator sends a an action paired with chain id + // this is implementation dependent on validator + const paired = pairAction(sourceChain, action_id).toString(); + const dbData = await dbApi.get(`/algorand_event/${receiver}/${paired}`); + if (dbData.data.app_id) { + return { + appId: parseInt(dbData.data.app_id), + nftId: parseInt(dbData.data.nft_id), + }; + } + return await waitSocketData(algoBuf, 15, paired); + }, + async claimNfts(receiver) { + const dbData = await dbApi.get(`/algorand_event/${receiver}`); + return dbData.data.result; + }, + async cleanNfts(owner) { + await dbApi.delete(`/algorand_event/${owner}`); + }, + }; +} +exports.socketHelper = socketHelper; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsdURBQXFFO0FBc0RyRSxTQUFTLFVBQVUsQ0FBQyxXQUFtQixFQUFFLFNBQWlCO0lBQ3hELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxPQUFPLEtBQUssSUFBSSxXQUFXO1FBQ3pCLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLFdBQVcsR0FBRyxLQUFLO1FBQ3JDLENBQUMsQ0FBQyxLQUFLLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxZQUFZO0lBQ25CLE1BQU0sS0FBSyxHQUF5QixFQUFFLENBQUM7SUFFdkMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsV0FBVyxDQUNULFFBQWdCLEVBQ2hCLFNBQWlCO1lBRWpCLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUM7UUFDN0MsQ0FBQztRQUNELFdBQVcsQ0FDVCxRQUFnQixFQUNoQixTQUFpQixFQUNqQixRQUEyQjtZQUUzQixZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFDRCxXQUFXLENBQUMsUUFBZ0IsRUFBRSxTQUFpQjtZQUM3QyxZQUFZ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 diff --git a/dist/type-utils.d.ts b/dist/type-utils.d.ts new file mode 100644 index 000000000..be8931598 --- /dev/null +++ b/dist/type-utils.d.ts @@ -0,0 +1,36 @@ +import { MetaMap, TransferNftForeign } from "."; +declare type TransferNftChain = TransferNftForeign< + Signer, + RawNft, + Resp +>; +export declare type ChainNonce = keyof MetaMap; +export declare type InferChainParam = MetaMap[K][1]; +export declare type InferChainH = MetaMap[K][0]; +export declare type InferSigner = K extends TransferNftChain< + infer S, + unknown, + unknown +> + ? S + : never; +export declare type InferNativeNft = K extends TransferNftChain< + any, + infer RawNft, + any +> + ? RawNft + : never; +export declare type ParamMap = { + set(k: T, v: InferChainParam | undefined): void; + get(k: T): InferChainParam | undefined; +}; +export declare type HelperMap = Map< + K, + InferChainH | undefined +>; +export declare type Mutable = { + -readonly [Key in keyof Type]: Type[Key]; +}; +export {}; +//# sourceMappingURL=type-utils.d.ts.map diff --git a/dist/type-utils.d.ts.map b/dist/type-utils.d.ts.map new file mode 100644 index 000000000..5a3f73e6d --- /dev/null +++ b/dist/type-utils.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAEhD,aAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,kBAAkB,CAC9D,MAAM,EACN,MAAM,EACN,IAAI,CACL,CAAC;AAEF,oBAAY,UAAU,GAAG,MAAM,OAAO,CAAC;AAEvC,oBAAY,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,oBAAY,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,oBAAY,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACrD,MAAM,CAAC,EACP,OAAO,EACP,OAAO,CACR,GACG,CAAC,GACD,KAAK,CAAC;AAEV,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACxD,GAAG,EACH,MAAM,MAAM,EACZ,GAAG,CACJ,GACG,MAAM,GACN,KAAK,CAAC;AAEV,oBAAY,QAAQ,GAAG;IACrB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACzE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACjE,CAAC;AAEF,oBAAY,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,GAAG,CAC/C,CAAC,EACD,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAC3B,CAAC;AAEF,oBAAY,OAAO,CAAC,IAAI,IAAI;IAC1B,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;CACzC,CAAC"} \ No newline at end of file diff --git a/dist/type-utils.js b/dist/type-utils.js new file mode 100644 index 000000000..0a41d923f --- /dev/null +++ b/dist/type-utils.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ== diff --git a/src/factory/index.ts b/src/factory/index.ts index 76e6a098f..16d0ae0ed 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -208,7 +208,7 @@ export type ChainFactory = { toChain: FullChain, nft: NftInfo, receiver: string - ): Promise<{ calcTransfer: BigNumber; calcContractDep: BigNumber | number }>; + ): Promise<{ calcContractDep: BigNumber }>; estimateSFTfees( fromChain: FullChain, @@ -278,7 +278,10 @@ export type ChainFactory = { nft: NftInfo ): Promise; - isWrappedNft(nft: NftInfo, fromChain: number): Promise; + isWrappedNft( + nft: NftInfo, + fromChain: number + ): Promise<{ bool: boolean; wrapped: any }>; setProvider(fromChain: number, provider: any): Promise; @@ -490,6 +493,7 @@ export function ChainFactory( return conv; }; + const estimateWithContractDep = async < SignerF, RawNftF, @@ -499,24 +503,21 @@ export function ChainFactory( >( fromChain: FullChain, toChain: FullChain, - nft: NftInfo, - receiver: string, - extraFee?: BigNumber.Value + nft: NftInfo ) => { + let calcContractDep: BigNumber = new BigNumber("0"), + originalContract, + originalChain; try { - let calcContractDep: BigNumber | number = 0, - originalContract, - originalChain; - - const [isWrapped, estimate] = await Promise.all([ - await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce()), - await toChain?.estimateValidateTransferNft(receiver, nft as any, ""), - ]); - - if (isWrapped) { - const resp = await axios.get(nft.uri); - originalContract = resp?.data?.wrapped?.contract?.toLowerCase(); - originalChain = resp?.data?.wrapped?.origin; + const { bool, wrapped } = await isWrappedNft( + nft, + fromChain.getNonce(), + toChain.getNonce() + ); + + if (bool) { + originalContract = wrapped?.contract?.toLowerCase(); + originalChain = wrapped?.origin; } else { originalContract = nft.native.contract.toLowerCase(); originalChain = nft.native.chainId; @@ -535,7 +536,7 @@ export function ChainFactory( }) .catch(() => false); - if (!axiosResult) { + if (!axiosResult && toChain?.estimateContractDep) { //@ts-ignore const contractFee = await toChain?.estimateContractDep(toChain); calcContractDep = await calcExchangeFees( @@ -546,40 +547,13 @@ export function ChainFactory( ); } - let calcTransfer = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate, - toChain.getFeeMargin() - ); - - if (extraFee) { - calcTransfer = calcTransfer - .multipliedBy(extraFee) - .integerValue(BigNumber.ROUND_CEIL); - console.log("extra conv"); - } - return { calcTransfer, calcContractDep }; + return { calcContractDep }; } catch (error: any) { - console.log(error.message); - const estimate = await toChain?.estimateValidateTransferNft( - receiver, - nft as any, - "" - ); - let calcTransfer = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate, - toChain.getFeeMargin() + console.log( + error.message, + console.log("error in estimateWithContractDep") ); - if (extraFee) { - calcTransfer = calcTransfer - .multipliedBy(extraFee) - .integerValue(BigNumber.ROUND_CEIL); - console.log("extra conv"); - } - return { calcTransfer, calcContractDep: 0 }; + return { calcContractDep }; } }; @@ -668,23 +642,25 @@ export function ChainFactory( async function isWrappedNft(nft: NftInfo, fc: number, tc?: number) { if (fc === Chain.TEZOS) { - return ( - typeof (nft.native as any).meta?.token?.metadata?.wrapped !== - "undefined" - ); + return { + bool: + typeof (nft.native as any).meta?.token?.metadata?.wrapped !== + "undefined", + wrapped: undefined, + }; } try { checkNotOldWrappedNft(nft.collectionIdent); } catch (_) { - return false; + return { bool: false, wrapped: undefined }; } - const original = (await axios.get(nft.uri).catch(() => undefined))?.data + const wrapped = (await axios.get(nft.uri).catch(() => undefined))?.data .wrapped; - const contract = original?.contract || original?.source_mint_ident; + const contract = wrapped?.contract || wrapped?.source_mint_ident; tc && contract && checkBlockedContracts(tc, contract); - return typeof original !== "undefined"; + return { bool: typeof wrapped !== "undefined", wrapped }; } async function algoOptInCheck( @@ -777,7 +753,7 @@ export function ChainFactory( if (e.native.contractType && e.native.contractType === "ERC721") { throw new Error(`ERC721 is not supported`); } - if (await isWrappedNft(e, from.getNonce())) { + if ((await isWrappedNft(e, from.getNonce())).bool) { wrapped.push(e); } else { unwrapped.push(e); @@ -957,7 +933,9 @@ export function ChainFactory( // throw Error("invalid address"); // } - if (await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce())) { + if ( + (await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce())).bool + ) { await algoOptInCheck(nft, toChain, receiver); const res = await fromChain.unfreezeWrappedNft( @@ -1078,7 +1056,7 @@ export function ChainFactory( async checkWhitelist(chain, nft) { if ( !chain.isNftWhitelisted || - (await isWrappedNft(nft, chain.getNonce())) + (await isWrappedNft(nft, chain.getNonce())).bool ) { return true; } diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 4a93bccd9..880db3261 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -198,6 +198,10 @@ export interface IsContractAddress { isContractAddress(address: string): Promise; } +export interface ParamsGetter { + getParams(): T; +} + export interface FeeMargins { min: number; max: number; diff --git a/src/helpers/web3.ts b/src/helpers/web3.ts index 06ebb9187..2cd1a1908 100644 --- a/src/helpers/web3.ts +++ b/src/helpers/web3.ts @@ -15,6 +15,7 @@ import { TransferNftForeignBatch, UnfreezeForeignNft, UnfreezeForeignNftBatch, + ParamsGetter, } from "./chain"; import { BigNumber as EthBN, @@ -151,7 +152,8 @@ export type Web3Helper = BaseWeb3Helper & } & WhitelistCheck & GetFeeMargins & IsContractAddress & - GetTokenURI; + GetTokenURI & + ParamsGetter; /** * Create an object implementing minimal utilities for a web3 chain @@ -352,6 +354,7 @@ export async function web3HelperFactory( } } : () => Promise.resolve(); + const w3 = params.provider; const { minter_addr, provider } = params; const minter = Minter__factory.connect(minter_addr, provider); @@ -473,6 +476,7 @@ export async function web3HelperFactory( ...base, XpNft: params.erc721_addr, XpNft1155: params.erc1155_addr, + getParams: () => params, approveForMinter, getProvider: () => provider, async estimateValidateUnfreezeNft(_to, _id, _mW) { diff --git a/src/helpers/web3_erc20.ts b/src/helpers/web3_erc20.ts index 818e39d82..70f78ec2c 100644 --- a/src/helpers/web3_erc20.ts +++ b/src/helpers/web3_erc20.ts @@ -222,6 +222,7 @@ export async function web3ERC20HelperFactory( ...base, XpNft: params.erc721_addr, XpNft1155: params.erc1155_addr, + getParams: () => params, approveForMinter, getProvider: () => provider, async estimateValidateUnfreezeNft(_to, _id, _mW) { diff --git a/tsconfig.json b/tsconfig.json index e40fc5c03..65366b4c8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,8 @@ "compilerOptions": { "incremental": false, "target": "ES2021", - "outDir": "./dist", - //"outDir": "../bridge-interface/node_modules/xp.network/dist", + //"outDir": "./dist", + "outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs", From e4d361cadc617af5f40f2ea0deee931c62aaf6c4 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Tue, 28 Feb 2023 00:57:52 +0530 Subject: [PATCH 919/956] factory: nft-list: ton: base64url decode the address before requesting nfts --- package.json | 1 + src/factory/index.ts | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/package.json b/package.json index 982663851..38f2e9900 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "algosdk": "^1.15.0-beta.1", "aptos": "^1.6.0", "axios": "^0.21.1", + "base64url": "^3.0.1", "bignumber.js": "=9.0.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", diff --git a/src/factory/index.ts b/src/factory/index.ts index 16d0ae0ed..c1098ad49 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -73,6 +73,7 @@ import { prepareTokenId, _headers, } from "./cons"; +import base64url from "base64url"; export type FullChain = TransferNftForeign< Signer, @@ -891,6 +892,9 @@ export function ChainFactory( cToP.set(chainNonce, params); }, async nftList(chain: ChainNonceGet & T, owner: string) { + if (chain.getNonce() === Chain.TON) { + owner = base64url.encode(owner); + } let res = await nftlistRest.get<{ data: NftInfo>[] }>( `/nfts/${chain.getNonce()}/${owner}` ); From 1c014261b1f8cf0bfa8d071c3c72af02611b0c59 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 28 Feb 2023 11:52:49 +0200 Subject: [PATCH 920/956] decode for ton --- src/factory/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index c1098ad49..f4fab6466 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -893,8 +893,10 @@ export function ChainFactory( }, async nftList(chain: ChainNonceGet & T, owner: string) { if (chain.getNonce() === Chain.TON) { + console.log("decode for ton"); owner = base64url.encode(owner); } + let res = await nftlistRest.get<{ data: NftInfo>[] }>( `/nfts/${chain.getNonce()}/${owner}` ); From a00640ffc5b7cd65f76726eb1c017421dd402c76 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 28 Feb 2023 11:59:38 +0200 Subject: [PATCH 921/956] fix tsconfig --- tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index 65366b4c8..e40fc5c03 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,8 @@ "compilerOptions": { "incremental": false, "target": "ES2021", - //"outDir": "./dist", - "outDir": "../bridge-interface/node_modules/xp.network/dist", + "outDir": "./dist", + //"outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs", From 585e06a41fc505834e3a98f31da2a7901dc9747e Mon Sep 17 00:00:00 2001 From: Alex Moshinsky <89206037+AlexXPnetwork@users.noreply.github.com> Date: Tue, 28 Feb 2023 14:24:46 +0200 Subject: [PATCH 922/956] update fantom rpc --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index b44abbebf..14440206a 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -79,7 +79,7 @@ export enum MainNetRpcUri { ETHEREUM = "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", AVALANCHE = "https://api.avax.network/ext/bc/C/rpc", POLYGON = "https://polygon-rpc.com", - FANTOM = "https://rpc.ftm.tools/", + FANTOM = "https://rpc.fantom.network/", TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", HARMONY = "https://rpc.s0.t.hmny.io", From f7588b39dc6a30e39d1697560c4f3b355326d784 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Thu, 2 Mar 2023 17:23:17 +0200 Subject: [PATCH 923/956] add near staging --- src/factory/factories.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index b1511d9c2..69059a78a 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -448,6 +448,17 @@ export namespace ChainFactoryConfigs { xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", feeMargin, }, + nearParams: { + networkId: "mainnet", + nonce: Chain.NEAR, + rpcUrl: MainNetRpcUri.NEAR, + bridge: "xpbridge.near", + xpnft: "xpnft.near", + feeMargin, + notifier, + walletUrl: "https://wallet.mainnet.near.org", + helperUrl: "https://helper.mainnet.near.org", + }, solanaParams: { xpnftAddr: "", bridgeContractAddr: "kVvEBTB1h9GWEC7GcuDNTEmk6uxbCM11GvSmwvuCAwx", From fb4a599ad12b16b4927a4845bff99c069973f7b4 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky <89206037+AlexXPnetwork@users.noreply.github.com> Date: Sun, 5 Mar 2023 11:27:27 +0200 Subject: [PATCH 924/956] update list function secret network --- src/helpers/secret.ts | 75 ++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 43 deletions(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index fa2ddd0e0..f286dada4 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -212,55 +212,44 @@ export async function secretHelperFactory( async nftList(owner, vk, contractAddress, codeHash) { const auth = { viewer: { - viewing_key: vk, - address: owner, + viewing_key: vk, + address: owner, }, - }; - if (!codeHash) { - codeHash = ( - await queryClient.query.compute.codeHashByContractAddress({ - contract_address: contractAddress, - }) - ).code_hash; - } - const contract = { + }; + const contract = { address: contractAddress, - codeHash: codeHash || "", - }; - - const { token_list, generic_err } = - (await queryClient.query.snip721.GetOwnedTokens({ - contract, - auth, - owner, - })) as GetOwnedTokensResponse; - - if (generic_err) throw new Error(generic_err.msg); + codeHash: codeHash || '', + }; - const response: NftInfo[] = []; + const { token_list } = await queryClient.query.snip721.GetOwnedTokens({ + contract, + auth, + owner, + }) as GetOwnedTokensResponse; - await Promise.all( - token_list.tokens.map(async (token) => { - const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ - contract, - auth, - token_id: token, - }); + const response: NftInfo[] = []; - response.push({ - collectionIdent: contractAddress, - uri: tokenInfo.all_nft_info.info?.token_uri || "", - native: { - chainId: p.chainId, - contract: contractAddress, - contractHash: codeHash || "", - tokenId: token, - vk, - metadata: tokenInfo.all_nft_info.info?.extension, - }, - }); + await Promise.all( + token_list?.tokens?.map(async (token) => { + const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ + contract, + auth, + token_id: token, + }); + response.push({ + collectionIdent: contractAddress, + uri: tokenInfo.all_nft_info.info?.token_uri || '', + native: { + chainId: p.chainId, + contract: contractAddress, + contractHash: codeHash || '', + tokenId: token, + vk, + metadata: tokenInfo.all_nft_info.info?.extension, + }, + }); }) - ); + ); return response; }, estimateValidateTransferNft: async () => { From 5ae374ba9348f3586a8acd98b91260cea655495c Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 5 Mar 2023 12:54:32 +0200 Subject: [PATCH 925/956] downgrade secretjs --- dist/consts.d.ts | 34 +++--- dist/consts.d.ts.map | 2 +- dist/consts.js | 4 +- dist/factory/factories.d.ts.map | 2 +- dist/factory/factories.js | 32 ++++-- dist/factory/index.d.ts | 12 +-- dist/factory/index.d.ts.map | 2 +- dist/factory/index.js | 26 +++-- dist/heartbeat/index.d.ts | 2 +- dist/heartbeat/index.d.ts.map | 2 +- dist/heartbeat/resp.d.ts | 8 +- dist/heartbeat/resp.d.ts.map | 2 +- dist/helpers/algorand.d.ts | 20 ++-- dist/helpers/algorand.d.ts.map | 2 +- dist/helpers/aptos/index.d.ts | 10 +- dist/helpers/aptos/index.d.ts.map | 2 +- dist/helpers/chain.d.ts | 4 +- dist/helpers/chain.d.ts.map | 2 +- dist/helpers/dfinity/dfinity.d.ts | 12 +-- dist/helpers/dfinity/dfinity.d.ts.map | 2 +- dist/helpers/elrond.d.ts | 14 +-- dist/helpers/elrond.d.ts.map | 2 +- dist/helpers/near.d.ts | 12 +-- dist/helpers/near.d.ts.map | 2 +- dist/helpers/secret.d.ts | 24 ++--- dist/helpers/secret.d.ts.map | 2 +- dist/helpers/secret.js | 49 ++++----- dist/helpers/solana/idl.d.ts | 2 +- dist/helpers/solana/idl.d.ts.map | 2 +- dist/helpers/solana/index.d.ts | 10 +- dist/helpers/solana/index.d.ts.map | 2 +- dist/helpers/tezos.d.ts | 10 +- dist/helpers/tezos.d.ts.map | 2 +- dist/helpers/tezos.js | 21 ++-- dist/helpers/ton.d.ts | 18 ++-- dist/helpers/ton.d.ts.map | 2 +- dist/helpers/tron.d.ts | 8 +- dist/helpers/tron.d.ts.map | 2 +- dist/helpers/web3.d.ts | 18 ++-- dist/helpers/web3.d.ts.map | 2 +- dist/helpers/web3_erc20.d.ts | 2 +- dist/helpers/web3_erc20.d.ts.map | 2 +- dist/index.js | 21 ++-- dist/notifier/index.d.ts | 20 ++-- dist/notifier/index.d.ts.map | 2 +- dist/socket.d.ts | 6 +- dist/socket.d.ts.map | 2 +- dist/type-utils.d.ts | 18 ++-- dist/type-utils.d.ts.map | 2 +- package.json | 2 +- src/helpers/secret.ts | 96 +++++++++-------- yarn.lock | 143 +++++++------------------- 52 files changed, 328 insertions(+), 374 deletions(-) diff --git a/dist/consts.d.ts b/dist/consts.d.ts index dc186e72f..feb80103b 100644 --- a/dist/consts.d.ts +++ b/dist/consts.d.ts @@ -56,7 +56,7 @@ export declare enum MainNetRpcUri { ETHEREUM = "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", AVALANCHE = "https://api.avax.network/ext/bc/C/rpc", POLYGON = "https://polygon-rpc.com", - FANTOM = "https://rpc.ftm.tools/", + FANTOM = "https://rpc.fantom.network/", TRON = "https://api.trongrid.io/", CELO = "https://forno.celo.org", HARMONY = "https://rpc.s0.t.hmny.io", @@ -82,22 +82,22 @@ export declare enum MainNetRpcUri { BITGERT = "https://dedicated.brisescan.com", SOLANA = "https://solana-mainnet.g.alchemy.com/v2/4Fm2r6LjJO91nXrKVcZBQXcWgtVe-_gx", } -declare type ElrondMeta = [ElrondHelper, ElrondParams]; -declare type Web3Meta = [Web3Helper, Web3Params]; -declare type TronMeta = [TronHelper, TronParams]; -declare type AlgoMeta = [AlgorandHelper, AlgorandParams]; -declare type TezosMeta = [TezosHelper, TezosParams]; -declare type SecretMeta = [SecretHelper, SecretParams]; -declare type SolanaMeta = [SolanaHelper, SolanaParams]; -declare type TonMeta = [TonHelper, TonParams]; -declare type DfinityMeta = [DfinityHelper, DfinityParams]; -declare type NearMeta = [NearHelper, NearParams]; -declare type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; -declare type AptosMeta = [AptosHelper, AptosParams]; -declare type MetaMapAssert = { - [idx in typeof Chain[keyof typeof Chain]]: unknown; +type ElrondMeta = [ElrondHelper, ElrondParams]; +type Web3Meta = [Web3Helper, Web3Params]; +type TronMeta = [TronHelper, TronParams]; +type AlgoMeta = [AlgorandHelper, AlgorandParams]; +type TezosMeta = [TezosHelper, TezosParams]; +type SecretMeta = [SecretHelper, SecretParams]; +type SolanaMeta = [SolanaHelper, SolanaParams]; +type TonMeta = [TonHelper, TonParams]; +type DfinityMeta = [DfinityHelper, DfinityParams]; +type NearMeta = [NearHelper, NearParams]; +type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; +type AptosMeta = [AptosHelper, AptosParams]; +type MetaMapAssert = { + [idx in (typeof Chain)[keyof typeof Chain]]: unknown; }; -export declare type MetaMap = { +export type MetaMap = { 2: ElrondMeta; 3: Web3Meta; 4: Web3Meta; @@ -189,7 +189,7 @@ interface ChainData { tnBlockExplorerUrlAddr?: string | ((tx: string) => string); rejectUnfreeze?: string[]; } -declare type ChainInfo = { +type ChainInfo = { set(k: T, v: ChainData | undefined): void; get(k: T): ChainData | undefined; } & Map>; diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map index 51b26795c..4940daf62 100644 --- a/dist/consts.d.ts.map +++ b/dist/consts.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js index 8c166bac5..d3aae35c2 100644 --- a/dist/consts.js +++ b/dist/consts.js @@ -69,7 +69,7 @@ var MainNetRpcUri; "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161"; MainNetRpcUri["AVALANCHE"] = "https://api.avax.network/ext/bc/C/rpc"; MainNetRpcUri["POLYGON"] = "https://polygon-rpc.com"; - MainNetRpcUri["FANTOM"] = "https://rpc.ftm.tools/"; + MainNetRpcUri["FANTOM"] = "https://rpc.fantom.network/"; MainNetRpcUri["TRON"] = "https://api.trongrid.io/"; MainNetRpcUri["CELO"] = "https://forno.celo.org"; MainNetRpcUri["HARMONY"] = "https://rpc.s0.t.hmny.io"; @@ -646,4 +646,4 @@ exports.CHAIN_INFO.set(Chain.BITGERT, { tnBlockExplorerUrlAddr: "https://testnet-explorer.brisescan.com/address/", tnChainId: 64668, }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFHZ0Q7QUFDaEQsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFHZ0Q7QUFDaEQsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map index e7c161b97..2f4efb769 100644 --- a/dist/factory/factories.d.ts.map +++ b/dist/factory/factories.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAyYvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CA6LvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAmXvD,CAAC;CACH"} \ No newline at end of file +{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAyYvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAwMvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAmXvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js index 12b0cd420..9cebef5ae 100644 --- a/dist/factory/factories.js +++ b/dist/factory/factories.js @@ -4,12 +4,19 @@ var __createBinding = (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function () { - return m[k]; - }, - }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if ( + !desc || + ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k]; + }, + }; + } + Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -536,6 +543,17 @@ var ChainFactoryConfigs; xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", feeMargin, }, + nearParams: { + networkId: "mainnet", + nonce: consts_1.Chain.NEAR, + rpcUrl: consts_1.MainNetRpcUri.NEAR, + bridge: "xpbridge.near", + xpnft: "xpnft.near", + feeMargin, + notifier, + walletUrl: "https://wallet.mainnet.near.org", + helperUrl: "https://helper.mainnet.near.org", + }, solanaParams: { xpnftAddr: "", bridgeContractAddr: "kVvEBTB1h9GWEC7GcuDNTEmk6uxbCM11GvSmwvuCAwx", @@ -1152,4 +1170,4 @@ var ChainFactoryConfigs; (ChainFactoryConfigs = exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) ); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxZQUFZO0FBQ1osc0RBQThCO0FBQzlCLHNDQUFnRTtBQUNoRSxtQ0FBZ0M7QUFDaEMsOENBQWdEO0FBQ2hELDBDQUF5QztBQUN6QywwREFBMkQ7QUFDM0QsNERBQThDO0FBQzlDLGdFQUFzRDtBQUN0RCxnREFBNkM7QUFDN0MsMENBQTJDO0FBQzNDLGtEQUErQztBQUMvQyxvREFBNEI7QUFHNUI7Ozs7Ozs7O0lBUUk7QUFFSixvQ0FBb0M7QUFDcEMsa0RBQWtEO0FBQ2xELGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsS0FBSztBQUVMLE1BQU0sY0FBYyxHQUFHLDZCQUE2QixDQUFDO0FBQ3JELE1BQU0sc0JBQXNCLEdBQzFCLGtEQUFrRCxDQUFDO0FBRXJELElBQWlCLG1CQUFtQixDQSs3Qm5DO0FBLzdCRCxXQUFpQixtQkFBbUI7SUFDckIsMkJBQU8sR0FBd0MsS0FBSyxJQUFJLEVBQUU7UUFDckUsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFBLHFCQUFVLEVBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVwRCxtQkFBbUI7UUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSx5QkFBUyxDQUFDLHNCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDekMsSUFBSSxlQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FDL0IsSUFBSSxJQUFJLENB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0EwOEJuQztBQTE4QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 diff --git a/dist/factory/index.d.ts b/dist/factory/index.d.ts index 07673bb5f..ba73444da 100644 --- a/dist/factory/index.d.ts +++ b/dist/factory/index.d.ts @@ -42,7 +42,7 @@ import { InferNativeNft, InferSigner, } from "../type-utils"; -export declare type FullChain = TransferNftForeign< +export type FullChain = TransferNftForeign< Signer, RawNft, Resp @@ -54,18 +54,14 @@ export declare type FullChain = TransferNftForeign< XpNft: string; XpNft1155?: string; } & GetFeeMargins; -declare type FullChainBatch = FullChain< - Signer, - RawNft, - Resp -> & +type FullChainBatch = FullChain & TransferNftForeignBatch & UnfreezeForeignNftBatch & EstimateTxFeesBatch; /** * A type representing a chain factory. */ -export declare type ChainFactory = { +export type ChainFactory = { /** * Creates an helper factory for a given chain * @param chain: {@link ChainNonce} to create the helper for. @@ -301,7 +297,7 @@ export interface ChainParams { arbitrumParams: Web3Params; bitgertParams: Web3Params; } -export declare type MoralisNetwork = "mainnet" | "testnet"; +export type MoralisNetwork = "mainnet" | "testnet"; /** * A struct for the configuration of the library. * @field exchangeRateUri: The URI of the exchange rate service. diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map index 9418b46c9..d40b9346d 100644 --- a/dist/factory/index.d.ts.map +++ b/dist/factory/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js index 3f44636e8..b5c33837e 100644 --- a/dist/factory/index.js +++ b/dist/factory/index.js @@ -4,12 +4,19 @@ var __createBinding = (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function () { - return m[k]; - }, - }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if ( + !desc || + ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k]; + }, + }; + } + Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -44,6 +51,7 @@ const heartbeat_1 = require("../heartbeat"); const algorand_1 = require("../helpers/algorand"); const hts_abi_1 = require("../helpers/hedera/hts_abi"); const cons_1 = require("./cons"); +const base64url_1 = __importDefault(require("base64url")); function mapNonceToParams(chainParams) { const cToP = new Map(); cToP.set(consts_1.Chain.ELROND, chainParams.elrondParams); @@ -491,6 +499,10 @@ function ChainFactory(appConfig, chainParams) { cToP.set(chainNonce, params); }, async nftList(chain, owner) { + if (chain.getNonce() === consts_1.Chain.TON) { + console.log("decode for ton"); + owner = base64url_1.default.encode(owner); + } let res = await nftlistRest.get(`/nfts/${chain.getNonce()}/${owner}`); if (res.headers["Retry-After"]) { await new Promise((r) => setTimeout(r, 30000)); @@ -657,4 +669,4 @@ function ChainFactory(appConfig, chainParams) { }; } exports.ChainFactory = ChainFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0NBQThDO0FBSzlDLHlDQUF1QjtBQUN2Qiw4Q0FBNEI7QUFFNUIsZ0VBQXFDO0FBQ3JDLDBCQVlZO0FBRVosa0RBQXNEO0FBQ3RELGdEQUE2RDtBQUM3RCxzREFBOEI7QUFDOUIsa0RBQTBCO0FBQzFCLG1DQUF1QztBQUN2Qyx5Q0FBbUM7QUFDbkMsNENBQStDO0FBQy9DLGtEQU02QjtBQVk3Qix1REFJbUM7QUFnQm5DLGlDQU1nQjtBQTJSaEIsU0FBUyxnQkFBZ0IsQ0FBQyxXQUFpQztJQUN6RCxNQUFNLElBQUksR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxD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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUFDaEIsMERBQWtDO0FBMlJsQyxTQUFTLGdCQUFnQixDQUFDLFdBQWlDO0lBQ3pELE1BQU0sSUFBSSxHQUFhLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBQ0Q7Ozs7O0dBS0c7QUFDSCxTQUFnQixZQUFZLENBQzFCLFNBQW9CLEVBQ3BCLFdBQWlDO0lBRWpDLElBQUksT0FBTyxHQUEwQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQy9DLElBQUksSUFBSSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXpDLE1BQU0sYUFBYSxHQUFHLElBQUEsMkJBQWUsRUFBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFOUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHVCQUFnQixFQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUV2RSxNQUFNLFFBQVEsR0FBRyxJQUFBLGdCQUFZLEVBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXJELE1BQU0sV0FBVyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDL0IsT0FBTyxFQUFFLFNBQVMsQ0FBQyxVQUFVO1FBQzdCLE9BQU8sRUFBRTtZQUNQLGFBQWEsRUFBRSxVQUFVLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtTQUN0RDtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sS0FBSyxHQUFHLEtBQUssRUFDakIsS0FBUSxFQUNpQixFQUFFO1FBQzNCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sR0FBRyxNQUFNLG1CQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDLENBQUM7WUFDcEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDNUI7UUFDRCxPQUFPLE1BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQXdCLEtBQVEsRUFBRSxRQUFhLEVBQUUsRUFBRTtRQUMxRSxNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUU7WUFDbkIsUUFBUTtTQUNULENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLG1CQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUM7SUFFRixLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLFNBQVksRUFDWixPQUFVLEVBQ1YsR0FBYyxFQUNkLFVBQXNCO1FBRXRCLE1BQU0sSUFBSSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsY0FBYyxDQUFDO1lBQ25ELG1CQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBRSxDQUFDLFFBQVE7WUFDakMsbUJBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFFLENBQUMsUUFBUTtTQUNwQyxDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFFLENBQUMsUUFBUSxDQUFFLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxRQUFRLENBQUUsQ0FBQztRQUM5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDL0QsVUFBVSxDQUFDLEdBQUcsQ0FDZixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUV0QyxPQUFPLElBQUk7YUFDUixLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQzthQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQzthQUNyQixLQUFLLENBQUMsbUJBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFFLENBQUMsUUFBUSxDQUFDO2FBQzFDLFlBQVksQ0FBQyxzQkFBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQ3hCLFNBQTRDLEVBQzVDLE9BQTBDLEVBQzFDLEdBQXFCLEVBQ3JCLFFBQWdCLEVBQ2hCLFFBQTBCLEVBQzFCLEVBQUU7UUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQywyQkFBMkIsQ0FDeEQsUUFBUSxFQUNSLEdBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUVGLElBQUksSUFBSSxHQUFHLE1BQU0sZ0JBQWdCLENBQy9CLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFDcEIsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUNsQixRQUFRLEVBQ1IsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUN2QixDQUFDO1FBRUYsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsc0JBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzNCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRixNQUFNLHVCQUF1QixHQUFHLEtBQUssRUFPbkMsU0FBNEMsRUFDNUMsT0FBMEMsRUFDMUMsR0FBaUIsRUFDakIsRUFBRTtRQUNGLElBQUksZUFBZSxHQUFjLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsRUFDakQsZ0JBQWdCLEVBQ2hCLGFBQWEsQ0FBQztRQUNoQixJQUFJO1lBQ0YsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLFlBQVksQ0FDMUMsR0FBRyxFQUNILFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFDcEIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUNuQixDQUFDO1lBRUYsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsZ0JBQWdCLEdBQUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDcEQsYUFBYSxHQUFHLE9BQU8sRUFBRSxNQUFNLENBQUM7YUFDakM7aUJBQU07Z0JBQ0wsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3JELGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNwQztZQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sZUFBSztpQkFDNUIsSUFBSSxDQUFDLDBEQUEwRCxFQUFFO2dCQUNoRSxTQUFTLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDaEMsS0FBSyxFQUNILFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxhQUFhLENBQUMsdUJBQXVCO29CQUM1RCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDNUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxhQUFhLENBQUMsaUJBQWlCO3dCQUN2RCxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDOUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hDLEVBQUUsRUFBRSxnQkFBZ0I7YUFDckIsQ0FBQztpQkFDRCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFdEIsSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQ2hELFlBQVk7Z0JBQ1osTUFBTSxXQUFXLEdBQUcsTUFBTSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2hFLGVBQWUsR0FBRyxNQUFNLGdCQUFnQixDQUN0QyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQ3BCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsV0FBVyxFQUNYLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FDdkIsQ0FBQzthQUNIO1lBRUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDO1NBQzVCO1FBQUMsT0FBTyxLQUFVLEVBQUU7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLENBQUMsT0FBTyxFQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FDaEQsQ0FBQztZQUNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFDM0IsU0FBNEMsRUFDNUMsTUFBYyxFQUNkLFFBQWdCLElBQUksRUFDcEIsRUFBRTtRQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsY0FBYyxDQUFDO1lBQ25ELG1CQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBRSxDQUFDLFFBQVE7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDekIsbUJBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFFLENBQUMsUUFBUSxDQUM5QyxDQUFDO1FBQ0gsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLFVBQVUsQ0FBQztRQUU3QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNyRSxPQUFPLElBQUksc0JBQVMsQ0FBQyxPQUFPLENBQUM7YUFDMUIsWUFBWSxDQUFDLG1CQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBRSxDQUFDLFFBQVEsQ0FBQzthQUM1RCxZQUFZLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUM7SUFFRixLQUFLLFVBQVUsWUFBWTtRQUN6QixNQUFNLEdBQUcsR0FBRyxNQUFNLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6QyxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLENBQUM7WUFDRCxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU07U0FDbEMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxVQUFVLGlCQUFpQixDQUM5QixTQUFpRCxFQUNqRCxPQUErQyxFQUMvQyxHQUF1QixFQUN2QixRQUFnQjtRQUVoQixNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FDN0QsUUFBUSxFQUNSLEdBQVUsRUFDVixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FDMUMsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sZ0JBQWdCLENBQ2pDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFDcEIsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUNsQixRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFDMUIsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUN2QixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxVQUFVLGFBQWEsQ0FBQyxNQUFnQjtRQUMzQyxNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QyxJQUFJLFNBQTZCLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9CLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxTQUFTLEdBQUcsQ0FBQyxDQUFDO2FBQ2Y7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sS0FBSyxDQUFDLFNBQVMsU0FBUyx3Q0FBd0MsQ0FBQyxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDO1FBQ3pCLDRDQUE0QztRQUM1Qyw0Q0FBNEM7UUFDNUMsNENBQTRDO1FBQzVDLDRDQUE0QztRQUM1Qyw0Q0FBNEM7UUFDNUMsNENBQTRDO1FBQzVDLDRDQUE0QztRQUM1Qyw0Q0FBNEM7UUFDNUMsNENBQTRDO0tBQzdDLENBQUMsQ0FBQztJQUVILFNBQVMscUJBQXFCLENBQUMsUUFBZ0I7UUFDN0MsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxRQUFRLHdCQUF3QixDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRUQsS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFxQixFQUFFLEVBQVUsRUFBRSxFQUFXO1FBQ3hFLElBQUksRUFBRSxLQUFLLGNBQUssQ0FBQyxLQUFLLEVBQUU7WUFDdEIsT0FBTztnQkFDTCxJQUFJLEVBQ0YsT0FBUSxHQUFHLENBQUMsTUFBYyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU87b0JBQ3pELFdBQVc7Z0JBQ2IsT0FBTyxFQUFFLFNBQVM7YUFDbkIsQ0FBQztTQUNIO1FBQ0QsSUFBSTtZQUNGLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM1QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO1NBQzVDO1FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUk7YUFDcEUsT0FBTyxDQUFDO1FBQ1gsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLFFBQVEsSUFBSSxPQUFPLEVBQUUsaUJBQWlCLENBQUM7UUFDakUsRUFBRSxJQUFJLFFBQVEsSUFBSSxJQUFBLDRCQUFxQixFQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUV0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsS0FBSyxVQUFVLGNBQWMsQ0FDM0IsR0FBcUIsRUFDckIsT0FBNkMsRUFDN0MsUUFBZ0I7UUFFaEIsSUFBSSxNQUFNLElBQUssR0FBRyxDQUFDLE1BQThCO1lBQUUsT0FBTztRQUMxRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLGNBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO1lBQ3ZELFNBQVMsSUFBSSxPQUFPO1lBQ3BCLENBQUMsQ0FBQyxNQUFPLE9BQTBCLENBQUMsT0FBTyxDQUN6QyxRQUFRLEVBQ1IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN0QyxDQUFDLEVBQ0Y7WUFDQSxNQUFNLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELEtBQUssVUFBVSxtQkFBbUIsQ0FDaEMsSUFBWSxFQUNaLEVBQVUsRUFDVixFQUFVLEVBQ1YsT0FBZ0I7UUFFaEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxlQUFLO2FBQ3BCLElBQUksQ0FDSCxHQUFHLFNBQVMsQ0FBQyxXQUFXLFdBQVcsRUFDbkM7WUFDRSxFQUFFLEVBQUUsSUFBSTtZQUNSLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLEVBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDbEUsRUFDRDtZQUNFLE9BQU8sRUFBRSxlQUFRO1NBQ2xCLENBQ0Y7YUFDQSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1YsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLFVBQVUsYUFBYSxDQUMxQixJQUFZLEVBQ1osRUFBVSxFQUNWLFdBQW1CLEVBQ25CLFNBQWlCLEVBQ2pCLE9BQWdCO1FBRWhCLE1BQU0sR0FBRyxHQUFHLE1BQU0sZUFBSzthQUNwQixJQUFJLENBQ0gsR0FBRyxTQUFTLENBQUMsV0FBVyxTQUFTLEVBQ2pDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUM3QztZQUNFLE9BQU8sRUFBRSxlQUFRO1NBQ2xCLENBQ0Y7YUFDQSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFMUIsT0FBTyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU87UUFDTCx1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQy9CLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBRTlELElBQUksTUFBTSxHQUFhLEVBQUUsQ0FBQztZQUMxQixJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO2dCQUNuQyxNQUFNLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3ZEO1lBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixHQUFHLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQzthQUN6RDtZQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxNQUFNLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQ2hDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxTQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQzFELE1BQU0sT0FBTyxHQUFtQixFQUFFLENBQUM7WUFDbkMsTUFBTSxTQUFTLEdBQW1CLEVBQUUsQ0FBQztZQUNyQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ25CLGFBQWE7Z0JBQ2IsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQUU7b0JBQy9ELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztpQkFDNUM7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sWUFBWSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtvQkFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDakI7cUJBQU07b0JBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbkI7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBQ0YsU0FBUyxDQUFDLE1BQU07Z0JBQ2QsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLENBQUMseUJBQXlCLENBQzVCLE1BQU0sRUFDTixFQUFFLENBQUMsUUFBUSxFQUFFLEVBQ2IsUUFBUSxFQUNSLFNBQVMsRUFDVCxFQUFFLElBQUksRUFBRSxDQUFDLFNBQVUsRUFDbkIsSUFBSSxzQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUNuQixDQUNGLENBQUM7WUFDSixPQUFPLENBQUMsTUFBTTtnQkFDWixNQUFNLENBQUMsSUFBSSxDQUNULElBQUksQ0FBQyx1QkFBdUIsQ0FDMUIsTUFBTSxFQUNOLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFDYixRQUFRLEVBQ1IsT0FBTyxFQUNQLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsQ0FDbkIsQ0FDRixDQUFDO1lBQ0osT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELGlCQUFpQjtRQUNqQixLQUFLLENBQUMsWUFBWSxDQUF1QixLQUFRLEVBQUUsT0FBZTtZQUNoRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRW5DLElBQUksQ0FBQyxVQUFVO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNwRCxNQUFNLE1BQU0sR0FBRyxNQUFNLG1CQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsTUFBTTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDakQsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxjQUFjO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUU3RCxJQUFJO2dCQUNGLE1BQU0sVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzFCO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBSSxFQUFFLFFBQVM7WUFDckUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDNUQ7WUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sQ0FBQyxHQUFHLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUUxQixJQUFJLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQy9CLElBQUksRUFDSixFQUFFLEVBQ0YsR0FBRyxFQUNILE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxzQkFBUyxDQUFDLENBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUNoQyxRQUFRLENBQ1QsQ0FBQztnQkFDRixPQUFPLFFBQWUsQ0FBQzthQUN4QjtpQkFBTTtnQkFDTCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQ3BDLElBQUksRUFDSixFQUFFLEVBQ0YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxzQkFBUyxDQUFDLENBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUNoQyxRQUFRLENBQ1QsQ0FBQztnQkFDRixPQUFPLFFBQWUsQ0FBQzthQUN4QjtZQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FDcEMsSUFBSSxFQUNKLEVBQUUsRUFDRixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixJQUFJLHNCQUFTLENBQUMsQ0FBRSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQ2hDLFFBQVEsQ0FDVCxDQUFDO1lBQ0YsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUNELEtBQUssQ0FBQyx5QkFBeUIsQ0FDN0IsS0FBMEMsRUFDMUMsV0FBbUIsRUFDbkIsR0FBTTtZQUVOLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QyxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVELE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQXVCLEtBQVEsRUFBRSxHQUFXO1lBQzVELFFBQVEsS0FBSyxFQUFFO2dCQUNiLEtBQUssY0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNqQixPQUFPLGdCQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNoQztnQkFDRCxLQUFLLGNBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDZixPQUFPLEdBQUcsQ0FBQztpQkFDWjtnQkFDRCxLQUFLLGNBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDbkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsY0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN6QyxNQUFNLElBQUksR0FBRyxpQkFBTyxDQUFDLG1CQUFtQixDQUFDLGtCQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ25FLE9BQU8sSUFBQSw0QkFBaUIsRUFDdEIsSUFBSSxDQUFDLEtBQUssRUFDVixpQkFBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUNsQyxDQUFDO2lCQUNIO2dCQUNELE9BQU8sQ0FBQyxDQUFDO29CQUNQLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQVEsQ0FBQztvQkFDM0MsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQzthQUNGO1FBQ0gsQ0FBQztRQUNELFlBQVk7UUFDWixlQUFlO1FBQ2YsS0FBSztRQUNMLFlBQVk7UUFDWixZQUFZLENBQ1YsVUFBYSxFQUNiLE1BQTBCO1lBRTFCLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQUksS0FBd0IsRUFBRSxLQUFhO1lBQ3RELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLGNBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDOUIsS0FBSyxHQUFHLG1CQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pDO1lBRUQsSUFBSSxHQUFHLEdBQUcsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUM3QixTQUFTLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FDckMsQ0FBQztZQUVGLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDOUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDekM7WUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxXQUFXLEVBQUUsS0FBSyxFQUNoQixTQUFTLEVBQ1QsT0FBTyxFQUNQLEdBQUcsRUFDSCxNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsRUFBRTtZQUNGLFlBQVk7WUFDWixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUN2QixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtvQkFDM0QsWUFBWTtvQkFDWixxQkFBcUIsQ0FBQyxjQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztpQkFDOUQ7YUFDRjtZQUVELElBQUksU0FBUyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQ25DLE1BQU0sYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDakU7WUFFRCxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNSLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3RFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxzQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDNUM7WUFDRCxvREFBb0Q7WUFDcEQsb0NBQW9DO1lBQ3BDLElBQUk7WUFFSixJQUNFLENBQUMsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFDeEU7Z0JBQ0EsTUFBTSxjQUFjLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFFN0MsTUFBTSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsa0JBQWtCLENBQzVDLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsRUFDbEIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUM3QixRQUFRLEVBQ1IsUUFBUSxDQUNULENBQUM7Z0JBRUYsT0FBTyxHQUFHLENBQUM7YUFDWjtpQkFBTTtnQkFDTCxNQUFNLEVBQUU7Z0JBQ04sZ0NBQWdDO2dCQUNoQyxVQUFVLElBQUksR0FBRyxDQUFDLE1BQU07b0JBQ3hCLFFBQVE7b0JBQ1IsQ0FBQyxNQUFNLGFBQWEsQ0FDbEIsR0FBRyxDQUFDLGVBQWUsRUFDbkIsUUFBUSxFQUNSLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUNwQixJQUFBLHFCQUFjLEVBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUMxQyxDQUFDO29CQUNBLENBQUMsQ0FBQyxRQUFRO29CQUNWLENBQUMsQ0FBQyxJQUFBLHlCQUFrQixFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBRWxELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRXBDLElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRTtvQkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2lCQUN6QztnQkFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxvQkFBb0IsQ0FDOUMsTUFBTSxFQUNOLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsUUFBUSxFQUNSLEdBQUcsRUFDSCxJQUFJLHNCQUFTLENBQUMsR0FBRyxDQUFDLEVBQ2xCLEVBQUUsRUFDRixRQUFRLEVBQ1IsUUFBUSxDQUNULENBQUM7Z0JBRUYsT0FBTyxHQUFHLENBQUM7YUFDWjtRQUNILENBQUM7UUFDRCxJQUFJLEVBQUUsS0FBSyxFQUNULEtBQWlDLEVBQ2pDLEtBQWEsRUFDYixJQUFVLEVBQ0ksRUFBRTtZQUNoQixPQUFPLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNEOzs7Ozs7V0FNRztRQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTTtZQUNsRSxNQUFNLEtBQUssR0FBRyxJQUFJLHlCQUFlLENBQy9CLDBCQUFnQixFQUNoQix5QkFBZSxFQUNmLE1BQU0sQ0FDUCxDQUFDO1lBQ0YsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNuRCxNQUFNLEVBQUUsR0FBRyxJQUFJLHlCQUFlLENBQUMsa0NBQXdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUN6RSxDQUNFLE1BQU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUU7Z0JBQ2pFLFFBQVEsRUFBRSxPQUFPO2FBQ2xCLENBQUMsQ0FDSCxDQUFDLElBQUksRUFBRSxDQUFDO1lBRVQsTUFBTSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FDL0MsWUFBWSxFQUNaLFFBQVEsRUFDUjtnQkFDRSxRQUFRLEVBQUUsT0FBTzthQUNsQixDQUNGLENBQUM7WUFDRixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDRDs7Ozs7V0FLRztRQUNILEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU07WUFDMUQsTUFBTSxFQUFFLEdBQUcsSUFBSSx5QkFBZSxDQUFDLDBCQUFnQixFQUFFLHlCQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUUsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxQyxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQ3RELE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUN6QixRQUFRLEVBQ1I7Z0JBQ0UsUUFBUSxFQUFFLE9BQU87YUFDbEIsQ0FDRixDQUFDO1lBQ0YsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUMvQyxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFaEQsT0FBTyxNQUFNLFFBQVEsQ0FBQyxlQUFlLENBQ25DLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFDakIsT0FBTyxDQUFDLE9BQU8sRUFDZixNQUFNLENBQ1AsQ0FBQztRQUNKLENBQUM7UUFDRCxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEdBQW1CLE1BQU0sS0FBSyxDQUFDLGNBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RCxPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUc7WUFDN0IsSUFDRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQ3ZCLENBQUMsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUNoRDtnQkFDQSxPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsT0FBTyxNQUFNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsWUFBWTtRQUNaLFdBQVc7S0FDWixDQUFDO0FBQ0osQ0FBQztBQTlwQkQsb0NBOHBCQyJ9 diff --git a/dist/heartbeat/index.d.ts b/dist/heartbeat/index.d.ts index f8964fc6a..f119e8d9b 100644 --- a/dist/heartbeat/index.d.ts +++ b/dist/heartbeat/index.d.ts @@ -1,5 +1,5 @@ import { StatusResp } from "./resp"; -export declare type BridgeHeartbeat = { +export type BridgeHeartbeat = { status(): Promise; }; export declare function bridgeHeartbeat(baseURL: string): BridgeHeartbeat; diff --git a/dist/heartbeat/index.d.ts.map b/dist/heartbeat/index.d.ts.map index bde15c50d..a43856854 100644 --- a/dist/heartbeat/index.d.ts.map +++ b/dist/heartbeat/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heartbeat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,oBAAY,eAAe,GAAG;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAWhE"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heartbeat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAWhE"} \ No newline at end of file diff --git a/dist/heartbeat/resp.d.ts b/dist/heartbeat/resp.d.ts index 6ffa07b84..978e3f406 100644 --- a/dist/heartbeat/resp.d.ts +++ b/dist/heartbeat/resp.d.ts @@ -1,16 +1,16 @@ -declare type DeathReason = { +type DeathReason = { component: "node" | "validator" | "balance"; error: string; }; -declare type ValidatorStatus = { +type ValidatorStatus = { status: "alive" | "dead"; death_reason?: DeathReason; }; -declare type ChainStatus = { +type ChainStatus = { bridge_alive: boolean; validators: ValidatorStatus[]; }; -export declare type StatusResp = { +export type StatusResp = { [chainNonce: string]: ChainStatus; }; export {}; diff --git a/dist/heartbeat/resp.d.ts.map b/dist/heartbeat/resp.d.ts.map index fa5f4b376..c3d1f3cf5 100644 --- a/dist/heartbeat/resp.d.ts.map +++ b/dist/heartbeat/resp.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"resp.d.ts","sourceRoot":"","sources":["../../src/heartbeat/resp.ts"],"names":[],"mappings":"AAAA,aAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,aAAK,eAAe,GAAG;IACrB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,aAAK,WAAW,GAAG;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC,CAAC"} \ No newline at end of file +{"version":3,"file":"resp.d.ts","sourceRoot":"","sources":["../../src/heartbeat/resp.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC,CAAC"} \ No newline at end of file diff --git a/dist/helpers/algorand.d.ts b/dist/helpers/algorand.d.ts index a74e8191c..5f03646e9 100644 --- a/dist/helpers/algorand.d.ts +++ b/dist/helpers/algorand.d.ts @@ -12,10 +12,10 @@ import { import MyAlgoConnect from "@randlabs/myalgo-connect"; import { EvNotifier } from "../notifier"; import { BalanceCheck, FeeMargins, GetFeeMargins, GetTokenURI } from "./chain"; -declare type TxResp = { +type TxResp = { txId: string; }; -declare type AlgoNft = { +type AlgoNft = { "metadata-hash"?: string; name?: string; "unit-name"?: string; @@ -23,12 +23,12 @@ declare type AlgoNft = { creator: string; nftId: number; }; -declare type SignedTxn = { +type SignedTxn = { txID?: string; blob: string; }; -declare type Ledger = "MainNet" | "TestNet" | "any"; -declare type BrowserSigner = { +type Ledger = "MainNet" | "TestNet" | "any"; +type BrowserSigner = { accounts(args: { ledger: Ledger }): Promise< { address: string; @@ -41,14 +41,14 @@ declare type BrowserSigner = { ): Promise; send(info: { ledger: Ledger; tx: string }): Promise; }; -export declare type ClaimNftInfo = { +export type ClaimNftInfo = { appId: number; nftId: number; }; /** * Selected address & ledger must be given explicitly */ -export declare type AlgoSignerH = { +export type AlgoSignerH = { readonly algoSigner: BrowserSigner; readonly address: string; readonly ledger: Ledger; @@ -64,11 +64,11 @@ export declare function algoSignerWrapper( algod: algosdk.Algodv2, acc: algosdk.Account ): AlgoSignerH; -export declare type FullClaimNft = ClaimNftInfo & { +export type FullClaimNft = ClaimNftInfo & { name: string; uri: string; }; -export declare type AlgorandHelper = ChainNonceGet & +export type AlgorandHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & @@ -94,7 +94,7 @@ export declare type AlgorandHelper = ChainNonceGet & } & GetFeeMargins & BalanceCheck & GetTokenURI; -export declare type AlgorandParams = { +export type AlgorandParams = { algodApiKey: string; algodUri: string; indexerUri: string; diff --git a/dist/helpers/algorand.d.ts.map b/dist/helpers/algorand.d.ts.map index a41513853..1cc851159 100644 --- a/dist/helpers/algorand.d.ts.map +++ b/dist/helpers/algorand.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"algorand.d.ts","sourceRoot":"","sources":["../../src/helpers/algorand.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"algorand.d.ts","sourceRoot":"","sources":["../../src/helpers/algorand.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/aptos/index.d.ts b/dist/helpers/aptos/index.d.ts index d9de3673b..d1fd17a80 100644 --- a/dist/helpers/aptos/index.d.ts +++ b/dist/helpers/aptos/index.d.ts @@ -13,7 +13,7 @@ import { } from "../chain"; import { AptosAccount, AptosClient, HexString } from "aptos"; import { EvNotifier } from "../../notifier"; -export declare type AptosNFT = { +export type AptosNFT = { collection_creator: string; collection_name: string; token_name: string; @@ -26,21 +26,21 @@ export declare type AptosNFT = { * @param uri The URI which the NFT points to * @param createCollection set this as true if u set collection as undefined. it will create a new collection. */ -export declare type AptosMintArgs = { +export type AptosMintArgs = { collection: string | undefined; name: string; description: string; uri: string; createCollection: boolean; }; -export declare type AptosClaimArgs = { +export type AptosClaimArgs = { sender: HexString; propertyVersion: number; collectionName: string; creator: string; name: string; }; -export declare type AptosHelper = ChainNonceGet & +export type AptosHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & @@ -53,7 +53,7 @@ export declare type AptosHelper = ChainNonceGet & BalanceCheck & { setPetraSigner(signer: any): void; }; -export declare type AptosParams = { +export type AptosParams = { feeMargin: FeeMargins; rpcUrl: string; xpnft: string; diff --git a/dist/helpers/aptos/index.d.ts.map b/dist/helpers/aptos/index.d.ts.map index 0462b2ff9..b321f7d63 100644 --- a/dist/helpers/aptos/index.d.ts.map +++ b/dist/helpers/aptos/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EAGV,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,oBAAY,QAAQ,GAAG;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,oBAAY,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,oBAAY,cAAc,GAAG;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,WAAW,GAAG,aAAa,GACrC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,cAAc,CAAC,QAAQ,CAAC,GACxB,eAAe,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,aAAa,GACjB,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,GAC5C,WAAW,CAAC,WAAW,CAAC,GACxB,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC9C,YAAY,GAAG;IACb,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CACnC,CAAC;AAEJ,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAChC,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,GACR,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAiJpC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EAGV,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,aAAa,GACrC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,cAAc,CAAC,QAAQ,CAAC,GACxB,eAAe,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,aAAa,GACjB,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,GAC5C,WAAW,CAAC,WAAW,CAAC,GACxB,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC9C,YAAY,GAAG;IACb,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CACnC,CAAC;AAEJ,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAChC,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,GACR,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAiJpC"} \ No newline at end of file diff --git a/dist/helpers/chain.d.ts b/dist/helpers/chain.d.ts index 6eb3a664a..afce1d337 100644 --- a/dist/helpers/chain.d.ts +++ b/dist/helpers/chain.d.ts @@ -4,7 +4,7 @@ import { ChainNonce } from "../type-utils"; /** * NFT Info */ -export declare type NftInfo = { +export type NftInfo = { readonly uri: string; readonly native: Raw; readonly collectionIdent: string; @@ -158,7 +158,7 @@ export interface EstimateTxFeesBatch { metadatas: NftInfo[] ): Promise; } -export declare type WhitelistCheck = { +export type WhitelistCheck = { isNftWhitelisted(nft: NftInfo): Promise; }; export interface GetProvider { diff --git a/dist/helpers/chain.d.ts.map b/dist/helpers/chain.d.ts.map index fbf52b75b..78769c54b 100644 --- a/dist/helpers/chain.d.ts.map +++ b/dist/helpers/chain.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/helpers/chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/helpers/chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/dfinity/dfinity.d.ts b/dist/helpers/dfinity/dfinity.d.ts index 2794e4eeb..701923752 100644 --- a/dist/helpers/dfinity/dfinity.d.ts +++ b/dist/helpers/dfinity/dfinity.d.ts @@ -15,16 +15,16 @@ import { UnfreezeForeignNft, ValidateAddress, } from "../chain"; -export declare type DfinitySigner = Identity; -export declare type DfinityNft = { +export type DfinitySigner = Identity; +export type DfinityNft = { canisterId: string; tokenId: string; }; -export declare type DfinityMintArgs = { +export type DfinityMintArgs = { canisterId?: string; uri: string; }; -export declare type User = +export type User = | { principal: Principal; } @@ -35,7 +35,7 @@ export interface MintRequest { to: User; metadata: [] | [Array]; } -export declare type DfinityHelper = ChainNonceGet & +export type DfinityHelper = ChainNonceGet & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & @@ -50,7 +50,7 @@ export declare type DfinityHelper = ChainNonceGet & MintNft & { nftList(owner: string, contract: string): Promise[]>; }; -export declare type DfinityParams = { +export type DfinityParams = { agent: HttpAgent; bridgeContract: Principal; xpnftId: Principal; diff --git a/dist/helpers/dfinity/dfinity.d.ts.map b/dist/helpers/dfinity/dfinity.d.ts.map index 88ea7d404..efb495904 100644 --- a/dist/helpers/dfinity/dfinity.d.ts.map +++ b/dist/helpers/dfinity/dfinity.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"dfinity.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/dfinity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,QAAQ,EACR,cAAc,EACf,MAAM,gBAAgB,CAAC;AAexB,OAAO,EAAE,iBAAiB,EAAuB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,UAAU,CAAC;AAIlB,oBAAY,aAAa,GAAG,QAAQ,CAAC;AAErC,oBAAY,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAyBF,oBAAY,IAAI,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC7E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAChC;AAcD,oBAAY,aAAa,GAAG,aAAa,GACvC,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,cAAc,CAAC,UAAU,CAAC,GAC1B,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CACxC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EACzD,aAAa,CACd,GACD,YAAY,GACZ,aAAa,GACb,OAAO,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG;IACxD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;CAC1E,CAAC;AAEJ,oBAAY,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,aAAa,CAAC,CA8NxB"} \ No newline at end of file +{"version":3,"file":"dfinity.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/dfinity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,QAAQ,EACR,cAAc,EACf,MAAM,gBAAgB,CAAC;AAexB,OAAO,EAAE,iBAAiB,EAAuB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAyBF,MAAM,MAAM,IAAI,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC7E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAChC;AAcD,MAAM,MAAM,aAAa,GAAG,aAAa,GACvC,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,cAAc,CAAC,UAAU,CAAC,GAC1B,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CACxC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EACzD,aAAa,CACd,GACD,YAAY,GACZ,aAAa,GACb,OAAO,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG;IACxD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;CAC1E,CAAC;AAEJ,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,aAAa,CAAC,CA8NxB"} \ No newline at end of file diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts index 702c0e82b..57f9ae847 100644 --- a/dist/helpers/elrond.d.ts +++ b/dist/helpers/elrond.d.ts @@ -35,15 +35,15 @@ import { ValidateAddress, } from ".."; import { EvNotifier } from "../notifier"; -declare type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; +type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; /** * Information associated with an ESDT Token */ -export declare type EsdtTokenInfo = { +export type EsdtTokenInfo = { readonly balance: 1 | string; readonly tokenIdentifier: string; }; -declare type BEsdtNftInfo = { +type BEsdtNftInfo = { readonly attributes?: string[]; readonly creator: string; readonly name: string; @@ -54,11 +54,11 @@ declare type BEsdtNftInfo = { /** * Information associated with an ESDT NFT */ -export declare type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; +export type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; /** * arguments required to issue an NFT */ -export declare type NftIssueArgs = { +export type NftIssueArgs = { readonly identifier: string; readonly uris: Array; readonly name: string; @@ -99,7 +99,7 @@ export interface IssueESDTNFT { * ESDTRoleNFTBurn: Allow burning NFTs * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) */ -export declare type ESDTRole = +export type ESDTRole = | "ESDTRoleNFTCreate" | "ESDTRoleNFTBurn" | "ESDTRoleNFTAddQuantity"; @@ -143,7 +143,7 @@ export interface ElrondRawUnsignedTxn { /** * Traits implemented by this module */ -export declare type ElrondHelper = BalanceCheck & +export type ElrondHelper = BalanceCheck & TransferNftForeign & UnfreezeForeignNft & TransferNftForeignBatch & diff --git a/dist/helpers/elrond.d.ts.map b/dist/helpers/elrond.d.ts.map index 07e725763..c9093644b 100644 --- a/dist/helpers/elrond.d.ts.map +++ b/dist/helpers/elrond.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"elrond.d.ts","sourceRoot":"","sources":["../../src/helpers/elrond.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"elrond.d.ts","sourceRoot":"","sources":["../../src/helpers/elrond.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/near.d.ts b/dist/helpers/near.d.ts index c4386e117..99a5fdb0e 100644 --- a/dist/helpers/near.d.ts +++ b/dist/helpers/near.d.ts @@ -15,12 +15,12 @@ import { BalanceCheck, PreTransfer, } from "./chain"; -declare type NearTxResult = [FinalExecutionOutcome, any]; -declare type NearPreTransferArgs = { +type NearTxResult = [FinalExecutionOutcome, any]; +type NearPreTransferArgs = { to: string; receiver: string; }; -export declare type NearParams = { +export type NearParams = { readonly networkId: string; readonly nonce: number; readonly rpcUrl: string; @@ -31,11 +31,11 @@ export declare type NearParams = { readonly walletUrl: string; readonly helperUrl: string; }; -export declare type NearNFT = { +export type NearNFT = { tokenId: string; contract: string; }; -export declare type Metadata = { +export type Metadata = { title?: string; description?: string; media?: string; @@ -59,7 +59,7 @@ interface BrowserMethods { getContract(signer: Account, _contract: string): Promise; getUserMinter(keypair: string, address: string): Promise; } -export declare type NearHelper = ChainNonceGet & +export type NearHelper = ChainNonceGet & BalanceCheck & TransferNftForeign & UnfreezeForeignNft & diff --git a/dist/helpers/near.d.ts.map b/dist/helpers/near.d.ts.map index f74ef6fc1..2dc06b636 100644 --- a/dist/helpers/near.d.ts.map +++ b/dist/helpers/near.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/helpers/near.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/helpers/near.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/secret.d.ts b/dist/helpers/secret.d.ts index d706a7e96..deffd6632 100644 --- a/dist/helpers/secret.d.ts +++ b/dist/helpers/secret.d.ts @@ -1,4 +1,4 @@ -import { SecretNetworkClient, TxResponse } from "secretjs"; +import { SecretNetworkClient, Tx } from "secretjs"; import { Extension } from "secretjs/dist/extensions/snip721/types"; import { EvNotifier } from "../notifier"; import { @@ -15,7 +15,7 @@ import { UnfreezeForeignNft, ValidateAddress, } from "./chain"; -export declare type SecretNftInfo = { +export type SecretNftInfo = { contract: string; contractHash: string; chainId: string; @@ -23,17 +23,13 @@ export declare type SecretNftInfo = { vk: string; metadata: Extension | undefined; }; -export declare type SecretMintArgs = { +export type SecretMintArgs = { url: string; contract?: SecretContract; }; -declare type SecretSigner = SecretNetworkClient; -export declare type SecretHelper = TransferNftForeign< - SecretSigner, - SecretNftInfo, - TxResponse -> & - UnfreezeForeignNft & +type SecretSigner = SecretNetworkClient; +export type SecretHelper = TransferNftForeign & + UnfreezeForeignNft & ValidateAddress & EstimateTxFees & ChainNonceGet & @@ -42,7 +38,7 @@ export declare type SecretHelper = TransferNftForeign< GetFeeMargins & { XpNft: string; } & GetProvider & - MintNft & { + MintNft & { nftList( owner: string, viewingKey: string, @@ -53,17 +49,17 @@ export declare type SecretHelper = TransferNftForeign< client: SecretNetworkClient, contract: string, vk: string - ): Promise; + ): Promise; isApprovedForMinter( sender: SecretSigner, nft: NftInfo ): Promise; }; -export declare type SecretContract = { +export type SecretContract = { contractAddress: string; codeHash: string; }; -export declare type SecretParams = { +export type SecretParams = { rpcUrl: string; chainId: string; notifier: EvNotifier; diff --git a/dist/helpers/secret.d.ts.map b/dist/helpers/secret.d.ts.map index 2d8231bee..46bc76c14 100644 --- a/dist/helpers/secret.d.ts.map +++ b/dist/helpers/secret.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/helpers/secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,mBAAmB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EACL,SAAS,EAEV,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,oBAAY,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC;AACF,oBAAY,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,aAAK,YAAY,GAAG,mBAAmB,CAAC;AAMxC,oBAAY,YAAY,GAAG,kBAAkB,CAC3C,YAAY,EACZ,aAAa,EACb,UAAU,CACX,GACC,kBAAkB,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,GAC3D,eAAe,GACf,cAAc,CAAC,aAAa,CAAC,GAC7B,aAAa,GACb,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,GAC3D,YAAY,GACZ,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC,mBAAmB,CAAC,GACpE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG;IAClD,OAAO,CACL,KAAK,EAAE,MAAM,EAEb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrC,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,mBAAmB,CACjB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAEJ,oBAAY,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAQF,wBAAsB,mBAAmB,CACvC,CAAC,EAAE,YAAY,GACd,OAAO,CAAC,YAAY,CAAC,CAmQvB"} \ No newline at end of file +{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/helpers/secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,mBAAmB,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,SAAS,EAEV,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG,mBAAmB,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAC3C,YAAY,EACZ,aAAa,EACb,EAAE,CACH,GACC,kBAAkB,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE,CAAC,GACnD,eAAe,GACf,cAAc,CAAC,aAAa,CAAC,GAC7B,aAAa,GACb,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,GAC3D,YAAY,GACZ,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC,mBAAmB,CAAC,GACpE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,CAAC,GAAG;IAC1C,OAAO,CACL,KAAK,EAAE,MAAM,EAEb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrC,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,EAAE,CAAC,CAAC;IACf,mBAAmB,CACjB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAQF,wBAAsB,mBAAmB,CACvC,CAAC,EAAE,YAAY,GACd,OAAO,CAAC,YAAY,CAAC,CAwPvB"} \ No newline at end of file diff --git a/dist/helpers/secret.js b/dist/helpers/secret.js index be130790f..a3959436a 100644 --- a/dist/helpers/secret.js +++ b/dist/helpers/secret.js @@ -13,8 +13,8 @@ const TRANSFER_GASL = new bignumber_js_1.default(0); // TODO const UNFREEZE_GASL = new bignumber_js_1.default(0); async function secretHelperFactory(p) { - const queryClient = new secretjs_1.SecretNetworkClient({ - url: p.rpcUrl, + const queryClient = await secretjs_1.SecretNetworkClient.create({ + grpcWebUrl: p.rpcUrl, chainId: p.chainId, }); // TODO @@ -50,8 +50,8 @@ async function secretHelperFactory(p) { const res = await sender.tx.compute.executeContract( { sender: sender.address, - contract_address: nft.native.contract, - code_hash: nft.native.contractHash, + contractAddress: nft.native.contract, + codeHash: nft.native.contractHash, msg: { approve: { spender: p.bridge.contractAddress, @@ -86,8 +86,8 @@ async function secretHelperFactory(p) { const minter = args.contract ? args.contract : p.umt; const tx = await signer.tx.compute.executeContract( { - contract_address: minter.contractAddress, - code_hash: minter.codeHash, + contractAddress: minter.contractAddress, + codeHash: minter.codeHash, msg: { mint_nft: { public_metadata: { @@ -122,27 +122,18 @@ async function secretHelperFactory(p) { address: owner, }, }; - if (!codeHash) { - codeHash = ( - await queryClient.query.compute.codeHashByContractAddress({ - contract_address: contractAddress, - }) - ).code_hash; - } const contract = { address: contractAddress, codeHash: codeHash || "", }; - const { token_list, generic_err } = - await queryClient.query.snip721.GetOwnedTokens({ - contract, - auth, - owner, - }); - if (generic_err) throw new Error(generic_err.msg); + const { token_list } = await queryClient.query.snip721.GetOwnedTokens({ + contract, + auth, + owner, + }); const response = []; await Promise.all( - token_list.tokens.map(async (token) => { + token_list?.tokens?.map(async (token) => { const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ contract, auth, @@ -173,7 +164,7 @@ async function secretHelperFactory(p) { async setViewingKey(client, contract, vk) { const tx = await client.tx.snip721.setViewingKey( { - contract_address: contract, + contractAddress: contract, msg: { set_viewing_key: { key: vk, @@ -194,8 +185,8 @@ async function secretHelperFactory(p) { const tx = await wallet.tx.compute.executeContract( { sender: wallet.address, - contract_address: p.bridge.contractAddress, - code_hash: p.bridge.codeHash, + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, msg: { freeze_nft: { contract: nft.native.contract, @@ -210,7 +201,7 @@ async function secretHelperFactory(p) { minter: mw, }, }, - sent_funds: [ + sentFunds: [ { denom: "uscrt", amount: fee.toString(10), @@ -226,8 +217,8 @@ async function secretHelperFactory(p) { const tx = await wallet.tx.compute.executeContract( { sender: wallet.address, - contract_address: p.bridge.contractAddress, - code_hash: p.bridge.codeHash, + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, msg: { withdraw_nft: { burner: nft.native.contract, @@ -237,7 +228,7 @@ async function secretHelperFactory(p) { chain_nonce: Number(chainNonce), }, }, - sent_funds: [ + sentFunds: [ { denom: "uscrt", amount: fee.toString(10), @@ -252,4 +243,4 @@ async function secretHelperFactory(p) { }; } exports.secretHelperFactory = secretHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFxQztBQUNyQyx1Q0FBbUU7QUF1Rm5FLE9BQU87QUFDUCxNQUFNLGFBQWEsR0FBRyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdkMsT0FBTztBQUNQLE1BQU0sYUFBYSxHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVoQyxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLENBQWU7SUFFZixNQUFNLFdBQVcsR0FBRyxJQUFJLDhCQUFtQixDQUFDO1FBQzFDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNiLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztLQUNuQixDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLEtBQUssVUFBVSxtQkFBbUIsQ0FDaEMsTUFBb0IsRUFDcEIsR0FBMkI7UUFFM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDdkQsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87b0JBQ3ZCLFdBQVcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQzNCO2FBQ0Y7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxlQUFlO2dCQUM1QixRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZO2FBQ2xDO1lBQ0QsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztTQUM3QixDQUFDLENBQUM7UUFDSCxLQUFLLElBQUksSUFBSSxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFxQztBQUNyQyx1Q0FBMkQ7QUF1RjNELE9BQU87QUFDUCxNQUFNLGFBQWEsR0FBRyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdkMsT0FBTztBQUNQLE1BQU0sYUFBYSxHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVoQyxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLENBQWU7SUFFZixNQUFNLFdBQVcsR0FBRyxNQUFNLDhCQUFtQixDQUFDLE1BQU0sQ0FBQztRQUNuRCxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDcEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO0tBQ25CLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFFbkIsS0FBSyxVQUFVLG1CQUFtQixDQUNoQyxNQUFvQixFQUNwQixHQUEyQjtRQUUzQixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUN2RCxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztvQkFDdkIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtpQkFDM0I7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsR0FBRyxDQUFDLGVBQWU7Z0JBQzVCLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVk7YUFDbEM7WUFDRCxRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1NBQzdCLENBQUMsQ0FBQztRQUNILEtBQUssSUFBSSxJQUFJLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENB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 diff --git a/dist/helpers/solana/idl.d.ts b/dist/helpers/solana/idl.d.ts index 4b53ae552..5e3e77a39 100644 --- a/dist/helpers/solana/idl.d.ts +++ b/dist/helpers/solana/idl.d.ts @@ -1,4 +1,4 @@ -export declare type XpBridge = { +export type XpBridge = { version: "0.1.0"; name: "xp_bridge"; instructions: [ diff --git a/dist/helpers/solana/idl.d.ts.map b/dist/helpers/solana/idl.d.ts.map index eb7db4f2e..0abc367e8 100644 --- a/dist/helpers/solana/idl.d.ts.map +++ b/dist/helpers/solana/idl.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/idl.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/idl.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,YAAY,CAAC;YACnB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,eAAe,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;aACF,CAAC;YACF,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,UAAU,CAAC;oBACjB,IAAI,EAAE;wBACJ,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;qBACnB,CAAC;iBACH;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,eAAe,CAAC;YACtB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,eAAe,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;aACF,CAAC;YACF,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,WAAW,CAAC;qBACtB,CAAC;iBACH;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,iBAAiB,CAAC;YACxB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,eAAe,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;aACF,CAAC;YACF,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,aAAa,CAAC;qBACxB,CAAC;iBACH;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,sBAAsB,CAAC;YAC7B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,eAAe,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;aACF,CAAC;YACF,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,kBAAkB,CAAC;qBAC7B,CAAC;iBACH;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,wBAAwB,CAAC;YAC/B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,eAAe,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;aACF,CAAC;YACF,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,oBAAoB,CAAC;qBAC/B,CAAC;iBACH;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,qBAAqB,CAAC;YAC5B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,OAAO,CAAC;oBACd,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,WAAW,CAAC;oBAClB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,cAAc,CAAC;oBACrB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,iBAAiB,CAAC;oBACxB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,iBAAiB,CAAC;oBACxB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,cAAc,CAAC;oBACrB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,eAAe,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;aACF,CAAC;YACF,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,iBAAiB,CAAC;qBAC5B,CAAC;iBACH;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,aAAa,CAAC;YACpB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,WAAW,CAAC;oBAClB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,cAAc,CAAC;oBACrB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,cAAc,CAAC;oBACrB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,eAAe,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;aACF,CAAC;YACF,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,YAAY,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC;iBACZ;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,UAAU,CAAC;oBACjB,IAAI,EAAE,KAAK,CAAC;iBACb;gBACD;oBACE,IAAI,EAAE,YAAY,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC;iBACZ;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,WAAW,CAAC;YAClB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,WAAW,CAAC;oBAClB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC;oBACX,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,cAAc,CAAC;oBACrB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,eAAe,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;aACF,CAAC;YACF,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,YAAY,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC;iBACZ;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,UAAU,CAAC;oBACjB,IAAI,EAAE,KAAK,CAAC;iBACb;gBACD;oBACE,IAAI,EAAE,UAAU,CAAC;oBACjB,IAAI,EAAE,QAAQ,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,YAAY,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC;iBACZ;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,qBAAqB,CAAC;YAC5B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC;oBACX,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,cAAc,CAAC;oBACrB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,OAAO,CAAC;oBACd,KAAK,EAAE,IAAI,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC;iBAChB;gBACD;oBACE,IAAI,EAAE,eAAe,CAAC;oBACtB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;gBACD;oBACE,IAAI,EAAE,gBAAgB,CAAC;oBACvB,KAAK,EAAE,KAAK,CAAC;oBACb,QAAQ,EAAE,KAAK,CAAC;iBACjB;aACF,CAAC;YACF,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE;wBACJ,OAAO,EAAE,iBAAiB,CAAC;qBAC5B,CAAC;iBACH;aACF,CAAC;SACH;KACF,CAAC;IACF,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,QAAQ,CAAC;YACf,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,QAAQ,CAAC;wBACf,IAAI,EAAE,MAAM,CAAC;qBACd;oBACD;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE;4BACJ,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;yBACnB,CAAC;qBACH;oBACD;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,MAAM,CAAC;qBACd;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,gBAAgB,CAAC;YACvB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,MAAM,CAAC;qBACd;iBACF,CAAC;aACH,CAAC;SACH;KACF,CAAC;IACF,KAAK,EAAE;QACL;YACE,IAAI,EAAE,WAAW,CAAC;YAClB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY,CAAC;wBACnB,IAAI,EAAE,IAAI,CAAC;qBACZ;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,aAAa,CAAC;YACpB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY,CAAC;wBACnB,IAAI,EAAE,IAAI,CAAC;qBACZ;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,oBAAoB,CAAC;YAC3B,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY,CAAC;wBACnB,IAAI,EAAE,IAAI,CAAC;qBACZ;oBACD;wBACE,IAAI,EAAE,QAAQ,CAAC;wBACf,IAAI,EAAE;4BACJ,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;yBACnB,CAAC;qBACH;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,iBAAiB,CAAC;YACxB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY,CAAC;wBACnB,IAAI,EAAE,IAAI,CAAC;qBACZ;oBACD;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,IAAI,CAAC;qBACZ;oBACD;wBACE,IAAI,EAAE,YAAY,CAAC;wBACnB,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,MAAM,CAAC;wBACb,IAAI,EAAE,QAAQ,CAAC;qBAChB;oBACD;wBACE,IAAI,EAAE,QAAQ,CAAC;wBACf,IAAI,EAAE,QAAQ,CAAC;qBAChB;oBACD;wBACE,IAAI,EAAE,KAAK,CAAC;wBACZ,IAAI,EAAE,QAAQ,CAAC;qBAChB;oBACD;wBACE,IAAI,EAAE,OAAO,CAAC;wBACd,IAAI,EAAE,WAAW,CAAC;qBACnB;oBACD;wBACE,IAAI,EAAE,YAAY,CAAC;wBACnB,IAAI,EAAE;4BACJ,MAAM,EAAE;gCACN,OAAO,EAAE,kBAAkB,CAAC;6BAC7B,CAAC;yBACH,CAAC;qBACH;oBACD;wBACE,IAAI,EAAE,sBAAsB,CAAC;wBAC7B,IAAI,EAAE;4BACJ,MAAM,EAAE,KAAK,CAAC;yBACf,CAAC;qBACH;oBACD;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE;4BACJ,MAAM,EAAE;gCACN,GAAG,EAAE;oCACH,OAAO,EAAE,eAAe,CAAC;iCAC1B,CAAC;6BACH,CAAC;yBACH,CAAC;qBACH;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,cAAc,CAAC;YACrB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,MAAM,CAAC;wBACb,IAAI,EAAE,CAAC,uBAAuB,CAAC,CAAC;wBAChC,IAAI,EAAE,QAAQ,CAAC;qBAChB;oBACD;wBACE,IAAI,EAAE,QAAQ,CAAC;wBACf,IAAI,EAAE,CAAC,0BAA0B,CAAC,CAAC;wBACnC,IAAI,EAAE,QAAQ,CAAC;qBAChB;oBACD;wBACE,IAAI,EAAE,KAAK,CAAC;wBACZ,IAAI,EAAE,CAAC,6CAA6C,CAAC,CAAC;wBACtD,IAAI,EAAE,QAAQ,CAAC;qBAChB;oBACD;wBACE,IAAI,EAAE,sBAAsB,CAAC;wBAC7B,IAAI,EAAE;4BACJ,yEAAyE;yBAC1E,CAAC;wBACF,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,CAAC,6BAA6B,CAAC,CAAC;wBACtC,IAAI,EAAE;4BACJ,MAAM,EAAE;gCACN,GAAG,EAAE;oCACH,OAAO,EAAE,eAAe,CAAC;iCAC1B,CAAC;6BACH,CAAC;yBACH,CAAC;qBACH;oBACD;wBACE,IAAI,EAAE,YAAY,CAAC;wBACnB,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC;wBACrB,IAAI,EAAE;4BACJ,MAAM,EAAE;gCACN,OAAO,EAAE,kBAAkB,CAAC;6BAC7B,CAAC;yBACH,CAAC;qBACH;oBACD;wBACE,IAAI,EAAE,MAAM,CAAC;wBACb,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;wBACf,IAAI,EAAE;4BACJ,MAAM,EAAE;gCACN,OAAO,EAAE,YAAY,CAAC;6BACvB,CAAC;yBACH,CAAC;qBACH;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,eAAe,CAAC;YACtB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,SAAS,CAAC;wBAChB,IAAI,EAAE,WAAW,CAAC;qBACnB;oBACD;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,MAAM,CAAC;qBACd;oBACD;wBACE,IAAI,EAAE,OAAO,CAAC;wBACd,IAAI,EAAE,IAAI,CAAC;qBACZ;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,kBAAkB,CAAC;YACzB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,MAAM,CAAC;qBACd;oBACD;wBACE,IAAI,EAAE,KAAK,CAAC;wBACZ,IAAI,EAAE,WAAW,CAAC;qBACnB;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,YAAY,CAAC;YACnB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,WAAW,CAAC;wBAClB,IAAI,EAAE;4BACJ,OAAO,EAAE,iBAAiB,CAAC;yBAC5B,CAAC;qBACH;oBACD;wBACE,IAAI,EAAE,WAAW,CAAC;wBAClB,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,OAAO,CAAC;wBACd,IAAI,EAAE,KAAK,CAAC;qBACb;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,kBAAkB,CAAC;YACzB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY,CAAC;wBACnB,IAAI,EAAE,IAAI,CAAC;qBACZ;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,iBAAiB,CAAC;YACxB,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,KAAK,CAAC;qBACb;oBACD;wBACE,IAAI,EAAE,YAAY,CAAC;wBACnB,IAAI,EAAE,IAAI,CAAC;qBACZ;oBACD;wBACE,IAAI,EAAE,UAAU,CAAC;wBACjB,IAAI,EAAE,WAAW,CAAC;qBACnB;oBACD;wBACE,IAAI,EAAE,MAAM,CAAC;wBACb,IAAI,EAAE,WAAW,CAAC;qBACnB;iBACF,CAAC;aACH,CAAC;SACH;QACD;YACE,IAAI,EAAE,iBAAiB,CAAC;YACxB,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM,CAAC;gBACb,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAM,CAAC;qBACd;oBACD;wBACE,IAAI,EAAE,UAAU,CAAC;qBAClB;oBACD;wBACE,IAAI,EAAE,QAAQ,CAAC;qBAChB;iBACF,CAAC;aACH,CAAC;SACH;KACF,CAAC;IACF,MAAM,EAAE;QACN;YACE,IAAI,EAAE,aAAa,CAAC;YACpB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,YAAY,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC;oBACX,KAAK,EAAE,KAAK,CAAC;iBACd;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;iBACb;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE,WAAW,CAAC;oBAClB,KAAK,EAAE,KAAK,CAAC;iBACd;gBACD;oBACE,IAAI,EAAE,UAAU,CAAC;oBACjB,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,KAAK,CAAC;iBACd;gBACD;oBACE,IAAI,EAAE,UAAU,CAAC;oBACjB,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,KAAK,CAAC;iBACd;gBACD;oBACE,IAAI,EAAE,UAAU,CAAC;oBACjB,IAAI,EAAE,KAAK,CAAC;oBACZ,KAAK,EAAE,KAAK,CAAC;iBACd;aACF,CAAC;SACH;QACD;YACE,IAAI,EAAE,aAAa,CAAC;YACpB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,YAAY,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC;oBACX,KAAK,EAAE,KAAK,CAAC;iBACd;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC;iBACb;gBACD;oBACE,IAAI,EAAE,UAAU,CAAC;oBACjB,IAAI,EAAE,MAAM,CAAC;oBACb,KAAK,EAAE,KAAK,CAAC;iBACd;gBACD;oBACE,IAAI,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE,WAAW,CAAC;oBAClB,KAAK,EAAE,KAAK,CAAC;iBACd;gBACD;oBACE,IAAI,EAAE,UAAU,CAAC;oBACjB,IAAI,EAAE,KAAK,CAAC;oBACZ,KAAK,EAAE,KAAK,CAAC;iBACd;aACF,CAAC;SACH;KACF,CAAC;IACF,MAAM,EAAE;QACN;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,QAAQ,CAAC;YACf,GAAG,EAAE,kBAAkB,CAAC;SACzB;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,UAAU,CAAC;YACjB,GAAG,EAAE,oBAAoB,CAAC;SAC3B;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,eAAe,CAAC;YACtB,GAAG,EAAE,gBAAgB,CAAC;SACvB;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,eAAe,CAAC;YACtB,GAAG,EAAE,gBAAgB,CAAC;SACvB;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,yBAAyB,CAAC;YAChC,GAAG,EAAE,4BAA4B,CAAC;SACnC;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,2BAA2B,CAAC;YAClC,GAAG,EAAE,6BAA6B,CAAC;SACpC;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,iBAAiB,CAAC;YACxB,GAAG,EAAE,mBAAmB,CAAC;SAC1B;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,kBAAkB,CAAC;YACzB,GAAG,EAAE,oBAAoB,CAAC;SAC3B;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,aAAa,CAAC;YACpB,GAAG,EAAE,cAAc,CAAC;SACrB;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,iBAAiB,CAAC;YACxB,GAAG,EAAE,mBAAmB,CAAC;SAC1B;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,kBAAkB,CAAC;YACzB,GAAG,EAAE,mBAAmB,CAAC;SAC1B;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,gBAAgB,CAAC;YACvB,GAAG,EAAE,iBAAiB,CAAC;SACxB;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,aAAa,CAAC;YACpB,GAAG,EAAE,cAAc,CAAC;SACrB;QACD;YACE,IAAI,EAAE,IAAI,CAAC;YACX,IAAI,EAAE,iCAAiC,CAAC;YACxC,GAAG,EAAE,oCAAoC,CAAC;SAC3C;KACF,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,GAAG,EAAE,QA+3BjB,CAAC"} \ No newline at end of file diff --git a/dist/helpers/solana/index.d.ts b/dist/helpers/solana/index.d.ts index b61ebba2e..593d9f3fc 100644 --- a/dist/helpers/solana/index.d.ts +++ b/dist/helpers/solana/index.d.ts @@ -13,14 +13,14 @@ import { BalanceCheck, MintNft, } from "../chain"; -export declare type SolanaSigner = Wallet; -export declare type SolanaNft = { +export type SolanaSigner = Wallet; +export type SolanaNft = { nftMint: string; }; -declare type SolanaMintArgs = { +type SolanaMintArgs = { uri: string; }; -export declare type SolanaHelper = ChainNonceGet & +export type SolanaHelper = ChainNonceGet & BalanceCheck & MintNft & TransferNftForeign & @@ -32,7 +32,7 @@ export declare type SolanaHelper = ChainNonceGet & XpNft: string; } & GetFeeMargins & GetProvider; -export declare type SolanaParams = { +export type SolanaParams = { endpoint: string; bridgeContractAddr: string; xpnftAddr: string; diff --git a/dist/helpers/solana/index.d.ts.map b/dist/helpers/solana/index.d.ts.map index c906f3033..5a884f5d9 100644 --- a/dist/helpers/solana/index.d.ts.map +++ b/dist/helpers/solana/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,MAAM,EAKP,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACL,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACR,MAAM,UAAU,CAAC;AAGlB,oBAAY,YAAY,GAAG,MAAM,CAAC;AAElC,oBAAY,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,aAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,YAAY,GAAG,aAAa,GACtC,YAAY,GACZ,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC7C,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,cAAc,CAAC,SAAS,CAAC,GACzB,eAAe,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GACrC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE1B,oBAAY,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AA4DF,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuN5E"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,MAAM,EAKP,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACL,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACR,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,aAAa,GACtC,YAAY,GACZ,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC7C,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,cAAc,CAAC,SAAS,CAAC,GACzB,eAAe,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GACrC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE1B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AA4DF,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuN5E"} \ No newline at end of file diff --git a/dist/helpers/tezos.d.ts b/dist/helpers/tezos.d.ts index b17c82785..59818aad1 100644 --- a/dist/helpers/tezos.d.ts +++ b/dist/helpers/tezos.d.ts @@ -20,20 +20,20 @@ import { UnfreezeForeignNftBatch, EstimateTxFeesBatch, } from "./chain"; -declare type TezosSigner = WalletProvider | Signer; -export declare type TezosNftInfo = { +type TezosSigner = WalletProvider | Signer; +export type TezosNftInfo = { contract: string; token_id: string; amt: number; }; -declare type TezosMintArgs = { +type TezosMintArgs = { identifier: string; contract: string; uri: string; to: string; amt: number; }; -export declare type TezosHelper = TransferNftForeign< +export type TezosHelper = TransferNftForeign< TezosSigner, TezosNftInfo, string @@ -63,7 +63,7 @@ export declare type TezosHelper = TransferNftForeign< } & GetFeeMargins & WhitelistCheck & GetTokenURI; -export declare type TezosParams = { +export type TezosParams = { Tezos: TezosToolkit; notifier: EvNotifier; xpnftAddress: string; diff --git a/dist/helpers/tezos.d.ts.map b/dist/helpers/tezos.d.ts.map index 92475acf3..6462846c6 100644 --- a/dist/helpers/tezos.d.ts.map +++ b/dist/helpers/tezos.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/helpers/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAOL,MAAM,EACN,YAAY,EAIZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,aAAK,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3C,oBAAY,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,aAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oBAAY,WAAW,GAAG,kBAAkB,CAC1C,WAAW,EACX,YAAY,EACZ,MAAM,CACP,GACC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAC3C,YAAY,GACZ,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GACrD,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,mBAAmB,CAAC,YAAY,CAAC,GACjC,eAAe,GACf,cAAc,CAAC,YAAY,CAAC,GAC5B,aAAa,GACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG;IAC1E,mBAAmB,CACjB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,GAAG;IACF,gBAAgB,CACd,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,GACjB,cAAc,CAAC,YAAY,CAAC,GAC5B,WAAW,CAAC;AAEd,oBAAY,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA+OpC"} \ No newline at end of file +{"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/helpers/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAOL,MAAM,EACN,YAAY,EAIZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAC1C,WAAW,EACX,YAAY,EACZ,MAAM,CACP,GACC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAC3C,YAAY,GACZ,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GACrD,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,mBAAmB,CAAC,YAAY,CAAC,GACjC,eAAe,GACf,cAAc,CAAC,YAAY,CAAC,GAC5B,aAAa,GACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG;IAC1E,mBAAmB,CACjB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,GAAG;IACF,gBAAgB,CACd,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,GACjB,cAAc,CAAC,YAAY,CAAC,GAC5B,WAAW,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA+OpC"} \ No newline at end of file diff --git a/dist/helpers/tezos.js b/dist/helpers/tezos.js index dd8ff421a..74c7e8f66 100644 --- a/dist/helpers/tezos.js +++ b/dist/helpers/tezos.js @@ -4,12 +4,19 @@ var __createBinding = (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function () { - return m[k]; - }, - }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if ( + !desc || + ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k]; + }, + }; + } + Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -239,4 +246,4 @@ async function tezosHelperFactory({ }; } exports.tezosHelperFactory = tezosHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV6b3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90ZXpvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMEJBV1k7QUFDWiw4Q0FhMEI7QUFFMUIsc0RBQXdDO0FBQ3hDLGdFQUFxQztBQW9FOUIsS0FBSyxVQUFVLGtCQUFrQixDQUFDLEVBQ3ZDLEtBQUssRUFDTCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGFBQWEsRUFDYixVQUFVLEVBQ1YsU0FBUyxHQUNHO0lBQ1osTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFvQixFQUFFLFNBQWlCLEVBQUUsRUFBRTtRQUM5RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0lBRUYsS0FBSyxVQUFVLFlBQVksQ0FDekIsTUFBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsRUFFOEMsRUFDOUMsTUFBNEI7UUFFNUIsSUFBSSxlQUFlLElBQUksTUFBTSxFQUFFO1lBQzdCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVoQyxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXBELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQixNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsT0FBUSxFQUEyQixDQUFDLElBQUksQ0FBQztTQUMxQzthQUFNO1lBQ0wsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FB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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV6b3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90ZXpvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBCQVdZO0FBQ1osOENBYTBCO0FBRTFCLHNEQUF3QztBQUN4QyxnRUFBcUM7QUFvRTlCLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxFQUN2QyxLQUFLLEVBQ0wsUUFBUSxFQUNSLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLFNBQVMsR0FDRztJQUNaLE1BQU0sV0FBVyxHQUFHLENBQUMsVUFBb0IsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDOUQsT0FBTyxJQUFJLHNCQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQztJQUVGLEtBQUssVUFBVSxZQUFZLENBQ3pCLE1BQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLEVBRThDLEVBQzlDLE1BQTRCO1FBRTVCLElBQUksZUFBZSxJQUFJLE1BQU0sRUFBRTtZQUM3QixLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFaEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVwRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUIsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE9BQVEsRUFBMkIsQ0FBQyxJQUFJLENBQUM7U0FDMUM7YUFBTTtZQUNMLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxNQUFN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 diff --git a/dist/helpers/ton.d.ts b/dist/helpers/ton.d.ts index 3933f63ca..4ee883afc 100644 --- a/dist/helpers/ton.d.ts +++ b/dist/helpers/ton.d.ts @@ -14,17 +14,17 @@ import { } from "./chain"; import { PreTransfer } from ".."; import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; -export declare type TonSigner = { +export type TonSigner = { wallet?: TonWallet; accIdx: number; }; -export declare type TonWalletProvider = { +export type TonWalletProvider = { isTonWallet: boolean; send(method: string, params?: any[]): Promise; onSuccess?(): Promise; on(eventName: string, handler: (...data: any[]) => any): void; }; -export declare type TonArgs = { +export type TonArgs = { wallet: TonhubConnector & TonWalletProvider & Function; config: { seed?: string; @@ -33,10 +33,10 @@ export declare type TonArgs = { [x: string]: any; }; }; -export declare type TonNft = { +export type TonNft = { nftItemAddr: string; }; -export declare type TonHelper = ChainNonceGet & +export type TonHelper = ChainNonceGet & BalanceCheck & PreTransfer & TransferNftForeign & @@ -50,7 +50,7 @@ export declare type TonHelper = ChainNonceGet & tonWalletWrapper: (args: TonArgs) => TonSigner; tonKeeperWrapper: (args: TonArgs) => TonSigner; } & GetFeeMargins; -export declare type TonParams = { +export type TonParams = { tonweb: TonWeb; notifier: EvNotifier; bridgeAddr: string; @@ -58,7 +58,7 @@ export declare type TonParams = { xpnftAddr: string; feeMargin: FeeMargins; }; -declare type MethodMap = { +type MethodMap = { ton_requestAccounts: [undefined, string]; ton_sendTransaction: [ { @@ -70,11 +70,11 @@ declare type MethodMap = { ]; ton_getBalance: [undefined, string]; }; -declare type ResponseUnionType = boolean & +type ResponseUnionType = boolean & TonhubTransactionResponse & { hash: string; }; -declare type TonWallet = { +type TonWallet = { send( method: M, params: MethodMap[M][0] diff --git a/dist/helpers/ton.d.ts.map b/dist/helpers/ton.d.ts.map index 0f4ca60ca..5752b1e90 100644 --- a/dist/helpers/ton.d.ts.map +++ b/dist/helpers/ton.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts index 06b4aa487..7a10600f1 100644 --- a/dist/helpers/tron.d.ts +++ b/dist/helpers/tron.d.ts @@ -22,14 +22,14 @@ import { } from ".."; import { ChainNonceGet } from ".."; import { EvNotifier } from "../notifier"; -declare type TronSender = string | undefined; -export declare type MinterRes = { +type TronSender = string | undefined; +export type MinterRes = { minter: string; xpnft: string; xpnft1155: string; whitelist: string[]; }; -export declare type BaseTronHelper = BalanceCheck & +export type BaseTronHelper = BalanceCheck & MintNft & { /** * @@ -56,7 +56,7 @@ export declare type BaseTronHelper = BalanceCheck & whitelist?: string[] ): Promise; }; -export declare type TronHelper = BaseTronHelper & +export type TronHelper = BaseTronHelper & TransferNftForeign & UnfreezeForeignNft & EstimateTxFees & diff --git a/dist/helpers/tron.d.ts.map b/dist/helpers/tron.d.ts.map index 626b89f0a..a2f186c72 100644 --- a/dist/helpers/tron.d.ts.map +++ b/dist/helpers/tron.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/helpers/tron.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/helpers/tron.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts index aea599b09..9eaeffa92 100644 --- a/dist/helpers/web3.d.ts +++ b/dist/helpers/web3.d.ts @@ -49,7 +49,7 @@ import { EvNotifier } from "../notifier"; /** * Information required to perform NFT transfers in this chain */ -export declare type EthNftInfo = { +export type EthNftInfo = { chainId: string; tokenId: string; owner: string; @@ -65,7 +65,7 @@ export declare type EthNftInfo = { * owner: Owner of the newly minted nft * uri: uri of the nft */ -export declare type MintArgs = { +export type MintArgs = { contract: string; uri: string; }; @@ -85,11 +85,11 @@ export interface Approve { gasPrice?: ethers.BigNumber ): Promise; } -declare type NullableCustomData = Record | undefined; +type NullableCustomData = Record | undefined; /** * Base util traits */ -export declare type BaseWeb3Helper = BalanceCheck & +export type BaseWeb3Helper = BalanceCheck & /** * Mint an nft in the given ERC1155 smart contract * @@ -109,13 +109,13 @@ export declare type BaseWeb3Helper = BalanceCheck & options: MintArgs ): Promise; }; -declare type ExtraArgs = { +type ExtraArgs = { gasPrice: ethers.BigNumber; }; /** * Traits implemented by this module */ -export declare type Web3Helper = BaseWeb3Helper & +export type Web3Helper = BaseWeb3Helper & TransferNftForeign & UnfreezeForeignNft & TransferNftForeignBatch & @@ -166,7 +166,7 @@ export interface Web3Params { nonce: ChainNonce; feeMargin: FeeMargins; } -declare type NftMethodVal = { +type NftMethodVal = { freeze: "freezeErc1155" | "freezeErc721"; validateUnfreeze: "validateUnfreezeErc1155" | "validateUnfreezeErc721"; umt: typeof Erc1155Minter__factory | typeof UserNftMinter__factory; @@ -186,8 +186,8 @@ declare type NftMethodVal = { gasPrice: ethers.BigNumberish | undefined ) => Promise; }; -declare type EthNftMethodVal = NftMethodVal; -declare type NftMethodMap = Record< +type EthNftMethodVal = NftMethodVal; +type NftMethodMap = Record< "ERC1155" | "ERC721", EthNftMethodVal | EthNftMethodVal >; diff --git a/dist/helpers/web3.d.ts.map b/dist/helpers/web3.d.ts.map index 5cdeffe98..74ce3c3f9 100644 --- a/dist/helpers/web3.d.ts.map +++ b/dist/helpers/web3.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/helpers/web3.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/helpers/web3.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/web3_erc20.d.ts b/dist/helpers/web3_erc20.d.ts index 6d86156bd..b506e5dbb 100644 --- a/dist/helpers/web3_erc20.d.ts +++ b/dist/helpers/web3_erc20.d.ts @@ -8,7 +8,7 @@ import { BaseWeb3Helper, Web3Helper, Web3Params } from ".."; export declare function baseWeb3HelperFactory( provider: Provider ): Promise; -export declare type Web3ERC20Params = Web3Params & { +export type Web3ERC20Params = Web3Params & { paymentTokenAddress: string; }; export declare function web3ERC20HelperFactory( diff --git a/dist/helpers/web3_erc20.d.ts.map b/dist/helpers/web3_erc20.d.ts.map index ed90e6be0..9b5549988 100644 --- a/dist/helpers/web3_erc20.d.ts.map +++ b/dist/helpers/web3_erc20.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"web3_erc20.d.ts","sourceRoot":"","sources":["../../src/helpers/web3_erc20.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAOzE,OAAO,EACL,cAAc,EAMd,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AAGZ;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,oBAAY,eAAe,GAAG,UAAU,GAAG;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CAsYrB"} \ No newline at end of file +{"version":3,"file":"web3_erc20.d.ts","sourceRoot":"","sources":["../../src/helpers/web3_erc20.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAOzE,OAAO,EACL,cAAc,EAMd,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AAGZ;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CAsYrB"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 2fd192d9e..a4bdf69ff 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4,12 +4,19 @@ var __createBinding = (Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function () { - return m[k]; - }, - }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if ( + !desc || + ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) + ) { + desc = { + enumerable: true, + get: function () { + return m[k]; + }, + }; + } + Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; @@ -32,4 +39,4 @@ __exportStar(require("./emitter"), exports); __exportStar(require("./factory"), exports); __exportStar(require("./consts"), exports); __exportStar(require("./config"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0IsaURBQStCO0FBQy9CLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6QiwyQ0FBeUIifQ== +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQyxtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLDRDQUEwQjtBQUMxQiwyQ0FBeUI7QUFDekIsMkNBQXlCIn0= diff --git a/dist/notifier/index.d.ts b/dist/notifier/index.d.ts index b1e7086fb..ea992af4a 100644 --- a/dist/notifier/index.d.ts +++ b/dist/notifier/index.d.ts @@ -1,17 +1,17 @@ -export declare type EvNotifier = ReturnType; +export type EvNotifier = ReturnType; export declare function evNotifier(url: string): { notifyWeb3( fromChain: number, fromHash: string, - actionId?: string | undefined, - type?: string | undefined, - toChain?: number | undefined, - txFees?: string | undefined, - senderAddress?: string | undefined, - targetAddress?: string | undefined, - nftUri?: string | undefined, - tokenId?: string | undefined, - contract?: string | undefined + actionId?: string, + type?: string, + toChain?: number, + txFees?: string, + senderAddress?: string, + targetAddress?: string, + nftUri?: string, + tokenId?: string, + contract?: string ): Promise; notifyTron(txHash: string): Promise; notifyElrond( diff --git a/dist/notifier/index.d.ts.map b/dist/notifier/index.d.ts.map index 8ab65439c..78444595a 100644 --- a/dist/notifier/index.d.ts.map +++ b/dist/notifier/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,oBAAY,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM;uBAyBO,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAOjD"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM,aACL,MAAM,SACV,MAAM,YACH,MAAM,WACP,MAAM,kBACC,MAAM,kBACN,MAAM,WACb,MAAM,YACL,MAAM,aACL,MAAM;uBAgBM,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAOjD"} \ No newline at end of file diff --git a/dist/socket.d.ts b/dist/socket.d.ts index c6b1ba0ec..50d6a1134 100644 --- a/dist/socket.d.ts +++ b/dist/socket.d.ts @@ -3,7 +3,7 @@ import { ClaimNftInfo } from "./helpers/algorand"; /** * Tracker for cross chain transaction */ -export declare type TxnSocketHelper = { +export type TxnSocketHelper = { /** * * @param chain Nonce of the target chain @@ -12,7 +12,7 @@ export declare type TxnSocketHelper = { */ waitTxHash(chain: number, action_id: string): Promise; }; -export declare type AlgorandSocketHelper = { +export type AlgorandSocketHelper = { waitAlgorandNft( sourceChain: number, receiver: string, @@ -21,7 +21,7 @@ export declare type AlgorandSocketHelper = { claimNfts(receiver: string): Promise; cleanNfts(owner: string): Promise; }; -declare type DbClaimInfo = { +type DbClaimInfo = { receiver: string; app_id: string; nft_id: string; diff --git a/dist/socket.d.ts.map b/dist/socket.d.ts.map index e097b3e0a..a37ab3a5b 100644 --- a/dist/socket.d.ts.map +++ b/dist/socket.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BlD;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/D,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC;AAsFF,aAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,cAAc,CAAC,GAChD,eAAe,GAAG,oBAAoB,CA0DxC"} \ No newline at end of file +{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BlD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC;AAsFF,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,cAAc,CAAC,GAChD,eAAe,GAAG,oBAAoB,CA0DxC"} \ No newline at end of file diff --git a/dist/type-utils.d.ts b/dist/type-utils.d.ts index be8931598..8aa85ee2c 100644 --- a/dist/type-utils.d.ts +++ b/dist/type-utils.d.ts @@ -1,35 +1,35 @@ import { MetaMap, TransferNftForeign } from "."; -declare type TransferNftChain = TransferNftForeign< +type TransferNftChain = TransferNftForeign< Signer, RawNft, Resp >; -export declare type ChainNonce = keyof MetaMap; -export declare type InferChainParam = MetaMap[K][1]; -export declare type InferChainH = MetaMap[K][0]; -export declare type InferSigner = K extends TransferNftChain< +export type ChainNonce = keyof MetaMap; +export type InferChainParam = MetaMap[K][1]; +export type InferChainH = MetaMap[K][0]; +export type InferSigner = K extends TransferNftChain< infer S, unknown, unknown > ? S : never; -export declare type InferNativeNft = K extends TransferNftChain< +export type InferNativeNft = K extends TransferNftChain< any, infer RawNft, any > ? RawNft : never; -export declare type ParamMap = { +export type ParamMap = { set(k: T, v: InferChainParam | undefined): void; get(k: T): InferChainParam | undefined; }; -export declare type HelperMap = Map< +export type HelperMap = Map< K, InferChainH | undefined >; -export declare type Mutable = { +export type Mutable = { -readonly [Key in keyof Type]: Type[Key]; }; export {}; diff --git a/dist/type-utils.d.ts.map b/dist/type-utils.d.ts.map index 5a3f73e6d..3d672292e 100644 --- a/dist/type-utils.d.ts.map +++ b/dist/type-utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAEhD,aAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,kBAAkB,CAC9D,MAAM,EACN,MAAM,EACN,IAAI,CACL,CAAC;AAEF,oBAAY,UAAU,GAAG,MAAM,OAAO,CAAC;AAEvC,oBAAY,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,oBAAY,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,oBAAY,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACrD,MAAM,CAAC,EACP,OAAO,EACP,OAAO,CACR,GACG,CAAC,GACD,KAAK,CAAC;AAEV,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACxD,GAAG,EACH,MAAM,MAAM,EACZ,GAAG,CACJ,GACG,MAAM,GACN,KAAK,CAAC;AAEV,oBAAY,QAAQ,GAAG;IACrB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACzE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACjE,CAAC;AAEF,oBAAY,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,GAAG,CAC/C,CAAC,EACD,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAC3B,CAAC;AAEF,oBAAY,OAAO,CAAC,IAAI,IAAI;IAC1B,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;CACzC,CAAC"} \ No newline at end of file +{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAEhD,KAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,kBAAkB,CAC9D,MAAM,EACN,MAAM,EACN,IAAI,CACL,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACrD,MAAM,CAAC,EACP,OAAO,EACP,OAAO,CACR,GACG,CAAC,GACD,KAAK,CAAC;AAEV,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACxD,GAAG,EACH,MAAM,MAAM,EACZ,GAAG,CACJ,GACG,MAAM,GACN,KAAK,CAAC;AAEV,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACzE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,GAAG,CAC/C,CAAC,EACD,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAC3B,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI;IAC1B,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;CACzC,CAAC"} \ No newline at end of file diff --git a/package.json b/package.json index 38f2e9900..827b1ea01 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "google-protobuf": "^3.20.1", "js-base64": "^3.6.1", "near-api-js": "1.0.0", - "secretjs": "^1.6.10", + "secretjs": "=1.4.7", "socket.io-client": "^4.1.3", "ton-x": "^2.0.0", "tonweb": "^0.0.57", diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index f286dada4..c9ad571c6 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,5 +1,5 @@ import BigNumber from "bignumber.js"; -import { Bech32, SecretNetworkClient, TxResponse } from "secretjs"; +import { Bech32, SecretNetworkClient, Tx } from "secretjs"; import { Extension, Snip721MintOptions, @@ -40,19 +40,15 @@ type GetOwnedTokensResponse = Snip721GetTokensResponse & { generic_err?: { msg: string }; }; -export type SecretHelper = TransferNftForeign< - SecretSigner, - SecretNftInfo, - TxResponse -> & - UnfreezeForeignNft & +export type SecretHelper = TransferNftForeign & + UnfreezeForeignNft & ValidateAddress & EstimateTxFees & ChainNonceGet & PreTransfer & BalanceCheck & GetFeeMargins & { XpNft: string } & GetProvider & - MintNft & { + MintNft & { nftList( owner: string, @@ -64,7 +60,7 @@ export type SecretHelper = TransferNftForeign< client: SecretNetworkClient, contract: string, vk: string - ): Promise; + ): Promise; isApprovedForMinter( sender: SecretSigner, nft: NftInfo @@ -95,8 +91,8 @@ const UNFREEZE_GASL = new BigNumber(0); export async function secretHelperFactory( p: SecretParams ): Promise { - const queryClient = new SecretNetworkClient({ - url: p.rpcUrl, + const queryClient = await SecretNetworkClient.create({ + grpcWebUrl: p.rpcUrl, chainId: p.chainId, }); @@ -142,8 +138,8 @@ export async function secretHelperFactory( const res = await sender.tx.compute.executeContract( { sender: sender.address, - contract_address: nft.native.contract, - code_hash: nft.native.contractHash, + contractAddress: nft.native.contract, + codeHash: nft.native.contractHash, msg: { approve: { spender: p.bridge.contractAddress, @@ -180,8 +176,8 @@ export async function secretHelperFactory( const minter = args.contract ? args.contract : p.umt; const tx = await signer.tx.compute.executeContract( { - contract_address: minter.contractAddress, - code_hash: minter.codeHash, + contractAddress: minter.contractAddress, + codeHash: minter.codeHash, msg: { mint_nft: { public_metadata: { @@ -212,44 +208,44 @@ export async function secretHelperFactory( async nftList(owner, vk, contractAddress, codeHash) { const auth = { viewer: { - viewing_key: vk, - address: owner, + viewing_key: vk, + address: owner, }, - }; - const contract = { + }; + const contract = { address: contractAddress, - codeHash: codeHash || '', - }; + codeHash: codeHash || "", + }; - const { token_list } = await queryClient.query.snip721.GetOwnedTokens({ + const { token_list } = (await queryClient.query.snip721.GetOwnedTokens({ contract, auth, owner, - }) as GetOwnedTokensResponse; + })) as GetOwnedTokensResponse; - const response: NftInfo[] = []; + const response: NftInfo[] = []; - await Promise.all( + await Promise.all( token_list?.tokens?.map(async (token) => { - const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ - contract, - auth, - token_id: token, - }); - response.push({ - collectionIdent: contractAddress, - uri: tokenInfo.all_nft_info.info?.token_uri || '', - native: { - chainId: p.chainId, - contract: contractAddress, - contractHash: codeHash || '', - tokenId: token, - vk, - metadata: tokenInfo.all_nft_info.info?.extension, - }, - }); + const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ + contract, + auth, + token_id: token, + }); + response.push({ + collectionIdent: contractAddress, + uri: tokenInfo.all_nft_info.info?.token_uri || "", + native: { + chainId: p.chainId, + contract: contractAddress, + contractHash: codeHash || "", + tokenId: token, + vk, + metadata: tokenInfo.all_nft_info.info?.extension, + }, + }); }) - ); + ); return response; }, estimateValidateTransferNft: async () => { @@ -261,7 +257,7 @@ export async function secretHelperFactory( async setViewingKey(client, contract, vk) { const tx = await client.tx.snip721.setViewingKey( { - contract_address: contract, + contractAddress: contract, msg: { set_viewing_key: { key: vk, @@ -282,8 +278,8 @@ export async function secretHelperFactory( const tx = await wallet.tx.compute.executeContract( { sender: wallet.address, - contract_address: p.bridge.contractAddress, - code_hash: p.bridge.codeHash, + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, msg: { freeze_nft: { contract: nft.native.contract, @@ -298,7 +294,7 @@ export async function secretHelperFactory( minter: mw, }, }, - sent_funds: [ + sentFunds: [ { denom: "uscrt", amount: fee.toString(10), @@ -316,8 +312,8 @@ export async function secretHelperFactory( const tx = await wallet.tx.compute.executeContract( { sender: wallet.address, - contract_address: p.bridge.contractAddress, - code_hash: p.bridge.codeHash, + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, msg: { withdraw_nft: { burner: nft.native.contract, @@ -327,7 +323,7 @@ export async function secretHelperFactory( chain_nonce: Number(chainNonce), }, }, - sent_funds: [ + sentFunds: [ { denom: "uscrt", amount: fee.toString(10), diff --git a/yarn.lock b/yarn.lock index c7f416efa..ef6574ac0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1033,6 +1033,18 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@improbable-eng/grpc-web-node-http-transport@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.15.0.tgz#5a064472ef43489cbd075a91fb831c2abeb09d68" + integrity sha512-HLgJfVolGGpjc9DWPhmMmXJx8YGzkek7jcCFO1YYkSOoO81MWRZentPOd/JiKiZuU08wtc4BG+WNuGzsQB5jZA== + +"@improbable-eng/grpc-web@0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz#3e47e9fdd90381a74abd4b7d26e67422a2a04bef" + integrity sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg== + dependencies: + browser-headers "^0.4.1" + "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" @@ -1391,10 +1403,10 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.5.tgz#1a0377f3b9020efe2fae03290bd2a12140c95c11" integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== -"@noble/secp256k1@1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1" - integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw== +"@noble/secp256k1@1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" + integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== "@noble/secp256k1@^1.6.3": version "1.7.1" @@ -1698,48 +1710,6 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== -"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3": - version "1.8.6" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/commons@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" - integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== - dependencies: - "@sinonjs/commons" "^2.0.0" - -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@sinonjs/samsam@^6.1.1": - version "6.1.3" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-6.1.3.tgz#4e30bcd4700336363302a7d72cbec9b9ab87b104" - integrity sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ== - dependencies: - "@sinonjs/commons" "^1.6.0" - lodash.get "^4.4.2" - type-detect "^4.0.8" - -"@sinonjs/text-encoding@^0.7.1": - version "0.7.2" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" - integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== - "@socket.io/component-emitter@~3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" @@ -3316,6 +3286,11 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== +browser-headers@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" + integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== + browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -3795,7 +3770,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-fetch@3.1.5, cross-fetch@^3.1.4, cross-fetch@^3.1.5: +cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -4038,11 +4013,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" - integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -5790,6 +5760,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-gzip@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-2.0.0.tgz#f4fed2bbd9f96bf2cb39e19262797fdb15aad933" + integrity sha512-jtO4Njg6q58zDo/Pu4027beSZ0VdsZlt8/5Moco6yAg+DIxb5BK/xUYqYG2+MD4+piKldXJNHxRkhEYI2fvrxA== + is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" @@ -5897,11 +5872,6 @@ is-windows@^1.0.1: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -6122,11 +6092,6 @@ jssha@3.2.0: resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16" integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q== -just-extend@^4.0.2: - version "4.2.1" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" - integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== - keccak@^3.0.0, keccak@^3.0.1, keccak@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" @@ -6207,11 +6172,6 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" @@ -6704,17 +6664,6 @@ next-tick@^1.1.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== -nise@^5.1.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.4.tgz#491ce7e7307d4ec546f5a659b2efe94a18b4bbc0" - integrity sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg== - dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers" "^10.0.2" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - path-to-regexp "^1.7.0" - nmtree@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/nmtree/-/nmtree-1.0.6.tgz#953e057ad545e9e627f1275bd25fea4e92c1cf63" @@ -7053,13 +7002,6 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -7658,29 +7600,30 @@ secp256k1@^4.0.1, secp256k1@^4.0.2: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -secretjs@^1.6.10: - version "1.6.13" - resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.6.13.tgz#d73a5f68d869f7f4ab5a49621ff7dee2e876820f" - integrity sha512-eWQpARcEmHARl+EBZ7uWrlkTHotB464e/ZXgFp+uBD8coqHd8QucRrSuU9rTyGmfg92UYPnXOe1aKXs8M4XeSw== +secretjs@=1.4.7: + version "1.4.7" + resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.4.7.tgz#4f9120142c4e269a678edc54165807adf30762fe" + integrity sha512-9vm/n6ZKvAhqENfqPOAtJCV3e6wLlJLhiRtvKrjyzDzCC76F8kOHak3PONqks29EDgynhscuf2O46V6ljwLgUQ== dependencies: "@cosmjs/encoding" "0.27.1" "@cosmjs/math" "0.27.1" + "@improbable-eng/grpc-web" "0.15.0" + "@improbable-eng/grpc-web-node-http-transport" "0.15.0" "@noble/hashes" "1.0.0" - "@noble/secp256k1" "1.7.0" + "@noble/secp256k1" "1.6.3" "@osmonauts/helpers" "0.3.8" bech32 "2.0.0" big-integer "1.6.51" bignumber.js "9.0.2" bip32 "2.0.6" bip39 "3.0.4" - cross-fetch "3.1.5" curve25519-js "0.0.4" google-protobuf "^3.14.0" + is-gzip "2.0.0" miscreant "0.3.2" pako "2.0.4" protobufjs "6.11.3" secure-random "1.1.2" - sinon "14.0.0" secure-random@1.1.2: version "1.1.2" @@ -7856,18 +7799,6 @@ simple-get@^3.0.3: once "^1.3.1" simple-concat "^1.0.0" -sinon@14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-14.0.0.tgz#203731c116d3a2d58dc4e3cbe1f443ba9382a031" - integrity sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw== - dependencies: - "@sinonjs/commons" "^1.8.3" - "@sinonjs/fake-timers" "^9.1.2" - "@sinonjs/samsam" "^6.1.1" - diff "^5.0.0" - nise "^5.1.1" - supports-color "^7.2.0" - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -8109,7 +8040,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0, supports-color@^7.2.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -8479,7 +8410,7 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: +type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== From 8964469a03fca8c1a1adcf5a438f2b259f86f969 Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 5 Mar 2023 12:55:13 +0200 Subject: [PATCH 926/956] remove dist folder --- dist/config.d.ts | 12 - dist/config.d.ts.map | 1 - dist/config.js | 71 - dist/consts.d.ts | 212 - dist/consts.d.ts.map | 1 - dist/consts.js | 649 --- dist/emitter.d.ts | 2 - dist/emitter.d.ts.map | 1 - dist/emitter.js | 5 - dist/factory/cons.d.ts | 17 - dist/factory/cons.d.ts.map | 1 - dist/factory/cons.js | 107 - dist/factory/factories.d.ts | 7 - dist/factory/factories.d.ts.map | 1 - dist/factory/factories.js | 1173 ------ dist/factory/index.d.ts | 329 -- dist/factory/index.d.ts.map | 1 - dist/factory/index.js | 672 ---- dist/heartbeat/index.d.ts | 6 - dist/heartbeat/index.d.ts.map | 1 - dist/heartbeat/index.js | 22 - dist/heartbeat/resp.d.ts | 17 - dist/heartbeat/resp.d.ts.map | 1 - dist/heartbeat/resp.js | 3 - dist/helpers/algorand.d.ts | 108 - dist/helpers/algorand.d.ts.map | 1 - dist/helpers/algorand.js | 452 --- dist/helpers/aptos/bridge_client.d.ts | 130 - dist/helpers/aptos/bridge_client.d.ts.map | 1 - dist/helpers/aptos/bridge_client.js | 265 -- dist/helpers/aptos/bridge_client_abis.d.ts | 4 - .../helpers/aptos/bridge_client_abis.d.ts.map | 1 - dist/helpers/aptos/bridge_client_abis.js | 72 - dist/helpers/aptos/index.d.ts | 72 - dist/helpers/aptos/index.d.ts.map | 1 - dist/helpers/aptos/index.js | 167 - dist/helpers/bridge_pool.teal.d.ts | 3 - dist/helpers/bridge_pool.teal.d.ts.map | 1 - dist/helpers/bridge_pool.teal.js | 69 - dist/helpers/chain.d.ts | 184 - dist/helpers/chain.d.ts.map | 1 - dist/helpers/chain.js | 34 - dist/helpers/dfinity/dfinity.d.ts | 64 - dist/helpers/dfinity/dfinity.d.ts.map | 1 - dist/helpers/dfinity/dfinity.js | 256 -- dist/helpers/dfinity/idl.d.ts | 2 - dist/helpers/dfinity/idl.d.ts.map | 1 - dist/helpers/dfinity/idl.js | 174 - dist/helpers/elrond.d.ts | 190 - dist/helpers/elrond.d.ts.map | 1 - dist/helpers/elrond.js | 647 --- dist/helpers/hedera/hts_abi.d.ts | 238 -- dist/helpers/hedera/hts_abi.d.ts.map | 1 - dist/helpers/hedera/hts_abi.js | 3571 ----------------- dist/helpers/near.d.ts | 89 - dist/helpers/near.d.ts.map | 1 - dist/helpers/near.js | 232 -- dist/helpers/secret.d.ts | 75 - dist/helpers/secret.d.ts.map | 1 - dist/helpers/secret.js | 246 -- dist/helpers/solana/idl.d.ts | 898 ----- dist/helpers/solana/idl.d.ts.map | 1 - dist/helpers/solana/idl.js | 900 ----- dist/helpers/solana/index.d.ts | 44 - dist/helpers/solana/index.d.ts.map | 1 - dist/helpers/solana/index.js | 273 -- dist/helpers/tezos.d.ts | 83 - dist/helpers/tezos.d.ts.map | 1 - dist/helpers/tezos.js | 249 -- dist/helpers/ton-bridge.d.ts | 48 - dist/helpers/ton-bridge.d.ts.map | 1 - dist/helpers/ton-bridge.js | 92 - dist/helpers/ton.d.ts | 113 - dist/helpers/ton.d.ts.map | 1 - dist/helpers/ton.js | 347 -- dist/helpers/tron.d.ts | 115 - dist/helpers/tron.d.ts.map | 1 - dist/helpers/tron.js | 300 -- dist/helpers/web3.d.ts | 199 - dist/helpers/web3.d.ts.map | 1 - dist/helpers/web3.js | 529 --- dist/helpers/web3_erc20.d.ts | 17 - dist/helpers/web3_erc20.d.ts.map | 1 - dist/helpers/web3_erc20.js | 400 -- dist/index.d.ts | 11 - dist/index.d.ts.map | 1 - dist/index.js | 42 - dist/notifier/index.d.ts | 33 - dist/notifier/index.d.ts.map | 1 - dist/notifier/index.js | 92 - dist/scripts/deploy_tron.d.ts | 2 - dist/scripts/deploy_tron.d.ts.map | 1 - dist/scripts/deploy_tron.js | 36 - dist/socket.d.ts | 42 - dist/socket.d.ts.map | 1 - dist/socket.js | 115 - dist/type-utils.d.ts | 36 - dist/type-utils.d.ts.map | 1 - dist/type-utils.js | 3 - 99 files changed, 15700 deletions(-) delete mode 100644 dist/config.d.ts delete mode 100644 dist/config.d.ts.map delete mode 100644 dist/config.js delete mode 100644 dist/consts.d.ts delete mode 100644 dist/consts.d.ts.map delete mode 100644 dist/consts.js delete mode 100644 dist/emitter.d.ts delete mode 100644 dist/emitter.d.ts.map delete mode 100644 dist/emitter.js delete mode 100644 dist/factory/cons.d.ts delete mode 100644 dist/factory/cons.d.ts.map delete mode 100644 dist/factory/cons.js delete mode 100644 dist/factory/factories.d.ts delete mode 100644 dist/factory/factories.d.ts.map delete mode 100644 dist/factory/factories.js delete mode 100644 dist/factory/index.d.ts delete mode 100644 dist/factory/index.d.ts.map delete mode 100644 dist/factory/index.js delete mode 100644 dist/heartbeat/index.d.ts delete mode 100644 dist/heartbeat/index.d.ts.map delete mode 100644 dist/heartbeat/index.js delete mode 100644 dist/heartbeat/resp.d.ts delete mode 100644 dist/heartbeat/resp.d.ts.map delete mode 100644 dist/heartbeat/resp.js delete mode 100644 dist/helpers/algorand.d.ts delete mode 100644 dist/helpers/algorand.d.ts.map delete mode 100644 dist/helpers/algorand.js delete mode 100644 dist/helpers/aptos/bridge_client.d.ts delete mode 100644 dist/helpers/aptos/bridge_client.d.ts.map delete mode 100644 dist/helpers/aptos/bridge_client.js delete mode 100644 dist/helpers/aptos/bridge_client_abis.d.ts delete mode 100644 dist/helpers/aptos/bridge_client_abis.d.ts.map delete mode 100644 dist/helpers/aptos/bridge_client_abis.js delete mode 100644 dist/helpers/aptos/index.d.ts delete mode 100644 dist/helpers/aptos/index.d.ts.map delete mode 100644 dist/helpers/aptos/index.js delete mode 100644 dist/helpers/bridge_pool.teal.d.ts delete mode 100644 dist/helpers/bridge_pool.teal.d.ts.map delete mode 100644 dist/helpers/bridge_pool.teal.js delete mode 100644 dist/helpers/chain.d.ts delete mode 100644 dist/helpers/chain.d.ts.map delete mode 100644 dist/helpers/chain.js delete mode 100644 dist/helpers/dfinity/dfinity.d.ts delete mode 100644 dist/helpers/dfinity/dfinity.d.ts.map delete mode 100644 dist/helpers/dfinity/dfinity.js delete mode 100644 dist/helpers/dfinity/idl.d.ts delete mode 100644 dist/helpers/dfinity/idl.d.ts.map delete mode 100644 dist/helpers/dfinity/idl.js delete mode 100644 dist/helpers/elrond.d.ts delete mode 100644 dist/helpers/elrond.d.ts.map delete mode 100644 dist/helpers/elrond.js delete mode 100644 dist/helpers/hedera/hts_abi.d.ts delete mode 100644 dist/helpers/hedera/hts_abi.d.ts.map delete mode 100644 dist/helpers/hedera/hts_abi.js delete mode 100644 dist/helpers/near.d.ts delete mode 100644 dist/helpers/near.d.ts.map delete mode 100644 dist/helpers/near.js delete mode 100644 dist/helpers/secret.d.ts delete mode 100644 dist/helpers/secret.d.ts.map delete mode 100644 dist/helpers/secret.js delete mode 100644 dist/helpers/solana/idl.d.ts delete mode 100644 dist/helpers/solana/idl.d.ts.map delete mode 100644 dist/helpers/solana/idl.js delete mode 100644 dist/helpers/solana/index.d.ts delete mode 100644 dist/helpers/solana/index.d.ts.map delete mode 100644 dist/helpers/solana/index.js delete mode 100644 dist/helpers/tezos.d.ts delete mode 100644 dist/helpers/tezos.d.ts.map delete mode 100644 dist/helpers/tezos.js delete mode 100644 dist/helpers/ton-bridge.d.ts delete mode 100644 dist/helpers/ton-bridge.d.ts.map delete mode 100644 dist/helpers/ton-bridge.js delete mode 100644 dist/helpers/ton.d.ts delete mode 100644 dist/helpers/ton.d.ts.map delete mode 100644 dist/helpers/ton.js delete mode 100644 dist/helpers/tron.d.ts delete mode 100644 dist/helpers/tron.d.ts.map delete mode 100644 dist/helpers/tron.js delete mode 100644 dist/helpers/web3.d.ts delete mode 100644 dist/helpers/web3.d.ts.map delete mode 100644 dist/helpers/web3.js delete mode 100644 dist/helpers/web3_erc20.d.ts delete mode 100644 dist/helpers/web3_erc20.d.ts.map delete mode 100644 dist/helpers/web3_erc20.js delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.d.ts.map delete mode 100644 dist/index.js delete mode 100644 dist/notifier/index.d.ts delete mode 100644 dist/notifier/index.d.ts.map delete mode 100644 dist/notifier/index.js delete mode 100644 dist/scripts/deploy_tron.d.ts delete mode 100644 dist/scripts/deploy_tron.d.ts.map delete mode 100644 dist/scripts/deploy_tron.js delete mode 100644 dist/socket.d.ts delete mode 100644 dist/socket.d.ts.map delete mode 100644 dist/socket.js delete mode 100644 dist/type-utils.d.ts delete mode 100644 dist/type-utils.d.ts.map delete mode 100644 dist/type-utils.js diff --git a/dist/config.d.ts b/dist/config.d.ts deleted file mode 100644 index e9d1ceede..000000000 --- a/dist/config.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { AppConfig, ChainFactory } from "."; -export declare namespace AppConfigs { - const MainNet: () => AppConfig; - const TestNet: () => AppConfig; - const Staging: () => AppConfig; -} -export declare namespace ChainFactories { - const MainNet: () => Promise; - const TestNet: () => Promise; - const Staging: () => Promise; -} -//# sourceMappingURL=config.d.ts.map diff --git a/dist/config.d.ts.map b/dist/config.d.ts.map deleted file mode 100644 index 8af4855d1..000000000 --- a/dist/config.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAuB,MAAM,GAAG,CAAC;AAEjE,yBAAiB,UAAU,CAAC;IACnB,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;IACK,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,SAa3B,CAAC;CACH;AAED,yBAAiB,cAAc,CAAC;IACvB,MAAM,OAAO,6BAKnB,CAAC;IAEK,MAAM,OAAO,6BAKnB,CAAC;IACK,MAAM,OAAO,6BAKnB,CAAC;CACH"} \ No newline at end of file diff --git a/dist/config.js b/dist/config.js deleted file mode 100644 index 77ef07484..000000000 --- a/dist/config.js +++ /dev/null @@ -1,71 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ChainFactories = exports.AppConfigs = void 0; -const _1 = require("."); -var AppConfigs; -(function (AppConfigs) { - AppConfigs.MainNet = () => { - return { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://nft-index.xp.network/index/", - nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", - txSocketUri: "https://transaction-socket.xp.network", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com", - wrappedNftPrefix: "https://nft.xp.network/w/", - scVerifyUri: "https://sc-verify.xp.network", - network: "mainnet", - }; - }; - AppConfigs.TestNet = () => { - return { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://testnet-notifier.xp.network/testnet-indexer/", - nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1MjA4NzAwNiwiZXhwIjoxNjU5ODYzMDA2fQ.ERjXpljkyuklPTJCSXQXZ-Wh09oxQwA4u8HKIbIwO1TSajvLIlNgxseqBVEd5D4lkqXYGwcezkuezuRc3kKkKg", - txSocketUri: "https://testnet-tx-socket.herokuapp.com", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://testnet-validator-pinger.herokuapp.com/", - wrappedNftPrefix: "https://testnet-w-nft-api.herokuapp.com/", - scVerifyUri: "https://testnet-sc-verify.herokuapp.com", - network: "testnet", - }; - }; - AppConfigs.Staging = () => { - return { - exchangeRateUri: "https://testing-bridge.xp.network/exchange/", - nftListUri: "https://tools.xp.network/index", - nftListAuthToken: - "eyJhbGciOiJFUzI1NiJ9.eyJhdXRob3JpdHkiOjEsImlhdCI6MTY1Mjc5MTU1NiwiZXhwIjoxNjY4MzQzNTU2fQ.gOzLCBPNGFfjqLzSZsMes0yplAhsRiQYzidVfE-IYtQ-aVqQU6LhzKevLxYLudnm28F5_7CzTKsiuUginuLTtQ", - txSocketUri: "https://bridge1.xp.network/tx-socket", - tronScanUri: "https://apilist.tronscan.org/api/", - heartbeatUri: "https://xpheartbeat.herokuapp.com", - wrappedNftPrefix: "https://staging-nft.xp.network/w/", - scVerifyUri: "https://bridge1.xp.network/sc-verify", - network: "staging", - }; - }; -})((AppConfigs = exports.AppConfigs || (exports.AppConfigs = {}))); -var ChainFactories; -(function (ChainFactories) { - ChainFactories.MainNet = async () => { - return (0, _1.ChainFactory)( - AppConfigs.MainNet(), - await _1.ChainFactoryConfigs.MainNet() - ); - }; - ChainFactories.TestNet = async () => { - return (0, _1.ChainFactory)( - AppConfigs.TestNet(), - await _1.ChainFactoryConfigs.TestNet() - ); - }; - ChainFactories.Staging = async () => { - return (0, _1.ChainFactory)( - AppConfigs.Staging(), - await _1.ChainFactoryConfigs.Staging() - ); - }; -})((ChainFactories = exports.ChainFactories || (exports.ChainFactories = {}))); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3QkFBaUU7QUFFakUsSUFBaUIsVUFBVSxDQTRDMUI7QUE1Q0QsV0FBaUIsVUFBVTtJQUNaLGtCQUFPLEdBQW9CLEdBQUcsRUFBRTtRQUMzQyxPQUFPO1lBQ0wsZUFBZSxFQUFFLDZDQUE2QztZQUM5RCxVQUFVLEVBQUUscUNBQXFDO1lBQ2pELGdCQUFnQixFQUNkLGdMQUFnTDtZQUNsTCxXQUFXLEVBQUUsdUNBQXVDO1lBQ3BELFdBQVcsRUFBRSxtQ0FBbUM7WUFDaEQsWUFBWSxFQUFFLG1DQUFtQztZQUNqRCxnQkFBZ0IsRUFBRSwyQkFBMkI7WUFDN0MsV0FBVyxFQUFFLDhCQUE4QjtZQUMzQyxPQUFPLEVBQUUsU0FBUztTQUNuQixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBQ1csa0JBQU8sR0FBb0IsR0FBRyxFQUFFO1FBQzNDLE9BQU87WUFDTCxlQUFlLEVBQUUsNkNBQTZDO1lBQzlELFVBQVUsRUFBRSxzREFBc0Q7WUFDbEUsZ0JBQWdCLEVBQ2QsZ0xBQWdMO1lBQ2xMLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsV0FBVyxFQUFFLG1DQUFtQztZQUNoRCxZQUFZLEVBQUUsaURBQWlEO1lBQy9ELGdCQUFnQixFQUFFLDBDQUEwQztZQUM1RCxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUM7SUFDSixDQUFDLENBQUM7SUFFVyxrQkFBTyxHQUFvQixHQUFHLEVBQUU7UUFDM0MsT0FBTztZQUNMLGVBQWUsRUFBRSw2Q0FBNkM7WUFDOUQsVUFBVSxFQUFFLGdDQUFnQztZQUM1QyxnQkFBZ0IsRUFDZCxnTEFBZ0w7WUFDbEwsV0FBVyxFQUFFLHNDQUFzQztZQUNuRCxXQUFXLEVBQUUsbUNBQW1DO1lBQ2hELFlBQVksRUFBRSxtQ0FBbUM7WUFDakQsZ0JBQWdCLEVBQUUsbUNBQW1DO1lBQ3JELFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsRUE1Q2dCLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBNEMxQjtBQUVELElBQWlCLGNBQWMsQ0FvQjlCO0FBcEJELFdBQWlCLGNBQWM7SUFDaEIsc0JBQU8sR0FBRyxLQUFLLElBQUksRUFBRTtRQUNoQyxPQUFPLElBQUEsZUFBWSxFQUNqQixVQUFVLENBQUMsT0FBTyxFQUFFLEVBQ3BCLE1BQU0sc0JBQW1CLENBQUMsT0FBTyxFQUFFLENBQ3BDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFVyxzQkFBTyxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ2hDLE9BQU8sSUFBQSxlQUFZLEVBQ2pCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFDcEIsTUFBTSxzQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FDcEMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUNXLHNCQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDaEMsT0FBTyxJQUFBLGVBQVksRUFDakIsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUNwQixNQUFNLHNCQUFtQixDQUFDLE9BQU8sRUFBRSxDQUNwQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxFQXBCZ0IsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFvQjlCIn0= diff --git a/dist/consts.d.ts b/dist/consts.d.ts deleted file mode 100644 index feb80103b..000000000 --- a/dist/consts.d.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { ElrondParams, ElrondHelper } from "./helpers/elrond"; -import { TronParams, TronHelper } from "./helpers/tron"; -import { Web3Params, Web3Helper } from "./helpers/web3"; -import { - SupportedCurrency, - SupportedCurrencyName, -} from "crypto-exchange-rate/dist/model/domain"; -import { AlgorandParams, AlgorandHelper } from "./helpers/algorand"; -import { TezosHelper, TezosParams } from "./helpers/tezos"; -import { ChainNonce, InferChainH, InferChainParam } from "./type-utils"; -import { SecretHelper, SecretParams } from "./helpers/secret"; -import { SolanaHelper, SolanaParams } from "./helpers/solana"; -import { TonHelper, TonParams } from "./helpers/ton"; -import { DfinityHelper, DfinityParams } from "./helpers/dfinity/dfinity"; -import { NearHelper, NearParams } from "./helpers/near"; -import { AptosHelper, AptosParams } from "./helpers/aptos"; -import { Web3ERC20Params } from "./helpers/web3_erc20"; -export declare enum TestNetRpcUri { - ELROND = "https://devnet-gateway.elrond.com", - HECO = "https://http-testnet.hecochain.com", - BSC = "https://data-seed-prebsc-2-s3.binance.org:8545/", - ROPSTEN = "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467", - AVALANCHE = "https://api.avax-test.network/ext/bc/C/rpc", - POLYGON = "https://matic-mumbai.chainstacklabs.com", - FANTOM = "https://fantom-testnet.public.blastapi.io", - TRON = "https://api.shasta.trongrid.io/", - CELO = "https://alfajores-forno.celo-testnet.org", - HARMONY = "https://api.s0.b.hmny.io", - XDAI = "https://sokol.poa.network", - UNIQUE = "https://rpc-opal.unique.network/", - TEZOS = "https://ghostnet.smartpy.io", - VELAS = "https://explorer.testnet.velas.com/rpc", - IOTEX = "https://babel-api.testnet.iotex.io", - AURORA = "https://testnet.aurora.dev/", - GODWOKEN = "https://godwoken-testnet-v1.ckbapp.dev", - GATECHAIN = "https://meteora-evm.gatenode.cc", - VECHAIN = "https://sync-testnet.veblocks.net", - SECRET = "https://api.pulsar.scrttestnet.com", - SKALE = "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar", - HEDERA = "https://0.testnet.hedera.com/", - NEAR = "https://rpc.testnet.near.org", - MOONBEAM = "https://rpc.api.moonbase.moonbeam.network", - ABEYCHAIN = "https://testrpc.abeychain.com", - APTOS = "https://fullnode.testnet.aptoslabs.com", - TON = "https://testnet.toncenter.com/api/v2/jsonRPC", - SOLANA = "https://api.devnet.solana.com", - CADUCEUS = "https://galaxy.block.caduceus.foundation", - OKC = "https://exchaintestrpc.okex.org", - ARBITRUM = "https://goerli-rollup.arbitrum.io/rpc", - BITGERT = "https://testnet-rpc.brisescan.com", -} -export declare enum MainNetRpcUri { - ELROND = "https://gateway.elrond.com", - HECO = "https://http-mainnet-node.huobichain.com", - BSC = "https://bsc-dataseed.binance.org/", - ETHEREUM = "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161", - AVALANCHE = "https://api.avax.network/ext/bc/C/rpc", - POLYGON = "https://polygon-rpc.com", - FANTOM = "https://rpc.fantom.network/", - TRON = "https://api.trongrid.io/", - CELO = "https://forno.celo.org", - HARMONY = "https://rpc.s0.t.hmny.io", - XDAI = "https://gnosischain-rpc.gateway.pokt.network/", - FUSE = "https://rpc.fuse.io/", - VELAS = "https://mainnet.velas.com/rpc", - TEZOS = "https://mainnet.smartpy.io", - IOTEX = "https://babel-api.mainnet.iotex.io", - AURORA = "https://mainnet.aurora.dev", - GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", - GATECHAIN = "https://evm.gatenode.cc", - VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "https://secret-4.api.trivium.network:1317", - SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", - NEAR = "https://rpc.mainnet.near.org", - MOONBEAM = "https://rpc.api.moonbeam.network", - ABEYCHAIN = "https://rpc.abeychain.com", - TON = "https://toncenter.com/api/v2/jsonRPC", - APTOS = "https://fullnode.mainnet.aptoslabs.com/", - CADUCEUS = "https://mainnet.block.caduceus.foundation/", - OKC = "https://exchainrpc.okex.org/", - ARBITRUM = "https://nova.arbitrum.io/rpc", - BITGERT = "https://dedicated.brisescan.com", - SOLANA = "https://solana-mainnet.g.alchemy.com/v2/4Fm2r6LjJO91nXrKVcZBQXcWgtVe-_gx", -} -type ElrondMeta = [ElrondHelper, ElrondParams]; -type Web3Meta = [Web3Helper, Web3Params]; -type TronMeta = [TronHelper, TronParams]; -type AlgoMeta = [AlgorandHelper, AlgorandParams]; -type TezosMeta = [TezosHelper, TezosParams]; -type SecretMeta = [SecretHelper, SecretParams]; -type SolanaMeta = [SolanaHelper, SolanaParams]; -type TonMeta = [TonHelper, TonParams]; -type DfinityMeta = [DfinityHelper, DfinityParams]; -type NearMeta = [NearHelper, NearParams]; -type Web3ERC20Meta = [Web3Helper, Web3ERC20Params]; -type AptosMeta = [AptosHelper, AptosParams]; -type MetaMapAssert = { - [idx in (typeof Chain)[keyof typeof Chain]]: unknown; -}; -export type MetaMap = { - 2: ElrondMeta; - 3: Web3Meta; - 4: Web3Meta; - 5: Web3Meta; - 6: Web3Meta; - 7: Web3Meta; - 8: Web3Meta; - 9: TronMeta; - 0xb: Web3Meta; - 0xc: Web3Meta; - 0xd: Web3Meta; - 0xe: Web3Meta; - 0xf: AlgoMeta; - 0x10: Web3Meta; - 0x11: Web3Meta; - 0x12: TezosMeta; - 0x13: Web3Meta; - 0x14: Web3Meta; - 0x15: Web3Meta; - 0x16: Web3Meta; - 0x17: Web3Meta; - 0x18: SecretMeta; - 0x19: Web3Meta; - 0x1a: SolanaMeta; - 0x1b: TonMeta; - 0x1c: DfinityMeta; - 0x1d: Web3Meta; - 0x1e: Web3ERC20Meta; - 0x1f: NearMeta; - 0x20: Web3Meta; - 0x21: Web3Meta; - 0x22: AptosMeta; - 0x23: Web3Meta; - 0x24: Web3Meta; - 0x25: Web3Meta; - 0x26: Web3Meta; -} & MetaMapAssert; -export declare namespace Chain { - const ELROND = 2; - const HECO = 3; - const BSC = 4; - const ETHEREUM = 5; - const AVALANCHE = 6; - const POLYGON = 7; - const FANTOM = 8; - const TRON = 9; - const CELO = 11; - const HARMONY = 12; - const ONT = 13; - const XDAI = 14; - const ALGORAND = 15; - const FUSE = 16; - const UNIQUE = 17; - const TEZOS = 18; - const VELAS = 19; - const IOTEX = 20; - const AURORA = 21; - const GODWOKEN = 22; - const GATECHAIN = 23; - const SECRET = 24; - const VECHAIN = 25; - const SOLANA = 26; - const TON = 27; - const DFINITY = 28; - const HEDERA = 29; - const SKALE = 30; - const NEAR = 31; - const MOONBEAM = 32; - const ABEYCHAIN = 33; - const APTOS = 34; - const CADUCEUS = 35; - const OKC = 36; - const ARBITRUM = 37; - const BITGERT = 38; -} -interface ChainData { - name: string; - nonce: number; - decimals: number; - constructor: (p: InferChainParam) => Promise>; - blockExplorerUrl: string; - tnBlockExplorerUrl?: string | ((tx: string) => string); - chainId?: number; - tnChainId?: number; - currency: SupportedCurrency; - currencySymbol: SupportedCurrencyName; - type: string; - blockExplorerUrlAddr?: string; - tnBlockExplorerUrlAddr?: string | ((tx: string) => string); - rejectUnfreeze?: string[]; -} -type ChainInfo = { - set(k: T, v: ChainData | undefined): void; - get(k: T): ChainData | undefined; -} & Map>; -export declare enum ChainType { - EVM = "EVM", - ELROND = "ELROND", - TRON = "TRON", - TEZOS = "TEZOS", - ALGORAND = "ALGORAND", - COSMOS = "COSMOS", - DFINITY = "DFINITY", - SOLANA = "SOLANA", - TON = "TON", - NEAR = "NEAR", - HEDERA = "HEDERA", - APTOS = "APTOS", -} -export declare const CHAIN_INFO: ChainInfo; -export {}; -//# sourceMappingURL=consts.d.ts.map diff --git a/dist/consts.d.ts.map b/dist/consts.d.ts.map deleted file mode 100644 index 4940daf62..000000000 --- a/dist/consts.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/consts.js b/dist/consts.js deleted file mode 100644 index d3aae35c2..000000000 --- a/dist/consts.js +++ /dev/null @@ -1,649 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.CHAIN_INFO = - exports.ChainType = - exports.Chain = - exports.MainNetRpcUri = - exports.TestNetRpcUri = - void 0; -const elrond_1 = require("./helpers/elrond"); -const tron_1 = require("./helpers/tron"); -const web3_1 = require("./helpers/web3"); -const domain_1 = require("crypto-exchange-rate/dist/model/domain"); -const Decimals_1 = require("crypto-exchange-rate/dist/model/domain/Decimals"); -const algorand_1 = require("./helpers/algorand"); -const tezos_1 = require("./helpers/tezos"); -const secret_1 = require("./helpers/secret"); -const solana_1 = require("./helpers/solana"); -const ton_1 = require("./helpers/ton"); -const dfinity_1 = require("./helpers/dfinity/dfinity"); -const near_1 = require("./helpers/near"); -const aptos_1 = require("./helpers/aptos"); -const web3_erc20_1 = require("./helpers/web3_erc20"); -// All the supported testnet uri's are here. -var TestNetRpcUri; -(function (TestNetRpcUri) { - TestNetRpcUri["ELROND"] = "https://devnet-gateway.elrond.com"; - TestNetRpcUri["HECO"] = "https://http-testnet.hecochain.com"; - TestNetRpcUri["BSC"] = "https://data-seed-prebsc-2-s3.binance.org:8545/"; - TestNetRpcUri["ROPSTEN"] = - "https://goerli.infura.io/v3/cec5dc92097a46f0b895ac1e89865467"; - TestNetRpcUri["AVALANCHE"] = "https://api.avax-test.network/ext/bc/C/rpc"; - TestNetRpcUri["POLYGON"] = "https://matic-mumbai.chainstacklabs.com"; - TestNetRpcUri["FANTOM"] = "https://fantom-testnet.public.blastapi.io"; - TestNetRpcUri["TRON"] = "https://api.shasta.trongrid.io/"; - TestNetRpcUri["CELO"] = "https://alfajores-forno.celo-testnet.org"; - TestNetRpcUri["HARMONY"] = "https://api.s0.b.hmny.io"; - TestNetRpcUri["XDAI"] = "https://sokol.poa.network"; - TestNetRpcUri["UNIQUE"] = "https://rpc-opal.unique.network/"; - TestNetRpcUri["TEZOS"] = "https://ghostnet.smartpy.io"; - TestNetRpcUri["VELAS"] = "https://explorer.testnet.velas.com/rpc"; - TestNetRpcUri["IOTEX"] = "https://babel-api.testnet.iotex.io"; - TestNetRpcUri["AURORA"] = "https://testnet.aurora.dev/"; - TestNetRpcUri["GODWOKEN"] = "https://godwoken-testnet-v1.ckbapp.dev"; - TestNetRpcUri["GATECHAIN"] = "https://meteora-evm.gatenode.cc"; - TestNetRpcUri["VECHAIN"] = "https://sync-testnet.veblocks.net"; - TestNetRpcUri["SECRET"] = "https://api.pulsar.scrttestnet.com"; - TestNetRpcUri["SKALE"] = - "https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar"; - TestNetRpcUri["HEDERA"] = "https://0.testnet.hedera.com/"; - TestNetRpcUri["NEAR"] = "https://rpc.testnet.near.org"; - TestNetRpcUri["MOONBEAM"] = "https://rpc.api.moonbase.moonbeam.network"; - TestNetRpcUri["ABEYCHAIN"] = "https://testrpc.abeychain.com"; - TestNetRpcUri["APTOS"] = "https://fullnode.testnet.aptoslabs.com"; - TestNetRpcUri["TON"] = "https://testnet.toncenter.com/api/v2/jsonRPC"; - TestNetRpcUri["SOLANA"] = "https://api.devnet.solana.com"; - TestNetRpcUri["CADUCEUS"] = "https://galaxy.block.caduceus.foundation"; - TestNetRpcUri["OKC"] = "https://exchaintestrpc.okex.org"; - TestNetRpcUri["ARBITRUM"] = "https://goerli-rollup.arbitrum.io/rpc"; - TestNetRpcUri["BITGERT"] = "https://testnet-rpc.brisescan.com"; - // TODO: Algorand - // TODO: Fuse -})((TestNetRpcUri = exports.TestNetRpcUri || (exports.TestNetRpcUri = {}))); -var MainNetRpcUri; -(function (MainNetRpcUri) { - MainNetRpcUri["ELROND"] = "https://gateway.elrond.com"; - MainNetRpcUri["HECO"] = "https://http-mainnet-node.huobichain.com"; - MainNetRpcUri["BSC"] = "https://bsc-dataseed.binance.org/"; - MainNetRpcUri["ETHEREUM"] = - "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161"; - MainNetRpcUri["AVALANCHE"] = "https://api.avax.network/ext/bc/C/rpc"; - MainNetRpcUri["POLYGON"] = "https://polygon-rpc.com"; - MainNetRpcUri["FANTOM"] = "https://rpc.fantom.network/"; - MainNetRpcUri["TRON"] = "https://api.trongrid.io/"; - MainNetRpcUri["CELO"] = "https://forno.celo.org"; - MainNetRpcUri["HARMONY"] = "https://rpc.s0.t.hmny.io"; - MainNetRpcUri["XDAI"] = "https://gnosischain-rpc.gateway.pokt.network/"; - MainNetRpcUri["FUSE"] = "https://rpc.fuse.io/"; - MainNetRpcUri["VELAS"] = "https://mainnet.velas.com/rpc"; - MainNetRpcUri["TEZOS"] = "https://mainnet.smartpy.io"; - MainNetRpcUri["IOTEX"] = "https://babel-api.mainnet.iotex.io"; - MainNetRpcUri["AURORA"] = "https://mainnet.aurora.dev"; - MainNetRpcUri["GODWOKEN"] = "https://v1.mainnet.godwoken.io/rpc"; - MainNetRpcUri["GATECHAIN"] = "https://evm.gatenode.cc"; - MainNetRpcUri["VECHAIN"] = "https://sync-mainnet.veblocks.net"; - MainNetRpcUri["SECRET"] = "https://secret-4.api.trivium.network:1317"; - MainNetRpcUri["SKALE"] = - "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague"; - MainNetRpcUri["NEAR"] = "https://rpc.mainnet.near.org"; - MainNetRpcUri["MOONBEAM"] = "https://rpc.api.moonbeam.network"; - MainNetRpcUri["ABEYCHAIN"] = "https://rpc.abeychain.com"; - MainNetRpcUri["TON"] = "https://toncenter.com/api/v2/jsonRPC"; - MainNetRpcUri["APTOS"] = "https://fullnode.mainnet.aptoslabs.com/"; - MainNetRpcUri["CADUCEUS"] = "https://mainnet.block.caduceus.foundation/"; - MainNetRpcUri["OKC"] = "https://exchainrpc.okex.org/"; - MainNetRpcUri["ARBITRUM"] = "https://nova.arbitrum.io/rpc"; - MainNetRpcUri["BITGERT"] = "https://dedicated.brisescan.com"; - MainNetRpcUri["SOLANA"] = - "https://solana-mainnet.g.alchemy.com/v2/4Fm2r6LjJO91nXrKVcZBQXcWgtVe-_gx"; - // TODO: Algorand -})((MainNetRpcUri = exports.MainNetRpcUri || (exports.MainNetRpcUri = {}))); -var Chain; -(function (Chain) { - Chain.ELROND = 2; - Chain.HECO = 3; - Chain.BSC = 4; - Chain.ETHEREUM = 5; - Chain.AVALANCHE = 0x6; - Chain.POLYGON = 7; - Chain.FANTOM = 8; - Chain.TRON = 9; - Chain.CELO = 0xb; //11 - Chain.HARMONY = 0xc; //12 - Chain.ONT = 0xd; //13 - Chain.XDAI = 0xe; //14 - Chain.ALGORAND = 0xf; //15 - Chain.FUSE = 0x10; // 16 - Chain.UNIQUE = 0x11; // 17 - Chain.TEZOS = 0x12; // 18 - Chain.VELAS = 0x13; // 19 - Chain.IOTEX = 0x14; // 20 - Chain.AURORA = 0x15; // 21 - Chain.GODWOKEN = 0x16; // 22 - Chain.GATECHAIN = 0x17; // 23 - Chain.SECRET = 0x18; // 24 - Chain.VECHAIN = 0x19; // 25 - Chain.SOLANA = 0x1a; // 26 - Chain.TON = 0x1b; // 27 - Chain.DFINITY = 0x1c; // 28 - Chain.HEDERA = 0x1d; // 29 - Chain.SKALE = 0x1e; // 30 - Chain.NEAR = 0x1f; // 31 - Chain.MOONBEAM = 0x20; // 32 - Chain.ABEYCHAIN = 0x21; // 33 - Chain.APTOS = 0x22; // 34 - Chain.CADUCEUS = 0x23; // 35 - Chain.OKC = 0x24; // 36 - Chain.ARBITRUM = 0x25; //37 - Chain.BITGERT = 0x26; //37 -})((Chain = exports.Chain || (exports.Chain = {}))); -var ChainType; -(function (ChainType) { - ChainType["EVM"] = "EVM"; - ChainType["ELROND"] = "ELROND"; - ChainType["TRON"] = "TRON"; - ChainType["TEZOS"] = "TEZOS"; - ChainType["ALGORAND"] = "ALGORAND"; - ChainType["COSMOS"] = "COSMOS"; - ChainType["DFINITY"] = "DFINITY"; - ChainType["SOLANA"] = "SOLANA"; - ChainType["TON"] = "TON"; - ChainType["NEAR"] = "NEAR"; - ChainType["HEDERA"] = "HEDERA"; - ChainType["APTOS"] = "APTOS"; -})((ChainType = exports.ChainType || (exports.ChainType = {}))); -exports.CHAIN_INFO = new Map(); -exports.CHAIN_INFO.set(Chain.ELROND, { - name: "Elrond", - nonce: 2, - decimals: Decimals_1.DecimalsByCurrency.EGLD, - constructor: elrond_1.elrondHelperFactory, - blockExplorerUrl: "https://explorer.elrond.com/transactions/", - blockExplorerUrlAddr: "https://explorer.elrond.com/address/", - tnBlockExplorerUrl: "https://testnet-explorer.elrond.com/transactions/", - tnBlockExplorerUrlAddr: "https://testnet-explorer.elrond.com/address/", - currency: domain_1.SupportedCurrency.EGLD, - currencySymbol: domain_1.SupportedCurrencyName.EGLD, - type: ChainType.ELROND, -}); -exports.CHAIN_INFO.set(Chain.HECO, { - name: "HECO", - nonce: 3, - chainId: 256, - decimals: Decimals_1.DecimalsByCurrency.HT, - blockExplorerUrl: "https://testnet.hecoinfo.com/tx", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.HT, - currencySymbol: domain_1.SupportedCurrencyName.HT, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.BSC, { - name: "BSC", - nonce: 4, - chainId: 97, - decimals: Decimals_1.DecimalsByCurrency.BNB, - blockExplorerUrl: "https://bscscan.com/tx/", - blockExplorerUrlAddr: "https://bscscan.com/address/", - tnBlockExplorerUrl: "https://testnet.bscscan.com/tx/", - tnBlockExplorerUrlAddr: "https://testnet.bscscan.com/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.BNB, - currencySymbol: domain_1.SupportedCurrencyName.BNB, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.ETHEREUM, { - name: "Ethereum", - nonce: 5, - currency: domain_1.SupportedCurrency.ETH, - currencySymbol: domain_1.SupportedCurrencyName.ETH, - chainId: 5, - decimals: Decimals_1.DecimalsByCurrency.ETH, - blockExplorerUrl: "https://etherscan.io/tx/", - blockExplorerUrlAddr: "https://etherscan.io/address/", - tnBlockExplorerUrl: "https://goerli.etherscan.io/tx/", - tnBlockExplorerUrlAddr: "https://goerli.etherscan.io/address/", - constructor: web3_1.web3HelperFactory, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.AVALANCHE, { - name: "Avalanche", - nonce: 6, - chainId: 43113, - decimals: Decimals_1.DecimalsByCurrency.AVAX, - blockExplorerUrl: "https://snowtrace.io/tx/", - tnBlockExplorerUrl: "https://testnet.snowtrace.io/tx/", - blockExplorerUrlAddr: "https://snowtrace.io/address/", - tnBlockExplorerUrlAddr: "https://testnet.snowtrace.io/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.AVAX, - currencySymbol: domain_1.SupportedCurrencyName.AVAX, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.POLYGON, { - name: "Polygon", - nonce: 0x7, - chainId: 80001, - decimals: Decimals_1.DecimalsByCurrency.MATIC, - blockExplorerUrl: "https://polygonscan.com/tx/", - tnBlockExplorerUrl: "https://mumbai.polygonscan.com/tx/", - blockExplorerUrlAddr: "https://polygonscan.com/address/", - tnBlockExplorerUrlAddr: "https://mumbai.polygonscan.com/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.MATIC, - currencySymbol: domain_1.SupportedCurrencyName.MATIC, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.FANTOM, { - name: "Fantom", - nonce: 0x8, - decimals: Decimals_1.DecimalsByCurrency.FTM, - chainId: 4002, - blockExplorerUrl: "https://ftmscan.com/tx/", - blockExplorerUrlAddr: "https://ftmscan.com/address/", - tnBlockExplorerUrlAddr: "https://testnet.ftmscan.com/address/", - tnBlockExplorerUrl: "https://testnet.ftmscan.com/tx/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.FTM, - currencySymbol: domain_1.SupportedCurrencyName.FTM, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.TRON, { - name: "Tron", - nonce: 0x9, - decimals: Decimals_1.DecimalsByCurrency.TRX, - blockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", - tnBlockExplorerUrl: "https://shasta.tronscan.org/#/transaction/", - blockExplorerUrlAddr: "https://tronscan.io/#/address/", - tnBlockExplorerUrlAddr: "https://shasta.tronscan.org/#/address/", - constructor: tron_1.tronHelperFactory, - currency: domain_1.SupportedCurrency.TRX, - currencySymbol: domain_1.SupportedCurrencyName.TRX, - type: ChainType.TRON, -}); -exports.CHAIN_INFO.set(Chain.CELO, { - name: "Celo", - nonce: 0xb, - decimals: Decimals_1.DecimalsByCurrency.CELO, - chainId: 44787, - blockExplorerUrl: "https://alfajores-blockscout.celo-testnet.org/tx", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.CELO, - currencySymbol: domain_1.SupportedCurrencyName.CELO, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.HARMONY, { - name: "Harmony", - nonce: 0xc, - decimals: Decimals_1.DecimalsByCurrency.ONE, - chainId: 1666700000, - blockExplorerUrl: "https://explorer.harmony.one/tx/", - tnBlockExplorerUrl: "https://explorer.testnet.harmony.one/tx/", - blockExplorerUrlAddr: "https://explorer.harmony.one/address/", - tnBlockExplorerUrlAddr: "https://explorer.testnet.harmony.one/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.ONE, - currencySymbol: domain_1.SupportedCurrencyName.ONE, - type: ChainType.EVM, - rejectUnfreeze: [ - "0xb90Dc9e354001e6260DE670EDD6aBaDb890C6aC9", - "0xAd6f94bDefB6D5ae941392Da5224ED083AE33adc", - ], -}); -exports.CHAIN_INFO.set(Chain.ONT, { - name: "Ontology", - nonce: 0xd, - decimals: Decimals_1.DecimalsByCurrency.ONT, - chainId: 1666700000, - blockExplorerUrl: "https://explorer.pops.one/tx", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.ONT, - currencySymbol: domain_1.SupportedCurrencyName.ONT, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.XDAI, { - name: "xDai", - nonce: 0xe, - decimals: Decimals_1.DecimalsByCurrency.XDAI, - chainId: 0x64, - blockExplorerUrl: "https://blockscout.com/xdai/mainnet/tx/", - blockExplorerUrlAddr: "https://blockscout.com/xdai/mainnet/address/", - tnBlockExplorerUrl: "https://blockscout.com/xdai/testnet/tx/", - tnBlockExplorerUrlAddr: "https://blockscout.com/xdai/testnet/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.XDAI, - currencySymbol: domain_1.SupportedCurrencyName.XDAI, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.ALGORAND, { - name: "Algorand", - nonce: 0xf, - decimals: Decimals_1.DecimalsByCurrency.ALGO, - chainId: undefined, - blockExplorerUrl: "https://algoexplorer.io/tx/", - tnBlockExplorerUrl: "https://testnet.algoexplorer.io/tx/", - blockExplorerUrlAddr: "https://algoexplorer.io/address/", - tnBlockExplorerUrlAddr: "https://testnet.algoexplorer.io/address/", - currency: domain_1.SupportedCurrency.ALGO, - currencySymbol: domain_1.SupportedCurrencyName.ALGO, - constructor: (p) => Promise.resolve((0, algorand_1.algorandHelper)(p)), - type: ChainType.ALGORAND, -}); -exports.CHAIN_INFO.set(Chain.FUSE, { - name: "FUSE", - nonce: 0x10, - decimals: Decimals_1.DecimalsByCurrency.FUSE, - chainId: undefined, - blockExplorerUrl: "https://explorer.fuse.io/tx/", - tnBlockExplorerUrl: "https://explorer.fusespark.io/tx/", - blockExplorerUrlAddr: "https://explorer.fuse.io/address/", - tnBlockExplorerUrlAddr: "https://explorer.fusespark.io/address/", - currencySymbol: domain_1.SupportedCurrencyName.FUSE, - currency: domain_1.SupportedCurrency.FUSE, - constructor: web3_1.web3HelperFactory, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.UNIQUE, { - name: "Unique", - nonce: 0x11, - decimals: Decimals_1.DecimalsByCurrency.OPL, - chainId: 8888, - blockExplorerUrl: "CANT FIND", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.OPL, - currencySymbol: domain_1.SupportedCurrencyName.OPL, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.TEZOS, { - name: "Tezos", - nonce: 0x12, - decimals: Decimals_1.DecimalsByCurrency.XTZ, - constructor: tezos_1.tezosHelperFactory, - currency: domain_1.SupportedCurrency.XTZ, - currencySymbol: domain_1.SupportedCurrencyName.XTZ, - blockExplorerUrl: "https://tzkt.io/", - tnBlockExplorerUrl: "https://ghostnet.tzkt.io/", - tnBlockExplorerUrlAddr: "https://ghostnet.tzkt.io/", - blockExplorerUrlAddr: "https://tzkt.io/", - type: ChainType.TEZOS, -}); -exports.CHAIN_INFO.set(Chain.VELAS, { - name: "Velas", - blockExplorerUrl: "https://explorer.velas.com/tx/", - tnBlockExplorerUrlAddr: "https://explorer.testnet.velas.com/address/", - blockExplorerUrlAddr: "https://explorer.velas.com/address/", - tnBlockExplorerUrl: "https://explorer.testnet.velas.com/tx/", - nonce: 0x13, - decimals: Decimals_1.DecimalsByCurrency.VLX, - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.VLX, - currencySymbol: domain_1.SupportedCurrencyName.VLX, - chainId: 111, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.AURORA, { - name: "Aurora", - blockExplorerUrl: "https://aurorascan.dev/tx/", - tnBlockExplorerUrl: "hhttps://testnet.aurorascan.dev/tx/", - blockExplorerUrlAddr: "https://aurorascan.dev/address/", - tnBlockExplorerUrlAddr: "https://testnet.aurorascan.dev/address", - nonce: Chain.AURORA, - decimals: Decimals_1.DecimalsByCurrency.AURORA, - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.AURORA, - currencySymbol: domain_1.SupportedCurrencyName.AURORA, - chainId: 1313161554, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.IOTEX, { - name: "IoTeX", - blockExplorerUrl: "https://iotexscan.io/tx/", - blockExplorerUrlAddr: "https://iotexscan.io/address/", - tnBlockExplorerUrl: "https://testnet.iotexscan.io/tx/", - tnBlockExplorerUrlAddr: "https://testnet.iotexscan.io/address/", - nonce: 0x14, - decimals: Decimals_1.DecimalsByCurrency.IOTX, - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.IOTX, - currencySymbol: domain_1.SupportedCurrencyName.IOTX, - chainId: 4689, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.GODWOKEN, { - name: "GodWoken", - blockExplorerUrl: "https://gwscan.com/tx/", - tnBlockExplorerUrl: "https://v1.testnet.gwscan.com/tx/", - blockExplorerUrlAddr: "https://gwscan.com/account/", - tnBlockExplorerUrlAddr: "https://v1.testnet.gwscan.com/account/", - constructor: web3_1.web3HelperFactory, - nonce: 0x16, - decimals: Decimals_1.DecimalsByCurrency.CKB, - currency: domain_1.SupportedCurrency.CKB, - currencySymbol: domain_1.SupportedCurrencyName.CKB, - chainId: 868455272153094, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.GATECHAIN, { - name: "GateChain", - blockExplorerUrl: "https://gatescan.org/tx/", - tnBlockExplorerUrl: "https://gatescan.org/testnet/tx/", - blockExplorerUrlAddr: "https://gatescan.org/address/", - tnBlockExplorerUrlAddr: "https://gatescan.org/testnet/address/", - constructor: web3_1.web3HelperFactory, - nonce: 0x17, - decimals: Decimals_1.DecimalsByCurrency.GT, - currency: domain_1.SupportedCurrency.GT, - currencySymbol: domain_1.SupportedCurrencyName.GT, - chainId: 85, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.VECHAIN, { - name: "VeChain", - tnBlockExplorerUrl: "https://explore-testnet.vechain.org/transactions/", - blockExplorerUrlAddr: "https://explore.vechain.org/accounts/", - blockExplorerUrl: "https://explore.vechain.org/transactions/", - tnBlockExplorerUrlAddr: "https://explore-testnet.vechain.org/accounts/", - constructor: web3_1.web3HelperFactory, - nonce: 0x19, - currency: domain_1.SupportedCurrency.VET, - currencySymbol: domain_1.SupportedCurrencyName.VET, - decimals: Decimals_1.DecimalsByCurrency.VET, - chainId: 39, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.SECRET, { - name: "Secret", - //blockExplorerUrl: "", // TODO - constructor: secret_1.secretHelperFactory, - nonce: Chain.SECRET, - currency: domain_1.SupportedCurrency.SCRT, - currencySymbol: domain_1.SupportedCurrencyName.SCRT, - decimals: Decimals_1.DecimalsByCurrency.SCRT, - type: ChainType.COSMOS, - blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", - blockExplorerUrlAddr: "https://atomscan.com/secret-network/accounts/", -}); -exports.CHAIN_INFO.set(Chain.SOLANA, { - name: "Solana", - blockExplorerUrl: "https://solscan.io/tx/", - blockExplorerUrlAddr: "https://solscan.io/account/", - tnBlockExplorerUrl: (tx) => `https://solscan.io/tx/${tx}?cluster=devnet`, - tnBlockExplorerUrlAddr: (address) => - `https://solscan.io/account/${address}?cluster=devnet`, - constructor: solana_1.solanaHelper, - nonce: Chain.SOLANA, - currency: domain_1.SupportedCurrency.SOL, - currencySymbol: domain_1.SupportedCurrencyName.SOL, - decimals: Decimals_1.DecimalsByCurrency.SOL, - type: ChainType.SOLANA, -}); -exports.CHAIN_INFO.set(Chain.HEDERA, { - blockExplorerUrl: "https://hashscan.io/#/mainnet/transaction/", - tnBlockExplorerUrl: "https://hashscan.io/#/testnet/transaction/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.HBAR, - currencySymbol: domain_1.SupportedCurrencyName.HBAR, - decimals: Decimals_1.DecimalsByCurrency.HBAR, - nonce: Chain.HEDERA, - name: "Hedera", - type: ChainType.HEDERA, - blockExplorerUrlAddr: "https://hashscan.io/#/mainnet/account/", - tnBlockExplorerUrlAddr: "https://hashscan.io/#/testnet/account/", -}); -exports.CHAIN_INFO.set(Chain.SKALE, { - name: "Skale", - //needs additional query params - blockExplorerUrl: - "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/tx/", - tnBlockExplorerUrl: - "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/tx/", - blockExplorerUrlAddr: - "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com/address/", - tnBlockExplorerUrlAddr: - "https://rapping-zuben-elakrab.explorer.staging-v2.skalenodes.com/address/", - constructor: web3_erc20_1.web3ERC20HelperFactory, - currency: domain_1.SupportedCurrency.ETH, - currencySymbol: domain_1.SupportedCurrencyName.ETH, - decimals: Decimals_1.DecimalsByCurrency.ETH, - tnChainId: 0x1482a7b2, - nonce: Chain.SKALE, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.DFINITY, { - blockExplorerUrl: "", - constructor: dfinity_1.dfinityHelper, - currency: domain_1.SupportedCurrency.ICP, - currencySymbol: domain_1.SupportedCurrencyName.ICP, - decimals: Decimals_1.DecimalsByCurrency.ICP, - name: "DFINITY", - nonce: Chain.DFINITY, - type: ChainType.DFINITY, -}); -exports.CHAIN_INFO.set(Chain.NEAR, { - blockExplorerUrl: "https://explorer.mainnet.near.org/transactions/", - tnBlockExplorerUrl: "https://explorer.testnet.near.org/transactions/", - constructor: near_1.nearHelperFactory, - currency: domain_1.SupportedCurrency.NEAR, - currencySymbol: domain_1.SupportedCurrencyName.NEAR, - decimals: Decimals_1.DecimalsByCurrency.NEAR, - name: "NEAR", - nonce: Chain.NEAR, - type: ChainType.NEAR, - blockExplorerUrlAddr: "https://explorer.mainnet.near.org/accounts/", - tnBlockExplorerUrlAddr: "https://explorer.testnet.near.org/accounts/", -}); -exports.CHAIN_INFO.set(Chain.MOONBEAM, { - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.GLMR, - currencySymbol: domain_1.SupportedCurrencyName.GLMR, - decimals: Decimals_1.DecimalsByCurrency.GLMR, - name: "MoonBeam", - nonce: Chain.MOONBEAM, - chainId: 0x507, - type: ChainType.EVM, - blockExplorerUrlAddr: "https://moonbeam.moonscan.io/address/", - tnBlockExplorerUrlAddr: "https://moonbase.moonscan.io/address/", - blockExplorerUrl: "https://moonscan.io/tx/", - tnBlockExplorerUrl: "https://moonbase.moonscan.io/tx/", -}); -exports.CHAIN_INFO.set(Chain.ABEYCHAIN, { - tnBlockExplorerUrl: "https://testnet-explorer.abeychain.com/tx/", - tnBlockExplorerUrlAddr: "https://testnet-explorer.abeychain.com/address/", - blockExplorerUrl: "https://scan.abeychain.com/tx/", - blockExplorerUrlAddr: "https://scan.abeychain.com/address/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.ABEY, - currencySymbol: domain_1.SupportedCurrencyName.ABEY, - decimals: Decimals_1.DecimalsByCurrency.ABEY, - name: "AbeyChain", - nonce: Chain.ABEYCHAIN, - chainId: 178, - type: ChainType.EVM, -}); -exports.CHAIN_INFO.set(Chain.APTOS, { - constructor: aptos_1.aptosHelper, - currency: domain_1.SupportedCurrency.APTOS, - currencySymbol: domain_1.SupportedCurrencyName.APTOS, - decimals: Decimals_1.DecimalsByCurrency.APTOS, - name: "Aptos", - nonce: Chain.APTOS, - type: ChainType.APTOS, - //needs additional query params - blockExplorerUrl: "https://explorer.aptoslabs.com/txn/", - blockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", - tnBlockExplorerUrl: "https://explorer.aptoslabs.com/txn/", - tnBlockExplorerUrlAddr: "https://explorer.aptoslabs.com/account/", -}); -exports.CHAIN_INFO.set(Chain.TON, { - name: "TON", - constructor: ton_1.tonHelper, - currency: domain_1.SupportedCurrency.TON, - currencySymbol: domain_1.SupportedCurrencyName.TON, - decimals: Decimals_1.DecimalsByCurrency.TON, - nonce: Chain.TON, - type: ChainType.TON, - tnBlockExplorerUrl: "https://testnet.tonscan.org/tx/", - blockExplorerUrl: "https://tonscan.org/tx/", - blockExplorerUrlAddr: "https://tonscan.org/address/", - tnBlockExplorerUrlAddr: "https://testnet.tonscan.org/address/", -}); -exports.CHAIN_INFO.set(Chain.CADUCEUS, { - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.CMP, - currencySymbol: domain_1.SupportedCurrencyName.CMP, - decimals: Decimals_1.DecimalsByCurrency.CMP, - name: "Caduceus", - nonce: Chain.CADUCEUS, - blockExplorerUrl: "https://mainnet.scan.caduceus.foundation/tx/", - tnBlockExplorerUrl: "https://galaxy.scan.caduceus.foundation/tx/", - blockExplorerUrlAddr: "https://mainnet.scan.caduceus.foundation/address/", - tnBlockExplorerUrlAddr: "https://galaxy.scan.caduceus.foundation/address/", - type: ChainType.EVM, - chainId: 256256, - tnChainId: 512512, -}); -exports.CHAIN_INFO.set(Chain.OKC, { - blockExplorerUrl: "https://www.oklink.com/okc/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.OKT, - currencySymbol: domain_1.SupportedCurrencyName.OKT, - decimals: Decimals_1.DecimalsByCurrency.OKT, - name: "OKC", - nonce: Chain.OKC, - type: ChainType.EVM, - chainId: 66, - blockExplorerUrlAddr: "https://www.oklink.com/en/okc/address/", - tnBlockExplorerUrl: "https://www.oklink.com/okc-test/", - tnBlockExplorerUrlAddr: "https://www.oklink.com/en/okc-test/address/", - tnChainId: 65, -}); -exports.CHAIN_INFO.set(Chain.ARBITRUM, { - blockExplorerUrl: "https://nova.arbiscan.io/tx/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.ETH, - currencySymbol: domain_1.SupportedCurrencyName.ETH, - decimals: Decimals_1.DecimalsByCurrency.ETH, - name: "Arbitrum", - nonce: Chain.ARBITRUM, - type: ChainType.EVM, - chainId: 42170, - blockExplorerUrlAddr: "https://nova.arbiscan.io/address/", - tnBlockExplorerUrl: "https://goerli-rollup-explorer.arbitrum.io/tx/", - tnBlockExplorerUrlAddr: "https://goerli-rollup-explorer.arbitrum.io/address/", - tnChainId: 421613, -}); -exports.CHAIN_INFO.set(Chain.BITGERT, { - blockExplorerUrl: "https://brisescan.com/tx/", - constructor: web3_1.web3HelperFactory, - currency: domain_1.SupportedCurrency.BRISE, - currencySymbol: domain_1.SupportedCurrencyName.BRISE, - decimals: Decimals_1.DecimalsByCurrency.ETH, - name: "Bitgert", - nonce: Chain.BITGERT, - type: ChainType.EVM, - chainId: 3250, - blockExplorerUrlAddr: "https://brisescan.com/address/", - tnBlockExplorerUrl: "https://testnet-explorer.brisescan.com/tx/", - tnBlockExplorerUrlAddr: "https://testnet-explorer.brisescan.com/address/", - tnChainId: 64668, -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FJMEI7QUFDMUIseUNBQTJFO0FBQzNFLHlDQUEyRTtBQUUzRSxtRUFHZ0Q7QUFDaEQsOEVBQWlHO0FBQ2pHLGlEQUk0QjtBQUM1QiwyQ0FBK0U7QUFFL0UsNkNBSTBCO0FBQzFCLDZDQUE0RTtBQUM1RSx1Q0FBZ0U7QUFDaEUsdURBSW1DO0FBQ25DLHlDQUEyRTtBQUMzRSwyQ0FBd0U7QUFDeEUscURBQStFO0FBRS9FLDRDQUE0QztBQUM1QyxJQUFZLGFBbUNYO0FBbkNELFdBQVksYUFBYTtJQUN2Qiw2REFBNEMsQ0FBQTtJQUM1Qyw0REFBMkMsQ0FBQTtJQUMzQyx3RUFBdUQsQ0FBQTtJQUN2RCx5RkFBd0UsQ0FBQTtJQUN4RSx5RUFBd0QsQ0FBQTtJQUN4RCxvRUFBbUQsQ0FBQTtJQUNuRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxrRUFBaUQsQ0FBQTtJQUNqRCxxREFBb0MsQ0FBQTtJQUNwQyxtREFBa0MsQ0FBQTtJQUNsQyw0REFBMkMsQ0FBQTtJQUMzQyxzREFBcUMsQ0FBQTtJQUNyQyxpRUFBZ0QsQ0FBQTtJQUNoRCw2REFBNEMsQ0FBQTtJQUM1Qyx1REFBc0MsQ0FBQTtJQUN0QyxvRUFBbUQsQ0FBQTtJQUNuRCw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3Qyw4REFBNkMsQ0FBQTtJQUM3QywyRkFBMEUsQ0FBQTtJQUMxRSx5REFBd0MsQ0FBQTtJQUN4QyxzREFBcUMsQ0FBQTtJQUNyQyx1RUFBc0QsQ0FBQTtJQUN0RCw0REFBMkMsQ0FBQTtJQUMzQyxpRUFBZ0QsQ0FBQTtJQUNoRCxxRUFBb0QsQ0FBQTtJQUNwRCx5REFBd0MsQ0FBQTtJQUN4QyxzRUFBcUQsQ0FBQTtJQUNyRCx3REFBdUMsQ0FBQTtJQUN2QyxtRUFBa0QsQ0FBQTtJQUNsRCw4REFB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 diff --git a/dist/emitter.d.ts b/dist/emitter.d.ts deleted file mode 100644 index a0ebebdb7..000000000 --- a/dist/emitter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const Emitter: EventTarget | undefined; -//# sourceMappingURL=emitter.d.ts.map diff --git a/dist/emitter.d.ts.map b/dist/emitter.d.ts.map deleted file mode 100644 index c05eaa4b0..000000000 --- a/dist/emitter.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,yBAC2C,CAAC"} \ No newline at end of file diff --git a/dist/emitter.js b/dist/emitter.js deleted file mode 100644 index 286e80f6b..000000000 --- a/dist/emitter.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Emitter = void 0; -exports.Emitter = typeof window !== "undefined" ? new EventTarget() : undefined; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsT0FBTyxHQUNsQixPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyJ9 diff --git a/dist/factory/cons.d.ts b/dist/factory/cons.d.ts deleted file mode 100644 index 41b83692d..000000000 --- a/dist/factory/cons.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { BatchExchangeRateRepo, ExchangeRateRepo } from "crypto-exchange-rate"; -import { NftInfo, FullChain } from ".."; -export declare const _headers: { - "Content-Type": string; - Accept: string; -}; -export declare function exchangeRateRepo( - baseUrl: string -): ExchangeRateRepo & BatchExchangeRateRepo; -export declare function checkBlockedContracts(to: any, contract: string): void; -export declare function getDefaultContract( - nft: NftInfo, - fromChain: FullChain, - toChain: FullChain -): string | undefined; -export declare function prepareTokenId(nft: NftInfo, from: number): any; -//# sourceMappingURL=cons.d.ts.map diff --git a/dist/factory/cons.d.ts.map b/dist/factory/cons.d.ts.map deleted file mode 100644 index 8a2330027..000000000 --- a/dist/factory/cons.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cons.d.ts","sourceRoot":"","sources":["../../src/factory/cons.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIxC,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,qBAAqB,CAS1C;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAO9D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAChE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EACrB,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAC5C,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GACzC,MAAM,GAAG,SAAS,CAsDpB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,OAuB7D"} \ No newline at end of file diff --git a/dist/factory/cons.js b/dist/factory/cons.js deleted file mode 100644 index cc8f8deae..000000000 --- a/dist/factory/cons.js +++ /dev/null @@ -1,107 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.prepareTokenId = - exports.getDefaultContract = - exports.checkBlockedContracts = - exports.exchangeRateRepo = - exports._headers = - void 0; -const crypto_exchange_rate_1 = require("crypto-exchange-rate"); -const consts_1 = require("../consts"); -exports._headers = { - "Content-Type": "application/json", - Accept: "*/*", -}; -function exchangeRateRepo(baseUrl) { - const baseService = - crypto_exchange_rate_1.NetworkModel.batchExchangeRateService(baseUrl); - return (0, crypto_exchange_rate_1.cachedExchangeRateRepo)( - (0, crypto_exchange_rate_1.networkBatchExchangeRateRepo)( - baseService, - crypto_exchange_rate_1.NetworkModel.exchangeRateDtoMapper() - ) - ); -} -exports.exchangeRateRepo = exchangeRateRepo; -function checkBlockedContracts(to, contract) { - const chain = consts_1.CHAIN_INFO.get(to); - if (chain?.rejectUnfreeze && chain?.rejectUnfreeze.includes(contract)) { - throw new Error( - `Transfering to ${chain.name} is prohibited by the NFT project team` - ); - } -} -exports.checkBlockedContracts = checkBlockedContracts; -function getDefaultContract(nft, fromChain, toChain) { - const defaultMintError = new Error( - `Transfer has been canceled. The NFT you are trying to send will be minted with a default NFT collection` - ); - const from = fromChain.getNonce(); - const to = toChain.getNonce(); - const fromType = consts_1.CHAIN_INFO.get(from)?.type; - const toType = consts_1.CHAIN_INFO.get(to)?.type; - const contract = - //@ts-ignore contractType is checked - "contractType" in nft.native && - //@ts-ignore contractType is checked - nft.native.contractType === "ERC1155" && - toChain.XpNft1155 - ? toChain.XpNft1155 - : toChain.XpNft; - if ( - typeof window !== "undefined" && - (/(allowDefaultMint=true)/.test(window.location.search) || - /testnet/.test(window.location.pathname)) - ) { - return contract; - } - if ( - (from === consts_1.Chain.VECHAIN && toType === consts_1.ChainType.EVM) || - (to === consts_1.Chain.VECHAIN && fromType === consts_1.ChainType.EVM) - ) { - throw defaultMintError; - } - if ( - (fromType === consts_1.ChainType.EVM && - toType === consts_1.ChainType.ELROND) || - (fromType === consts_1.ChainType.ELROND && - toType === consts_1.ChainType.EVM) - ) { - throw defaultMintError; - } - if ( - (fromType === consts_1.ChainType.EVM && - toType === consts_1.ChainType.TEZOS) || - (fromType === consts_1.ChainType.TEZOS && toType === consts_1.ChainType.EVM) - ) { - throw defaultMintError; - } - if (fromType === consts_1.ChainType.TRON) { - throw defaultMintError; - } - return contract; -} -exports.getDefaultContract = getDefaultContract; -function prepareTokenId(nft, from) { - const tokenId = - //@ts-ignore - nft.native && "tokenId" in nft.native && nft.native.tokenId.toString(); - if (tokenId) { - const notNumber = isNaN(Number(tokenId)); - if (notNumber) { - if (from === consts_1.Chain.ELROND) { - if (nft.native.nonce) return String(nft.native.nonce); - const hex = tokenId.split("-")?.at(2); - return String(hex ? parseInt(hex, 16) : ""); - } - if (from === consts_1.Chain.TON) { - return "1"; - } - } else { - return tokenId; - } - } - return undefined; -} -exports.prepareTokenId = prepareTokenId; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3J5L2NvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBTThCO0FBSTlCLHNDQUF5RDtBQUU1QyxRQUFBLFFBQVEsR0FBRztJQUN0QixjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLE1BQU0sRUFBRSxLQUFLO0NBQ2QsQ0FBQztBQUVGLFNBQWdCLGdCQUFnQixDQUM5QixPQUFlO0lBRWYsTUFBTSxXQUFXLEdBQUcsbUNBQVksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRSxPQUFPLElBQUEsNkNBQXNCLEVBQzNCLElBQUEsbURBQTRCLEVBQzFCLFdBQVcsRUFDWCxtQ0FBWSxDQUFDLHFCQUFxQixFQUFFLENBQ3JDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFYRCw0Q0FXQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLEVBQU8sRUFBRSxRQUFnQjtJQUM3RCxNQUFNLEtBQUssR0FBRyxtQkFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxJQUFJLEtBQUssRUFBRSxjQUFjLElBQUksS0FBSyxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDckUsTUFBTSxJQUFJLEtBQUssQ0FDYixrQkFBa0IsS0FBSyxDQUFDLElBQUksd0NBQXdDLENBQ3JFLENBQUM7S0FDSDtBQUNILENBQUM7QUFQRCxzREFPQztBQUVELFNBQWdCLGtCQUFrQixDQUNoQyxHQUFxQixFQUNyQixTQUE0QyxFQUM1QyxPQUEwQztJQUUxQyxNQUFNLGdCQUFnQixHQUFHLElBQUksS0FBSyxDQUNoQyx5R0FBeUcsQ0FDMUcsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFOUIsTUFBTSxRQUFRLEdBQUcsbUJBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLG1CQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQztJQUV4QyxNQUFNLFFBQVE7SUFDWixvQ0FBb0M7SUFDcEMsY0FBYyxJQUFJLEdBQUcsQ0FBQyxNQUFNO1FBQzVCLG9DQUFvQztRQUNwQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksS0FBSyxTQUFTO1FBQ3JDLE9BQU8sQ0FBQyxTQUFTO1FBQ2YsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTO1FBQ25CLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBRXBCLElBQ0UsT0FBTyxNQUFNLEtBQUssV0FBVztRQUM3QixDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNyRCxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDM0M7UUFDQSxPQUFPLFFBQVEsQ0FBQztLQUNqQjtJQUVELElBQ0UsQ0FBQyxJQUFJLEtBQUssY0FBSyxDQUFDLE9BQU8sSUFBSSxNQUFNLEtBQUssa0JBQVMsQ0FBQyxHQUFHLENBQUM7UUFDcEQsQ0FBQyxFQUFFLEtBQUssY0FBSyxDQUFDLE9BQU8sSUFBSSxRQUFRLEtBQUssa0JBQVMsQ0FBQyxHQUFHLENBQUMsRUFDcEQ7UUFDQSxNQUFNLGdCQUFnQixDQUFDO0tBQ3hCO0lBRUQsSUFDRSxDQUFDLFFBQVEsS0FBSyxrQkFBUyxDQUFDLEdBQUcsSUFBSSxNQUFNLEtBQUssa0JBQVMsQ0FBQyxNQUFNLENBQUM7UUFDM0QsQ0FBQyxRQUFRLEtBQUssa0JBQVMsQ0FBQyxNQUFNLElBQUksTUFBTSxLQUFLLGtCQUFTLENBQUMsR0FBRyxDQUFDLEVBQzNEO1FBQ0EsTUFBTSxnQkFBZ0IsQ0FBQztLQUN4QjtJQUVELElBQ0UsQ0FBQyxRQUFRLEtBQUssa0JBQVMsQ0FBQyxHQUFHLElBQUksTUFBTSxLQUFLLGtCQUFTLENBQUMsS0FBSyxDQUFDO1FBQzFELENBQUMsUUFBUSxLQUFLLGtCQUFTLENBQUMsS0FBSyxJQUFJLE1BQU0sS0FBSyxrQkFBUyxDQUFDLEdBQUcsQ0FBQyxFQUMxRDtRQUNBLE1BQU0sZ0JBQWdCLENBQUM7S0FDeEI7SUFFRCxJQUFJLFFBQVEsS0FBSyxrQkFBUyxDQUFDLElBQUksRUFBRTtRQUMvQixNQUFNLGdCQUFnQixDQUFDO0tBQ3hCO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQTFERCxnREEwREM7QUFFRCxTQUFnQixjQUFjLENBQUMsR0FBaUIsRUFBRSxJQUFZO0lBQzVELE1BQU0sT0FBTztJQUNYLFlBQVk7SUFDWixHQUFHLENBQUMsTUFBTSxJQUFJLFNBQVMsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRXpFLElBQUksT0FBTyxFQUFFO1FBQ1gsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXpDLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxJQUFJLEtBQUssY0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDekIsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7b0JBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDN0M7WUFFRCxJQUFJLElBQUksS0FBSyxjQUFLLENBQUMsR0FBRyxFQUFFO2dCQUN0QixPQUFPLEdBQUcsQ0FBQzthQUNaO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO0tBQ0Y7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBdkJELHdDQXVCQyJ9 diff --git a/dist/factory/factories.d.ts b/dist/factory/factories.d.ts deleted file mode 100644 index dc49c8ce0..000000000 --- a/dist/factory/factories.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ChainParams } from "."; -export declare namespace ChainFactoryConfigs { - const TestNet: () => Promise>; - const Staging: () => Promise>; - const MainNet: () => Promise>; -} -//# sourceMappingURL=factories.d.ts.map diff --git a/dist/factory/factories.d.ts.map b/dist/factory/factories.d.ts.map deleted file mode 100644 index 2f4efb769..000000000 --- a/dist/factory/factories.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/factory/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAoChC,yBAAiB,mBAAmB,CAAC;IAC5B,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAyYvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAwMvD,CAAC;IAEK,MAAM,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAmXvD,CAAC;CACH"} \ No newline at end of file diff --git a/dist/factory/factories.js b/dist/factory/factories.js deleted file mode 100644 index 9cebef5ae..000000000 --- a/dist/factory/factories.js +++ /dev/null @@ -1,1173 +0,0 @@ -"use strict"; -var __createBinding = - (this && this.__createBinding) || - (Object.create - ? function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if ( - !desc || - ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) - ) { - desc = { - enumerable: true, - get: function () { - return m[k]; - }, - }; - } - Object.defineProperty(o, k2, desc); - } - : function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); -var __setModuleDefault = - (this && this.__setModuleDefault) || - (Object.create - ? function (o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } - : function (o, v) { - o["default"] = v; - }); -var __importStar = - (this && this.__importStar) || - function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ChainFactoryConfigs = void 0; -//@ts-ignore -const tronweb_1 = __importDefault(require("tronweb")); -const consts_1 = require("../consts"); -const ethers_1 = require("ethers"); -const taquito_1 = require("@taquito/taquito"); -const notifier_1 = require("../notifier"); -const connex_driver_1 = require("@vechain/connex-driver"); -const thor = __importStar(require("web3-providers-connex")); -const connex_framework_1 = require("@vechain/connex-framework"); -const hethers_1 = require("@hashgraph/hethers"); -const agent_1 = require("@dfinity/agent"); -const principal_1 = require("@dfinity/principal"); -const tonweb_1 = __importDefault(require("tonweb")); -/*const EVM_VALIDATORS = [ - "0xffa74a26bf87a32992bb4be080467bb4a8019e00", - "0x837b2eb764860b442c971f98f505e7c5f419edd7", - "0x9671ce5a02eb53cf0f2cbd220b34e50c39c0bf23", - "0x90e79cc7a06dbd227569920a8c4a625f630d77f4", - "0xdc80905cafeda39cb19a566baeef52472848e82f", - "0x77745cd585798e55938940e3d4dd0fd7cde7bdd6", - "0xc2a29b4e9fa71e9033a52611544403241c56ac5e", -];*/ -// const _EVM_TESTNET_VALIDATORS = [ -// "0x50aCEC08ce70aa4f2a8ab2F45d8dCd1903ea4E14", -// "0xae87208a5204B6606d3AB177Be5fdf62267Cd499", -// "0x5002258315873AdCbdEF25a8E71C715A4f701dF5", -// ]; -const middleware_uri = "https://notifier.xp.network"; -const testnet_middleware_uri = - "https://testnet-notifier.xp.network/notify-test/"; -var ChainFactoryConfigs; -(function (ChainFactoryConfigs) { - ChainFactoryConfigs.TestNet = async () => { - const feeMargin = { min: 1, max: 5 }; - const notifier = (0, notifier_1.evNotifier)(testnet_middleware_uri); - // VeChain related: - const net = new connex_driver_1.SimpleNet(consts_1.TestNetRpcUri.VECHAIN); - const driver = await connex_driver_1.Driver.connect(net); - const provider = thor.ethers.modifyProvider( - new ethers_1.ethers.providers.Web3Provider( - new thor.ConnexProvider({ - connex: new connex_framework_1.Framework(driver), - }) - ) - ); - return { - elrondParams: { - node_uri: consts_1.TestNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgqy2nx5z4cpr90de4sga2v2yx62fph3lg8g6vskt0k2f", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqc854pa9ruzgs5f8rdzzc02xgq8kqku3ng6vs59vmf8", - esdt_nft: "XPNFT-af3fde", - esdt_swap: "WEGLD-708f9b", - notifier, - nonce: 2, - feeMargin, - }, - tonParams: { - tonweb: new tonweb_1.default( - new tonweb_1.default.HttpProvider(consts_1.TestNetRpcUri.TON, { - apiKey: - "abe8c1222f19b0891a9a35889d112dc88562093467db8dda39961eeacd50f9b1", - }) - ), - bridgeAddr: "kQBwUu-b4O6qDYq3iDRvsYUnTD6l3WCxLXkv0aH6ywAaPs3c", - burnerAddr: "kQCbH9gGgqJzXuusUVajW_40brrl2fxTYqMkk6HUhJnIgOQA", - xpnftAddr: "EQDji0YH-SNT-qi6o5dQQBLeWL0Xmm46fnqj34EYhOL34WDc", - feeMargin, - notifier, - }, - solanaParams: { - xpnftAddr: "C7bw5dJZwhjWd6TZE3LnE2b1RLqWDiy9XRMA1rajPKQY", - bridgeContractAddr: "FXaXLtmkuoJCJeX6BnLwQJWgT8cPdwuXN8BmmQzVvuRA", - endpoint: consts_1.TestNetRpcUri.SOLANA, - notifier, - feeMargin, - }, - vechainParams: { - notifier, - feeMargin, - nonce: consts_1.Chain.VECHAIN, - provider, - minter_addr: "0x5142f6Cc88a9a91b4F6a1972Ce412d57245092A8", - erc721_addr: "0x1cCF127eB11bD9bdbf2b4000dCef04c34C13850B", - erc1155_addr: "0x1109b0CAB4C4e51aBA040a8A6d16273c305941F8", - erc721Minter: "0x1E749e1580889334Bd61254fFab15c1B3ADe1Afd", - erc1155Minter: "0xDA5e020bA795191ff97A5AF97631bACbdcD1354b", - }, - tronParams: { - provider: new tronweb_1.default({ - fullHost: consts_1.TestNetRpcUri.TRON, - }), - notifier, - minter_addr: "TY46GA3GGdMtu9GMaaSPPSQtqq9CZAv5sK", - erc721_addr: "TDhb2kyurMwoc1eMndKzqNebji1ap1DJC4", - erc1155_addr: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", - erc1155Minter: "TBeSKv5RSFLAi7SCD7hR64xuvP6N26oEqR", - erc721Minter: "TMVDt5PP53eQro5hLafibv2xWzSSDSMyjy", - validators: [ - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", - ], - nonce: consts_1.Chain.TRON, - feeMargin, - }, - caduceusParams: { - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.CADUCEUS - ), - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - nonce: consts_1.Chain.CADUCEUS, - }, - avalancheParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.AVALANCHE - ), - minter_addr: "0xDdF1f6B8Ae8cd26dBE7C4C3ed9ac8E6D8B3a4FdC", - erc721_addr: "0xE1D8Df2e06797F22e7ce25c95A7ddccb926f8A1E", - erc1155Minter: "0xfA9214AEe59a6631A400DC039808457524dE70A2", - erc721Minter: "0x54Db938575DD089702822F191AEbB25C2Af7D1Ef", - erc1155_addr: "0xfA9214AEe59a6631A400DC039808457524dE70A2", - nonce: consts_1.Chain.AVALANCHE, - feeMargin, - }, - polygonParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.POLYGON - ), - minter_addr: "0x224f78681099D66ceEdf4E52ee62E5a98CCB4b9e", - erc721_addr: "0xb678b13E41a47e46A4046a4D8315b32E0F34389c", - erc1155Minter: "0x5A768f8dDC67ccCA1431879BcA28E93a6c7722bb", - erc1155_addr: "0xc1D778Ce89154357471bA6c4C6E51f0e590FFe57", - erc721Minter: "0x6516E2D3387A9CF4E5e868E7842D110c95A9f3B4", - nonce: consts_1.Chain.POLYGON, - feeMargin, - }, - dfinityParams: { - agent: new agent_1.HttpAgent({ - host: "https://ic0.app", - }), - bridgeContract: principal_1.Principal.fromText( - "e3io4-qaaaa-aaaak-qasua-cai" - ), - xpnftId: principal_1.Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), - umt: principal_1.Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), - notifier, - feeMargin, - }, - moonbeamParams: { - nonce: consts_1.Chain.MOONBEAM, - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.MOONBEAM - ), - erc721Minter: "0x1F71E80E1E785dbDB34c69909C11b71bAd8D9802", - erc1155Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", - erc1155_addr: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", - erc721_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", - minter_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - }, - aptosParams: { - rpcUrl: consts_1.TestNetRpcUri.APTOS, - bridge: - "0x2b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58", - xpnft: "XPNFT", - notifier, - feeMargin, - nonce: consts_1.Chain.APTOS, - network: "testnet", - }, - abeyChainParams: { - nonce: consts_1.Chain.ABEYCHAIN, - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.ABEYCHAIN - ), - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - }, - fantomParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.FANTOM - ), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155Minter: "string", - erc1155_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", - erc721Minter: "string", - nonce: consts_1.Chain.FANTOM, - feeMargin, - }, - bscParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.BSC - ), - minter_addr: "0x3Dd26fFf61D2a79f5fB77100d6daDBF073F334E6", - erc721_addr: "0x783eF7485DCF27a3Cf59F5A0A406eEe3f9b2AaeB", - erc1155Minter: "0x5dA3b7431f4581a7d35aEc2f3429174DC0f2A2E1", - erc721Minter: "0x97CD6fD6cbFfaa24f5c858843955C2601cc7F2b9", - erc1155_addr: "0xb5278A4808e2345A3B9d08bAc8909A121aFaEBB3", - nonce: consts_1.Chain.BSC, - feeMargin, - }, - celoParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.CELO - ), - minter_addr: "0x9a287810bA8F0564DaDd9F2Ea9B7B2459497416B", - erc721_addr: "0x3F51015C76D7A64514E9B86D500bBFD44F95bdE9", - erc1155_addr: "", - erc1155Minter: "string", - erc721Minter: "string", - nonce: consts_1.Chain.CELO, - feeMargin, - }, - harmonyParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.HARMONY - ), - minter_addr: "0x198Cae9EE853e7b44E99c0b35Bddb451F83485d5", - erc721_addr: "0x1280c5c11bF0aAaaEAeBc998893B42e08B26fD5A", - erc1155Minter: "0xB546c2358A6e4b0B83192cCBB83CaE37FA572fe1", - erc721Minter: "0xb036640d6f7cAfd338103dc60493250561Af2eBc", - erc1155_addr: "0x44FCF0001A2B03260e4Bba44AF93a60C64cE79A2", - nonce: consts_1.Chain.HARMONY, - feeMargin, - }, - ropstenParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.ROPSTEN - ), - erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", - erc721_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", - erc1155Minter: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", - erc721Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", - minter_addr: "0x04a5f9158829Cae5a0a549954AdEaBD47BbB3d2d", - nonce: consts_1.Chain.ETHEREUM, - feeMargin, - }, - okcParams: { - erc721Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", - erc1155Minter: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc1155_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - erc721_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - minter_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", - feeMargin, - nonce: consts_1.Chain.OKC, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.OKC - ), - }, - arbitrumParams: { - erc721Minter: "0x10E3EE8526Cc7610393E2f6e25dEee0bD38d057e", - erc1155Minter: "0xd023739a76Df4cC6260A1Ba25e8BEbCe8389D60D", - erc1155_addr: "0x42027aF22E36e839e138dc387F1b7428a85553Cc", - erc721_addr: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - minter_addr: "0xaB9eD7b9734471249255B4d969B32995015116d9", - feeMargin, - nonce: consts_1.Chain.ARBITRUM, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.ARBITRUM - ), - }, - bitgertParams: { - erc721Minter: "0xf185759aDb97977b419e3bc25b14E751c93865e", - erc1155Minter: "0xb0801bffD146c21EF91E86625756aAa7f74aDB3a", - erc1155_addr: "0x7b7Bb6ba1796f2C766cFae6A2C60463766615c69", - erc721_addr: "0x56E5298Ba72125DbF8180b199f74aC2B51d31Deb", - minter_addr: "0x39d4F26213245D33f506ECA1ce68D08dCF4d8d14", - feeMargin, - nonce: consts_1.Chain.BITGERT, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.BITGERT - ), - }, - xDaiParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.XDAI - ), - minter_addr: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", - erc721_addr: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", - erc1155Minter: "0x0AA29baB4F811A9f3dcf6a0F9cAEa9bE18ECED78", - erc721Minter: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", - erc1155_addr: "0x1C6d7aa611B30C9C1e5f52068E145b77b0e661b2", - nonce: consts_1.Chain.XDAI, - feeMargin, - }, - algorandParams: { - algodApiKey: - "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - indexerUri: "https://algoindexer.testnet.algoexplorerapi.io", - algodUri: "https://node.testnet.algoexplorerapi.io", - nonce: consts_1.Chain.ALGORAND, - sendNftAppId: 83148194, - algodPort: 443, - notifier, - feeMargin, - }, - auroraParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.AURORA - ), - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - nonce: consts_1.Chain.AURORA, - feeMargin, - }, - uniqueParams: { - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.UNIQUE - ), - nonce: consts_1.Chain.UNIQUE, - erc721_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc1155_addr: "", - minter_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155Minter: "string", - erc721Minter: "string", - notifier, - feeMargin, - }, - tezosParams: { - bridgeAddress: "KT1NJG7j4Z5LbU3obL5TUaJPGNT45ukRTQrH", - notifier, - Tezos: new taquito_1.TezosToolkit(consts_1.TestNetRpcUri.TEZOS), - xpnftAddress: "KT1GRqXuUpGJGDLCRsgQ9nDvVu7tap6LPxTC", - validators: [ - "tz1iKCCYmhayfpp1HvVA8Fmp4PkY5Z7XnDdX", - "tz1g4CJW1mzVLvN8ycHFg9JScpuzYrJhZcnD", - "tz1exbY3JKPRpo2KLegK8iqoVNRLn1zFrnZi", - ], - feeMargin, - }, - velasParams: { - notifier, - erc721_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", - erc1155_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", - minter_addr: "0x5051679FEDf0D7F01Dc23e72674d0ED58de9be6a", - erc1155Minter: "0x941972fa041F507eBb8CfD5d11C05Eb1a51f2E95", - erc721Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", - nonce: consts_1.Chain.VELAS, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.VELAS - ), - feeMargin, - }, - iotexParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.IOTEX - ), - minter_addr: "0xE657b66d683bF4295325c5E66F6bb0fb6D1F7551", - erc721_addr: "0x5D822bA2a0994434392A0f947C83310328CFB0DE", - erc1155_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", - erc1155Minter: "0x5df32A2F15D021DeF5086cF94fbCaC4594208A26", - erc721Minter: "0xC3dB3dBcf007961541BE1ddF15cD4ECc0Fc758d5", - nonce: consts_1.Chain.IOTEX, - feeMargin, - }, - hederaParams: { - notifier, - provider: hethers_1.hethers.getDefaultProvider("testnet"), - feeMargin, - nonce: consts_1.Chain.HEDERA, - erc721_addr: "0x0000000000000000000000000000000002e88e04", - erc1155_addr: "0x0000000000000000000000000000000002e88e04", - minter_addr: "0x0000000000000000000000000000000002e86d67", - erc721Minter: "0x0000000000000000000000000000000002da3c1d", - erc1155Minter: "0x0000000000000000000000000000000002da3c20", - }, - skaleParams: { - nonce: consts_1.Chain.SKALE, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.SKALE - ), - feeMargin, - erc1155_addr: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - erc1155Minter: "0x48B218C9f626F079b82f572E3c5B46251c40fc47", - erc721Minter: "0xaB9eD7b9734471249255B4d969B32995015116d9", - erc721_addr: "0xbED4a5b36fae07943589a0b34CC2Ec3a1c208E53", - minter_addr: "0x7cB14C4aB12741B5ab185C6eAFb5Eb7b5282A032", - paymentTokenAddress: "0x0F00f81162ABC95Ee6741a802A1218C67C42e714", - }, - godwokenParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.GODWOKEN - ), - minter_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc721_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc1155_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721Minter: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc1155Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - nonce: consts_1.Chain.GODWOKEN, - feeMargin, - }, - gateChainParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.TestNetRpcUri.GATECHAIN - ), - minter_addr: "0x2B24de7BFf5d2ab01b1C53682Ee5987c9BCf1BAc", - erc721_addr: "0x3fe9EfFa80625B8167B2F0d8cF5697F61D77e4a2", - erc1155_addr: "0x8CEe805FE5FA49e81266fcbC27F37D85062c1707", - erc721Minter: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155Minter: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - nonce: consts_1.Chain.GATECHAIN, - feeMargin, - }, - secretParams: { - notifier, - rpcUrl: consts_1.TestNetRpcUri.SECRET, - bridge: { - contractAddress: "secret1ecsxtsrct6h647lpztnnzc9e47ezh0uu673c8h", - codeHash: - "29a127369d1f4326fb684435fde702fa9619c812dfb5b3a1929529bab0e308e0", - }, - xpnft: { - contractAddress: "secret1x4afa2shvq4uwwtl0ld8qnjfm3jkmyvap3yn9g", - codeHash: - "090ab9b7968745369f8888302a16650164e2ffc2f44c393a7382f74e122a9a8e", - }, - umt: { - contractAddress: "secret146snljq0kjsva7qrx4am54nv3fhfaet7srx4n2", - codeHash: - "af076a49141264ec048270318f1358c9be193893c3f829425cab53ee5eb05e5c", - }, - chainId: "pulsar-2", - feeMargin, - }, - nearParams: { - networkId: "testnet", - nonce: consts_1.Chain.NEAR, - rpcUrl: consts_1.TestNetRpcUri.NEAR, - bridge: "xp_new_bridge.testnet", - xpnft: "xp_new_nft.testnet", - walletUrl: "https://wallet.testnet.near.org", - helperUrl: "https://helper.testnet.near.org", - feeMargin, - notifier, - }, - }; - }; - ChainFactoryConfigs.Staging = async () => { - const feeMargin = { min: 1, max: 5 }; - const notifier = (0, notifier_1.evNotifier)( - "https://bridge1.xp.network/notifier" - ); - return { - tonParams: { - bridgeAddr: "kQBGFgZOXaF7LPRxWrjd9l6Iws6KGhWiMs3BKzAZGyeMq2AS", - burnerAddr: "kQAee5m2tk_-ipbrq40Geey7_yZmjZwAYZFjuKy9CbWvVykL", - notifier, - tonweb: new tonweb_1.default( - new tonweb_1.default.HttpProvider( - "https://toncenter.com/api/v2/jsonRPC", - { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - } - ) - ), - xpnftAddr: "EQCgk1I2zujGrXaNXnWZEtFD93tSKNjvRfqKV0xp7EswHgw9", - feeMargin, - }, - nearParams: { - networkId: "mainnet", - nonce: consts_1.Chain.NEAR, - rpcUrl: consts_1.MainNetRpcUri.NEAR, - bridge: "xpbridge.near", - xpnft: "xpnft.near", - feeMargin, - notifier, - walletUrl: "https://wallet.mainnet.near.org", - helperUrl: "https://helper.mainnet.near.org", - }, - solanaParams: { - xpnftAddr: "", - bridgeContractAddr: "kVvEBTB1h9GWEC7GcuDNTEmk6uxbCM11GvSmwvuCAwx", - endpoint: consts_1.MainNetRpcUri.SOLANA, - notifier, - feeMargin, - }, - caduceusParams: { - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.CADUCEUS - ), - erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", - erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", - erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", - erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", - minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", - nonce: consts_1.Chain.CADUCEUS, - }, - avalancheParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.AVALANCHE - ), - erc721Minter: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", - erc1155Minter: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", - erc721_addr: "0xcEFC9182e9AB181b3FED4e89CdA55E0B9010aFe1", - minter_addr: "0x52e7D07DE51F8163E0f29061EaAa7D3FEaf6b47E", - erc1155_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", - nonce: consts_1.Chain.AVALANCHE, - feeMargin, - }, - algorandParams: { - algodApiKey: "kZWDAxYR7Y6S6RoyfGIi28SATZ5DfTIs5pF0UMW4", - algodUri: "https://mainnet-algorand.api.purestake.io/ps2", - indexerUri: "https://mainnet-algorand.api.purestake.io/idx2", - nonce: consts_1.Chain.ALGORAND, - sendNftAppId: 942656248, - algodPort: 443, - notifier, - feeMargin, - }, - fantomParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.FANTOM - ), - erc721Minter: "", - erc1155Minter: "", - erc1155_addr: "0xAE3bF9a0abd3D753aBB579c6E8BFD5D5F5e89c70", - erc721_addr: "0x3CF207B7E4633400B8A29B3c758296d290a51345", - minter_addr: "0xD0060e9d327fCeF5A0B0919e3624eABa56565348", - nonce: consts_1.Chain.FANTOM, - feeMargin, - }, - elrondParams: { - node_uri: consts_1.MainNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgqacac9ux4uz0pjg8ck2sf0ugxre0feczzvcas2tsatn", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgqjlnfddgj2dl4kz3x4n55yhfv7v06mxhzvcas2ec5ps", - esdt_nft: "XPNFT-976581", - esdt_swap: "WEGLD-8c393e", - notifier, - nonce: consts_1.Chain.ELROND, - feeMargin, - }, - harmonyParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.HARMONY - ), - minter_addr: "0x77037e4f8aCb09f9bdedB9311bB6d9e74ed44371", - erc721_addr: "0x23d399368EF31ca950E4Fd2063F2e4A5ACC0f9c2", - erc1155_addr: "0xb3cE27eDadFE006f9f47C5ed5b62E63DFd9Cf3bD", - erc1155Minter: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", - erc721Minter: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", - nonce: consts_1.Chain.HARMONY, - feeMargin, - }, - velasParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.VELAS - ), - erc721Minter: "0x4d739e4953CE42f71604cbE142FD293841F9ed1c", - erc1155Minter: "0xeEc7955F2F7AA4E36B582D8f022c9417ecB75a44", - erc721_addr: "0x19678D8f9601AD0F099D401A3f82e4d6745B0e56", - erc1155_addr: "0x4a153028F0b40C41432127E050015963D130b01A", - minter_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", - nonce: consts_1.Chain.VELAS, - feeMargin, - }, - bscParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.BSC - ), - erc721Minter: "0x83feaeA88b1377970E7cD11492d084B63e09C87E", - erc1155_addr: "0x1B20ceec70e9635f5B56928de16A9dBc8EB8e3b6", - erc1155Minter: "0x5Af6A4C6E261315C5B7811bEb9c620CfF4722793", - erc721_addr: "0x9796B2F03e3afF786048cd67a1D33282476AB1d4", - minter_addr: "0x7Eac6825A851d79ae24301eA497AD8db2a0F4976", - nonce: consts_1.Chain.BSC, - feeMargin, - }, - secretParams: { - bridge: { - contractAddress: "secret1t0g8tvc0tyvpwdsdc5zepa9j2ptr3vfte26qhu", - codeHash: - "684afe616d92b29c097c5f00365d07c005e99c90ff1227507a0284b601a2cc5e", - }, - xpnft: { - contractAddress: "secret1ggvqzks96k7hawhdx3harrtnffhttrrq2qxmdg", - codeHash: - "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", - }, - notifier, - rpcUrl: consts_1.MainNetRpcUri.SECRET, - umt: { - contractAddress: "", - codeHash: "", - }, - chainId: "24", - feeMargin, - }, - abeyChainParams: { - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.ABEYCHAIN - ), - erc1155_addr: "0x8776073043eef8929F4a9cBa8Aacc6B59A21BA52", - erc1155Minter: "0x5Ed657a379e06CBAc1Ba1a9cF6D28e71c66B0c83", - erc721_addr: "0x3C8C51809Ee58E9D3BA37e37112843e41DcBD7B7", - erc721Minter: "0xD580913Ef2c8CA4Ca90D4bE6851ACa004cf586D8", - minter_addr: "0x14db0f56042Fa87F3b3921E871f87248f4C56A71", - nonce: consts_1.Chain.ABEYCHAIN, - }, - moonbeamParams: { - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.MOONBEAM - ), - erc1155_addr: "0x554560C6800f123B4A713F80A5AC9F21486F5De8", - erc721_addr: "0x6f64e03fcc34b774b3b82825a91aABA336Fbf931", - erc1155Minter: "0xA97FD39705583296221f39cb245fb573B28722A1", - erc721Minter: "0x0e5C62beAD14795F3eA9969B139F5433DF85319e", - minter_addr: "0xce50496C6616F4688d5775966E302A49e3876Dff", - nonce: consts_1.Chain.MOONBEAM, - }, - polygonParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.POLYGON - ), - erc721Minter: "0x32732607F67f9FC2007AF84e54B2ea9042327ed3", - erc1155Minter: "0x62E26979F555Ec475981D8D1A7e269f747643f22", - erc721_addr: "0x54024A9351B7aD68921914942f776489E71c467e", - erc1155_addr: "0x8D3e050555356a2eD4ad8cfFb189994035F5803C", - minter_addr: "0xF712f9De44425d8845A1d597a247Fe88F4A23b6f", - nonce: consts_1.Chain.POLYGON, - feeMargin, - }, - skaleParams: { - notifier, - feeMargin, - nonce: consts_1.Chain.SKALE, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.SKALE - ), - erc721Minter: "0x0e02b55e1D0ec9023A04f1278F39685B53739010", - erc1155Minter: "0x90d38996B210D45bDF2FD54d091C6061dff0dA9F", - erc1155_addr: "0xE90105827d04522e52AdfA6BF695730E5706C0C2", - erc721_addr: "0x46Df0d0Dd629d61BDFA567dE61912FDeD883A60d", - minter_addr: "0x33DC209D33AddF60cf90Dd4B10f9a198A1A93f63", - paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token - }, - aptosParams: { - rpcUrl: consts_1.MainNetRpcUri.APTOS, - bridge: - "0x813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37", - xpnft: "XPNFT", - notifier, - feeMargin, - nonce: consts_1.Chain.APTOS, - network: "staging", - }, - }; - }; - ChainFactoryConfigs.MainNet = async () => { - const feeMargin = { min: 1, max: 5 }; - const notifier = (0, notifier_1.evNotifier)(middleware_uri); - // VeChain related: - const net = new connex_driver_1.SimpleNet(consts_1.MainNetRpcUri.VECHAIN); - const driver = await connex_driver_1.Driver.connect(net); - const provider = thor.ethers.modifyProvider( - new ethers_1.ethers.providers.Web3Provider( - new thor.ConnexProvider({ - connex: new connex_framework_1.Framework(driver), - }) - ) - ); - return { - tonParams: { - bridgeAddr: "kQAV8Z_aSl_e3PUMwXAb-mdE9l5Bsf83vn40NKc2LtsiFlGm", - burnerAddr: "kQDsF-yKhKqg4ygCynLfYRaw_QJeSoK2BeRpamO-nXeuuSiT", - notifier, - tonweb: new tonweb_1.default( - new tonweb_1.default.HttpProvider( - "https://toncenter.com/api/v2/jsonRPC", - { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - } - ) - ), - xpnftAddr: "EQABqbZubs5e3QQF3lxVZMvdaxlaIdNQWq8W1rn8rvVvWHys", - feeMargin, - }, - elrondParams: { - node_uri: consts_1.MainNetRpcUri.ELROND, - minter_address: - "erd1qqqqqqqqqqqqqpgq3y98dyjdp72lwzvd35yt4f9ua2a3n70v0drsfycvu8", - esdt_swap_address: - "erd1qqqqqqqqqqqqqpgq5vuvac70kn36yk4rvf9scr6p8tlu23220drsfgszfy", - esdt_nft: "XPNFT-cb7482", - esdt_swap: "WEGLD-5f1f8d", - notifier, - nonce: consts_1.Chain.ELROND, - feeMargin, - }, - caduceusParams: { - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.CADUCEUS - ), - erc1155_addr: "0xF8AE68714fF6704883281603a22b56f47eB23511", - erc721_addr: "0x97799bEDB7AD04d61899F0255BA12EAF641d666D", - erc1155Minter: "0xFbA4cB4B617328cfE7a92907e4fb34bf1d798eBA", - erc721Minter: "0x6b3b43029dD4695f8780d7f16E0313dA02d9507B", - minter_addr: "0x98e9510261F34438e340c03cD35b492f87f628A8", - nonce: consts_1.Chain.CADUCEUS, - }, - okcParams: { - erc721Minter: "0x8411EeadD374bDE549F61a166FFBeFca592bC60a", - erc1155Minter: "0xe3266d5181FffE43A205ce5bE9437B9f717Bad84", - erc1155_addr: "0x820c0b504fe85b43E3c43D2EA24cb764ad78d52e", - erc721_addr: "0x086815f8154e3cdD89cD3aEc78377e3197a572d0", - minter_addr: "0x28c43F505d210D6f8f78C58b450b76890dc76F21", - feeMargin, - nonce: consts_1.Chain.OKC, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.OKC - ), - }, - arbitrumParams: { - erc721Minter: "0x536dDc3Be14A980d3cd15635b3D05985C297FD07", - erc1155Minter: "0x4F4F48f70892475b0D4863f61F47157Dd1Db9F1a", - erc1155_addr: "0xBd2005050a99142d7B77B415e7b603633f3B3746", - erc721_addr: "0x445712E8dcf35E42FFAbb79b900aADcE2284fB65", - minter_addr: "0x72d270bb71A90B82260b12c31D427C3F33AC0692", - feeMargin, - nonce: consts_1.Chain.ARBITRUM, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.ARBITRUM - ), - }, - bitgertParams: { - erc721Minter: "string", - erc1155Minter: "string", - erc1155_addr: "string", - erc721_addr: "string", - minter_addr: "string", - feeMargin, - nonce: consts_1.Chain.BITGERT, - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.BITGERT - ), - }, - dfinityParams: { - agent: new agent_1.HttpAgent({ - host: "https://ic0.app", - }), - bridgeContract: principal_1.Principal.fromText( - "e3io4-qaaaa-aaaak-qasua-cai" - ), - xpnftId: principal_1.Principal.fromText("e4jii-5yaaa-aaaak-qasuq-cai"), - umt: principal_1.Principal.fromText("evkdu-lqaaa-aaaak-qasva-cai"), - notifier, - feeMargin, - }, - vechainParams: { - notifier, - feeMargin, - nonce: consts_1.Chain.VECHAIN, - provider, - minter_addr: "0xE860cef926E5e76E0E88fdc762417a582F849C27", - erc721_addr: "0xf0E778BD5C4c2F219A2A5699e3AfD2D82D50E271", - erc1155_addr: "", - erc721Minter: "0x6e2B43FeF2E750e1562AC572e60B6C484a027424", - erc1155Minter: "0x4E3a506800b894f3d7B46475Ab693DD5a567bB5C", - }, - tronParams: { - provider: new tronweb_1.default({ - fullHost: consts_1.MainNetRpcUri.TRON, - }), - notifier, - minter_addr: "TAncANF5aYbvgXDatmwTdvTa5N9PTrq95k", - erc721_addr: "TVdp7szDHg3opRyuciQaJi93LLk7y83hrC", - erc1155_addr: "", - erc1155Minter: "TYoj1JVpJt1TAWBFj3GkaKLC2vrcFnjZ1G", - erc721Minter: "TPSQTbFWaxiDZbGD7MoqR6N2aWDSWBUNfA", - validators: [ - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - "TN9bHXEWditocT4Au15mgm7JM56XBnRCvm", - "TRHLhivxVogGhtxKn6sC8UF2Fr3WBdaT8N", - "TJuG3kvmGBDxGyUPBbvKePUjbopLurtqSo", - ], - nonce: consts_1.Chain.TRON, - feeMargin, - }, - avalancheParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.AVALANCHE - ), - erc721Minter: "0x9b2bACF4E69c81EF4EF42da84872aAC39ce7EC62", - erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - erc721_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", - minter_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", - erc1155_addr: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - nonce: consts_1.Chain.AVALANCHE, - feeMargin, - }, - polygonParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.POLYGON - ), - erc721Minter: "0x7E8493F59274651Cc0919feCf12E6A77153cdA72", - erc1155Minter: "0x73E8deFC951D228828da35Ff8152f25c1e5226fa", - erc721_addr: "0xC254a8D4eF5f825FD31561bDc69551ed2b8db134", - erc1155_addr: "0x7bf2924985CAA6192D721B2B9e1109919aC6ff58", - minter_addr: "0x14CAB7829B03D075c4ae1aCF4f9156235ce99405", - nonce: consts_1.Chain.POLYGON, - feeMargin, - }, - fantomParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.FANTOM - ), - erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", - erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc1155_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", - erc721_addr: "0x75f93b47719Ab5270d27cF28a74eeA247d5DfeFF", - minter_addr: "0x97dd1B3AE755539F56Db8b29258d7C925b20b84B", - nonce: consts_1.Chain.FANTOM, - feeMargin, - }, - bscParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.BSC - ), - erc721Minter: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", - erc1155_addr: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", - erc1155Minter: "0xF5e0c79CB0B7e7CF6Ad2F9779B01fe74F958964a", - erc721_addr: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - minter_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", - nonce: consts_1.Chain.BSC, - feeMargin, - }, - celoParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.CELO - ), - minter_addr: "string", - erc721_addr: "string", - erc1155Minter: "string", - erc721Minter: "string", - erc1155_addr: "", - nonce: consts_1.Chain.CELO, - feeMargin, - }, - harmonyParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.HARMONY - ), - minter_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", - erc721_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", - erc1155_addr: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", - erc1155Minter: "0xF547002799955812378137FA30C21039E69deF05", - erc721Minter: "0x57d2Ad1a14C77627D5f82B7A0F244Cfe391e59C5", - nonce: consts_1.Chain.HARMONY, - feeMargin, - }, - ropstenParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.ETHEREUM - ), - minter_addr: "0x1cC24128C04093d832D4b50609e182ed183E1688", - erc721_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc1155_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc1155Minter: "0xca8E2a118d7674080d71762a783b0729AadadD42", - erc721Minter: "0xF547002799955812378137FA30C21039E69deF05", - nonce: consts_1.Chain.ETHEREUM, - feeMargin, - }, - xDaiParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.XDAI - ), - erc721Minter: "0x82A7d50A0030935808dAF6e5f0f06645866fb7Bb", - erc1155Minter: "0xFEeD85607C1fbc2f30EAc13281480ED6265e121E", - erc721_addr: "0x1358844f14feEf4D99Bc218C9577d1c7e0Cb2E89", - erc1155_addr: "0xDcAA2b071c1851D8Da43f85a34a5A57d4Fa93A1A", - minter_addr: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - nonce: consts_1.Chain.XDAI, - feeMargin, - }, - algorandParams: { - algodApiKey: - "e5b7d342b8a742be5e213540669b611bfd67465b754e7353eca8fd19b1efcffd", - algodUri: "https://algorand-node.xp.network/", - indexerUri: "https://algoindexer.algoexplorerapi.io", - nonce: consts_1.Chain.ALGORAND, - sendNftAppId: 769053604, - algodPort: 443, - notifier, - feeMargin, - }, - fuseParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.FUSE - ), - erc721Minter: "0xC81D46c6F2D59182c5A64FD5C372266c98985AdF", - erc1155Minter: "0x146a99Ff19ece88EC87f5be03085cA6CD3163E15", - erc721_addr: "0x93239b1CF8CAd847f387735876EdBa7D75ae4f7A", - erc1155_addr: "0x2496b44516c8639dA00E8D12ccE64862e3760190", - minter_addr: "0xa66dA346C08dD77bfB7EE5E68C45010B6F2538ff", - nonce: consts_1.Chain.FUSE, - feeMargin, - }, - tezosParams: { - bridgeAddress: "KT1WKtpe58XPCqNQmPmVUq6CZkPYRms5oLvu", - notifier, - Tezos: new taquito_1.TezosToolkit(consts_1.MainNetRpcUri.TEZOS), - xpnftAddress: "KT1NEx6MX2GUEKMTX9ydyu8mn9WBNEz3QPEp", - validators: [ - "tz1MwAQrsg5EgeFD1AQHT2FTutnj9yQJNcjM", - "tz1b5AMdXs9nDxsqoN9wa3HTusvhahgBRWuF", - "tz1L5DjmMEHbj5npRzZewSARLmTQQyESW4Mj", - "tz1csq1THV9rKQQexo2XfSjSEJEg2wRCSHsD", - "tz1TBhd1NeZNtWsTbecee8jDMDzeBNLmpViN", - "tz1SHcDnXRgb7kWidiaM2J6bbTS7x5jzBr67", - ], - feeMargin, - }, - velasParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.VELAS - ), - erc721Minter: "0x3F888c0Ee72943a3Fb1c169684A9d1e8DEB9f537", - erc1155Minter: "0x0cC5F00e673B0bcd1F780602CeC6553aec1A57F0", - erc721_addr: "0x9e5761f7A1360E8B3E9d30Ed9dd3161E8b75d4E8", - erc1155_addr: "0x0B7ED039DFF2b91Eb4746830EaDAE6A0436fC4CB", - minter_addr: "0x40d8160A0Df3D9aad75b9208070CFFa9387bc051", - nonce: consts_1.Chain.VELAS, - feeMargin, - }, - iotexParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.IOTEX - ), - minter_addr: "0x4bA4ADdc803B04b71412439712cB1911103380D6", - erc721_addr: "0x6eD7dfDf9678eCb2051c46A1A5E38B4f310b18c5", - erc721Minter: "0xD87755CCeaab0edb28b3f0CD7D6405E1bB827B65", - erc1155Minter: "0x81e1Fdad0658b69914801aBaDA7Aa0Abb31653E5", - erc1155_addr: "0x93Ff4d90a548143c28876736Aa9Da2Bb7B1b52D4", - nonce: consts_1.Chain.IOTEX, - feeMargin, - }, - auroraParams: { - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.AURORA - ), - minter_addr: "0x32E8854DC2a5Fd7049DCF10ef2cb5f01300c7B47", - erc721_addr: "0x041AE550CB0e76a3d048cc2a4017BbCB74756b43", - erc1155_addr: "0xca8E2a118d7674080d71762a783b0729AadadD42", - erc1155Minter: "0x0000000000000000000000000000000000000000", - erc721Minter: "0x0000000000000000000000000000000000000000", - nonce: consts_1.Chain.AURORA, - notifier, - feeMargin, - }, - godwokenParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.GODWOKEN - ), - minter_addr: "0xeBCDdF17898bFFE81BCb3182833ba44f4dB25525", - erc721_addr: "0x9cdda01E00A5A425143F952ee894ff99B5F7999F", - erc1155_addr: "0x34933A5958378e7141AA2305Cdb5cDf514896035", - erc721Minter: "0x0000000000000000000000000000000000000000", - erc1155Minter: "0x0000000000000000000000000000000000000000", - nonce: consts_1.Chain.GODWOKEN, - feeMargin, - }, - gateChainParams: { - notifier, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.GATECHAIN - ), - minter_addr: "0xFc7f7fD2DBdAF6D8F3ee3f222b3a6a9f89729f05", - erc721_addr: "0xD6939f722B977afd7DD934A31bc94d08d4ea4336", - erc1155_addr: "", - erc1155Minter: "0xc45759e51CdDBa46db4D1becC8B8Bcbe5d4a9bB4", - erc721Minter: "0x0000000000000000000000000000000000000000", - nonce: consts_1.Chain.GATECHAIN, - feeMargin, - }, - skaleParams: { - notifier, - feeMargin, - nonce: consts_1.Chain.SKALE, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.SKALE - ), - erc721Minter: "0xC71C2e7b5Ee01f2cb08b41E240976E8Be6012fB0", - erc1155Minter: "0xbe6cB5C730C07a788dAB0aD7ed629d9c418a9c14", - erc1155_addr: "0x783cA58315336dD646aCeCF0b55f728099ee73ec", - erc721_addr: "0xf4C24d031C336CdcC5CC251E5abbE777235A65f3", - minter_addr: "0xa8440b0702923A54bb0FF3B55f458Cfe8142C1A0", - paymentTokenAddress: "0x59ab97Ee239e02112652587F9Ef86CB6F762983b", // Euphoria ETH (ETH) Token - }, - moonbeamParams: { - nonce: consts_1.Chain.MOONBEAM, - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.MOONBEAM - ), - erc721Minter: "", - erc1155Minter: "", - erc1155_addr: "0xe535A8De7C42a8bc1633f16965fbc259a3Ef58B6", - erc721_addr: "0xfD3Ce0a10D4731b136a7C9e3f8a37edA1EFbf77f", - minter_addr: "0xBA3Cc81cfc54a4ce99638b5da1F17b15476E7231", - }, - abeyChainParams: { - nonce: consts_1.Chain.ABEYCHAIN, - notifier, - feeMargin, - provider: new ethers_1.ethers.providers.JsonRpcProvider( - consts_1.MainNetRpcUri.ABEYCHAIN - ), - erc721Minter: "0xBb5e9896cEe600DaC470775B6f235Db105E861BD", - erc1155Minter: "0x35c3c3959d19A310Fc052545fCC29200dc440CdA", - erc1155_addr: "0xF9DfD29ddEDEa3224f9c7E12c7Bbe37101341786", - erc721_addr: "0x55B1D1891ABb21A5d245d149B49007b55Bd3746D", - minter_addr: "0x4ceDb46481d7118E1D292C318E37510E5919bBe6", - }, - secretParams: { - notifier, - rpcUrl: consts_1.MainNetRpcUri.SECRET, - bridge: { - contractAddress: "secret18f66qjjuyudmh7q6s50hwpt9y679lanjs82jkg", - codeHash: - "224f175c92947bbfd656d26e21b5eee40f73eac6aa6b64c328db3c55261ee6b4", - }, - xpnft: { - contractAddress: "secret16zcej6asqrtfq08u3fdjhs03zpl7lgy7q32eps", - codeHash: - "b7f44f7d2f72bfec52b027ee6b3ef802246735b50b2bfe747851876f818d7f45", - }, - umt: { - contractAddress: "", - codeHash: "", - }, - chainId: "24", - feeMargin, - }, - nearParams: { - networkId: "mainnet", - nonce: consts_1.Chain.NEAR, - rpcUrl: consts_1.MainNetRpcUri.NEAR, - bridge: "", - xpnft: "", - feeMargin, - notifier, - walletUrl: "https://wallet.mainnet.near.org", - helperUrl: "https://helper.mainnet.near.org", - }, - }; - }; -})( - (ChainFactoryConfigs = - exports.ChainFactoryConfigs || (exports.ChainFactoryConfigs = {})) -); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZhY3RvcnkvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsWUFBWTtBQUNaLHNEQUE4QjtBQUM5QixzQ0FBZ0U7QUFDaEUsbUNBQWdDO0FBQ2hDLDhDQUFnRDtBQUNoRCwwQ0FBeUM7QUFDekMsMERBQTJEO0FBQzNELDREQUE4QztBQUM5QyxnRUFBc0Q7QUFDdEQsZ0RBQTZDO0FBQzdDLDBDQUEyQztBQUMzQyxrREFBK0M7QUFDL0Msb0RBQTRCO0FBRzVCOzs7Ozs7OztJQVFJO0FBRUosb0NBQW9DO0FBQ3BDLGtEQUFrRDtBQUNsRCxrREFBa0Q7QUFDbEQsa0RBQWtEO0FBQ2xELEtBQUs7QUFFTCxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FBQztBQUNyRCxNQUFNLHNCQUFzQixHQUMxQixrREFBa0QsQ0FBQztBQUVyRCxJQUFpQixtQkFBbUIsQ0EwOEJuQztBQTE4QkQsV0FBaUIsbUJBQW1CO0lBQ3JCLDJCQUFPLEdBQXdDLEtBQUssSUFBSSxFQUFFO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBQSxxQkFBVSxFQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFcEQsbUJBQW1CO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQVMsQ0FBQyxzQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQ3pDLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQy9CLElBQUksSUFB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 diff --git a/dist/factory/index.d.ts b/dist/factory/index.d.ts deleted file mode 100644 index ba73444da..000000000 --- a/dist/factory/index.d.ts +++ /dev/null @@ -1,329 +0,0 @@ -import { ElrondParams } from "../helpers/elrond"; -import { TronParams } from "../helpers/tron"; -import { Web3Params } from "../helpers/web3"; -export * from "./cons"; -export * from "./factories"; -import BigNumber from "bignumber.js"; -import { - ChainNonceGet, - EstimateTxFees, - ExtractAction, - ExtractTxnStatus, - MintNft, - NftInfo, - TransactionStatus, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from ".."; -import { Wallet } from "@hashgraph/hethers"; -import { ethers } from "ethers"; -import { AlgorandParams, AlgoSignerH, ClaimNftInfo } from "../helpers/algorand"; -import { AptosParams } from "../helpers/aptos"; -import { - BalanceCheck, - EstimateTxFeesBatch, - GetFeeMargins, - TransferNftForeignBatch, - UnfreezeForeignNftBatch, - WhitelistCheck, -} from "../helpers/chain"; -import { DfinityParams } from "../helpers/dfinity/dfinity"; -import { NearParams } from "../helpers/near"; -import { SecretParams } from "../helpers/secret"; -import { SolanaParams } from "../helpers/solana"; -import { TezosParams } from "../helpers/tezos"; -import { TonParams } from "../helpers/ton"; -import { Web3ERC20Params } from "../helpers/web3_erc20"; -import { - ChainNonce, - InferChainH, - InferChainParam, - InferNativeNft, - InferSigner, -} from "../type-utils"; -export type FullChain = TransferNftForeign< - Signer, - RawNft, - Resp -> & - UnfreezeForeignNft & - EstimateTxFees & - ChainNonceGet & - ValidateAddress & { - XpNft: string; - XpNft1155?: string; - } & GetFeeMargins; -type FullChainBatch = FullChain & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - EstimateTxFeesBatch; -/** - * A type representing a chain factory. - */ -export type ChainFactory = { - /** - * Creates an helper factory for a given chain - * @param chain: {@link ChainNonce} to create the helper for. - */ - inner(chain: T): Promise>; - /** - * Whether or not the bridge is alive for a given chain - * this is checked regardless before using any bridge related function(e.g transferNft) is called - */ - bridgeStatus(): Promise<{ - [chainNonce: number]: "alive" | "dead"; - }>; - /** - * Check the balance of an account - * - * @param inner The chain to check the balance in - * @param address address of the account - */ - balance(inner: BalanceCheck, address: string): Promise; - /** - * Transfers the NFT from one chain to other. - * @param fromChain {@link FullChain} the chain to transfer from. Use inner method of the factory to get this. - * @param toChain {@link FullChain} the chain to transfer to. Use inner method of the factory to get this. - * WARN: Algorand NFTs must be manually claimed by the receiver - * @param nft {@link NftInfo} the nft to be transferred. Can be fetched from the `nftList` method of the factory. - * @param sender {@link Sender} The owner of the NFT. - * @param receiver Address of the Receiver of the NFT. Could be Web3 or Elrond or Tron Address. - * @param fee validator fees from {@link estimateFees} (will be calculated automatically if not given) - * @param mintWith an arbitrary address of the target chain minter contract - * @param gasLimit an arbitrary gas limit value (required for some chains) - */ - transferNft( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo, - sender: SignerF, - receiver: string, - fee?: BigNumber.Value, - mintWith?: string, - gasLimit?: ethers.BigNumberish | undefined, - extraFee?: BigNumber.Value, - gasPrice?: ethers.BigNumberish | undefined - ): Promise; - transferBatchNft( - fromChain: FullChainBatch, - toChain: FullChainBatch, - nft: NftInfo[], - sender: SignerF, - receiver: string, - fee?: BigNumber.Value, - mintWith?: string - ): Promise; - claimHederaNFT( - serialNumber: ethers.BigNumberish, - proxyAddress: string, - htsToken: string, - sender: Wallet - ): Promise; - listHederaClaimableNFT( - proxyContract: string, - htsToken: string, - sender: Wallet - ): Promise; - transferSft( - fromChain: FullChainBatch, - toChain: FullChainBatch, - nft: NftInfo, - sender: SignerF, - receiver: string, - amt: bigint, - fee?: BigNumber.Value, - mintWith?: string - ): Promise; - /** - * Mints an NFT on the chain. - * @param chain: {@link MintNft} Chain to mint the nft on. Can be obtained from the `inner` method on the factory. - * @param owner: {@link Signer} A signer to sign transaction, can come from either metamask, tronlink, or the elrond's maiar defi wallet. - * @param args: {@link NftMintArgs} Arguments to mint the nft. Contract is must for web3 and tron. Identifier is must for elrond. - */ - mint( - chain: MintNft, - owner: Signer, - args: Args - ): Promise; - /** - * Lists all the NFTs on the chain owner by {@param owner}. - * @param chain: Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. - * @param owner: Address of the owner of the NFT as a raw string. - */ - nftList( - chain: ChainNonceGet & T, - owner: string - ): Promise>[]>; - /** - * Estimates the required fee for transferring an NFT. - * @param fromChain: {@link FullChain} Chain on which the NFT was minted. Can be obtained from the `inner` method on the factory. - * @param toChain: {@link FullChain} Chain to which the NFT must be sent. Can be obtained from the `inner` method on the factory. - * @param nft: {@link NftInfo} The NFT that has to be transferred. Generally comes from the `nftList` method of the factory. - * @param receiver: Address of the receiver of the NFT in raw string.. - */ - estimateFees( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo, - receiver: string - ): Promise; - estimateWithContractDep( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo, - receiver: string - ): Promise<{ - calcContractDep: BigNumber; - }>; - estimateSFTfees( - fromChain: FullChain, - amount: bigint, - price: number - ): Promise; - estimateBatchFees( - fromChain: FullChain, - toChain: FullChain, - nft: NftInfo[], - receiver: string - ): Promise; - /** - * @param nonce : {@link ChainNonce} could be a ElrondNonce, Web3Nonce, or TronNonce. - * @param params : New Params to be set. - */ - updateParams( - nonce: T, - params: InferChainParam - ): void; - pkeyToSigner( - nonce: S, - key: string - ): Promise>>; - /** - * Get transaction in the destination chain - * WARN: use claimAlgorandNft instead for algorand. - * - * @param chain source chain - * @param destination destination chain - * @param hash transaction hash from source chain - * - * @returns transaction hash in original chain, unique action id - */ - getDestinationTransaction( - chain: ExtractAction & ExtractTxnStatus, - destination: number, - hash: Txn - ): Promise<[string, TransactionStatus]>; - /** - * Claim an algorand nft - * - * @param originChain chain from which the nft was transferred - * @param txn Transaction Hash of the original - * @param claimer the account which can claim the nft - */ - waitAlgorandNft( - originChain: ExtractAction & ChainNonceGet, - txn: Txn, - claimer: AlgoSignerH - ): Promise; - /** - * @param claimer: the account which can claim the nfts - */ - claimableAlgorandNfts(claimer: string): Promise; - getVerifiedContract( - from: string, - targetChain: number, - fc: number, - tokenId?: string - ): Promise; - checkWhitelist( - chain: Partial> & ChainNonceGet, - nft: NftInfo - ): Promise; - isWrappedNft( - nft: NftInfo, - fromChain: number - ): Promise<{ - bool: boolean; - wrapped: any; - }>; - setProvider(fromChain: number, provider: any): Promise; - whitelistEVM( - chain: T, - address: string, - nonce: number - ): Promise<{ - success: true; - }>; -}; -/** - * A type representing all the supported chain params. - */ -export interface ChainParams { - elrondParams: ElrondParams; - hecoParams: Web3Params; - bscParams: Web3Params; - ropstenParams: Web3Params; - avalancheParams: Web3Params; - polygonParams: Web3Params; - fantomParams: Web3Params; - tronParams: TronParams; - celoParams: Web3Params; - harmonyParams: Web3Params; - ontologyParams: Web3Params; - xDaiParams: Web3Params; - algorandParams: AlgorandParams; - fuseParams: Web3Params; - uniqueParams: Web3Params; - tezosParams: TezosParams; - velasParams: Web3Params; - iotexParams: Web3Params; - vechainParams: Web3Params; - auroraParams: Web3Params; - godwokenParams: Web3Params; - gateChainParams: Web3Params; - secretParams: SecretParams; - hederaParams: Web3Params; - skaleParams: Web3ERC20Params; - dfinityParams: DfinityParams; - nearParams: NearParams; - moonbeamParams: Web3Params; - abeyChainParams: Web3Params; - tonParams: TonParams; - aptosParams: AptosParams; - solanaParams: SolanaParams; - caduceusParams: Web3Params; - okcParams: Web3Params; - arbitrumParams: Web3Params; - bitgertParams: Web3Params; -} -export type MoralisNetwork = "mainnet" | "testnet"; -/** - * A struct for the configuration of the library. - * @field exchangeRateUri: The URI of the exchange rate service. - * @field moralisServer: The URI of the moralis server. - * @field moralisAppId: The app id of the moralis server. - * @field tronScanUri: The URI of the tron scan service. - */ -export interface AppConfig { - exchangeRateUri: string; - heartbeatUri: string; - txSocketUri: string; - nftListUri: string; - nftListAuthToken: string; - tronScanUri: string; - wrappedNftPrefix: string; - scVerifyUri: string; - network: "testnet" | "mainnet" | "staging"; -} -/** - * This function is the basic entry point to use this package as a library. - * @param appConfig: {@link AppConfig} The configuration of the library. - * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. - * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. - */ -export declare function ChainFactory( - appConfig: AppConfig, - chainParams: Partial -): ChainFactory; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/factory/index.d.ts.map b/dist/factory/index.d.ts.map deleted file mode 100644 index d40b9346d..000000000 --- a/dist/factory/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/factory/index.js b/dist/factory/index.js deleted file mode 100644 index b5c33837e..000000000 --- a/dist/factory/index.js +++ /dev/null @@ -1,672 +0,0 @@ -"use strict"; -var __createBinding = - (this && this.__createBinding) || - (Object.create - ? function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if ( - !desc || - ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) - ) { - desc = { - enumerable: true, - get: function () { - return m[k]; - }, - }; - } - Object.defineProperty(o, k2, desc); - } - : function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); -var __exportStar = - (this && this.__exportStar) || - function (m, exports) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) - __createBinding(exports, m, p); - }; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ChainFactory = void 0; -const consts_1 = require("../consts"); -__exportStar(require("./cons"), exports); -__exportStar(require("./factories"), exports); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const __1 = require(".."); -const out_1 = require("@elrondnetwork/erdjs/out"); -const hethers_1 = require("@hashgraph/hethers"); -const algosdk_1 = __importDefault(require("algosdk")); -const axios_1 = __importDefault(require("axios")); -const ethers_1 = require("ethers"); -const js_base64_1 = require("js-base64"); -const heartbeat_1 = require("../heartbeat"); -const algorand_1 = require("../helpers/algorand"); -const hts_abi_1 = require("../helpers/hedera/hts_abi"); -const cons_1 = require("./cons"); -const base64url_1 = __importDefault(require("base64url")); -function mapNonceToParams(chainParams) { - const cToP = new Map(); - cToP.set(consts_1.Chain.ELROND, chainParams.elrondParams); - cToP.set(consts_1.Chain.HECO, chainParams.hecoParams); - cToP.set(consts_1.Chain.BSC, chainParams.bscParams); - cToP.set(consts_1.Chain.ETHEREUM, chainParams.ropstenParams); - cToP.set(consts_1.Chain.AVALANCHE, chainParams.avalancheParams); - cToP.set(consts_1.Chain.POLYGON, chainParams.polygonParams); - cToP.set(consts_1.Chain.FANTOM, chainParams.fantomParams); - cToP.set(consts_1.Chain.TRON, chainParams.tronParams); - cToP.set(consts_1.Chain.CELO, chainParams.celoParams); - cToP.set(consts_1.Chain.HARMONY, chainParams.harmonyParams); - cToP.set(consts_1.Chain.ONT, chainParams.ontologyParams); - cToP.set(consts_1.Chain.XDAI, chainParams.xDaiParams); - cToP.set(consts_1.Chain.ALGORAND, chainParams.algorandParams); - cToP.set(consts_1.Chain.FUSE, chainParams.fuseParams); - cToP.set(consts_1.Chain.UNIQUE, chainParams.uniqueParams); - cToP.set(consts_1.Chain.TEZOS, chainParams.tezosParams); - cToP.set(consts_1.Chain.VELAS, chainParams.velasParams); - cToP.set(consts_1.Chain.IOTEX, chainParams.iotexParams); - cToP.set(consts_1.Chain.AURORA, chainParams.auroraParams); - cToP.set(consts_1.Chain.GODWOKEN, chainParams.godwokenParams); - cToP.set(consts_1.Chain.GATECHAIN, chainParams.gateChainParams); - cToP.set(consts_1.Chain.VECHAIN, chainParams.vechainParams); - cToP.set(consts_1.Chain.SECRET, chainParams.secretParams); - cToP.set(consts_1.Chain.HEDERA, chainParams.hederaParams); - cToP.set(consts_1.Chain.SKALE, chainParams.skaleParams); - cToP.set(consts_1.Chain.DFINITY, chainParams.dfinityParams); - cToP.set(consts_1.Chain.NEAR, chainParams.nearParams); - cToP.set(consts_1.Chain.MOONBEAM, chainParams.moonbeamParams); - cToP.set(consts_1.Chain.ABEYCHAIN, chainParams.abeyChainParams); - cToP.set(consts_1.Chain.TON, chainParams.tonParams); - cToP.set(consts_1.Chain.APTOS, chainParams.aptosParams); - cToP.set(consts_1.Chain.SOLANA, chainParams.solanaParams); - cToP.set(consts_1.Chain.CADUCEUS, chainParams.caduceusParams); - cToP.set(consts_1.Chain.OKC, chainParams.okcParams); - cToP.set(consts_1.Chain.ARBITRUM, chainParams.arbitrumParams); - cToP.set(consts_1.Chain.BITGERT, chainParams.bitgertParams); - return cToP; -} -/** - * This function is the basic entry point to use this package as a library. - * @param appConfig: {@link AppConfig} The configuration of the library. - * @param chainParams: {@link ChainParams} Contains the details for all the chains to mint and transfer NFTs between them. - * @returns {ChainFactory}: A factory object that can be used to mint and transfer NFTs between chains. - */ -function ChainFactory(appConfig, chainParams) { - let helpers = new Map(); - let cToP = mapNonceToParams(chainParams); - const heartbeatRepo = (0, heartbeat_1.bridgeHeartbeat)( - appConfig.heartbeatUri - ); - const remoteExchangeRate = (0, cons_1.exchangeRateRepo)( - appConfig.exchangeRateUri - ); - const txSocket = (0, __1.socketHelper)(appConfig.txSocketUri); - const nftlistRest = axios_1.default.create({ - baseURL: appConfig.nftListUri, - headers: { - Authorization: `Bearer ${appConfig.nftListAuthToken}`, - }, - }); - const inner = async (chain) => { - let helper = helpers.get(chain); - if (helper === undefined) { - helper = await consts_1.CHAIN_INFO.get(chain).constructor( - cToP.get(chain) - ); - helpers.set(chain, helper); - } - return helper; - }; - const setProvider = async (chain, provider) => { - const args = { - ...cToP.get(chain), - provider, - }; - const helper = await consts_1.CHAIN_INFO.get(chain).constructor(args); - helpers.set(chain, helper); - }; - async function calcExchangeFees(fromChain, toChain, val, toChainFee) { - const rate = await remoteExchangeRate.getBatchedRate([ - consts_1.CHAIN_INFO.get(toChain).currency, - consts_1.CHAIN_INFO.get(fromChain).currency, - ]); - const feeR = val.dividedBy(consts_1.CHAIN_INFO.get(toChain).decimals); - const fromExRate = rate.get(consts_1.CHAIN_INFO.get(fromChain).currency); - const toExRate = rate.get(consts_1.CHAIN_INFO.get(toChain).currency); - const usdFee = Math.min( - Math.max(toChainFee.min, feeR.times(toExRate * 0.1).toNumber()), - toChainFee.max - ); - const feeProfit = usdFee / fromExRate; - return feeR - .times(toExRate / fromExRate) - .plus(feeProfit * 0.5) - .times(consts_1.CHAIN_INFO.get(fromChain).decimals) - .integerValue(bignumber_js_1.default.ROUND_CEIL); - } - const estimateFees = async (fromChain, toChain, nft, receiver, extraFee) => { - const estimate = await toChain.estimateValidateTransferNft( - receiver, - nft, - "" - ); - let conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate, - toChain.getFeeMargin() - ); - if (extraFee) { - conv = conv - .multipliedBy(extraFee) - .integerValue(bignumber_js_1.default.ROUND_CEIL); - console.log("extra conv"); - } - return conv; - }; - const estimateWithContractDep = async (fromChain, toChain, nft) => { - let calcContractDep = new bignumber_js_1.default("0"), - originalContract, - originalChain; - try { - const { bool, wrapped } = await isWrappedNft( - nft, - fromChain.getNonce(), - toChain.getNonce() - ); - if (bool) { - originalContract = wrapped?.contract?.toLowerCase(); - originalChain = wrapped?.origin; - } else { - originalContract = nft.native.contract.toLowerCase(); - originalChain = nft.native.chainId; - } - const axiosResult = await axios_1.default - .post(`https://sc-verify.xp.network/default/checkWithOutTokenId`, { - fromChain: Number(originalChain), - chain: - fromChain?.getNonce() == originalChain //if first time sending - ? Number(toChain.getNonce()) - : toChain.getNonce() == originalChain //if sending back - ? Number(fromChain.getNonce()) - : Number(toChain.getNonce()), - sc: originalContract, - }) - .catch(() => false); - if (!axiosResult && toChain?.estimateContractDep) { - //@ts-ignore - const contractFee = await toChain?.estimateContractDep(toChain); - calcContractDep = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - contractFee, - toChain.getFeeMargin() - ); - } - return { calcContractDep }; - } catch (error) { - console.log( - error.message, - console.log("error in estimateWithContractDep") - ); - return { calcContractDep }; - } - }; - const estimateSFTfees = async (fromChain, amount, price = 0.05) => { - const rate = await remoteExchangeRate.getBatchedRate([ - consts_1.CHAIN_INFO.get(fromChain.getNonce()).currency, - ]); - const fromExRate = rate.get( - consts_1.CHAIN_INFO.get(fromChain.getNonce()).currency - ); - const y = price / fromExRate; - const sftFees = Number(amount) <= 10 ? 0 : y * (Number(amount) - 10); - return new bignumber_js_1.default(sftFees) - .multipliedBy(consts_1.CHAIN_INFO.get(fromChain.getNonce()).decimals) - .integerValue(); - }; - async function bridgeStatus() { - const res = await heartbeatRepo.status(); - return Object.fromEntries( - Object.entries(res).map(([c, s]) => [ - c, - s.bridge_alive ? "alive" : "dead", - ]) - ); - } - async function estimateBatchFees(fromChain, toChain, nft, receiver) { - const estimate = await toChain.estimateValidateTransferNftBatch( - receiver, - nft, - new Array(nft.length).fill(toChain.XpNft) - ); - const conv = await calcExchangeFees( - fromChain.getNonce(), - toChain.getNonce(), - estimate.times(nft.length), - toChain.getFeeMargin() - ); - return conv; - } - async function requireBridge(chains) { - const status = await heartbeatRepo.status(); - let deadChain; - const alive = chains.every((c) => { - const stat = status[c].bridge_alive; - if (!stat) { - deadChain = c; - } - return stat; - }); - if (!alive) { - throw Error(`chain ${deadChain} is dead! its unsafe to use the bridge`); - } - } - const oldXpWraps = new Set([ - "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - "0xc69ECD37122A9b5FD7e62bC229d478BB83063C9d", - "0xe12B16FFBf7D79eb72016102F3e3Ae6fe03fCA56", - "0xa1B8947Ff4C1fD992561F629cfE67aEb90DfcBd5", - "0x09F4e56187541f2bC660B0810cA509D2f8c65c96", - "0x8B2957DbDC69E158aFceB9822A2ff9F2dd5BcD65", - "0xE773Be36b35e7B58a9b23007057b5e2D4f6686a1", - "0xFC2b3dB912fcD8891483eD79BA31b8E5707676C9", - "0xb4A252B3b24AF2cA83fcfdd6c7Fac04Ff9d45A7D", - ]); - function checkNotOldWrappedNft(contract) { - if (oldXpWraps.has(contract)) { - throw new Error(`${contract} is an old wrapped NFT`); - } - } - async function isWrappedNft(nft, fc, tc) { - if (fc === consts_1.Chain.TEZOS) { - return { - bool: typeof nft.native.meta?.token?.metadata?.wrapped !== "undefined", - wrapped: undefined, - }; - } - try { - checkNotOldWrappedNft(nft.collectionIdent); - } catch (_) { - return { bool: false, wrapped: undefined }; - } - const wrapped = (await axios_1.default.get(nft.uri).catch(() => undefined)) - ?.data.wrapped; - const contract = wrapped?.contract || wrapped?.source_mint_ident; - tc && contract && (0, cons_1.checkBlockedContracts)(tc, contract); - return { bool: typeof wrapped !== "undefined", wrapped }; - } - async function algoOptInCheck(nft, toChain, receiver) { - if ("meta" in nft.native) return; - const nftDat = await axios_1.default.get(nft.uri); - if ( - nftDat.data.wrapped.origin == consts_1.Chain.ALGORAND.toString() && - "isOptIn" in toChain && - !(await toChain.isOptIn(receiver, parseInt(nftDat.data.wrapped.assetID))) - ) { - throw Error("receiver hasn't opted-in to wrapped nft"); - } - } - async function getVerifiedContract(from, tc, fc, tokenId) { - const res = await axios_1.default - .post( - `${appConfig.scVerifyUri}/default/`, - { - sc: from, - chain: tc, - fromChain: fc, - tokenId: tokenId && !isNaN(Number(tokenId)) ? tokenId : undefined, - }, - { - headers: cons_1._headers, - } - ) - .catch(() => { - return undefined; - }); - return res?.data.data; - } - async function checkMintWith(from, to, targetChain, fromChain, tokenId) { - const res = await axios_1.default - .post( - `${appConfig.scVerifyUri}/verify`, - { from, to, targetChain, fromChain, tokenId }, - { - headers: cons_1._headers, - } - ) - .catch(() => undefined); - return res?.data.data == "allowed"; - } - return { - estimateWithContractDep, - getVerifiedContract, - balance: (i, a) => i.balance(a), - async transferBatchNft(from, to, nfts, signer, receiver, fee, mw) { - let result = []; - if (appConfig.network === "mainnet") { - await requireBridge([from.getNonce(), to.getNonce()]); - } - if (!fee) { - fee = await estimateBatchFees(from, to, nfts, receiver); - } - if (!(await to.validateAddress(receiver))) { - throw Error("invalid address"); - } - console.log(`Batch Minting With: ${mw || to.XpNft1155}`); - const wrapped = []; - const unwrapped = []; - await Promise.all( - nfts.map(async (e) => { - // @ts-ignore - if (e.native.contractType && e.native.contractType === "ERC721") { - throw new Error(`ERC721 is not supported`); - } - if ((await isWrappedNft(e, from.getNonce())).bool) { - wrapped.push(e); - } else { - unwrapped.push(e); - } - }) - ); - unwrapped.length && - result.push( - from.transferNftBatchToForeign( - signer, - to.getNonce(), - receiver, - unwrapped, - mw || to.XpNft1155, - new bignumber_js_1.default(fee) - ) - ); - wrapped.length && - result.push( - from.unfreezeWrappedNftBatch( - signer, - to.getNonce(), - receiver, - wrapped, - new bignumber_js_1.default(fee) - ) - ); - return await Promise.all(result); - }, - estimateBatchFees, - async whitelistEVM(chain, address) { - const chainLocal = cToP.get(chain); - if (!chainLocal) throw new Error("Chain not found"); - const params = await consts_1.CHAIN_INFO.get(chain)?.constructor( - chainLocal - ); - if (!params) throw new Error("An error occured"); - const isAddressValid = await params.validateAddress(address); - if (!isAddressValid) throw new Error("Address is not valid"); - try { - await chainLocal.notifier.notifyEVM(chain, address); - return { success: true }; - } catch (error) { - throw new Error("An error occured"); - } - }, - async transferSft(from, to, nft, sender, receiver, amt, fee, mintWith) { - if (Number(amt) > 50) - throw new Error("Currenly more that 50 SFTs is not supported"); - let transfers = Array(parseInt(amt.toString())).fill(nft); - if (!fee) { - fee = await estimateFees(from, to, transfers[0], receiver); - } - const sftFees = await estimateSFTfees(from, amt, 0.05); - const x = new bignumber_js_1.default(fee).plus(sftFees); - console.log(x.toNumber()); - if (amt === BigInt(1)) { - const response = this.transferNft( - from, - to, - nft, - sender, - receiver, - new bignumber_js_1.default(x).integerValue(), - mintWith - ); - return response; - } else { - const response = this.transferBatchNft( - from, - to, - transfers, - sender, - receiver, - new bignumber_js_1.default(x).integerValue(), - mintWith - ); - return response; - } - const response = this.transferBatchNft( - from, - to, - transfers, - sender, - receiver, - new bignumber_js_1.default(x).integerValue(), - mintWith - ); - return response; - }, - async getDestinationTransaction(chain, targetNonce, txn) { - const action = await chain.extractAction(txn); - const hash = await txSocket.waitTxHash(targetNonce, action); - const status = await chain.extractTxnStatus(hash); - return [hash, status]; - }, - async pkeyToSigner(nonce, key) { - switch (nonce) { - case consts_1.Chain.ELROND: { - return out_1.UserSigner.fromPem(key); - } - case consts_1.Chain.TRON: { - return key; - } - case consts_1.Chain.ALGORAND: { - const algo = await inner(consts_1.Chain.ALGORAND); - const mnem = algosdk_1.default.secretKeyToMnemonic( - js_base64_1.Base64.toUint8Array(key) - ); - return (0, algorand_1.algoSignerWrapper)( - algo.algod, - algosdk_1.default.mnemonicToSecretKey(mnem) - ); - } - default: { - const chainH = await inner(nonce); - return chainH.createWallet(key); - } - } - }, - estimateFees, - estimateSFTfees, - inner, - bridgeStatus, - updateParams(chainNonce, params) { - helpers.delete(chainNonce); - cToP.set(chainNonce, params); - }, - async nftList(chain, owner) { - if (chain.getNonce() === consts_1.Chain.TON) { - console.log("decode for ton"); - owner = base64url_1.default.encode(owner); - } - let res = await nftlistRest.get(`/nfts/${chain.getNonce()}/${owner}`); - if (res.headers["Retry-After"]) { - await new Promise((r) => setTimeout(r, 30000)); - return await this.nftList(chain, owner); - } - return res.data.data; - }, - transferNft: async ( - fromChain, - toChain, - nft, - sender, - receiver, - fee, - mintWith, - gasLimit, - extraFee, - gasPrice - ) => { - //@ts-ignore - if (nft.native.contract) { - if (![9, 18, 24, 31, 27, 26].includes(fromChain.getNonce())) { - //@ts-ignore - checkNotOldWrappedNft(ethers_1.utils.getAddress(nft.native.contract)); - } - } - if (appConfig.network === "mainnet") { - await requireBridge([fromChain.getNonce(), toChain.getNonce()]); - } - if (!fee) { - fee = await estimateFees(fromChain, toChain, nft, receiver, extraFee); - console.log(new bignumber_js_1.default(fee).toString()); - } - // if (!(await toChain.validateAddress(receiver))) { - // throw Error("invalid address"); - // } - if ( - (await isWrappedNft(nft, fromChain.getNonce(), toChain.getNonce())).bool - ) { - await algoOptInCheck(nft, toChain, receiver); - const res = await fromChain.unfreezeWrappedNft( - sender, - receiver, - nft, - new bignumber_js_1.default(fee), - toChain.getNonce().toString(), - gasLimit, - gasPrice - ); - return res; - } else { - const mw = - //@ts-ignore contract is checked - "contract" in nft.native && - mintWith && - (await checkMintWith( - nft.collectionIdent, - mintWith, - toChain.getNonce(), - fromChain.getNonce(), - (0, cons_1.prepareTokenId)(nft, fromChain.getNonce()) - )) - ? mintWith - : (0, cons_1.getDefaultContract)(nft, fromChain, toChain); - console.log(`Minting With : ${mw}`); - if (mw === undefined) { - throw new Error(`Mint with is not set`); - } - const res = await fromChain.transferNftToForeign( - sender, - toChain.getNonce(), - receiver, - nft, - new bignumber_js_1.default(fee), - mw, - gasLimit, - gasPrice - ); - return res; - } - }, - mint: async (chain, owner, args) => { - return await chain.mintNft(owner, args); - }, - /** - * Claim a transferred NFT - * @param serialNumber The Serial Number of the claimable NFTs - * @param contractAddress The MintWith HTS Proxy Contract used in the transfer - * @param sender wallet of the sender - * @returns txn response of the claimer - */ - async claimHederaNFT(serialNumber, contractAddress, htsToken, sender) { - const htscf = new hethers_1.ContractFactory( - hts_abi_1.HEDERA_PROXY_ABI, - hts_abi_1.HEDERA_PROXY_BC, - sender - ); - const hts_contract = htscf.attach(contractAddress); - const cf = new hethers_1.ContractFactory( - hts_abi_1.HEDERA_TOKEN_SERVICE_ABI, - "0x", - sender - ); - const contract = cf.attach("0x0000000000000000000000000000000000000167"); - ( - await contract.associateToken(await sender.getAddress(), htsToken, { - gasLimit: 1000000, - }) - ).wait(); - const res = await hts_contract.functions.claimNft( - serialNumber, - htsToken, - { - gasLimit: 1000000, - } - ); - return res; - }, - /** - * Returns all the claimable NFTs of the contract - * @param proxyContract the address of the HTS Proxy contract that was used as mintWith in the transfer - * @param sender wallet of the sender - * @returns array of tokens that were minted - */ - async listHederaClaimableNFT(proxyContract, htsToken, sender) { - const cf = new hethers_1.ContractFactory( - hts_abi_1.HEDERA_PROXY_ABI, - hts_abi_1.HEDERA_PROXY_BC, - sender - ); - const contract = cf.attach(proxyContract); - const tokens = await contract.functions.getClaimableNfts( - await sender.getAddress(), - htsToken, - { - gasLimit: 1000000, - } - ); - return tokens[0]; - }, - waitAlgorandNft: async (origin, hash, claimer) => { - const action = await origin.extractAction(hash); - return await txSocket.waitAlgorandNft( - origin.getNonce(), - claimer.address, - action - ); - }, - claimableAlgorandNfts: async (claimer) => { - const algo = await inner(consts_1.Chain.ALGORAND); - return await algo.claimableNfts(txSocket, claimer); - }, - async checkWhitelist(chain, nft) { - if ( - !chain.isNftWhitelisted || - (await isWrappedNft(nft, chain.getNonce())).bool - ) { - return true; - } - return await chain.isNftWhitelisted(nft); - }, - isWrappedNft, - setProvider, - }; -} -exports.ChainFactory = ChainFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQUE4QztBQUs5Qyx5Q0FBdUI7QUFDdkIsOENBQTRCO0FBRTVCLGdFQUFxQztBQUNyQywwQkFZWTtBQUVaLGtEQUFzRDtBQUN0RCxnREFBNkQ7QUFDN0Qsc0RBQThCO0FBQzlCLGtEQUEwQjtBQUMxQixtQ0FBdUM7QUFDdkMseUNBQW1DO0FBQ25DLDRDQUErQztBQUMvQyxrREFNNkI7QUFZN0IsdURBSW1DO0FBZ0JuQyxpQ0FNZ0I7QUFDaEIsMERBQWtDO0FBMlJsQyxTQUFTLGdCQUFnQixDQUFDLFdBQWlDO0lBQ3pELE1BQU0sSUFBSSxHQUFhLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMs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 diff --git a/dist/heartbeat/index.d.ts b/dist/heartbeat/index.d.ts deleted file mode 100644 index f119e8d9b..000000000 --- a/dist/heartbeat/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { StatusResp } from "./resp"; -export type BridgeHeartbeat = { - status(): Promise; -}; -export declare function bridgeHeartbeat(baseURL: string): BridgeHeartbeat; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/heartbeat/index.d.ts.map b/dist/heartbeat/index.d.ts.map deleted file mode 100644 index a43856854..000000000 --- a/dist/heartbeat/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heartbeat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAWhE"} \ No newline at end of file diff --git a/dist/heartbeat/index.js b/dist/heartbeat/index.js deleted file mode 100644 index 9f455a249..000000000 --- a/dist/heartbeat/index.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.bridgeHeartbeat = void 0; -const axios_1 = __importDefault(require("axios")); -function bridgeHeartbeat(baseURL) { - const api = axios_1.default.create({ - baseURL, - }); - return { - async status() { - const res = await api.get("/status"); - return res.data; - }, - }; -} -exports.bridgeHeartbeat = bridgeHeartbeat; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVhcnRiZWF0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQU8xQixTQUFnQixlQUFlLENBQUMsT0FBZTtJQUM3QyxNQUFNLEdBQUcsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLE9BQU87S0FDUixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE1BQU07WUFDVixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQWEsU0FBUyxDQUFDLENBQUM7WUFDakQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2xCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQVhELDBDQVdDIn0= diff --git a/dist/heartbeat/resp.d.ts b/dist/heartbeat/resp.d.ts deleted file mode 100644 index 978e3f406..000000000 --- a/dist/heartbeat/resp.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -type DeathReason = { - component: "node" | "validator" | "balance"; - error: string; -}; -type ValidatorStatus = { - status: "alive" | "dead"; - death_reason?: DeathReason; -}; -type ChainStatus = { - bridge_alive: boolean; - validators: ValidatorStatus[]; -}; -export type StatusResp = { - [chainNonce: string]: ChainStatus; -}; -export {}; -//# sourceMappingURL=resp.d.ts.map diff --git a/dist/heartbeat/resp.d.ts.map b/dist/heartbeat/resp.d.ts.map deleted file mode 100644 index c3d1f3cf5..000000000 --- a/dist/heartbeat/resp.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"resp.d.ts","sourceRoot":"","sources":["../../src/heartbeat/resp.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CACnC,CAAC"} \ No newline at end of file diff --git a/dist/heartbeat/resp.js b/dist/heartbeat/resp.js deleted file mode 100644 index cf77ed2b9..000000000 --- a/dist/heartbeat/resp.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWFydGJlYXQvcmVzcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0= diff --git a/dist/helpers/algorand.d.ts b/dist/helpers/algorand.d.ts deleted file mode 100644 index 5f03646e9..000000000 --- a/dist/helpers/algorand.d.ts +++ /dev/null @@ -1,108 +0,0 @@ -import WalletConnect from "@walletconnect/client"; -import algosdk, { SuggestedParams } from "algosdk"; -import { - AlgorandSocketHelper, - ChainNonceGet, - EstimateTxFees, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from ".."; -import MyAlgoConnect from "@randlabs/myalgo-connect"; -import { EvNotifier } from "../notifier"; -import { BalanceCheck, FeeMargins, GetFeeMargins, GetTokenURI } from "./chain"; -type TxResp = { - txId: string; -}; -type AlgoNft = { - "metadata-hash"?: string; - name?: string; - "unit-name"?: string; - url: string; - creator: string; - nftId: number; -}; -type SignedTxn = { - txID?: string; - blob: string; -}; -type Ledger = "MainNet" | "TestNet" | "any"; -type BrowserSigner = { - accounts(args: { ledger: Ledger }): Promise< - { - address: string; - }[] - >; - signTxn( - transactions: { - txn: string; - }[] - ): Promise; - send(info: { ledger: Ledger; tx: string }): Promise; -}; -export type ClaimNftInfo = { - appId: number; - nftId: number; -}; -/** - * Selected address & ledger must be given explicitly - */ -export type AlgoSignerH = { - readonly algoSigner: BrowserSigner; - readonly address: string; - readonly ledger: Ledger; -}; -/** - * This library is written in typescript. - * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. - * - * @return Strongly typed AlgoSigner from extension - */ -export declare function typedAlgoSigner(): BrowserSigner; -export declare function algoSignerWrapper( - algod: algosdk.Algodv2, - acc: algosdk.Account -): AlgoSignerH; -export type FullClaimNft = ClaimNftInfo & { - name: string; - uri: string; -}; -export type AlgorandHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - algod: algosdk.Algodv2; - claimNft(claimer: AlgoSignerH, info: ClaimNftInfo): Promise; - claimableNfts( - txSocket: AlgorandSocketHelper, - owner: string - ): Promise; - isOptIn(address: string, nftId: number): Promise; - optInNft( - signer: AlgoSignerH, - info: ClaimNftInfo - ): Promise; - walletConnectSigner(connector: WalletConnect, address: string): AlgoSignerH; - myAlgoSigner(myAlgo: MyAlgoConnect, address: string): AlgoSignerH; - } & Pick< - PreTransfer, - "preTransfer" - > & { - XpNft: string; - } & GetFeeMargins & - BalanceCheck & - GetTokenURI; -export type AlgorandParams = { - algodApiKey: string; - algodUri: string; - indexerUri: string; - algodPort: number | undefined; - sendNftAppId: number; - notifier: EvNotifier; - feeMargin: FeeMargins; -}; -export declare function algorandHelper(args: AlgorandParams): AlgorandHelper; -export {}; -//# sourceMappingURL=algorand.d.ts.map diff --git a/dist/helpers/algorand.d.ts.map b/dist/helpers/algorand.d.ts.map deleted file mode 100644 index 1cc851159..000000000 --- a/dist/helpers/algorand.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"algorand.d.ts","sourceRoot":"","sources":["../../src/helpers/algorand.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/algorand.js b/dist/helpers/algorand.js deleted file mode 100644 index 1e5977208..000000000 --- a/dist/helpers/algorand.js +++ /dev/null @@ -1,452 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.algorandHelper = - exports.algoSignerWrapper = - exports.typedAlgoSigner = - void 0; -const algosdk_1 = __importDefault(require("algosdk")); -const utils_1 = require("@json-rpc-tools/utils"); -const bignumber_js_1 = require("bignumber.js"); -const js_base64_1 = require("js-base64"); -const __1 = require(".."); -/** - * This library is written in typescript. - * unfortunately the browser extension injects the AlgoSigner in a way we can't get a typed object wwithout this hack. - * - * @return Strongly typed AlgoSigner from extension - */ -function typedAlgoSigner() { - //@ts-expect-error why do you inject libraries like this :| - if (typeof AlgoSigner === "undefined") { - throw Error("algosigner not available!"); - } - //@ts-expect-error why do you inject libraries like this :| - return AlgoSigner; -} -exports.typedAlgoSigner = typedAlgoSigner; -function algoSignerWrapper(algod, acc) { - const signer = { - accounts(_) { - return Promise.resolve([ - { - address: acc.addr, - }, - ]); - }, - signTxn(txns) { - return Promise.resolve( - txns.map((t) => { - const signed = algosdk_1.default.signTransaction( - algosdk_1.default.decodeUnsignedTransaction( - js_base64_1.Base64.toUint8Array(t.txn) - ), - acc.sk - ); - return { - txID: signed.txID, - blob: js_base64_1.Base64.fromUint8Array(signed.blob), - }; - }) - ); - }, - send({ tx }) { - return algod.sendRawTransaction(js_base64_1.Base64.toUint8Array(tx)).do(); - }, - }; - return { - algoSigner: signer, - address: acc.addr, - ledger: "any", - }; -} -exports.algoSignerWrapper = algoSignerWrapper; -// type MinWrappedNft = { -// wrapped: { -// origin: string; -// }; -// }; -const encoder = new TextEncoder(); -const MINT_NFT_COST = new bignumber_js_1.BigNumber(1000); -function algorandHelper(args) { - const appAddr = algosdk_1.default.getApplicationAddress(args.sendNftAppId); - const algod = new algosdk_1.default.Algodv2( - args.algodApiKey, - args.algodUri, - args.algodPort - ); - const indexer = new algosdk_1.default.Indexer( - args.algodApiKey, - args.indexerUri, - args.algodPort - ); - async function waitTxnConfirm(txId) { - const status = await algod.status().do(); - let lastRound = status["last-round"]; - algod.pendingTransactionsInformation(); - let pendingInfo = await algod - .pendingTransactionInformation(txId) - .do() - .catch(() => ({})); - while ( - !(pendingInfo["confirmed-round"] && pendingInfo["confirmed-round"] > 0) - ) { - lastRound += 1; - await algod.statusAfterBlock(lastRound).do(); - pendingInfo = await algod.pendingTransactionInformation(txId).do(); - } - } - // async function compileProgram( - // client: Algodv2, - // programSource: string - // ) { - // const enc = new TextEncoder(); - // const programBytes = enc.encode(programSource); - // const compileResponse = await client.compile(programBytes).do(); - // const compiledBytes = new Uint8Array( - // Buffer.from(compileResponse.result, 'base64') - // ); - // return compiledBytes; - // }; - // async function getMintPoolProgram(client: Algodv2, recv: any) { - // const poolSrc = fs.readFileSync(__dirname + '/bridge_pool.tmpl.teal'); - // return await compileProgram( - // client, - // poolSrc.toString().replace('TMPL_RECV_ADDR', recv) - // ); - // } - const transferNft = async ( - signer, - chain_nonce, - to, - nft, - txFees, - mintWith - ) => { - const suggested = await algod.getTransactionParams().do(); - const transferTx = - algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: appAddr, - amount: 1, - assetIndex: nft.native.nftId, - suggestedParams: suggested, - }); - const paymentTxn = - algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ - from: signer.address, - suggestedParams: suggested, - to: appAddr, - amount: BigInt(txFees.toString()), - }); - const appArgs = [ - encoder.encode("freeze_nft"), - encoder.encode(to), - new Uint8Array( - Buffer.concat([ - Buffer.from(new Uint32Array([0]).buffer), - Buffer.from(new Uint32Array([chain_nonce]).buffer).reverse(), - ]) - ), - ]; - if (mintWith) { - appArgs.push(encoder.encode(mintWith)); - } - const tCallTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: args.sendNftAppId, - appArgs, - foreignAssets: [nft.native.nftId], - suggestedParams: suggested, - }); - algosdk_1.default.assignGroupID([tCallTx, transferTx, paymentTxn]); - const encodedTxns = [ - { txn: js_base64_1.Base64.fromUint8Array(tCallTx.toByte()) }, - { txn: js_base64_1.Base64.fromUint8Array(transferTx.toByte()) }, - { txn: js_base64_1.Base64.fromUint8Array(paymentTxn.toByte()) }, - ]; - const signedTxns = await signer.algoSigner.signTxn(encodedTxns); - const sendRes = await algod - .sendRawTransaction([ - js_base64_1.Base64.toUint8Array(signedTxns[0].blob), - js_base64_1.Base64.toUint8Array(signedTxns[1].blob), - js_base64_1.Base64.toUint8Array(signedTxns[2].blob), - ]) - .do(); - await waitTxnConfirm(sendRes.txId); - await args.notifier.notifyAlgorand(sendRes.txId); - return sendRes.txId; - }; - async function isOptIn(addr, nftId) { - const userRes = await indexer.lookupAccountByID(addr).do(); - const user = userRes["account"]; - if (!user.assets) return false; - for (let i = 0; i < user["assets"].length; i++) { - if (user["assets"][i]["asset-id"] === nftId) { - return true; - } - } - return false; - } - async function optInNft(signer, nft) { - if (await isOptIn(signer.address, nft.nftId)) { - return undefined; - } - const suggested = await algod.getTransactionParams().do(); - const optIn = - algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: signer.address, - amount: 0, - assetIndex: nft.nftId, - suggestedParams: suggested, - }); - const encodedTx = js_base64_1.Base64.fromUint8Array(optIn.toByte()); - const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); - const res = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedTx[0].blob, - }); - await waitTxnConfirm(res.txId); - return res.txId; - } - async function claimNft(signer, info) { - await optInNft(signer, info); - const suggested = await algod.getTransactionParams().do(); - const txn = algosdk_1.default.makeApplicationNoOpTxnFromObject({ - from: signer.address, - suggestedParams: suggested, - appIndex: info.appId, - appArgs: [encoder.encode("transfer_nft")], - foreignAssets: [info.nftId], - }); - const encodedTx = js_base64_1.Base64.fromUint8Array(txn.toByte()); - const signedTx = await signer.algoSigner.signTxn([{ txn: encodedTx }]); - const res = await signer.algoSigner.send({ - ledger: signer.ledger, - tx: signedTx[0].blob, - }); - await waitTxnConfirm(res.txId); - return res.txId; - } - return { - XpNft: "", - algod, - getNonce: () => __1.Chain.ALGORAND, - claimNft, - optInNft, - isOptIn, - async balance(address) { - const acc = await algod - .accountInformation(address) - .do() - .catch(() => undefined); - if (!acc) return new bignumber_js_1.BigNumber(0); - return new bignumber_js_1.BigNumber(acc.amount); - }, - async preTransfer(sender, nft, fee) { - if (await isOptIn(sender.address, nft.native.nftId)) { - return undefined; - } - const suggested = await algod.getTransactionParams().do(); - const callTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ - from: sender.address, - appIndex: args.sendNftAppId, - appArgs: [encoder.encode("optin_asset")], - foreignAssets: [nft.native.nftId], - suggestedParams: suggested, - }); - const feesTx = - algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ - from: sender.address, - suggestedParams: suggested, - to: appAddr, - amount: BigInt(fee.toString()), - }); - algosdk_1.default.assignGroupID([callTx, feesTx]); - const encodedTxns = [ - { txn: js_base64_1.Base64.fromUint8Array(callTx.toByte()) }, - { txn: js_base64_1.Base64.fromUint8Array(feesTx.toByte()) }, - ]; - const signedTxns = await sender.algoSigner.signTxn(encodedTxns); - const sendRes = await algod - .sendRawTransaction([ - js_base64_1.Base64.toUint8Array(signedTxns[0].blob), - js_base64_1.Base64.toUint8Array(signedTxns[1].blob), - ]) - .do(); - await waitTxnConfirm(sendRes.txId); - return suggested; - }, - getFeeMargin() { - return args.feeMargin; - }, - transferNftToForeign: transferNft, - unfreezeWrappedNft: async (signer, to, nft, txFees, nonce) => { - const suggested = await algod.getTransactionParams().do(); - const transferTx = - algosdk_1.default.makeAssetTransferTxnWithSuggestedParamsFromObject({ - from: signer.address, - to: appAddr, - amount: 1, - assetIndex: nft.native.nftId, - suggestedParams: suggested, - }); - const sTransferTx = await signer.algoSigner.signTxn([ - { txn: js_base64_1.Base64.fromUint8Array(transferTx.toByte()) }, - ]); - const transferRes = await algod - .sendRawTransaction( - js_base64_1.Base64.toUint8Array(sTransferTx[0].blob) - ) - .do(); - await waitTxnConfirm(transferRes.txId); - const paymentTxn = - algosdk_1.default.makePaymentTxnWithSuggestedParamsFromObject({ - from: signer.address, - suggestedParams: suggested, - to: appAddr, - amount: BigInt(txFees.toString()), - }); - const appArgs = [ - encoder.encode("withdraw_nft"), - encoder.encode(to), - new Uint8Array( - Buffer.from(new Uint32Array([parseInt(nonce)]).buffer).reverse() - ), - new Uint8Array(Buffer.from("")), - ]; - const tCallTx = algosdk_1.default.makeApplicationNoOpTxnFromObject({ - from: signer.address, - appIndex: args.sendNftAppId, - appArgs, - foreignAssets: [nft.native.nftId], - suggestedParams: suggested, - }); - algosdk_1.default.assignGroupID([tCallTx, paymentTxn]); - const encodedTxns = [ - { txn: js_base64_1.Base64.fromUint8Array(tCallTx.toByte()) }, - { txn: js_base64_1.Base64.fromUint8Array(paymentTxn.toByte()) }, - ]; - const signedTxns = await signer.algoSigner.signTxn(encodedTxns); - const sendRes = await algod - .sendRawTransaction([ - js_base64_1.Base64.toUint8Array(signedTxns[0].blob), - js_base64_1.Base64.toUint8Array(signedTxns[1].blob), - ]) - .do(); - await waitTxnConfirm(sendRes.txId); - await args.notifier.notifyAlgorand(sendRes.txId); - return sendRes.txId; - }, - estimateValidateTransferNft: () => Promise.resolve(MINT_NFT_COST), - estimateValidateUnfreezeNft: () => Promise.resolve(MINT_NFT_COST), - validateAddress: (adr) => - Promise.resolve(algosdk_1.default.isValidAddress(adr)), - claimableNfts: async (txSocket, owner) => { - await txSocket.cleanNfts(owner); - const claims = await txSocket.claimNfts(owner); - const res = await Promise.all( - claims.map(async (v) => { - const appId = parseInt(v.app_id); - const nftId = parseInt(v.nft_id); - const assetRes = await indexer - .lookupAssetByID(nftId) - .do() - .catch(() => undefined); - if (assetRes == undefined) return []; - const assetInfo = assetRes.asset; - const bal = await indexer - .lookupAssetBalances(nftId) - .currencyGreaterThan(0) - .currencyLessThan(2) - .limit(1) - .do(); - if (bal.balances[0].address == owner || bal.balances[0].amount == 0) - return []; - return [ - { - nftId, - appId, - uri: assetInfo.params.url, - name: assetInfo.params.name || "", - }, - ]; - }) - ); - return res.flat(); - }, - walletConnectSigner(connector, address) { - const signer = { - accounts(_) { - return Promise.resolve( - connector.accounts.map((s) => ({ address: s })) - ); - }, - async signTxn(txns) { - const req = (0, utils_1.formatJsonRpcRequest)("algo_signTxn", [txns]); - const signed = await connector.sendCustomRequest(req); - const decoded = signed.map((s) => { - return { - blob: s ?? "", - }; - }); - if (decoded.length != txns.length) { - throw Error("Couldn't sign all transactions!"); - } - return decoded; - }, - send(info) { - return algod - .sendRawTransaction(js_base64_1.Base64.toUint8Array(info.tx)) - .do(); - }, - }; - return { - algoSigner: signer, - address, - ledger: "any", - }; - }, - myAlgoSigner(myAlgo, address) { - const signer = { - async accounts(_) { - const accs = await myAlgo.connect(); - return accs; - }, - async signTxn(txns) { - const stxs = await myAlgo.signTransaction(txns.map(({ txn }) => txn)); - return stxs.map((tx) => ({ - txID: tx.txID, - blob: js_base64_1.Base64.fromUint8Array(tx.blob), - })); - }, - send(info) { - return algod - .sendRawTransaction(js_base64_1.Base64.toUint8Array(info.tx)) - .do(); - }, - }; - return { - algoSigner: signer, - address, - ledger: "any", - }; - }, - async getTokenURI(_, tokenId) { - if (tokenId) { - const res = await indexer.lookupAssetByID(+tokenId).do(); - if (res?.asset?.params) { - return res.asset.params.url; - } - } - return ""; - }, - }; -} -exports.algorandHelper = algorandHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxnb3JhbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9hbGdvcmFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxzREFBbUQ7QUFDbkQsaURBQTZEO0FBQzdELCtDQUF5QztBQUN6Qyx5Q0FBbUM7QUFDbkMsMEJBVVk7QUE2Q1o7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlO0lBQzdCLDJEQUEyRDtJQUMzRCxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRTtRQUNyQyxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQzFDO0lBRUQsMkRBQTJEO0lBQzNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFSRCwwQ0FRQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixLQUFzQixFQUN0QixHQUFvQjtJQUVwQixNQUFNLE1BQU0sR0FBa0I7UUFDNUIsUUFBUSxDQUFDLENBQUM7WUFDUixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ3JCO29CQUNFLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSTtpQkFDbEI7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUk7WUFDVixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDYixNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLGVBQWUsQ0FDcEMsaUJBQU8sQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDN0QsR0FBRyxDQUFDLEVBQUUsQ0FDUCxDQUFDO2dCQUNGLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNqQixJQUFJLEVBQUUsa0JBQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztpQkFDekMsQ0FBQztZQUNK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 diff --git a/dist/helpers/aptos/bridge_client.d.ts b/dist/helpers/aptos/bridge_client.d.ts deleted file mode 100644 index d2bde53f4..000000000 --- a/dist/helpers/aptos/bridge_client.d.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { AptosAccount, AptosClient, HexString, MaybeHexString } from "aptos"; -interface BridgeData { - action_cnt: string; - burning_nfts: { - handle: string; - }; - consumed_actions: { - handle: string; - }; - group_key: string; - paused: boolean; - frozen_nfts: { - handle: string; - }; - whitelist: { - handle: string; - }; -} -export declare class BridgeClient { - private aptosClient; - private transactionBuilder; - private address; - constructor( - aptosClient: AptosClient, - address: string, - network: "mainnet" | "staging" | "testnet" - ); - initialize(account: AptosAccount, groupKey: Uint8Array): Promise; - pause( - account: AptosAccount, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - unpause( - account: AptosAccount, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - validateWhitelist( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - validateBlacklist( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - validateWithdrawFees( - account: AptosAccount, - to: HexString, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - validateTransferNft( - account: AptosAccount, - collection: string, - name: string, - description: string, - maximum: number | bigint, - uri: string, - royaltyPayeeAddress: HexString, - royaltyPointsDenominator: number | bigint, - royaltyPointsNumerator: number | bigint, - mutateSetting: boolean[], - to: HexString, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - withdrawNft( - account: AptosAccount, - _bridgeAdmin: HexString, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: string, - price: number | bigint, - chainNonce: number | bigint, - to: string, - mintWith: string - ): Promise; - validateBurnNft( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: string, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - freezeNft( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: number | bigint, - price: number | bigint, - chainNonce: number | bigint, - to: string, - mintWith: string - ): Promise; - validateUnfreezeNft( - account: AptosAccount, - collectionCreator: HexString, - collectionName: string, - tokenName: string, - propertyVersion: string, - to: HexString, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - updateGroupKey( - account: AptosAccount, - groupKey: Uint8Array, - actionId: number | bigint, - signature: Uint8Array - ): Promise; - getBridgeData(): Promise; - getAddress(): string; - isWhitelist( - collectionCreator: MaybeHexString, - collectionName: string - ): Promise; -} -export {}; -//# sourceMappingURL=bridge_client.d.ts.map diff --git a/dist/helpers/aptos/bridge_client.d.ts.map b/dist/helpers/aptos/bridge_client.d.ts.map deleted file mode 100644 index 62ccf1aa3..000000000 --- a/dist/helpers/aptos/bridge_client.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bridge_client.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/bridge_client.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/aptos/bridge_client.js b/dist/helpers/aptos/bridge_client.js deleted file mode 100644 index 0010bd8c4..000000000 --- a/dist/helpers/aptos/bridge_client.js +++ /dev/null @@ -1,265 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BridgeClient = void 0; -const aptos_1 = require("aptos"); -const bridge_client_abis_1 = require("./bridge_client_abis"); -class BridgeClient { - constructor(aptosClient, address, network) { - this.aptosClient = aptosClient; - let abi; - switch (network) { - case "mainnet": - abi = bridge_client_abis_1.MAINNET_BRIDGE_ABIS; - break; - case "staging": - abi = bridge_client_abis_1.STAGING_BRIDGE_ABIS; - break; - case "testnet": - abi = bridge_client_abis_1.TESTNET_BRIDGE_ABIS; - break; - default: - throw new Error("Invalid network"); - } - this.transactionBuilder = new aptos_1.TransactionBuilderABI( - abi.map((abi) => new aptos_1.HexString(abi).toUint8Array()) - ); - this.address = address; - } - async initialize(account, groupKey) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::initialize`, - [], - [groupKey] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async pause(account, actionId, signature) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::pause`, - [], - [actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async unpause(account, actionId, signature) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::unpause`, - [], - [actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateWhitelist( - account, - collectionCreator, - collectionName, - actionId, - signature - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_whitelist`, - [], - [collectionCreator.toString(), collectionName, actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateBlacklist( - account, - collectionCreator, - collectionName, - actionId, - signature - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_blacklist`, - [], - [collectionCreator.toString(), collectionName, actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateWithdrawFees(account, to, actionId, signature) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_withdraw_fees`, - [], - [to.toString(), actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateTransferNft( - account, - collection, - name, - description, - maximum, - uri, - royaltyPayeeAddress, - royaltyPointsDenominator, - royaltyPointsNumerator, - mutateSetting, - to, - actionId, - signature - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_transfer_nft`, - [], - [ - collection, - name, - description, - maximum, - uri, - royaltyPayeeAddress.toString(), - royaltyPointsDenominator.toString(), - royaltyPointsNumerator.toString(), - mutateSetting, - to.toString(), - actionId, - signature, - ] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async withdrawNft( - account, - _bridgeAdmin, - collectionCreator, - collectionName, - tokenName, - propertyVersion, - price, - chainNonce, - to, - mintWith - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::withdraw_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - price, - chainNonce, - to, - mintWith, - ] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateBurnNft( - account, - collectionCreator, - collectionName, - tokenName, - propertyVersion, - actionId, - signature - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_burn_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - actionId, - signature, - ] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async freezeNft( - account, - collectionCreator, - collectionName, - tokenName, - propertyVersion, - price, - chainNonce, - to, - mintWith - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::freeze_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - price, - chainNonce, - to, - mintWith, - ] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async validateUnfreezeNft( - account, - collectionCreator, - collectionName, - tokenName, - propertyVersion, - to, - actionId, - signature - ) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::validate_unfreeze_nft`, - [], - [ - collectionCreator.toString(), - collectionName, - tokenName, - propertyVersion, - to.toString(), - actionId, - signature, - ] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async updateGroupKey(account, groupKey, actionId, signature) { - const payload = this.transactionBuilder.buildTransactionPayload( - `${this.getAddress()}::bridge::update_group_key`, - [], - [groupKey, actionId, signature] - ); - return this.aptosClient.generateSignSubmitTransaction(account, payload); - } - async getBridgeData() { - const resources = await this.aptosClient.getAccountResources( - this.getAddress() - ); - const accountResource = resources.find( - (r) => r.type == `${this.getAddress()}::bridge::Bridge` - ); - return accountResource?.data; - } - getAddress() { - return this.address; - } - async isWhitelist(collectionCreator, collectionName) { - const data = await this.getBridgeData(); - const { handle } = data.whitelist; - try { - const res = await this.aptosClient.getTableItem(handle, { - key_type: `${this.getAddress()}::bridge::CollectionId`, - value_type: "bool", - key: { - creator: collectionCreator.toString(), - name: collectionName, - }, - }); - return res; - } catch (e) { - return false; - } - } -} -exports.BridgeClient = BridgeClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2FwdG9zL2JyaWRnZV9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBTWU7QUFDZiw2REFJOEI7QUFvQjlCLE1BQWEsWUFBWTtJQUt2QixZQUNFLFdBQXdCLEVBQ3hCLE9BQWUsRUFDZixPQUEwQztRQUUxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLEdBQUcsQ0FBQztRQUNSLFFBQVEsT0FBTyxFQUFFO1lBQ2YsS0FBSyxTQUFTO2dCQUNaLEdBQUcsR0FBRyx3Q0FBbUIsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixHQUFHLEdBQUcsd0NBQW1CLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osR0FBRyxHQUFHLHdDQUFtQixDQUFDO2dCQUMxQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksNkJBQXFCLENBQ2pELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUNwRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQ2QsT0FBcUIsRUFDckIsUUFBb0I7UUFFcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUM3RCxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLEVBQzFDLEVBQUUsRUFDRixDQUFDLFFBQVEsQ0FBQyxDQUNYLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxX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 diff --git a/dist/helpers/aptos/bridge_client_abis.d.ts b/dist/helpers/aptos/bridge_client_abis.d.ts deleted file mode 100644 index 4c19f20a8..000000000 --- a/dist/helpers/aptos/bridge_client_abis.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export declare const MAINNET_BRIDGE_ABIS: string[]; -export declare const TESTNET_BRIDGE_ABIS: string[]; -export declare const STAGING_BRIDGE_ABIS: string[]; -//# sourceMappingURL=bridge_client_abis.d.ts.map diff --git a/dist/helpers/aptos/bridge_client_abis.d.ts.map b/dist/helpers/aptos/bridge_client_abis.d.ts.map deleted file mode 100644 index 01a6522d5..000000000 --- a/dist/helpers/aptos/bridge_client_abis.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bridge_client_abis.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/bridge_client_abis.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,UAyB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAyB/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAY/B,CAAC"} \ No newline at end of file diff --git a/dist/helpers/aptos/bridge_client_abis.js b/dist/helpers/aptos/bridge_client_abis.js deleted file mode 100644 index abe906c5e..000000000 --- a/dist/helpers/aptos/bridge_client_abis.js +++ /dev/null @@ -1,72 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.STAGING_BRIDGE_ABIS = - exports.TESTNET_BRIDGE_ABIS = - exports.MAINNET_BRIDGE_ABIS = - void 0; -exports.MAINNET_BRIDGE_ABIS = [ - // ../build/aptos-bridge/abis/bridge/initialize.abi - "010a696e697469616c697a65f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000010967726f75705f6b65790601", - // ../build/aptos-bridge/abis/bridge/pause.abi - "01057061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/unpause.abi - "0107756e7061757365f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/update_group_key.abi - "01107570646174655f67726f75705f6b6579f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi - "011276616c69646174655f77686974656c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi - "011276616c69646174655f626c61636b6c697374f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi - "011676616c69646174655f77697468647261775f66656573f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi - "011576616c69646174655f7472616e736665725f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000f0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e6706000d70726f70657274795f6b6579730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000f70726f70657274795f76616c7565730606010e70726f70657274795f74797065730607000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670002746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi - "010c77697468647261775f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - // ../build/aptos-bridge/abis/bridge/validate_burn_nft.abi - "011176616c69646174655f6275726e5f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000612636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/freeze_nft.abi - "010a667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi - "011576616c69646174655f756e667265657a655f6e6674f1528ec9c413e37f0ce63eb699fa6c7521b925ff4857b2c95e857e43078c916d0662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", -]; -exports.TESTNET_BRIDGE_ABIS = [ - // ../build/aptos-bridge/abis/bridge/initialize.abi - "010a696e697469616c697a652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000010967726f75705f6b65790601", - // ../build/aptos-bridge/abis/bridge/pause.abi - "010570617573652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/unpause.abi - "0107756e70617573652b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000209616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/update_group_key.abi - "01107570646174655f67726f75705f6b65792b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_whitelist.abi - "011276616c69646174655f77686974656c6973742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_blacklist.abi - "011276616c69646174655f626c61636b6c6973742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_withdraw_fees.abi - "011676616c69646174655f77697468647261775f666565732b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/validate_tranfer_nft.abi - "011576616c69646174655f7472616e736665725f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/withdraw_nft.abi - "010c77697468647261775f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - // ../build/aptos-bridge/abis/bridge/freeze_nft.abi - "010a667265657a655f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - // ../build/aptos-bridge/abis/bridge/validate_unfreeze_nft.abi - "011576616c69646174655f756e667265657a655f6e66742b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d580662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", - // ../build/aptos-bridge/abis/bridge/create_collection.abi - "01116372656174655f636f6c6c656374696f6e2b9c2009290f6a291df678bca9b03aa55f909cbdbbcc215d4868f5bd8e5a7d58066272696467650000050f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670016636f6c6c656374696f6e5f6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000e636f6c6c656374696f6e5f75726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020e6d75746174655f73657474696e670600", -]; -exports.STAGING_BRIDGE_ABIS = [ - "010a696e697469616c697a65813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000010967726f75705f6b65790601", - "01057061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", - "0107756e7061757365813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000209616374696f6e5f696403097369676e61747572650601", - "01107570646174655f67726f75705f6b6579813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec37066272696467650000030d6e65775f67726f75705f6b6579060109616374696f6e5f696403097369676e61747572650601", - "011276616c69646174655f77686974656c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - "011276616c69646174655f626c61636b6c697374813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000412636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670009616374696f6e5f696403097369676e61747572650601", - "011676616c69646174655f77697468647261775f66656573813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000302746f0409616374696f6e5f696403097369676e61747572650601", - "011576616c69646174655f7472616e736665725f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000c0a636f6c6c656374696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700046e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000b6465736372697074696f6e07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700076d6178696d756d020375726907000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e670015726f79616c74795f70617965655f61646472657373041a726f79616c74795f706f696e74735f64656e6f6d696e61746f720218726f79616c74795f706f696e74735f6e756d657261746f72020e6d75746174655f73657474696e67060002746f0409616374696f6e5f696403097369676e61747572650601", - "010c77697468647261775f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "010a667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000812636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e02057072696365020b636861696e5f6e6f6e63650202746f07000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700096d696e745f7769746807000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e6700", - "011576616c69646174655f756e667265657a655f6e6674813d070ca33bf08223e957257c25cb66072fa8960b0af4810c2e78990126ec370662726964676500000712636f6c6c656374696f6e5f63726561746f72040f636f6c6c656374696f6e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67000a746f6b656e5f6e616d6507000000000000000000000000000000000000000000000000000000000000000106737472696e6706537472696e67001070726f70657274795f76657273696f6e0202746f0409616374696f6e5f696403097369676e61747572650601", -]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX2NsaWVudF9hYmlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvYXB0b3MvYnJpZGdlX2NsaWVudF9hYmlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsbURBQW1EO0lBQ25ELHNJQUFzSTtJQUN0SSw4Q0FBOEM7SUFDOUMsa0pBQWtKO0lBQ2xKLGdEQUFnRDtJQUNoRCxzSkFBc0o7SUFDdEoseURBQXlEO0lBQ3pELHdNQUF3TTtJQUN4TSwyREFBMkQ7SUFDM0Qsb1ZBQW9WO0lBQ3BWLDJEQUEyRDtJQUMzRCxvVkFBb1Y7SUFDcFYsK0RBQStEO0lBQy9ELDRMQUE0TDtJQUM1TCw2REFBNkQ7SUFDN0QsNG1DQUE0bUM7SUFDNW1DLHFEQUFxRDtJQUNyRCxzckJBQXNyQjtJQUN0ckIsMERBQTBEO0lBQzFELDRlQUE0ZTtJQUM1ZSxtREFBbUQ7SUFDbkQsa3JCQUFrckI7SUFDbHJCLDhEQUE4RDtJQUM5RCw0ZkFBNGY7Q0FDN2YsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsbURBQW1EO0lBQ25ELHNJQUFzSTtJQUN0SSw4Q0FBOEM7SUFDOUMsa0pBQWtKO0lBQ2xKLGdEQUFnRDtJQUNoRCxzSkFBc0o7SUFDdEoseURBQXlEO0lBQ3pELHdNQUF3TTtJQUN4TSwyREFBMkQ7SUFDM0Qsb1ZBQW9WO0lBQ3BWLDJEQUEyRDtJQUMzRCxvVkFBb1Y7SUFDcFYsK0RBQStEO0lBQy9ELDRMQUE0TDtJQUM1TCw2REFBNkQ7SUFDN0QsdzBCQUF3MEI7SUFDeDBCLHFEQUFxRDtJQUNyRCxzckJBQXNyQjtJQUN0ckIsbURBQW1EO0lBQ25ELGtyQkFBa3JCO0lBQ2xyQiw4REFBOEQ7SUFDOUQsNGZBQTRmO0lBQzVmLDBEQUEwRDtJQUMxRCw0akJBQTRqQjtDQUM3akIsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsc0lBQXNJO0lBQ3RJLGtKQUFrSjtJQUNsSixzSkFBc0o7SUFDdEosd01BQXdNO0lBQ3hNLG9WQUFvVjtJQUNwVixvVkFBb1Y7SUFDcFYsNExBQTRMO0lBQzVMLHcwQkFBdzBCO0lBQ3gwQixzckJBQXNyQjtJQUN0ckIsa3JCQUFrckI7SUFDbHJCLDRmQUE0ZjtDQUM3ZixDQUFDIn0= diff --git a/dist/helpers/aptos/index.d.ts b/dist/helpers/aptos/index.d.ts deleted file mode 100644 index d1fd17a80..000000000 --- a/dist/helpers/aptos/index.d.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { - ChainNonceGet, - ClaimNFT, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - MintNft, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, -} from "../chain"; -import { AptosAccount, AptosClient, HexString } from "aptos"; -import { EvNotifier } from "../../notifier"; -export type AptosNFT = { - collection_creator: string; - collection_name: string; - token_name: string; - property_version: number; -}; -/** - * @param collection name of the collection u already own. if u dont own any token, then set this as undefined - * @param name name of the NFT - * @param description description of the NFT - * @param uri The URI which the NFT points to - * @param createCollection set this as true if u set collection as undefined. it will create a new collection. - */ -export type AptosMintArgs = { - collection: string | undefined; - name: string; - description: string; - uri: string; - createCollection: boolean; -}; -export type AptosClaimArgs = { - sender: HexString; - propertyVersion: number; - collectionName: string; - creator: string; - name: string; -}; -export type AptosHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - XpNft: string; - } & GetFeeMargins & - MintNft & - GetProvider & - ClaimNFT & - BalanceCheck & { - setPetraSigner(signer: any): void; - }; -export type AptosParams = { - feeMargin: FeeMargins; - rpcUrl: string; - xpnft: string; - bridge: string; - notifier: EvNotifier; - network: "mainnet" | "staging" | "testnet"; -}; -export declare function aptosHelper({ - feeMargin, - rpcUrl, - xpnft, - bridge, - notifier, - network, -}: AptosParams): Promise; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/helpers/aptos/index.d.ts.map b/dist/helpers/aptos/index.d.ts.map deleted file mode 100644 index b321f7d63..000000000 --- a/dist/helpers/aptos/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/aptos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EAGV,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,aAAa,GACrC,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,GAClD,cAAc,CAAC,QAAQ,CAAC,GACxB,eAAe,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,aAAa,GACjB,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,GAC5C,WAAW,CAAC,WAAW,CAAC,GACxB,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC9C,YAAY,GAAG;IACb,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CACnC,CAAC;AAEJ,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAChC,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,GACR,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAiJpC"} \ No newline at end of file diff --git a/dist/helpers/aptos/index.js b/dist/helpers/aptos/index.js deleted file mode 100644 index 76100dc2b..000000000 --- a/dist/helpers/aptos/index.js +++ /dev/null @@ -1,167 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.aptosHelper = void 0; -const aptos_1 = require("aptos"); -const consts_1 = require("../../consts"); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const bridge_client_1 = require("./bridge_client"); -async function aptosHelper({ - feeMargin, - rpcUrl, - xpnft, - bridge, - notifier, - network, -}) { - const client = new aptos_1.AptosClient(rpcUrl); - const bridgeClient = new bridge_client_1.BridgeClient( - client, - bridge, - network - ); - const coinClient = new aptos_1.CoinClient(client); - return { - getNonce() { - return consts_1.Chain.APTOS; - }, - getFeeMargin() { - return feeMargin; - }, - setPetraSigner(signer) { - //imposter - client.generateSignSubmitTransaction = async function (_, payload) { - const trx = await signer.signAndSubmitTransaction(payload); - return trx.hash; - }; - }, - balance: async (address) => { - return new bignumber_js_1.default( - (await coinClient.checkBalance(address)).toString() - ); - }, - async validateAddress(adr) { - try { - await client.getAccount(adr); - return true; - } catch (e) { - return false; - } - }, - XpNft: xpnft, - async estimateValidateTransferNft(_to, _metadata, _mintWith) { - return new bignumber_js_1.default(0); - }, - async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { - return new bignumber_js_1.default(0); - }, - async transferNftToForeign( - sender, - chain_nonce, - to, - id, - txFees, - mintWith, - _gasLimit - ) { - const receipt = await bridgeClient.freezeNft( - sender, - aptos_1.HexString.ensure(id.native.collection_creator), - id.native.collection_name, - id.native.token_name, - id.native.property_version, - BigInt(txFees.toString()), - chain_nonce, - to, - mintWith - ); - await new Promise((r) => setTimeout(r, 10000)); - await notifier.notifyAptos(receipt); - return receipt; - }, - getProvider() { - return client; - }, - async mintNft(owner, options) { - //AptosAccount.fromAptosAccountObject({""}) - const tc = new aptos_1.TokenClient(client); - if (options.createCollection) { - await tc.createCollection( - owner, - "UMT", - "UserNftMinter - Mint your NFTs Here To Test", - "https://example.com", - BigInt(2 ** 64) - BigInt(1) - ); - const response = await tc.createToken( - owner, - "UMT", - options.name, - options.description, - 1, - options.uri, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined - ); - return response; - } else { - const response = await tc.createToken( - owner, - options.collection, - options.name, - options.description, - 1, - options.uri, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined - ); - return response; - } - }, - async claimNFT(signer, params) { - const tokenClient = new aptos_1.TokenClient(client); - const claim = await tokenClient.claimToken( - signer, - params.sender, - params.creator, - params.collectionName, - params.name, - params.propertyVersion - ); - return claim; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - const receipt = await bridgeClient.withdrawNft( - sender, - aptos_1.HexString.ensure(bridge), - aptos_1.HexString.ensure(id.native.collection_creator), - id.native.collection_name, - id.native.token_name, - id.native.property_version.toString(), - BigInt(txFees.toString()), - parseInt(nonce), - to, - id.native.collection_creator - ); - await new Promise((r) => setTimeout(r, 10000)); - await notifier.notifyAptos(receipt); - return receipt; - }, - }; -} -exports.aptosHelper = aptosHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9hcHRvcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFjQSxpQ0FNZTtBQUVmLHlDQUFxQztBQUNyQyxnRUFBcUM7QUFDckMsbURBQStDO0FBd0R4QyxLQUFLLFVBQVUsV0FBVyxDQUFDLEVBQ2hDLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxHQUNLO0lBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXZDLE1BQU0sWUFBWSxHQUFHLElBQUksNEJBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxQyxPQUFPO1FBQ0wsUUFBUTtZQUNOLE9BQU8sY0FBSyxDQUFDLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsWUFBWTtZQUNWLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxjQUFjLENBQUMsTUFBVztZQUN4QixVQUFVO1lBQ1YsTUFBTSxDQUFDLDZCQUE2QixHQUFHLEtBQUssV0FDMUMsQ0FBZSxFQUNmLE9BQVk7Z0JBRVosTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzNELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztZQUNsQixDQUFDLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN6QixPQUFPLElBQUksc0JBQVMsQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQztR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 diff --git a/dist/helpers/bridge_pool.teal.d.ts b/dist/helpers/bridge_pool.teal.d.ts deleted file mode 100644 index 55080bca3..000000000 --- a/dist/helpers/bridge_pool.teal.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export declare const BRIDGE_TEAL = - '#pragma version 5\nintcblock 1 6 3\nbytecblock TMPL_RECV_ADDR\ntxn TypeEnum\npushint 4 // axfer\n==\ntxn AssetAmount\nintc_0 // 1\n==\n&&\ntxn AssetReceiver\nbytec_0 // TMPL_RECV_ADDR\n==\n&&\nbnz main_l6\ngtxn 0 TypeEnum\nintc_1 // appl\n==\ngtxna 0 ApplicationArgs 0\npushbytes 0x6372656174655f6e6674 // "create_nft"\n==\n&&\ngtxna 0 Accounts 1\nbytec_0 // TMPL_RECV_ADDR\n==\n&&\ngtxn 1 TypeEnum\nintc_2 // acfg\n==\n&&\ngtxn 1 ConfigAssetTotal\nintc_0 // 1\n==\n&&\ngtxn 1 ConfigAssetDecimals\npushint 0 // 0\n==\n&&\nbnz main_l5\ngtxn 0 TypeEnum\nintc_1 // appl\n==\ngtxna 0 ApplicationArgs 0\npushbytes 0x77697468647261775f6e6674 // "withdraw_nft"\n==\n&&\ngtxn 1 TypeEnum\nintc_2 // acfg\n==\n&&\ngtxn 1 ConfigAsset\ngtxna 0 Assets 0\n==\n&&\nbnz main_l4\nerr\nmain_l4:\nintc_0 // 1\nreturn\nmain_l5:\nintc_0 // 1\nreturn\nmain_l6:\nintc_0 // 1\nreturn'; -//# sourceMappingURL=bridge_pool.teal.d.ts.map diff --git a/dist/helpers/bridge_pool.teal.d.ts.map b/dist/helpers/bridge_pool.teal.d.ts.map deleted file mode 100644 index 61be1fc24..000000000 --- a/dist/helpers/bridge_pool.teal.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bridge_pool.teal.d.ts","sourceRoot":"","sources":["../../src/helpers/bridge_pool.teal.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,o2BAgEjB,CAAC"} \ No newline at end of file diff --git a/dist/helpers/bridge_pool.teal.js b/dist/helpers/bridge_pool.teal.js deleted file mode 100644 index 0c27fe1a5..000000000 --- a/dist/helpers/bridge_pool.teal.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BRIDGE_TEAL = void 0; -exports.BRIDGE_TEAL = `#pragma version 5 -intcblock 1 6 3 -bytecblock TMPL_RECV_ADDR -txn TypeEnum -pushint 4 // axfer -== -txn AssetAmount -intc_0 // 1 -== -&& -txn AssetReceiver -bytec_0 // TMPL_RECV_ADDR -== -&& -bnz main_l6 -gtxn 0 TypeEnum -intc_1 // appl -== -gtxna 0 ApplicationArgs 0 -pushbytes 0x6372656174655f6e6674 // "create_nft" -== -&& -gtxna 0 Accounts 1 -bytec_0 // TMPL_RECV_ADDR -== -&& -gtxn 1 TypeEnum -intc_2 // acfg -== -&& -gtxn 1 ConfigAssetTotal -intc_0 // 1 -== -&& -gtxn 1 ConfigAssetDecimals -pushint 0 // 0 -== -&& -bnz main_l5 -gtxn 0 TypeEnum -intc_1 // appl -== -gtxna 0 ApplicationArgs 0 -pushbytes 0x77697468647261775f6e6674 // "withdraw_nft" -== -&& -gtxn 1 TypeEnum -intc_2 // acfg -== -&& -gtxn 1 ConfigAsset -gtxna 0 Assets 0 -== -&& -bnz main_l4 -err -main_l4: -intc_0 // 1 -return -main_l5: -intc_0 // 1 -return -main_l6: -intc_0 // 1 -return`; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlX3Bvb2wudGVhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2JyaWRnZV9wb29sLnRlYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxXQUFXLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnRXBCLENBQUMifQ== diff --git a/dist/helpers/chain.d.ts b/dist/helpers/chain.d.ts deleted file mode 100644 index afce1d337..000000000 --- a/dist/helpers/chain.d.ts +++ /dev/null @@ -1,184 +0,0 @@ -import BigNumber from "bignumber.js"; -import { ethers } from "ethers"; -import { ChainNonce } from "../type-utils"; -/** - * NFT Info - */ -export type NftInfo = { - readonly uri: string; - readonly native: Raw; - readonly collectionIdent: string; - readonly tokenId?: any; - readonly originChain?: any; -}; -/** - * Action to perform before transfer/unfreeze (if any) - */ -export interface PreTransfer { - preTransfer( - sender: Signer, - nft: NftInfo, - fee: BigNumber, - args?: ExtraArgs - ): Promise; - preUnfreeze( - sender: Signer, - nft: NftInfo, - fee: BigNumber, - args?: ExtraArgs - ): Promise; -} -/** - * Transfer NFT to a foreign chain, freezing the original one - * - * @param sender Account which owns the NFT on the native chain, able to sign transactions - * @param chain_nonce Nonce of the target chain - * @param to Address of the receiver on the foreign chain - * @param id Information required to freeze this nft - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface TransferNftForeign { - transferNftToForeign( - sender: Signer, - chain_nonce: number, - to: string, - id: NftInfo, - txFees: BigNumber, - mintWith: string, - gasLimit?: ethers.BigNumberish | undefined, - gasPrice?: ethers.BigNumberish | undefined - ): Promise; -} -/** - * Unfreeze native NFT existing on a foreign chain(Send back NFT) - * chain_nonce is automatically derived - * - * @param sender Account which owns the wrapped NFT on this chain, able to sign transactions - * @param to Address of the receiver on the original chain - * @param id Information required to unfreeze this nft - * - * @returns Transaction and the Identifier of this action to track the status - */ -export interface UnfreezeForeignNft { - unfreezeWrappedNft( - sender: Signer, - to: string, - id: NftInfo, - txFees: BigNumber, - nonce: string, - gasLimit: ethers.BigNumberish | undefined, - gasPrice: ethers.BigNumberish | undefined - ): Promise; -} -/** - * Get the balance of an address on the chain - */ -export interface BalanceCheck { - balance(address: string): Promise; -} -/** - * Create a new NFT on this chain - * - * @param options Arguments required to mint the nft - */ -export interface MintNft { - mintNft(owner: Signer, options: Args): Promise; -} -export interface ValidateAddress { - validateAddress(adr: string): Promise; -} -export interface EstimateTxFees { - estimateValidateTransferNft( - to: string, - metadata: NftInfo, - mintWith: string - ): Promise; - estimateContractDep?(toChain: any): Promise; - isNftWhitelisted?(nft: any): Promise; - estimateValidateUnfreezeNft( - to: string, - metadata: NftInfo, - mintWith: string - ): Promise; -} -export declare function ConcurrentSendError(): Error; -export interface PreTransferRawTxn { - preTransferRawTxn( - id: NftInfo, - address: string, - value?: BigNumber - ): Promise; -} -export interface ChainNonceGet { - getNonce(): ChainNonce; -} -export interface ExtractAction { - extractAction(txn: Txn): Promise; -} -export declare enum TransactionStatus { - PENDING = "pending", - SUCCESS = "success", - FAILURE = "failure", - UNKNOWN = "unknown", -} -export interface ExtractTxnStatus { - extractTxnStatus(txn: string): Promise; -} -export interface GetTokenURI { - getTokenURI(contract: string, tokenId: string): Promise; -} -export interface TransferNftForeignBatch { - transferNftBatchToForeign( - sender: Signer, - chain_nonce: number, - to: string, - id: NftInfo[], - mintWith: string, - txFees: BigNumber - ): Promise; -} -export interface UnfreezeForeignNftBatch { - unfreezeWrappedNftBatch( - sender: Signer, - chainNonce: number, - to: string, - nfts: NftInfo[], - txFees: BigNumber - ): Promise; -} -export interface EstimateTxFeesBatch { - estimateValidateTransferNftBatch( - to: string, - metadatas: NftInfo[], - mintWith: string[] - ): Promise; - estimateValidateUnfreezeNftBatch( - to: string, - metadatas: NftInfo[] - ): Promise; -} -export type WhitelistCheck = { - isNftWhitelisted(nft: NftInfo): Promise; -}; -export interface GetProvider { - getProvider(): Provider; -} -export declare function isWrappedNft(nft: NftInfo): Promise; -export interface IsContractAddress { - isContractAddress(address: string): Promise; -} -export interface ParamsGetter { - getParams(): T; -} -export interface FeeMargins { - min: number; - max: number; -} -export interface GetFeeMargins { - getFeeMargin(): FeeMargins; -} -export interface ClaimNFT { - claimNFT(signer: Signer, args: ClaimArgs): Promise; -} -//# sourceMappingURL=chain.d.ts.map diff --git a/dist/helpers/chain.d.ts.map b/dist/helpers/chain.d.ts.map deleted file mode 100644 index 78769c54b..000000000 --- a/dist/helpers/chain.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/helpers/chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/chain.js b/dist/helpers/chain.js deleted file mode 100644 index 261c63d06..000000000 --- a/dist/helpers/chain.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isWrappedNft = - exports.TransactionStatus = - exports.ConcurrentSendError = - void 0; -const axios_1 = __importDefault(require("axios")); -function ConcurrentSendError() { - return new Error("concurrent_send"); -} -exports.ConcurrentSendError = ConcurrentSendError; -var TransactionStatus; -(function (TransactionStatus) { - TransactionStatus["PENDING"] = "pending"; - TransactionStatus["SUCCESS"] = "success"; - TransactionStatus["FAILURE"] = "failure"; - TransactionStatus["UNKNOWN"] = "unknown"; -})( - (TransactionStatus = - exports.TransactionStatus || (exports.TransactionStatus = {})) -); -async function isWrappedNft(nft) { - return ( - typeof (await axios_1.default.get(nft.uri).catch(() => undefined))?.data - .wrapped !== "undefined" - ); -} -exports.isWrappedNft = isWrappedNft; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9jaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFrSDFCLFNBQWdCLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUZELGtEQUVDO0FBa0JELElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUMzQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFLNUI7QUFrRE0sS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFxQjtJQUN0RCxPQUFPLENBQ0wsT0FBTyxDQUFDLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDdEUsV0FBVyxDQUNaLENBQUM7QUFDSixDQUFDO0FBTEQsb0NBS0MifQ== diff --git a/dist/helpers/dfinity/dfinity.d.ts b/dist/helpers/dfinity/dfinity.d.ts deleted file mode 100644 index 701923752..000000000 --- a/dist/helpers/dfinity/dfinity.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { HttpAgent, Identity, SubmitResponse } from "@dfinity/agent"; -import { AccountIdentifier } from "@dfinity/nns"; -import { Principal } from "@dfinity/principal"; -import { EvNotifier } from "../../notifier"; -import { - BalanceCheck, - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - MintNft, - NftInfo, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from "../chain"; -export type DfinitySigner = Identity; -export type DfinityNft = { - canisterId: string; - tokenId: string; -}; -export type DfinityMintArgs = { - canisterId?: string; - uri: string; -}; -export type User = - | { - principal: Principal; - } - | { - address: AccountIdentifier; - }; -export interface MintRequest { - to: User; - metadata: [] | [Array]; -} -export type DfinityHelper = ChainNonceGet & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - XpNft: string; - } & Pick< - PreTransfer, - "preTransfer" - > & - BalanceCheck & - GetFeeMargins & - MintNft & { - nftList(owner: string, contract: string): Promise[]>; - }; -export type DfinityParams = { - agent: HttpAgent; - bridgeContract: Principal; - xpnftId: Principal; - notifier: EvNotifier; - feeMargin: FeeMargins; - umt: Principal; -}; -export declare function dfinityHelper( - args: DfinityParams -): Promise; -//# sourceMappingURL=dfinity.d.ts.map diff --git a/dist/helpers/dfinity/dfinity.d.ts.map b/dist/helpers/dfinity/dfinity.d.ts.map deleted file mode 100644 index efb495904..000000000 --- a/dist/helpers/dfinity/dfinity.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"dfinity.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/dfinity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACT,QAAQ,EACR,cAAc,EACf,MAAM,gBAAgB,CAAC;AAexB,OAAO,EAAE,iBAAiB,EAAuB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAyBF,MAAM,MAAM,IAAI,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAC7E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CAChC;AAcD,MAAM,MAAM,aAAa,GAAG,aAAa,GACvC,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,GACrD,cAAc,CAAC,UAAU,CAAC,GAC1B,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CACxC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EACzD,aAAa,CACd,GACD,YAAY,GACZ,aAAa,GACb,OAAO,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG;IACxD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;CAC1E,CAAC;AAEJ,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,GAAG,EAAE,SAAS,CAAC;CAChB,CAAC;AAEF,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,aAAa,CAAC,CA8NxB"} \ No newline at end of file diff --git a/dist/helpers/dfinity/dfinity.js b/dist/helpers/dfinity/dfinity.js deleted file mode 100644 index 9d27b04ac..000000000 --- a/dist/helpers/dfinity/dfinity.js +++ /dev/null @@ -1,256 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.dfinityHelper = void 0; -const agent_1 = require("@dfinity/agent"); -const candid_1 = require("@dfinity/candid"); -const idl_1 = require("@dfinity/candid/lib/cjs/idl"); -const nns_1 = require("@dfinity/nns"); -const principal_1 = require("@dfinity/principal"); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const consts_1 = require("../../consts"); -const idl_2 = require("./idl"); -const Metadata = candid_1.IDL.Variant({ - fungible: candid_1.IDL.Record({ - decimals: candid_1.IDL.Nat8, - metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), - name: candid_1.IDL.Text, - symbol: candid_1.IDL.Text, - }), - nonfungible: candid_1.IDL.Record({ - metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), - }), -}); -const CommonError = candid_1.IDL.Variant({ - InvalidToken: candid_1.IDL.Text, - Other: candid_1.IDL.Text, -}); -const Result_Bearer = candid_1.IDL.Variant({ - ok: candid_1.IDL.Text, - err: CommonError, -}); -const User = candid_1.IDL.Variant({ - principal: candid_1.IDL.Principal, - address: candid_1.IDL.Text, -}); -const MintRequest = candid_1.IDL.Record({ - to: User, - metadata: candid_1.IDL.Opt(candid_1.IDL.Vec(candid_1.IDL.Nat8)), -}); -const ApproveRequest = (0, idl_1.Record)({ - token: idl_1.Text, - subaccount: (0, idl_1.Opt)((0, idl_1.Vec)(idl_1.Nat8)), - allowance: idl_1.Nat, - spender: new idl_1.PrincipalClass(), -}); -async function dfinityHelper(args) { - const ledger = nns_1.LedgerCanister.create({ agent: args.agent }); - const minter = agent_1.Actor.createActor(idl_2.idlFactory, { - agent: args.agent, - canisterId: args.bridgeContract, - }); - async function transferTxFee(amt) { - return await ledger.transfer({ - to: nns_1.AccountIdentifier.fromPrincipal({ - principal: args.bridgeContract, - }), - amount: nns_1.ICP.fromE8s(BigInt(amt.toString())), - }); - } - const to32bits = (num) => { - let b = new ArrayBuffer(4); - new DataView(b).setUint32(0, num); - 1 << 5; - return Array.from(new Uint8Array(b)); - }; - const tokenIdentifier = (principal, index) => { - const padding = Buffer.from("\x0Atid"); - const array = new Uint8Array([ - ...padding, - ...principal_1.Principal.fromText(principal).toUint8Array(), - ...to32bits(index), - ]); - return principal_1.Principal.fromUint8Array(array).toText(); - }; - // async function waitActionId(requestId: RequestId) { - // const pollStrat = polling.defaultStrategy(); - // const resp = await polling.pollForResponse( - // args.agent, - // args.bridgeContract, - // requestId, - // pollStrat - // ); - // return decode([Nat], resp)[0].toString() as string; - // } - return { - XpNft: args.xpnftId.toString(), - getNonce: () => consts_1.Chain.DFINITY, - estimateValidateTransferNft: async () => new bignumber_js_1.default(0), - estimateValidateUnfreezeNft: async () => new bignumber_js_1.default(0), - async validateAddress(adr) { - try { - principal_1.Principal.fromText(adr); - return true; - } catch { - return false; - } - }, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { - args.agent.replaceIdentity(sender); - const txFeeBlock = await transferTxFee(txFees); - const actionId = await minter.freeze_nft( - txFeeBlock, - principal_1.Principal.fromText(id.native.canisterId), - BigInt(id.native.tokenId), - BigInt(chain_nonce), - to, - mintWith - ); - await args.notifier.notifyDfinity(actionId.toString()); - return "NO TX RESP YET"; - }, - async mintNft(owner, options) { - const canister = principal_1.Principal.fromText( - options.canisterId ? options.canisterId : args.umt.toText() - ); - let mint = await args.agent.call(canister, { - methodName: "mintNFT", - arg: (0, idl_1.encode)( - [MintRequest], - [ - { - metadata: [[...Buffer.from(options.uri)]], - to: { - principal: owner.getPrincipal(), - }, - }, - ] - ), - }); - return mint; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - args.agent.replaceIdentity(sender); - const txFeeBlock = await transferTxFee(txFees); - const actionId = await minter.withdraw_nft( - txFeeBlock, - principal_1.Principal.fromText(id.native.canisterId), - BigInt(id.native.tokenId), - BigInt(nonce), - to - ); - await args.notifier.notifyDfinity(actionId.toString()); - return "NO TX RESP YET"; - }, - /// owner = principal of owner - async nftList(owner, contract) { - let aid = nns_1.AccountIdentifier.fromPrincipal({ - principal: principal_1.Principal.fromText(owner), - }); - let tokens = []; - const response = await args.agent.query(contract, { - methodName: "getTokens", - arg: (0, idl_1.encode)([], []), - }); - if ("reply" in response) { - let decoded = (0, idl_1.decode)( - [candid_1.IDL.Vec(candid_1.IDL.Tuple(idl_1.Nat32, Metadata))], - response.reply.arg - )[0]; - await Promise.all( - decoded.map(async (e) => { - let [tokenId, metadata] = e; - let tid = tokenIdentifier(contract, tokenId); - const ownerQuery = await args.agent.query(contract, { - methodName: "bearer", - arg: (0, idl_1.encode)([idl_1.Text], [tid]), - }); - if ("reply" in ownerQuery) { - const response = (0, idl_1.decode)( - [Result_Bearer], - ownerQuery.reply.arg - )[0]; - if ("ok" in response) { - if (response.ok === aid.toHex()) { - tokens.push({ - collectionIdent: contract, - native: { - canisterId: contract, - tokenId: tokenId.toString(), - }, - uri: Buffer.from( - metadata["nonfungible"]["metadata"][0] ?? [] - ).toString("utf-8"), - }); - } - } - } - }) - ); - } - return tokens; - }, - async preTransfer(sender, nft) { - args.agent.replaceIdentity(sender); - const tid = tokenIdentifier( - nft.collectionIdent, - Number(nft.native.tokenId) - ); - const nftContract = principal_1.Principal.fromText(nft.native.canisterId); - const approvedQuery = await args.agent.query(nftContract, { - methodName: "getAllowances", - arg: (0, idl_1.encode)([idl_1.Text], [tid]), - }); - if ("reply" in approvedQuery) { - let decoded = (0, idl_1.decode)( - [ - (0, idl_1.Vec)( - (0, idl_1.Tuple)(idl_1.Nat32, new idl_1.PrincipalClass()) - ), - ], - approvedQuery.reply.arg - )[0]; - for (const item of decoded) { - if (item[0] === Number(nft.native.tokenId)) { - if (item[1].toText() === args.bridgeContract.toText()) { - return undefined; - } - } - } - } - const approveCall = await args.agent.call(nftContract, { - methodName: "approve", - arg: (0, idl_1.encode)( - [ApproveRequest], - [ - { - token: tid, - allowance: BigInt(1), - spender: args.bridgeContract, - subaccount: [], - }, - ] - ), - }); - return Buffer.from(approveCall.requestId).toString("hex"); - }, - getFeeMargin() { - return args.feeMargin; - }, - async balance(address) { - const bal = await ledger.accountBalance({ - accountIdentifier: nns_1.AccountIdentifier.fromPrincipal({ - principal: principal_1.Principal.fromText(address), - }), - }); - const e8s = bal.toE8s().toString(); - return new bignumber_js_1.default(e8s); - }, - }; -} -exports.dfinityHelper = dfinityHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZpbml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2RmaW5pdHkvZGZpbml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwQ0FNd0I7QUFDeEIsNENBQXNDO0FBQ3RDLHFEQVlxQztBQUNyQyxzQ0FBc0U7QUFDdEUsa0RBQStDO0FBQy9DLGdFQUFxQztBQUNyQyx5Q0FBcUM7QUFnQnJDLCtCQUFtQztBQWVuQyxNQUFNLFFBQVEsR0FBRyxZQUFHLENBQUMsT0FBTyxDQUFDO0lBQzNCLFFBQVEsRUFBRSxZQUFHLENBQUMsTUFBTSxDQUFDO1FBQ25CLFFBQVEsRUFBRSxZQUFHLENBQUMsSUFBSTtRQUNsQixRQUFRLEVBQUUsWUFBRyxDQUFDLEdBQUcsQ0FBQyxZQUFHLENBQUMsR0FBRyxDQUFDLFlBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLEVBQUUsWUFBRyxDQUFDLElBQUk7UUFDZCxNQUFNLEVBQUUsWUFBRyxDQUFDLElBQUk7S0FDakIsQ0FBQztJQUNGLFdBQVcsRUFBRSxZQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFlBQUcsQ0FBQyxHQUFHLENBQUMsWUFBRyxDQUFDLEdBQUcsQ0FBQyxZQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO0NBQ2xFLENBQUMsQ0FBQztBQUNILE1BQU0sV0FBVyxHQUFHLFlBQUcsQ0FBQyxPQUFPLENBQUM7SUFDOUIsWUFBWSxFQUFFLFlBQUcsQ0FBQyxJQUFJO0lBQ3RCLEtBQUssRUFBRSxZQUFHLENBQUMsSUFBSTtDQUNoQixDQUFDLENBQUM7QUFFSCxNQUFNLGFBQWEsR0FBRyxZQUFHLENBQUMsT0FBTyxDQUFDO0lBQ2hDLEVBQUUsRUFBRSxZQUFHLENBQUMsSUFBSTtJQUNaLEdBQUcsRUFBRSxXQUFXO0NBQ2pCLENBQUMsQ0FBQztBQUVILE1BQU0sSUFBSSxHQUFHLFlBQUcsQ0FBQyxPQUFPLENB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 diff --git a/dist/helpers/dfinity/idl.d.ts b/dist/helpers/dfinity/idl.d.ts deleted file mode 100644 index 102e4ebec..000000000 --- a/dist/helpers/dfinity/idl.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const idlFactory: ({ IDL }: { IDL: any }) => any; -//# sourceMappingURL=idl.d.ts.map diff --git a/dist/helpers/dfinity/idl.d.ts.map b/dist/helpers/dfinity/idl.d.ts.map deleted file mode 100644 index e4bd27e68..000000000 --- a/dist/helpers/dfinity/idl.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/dfinity/idl.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;SAAoB,GAAG;SAwK7C,CAAC"} \ No newline at end of file diff --git a/dist/helpers/dfinity/idl.js b/dist/helpers/dfinity/idl.js deleted file mode 100644 index 06bdb6607..000000000 --- a/dist/helpers/dfinity/idl.js +++ /dev/null @@ -1,174 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.idlFactory = void 0; -const idlFactory = ({ IDL }) => { - const ValidateWhitelistDip721 = IDL.Record({ - dip_contract: IDL.Principal, - }); - const ValidateCleanLogs = IDL.Record({ - from_action: IDL.Nat, - to_action: IDL.Nat, - }); - const ValidateTransferNft = IDL.Record({ - to: IDL.Principal, - mint_with: IDL.Principal, - token_url: IDL.Text, - }); - const ValidateTransferNftBatch = IDL.Record({ - to: IDL.Principal, - mint_with: IDL.Vec(IDL.Principal), - token_urls: IDL.Vec(IDL.Text), - }); - const ValidateUnfreezeNft = IDL.Record({ - to: IDL.Principal, - dip_contract: IDL.Principal, - token_id: IDL.Nat, - }); - const ValidateUnfreezeNftBatch = IDL.Record({ - to: IDL.Principal, - dip_contracts: IDL.Vec(IDL.Principal), - token_ids: IDL.Vec(IDL.Nat), - }); - const Config = IDL.Record({ - event_cnt: IDL.Nat, - chain_nonce: IDL.Nat64, - group_key: IDL.Vec(IDL.Nat8), - paused: IDL.Bool, - }); - const BridgeEventCtx = IDL.Record({ - to: IDL.Text, - action_id: IDL.Nat, - tx_fee: IDL.Nat64, - chain_nonce: IDL.Nat64, - }); - const UnfreezeNftBatch = IDL.Record({ - uris: IDL.Vec(IDL.Text), - token_ids: IDL.Vec(IDL.Nat), - burner: IDL.Principal, - }); - const UnfreezeNft = IDL.Record({ - uri: IDL.Text, - token_id: IDL.Nat, - burner: IDL.Principal, - }); - const TransferNft = IDL.Record({ - dip721_contract: IDL.Principal, - token_id: IDL.Nat, - mint_with: IDL.Text, - token_data: IDL.Text, - }); - const TransferNftBatch = IDL.Record({ - dip721_contract: IDL.Principal, - token_datas: IDL.Vec(IDL.Text), - mint_with: IDL.Text, - token_ids: IDL.Vec(IDL.Nat), - }); - const BridgeEvent = IDL.Variant({ - UnfreezeNftBatch: UnfreezeNftBatch, - UnfreezeNft: UnfreezeNft, - TransferNft: TransferNft, - TransferNftBatch: TransferNftBatch, - }); - const ValidateSetGroupKey = IDL.Record({ group_key: IDL.Vec(IDL.Nat8) }); - const ValidateSetPause = IDL.Record({ pause: IDL.Bool }); - const ValidateWithdrawFees = IDL.Record({ to: IDL.Principal }); - return IDL.Service({ - add_whitelist: IDL.Func( - [IDL.Nat, ValidateWhitelistDip721, IDL.Vec(IDL.Nat8)], - [], - [] - ), - clean_logs: IDL.Func( - [IDL.Nat, ValidateCleanLogs, IDL.Vec(IDL.Nat8)], - [], - [] - ), - encode_validate_transfer_nft: IDL.Func( - [IDL.Nat, ValidateTransferNft], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - encode_validate_transfer_nft_batch: IDL.Func( - [IDL.Nat, ValidateTransferNftBatch], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - encode_validate_unfreeze_nft: IDL.Func( - [IDL.Nat, ValidateUnfreezeNft], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - encode_validate_unfreeze_nft_batch: IDL.Func( - [IDL.Nat, ValidateUnfreezeNftBatch], - [IDL.Vec(IDL.Nat8)], - ["query"] - ), - freeze_nft: IDL.Func( - [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text, IDL.Text], - [IDL.Nat], - [] - ), - freeze_nft_batch: IDL.Func( - [ - IDL.Nat64, - IDL.Principal, - IDL.Vec(IDL.Nat), - IDL.Nat64, - IDL.Text, - IDL.Text, - ], - [IDL.Nat], - [] - ), - get_config: IDL.Func([], [Config], ["query"]), - get_event: IDL.Func( - [IDL.Nat], - [IDL.Opt(IDL.Tuple(BridgeEventCtx, BridgeEvent))], - ["query"] - ), - is_whitelisted: IDL.Func([IDL.Principal], [IDL.Bool], ["query"]), - set_group_key: IDL.Func( - [IDL.Nat, ValidateSetGroupKey, IDL.Vec(IDL.Nat8)], - [], - [] - ), - set_pause: IDL.Func([IDL.Nat, ValidateSetPause, IDL.Vec(IDL.Nat8)], [], []), - validate_transfer_nft: IDL.Func( - [IDL.Nat, ValidateTransferNft, IDL.Vec(IDL.Nat8)], - [IDL.Nat32], - [] - ), - validate_transfer_nft_batch: IDL.Func( - [IDL.Nat, ValidateTransferNftBatch, IDL.Vec(IDL.Nat8)], - [], - [] - ), - validate_unfreeze_nft: IDL.Func( - [IDL.Nat, ValidateUnfreezeNft, IDL.Vec(IDL.Nat8)], - [], - [] - ), - validate_unfreeze_nft_batch: IDL.Func( - [IDL.Nat, ValidateUnfreezeNftBatch, IDL.Vec(IDL.Nat8)], - [], - [] - ), - withdraw_fees: IDL.Func( - [IDL.Nat, ValidateWithdrawFees, IDL.Vec(IDL.Nat8)], - [IDL.Nat64], - [] - ), - withdraw_nft: IDL.Func( - [IDL.Nat64, IDL.Principal, IDL.Nat, IDL.Nat64, IDL.Text], - [IDL.Nat], - [] - ), - withdraw_nft_batch: IDL.Func( - [IDL.Nat64, IDL.Principal, IDL.Vec(IDL.Nat), IDL.Nat64, IDL.Text], - [IDL.Nat], - [] - ), - }); -}; -exports.idlFactory = idlFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvZGZpbml0eS9pZGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQU8sTUFBTSxVQUFVLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBZ0IsRUFBRSxFQUFFO0lBQ2xELE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUN6QyxZQUFZLEVBQUUsR0FBRyxDQUFDLFNBQVM7S0FDNUIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ25DLFdBQVcsRUFBRSxHQUFHLENBQUMsR0FBRztRQUNwQixTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUc7S0FDbkIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3JDLEVBQUUsRUFBRSxHQUFHLENBQUMsU0FBUztRQUNqQixTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDeEIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJO0tBQ3BCLENBQUMsQ0FBQztJQUNILE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUMxQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDakIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0tBQzlCLENBQUMsQ0FBQztJQUNILE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNyQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFNBQVM7UUFDakIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQzNCLFFBQVEsRUFBRSxHQUFHLENBQUMsR0FBRztLQUNsQixDQUFDLENBQUM7SUFDSCxNQUFNLHdCQUF3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 diff --git a/dist/helpers/elrond.d.ts b/dist/helpers/elrond.d.ts deleted file mode 100644 index 57f9ae847..000000000 --- a/dist/helpers/elrond.d.ts +++ /dev/null @@ -1,190 +0,0 @@ -/** - * Elrond Implementation for cross chain traits - * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp - * Note that Unsigned Transactions need to be manually handled after they have been added to the block - * @module - */ -import { - Address, - ExtensionProvider, - ISigner, - Transaction, - WalletConnectProvider, -} from "@elrondnetwork/erdjs"; -import BigNumber from "bignumber.js"; -import { - BalanceCheck, - MintNft, - TransferNftForeign, - UnfreezeForeignNft, - TransferNftForeignBatch, - UnfreezeForeignNftBatch, - EstimateTxFeesBatch, - GetFeeMargins, - FeeMargins, - IsContractAddress, - GetTokenURI, -} from "./chain"; -import { - ChainNonceGet, - EstimateTxFees, - ExtractAction, - ExtractTxnStatus, - PreTransfer, - PreTransferRawTxn, - ValidateAddress, -} from ".."; -import { EvNotifier } from "../notifier"; -type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; -/** - * Information associated with an ESDT Token - */ -export type EsdtTokenInfo = { - readonly balance: 1 | string; - readonly tokenIdentifier: string; -}; -type BEsdtNftInfo = { - readonly attributes?: string[]; - readonly creator: string; - readonly name: string; - readonly nonce: number; - readonly royalties: string; - readonly uris: string[]; -}; -/** - * Information associated with an ESDT NFT - */ -export type EsdtNftInfo = EsdtTokenInfo & BEsdtNftInfo; -/** - * arguments required to issue an NFT - */ -export type NftIssueArgs = { - readonly identifier: string; - readonly uris: Array; - readonly name: string; - readonly quantity?: number; - readonly royalties?: number; - readonly hash?: string; - readonly attrs?: string; -}; -/** - * Utility for issuing ESDT which supports NFT minting - */ -export interface IssueESDTNFT { - /** - * Issue a new ESDT supporting NFTs - * - * @param sender Owner of this ESDT - * @param name Name of the ESDT - * @param ticker Ticker of the ESDT - * @param canFreeze Wheteher this ESDT can be frozen - * @param canWipe Whether this ESDT can be wiped - * @param canTransferNFTCreateRole Whether the NFT Creation role can be transferred - * - * @returns ticker of the esdt - */ - issueESDTNft( - sender: ElrondSigner, - name: string, - ticker: string, - canFreeze: boolean | undefined, - canWipe: boolean | undefined, - canTransferNFTCreateRole: boolean | undefined - ): Promise; -} -/** - * Possible roles for an ESDT - * - * ESDTRoleNFTCreate: Allow creating NFTs - * ESDTRoleNFTBurn: Allow burning NFTs - * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) - */ -export type ESDTRole = - | "ESDTRoleNFTCreate" - | "ESDTRoleNFTBurn" - | "ESDTRoleNFTAddQuantity"; -/** - * Utility for setting ESDT roles - */ -export interface SetESDTRoles { - /** - * - * Set the roles for a given account for an esdt - * - * @param sender Target account - * @param token ESDT Identifier - * @param roles Roles to set - */ - setESDTRole( - sender: ElrondSigner, - token: string, - target: Address, - roles: ESDTRole[] - ): Promise; - transferESDTOwnership( - sender: ElrondSigner, - token: string, - target: Address - ): Promise; -} -export interface ElrondRawUnsignedTxn { - readonly nonce: number; - readonly value: string; - readonly receiver: string; - readonly sender: string; - readonly gasPrice: number; - readonly gasLimit: number; - readonly data?: string; - readonly chainID: string; - readonly version: number; - readonly options?: number; - readonly signature?: string; -} -/** - * Traits implemented by this module - */ -export type ElrondHelper = BalanceCheck & - TransferNftForeign & - UnfreezeForeignNft & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - IssueESDTNFT & - MintNft & { - mintableEsdts(address: Address): Promise; - } & ChainNonceGet & - ValidateAddress & - ExtractAction & - PreTransfer & - EstimateTxFees & - EstimateTxFeesBatch & - PreTransferRawTxn & - ExtractTxnStatus & - SetESDTRoles & { - XpNft: string; - } & GetFeeMargins & { - wegldBalance(address: string): Promise; - unwrapWegld(sender: ElrondSigner, amt: BigNumber): Promise; - } & IsContractAddress & - GetTokenURI; -/** - * Create an object implementing cross chain utilities for elrond - * - * @param node_uri URI of the elrond node - * @param minter_address Address of the minter smart contract - * @param middleware_uri REST API of elrond-event-middleware - * @param esdt_nft Identifier of the ESDT NFT Wrapper - */ -export interface ElrondParams { - node_uri: string; - notifier: EvNotifier; - minter_address: string; - esdt_swap_address: string; - esdt_nft: string; - esdt_swap: string; - feeMargin: FeeMargins; -} -export declare function elrondHelperFactory( - elrondParams: ElrondParams -): Promise; -export {}; -//# sourceMappingURL=elrond.d.ts.map diff --git a/dist/helpers/elrond.d.ts.map b/dist/helpers/elrond.d.ts.map deleted file mode 100644 index c9093644b..000000000 --- a/dist/helpers/elrond.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"elrond.d.ts","sourceRoot":"","sources":["../../src/helpers/elrond.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/elrond.js b/dist/helpers/elrond.js deleted file mode 100644 index 206e7ed20..000000000 --- a/dist/helpers/elrond.js +++ /dev/null @@ -1,647 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.elrondHelperFactory = void 0; -/** - * Elrond Implementation for cross chain traits - * Unsigned Transaction methods should be used for usage with @elrondnetwork/dapp - * Note that Unsigned Transactions need to be manually handled after they have been added to the block - * @module - */ -const erdjs_1 = require("@elrondnetwork/erdjs"); -const axios_1 = __importDefault(require("axios")); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const chain_1 = require("./chain"); -const __1 = require(".."); -const js_base64_1 = require("js-base64"); -const ESDT_ISSUE_ADDR = new erdjs_1.Address( - "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" -); -const ESDT_ISSUE_COST = "50000000000000000"; -const NFT_TRANSFER_COST = new bignumber_js_1.default(350000000); -const NFT_UNFREEZE_COST = new bignumber_js_1.default(350000000); -async function elrondHelperFactory(elrondParams) { - const provider = new erdjs_1.ProxyProvider(elrondParams.node_uri); - await erdjs_1.NetworkConfig.getDefault().sync(provider); - const mintContract = new erdjs_1.Address(elrondParams.minter_address); - const swapContract = new erdjs_1.Address(elrondParams.esdt_swap_address); - const providerRest = axios_1.default.create({ - baseURL: elrondParams.node_uri, - }); - const esdtNftHex = Buffer.from(elrondParams.esdt_nft, "utf-8"); - const esdtSwaphex = Buffer.from(elrondParams.esdt_swap, "utf-8"); - const networkConfig = await provider.getNetworkConfig(); - const gasPriceModif = - networkConfig.MinGasPrice.valueOf() * - networkConfig.GasPriceModifier.valueOf(); - async function notifyValidator(txn, sender, uri, action_id) { - await elrondParams.notifier.notifyElrond( - txn.getHash().toString(), - sender, - uri, - action_id - ); - } - const syncAccount = async (signer) => { - const account = new erdjs_1.Account(await getAddress(signer)); - await account.sync(provider); - return account; - }; - const signAndSend = async (signer, tx) => { - const acc = await syncAccount(signer); - tx.setNonce(acc.nonce); - let stx; - if (signer instanceof erdjs_1.WalletConnectProvider) { - const txs = await signer.signTransactions([tx]); - stx = txs[0]; - } else if (signer instanceof erdjs_1.ExtensionProvider) { - stx = await signer.signTransaction(tx); - } else if (signer instanceof erdjs_1.UserSigner) { - await signer.sign(tx); - stx = tx; - } else { - //@ts-ignore - stx = await signer.signTransaction(tx); - } - try { - await stx.send(provider); - } catch (e) { - if (e.message.includes("lowerNonceInTx")) { - throw (0, chain_1.ConcurrentSendError)(); - } else { - throw e; - } - } - return stx; - }; - const transactionResult = async (tx_hash) => { - const uri = `/transaction/${tx_hash.toString()}?withResults=true`; - let tries = 0; - while (tries < 10) { - tries += 1; - let err; - // TODO: type safety - const res = await providerRest.get(uri).catch((e) => (err = e)); - if (err) { - await new Promise((r) => setTimeout(r, 3000)); - continue; - } - const data = res.data; - if (data["code"] != "successful") { - throw Error("failed to execute txn"); - } - const tx_info = data["data"]["transaction"]; - if (tx_info["status"] == "pending") { - await new Promise((r) => setTimeout(r, 5000)); - continue; - } - if (tx_info["status"] != "success") { - throw Error("failed to execute txn"); - } - return tx_info; - } - throw Error(`failed to query transaction exceeded 10 retries ${tx_hash}`); - }; - const doEgldSwap = async (sender, nft, value) => { - const esdts = await listEsdt((await sender.getAddress()).toString()); - const res = esdts[nft.native.nonce]; - if ( - res === undefined || - new bignumber_js_1.default(res.balance).lt(value) - ) { - const utx = new erdjs_1.Transaction({ - receiver: swapContract, - gasLimit: new erdjs_1.GasLimit(300000000), - value: new erdjs_1.Balance( - erdjs_1.Egld.getToken(), - erdjs_1.Egld.getNonce(), - new bignumber_js_1.default(value.toString()) - ), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("wrapEgld")) - .build(), - }); - const tx = await signAndSend(sender, utx); - await transactionResult(tx.getHash()); - return tx.getHash().toString(); - } - return undefined; - }; - const unsignedMintNftTxn = ( - owner, - { identifier, quantity, name, royalties, hash, attrs, uris } - ) => { - let baseArgs = erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("ESDTNFTCreate")) - .addArg( - new erdjs_1.TokenIdentifierValue(Buffer.from(identifier, "utf-8")) - ) - .addArg( - new erdjs_1.BigUIntValue(new bignumber_js_1.default(quantity ?? 1)) - ) - .addArg(new erdjs_1.BytesValue(Buffer.from(name, "utf-8"))) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(royalties ?? 0))) - .addArg( - new erdjs_1.BytesValue( - hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0) - ) - ) - .addArg( - new erdjs_1.BytesValue( - attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0) - ) - ); - for (const uri of uris) { - baseArgs = baseArgs.addArg( - new erdjs_1.BytesValue(Buffer.from(uri, "utf-8")) - ); - } - return new erdjs_1.Transaction({ - receiver: owner, - gasLimit: new erdjs_1.GasLimit(70000000), - data: baseArgs.build(), - }); - }; - function tokenIdentReal(tokenIdentifier) { - const base = tokenIdentifier.split("-"); - base.pop(); - return base.join("-"); - } - const unsignedTransferNftTxn = ( - chain_nonce, - address, - to, - { tokenIdentifier, nonce }, - tx_fees, - mintWith - ) => { - return new erdjs_1.Transaction({ - receiver: address, - gasLimit: new erdjs_1.GasLimit(300000000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) - .addArg(new erdjs_1.AddressValue(mintContract)) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(2))) - .addArg( - new erdjs_1.TokenIdentifierValue( - Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") - ) - ) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(nonce))) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(1))) - .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(0x0))) - .addArg(new erdjs_1.BigUIntValue(tx_fees)) - .addArg(new erdjs_1.BytesValue(Buffer.from("freezeSendNft", "ascii"))) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) - .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) - .addArg(new erdjs_1.BytesValue(Buffer.from(mintWith, "ascii"))) - .build(), - }); - }; - const unsignedUnfreezeNftTxn = ( - address, - to, - { tokenIdentifier, nonce }, - tx_fees, - chain_nonce - ) => { - return new erdjs_1.Transaction({ - receiver: address, - gasLimit: new erdjs_1.GasLimit(300000000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) - .addArg(new erdjs_1.AddressValue(mintContract)) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(2))) - .addArg( - new erdjs_1.TokenIdentifierValue( - Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") - ) - ) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(nonce))) - .addArg(new erdjs_1.BigUIntValue(new bignumber_js_1.default(1))) - .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(0x0))) - .addArg(new erdjs_1.BigUIntValue(tx_fees)) - .addArg(new erdjs_1.BytesValue(Buffer.from("withdrawNft", "ascii"))) - .addArg(new erdjs_1.U64Value(new bignumber_js_1.default(chain_nonce))) - .addArg(new erdjs_1.BytesValue(Buffer.from(to, "ascii"))) - .build(), - }); - }; - const listEsdt = async (owner) => { - const raw = await providerRest(`/address/${owner}/esdt`); - const dat = raw.data.data.esdts; - return dat; - }; - const unsignedIssueESDTNft = ( - name, - ticker, - canFreeze, - canWipe, - canTransferNFTCreateRole - ) => { - let baseArgs = erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("issueNonFungible")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(name, "utf-8"))) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); - if (canFreeze !== undefined) { - baseArgs = baseArgs - .addArg(new erdjs_1.BytesValue(Buffer.from("canFreeze", "ascii"))) - .addArg( - new erdjs_1.BytesValue( - Buffer.from(canFreeze ? "true" : "false", "ascii") - ) - ); - } - if (canWipe !== undefined) { - baseArgs = baseArgs - .addArg(new erdjs_1.BytesValue(Buffer.from("canWipe", "ascii"))) - .addArg( - new erdjs_1.BytesValue( - Buffer.from(canWipe ? "true" : "false", "ascii") - ) - ); - } - if (canTransferNFTCreateRole !== undefined) { - baseArgs = baseArgs - .addArg(new erdjs_1.BytesValue(Buffer.from("canChangeOwner", "ascii"))) - .addArg( - new erdjs_1.BytesValue( - Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") - ) - ); - } - return new erdjs_1.Transaction({ - receiver: ESDT_ISSUE_ADDR, - value: new erdjs_1.Balance( - erdjs_1.Egld.getToken(), - erdjs_1.Egld.getNonce(), - new bignumber_js_1.default(ESDT_ISSUE_COST.toString()) - ), - gasLimit: new erdjs_1.GasLimit(60000000), - data: baseArgs.build(), - }); - }; - const unsignedSetESDTRoles = (token, target, roles) => { - let baseArgs = erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("setSpecialRole")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token))) - .addArg(new erdjs_1.AddressValue(target)); - for (const role of roles) { - baseArgs = baseArgs.addArg( - new erdjs_1.BytesValue(Buffer.from(role, "utf-8")) - ); - } - return new erdjs_1.Transaction({ - receiver: ESDT_ISSUE_ADDR, - gasLimit: new erdjs_1.GasLimit(70000000), - data: baseArgs.build(), - }); - }; - async function extractAction(tx) { - let err; - await tx.awaitExecuted(provider).catch((e) => (err = e)); - if (err) { - await new Promise((r) => setTimeout(r, 3000)); - return await extractAction(tx); - } - const txr = await transactionResult(tx.getHash()); - const id = filterEventId(txr["smartContractResults"]); - return id.toString(); - } - function estimateGas(base_fees) { - return base_fees.multipliedBy(gasPriceModif); // assume execution takes about twice as much gas fees - } - async function getAddress(sender) { - return new erdjs_1.Address(await sender.getAddress()); - } - return { - XpNft: elrondParams.esdt_nft, - async balance(address) { - const wallet = new erdjs_1.Account(new erdjs_1.Address(address)); - await wallet.sync(provider); - return wallet.balance.valueOf(); - }, - async isContractAddress(address) { - return erdjs_1.Address.fromString(address).isContractAddress(); - }, - getFeeMargin() { - return elrondParams.feeMargin; - }, - async extractTxnStatus(txn) { - const status = await provider.getTransactionStatus( - new erdjs_1.TransactionHash(txn) - ); - if (status.isPending()) { - return chain_1.TransactionStatus.PENDING; - } - if (status.isSuccessful()) { - return chain_1.TransactionStatus.SUCCESS; - } - if (status.isFailed()) { - return chain_1.TransactionStatus.FAILURE; - } - return chain_1.TransactionStatus.UNKNOWN; - }, - preTransfer: doEgldSwap, - preUnfreeze: doEgldSwap, - extractAction, - async transferNftToForeign( - sender, - chain_nonce, - to, - info, - txFees, - mintWith - ) { - const txu = unsignedTransferNftTxn( - chain_nonce, - await getAddress(sender), - to, - info.native, - new bignumber_js_1.default(txFees.toString()), - mintWith - ); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - [info.uri], - undefined - // await extractAction(tx) - ); - return tx; - }, - async unfreezeWrappedNft(sender, to, nft, txFees, nonce) { - console.log(`Unfreezing`); - const txu = unsignedUnfreezeNftTxn( - await getAddress(sender), - to, - nft.native, - new bignumber_js_1.default(txFees.toString()), - nonce - ); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - [nft.uri], - undefined - // await extractAction(tx) - ); - return tx; - }, - async issueESDTNft( - sender, - name, - ticker, - canFreeze = false, - canWipe = false, - canTransferNFTCreateRole = false - ) { - const txu = unsignedIssueESDTNft( - name, - ticker, - canFreeze, - canWipe, - canTransferNFTCreateRole - ); - const tx = await signAndSend(sender, txu); - const res = await transactionResult(tx.getHash()); - const tickerh = res["smartContractResults"][0].data.split("@")[2]; - return Buffer.from(tickerh, "hex").toString("utf-8"); - }, - async mintNft(owner, args) { - const txu = unsignedMintNftTxn(await getAddress(owner), args); - const tx = await signAndSend(owner, txu); - return tx.getHash().toString(); - }, - async mintableEsdts(address) { - const res = await providerRest.get( - `/address/${address.toString()}/esdts-with-role/ESDTRoleNFTCreate` - ); - return res.data["data"]["tokens"]; - }, - async preTransferRawTxn(id, address, value) { - if (!address || !value) { - throw new Error("address and value is required for elrond egld swap"); - } - const esdts = await listEsdt(address); - const res = esdts[id.native.nonce]; - if ( - res === undefined || - new bignumber_js_1.default(res.balance).lt(value) - ) { - const utx = new erdjs_1.Transaction({ - receiver: swapContract, - gasLimit: new erdjs_1.GasLimit(50000000), - value: new erdjs_1.Balance( - erdjs_1.Egld.getToken(), - erdjs_1.Egld.getNonce(), - new bignumber_js_1.default(value.toString()) - ), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("wrapEgld")) - .build(), - }); - return utx.toPlainObject(); - } - return undefined; - }, - async setESDTRole(manager, token, target, roles) { - const txu = unsignedSetESDTRoles(token, target, roles); - const tx = await signAndSend(manager, txu); - await transactionResult(tx.getHash()); - return tx; - }, - async transferESDTOwnership(sender, token, target) { - const txu = new erdjs_1.Transaction({ - receiver: new erdjs_1.Address( - "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" - ), - gasLimit: new erdjs_1.GasLimit(60000000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("transferOwnership")) - .addArg(new erdjs_1.TokenIdentifierValue(Buffer.from(token, "utf-8"))) - .addArg(new erdjs_1.AddressValue(target)) - .build(), - }); - return await signAndSend(sender, txu); - }, - getNonce() { - return __1.Chain.ELROND; - }, - async estimateValidateTransferNft(_toAddress, _nftUri) { - return estimateGas(NFT_TRANSFER_COST); // TODO: properly estimate NFT_TRANSFER_COST - }, - async estimateValidateUnfreezeNft(_to, _nftUri) { - return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST - }, - async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { - const txu = new erdjs_1.Transaction({ - receiver: await getAddress(sender), - gasLimit: new erdjs_1.GasLimit(40000000 + 5000000 * nfts.length), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) - .setArgs([ - new erdjs_1.AddressValue(mintContract), - new erdjs_1.BigUIntValue( - new bignumber_js_1.default(nfts.length + 1) - ), - ...nfts.flatMap((nft) => [ - new erdjs_1.TokenIdentifierValue(esdtNftHex), - new erdjs_1.U64Value( - new bignumber_js_1.default(nft.native.nonce) - ), - new erdjs_1.BigUIntValue(new bignumber_js_1.default(1)), - ]), - new erdjs_1.TokenIdentifierValue(esdtSwaphex), - new erdjs_1.U64Value(new bignumber_js_1.default(0x0)), - new erdjs_1.BigUIntValue(txFees), - new erdjs_1.BytesValue(Buffer.from("withdrawBatchNft", "ascii")), - new erdjs_1.U64Value(new bignumber_js_1.default(chainNonce)), - new erdjs_1.BytesValue(Buffer.from(to, "ascii")), - ]) - .build(), - }); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - nfts.map((n) => n.uri), - undefined - // await extractAction(tx) - ); - return tx; - }, - async transferNftBatchToForeign( - sender, - chainNonce, - to, - nfts, - mintWith, - txFees - ) { - const txu = new erdjs_1.Transaction({ - receiver: await getAddress(sender), - gasLimit: new erdjs_1.GasLimit(50000000 + 5000000 * nfts.length), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("MultiESDTNFTTransfer")) - .setArgs([ - new erdjs_1.AddressValue(mintContract), - new erdjs_1.BigUIntValue( - new bignumber_js_1.default(nfts.length + 1) - ), - ...nfts.flatMap((nft) => [ - new erdjs_1.TokenIdentifierValue( - Buffer.from(tokenIdentReal(nft.native.tokenIdentifier), "utf-8") - ), - new erdjs_1.U64Value( - new bignumber_js_1.default(nft.native.nonce) - ), - new erdjs_1.BigUIntValue(new bignumber_js_1.default(1)), - ]), - new erdjs_1.TokenIdentifierValue(esdtSwaphex), - new erdjs_1.U64Value(new bignumber_js_1.default(0x0)), - new erdjs_1.BigUIntValue(txFees), - new erdjs_1.BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), - new erdjs_1.U64Value(new bignumber_js_1.default(chainNonce)), - new erdjs_1.BytesValue(Buffer.from(to, "ascii")), - new erdjs_1.BytesValue(Buffer.from(mintWith, "ascii")), - ]) - .build(), - }); - const tx = await signAndSend(sender, txu); - await notifyValidator( - tx, - sender.getAddress().toString(), - nfts.map((n) => n.uri), - undefined - // await extractAction(tx) - ); - return tx; - }, - async wegldBalance(addr) { - const esdtInfo = await provider.getAddressEsdt( - new erdjs_1.Address(addr), - elrondParams.esdt_swap - ); - return new bignumber_js_1.default(esdtInfo.balance); - }, - async unwrapWegld(sender, amount) { - const txu = new erdjs_1.Transaction({ - receiver: swapContract, - gasLimit: new erdjs_1.GasLimit(300500000), - data: erdjs_1.TransactionPayload.contractCall() - .setFunction(new erdjs_1.ContractFunction("ESDTTransfer")) - .addArg(new erdjs_1.TokenIdentifierValue(esdtSwaphex)) - .addArg(new erdjs_1.U64Value(amount)) - .addArg(new erdjs_1.BytesValue(Buffer.from("unwrapEgld"))) - .build(), - }); - const tx = await signAndSend(sender, txu); - return tx.getHash().toString(); - }, - async estimateValidateTransferNftBatch(_, nfts) { - return estimateGas( - new bignumber_js_1.default(360000000 + 5000000 * nfts.length) - ); - }, - async estimateValidateUnfreezeNftBatch(_, nfts) { - return estimateGas( - new bignumber_js_1.default(340000000 + 5000000 * nfts.length) - ); - }, - async validateAddress(adr) { - try { - new erdjs_1.Address(adr); - return await providerRest - .get(`/address/${adr}/esdt`) - .then((_) => true) - .catch((_) => false); - } catch (_) { - return false; - } - }, - async getTokenURI(_, tokenId) { - if (tokenId) { - const url = `https://api.elrond.com/nfts/${tokenId}`; - const res = await (0, axios_1.default)(url).catch(() => ({ - data: null, - })); - if (res.data?.metadata) { - return url; - } - const uri = res.data?.uris[1] || res.data?.uris[0]; - if (uri) { - return js_base64_1.Base64.decode(uri); - } - } - return ""; - }, - }; -} -exports.elrondHelperFactory = elrondHelperFactory; -function filterEventId(results) { - for (const res of results) { - if (res["nonce"] === 0) { - continue; - } - const data = res.data.split("@"); - if (data[0] != "" || data[1] != "6f6b" || data.length != 3) { - continue; - } - try { - return parseInt(data[2], 16); - } catch (NumberFormatException) { - continue; - } - } - throw Error(`invalid result: ${results.toString()}`); -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxyb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvZWxyb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7OztHQUtHO0FBQ0gsZ0RBcUI4QjtBQUM5QixrREFBMEI7QUFDMUIsZ0VBQXFDO0FBQ3JDLG1DQWNpQjtBQUNqQiwwQkFVWTtBQUVaLHlDQUFtQztBQU1uQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQU8sQ0FDakMsZ0VBQWdFLENBQ2pFLENBQUM7QUFDRixNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQUU1QyxNQUFNLGlCQUFpQixHQUFHLElBQUksc0JBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuRCxNQUFNLGlCQUFpQixHQUFHLElBQUksc0JBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQW1LNUMsS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxZQUEwQjtJQUUxQixNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFELE1BQU0scUJBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELE1BQU0sWUFBWSxHQUFHLElBQUksZUFBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxFQUFFLFlBQVksQ0FBQyxRQUFRO0tBQy9CLENBQUMsQ0FBQztJQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FB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 diff --git a/dist/helpers/hedera/hts_abi.d.ts b/dist/helpers/hedera/hts_abi.d.ts deleted file mode 100644 index 72abfd16e..000000000 --- a/dist/helpers/hedera/hts_abi.d.ts +++ /dev/null @@ -1,238 +0,0 @@ -export declare const HEDERA_TOKEN_SERVICE_ABI: ( - | { - inputs: ( - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: { - internalType: string; - name: string; - type: string; - }[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - )[]; - name: string; - outputs: { - internalType: string; - name: string; - type: string; - }[]; - stateMutability: string; - type: string; - } - | { - inputs: { - internalType: string; - name: string; - type: string; - }[]; - name: string; - outputs: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: ( - | { - components: ( - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: { - internalType: string; - name: string; - type: string; - }[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - )[]; - internalType: string; - name: string; - type: string; - } - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - )[]; - internalType: string; - name: string; - type: string; - } - )[]; - stateMutability: string; - type: string; - } -)[]; -export declare const HEDERA_PROXY_ABI: ( - | { - anonymous: boolean; - inputs: { - indexed: boolean; - internalType: string; - name: string; - type: string; - }[]; - name: string; - type: string; - outputs?: undefined; - stateMutability?: undefined; - } - | { - inputs: { - internalType: string; - name: string; - type: string; - }[]; - name: string; - outputs: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: { - internalType: string; - name: string; - type: string; - }[]; - internalType: string; - name: string; - type: string; - } - )[]; - stateMutability: string; - type: string; - anonymous?: undefined; - } - | { - inputs: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: ( - | { - internalType: string; - name: string; - type: string; - components?: undefined; - } - | { - components: { - internalType: string; - name: string; - type: string; - }[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - )[]; - internalType: string; - name: string; - type: string; - } - )[]; - name: string; - outputs: { - internalType: string; - name: string; - type: string; - }[]; - stateMutability: string; - type: string; - anonymous?: undefined; - } -)[]; -export declare const HEDERA_PROXY_BC = - "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; -//# sourceMappingURL=hts_abi.d.ts.map diff --git a/dist/helpers/hedera/hts_abi.d.ts.map b/dist/helpers/hedera/hts_abi.d.ts.map deleted file mode 100644 index 5855fc55e..000000000 --- a/dist/helpers/hedera/hts_abi.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"hts_abi.d.ts","sourceRoot":"","sources":["../../../src/helpers/hedera/hts_abi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAk4FpC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsmB5B,CAAC;AACF,eAAO,MAAM,eAAe,mzgDACsxgD,CAAC"} \ No newline at end of file diff --git a/dist/helpers/hedera/hts_abi.js b/dist/helpers/hedera/hts_abi.js deleted file mode 100644 index c9dfa788c..000000000 --- a/dist/helpers/hedera/hts_abi.js +++ /dev/null @@ -1,3571 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.HEDERA_PROXY_BC = - exports.HEDERA_PROXY_ABI = - exports.HEDERA_TOKEN_SERVICE_ABI = - void 0; -exports.HEDERA_TOKEN_SERVICE_ABI = [ - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "approved", - type: "address", - }, - { - internalType: "uint256", - name: "serialNumber", - type: "uint256", - }, - ], - name: "approveNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "associateToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address[]", - name: "tokens", - type: "address[]", - }, - ], - name: "associateTokens", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint64", - name: "amount", - type: "uint64", - }, - { - internalType: "int64[]", - name: "serialNumbers", - type: "int64[]", - }, - ], - name: "burnToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "uint64", - name: "newTotalSupply", - type: "uint64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - { - internalType: "uint64", - name: "initialTotalSupply", - type: "uint64", - }, - { - internalType: "uint32", - name: "decimals", - type: "uint32", - }, - ], - name: "createFungibleToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - { - internalType: "uint64", - name: "initialTotalSupply", - type: "uint64", - }, - { - internalType: "uint32", - name: "decimals", - type: "uint32", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - ], - name: "createFungibleTokenWithCustomFees", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - ], - name: "createNonFungibleToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "token", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - ], - name: "createNonFungibleTokenWithCustomFees", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "tokenAddress", - type: "address", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "address", - name: "accountID", - type: "address", - }, - { - internalType: "int64", - name: "amount", - type: "int64", - }, - ], - internalType: "struct IHederaTokenService.AccountAmount[]", - name: "transfers", - type: "tuple[]", - }, - { - components: [ - { - internalType: "address", - name: "senderAccountID", - type: "address", - }, - { - internalType: "address", - name: "receiverAccountID", - type: "address", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - ], - internalType: "struct IHederaTokenService.NftTransfer[]", - name: "nftTransfers", - type: "tuple[]", - }, - ], - internalType: "struct IHederaTokenService.TokenTransferList[]", - name: "tokenTransfers", - type: "tuple[]", - }, - ], - name: "cryptoTransfer", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "deleteToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "dissociateToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "address[]", - name: "tokens", - type: "address[]", - }, - ], - name: "dissociateTokens", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "freezeToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "serialNumber", - type: "uint256", - }, - ], - name: "getApproved", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "address", - name: "approved", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getFungibleTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - components: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "hedera", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - { - internalType: "bool", - name: "deleted", - type: "bool", - }, - { - internalType: "string", - name: "ledgerId", - type: "string", - }, - { - internalType: "bool", - name: "pauseStatus", - type: "bool", - }, - { - internalType: "uint64", - name: "totalSupply", - type: "uint64", - }, - ], - internalType: "struct IHederaTokenService.TokenInfo", - name: "tokenInfo", - type: "tuple", - }, - { - internalType: "uint32", - name: "decimals", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.FungibleTokenInfo", - name: "fungibleTokenInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - ], - name: "getNonFungibleTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - components: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "hedera", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - { - internalType: "bool", - name: "deleted", - type: "bool", - }, - { - internalType: "string", - name: "ledgerId", - type: "string", - }, - { - internalType: "bool", - name: "pauseStatus", - type: "bool", - }, - { - internalType: "uint64", - name: "totalSupply", - type: "uint64", - }, - ], - internalType: "struct IHederaTokenService.TokenInfo", - name: "tokenInfo", - type: "tuple", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - { - internalType: "address", - name: "ownerId", - type: "address", - }, - { - internalType: "int64", - name: "creationTime", - type: "int64", - }, - { - internalType: "bytes", - name: "metadata", - type: "bytes", - }, - { - internalType: "address", - name: "spenderId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.NonFungibleTokenInfo", - name: "nonFungibleTokenInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenCustomFees", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenDefaultFreezeStatus", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "defaultFreezeStatus", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenDefaultKycStatus", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenExpiryInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "hedera", - type: "tuple", - }, - { - components: [ - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "bool", - name: "useCurrentTokenForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FixedFee[]", - name: "fixedFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "minimumAmount", - type: "uint32", - }, - { - internalType: "uint32", - name: "maximumAmount", - type: "uint32", - }, - { - internalType: "bool", - name: "netOfTransfers", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.FractionalFee[]", - name: "fractionalFees", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "numerator", - type: "uint32", - }, - { - internalType: "uint32", - name: "denominator", - type: "uint32", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - { - internalType: "address", - name: "tokenId", - type: "address", - }, - { - internalType: "bool", - name: "useHbarsForPayment", - type: "bool", - }, - { - internalType: "address", - name: "feeCollector", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.RoyaltyFee[]", - name: "royaltyFees", - type: "tuple[]", - }, - { - internalType: "bool", - name: "defaultKycStatus", - type: "bool", - }, - { - internalType: "bool", - name: "deleted", - type: "bool", - }, - { - internalType: "string", - name: "ledgerId", - type: "string", - }, - { - internalType: "bool", - name: "pauseStatus", - type: "bool", - }, - { - internalType: "uint64", - name: "totalSupply", - type: "uint64", - }, - ], - internalType: "struct IHederaTokenService.TokenInfo", - name: "tokenInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - ], - name: "getTokenKey", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenType", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "int32", - name: "tokenType", - type: "int32", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "operator", - type: "address", - }, - ], - name: "isApprovedForAll", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "approved", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "isFrozen", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "frozen", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "isKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "kycGranted", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "isToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "isToken", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint64", - name: "amount", - type: "uint64", - }, - { - internalType: "bytes[]", - name: "metadata", - type: "bytes[]", - }, - ], - name: "mintToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "uint64", - name: "newTotalSupply", - type: "uint64", - }, - { - internalType: "int64[]", - name: "serialNumbers", - type: "int64[]", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "pauseToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "operator", - type: "address", - }, - { - internalType: "bool", - name: "approved", - type: "bool", - }, - ], - name: "setApprovalForAll", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "serialNumber", - type: "uint256", - }, - ], - name: "transferFromNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "int64", - name: "serialNumber", - type: "int64", - }, - ], - name: "transferNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address[]", - name: "sender", - type: "address[]", - }, - { - internalType: "address[]", - name: "receiver", - type: "address[]", - }, - { - internalType: "int64[]", - name: "serialNumber", - type: "int64[]", - }, - ], - name: "transferNFTs", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "int64", - name: "amount", - type: "int64", - }, - ], - name: "transferToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address[]", - name: "accountId", - type: "address[]", - }, - { - internalType: "int64[]", - name: "amount", - type: "int64[]", - }, - ], - name: "transferTokens", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "unfreezeToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "unpauseToken", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiryInfo", - type: "tuple", - }, - ], - name: "updateTokenExpiryInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "tokenInfo", - type: "tuple", - }, - ], - name: "updateTokenInfo", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "keys", - type: "tuple[]", - }, - ], - name: "updateTokenKeys", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint32", - name: "amount", - type: "uint32", - }, - ], - name: "wipeTokenAccount", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "int64[]", - name: "serialNumbers", - type: "int64[]", - }, - ], - name: "wipeTokenAccountNFT", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; -exports.HEDERA_PROXY_ABI = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - inputs: [], - name: "DEFAULT_EXPIRY", - outputs: [ - { - internalType: "uint32", - name: "", - type: "uint32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "MAX_INT", - outputs: [ - { - internalType: "int64", - name: "", - type: "int64", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "baseURI", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "baseUri", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "uint256", - name: "serialNum", - type: "uint256", - }, - ], - name: "burnFor", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "int64", - name: "serialNum", - type: "int64", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "claimNft", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "data", - type: "uint256", - }, - ], - name: "decodeHts", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "int64", - name: "", - type: "int64", - }, - ], - stateMutability: "pure", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "claimer", - type: "address", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getClaimableNfts", - outputs: [ - { - internalType: "uint256[]", - name: "", - type: "uint256[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "getTokenExpiryInfo", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiryInfo", - type: "tuple", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "grantTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "htsToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "string", - name: "baseURI_", - type: "string", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "isKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - { - internalType: "bool", - name: "kycGranted", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "pauseToken", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "revokeTokenKyc", - outputs: [ - { - internalType: "int64", - name: "responseCode", - type: "int64", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address", - }, - { - internalType: "address", - name: "_to", - type: "address", - }, - { - internalType: "uint256", - name: "_serialNum", - type: "uint256", - }, - ], - name: "safeTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "tokenURI", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - ], - name: "unpauseToken", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiryInfo", - type: "tuple", - }, - ], - name: "updateTokenExpiryInfo", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - components: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - { - internalType: "address", - name: "treasury", - type: "address", - }, - { - internalType: "string", - name: "memo", - type: "string", - }, - { - internalType: "bool", - name: "tokenSupplyType", - type: "bool", - }, - { - internalType: "int64", - name: "maxSupply", - type: "int64", - }, - { - internalType: "bool", - name: "freezeDefault", - type: "bool", - }, - { - components: [ - { - internalType: "uint256", - name: "keyType", - type: "uint256", - }, - { - components: [ - { - internalType: "bool", - name: "inheritAccountKey", - type: "bool", - }, - { - internalType: "address", - name: "contractId", - type: "address", - }, - { - internalType: "bytes", - name: "ed25519", - type: "bytes", - }, - { - internalType: "bytes", - name: "ECDSA_secp256k1", - type: "bytes", - }, - { - internalType: "address", - name: "delegatableContractId", - type: "address", - }, - ], - internalType: "struct IHederaTokenService.KeyValue", - name: "key", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.TokenKey[]", - name: "tokenKeys", - type: "tuple[]", - }, - { - components: [ - { - internalType: "uint32", - name: "second", - type: "uint32", - }, - { - internalType: "address", - name: "autoRenewAccount", - type: "address", - }, - { - internalType: "uint32", - name: "autoRenewPeriod", - type: "uint32", - }, - ], - internalType: "struct IHederaTokenService.Expiry", - name: "expiry", - type: "tuple", - }, - ], - internalType: "struct IHederaTokenService.HederaToken", - name: "tokenInfo", - type: "tuple", - }, - ], - name: "updateTokenInfo", - outputs: [ - { - internalType: "int256", - name: "responseCode", - type: "int256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -]; -exports.HEDERA_PROXY_BC = - "0x60806040523480156200001157600080fd5b5062000032620000266200040960201b60201c565b6200041160201b60201c565b60016002600080600681111562000072577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620000ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550600280600060016006811115620000fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000136577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506004600260006002600681111562000189577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620001c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020819055506008600260006003600681111562000215577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068111156200024e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020019081526020016000208190555060106002600060046006811115620002a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620002da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550602060026000600560068111156200032d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600681111562000366577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550604060026000600680811115620003b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115620003f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200190815260200160002081905550620004d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b615bb180620004e56000396000f3fe60806040526004361061014b5760003560e01c80637ad43629116100b6578063a6487c531161006f578063a6487c53146104b9578063af99c633146104d5578063c87b56dd14610512578063d614cdb81461054f578063f2c31ff41461058d578063f2fde38b146105cb5761014b565b80637ad43629146103975780637c41ad2c146103c05780638da5cb5b146103fd5780638f8d7f991461042857806394d008ef146104655780639abc83201461048e5761014b565b80633b3bff0f116101085780633b3bff0f1461028757806342842e0e146102c457806351761bcc146102ed578063593d6e82146103185780636c0360eb14610355578063715018a6146103805761014b565b8063098d3228146101505780630b5d6cab1461017b5780630bc14a69146101b85780630e44263a146101e357806318370d34146102215780631dd319cb1461025e575b600080fd5b34801561015c57600080fd5b506101656105f4565b60405161017291906150d5565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190614186565b6105fc565b6040516101af919061506f565b60405180910390f35b3480156101c457600080fd5b506101cd61068a565b6040516101da9190614ee8565b60405180910390f35b3480156101ef57600080fd5b5061020a600480360381019061020591906145f0565b6106b0565b604051610218929190614f71565b60405180910390f35b34801561022d57600080fd5b506102486004803603810190610243919061424d565b6106d9565b6040516102559190615091565b60405180910390f35b34801561026a57600080fd5b50610285600480360381019061028091906142a1565b6107f1565b005b34801561029357600080fd5b506102ae60048036038101906102a9919061415d565b610a09565b6040516102bb9190615091565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906141c2565b610b1e565b005b3480156102f957600080fd5b50610302610d8f565b60405161030f91906151fd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614211565b610d96565b60405161034c9190615091565b60405180910390f35b34801561036157600080fd5b5061036a610eae565b6040516103779190615119565b60405180910390f35b34801561038c57600080fd5b50610395610ed6565b005b3480156103a357600080fd5b506103be60048036038101906103b9919061451d565b610eea565b005b3480156103cc57600080fd5b506103e760048036038101906103e2919061415d565b61104c565b6040516103f49190615091565b60405180910390f35b34801561040957600080fd5b50610412611161565b60405161041f9190614ee8565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190614186565b61118a565b60405161045c91906150d5565b60405180910390f35b34801561047157600080fd5b5061048c600480360381019061048791906142dd565b6112a2565b005b34801561049a57600080fd5b506104a3611639565b6040516104b09190615119565b60405180910390f35b6104d360048036038101906104ce9190614559565b6116c7565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614186565b611a31565b60405161050991906150d5565b60405180910390f35b34801561051e57600080fd5b50610539600480360381019061053491906145f0565b611b49565b6040516105469190615119565b60405180910390f35b34801561055b57600080fd5b506105766004803603810190610571919061415d565b611bc2565b6040516105849291906150ac565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190614186565b611cf2565b6040516105c29291906150f0565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed919061415d565b611e17565b005b63ffffffff81565b6060610682600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611e9b565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008360001b905060008160601c905060008260001c9050818194509450505050915091565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166318370d3460e01b8686604051602401610712929190614fc3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161077c9190614de1565b6000604051808303816000865af19150503d80600081146107b9576040519150601f19603f3d011682016040523d82523d6000602084013e6107be565b606091505b5091509150816107cf5760156107e4565b808060200190518101906107e39190614349565b5b60030b9250505092915050565b6107f9611ebc565b6000610829600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16843085611f3a565b9050601660030b811461083b82612058565b60405160200161084b9190614ec6565b6040516020818303038152906040529061089b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108929190615119565b60405180910390fd5b506000600167ffffffffffffffff8111156108df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b509050828160008151811061094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019060070b908160070b8152505061098d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083612205565b5080925050601660030b82146109a283612058565b6040516020016109b29190614e3e565b60405160208183030381529060405290610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16633b3bff0f60e01b85604051602401610a409190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610aaa9190614de1565b6000604051808303816000865af19150503d8060008114610ae7576040519150601f19603f3d011682016040523d82523d6000602084013e610aec565b606091505b509150915081610afd576015610b12565b80806020019051810190610b119190614349565b5b60030b92505050919050565b610b26611ebc565b600080610b32836106b0565b915091506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610c1557610b93308461232d565b9050601660030b811480610baa575060c260030b81145b610bb382612058565b604051602001610bc39190614ea4565b60405160208183030381529060405290610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a9190615119565b60405180910390fd5b505b610c1d611161565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610c6357610c5c83873085611f3a565b9050610d15565b610c6f83878785611f3a565b905060b860030b811415610d1457610d0b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b50505050610d8a565b5b601660030b8114610d2582612058565b604051602001610d359190614ec6565b60405160208183030381529060405290610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c9190615119565b60405180910390fd5b505050505b505050565b6278645081565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663593d6e8260e01b8686604051602401610dcf929190614f9a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e399190614de1565b6000604051808303816000865af19150503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b509150915081610e8c576015610ea1565b80806020019051810190610ea09190614349565b5b60030b9250505092915050565b60606003604051602001610ec29190614e1c565b604051602081830303815290604052905090565b610ede611ebc565b610ee8600061245f565b565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610f878367ffffffffffffffff168261252390919063ffffffff16565b610fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbd9061513b565b60405180910390fd5b6000610fd333858561253d565b9050601660030b8114610fe582612058565b604051602001610ff59190614ec6565b60405160208183030381529060405290611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9190615119565b60405180910390fd5b5050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16637c41ad2c60e01b856040516024016110839190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110ed9190614de1565b6000604051808303816000865af19150503d806000811461112a576040519150601f19603f3d011682016040523d82523d6000602084013e61112f565b606091505b509150915081611140576015611155565b808060200190518101906111549190614349565b5b60030b92505050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16638f8d7f9960e01b86866040516024016111c3929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161122d9190614de1565b6000604051808303816000865af19150503d806000811461126a576040519150601f19603f3d011682016040523d82523d6000602084013e61126f565b606091505b509150915081611280576015611295565b808060200190518101906112949190614349565b5b60030b9250505092915050565b6112aa611ebc565b6000600167ffffffffffffffff8111156112ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561132057816020015b606081526020019060019003908161130b5790505b509050600361132e85612058565b60405160200161133f929190614df8565b60405160208183030381529060405281600081518110611388577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052506000806113c4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600085612559565b9250509150601660030b82146113d983612058565b6040516020016113e99190614e60565b60405160208183030381529060405290611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309190615119565b60405180910390fd5b5060006114aa888360008151811061147a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661253d565b905060b860030b8114156115bd576115b3826000815181106114f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015167ffffffffffffffff16600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061244590919063ffffffff16565b5050505050611633565b601660030b81146115cd84612058565b6040516020016115dd9190614ec6565b6040516020818303038152906040529061162d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116249190615119565b60405180910390fd5b50505050505b50505050565b6003805461164690615672565b80601f016020809104026020016040519081016040528092919081815260200182805461167290615672565b80156116bf5780601f10611694576101008083540402835291602001916116bf565b820191906000526020600020905b8154815290600101906020018083116116a257829003601f168201915b505050505081565b600460149054906101000a900460ff1615611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906151bb565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055508060039080519060200190611748929190612eb8565b506000600167ffffffffffffffff81111561178c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156117c557816020015b6117b2612f3e565b8152602001906001900390816117aa5790505b5090506117d560046001306126f7565b8160008151811061180f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250611822612f5e565b84816000018190525083816020018190525030816040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050604051806020016040528060008152508160600181905250600181608001901515908115158152505063ffffffff8160a0019060070b908160070b8152505060008160c0019015159081151581525050818160e001819052506118d2306278645061272e565b8161010001819052506000806118e78361278c565b91509150601660030b82146118fb83612058565b60405160200161190b9190614e82565b6040516020818303038152906040529061195b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119529190615119565b60405180910390fd5b50611966308261232d565b9150601660030b82148061197d575060c260030b82145b61198683612058565b6040516020016119969190614ea4565b604051602081830303815290604052906119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9190615119565b60405180910390fd5b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff1663af99c63360e01b8686604051602401611a6a929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611ad49190614de1565b6000604051808303816000865af19150503d8060008114611b11576040519150601f19603f3d011682016040523d82523d6000602084013e611b16565b606091505b509150915081611b27576015611b3c565b80806020019051810190611b3b9190614349565b5b60030b9250505092915050565b6060600080611b57846106b0565b91509150600080611b688484612904565b91509150601660030b8214611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba99061517b565b60405180910390fd5b8060800151945050505050919050565b6000611bcc612fcd565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663d614cdb860e01b86604051602401611c019190614ee8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611c6b9190614de1565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150611cba612fcd565b82611cc757601581611cdc565b81806020019051810190611cdb91906143ea565b5b8160030b91508095508196505050505050915091565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663f2c31ff460e01b8787604051602401611d2c929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d969190614de1565b6000604051808303816000865af19150503d8060008114611dd3576040519150601f19603f3d011682016040523d82523d6000602084013e611dd8565b606091505b509150915081611deb5760156000611e00565b80806020019051810190611dff91906143ae565b5b8160030b9150809450819550505050509250929050565b611e1f611ebc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061515b565b60405180910390fd5b611e988161245f565b50565b60606000611eab83600001612a38565b905060608190508092505050919050565b611ec4612a94565b73ffffffffffffffffffffffffffffffffffffffff16611ee2611161565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9061519b565b60405180910390fd5b565b600080600061016773ffffffffffffffffffffffffffffffffffffffff16635cfc901160e01b88888888604051602401611f779493929190614f2c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fe19190614de1565b6000604051808303816000865af19150503d806000811461201e576040519150601f19603f3d011682016040523d82523d6000602084013e612023565b606091505b509150915081612034576015612049565b808060200190518101906120489190614349565b5b60030b92505050949350505050565b606060008214156120a0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612200565b600082905060005b600082146120d25780806120bb906156d5565b915050600a826120cb9190615529565b91506120a8565b60008167ffffffffffffffff811115612114577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121465781602001600182028036833780820191505090505b5090505b600085146121f95760018261215f919061555a565b9150600a8561216e919061571e565b603061217a91906154d3565b60f81b8183815181106121b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f29190615529565b945061214a565b8093505050505b919050565b60008060008061016773ffffffffffffffffffffffffffffffffffffffff1663acb9cff960e01b88888860405160240161224193929190615031565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516122ab9190614de1565b6000604051808303816000865af19150503d80600081146122e8576040519150601f19603f3d011682016040523d82523d6000602084013e6122ed565b606091505b5091509150816123005760156000612315565b80806020019051810190612314919061447a565b5b8160030b915080945081955050505050935093915050565b600080600061016773ffffffffffffffffffffffffffffffffffffffff166349146bde60e01b8686604051602401612366929190614f03565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123d09190614de1565b6000604051808303816000865af19150503d806000811461240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b509150915081612423576015612438565b808060200190518101906124379190614349565b5b60030b9250505092915050565b6000612457836000018360001b612a9c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612535836000018360001b612b0c565b905092915050565b60008061254c83308787611f3a565b9050809150509392505050565b600080606060008061016773ffffffffffffffffffffffffffffffffffffffff1663278e0b8860e01b89898960405160240161259793929190614ff3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126019190614de1565b6000604051808303816000865af19150503d806000811461263e576040519150601f19603f3d011682016040523d82523d6000602084013e612643565b606091505b5091509150816126c557601560008067ffffffffffffffff811115612691577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156126bf5781602001602082028036833780820191505090505b506126da565b808060200190518101906126d991906144b6565b5b8260030b9250809550819650829750505050505093509350939050565b6126ff612f3e565b604051806040016040528061271386612c92565b81526020016127228585612d1f565b81525090509392505050565b612736612fcd565b82816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081816040019063ffffffff16908163ffffffff168152505092915050565b6000808260008161010001516000015163ffffffff161480156127be575060008161010001516040015163ffffffff16145b156127e4576276a7008161010001516040019063ffffffff16908163ffffffff16815250505b60008061016773ffffffffffffffffffffffffffffffffffffffff1634639c89bb3560e01b8860405160240161281a91906151db565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128849190614de1565b60006040518083038185875af1925050503d80600081146128c1576040519150601f19603f3d011682016040523d82523d6000602084013e6128c6565b606091505b5091509150816128d957601560006128ee565b808060200190518101906128ed9190614372565b5b8160030b91508095508196505050505050915091565b600061290e613010565b60008061016773ffffffffffffffffffffffffffffffffffffffff1663287e1da860e01b8787604051602401612945929190614f71565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516129af9190614de1565b6000604051808303816000865af19150503d80600081146129ec576040519150601f19603f3d011682016040523d82523d6000602084013e6129f1565b606091505b50915091506129fe613010565b82612a0b57601581612a20565b81806020019051810190612a1f9190614426565b5b8160030b915080955081965050505050509250929050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612a8857602002820191906000526020600020905b815481526020019060010190808311612a74575b50505050509050919050565b600033905090565b6000612aa88383612e95565b612b01578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612b06565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612c86576000600182612b3e919061555a565b9050600060018660000180549050612b56919061555a565b9050818114612c11576000866000018281548110612b9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080876000018481548110612be7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612c4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612c8c565b60009150505b92915050565b600060026000836006811115612cd1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6006811115612d09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8152602001908152602001600020549050919050565b612d2761307e565b60016004811115612d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612d9a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612ddd5781816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8f565b600480811115612e16577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836004811115612e4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612e8e5781816080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054612ec490615672565b90600052602060002090601f016020900481019282612ee65760008555612f2d565b82601f10612eff57805160ff1916838001178555612f2d565b82800160010185558215612f2d579182015b82811115612f2c578251825591602001919060010190612f11565b5b509050612f3a91906130db565b5090565b604051806040016040528060008152602001612f5861307e565b81525090565b6040518061012001604052806060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600015158152602001600060070b815260200160001515815260200160608152602001612fc7612fcd565b81525090565b6040518060600160405280600063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff1681525090565b6040518060c001604052806130236130f8565b8152602001600060070b8152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060070b815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b5b808211156130f45760008160009055506001016130dc565b5090565b60405180610120016040528061310c612f5e565b8152602001600067ffffffffffffffff168152602001600015158152602001600015158152602001600015158152602001606081526020016060815260200160608152602001606081525090565b600061316d6131688461523d565b615218565b9050808382526020820190508285602086028201111561318c57600080fd5b60005b858110156131bc57816131a2888261373b565b84526020840193506020830192505060018101905061318f565b5050509392505050565b60006131d96131d484615269565b615218565b905080838252602082019050828560a08602820111156131f857600080fd5b60005b85811015613228578161320e8882613864565b845260208401935060a083019250506001810190506131fb565b5050509392505050565b600061324561324084615295565b615218565b905080838252602082019050828560c086028201111561326457600080fd5b60005b85811015613294578161327a88826138ec565b845260208401935060c08301925050600181019050613267565b5050509392505050565b60006132b16132ac846152c1565b615218565b905080838252602082019050828560c08602820111156132d057600080fd5b60005b8581101561330057816132e68882613e3c565b845260208401935060c083019250506001810190506132d3565b5050509392505050565b600061331d613318846152ed565b615218565b9050808382526020820190508285602086028201111561333c57600080fd5b60005b8581101561338657813567ffffffffffffffff81111561335e57600080fd5b80860161336b898261402c565b8552602085019450602084019350505060018101905061333f565b5050509392505050565b60006133a361339e846152ed565b615218565b905080838252602082019050828560208602820111156133c257600080fd5b60005b8581101561340c57815167ffffffffffffffff8111156133e457600080fd5b8086016133f18982614090565b855260208501945060208401935050506001810190506133c5565b5050509392505050565b600061342961342484615319565b615218565b90508281526020810184848401111561344157600080fd5b61344c848285615630565b509392505050565b600061346761346284615319565b615218565b90508281526020810184848401111561347f57600080fd5b61348a84828561563f565b509392505050565b60006134a56134a08461534a565b615218565b9050828152602081018484840111156134bd57600080fd5b6134c8848285615630565b509392505050565b60006134e36134de8461534a565b615218565b9050828152602081018484840111156134fb57600080fd5b61350684828561563f565b509392505050565b60008135905061351d81615ac3565b92915050565b60008151905061353281615ac3565b92915050565b60008151905061354781615ada565b92915050565b600082601f83011261355e57600080fd5b815161356e84826020860161315a565b91505092915050565b600082601f83011261358857600080fd5b81516135988482602086016131c6565b91505092915050565b600082601f8301126135b257600080fd5b81516135c2848260208601613232565b91505092915050565b600082601f8301126135dc57600080fd5b81516135ec84826020860161329e565b91505092915050565b600082601f83011261360657600080fd5b813561361684826020860161330a565b91505092915050565b600082601f83011261363057600080fd5b8151613640848260208601613390565b91505092915050565b60008135905061365881615af1565b92915050565b60008151905061366d81615af1565b92915050565b60008083601f84011261368557600080fd5b8235905067ffffffffffffffff81111561369e57600080fd5b6020830191508360018202830111156136b657600080fd5b9250929050565b600082601f8301126136ce57600080fd5b81356136de848260208601613416565b91505092915050565b600082601f8301126136f857600080fd5b8151613708848260208601613454565b91505092915050565b60008151905061372081615b08565b92915050565b60008135905061373581615b1f565b92915050565b60008151905061374a81615b1f565b92915050565b600082601f83011261376157600080fd5b8135613771848260208601613492565b91505092915050565b600082601f83011261378b57600080fd5b815161379b8482602086016134d0565b91505092915050565b6000606082840312156137b657600080fd5b6137c06060615218565b905060006137d08482850161411e565b60008301525060206137e48482850161350e565b60208301525060406137f88482850161411e565b60408301525092915050565b60006060828403121561381657600080fd5b6138206060615218565b9050600061383084828501614133565b600083015250602061384484828501613523565b602083015250604061385884828501614133565b60408301525092915050565b600060a0828403121561387657600080fd5b61388060a0615218565b9050600061389084828501614133565b60008301525060206138a484828501613523565b60208301525060406138b88482850161365e565b60408301525060606138cc8482850161365e565b60608301525060806138e084828501613523565b60808301525092915050565b600060c082840312156138fe57600080fd5b61390860c0615218565b9050600061391884828501614133565b600083015250602061392c84828501614133565b602083015250604061394084828501614133565b604083015250606061395484828501614133565b60608301525060806139688482850161365e565b60808301525060a061397c84828501613523565b60a08301525092915050565b6000610160828403121561399b57600080fd5b6139a6610120615218565b9050600082013567ffffffffffffffff8111156139c257600080fd5b6139ce84828501613750565b600083015250602082013567ffffffffffffffff8111156139ee57600080fd5b6139fa84828501613750565b6020830152506040613a0e8482850161350e565b604083015250606082013567ffffffffffffffff811115613a2e57600080fd5b613a3a84828501613750565b6060830152506080613a4e84828501613649565b60808301525060a0613a6284828501613726565b60a08301525060c0613a7684828501613649565b60c08301525060e082013567ffffffffffffffff811115613a9657600080fd5b613aa2848285016135f5565b60e083015250610100613ab7848285016137a4565b6101008301525092915050565b60006101608284031215613ad757600080fd5b613ae2610120615218565b9050600082015167ffffffffffffffff811115613afe57600080fd5b613b0a8482850161377a565b600083015250602082015167ffffffffffffffff811115613b2a57600080fd5b613b368482850161377a565b6020830152506040613b4a84828501613523565b604083015250606082015167ffffffffffffffff811115613b6a57600080fd5b613b768482850161377a565b6060830152506080613b8a8482850161365e565b60808301525060a0613b9e8482850161373b565b60a08301525060c0613bb28482850161365e565b60c08301525060e082015167ffffffffffffffff811115613bd257600080fd5b613bde8482850161361f565b60e083015250610100613bf384828501613804565b6101008301525092915050565b600060a08284031215613c1257600080fd5b613c1c60a0615218565b90506000613c2c84828501613649565b6000830152506020613c408482850161350e565b602083015250604082013567ffffffffffffffff811115613c6057600080fd5b613c6c848285016136bd565b604083015250606082013567ffffffffffffffff811115613c8c57600080fd5b613c98848285016136bd565b6060830152506080613cac8482850161350e565b60808301525092915050565b600060a08284031215613cca57600080fd5b613cd460a0615218565b90506000613ce48482850161365e565b6000830152506020613cf884828501613523565b602083015250604082015167ffffffffffffffff811115613d1857600080fd5b613d24848285016136e7565b604083015250606082015167ffffffffffffffff811115613d4457600080fd5b613d50848285016136e7565b6060830152506080613d6484828501613523565b60808301525092915050565b600060c08284031215613d8257600080fd5b613d8c60c0615218565b9050600082015167ffffffffffffffff811115613da857600080fd5b613db484828501613ed8565b6000830152506020613dc88482850161373b565b6020830152506040613ddc84828501613523565b6040830152506060613df08482850161373b565b606083015250608082015167ffffffffffffffff811115613e1057600080fd5b613e1c848285016136e7565b60808301525060a0613e3084828501613523565b60a08301525092915050565b600060c08284031215613e4e57600080fd5b613e5860c0615218565b90506000613e6884828501614133565b6000830152506020613e7c84828501614133565b6020830152506040613e9084828501614133565b6040830152506060613ea484828501613523565b6060830152506080613eb88482850161365e565b60808301525060a0613ecc84828501613523565b60a08301525092915050565b60006101208284031215613eeb57600080fd5b613ef6610120615218565b9050600082015167ffffffffffffffff811115613f1257600080fd5b613f1e84828501613ac4565b6000830152506020613f3284828501614148565b6020830152506040613f468482850161365e565b6040830152506060613f5a8482850161365e565b6060830152506080613f6e8482850161365e565b60808301525060a082015167ffffffffffffffff811115613f8e57600080fd5b613f9a84828501613577565b60a08301525060c082015167ffffffffffffffff811115613fba57600080fd5b613fc6848285016135a1565b60c08301525060e082015167ffffffffffffffff811115613fe657600080fd5b613ff2848285016135cb565b60e08301525061010082015167ffffffffffffffff81111561401357600080fd5b61401f8482850161377a565b6101008301525092915050565b60006040828403121561403e57600080fd5b6140486040615218565b90506000614058848285016140f4565b600083015250602082013567ffffffffffffffff81111561407857600080fd5b61408484828501613c00565b60208301525092915050565b6000604082840312156140a257600080fd5b6140ac6040615218565b905060006140bc84828501614109565b600083015250602082015167ffffffffffffffff8111156140dc57600080fd5b6140e884828501613cb8565b60208301525092915050565b60008135905061410381615b36565b92915050565b60008151905061411881615b36565b92915050565b60008135905061412d81615b4d565b92915050565b60008151905061414281615b4d565b92915050565b60008151905061415781615b64565b92915050565b60006020828403121561416f57600080fd5b600061417d8482850161350e565b91505092915050565b6000806040838503121561419957600080fd5b60006141a78582860161350e565b92505060206141b88582860161350e565b9150509250929050565b6000806000606084860312156141d757600080fd5b60006141e58682870161350e565b93505060206141f68682870161350e565b9250506040614207868287016140f4565b9150509250925092565b6000806080838503121561422457600080fd5b60006142328582860161350e565b9250506020614243858286016137a4565b9150509250929050565b6000806040838503121561426057600080fd5b600061426e8582860161350e565b925050602083013567ffffffffffffffff81111561428b57600080fd5b61429785828601613988565b9150509250929050565b600080604083850312156142b457600080fd5b60006142c28582860161350e565b92505060206142d3858286016140f4565b9150509250929050565b600080600080606085870312156142f357600080fd5b60006143018782880161350e565b9450506020614312878288016140f4565b935050604085013567ffffffffffffffff81111561432f57600080fd5b61433b87828801613673565b925092505092959194509250565b60006020828403121561435b57600080fd5b600061436984828501613711565b91505092915050565b6000806040838503121561438557600080fd5b600061439385828601613711565b92505060206143a485828601613538565b9150509250929050565b600080604083850312156143c157600080fd5b60006143cf85828601613711565b92505060206143e08582860161365e565b9150509250929050565b600080608083850312156143fd57600080fd5b600061440b85828601613711565b925050602061441c85828601613804565b9150509250929050565b6000806040838503121561443957600080fd5b600061444785828601613711565b925050602083015167ffffffffffffffff81111561446457600080fd5b61447085828601613d70565b9150509250929050565b6000806040838503121561448d57600080fd5b600061449b85828601613711565b92505060206144ac85828601614148565b9150509250929050565b6000806000606084860312156144cb57600080fd5b60006144d986828701613711565b93505060206144ea86828701614148565b925050604084015167ffffffffffffffff81111561450757600080fd5b6145138682870161354d565b9150509250925092565b6000806040838503121561453057600080fd5b600061453e85828601613726565b925050602061454f8582860161350e565b9150509250929050565b60008060006060848603121561456e57600080fd5b600084013567ffffffffffffffff81111561458857600080fd5b61459486828701613750565b935050602084013567ffffffffffffffff8111156145b157600080fd5b6145bd86828701613750565b925050604084013567ffffffffffffffff8111156145da57600080fd5b6145e686828701613750565b9150509250925092565b60006020828403121561460257600080fd5b6000614610848285016140f4565b91505092915050565b60006146258383614853565b905092915050565b600061463983836148cc565b60208301905092915050565b60006146518383614d68565b905092915050565b60006146658383614da5565b60208301905092915050565b61467a8161558e565b82525050565b6146898161558e565b82525050565b600061469a826153d0565b6146a48185615446565b9350836020820285016146b68561537b565b8060005b858110156146f257848403895281516146d38582614619565b94506146de83615412565b925060208a019950506001810190506146ba565b50829750879550505050505092915050565b600061470f826153db565b6147198185615457565b93506147248361538b565b8060005b8381101561475557815161473c888261462d565b97506147478361541f565b925050600181019050614728565b5085935050505092915050565b600061476d826153e6565b6147778185615468565b9350836020820285016147898561539b565b8060005b858110156147c557848403895281516147a68582614645565b94506147b18361542c565b925060208a0199505060018101905061478d565b50829750879550505050505092915050565b60006147e2826153f1565b6147ec8185615479565b93506147f7836153ab565b8060005b8381101561482857815161480f8882614659565b975061481a83615439565b9250506001810190506147fb565b5085935050505092915050565b61483e816155b2565b82525050565b61484d816155b2565b82525050565b600061485e826153fc565b614868818561548a565b935061487881856020860161563f565b6148818161580b565b840191505092915050565b6000614897826153fc565b6148a1818561549b565b93506148b181856020860161563f565b80840191505092915050565b6148c6816155be565b82525050565b6148d5816155d5565b82525050565b6148e4816155d5565b82525050565b60006148f582615407565b6148ff81856154a6565b935061490f81856020860161563f565b6149188161580b565b840191505092915050565b600061492e82615407565b61493881856154b7565b935061494881856020860161563f565b6149518161580b565b840191505092915050565b600061496782615407565b61497181856154c8565b935061498181856020860161563f565b80840191505092915050565b6000815461499a81615672565b6149a481866154c8565b945060018216600081146149bf57600181146149d057614a03565b60ff19831686528186019350614a03565b6149d9856153bb565b60005b838110156149fb578154818901526001820191506020810190506149dc565b838801955050505b50505092915050565b6000614a196015836154b7565b9150614a248261581c565b602082019050919050565b6000614a3c6026836154b7565b9150614a4782615845565b604082019050919050565b6000614a5f6023836154c8565b9150614a6a82615894565b602382019050919050565b6000614a826018836154b7565b9150614a8d826158e3565b602082019050919050565b6000614aa56023836154c8565b9150614ab08261590c565b602382019050919050565b6000614ac86025836154c8565b9150614ad38261595b565b602582019050919050565b6000614aeb6020836154b7565b9150614af6826159aa565b602082019050919050565b6000614b0e6028836154c8565b9150614b19826159d3565b602882019050919050565b6000614b316013836154b7565b9150614b3c82615a22565b602082019050919050565b6000614b546004836154c8565b9150614b5f82615a4b565b600482019050919050565b6000614b776027836154c8565b9150614b8282615a74565b602782019050919050565b606082016000820151614ba36000850182614db4565b506020820151614bb66020850182614671565b506040820151614bc96040850182614db4565b50505050565b606082016000820151614be56000850182614db4565b506020820151614bf86020850182614671565b506040820151614c0b6040850182614db4565b50505050565b6000610160830160008301518482036000860152614c2f82826148ea565b91505060208301518482036020860152614c4982826148ea565b9150506040830151614c5e6040860182614671565b5060608301518482036060860152614c7682826148ea565b9150506080830151614c8b6080860182614835565b5060a0830151614c9e60a08601826148cc565b5060c0830151614cb160c0860182614835565b5060e083015184820360e0860152614cc98282614762565b915050610100830151614ce0610100860182614b8d565b508091505092915050565b600060a083016000830151614d036000860182614835565b506020830151614d166020860182614671565b5060408301518482036040860152614d2e8282614853565b91505060608301518482036060860152614d488282614853565b9150506080830151614d5d6080860182614671565b508091505092915050565b6000604083016000830151614d806000860182614da5565b5060208301518482036020860152614d988282614ceb565b9150508091505092915050565b614dae81615602565b82525050565b614dbd8161560c565b82525050565b614dcc8161560c565b82525050565b614ddb8161561c565b82525050565b6000614ded828461488c565b915081905092915050565b6000614e04828561498d565b9150614e10828461495c565b91508190509392505050565b6000614e28828461498d565b9150614e3382614b47565b915081905092915050565b6000614e4982614a52565b9150614e55828461495c565b915081905092915050565b6000614e6b82614a98565b9150614e77828461495c565b915081905092915050565b6000614e8d82614abb565b9150614e99828461495c565b915081905092915050565b6000614eaf82614b01565b9150614ebb828461495c565b915081905092915050565b6000614ed182614b6a565b9150614edd828461495c565b915081905092915050565b6000602082019050614efd6000830184614680565b92915050565b6000604082019050614f186000830185614680565b614f256020830184614680565b9392505050565b6000608082019050614f416000830187614680565b614f4e6020830186614680565b614f5b6040830185614680565b614f6860608301846148db565b95945050505050565b6000604082019050614f866000830185614680565b614f9360208301846148db565b9392505050565b6000608082019050614faf6000830185614680565b614fbc6020830184614bcf565b9392505050565b6000604082019050614fd86000830185614680565b8181036020830152614fea8184614c11565b90509392505050565b60006060820190506150086000830186614680565b6150156020830185614dd2565b8181036040830152615027818461468f565b9050949350505050565b60006060820190506150466000830186614680565b6150536020830185614dd2565b81810360408301526150658184614704565b9050949350505050565b6000602082019050818103600083015261508981846147d7565b905092915050565b60006020820190506150a660008301846148bd565b92915050565b60006080820190506150c160008301856148bd565b6150ce6020830184614bcf565b9392505050565b60006020820190506150ea60008301846148db565b92915050565b600060408201905061510560008301856148db565b6151126020830184614844565b9392505050565b600060208201905081810360008301526151338184614923565b905092915050565b6000602082019050818103600083015261515481614a0c565b9050919050565b6000602082019050818103600083015261517481614a2f565b9050919050565b6000602082019050818103600083015261519481614a75565b9050919050565b600060208201905081810360008301526151b481614ade565b9050919050565b600060208201905081810360008301526151d481614b24565b9050919050565b600060208201905081810360008301526151f58184614c11565b905092915050565b60006020820190506152126000830184614dc3565b92915050565b6000615222615233565b905061522e82826156a4565b919050565b6000604051905090565b600067ffffffffffffffff821115615258576152576157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615284576152836157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152b0576152af6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156152dc576152db6157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615308576153076157dc565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615334576153336157dc565b5b61533d8261580b565b9050602081019050919050565b600067ffffffffffffffff821115615365576153646157dc565b5b61536e8261580b565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006154de82615602565b91506154e983615602565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561551e5761551d61574f565b5b828201905092915050565b600061553482615602565b915061553f83615602565b92508261554f5761554e61577e565b5b828204905092915050565b600061556582615602565b915061557083615602565b9250828210156155835761558261574f565b5b828203905092915050565b6000615599826155e2565b9050919050565b60006155ab826155e2565b9050919050565b60008115159050919050565b6000819050919050565b60008160030b9050919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561565d578082015181840152602081019050615642565b8381111561566c576000848401525b50505050565b6000600282049050600182168061568a57607f821691505b6020821081141561569e5761569d6157ad565b5b50919050565b6156ad8261580b565b810181811067ffffffffffffffff821117156156cc576156cb6157dc565b5b80604052505050565b60006156e082615602565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157135761571261574f565b5b600182019050919050565b600061572982615602565b915061573483615602565b9250826157445761574361577e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f7420636c61696d2074686973206e66740000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f206275726e20746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2067657420746f6b656e20696e666f0000000000000000600082015250565b7f4661696c656420746f206d696e7420746f6b656e2e20526561736f6e20436f6460008201527f653a200000000000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2063726561746520746f6b656e2e20526561736f6e204360008201527f6f64653a20000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f206173736f636961746520746f6b656e2e20526561736f60008201527f6e20436f64653a20000000000000000000000000000000000000000000000000602082015250565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b7f7b69647d00000000000000000000000000000000000000000000000000000000600082015250565b7f4661696c656420746f207472616e7366657220746f6b656e2e20526561736f6e60008201527f20436f64653a2000000000000000000000000000000000000000000000000000602082015250565b615acc8161558e565b8114615ad757600080fd5b50565b615ae3816155a0565b8114615aee57600080fd5b50565b615afa816155b2565b8114615b0557600080fd5b50565b615b11816155c8565b8114615b1c57600080fd5b50565b615b28816155d5565b8114615b3357600080fd5b50565b615b3f81615602565b8114615b4a57600080fd5b50565b615b568161560c565b8114615b6157600080fd5b50565b615b6d8161561c565b8114615b7857600080fd5b5056fea26469706673582212206938c32011e6648854a699eaf44e3b65056deb1073dc7c522673739a6d41e8b564736f6c63430008040033"; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRzX2FiaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2hlZGVyYS9odHNfYWJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEM7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSxXQUFXO1FBQ2pCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLE9BQU87YUFDZDtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELGVBQWUsRUFBRSxZQUFZO1FBQzdCLElBQUksRUFBRSxVQUFVO0tBQ2pCO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUks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 diff --git a/dist/helpers/near.d.ts b/dist/helpers/near.d.ts deleted file mode 100644 index 99a5fdb0e..000000000 --- a/dist/helpers/near.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Account, Near, WalletConnection, Contract } from "near-api-js"; -import { FinalExecutionOutcome } from "near-api-js/lib/providers"; -import { EvNotifier } from "../notifier"; -import { - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - MintNft, - NftInfo, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, - PreTransfer, -} from "./chain"; -type NearTxResult = [FinalExecutionOutcome, any]; -type NearPreTransferArgs = { - to: string; - receiver: string; -}; -export type NearParams = { - readonly networkId: string; - readonly nonce: number; - readonly rpcUrl: string; - readonly bridge: string; - readonly xpnft: string; - readonly feeMargin: FeeMargins; - readonly notifier: EvNotifier; - readonly walletUrl: string; - readonly helperUrl: string; -}; -export type NearNFT = { - tokenId: string; - contract: string; -}; -export type Metadata = { - title?: string; - description?: string; - media?: string; - mediaHash: Uint8Array | null; - issued_at: string | null; - expires_at: string | null; - starts_at: string | null; - updated_at: string | null; - extra?: string; - reference: string | null; - referenceHash: Uint8Array | null; -}; -export interface NearMintArgs { - contract: string; - token_id: string; - token_owner_id: string; - metadata: Metadata; -} -interface BrowserMethods { - connectWallet(): Promise; - getContract(signer: Account, _contract: string): Promise; - getUserMinter(keypair: string, address: string): Promise; -} -export type NearHelper = ChainNonceGet & - BalanceCheck & - TransferNftForeign & - UnfreezeForeignNft & - MintNft & - EstimateTxFees & - Pick< - PreTransfer, - "preTransfer" - > & - ValidateAddress & { - XpNft: string; - nftList(owner: Account, contract: string): Promise[]>; - } & GetFeeMargins & - GetProvider & - BrowserMethods; -export declare function nearHelperFactory({ - networkId, - bridge, - rpcUrl, - xpnft, - feeMargin, - notifier, - walletUrl, - helperUrl, -}: NearParams): Promise; -export {}; -//# sourceMappingURL=near.d.ts.map diff --git a/dist/helpers/near.d.ts.map b/dist/helpers/near.d.ts.map deleted file mode 100644 index 2dc06b636..000000000 --- a/dist/helpers/near.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/helpers/near.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/near.js b/dist/helpers/near.js deleted file mode 100644 index 843bfc834..000000000 --- a/dist/helpers/near.js +++ /dev/null @@ -1,232 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.nearHelperFactory = void 0; -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const bn_js_1 = require("bn.js"); -const near_api_js_1 = require("near-api-js"); -const providers_1 = require("near-api-js/lib/providers"); -const consts_1 = require("../consts"); -async function nearHelperFactory({ - networkId, - bridge, - rpcUrl, - xpnft, - feeMargin, - notifier, - walletUrl, - helperUrl, -}) { - const near = await (0, near_api_js_1.connect)({ - nodeUrl: rpcUrl, - networkId, - headers: {}, - }); - const isApproved = async (account, nft) => { - const { tokenId: token_id, contract } = nft.native; - const result = await account.viewFunction({ - args: { - token_id, - approved_account_id: bridge, - approval_id: null, - }, - contractId: contract, - methodName: "nft_is_approved", - }); - return result; - }; - const getWalletCallbackUrl = (params) => { - let walletCallbackUrl = undefined; - if (globalThis.window !== undefined) { - const network = - location.pathname.match(/^\/(staging|testnet)\/.+/)?.at(1) || ""; - walletCallbackUrl = `${location.protocol}//${location.host}/${network}/connect?${params}`; - } - return walletCallbackUrl; - }; - return { - async estimateValidateTransferNft(_to, _metadata, _mintWith) { - return new bignumber_js_1.default(0); // TODO - }, - async estimateValidateUnfreezeNft(_to, _metadata, _mintWith) { - return new bignumber_js_1.default(0); // TODO - }, - getNonce() { - return consts_1.Chain.NEAR; - }, - async balance(address) { - const res = ( - await new near_api_js_1.Account( - near.connection, - address - ).getAccountBalance() - ).available; - return new bignumber_js_1.default(res); - }, - async mintNft(owner, options) { - const result = await owner.functionCall({ - contractId: options.contract, - methodName: "nft_mint", - args: { - token_id: options.token_id, - token_owner_id: options.token_owner_id, - token_metadata: options.metadata, - }, - attachedDeposit: new bn_js_1.BN("10000000000000000000000"), // 0.01 Near - }); - return [result, (0, providers_1.getTransactionLastResult)(result)]; - }, - async nftList(owner, contract) { - const result = await owner.functionCall({ - contractId: contract, - methodName: "nft_tokens_for_owner", - args: { account_id: owner.accountId }, - }); - const res = (0, providers_1.getTransactionLastResult)(result); - return res.map((r) => { - return { - native: { - tokenId: r.token_id, - contract, - }, - collectionIdent: contract, - uri: r.metadata.extra || r.metadata.media, - }; - }); - }, - async preTransfer(sender, nft, _fee, args) { - if (await isApproved(sender, nft)) { - return undefined; - } - if (!args) { - throw new Error("Missing args"); - } - const { receiver, to } = args; - const walletCallbackUrl = getWalletCallbackUrl( - `NEARTRX=true&type=approve&to=${to}&receiver=${encodeURIComponent( - receiver - )}&tokenId=${encodeURIComponent(nft.native.tokenId)}` - ); - const result = await sender.functionCall({ - contractId: nft.native.contract, - methodName: "nft_approve", - args: { - token_id: nft.native.tokenId, - account_id: bridge, - }, - attachedDeposit: new bn_js_1.BN("1000000000000000000000"), - ...(walletCallbackUrl ? { walletCallbackUrl } : {}), - }); - return result.transaction_outcome.id; - }, - XpNft: xpnft, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mint_with) { - const walletCallbackUrl = getWalletCallbackUrl( - `NEARTRX=true&type=transfer&to=${chain_nonce}&receiver=${encodeURIComponent( - to - )}&tokenId=${encodeURIComponent( - id.native.tokenId - )}&contract=${encodeURIComponent(id.native.contract)}` - ); - const result = await sender.functionCall({ - contractId: bridge, - args: { - token_id: id.native.tokenId, - chain_nonce, - to, - amt: new bignumber_js_1.default(txFees), - mint_with, - token_contract: id.native.contract, - }, - methodName: "freeze_nft", - attachedDeposit: new bn_js_1.BN(txFees.toString(10)), - gas: new bn_js_1.BN("46000000000000"), - ...(walletCallbackUrl ? { walletCallbackUrl } : {}), - }); - await notifier.notifyNear(result.transaction.hash); - return [result, (0, providers_1.getTransactionLastResult)(result)]; - }, - getFeeMargin() { - return feeMargin; - }, - getProvider() { - return near; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - const walletCallbackUrl = getWalletCallbackUrl( - `NEARTRX=true&type=unfreeze&to=${nonce}&receiver=${encodeURIComponent( - to - )}&tokenId=${encodeURIComponent( - id.native.tokenId - )}&contract=${encodeURIComponent(id.native.contract)}` - ); - const result = await sender.functionCall({ - contractId: bridge, - args: { - token_id: id.native.tokenId, - chain_nonce: parseInt(nonce), - to, - amt: parseInt(txFees.toString()), - token_contract: id.native.contract, - }, - methodName: "withdraw_nft", - attachedDeposit: new bn_js_1.BN(txFees.toString(10)), - gas: new bn_js_1.BN(65000000000000), - ...(walletCallbackUrl ? { walletCallbackUrl } : {}), - }); - await notifier.notifyNear(result.transaction.hash); - return [result, (0, providers_1.getTransactionLastResult)(result)]; - }, - async validateAddress(adr) { - try { - await new near_api_js_1.Account( - near.connection, - adr - ).getAccountBalance(); - return true; - } catch (e) { - return false; - } - }, - async connectWallet() { - if (typeof window === "undefined") { - throw new Error("Browser method only"); - } - const nearConnection = await (0, near_api_js_1.connect)({ - networkId, - nodeUrl: rpcUrl, - keyStore: new near_api_js_1.keyStores.BrowserLocalStorageKeyStore(), - headers: {}, - walletUrl, - helperUrl, - }); - const wc = new near_api_js_1.WalletConnection(nearConnection, ""); - return wc; - }, - async getContract(signer, _contract) { - return new near_api_js_1.Contract(signer, _contract, { - viewMethods: [], - changeMethods: ["nft_mint"], - }); - }, - async getUserMinter(keypair, address) { - const keyStore = new near_api_js_1.keyStores.InMemoryKeyStore(); - const keyPair = near_api_js_1.KeyPair.fromString(keypair); - keyStore.setKey(networkId, address, keyPair); - const signer = new near_api_js_1.InMemorySigner(keyStore); - const provider = await (0, near_api_js_1.connect)({ - headers: {}, - nodeUrl: rpcUrl, - networkId, - signer, - }); - return provider; - }, - }; -} -exports.nearHelperFactory = nearHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL25lYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLGlDQUEyQjtBQUUzQiw2Q0FTcUI7QUFFckIseURBR21DO0FBQ25DLHNDQUFrQztBQW9GM0IsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEVBQ3RDLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEdBQ0U7SUFDWCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEscUJBQU8sRUFBQztRQUN6QixPQUFPLEVBQUUsTUFBTTtRQUNmLFNBQVM7UUFDVCxPQUFPLEVBQUUsRUFBRTtLQUNaLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLEtBQUssRUFDdEIsT0FBZ0IsRUFDaEIsR0FBcUIsRUFDSCxFQUFFO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDbkQsTUFBTSxNQUFNLEdBQVksTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ2pELElBQUksRUFBRTtnQkFDSixRQUFRO2dCQUNSLG1CQUFtQixFQUFFLE1BQU07Z0JBQzNCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCO1lBQ0QsVUFBVSxFQUFFLFFBQVE7WUFDcEIsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QixDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7SUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDOUMsSUFBSSxpQkFBaUIsR0FBdUIsU0FBUyxDQUFDO1FBQ3RELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDbkMsTUFBTSxPQUFPLEdBQ1gsUUFBUSxDQUFDLFFB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 diff --git a/dist/helpers/secret.d.ts b/dist/helpers/secret.d.ts deleted file mode 100644 index deffd6632..000000000 --- a/dist/helpers/secret.d.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { SecretNetworkClient, Tx } from "secretjs"; -import { Extension } from "secretjs/dist/extensions/snip721/types"; -import { EvNotifier } from "../notifier"; -import { - BalanceCheck, - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - MintNft, - NftInfo, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from "./chain"; -export type SecretNftInfo = { - contract: string; - contractHash: string; - chainId: string; - tokenId: string; - vk: string; - metadata: Extension | undefined; -}; -export type SecretMintArgs = { - url: string; - contract?: SecretContract; -}; -type SecretSigner = SecretNetworkClient; -export type SecretHelper = TransferNftForeign & - UnfreezeForeignNft & - ValidateAddress & - EstimateTxFees & - ChainNonceGet & - PreTransfer & - BalanceCheck & - GetFeeMargins & { - XpNft: string; - } & GetProvider & - MintNft & { - nftList( - owner: string, - viewingKey: string, - contract: string, - codeHash?: string - ): Promise[]>; - setViewingKey( - client: SecretNetworkClient, - contract: string, - vk: string - ): Promise; - isApprovedForMinter( - sender: SecretSigner, - nft: NftInfo - ): Promise; - }; -export type SecretContract = { - contractAddress: string; - codeHash: string; -}; -export type SecretParams = { - rpcUrl: string; - chainId: string; - notifier: EvNotifier; - bridge: SecretContract; - xpnft: SecretContract; - umt: SecretContract; - feeMargin: FeeMargins; -}; -export declare function secretHelperFactory( - p: SecretParams -): Promise; -export {}; -//# sourceMappingURL=secret.d.ts.map diff --git a/dist/helpers/secret.d.ts.map b/dist/helpers/secret.d.ts.map deleted file mode 100644 index 46bc76c14..000000000 --- a/dist/helpers/secret.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/helpers/secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,mBAAmB,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,SAAS,EAEV,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG,mBAAmB,CAAC;AAMxC,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAC3C,YAAY,EACZ,aAAa,EACb,EAAE,CACH,GACC,kBAAkB,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE,CAAC,GACnD,eAAe,GACf,cAAc,CAAC,aAAa,CAAC,GAC7B,aAAa,GACb,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,GAC3D,YAAY,GACZ,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC,mBAAmB,CAAC,GACpE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,CAAC,GAAG;IAC1C,OAAO,CACL,KAAK,EAAE,MAAM,EAEb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrC,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,EAAE,CAAC,CAAC;IACf,mBAAmB,CACjB,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAQF,wBAAsB,mBAAmB,CACvC,CAAC,EAAE,YAAY,GACd,OAAO,CAAC,YAAY,CAAC,CAwPvB"} \ No newline at end of file diff --git a/dist/helpers/secret.js b/dist/helpers/secret.js deleted file mode 100644 index a3959436a..000000000 --- a/dist/helpers/secret.js +++ /dev/null @@ -1,246 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.secretHelperFactory = void 0; -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const secretjs_1 = require("secretjs"); -// TODO -const TRANSFER_GASL = new bignumber_js_1.default(0); -// TODO -const UNFREEZE_GASL = new bignumber_js_1.default(0); -async function secretHelperFactory(p) { - const queryClient = await secretjs_1.SecretNetworkClient.create({ - grpcWebUrl: p.rpcUrl, - chainId: p.chainId, - }); - // TODO - const gasPrice = 1; - async function isApprovedForMinter(sender, nft) { - const approval = await sender.query.snip721.GetTokenInfo({ - auth: { - viewer: { - address: sender.address, - viewing_key: nft.native.vk, - }, - }, - contract: { - address: nft.collectionIdent, - codeHash: nft.native.contractHash, - }, - token_id: nft.native.tokenId, - }); - for (let appr of approval.all_nft_info.access.approvals) { - if ( - appr["spender"].toLowerCase() === p.bridge.contractAddress.toLowerCase() - ) { - return true; - } - } - return false; - } - async function preTransfer(sender, nft) { - // TODO: check if approved - if (await isApprovedForMinter(sender, nft)) { - return undefined; - } - const res = await sender.tx.compute.executeContract( - { - sender: sender.address, - contractAddress: nft.native.contract, - codeHash: nft.native.contractHash, - msg: { - approve: { - spender: p.bridge.contractAddress, - token_id: nft.native.tokenId, - }, - }, - }, - { - waitForCommit: true, - gasLimit: 250000, - } - ); - return res.transactionHash; - } - return { - getFeeMargin() { - return p.feeMargin; - }, - getProvider() { - return queryClient; - }, - getNonce: () => 0x18, - balance: async (address) => { - const b = await queryClient.query.bank.balance({ - address, - denom: "uscrt", - }); - return new bignumber_js_1.default(b.balance?.amount || 0); - }, - isApprovedForMinter, - async mintNft(signer, args) { - const minter = args.contract ? args.contract : p.umt; - const tx = await signer.tx.compute.executeContract( - { - contractAddress: minter.contractAddress, - codeHash: minter.codeHash, - msg: { - mint_nft: { - public_metadata: { - token_uri: args.url, - }, - owner: signer.address, - transferable: true, - }, - }, - sender: signer.address, - }, - { - waitForCommit: true, - gasLimit: 500000, - } - ); - return tx; - }, - XpNft: `${p.xpnft.contractAddress},${p.xpnft.codeHash}`, - validateAddress: async (a) => { - try { - secretjs_1.Bech32.decode(a); - return true; - } catch { - return false; - } - }, - async nftList(owner, vk, contractAddress, codeHash) { - const auth = { - viewer: { - viewing_key: vk, - address: owner, - }, - }; - const contract = { - address: contractAddress, - codeHash: codeHash || "", - }; - const { token_list } = await queryClient.query.snip721.GetOwnedTokens({ - contract, - auth, - owner, - }); - const response = []; - await Promise.all( - token_list?.tokens?.map(async (token) => { - const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ - contract, - auth, - token_id: token, - }); - response.push({ - collectionIdent: contractAddress, - uri: tokenInfo.all_nft_info.info?.token_uri || "", - native: { - chainId: p.chainId, - contract: contractAddress, - contractHash: codeHash || "", - tokenId: token, - vk, - metadata: tokenInfo.all_nft_info.info?.extension, - }, - }); - }) - ); - return response; - }, - estimateValidateTransferNft: async () => { - return TRANSFER_GASL.times(gasPrice); - }, - estimateValidateUnfreezeNft: async () => { - return UNFREEZE_GASL.times(gasPrice); - }, - async setViewingKey(client, contract, vk) { - const tx = await client.tx.snip721.setViewingKey( - { - contractAddress: contract, - msg: { - set_viewing_key: { - key: vk, - }, - }, - sender: client.address, - }, - { - waitForCommit: true, - gasLimit: 500000, - } - ); - return tx; - }, - preTransfer, - preUnfreeze: preTransfer, - transferNftToForeign: async (wallet, chainNonce, to, nft, fee, mw) => { - const tx = await wallet.tx.compute.executeContract( - { - sender: wallet.address, - contractAddress: p.bridge.contractAddress, - codeHash: p.bridge.codeHash, - msg: { - freeze_nft: { - contract: nft.native.contract, - contract_hash: nft.native.contractHash, - viewer: { - viewing_key: nft.native.vk, - address: wallet.address, - }, - token_id: nft.native.tokenId, - to, - chain_nonce: chainNonce, - minter: mw, - }, - }, - sentFunds: [ - { - denom: "uscrt", - amount: fee.toString(10), - }, - ], - }, - { waitForCommit: true, gasLimit: 500000 } - ); - await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); - return tx; - }, - unfreezeWrappedNft: async (wallet, to, nft, fee, chainNonce) => { - const tx = await wallet.tx.compute.executeContract( - { - sender: wallet.address, - contractAddress: p.bridge.contractAddress, - codeHash: p.bridge.codeHash, - msg: { - withdraw_nft: { - burner: nft.native.contract, - burner_hash: nft.native.contractHash, - token_id: nft.native.tokenId, - to, - chain_nonce: Number(chainNonce), - }, - }, - sentFunds: [ - { - denom: "uscrt", - amount: fee.toString(10), - }, - ], - }, - { waitForCommit: true, gasLimit: 500000 } - ); - await p.notifier.notifySecret(tx.transactionHash, nft.native.vk); - return tx; - }, - }; -} -exports.secretHelperFactory = secretHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFxQztBQUNyQyx1Q0FBMkQ7QUF1RjNELE9BQU87QUFDUCxNQUFNLGFBQWEsR0FBRyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdkMsT0FBTztBQUNQLE1BQU0sYUFBYSxHQUFHLElBQUksc0JBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVoQyxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLENBQWU7SUFFZixNQUFNLFdBQVcsR0FBRyxNQUFNLDhCQUFtQixDQUFDLE1BQU0sQ0FBQztRQUNuRCxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDcEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO0tBQ25CLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFFbkIsS0FBSyxVQUFVLG1CQUFtQixDQUNoQyxNQUFvQixFQUNwQixHQUEyQjtRQUUzQixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUN2RCxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztvQkFDdkIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtpQkFDM0I7YUFDRjtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsR0FBRyxDQUFDLGVBQWU7Z0JBQzVCLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVk7YUFDbEM7WUFDRCxRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1NBQzdCLENBQUMsQ0FBQztRQUNILEtBQUssSUFBSSxJQUFJLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ3ZELElBQ0csSUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtnQkFDdEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEVBQ3RDO2dCQUNBLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUssVUFBVSxXQUFXLENBQ3hCLE1BQW9CLEVBQ3BCLEdBQTJCO1FBRTNCLDBCQUEwQjtRQUMxQixJQUFJLE1BQU0sbUJBQW1CLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQzFDLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQ2pEO1lBQ0UsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3RCLGVBQWUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDcEMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUNqQyxHQUFHLEVBQUU7Z0JBQ0gsT0FBTyxFQUFFO29CQUNQLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWU7b0JBQ2pDLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU87aUJBQzdCO2FBQ0Y7U0FDRixFQUNEO1lBQ0UsYUFBYSxFQUFFLElBQUk7WUFDbkIsUUFBUSxFQUFFLE1BQU87U0FDbEIsQ0FDRixDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUMsZUFBZSxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPO1FBQ0wsWUFBWTtZQUNWLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsV0FBVztZQUNULE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtRQUNwQixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUM3QyxPQUFPO2dCQUNQLEtBQUssRUFBRSxPQUFPO2FBQ2YsQ0FBQyxDQUFDO1lBRUgsT0FBTyxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELG1CQUFtQjtRQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJO1lBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDckQsTUFBTSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQ2hEO2dCQUNFLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtnQkFDdkMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO2dCQUN6QixHQUFHLEVBQUU7b0JBQ0gsUUFBUSxFQUFFO3dCQUNSLGVBQWUsRUFBRTs0QkFDZixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUc7eUJBQ3BCO3dCQUNELEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTzt3QkFDckIsWUFBWSxFQUFFLElBQUk7cUJBQ25CO2lCQUNvQjtnQkFDdkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPO2FBQ3ZCLEVBQ0Q7Z0JBQ0UsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLFFBQVEsRUFBRSxNQUFPO2FBQ2xCLENBQ0YsQ0FBQztZQUNGLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1FBQ3ZELGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsSUFBSTtnQkFDRixpQkFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUFDLE1BQU07Z0JBQ04sT0FBTyxLQUFLLENBQUM7YUFDZDtRQUNILENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLFFBQVE7WUFDaEQsTUFBTSxJQUFJLEdBQUc7Z0JBQ1gsTUFBTSxFQUFFO29CQUNKLFdBQVcsRUFBRSxFQUFFO29CQUNmLE9BQU8sRUFBRSxLQUFLO2lCQUNqQjthQUNKLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBRztnQkFDYixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsUUFBUSxFQUFFLFFBQVEsSUFBSSxFQUFFO2FBQzNCLENBQUM7WUFFRixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7Z0JBQ2xFLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixLQUFLO2FBQ1IsQ0FBMkIsQ0FBQztZQUU3QixNQUFNLFFBQVEsR0FBNkIsRUFBRSxDQUFDO1lBRTlDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDYixVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3BDLE1BQU0sU0FBUyxHQUFHLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO29CQUMzRCxRQUFRO29CQUNSLElBQUk7b0JBQ0osUUFBUSxFQUFFLEtBQUs7aUJBQ2xCLENBQUMsQ0FBQztnQkFDSCxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNWLGVBQWUsRUFBRSxlQUFlO29CQUNoQyxHQUFHLEVBQUUsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxJQUFJLEVBQUU7b0JBQ2pELE1BQU0sRUFBRTt3QkFDSixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLFFBQVEsRUFBRSxlQUFlO3dCQUN6QixZQUFZLEVBQUUsUUFBUSxJQUFJLEVBQUU7d0JBQzVCLE9BQU8sRUFBRSxLQUFLO3dCQUNkLEVBQUU7d0JBQ0YsUUFBUSxFQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFNBQVM7cUJBQ25EO2lCQUNKLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUNMLENBQUM7WUFDQSxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBQ0QsMkJBQTJCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdEMsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCwyQkFBMkIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN0QyxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQ3RDLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUM5QztnQkFDRSxlQUFlLEVBQUUsUUFBUTtnQkFDekIsR0FBRyxFQUFFO29CQUNILGVBQWUsRUFBRTt3QkFDZixHQUFHLEVBQUUsRUFBRTtxQkFDUjtpQkFDRjtnQkFDRCxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU87YUFDdkIsRUFDRDtnQkFDRSxhQUFhLEVBQUUsSUFBSTtnQkFDbkIsUUFBUSxFQUFFLE1BQU87YUFDbEIsQ0FDRixDQUFDO1lBQ0YsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsV0FBVztRQUNYLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ25FLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUNoRDtnQkFDRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3RCLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWU7Z0JBQ3pDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVE7Z0JBQzNCLEdBQUcsRUFBRTtvQkFDSCxVQUFVLEVBQUU7d0JBQ1YsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUTt3QkFDN0IsYUFBYSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWTt3QkFDdEMsTUFBTSxFQUFFOzRCQUNOLFdBQVcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQzFCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTzt5QkFDeEI7d0JBQ0QsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDNUIsRUFBRTt3QkFDRixXQUFXLEVBQUUsVUFBVTt3QkFDdkIsTUFBTSxFQUFFLEVBQUU7cUJBQ1g7aUJBQ0Y7Z0JBQ0QsU0FBUyxFQUFFO29CQUNUO3dCQUNFLEtBQUssRUFBRSxPQUFPO3dCQUNkLE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztxQkFDekI7aUJBQ0Y7YUFDRixFQUNELEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTyxFQUFFLENBQzNDLENBQUM7WUFFRixNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVqRSxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFO1lBQzdELE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUNoRDtnQkFDRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3RCLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWU7Z0JBQ3pDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVE7Z0JBQzNCLEdBQUcsRUFBRTtvQkFDSCxZQUFZLEVBQUU7d0JBQ1osTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUTt3QkFDM0IsV0FBVyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWTt3QkFDcEMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDNUIsRUFBRTt3QkFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztxQkFDaEM7aUJBQ0Y7Z0JBQ0QsU0FBUyxFQUFFO29CQUNUO3dCQUNFLEtBQUssRUFBRSxPQUFPO3dCQUNkLE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztxQkFDekI7aUJBQ0Y7YUFDRixFQUNELEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTyxFQUFFLENBQzNDLENBQUM7WUFFRixNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVqRSxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQTFQRCxrREEwUEMifQ== diff --git a/dist/helpers/solana/idl.d.ts b/dist/helpers/solana/idl.d.ts deleted file mode 100644 index 5e3e77a39..000000000 --- a/dist/helpers/solana/idl.d.ts +++ /dev/null @@ -1,898 +0,0 @@ -export type XpBridge = { - version: "0.1.0"; - name: "xp_bridge"; - instructions: [ - { - name: "initialize"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "groupKey"; - type: { - array: ["u8", 32]; - }; - } - ]; - }, - { - name: "validatePause"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "PauseData"; - }; - } - ]; - }, - { - name: "validateUnpause"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "UnpauseData"; - }; - } - ]; - }, - { - name: "validateWithdrawFees"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "WithdrawFeesData"; - }; - } - ]; - }, - { - name: "validateUpdateGroupkey"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "user"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "UpdateGroupkeyData"; - }; - } - ]; - }, - { - name: "validateTransferNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "payer"; - isMut: true; - isSigner: true; - }, - { - name: "authority"; - isMut: false; - isSigner: false; - }, - { - name: "mint"; - isMut: true; - isSigner: false; - }, - { - name: "tokenAccount"; - isMut: true; - isSigner: false; - }, - { - name: "metadataAccount"; - isMut: true; - isSigner: false; - }, - { - name: "editionAccount"; - isMut: true; - isSigner: false; - }, - { - name: "metadataProgram"; - isMut: false; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "rent"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "TransferNftData"; - }; - } - ]; - }, - { - name: "withdrawNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "authority"; - isMut: true; - isSigner: true; - }, - { - name: "mint"; - isMut: true; - isSigner: false; - }, - { - name: "tokenAccount"; - isMut: true; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "chainNonce"; - type: "u8"; - }, - { - name: "to"; - type: "string"; - }, - { - name: "lamports"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }, - { - name: "freezeNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "authority"; - isMut: true; - isSigner: true; - }, - { - name: "from"; - isMut: true; - isSigner: false; - }, - { - name: "to"; - isMut: true; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "chainNonce"; - type: "u8"; - }, - { - name: "to"; - type: "string"; - }, - { - name: "lamports"; - type: "u64"; - }, - { - name: "mintWith"; - type: "string"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }, - { - name: "validateUnfreezeNft"; - accounts: [ - { - name: "bridge"; - isMut: true; - isSigner: false; - }, - { - name: "from"; - isMut: true; - isSigner: false; - }, - { - name: "to"; - isMut: true; - isSigner: false; - }, - { - name: "tokenProgram"; - isMut: false; - isSigner: false; - }, - { - name: "consumedAction"; - isMut: true; - isSigner: false; - }, - { - name: "payer"; - isMut: true; - isSigner: true; - }, - { - name: "systemProgram"; - isMut: false; - isSigner: false; - }, - { - name: "instructionAcc"; - isMut: false; - isSigner: false; - } - ]; - args: [ - { - name: "data"; - type: { - defined: "UnfreezeNftData"; - }; - } - ]; - } - ]; - accounts: [ - { - name: "bridge"; - type: { - kind: "struct"; - fields: [ - { - name: "paused"; - type: "bool"; - }, - { - name: "groupKey"; - type: { - array: ["u8", 32]; - }; - }, - { - name: "actionId"; - type: "u128"; - } - ]; - }; - }, - { - name: "consumedAction"; - type: { - kind: "struct"; - fields: [ - { - name: "consumed"; - type: "bool"; - } - ]; - }; - } - ]; - types: [ - { - name: "PauseData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }; - }, - { - name: "UnpauseData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }; - }, - { - name: "UpdateGroupkeyData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - }, - { - name: "newKey"; - type: { - array: ["u8", 32]; - }; - } - ]; - }; - }, - { - name: "TransferNftData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - }, - { - name: "authBump"; - type: "u8"; - }, - { - name: "chainNonce"; - type: "u64"; - }, - { - name: "name"; - type: "string"; - }, - { - name: "symbol"; - type: "string"; - }, - { - name: "uri"; - type: "string"; - }, - { - name: "owner"; - type: "publicKey"; - }, - { - name: "collection"; - type: { - option: { - defined: "AnchorCollection"; - }; - }; - }, - { - name: "sellerFeeBasisPoints"; - type: { - option: "u16"; - }; - }, - { - name: "creators"; - type: { - option: { - vec: { - defined: "AnchorCreator"; - }; - }; - }; - } - ]; - }; - }, - { - name: "AnchorDataV2"; - type: { - kind: "struct"; - fields: [ - { - name: "name"; - docs: ["The name of the asset"]; - type: "string"; - }, - { - name: "symbol"; - docs: ["The symbol for the asset"]; - type: "string"; - }, - { - name: "uri"; - docs: ["URI pointing to JSON representing the asset"]; - type: "string"; - }, - { - name: "sellerFeeBasisPoints"; - docs: [ - "Royalty basis points that goes to creators in secondary sales (0-10000)" - ]; - type: "u16"; - }, - { - name: "creators"; - docs: ["Array of creators, optional"]; - type: { - option: { - vec: { - defined: "AnchorCreator"; - }; - }; - }; - }, - { - name: "collection"; - docs: ["Collection"]; - type: { - option: { - defined: "AnchorCollection"; - }; - }; - }, - { - name: "uses"; - docs: ["Uses"]; - type: { - option: { - defined: "AnchorUses"; - }; - }; - } - ]; - }; - }, - { - name: "AnchorCreator"; - type: { - kind: "struct"; - fields: [ - { - name: "address"; - type: "publicKey"; - }, - { - name: "verified"; - type: "bool"; - }, - { - name: "share"; - type: "u8"; - } - ]; - }; - }, - { - name: "AnchorCollection"; - type: { - kind: "struct"; - fields: [ - { - name: "verified"; - type: "bool"; - }, - { - name: "key"; - type: "publicKey"; - } - ]; - }; - }, - { - name: "AnchorUses"; - type: { - kind: "struct"; - fields: [ - { - name: "useMethod"; - type: { - defined: "AnchorUseMethod"; - }; - }, - { - name: "remaining"; - type: "u64"; - }, - { - name: "total"; - type: "u64"; - } - ]; - }; - }, - { - name: "WithdrawFeesData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - } - ]; - }; - }, - { - name: "UnfreezeNftData"; - type: { - kind: "struct"; - fields: [ - { - name: "actionId"; - type: "u64"; - }, - { - name: "bridgeBump"; - type: "u8"; - }, - { - name: "receiver"; - type: "publicKey"; - }, - { - name: "mint"; - type: "publicKey"; - } - ]; - }; - }, - { - name: "AnchorUseMethod"; - type: { - kind: "enum"; - variants: [ - { - name: "Burn"; - }, - { - name: "Multiple"; - }, - { - name: "Single"; - } - ]; - }; - } - ]; - events: [ - { - name: "TransferNft"; - fields: [ - { - name: "chainNonce"; - type: "u8"; - index: false; - }, - { - name: "to"; - type: "string"; - index: true; - }, - { - name: "mint"; - type: "publicKey"; - index: false; - }, - { - name: "actionId"; - type: "u128"; - index: false; - }, - { - name: "mintWith"; - type: "string"; - index: false; - }, - { - name: "lamports"; - type: "u64"; - index: false; - } - ]; - }, - { - name: "UnfreezeNft"; - fields: [ - { - name: "chainNonce"; - type: "u8"; - index: false; - }, - { - name: "to"; - type: "string"; - index: true; - }, - { - name: "actionId"; - type: "u128"; - index: false; - }, - { - name: "mint"; - type: "publicKey"; - index: false; - }, - { - name: "lamports"; - type: "u64"; - index: false; - } - ]; - } - ]; - errors: [ - { - code: 6000; - name: "Paused"; - msg: "Pausable: paused"; - }, - { - code: 6001; - name: "Unpaused"; - msg: "Pausable: unpaused"; - }, - { - code: 6002; - name: "AlreadyMinted"; - msg: "Already minted"; - }, - { - code: 6003; - name: "AlreadyBurned"; - msg: "Already burned"; - }, - { - code: 6004; - name: "InstructionAtWrongIndex"; - msg: "instruction at wrong index"; - }, - { - code: 6005; - name: "InvalidEd25519Instruction"; - msg: "invalid ed25519 instruction"; - }, - { - code: 6006; - name: "InvalidGroupKey"; - msg: "invalid group key"; - }, - { - code: 6007; - name: "InvalidProgramId"; - msg: "invalid program id"; - }, - { - code: 6008; - name: "InvalidArgs"; - msg: "invalid args"; - }, - { - code: 6009; - name: "InvalidActionId"; - msg: "invalid action id"; - }, - { - code: 6010; - name: "DuplicatedAction"; - msg: "duplicated action"; - }, - { - code: 6011; - name: "IncorrectOwner"; - msg: "incorrect owner"; - }, - { - code: 6012; - name: "InvalidMint"; - msg: "invalid mint"; - }, - { - code: 6013; - name: "InsufficientFundsForTransaction"; - msg: "insufficient funds for transaction"; - } - ]; -}; -export declare const IDL: XpBridge; -//# sourceMappingURL=idl.d.ts.map diff --git a/dist/helpers/solana/idl.d.ts.map b/dist/helpers/solana/idl.d.ts.map deleted file mode 100644 index 0abc367e8..000000000 --- a/dist/helpers/solana/idl.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"idl.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/idl.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/solana/idl.js b/dist/helpers/solana/idl.js deleted file mode 100644 index 7c914eff2..000000000 --- a/dist/helpers/solana/idl.js +++ /dev/null @@ -1,900 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IDL = void 0; -exports.IDL = { - version: "0.1.0", - name: "xp_bridge", - instructions: [ - { - name: "initialize", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "groupKey", - type: { - array: ["u8", 32], - }, - }, - ], - }, - { - name: "validatePause", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "PauseData", - }, - }, - ], - }, - { - name: "validateUnpause", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UnpauseData", - }, - }, - ], - }, - { - name: "validateWithdrawFees", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "WithdrawFeesData", - }, - }, - ], - }, - { - name: "validateUpdateGroupkey", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "user", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UpdateGroupkeyData", - }, - }, - ], - }, - { - name: "validateTransferNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "payer", - isMut: true, - isSigner: true, - }, - { - name: "authority", - isMut: false, - isSigner: false, - }, - { - name: "mint", - isMut: true, - isSigner: false, - }, - { - name: "tokenAccount", - isMut: true, - isSigner: false, - }, - { - name: "metadataAccount", - isMut: true, - isSigner: false, - }, - { - name: "editionAccount", - isMut: true, - isSigner: false, - }, - { - name: "metadataProgram", - isMut: false, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "rent", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "TransferNftData", - }, - }, - ], - }, - { - name: "withdrawNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "authority", - isMut: true, - isSigner: true, - }, - { - name: "mint", - isMut: true, - isSigner: false, - }, - { - name: "tokenAccount", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "chainNonce", - type: "u8", - }, - { - name: "to", - type: "string", - }, - { - name: "lamports", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - { - name: "freezeNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "authority", - isMut: true, - isSigner: true, - }, - { - name: "from", - isMut: true, - isSigner: false, - }, - { - name: "to", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "chainNonce", - type: "u8", - }, - { - name: "to", - type: "string", - }, - { - name: "lamports", - type: "u64", - }, - { - name: "mintWith", - type: "string", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - { - name: "validateUnfreezeNft", - accounts: [ - { - name: "bridge", - isMut: true, - isSigner: false, - }, - { - name: "from", - isMut: true, - isSigner: false, - }, - { - name: "to", - isMut: true, - isSigner: false, - }, - { - name: "tokenProgram", - isMut: false, - isSigner: false, - }, - { - name: "consumedAction", - isMut: true, - isSigner: false, - }, - { - name: "payer", - isMut: true, - isSigner: true, - }, - { - name: "systemProgram", - isMut: false, - isSigner: false, - }, - { - name: "instructionAcc", - isMut: false, - isSigner: false, - }, - ], - args: [ - { - name: "data", - type: { - defined: "UnfreezeNftData", - }, - }, - ], - }, - ], - accounts: [ - { - name: "bridge", - type: { - kind: "struct", - fields: [ - { - name: "paused", - type: "bool", - }, - { - name: "groupKey", - type: { - array: ["u8", 32], - }, - }, - { - name: "actionId", - type: "u128", - }, - ], - }, - }, - { - name: "consumedAction", - type: { - kind: "struct", - fields: [ - { - name: "consumed", - type: "bool", - }, - ], - }, - }, - ], - types: [ - { - name: "PauseData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - }, - { - name: "UnpauseData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - }, - { - name: "UpdateGroupkeyData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - { - name: "newKey", - type: { - array: ["u8", 32], - }, - }, - ], - }, - }, - { - name: "TransferNftData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - { - name: "authBump", - type: "u8", - }, - { - name: "chainNonce", - type: "u64", - }, - { - name: "name", - type: "string", - }, - { - name: "symbol", - type: "string", - }, - { - name: "uri", - type: "string", - }, - { - name: "owner", - type: "publicKey", - }, - { - name: "collection", - type: { - option: { - defined: "AnchorCollection", - }, - }, - }, - { - name: "sellerFeeBasisPoints", - type: { - option: "u16", - }, - }, - { - name: "creators", - type: { - option: { - vec: { - defined: "AnchorCreator", - }, - }, - }, - }, - ], - }, - }, - { - name: "AnchorDataV2", - type: { - kind: "struct", - fields: [ - { - name: "name", - docs: ["The name of the asset"], - type: "string", - }, - { - name: "symbol", - docs: ["The symbol for the asset"], - type: "string", - }, - { - name: "uri", - docs: ["URI pointing to JSON representing the asset"], - type: "string", - }, - { - name: "sellerFeeBasisPoints", - docs: [ - "Royalty basis points that goes to creators in secondary sales (0-10000)", - ], - type: "u16", - }, - { - name: "creators", - docs: ["Array of creators, optional"], - type: { - option: { - vec: { - defined: "AnchorCreator", - }, - }, - }, - }, - { - name: "collection", - docs: ["Collection"], - type: { - option: { - defined: "AnchorCollection", - }, - }, - }, - { - name: "uses", - docs: ["Uses"], - type: { - option: { - defined: "AnchorUses", - }, - }, - }, - ], - }, - }, - { - name: "AnchorCreator", - type: { - kind: "struct", - fields: [ - { - name: "address", - type: "publicKey", - }, - { - name: "verified", - type: "bool", - }, - { - name: "share", - type: "u8", - }, - ], - }, - }, - { - name: "AnchorCollection", - type: { - kind: "struct", - fields: [ - { - name: "verified", - type: "bool", - }, - { - name: "key", - type: "publicKey", - }, - ], - }, - }, - { - name: "AnchorUses", - type: { - kind: "struct", - fields: [ - { - name: "useMethod", - type: { - defined: "AnchorUseMethod", - }, - }, - { - name: "remaining", - type: "u64", - }, - { - name: "total", - type: "u64", - }, - ], - }, - }, - { - name: "WithdrawFeesData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - ], - }, - }, - { - name: "UnfreezeNftData", - type: { - kind: "struct", - fields: [ - { - name: "actionId", - type: "u64", - }, - { - name: "bridgeBump", - type: "u8", - }, - { - name: "receiver", - type: "publicKey", - }, - { - name: "mint", - type: "publicKey", - }, - ], - }, - }, - { - name: "AnchorUseMethod", - type: { - kind: "enum", - variants: [ - { - name: "Burn", - }, - { - name: "Multiple", - }, - { - name: "Single", - }, - ], - }, - }, - ], - events: [ - { - name: "TransferNft", - fields: [ - { - name: "chainNonce", - type: "u8", - index: false, - }, - { - name: "to", - type: "string", - index: true, - }, - { - name: "mint", - type: "publicKey", - index: false, - }, - { - name: "actionId", - type: "u128", - index: false, - }, - { - name: "mintWith", - type: "string", - index: false, - }, - { - name: "lamports", - type: "u64", - index: false, - }, - ], - }, - { - name: "UnfreezeNft", - fields: [ - { - name: "chainNonce", - type: "u8", - index: false, - }, - { - name: "to", - type: "string", - index: true, - }, - { - name: "actionId", - type: "u128", - index: false, - }, - { - name: "mint", - type: "publicKey", - index: false, - }, - { - name: "lamports", - type: "u64", - index: false, - }, - ], - }, - ], - errors: [ - { - code: 6000, - name: "Paused", - msg: "Pausable: paused", - }, - { - code: 6001, - name: "Unpaused", - msg: "Pausable: unpaused", - }, - { - code: 6002, - name: "AlreadyMinted", - msg: "Already minted", - }, - { - code: 6003, - name: "AlreadyBurned", - msg: "Already burned", - }, - { - code: 6004, - name: "InstructionAtWrongIndex", - msg: "instruction at wrong index", - }, - { - code: 6005, - name: "InvalidEd25519Instruction", - msg: "invalid ed25519 instruction", - }, - { - code: 6006, - name: "InvalidGroupKey", - msg: "invalid group key", - }, - { - code: 6007, - name: "InvalidProgramId", - msg: "invalid program id", - }, - { - code: 6008, - name: "InvalidArgs", - msg: "invalid args", - }, - { - code: 6009, - name: "InvalidActionId", - msg: "invalid action id", - }, - { - code: 6010, - name: "DuplicatedAction", - msg: "duplicated action", - }, - { - code: 6011, - name: "IncorrectOwner", - msg: "incorrect owner", - }, - { - code: 6012, - name: "InvalidMint", - msg: "invalid mint", - }, - { - code: 6013, - name: "InsufficientFundsForTransaction", - msg: "insufficient funds for transaction", - }, - ], -}; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvc29sYW5hL2lkbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpNEJhLFFBQUEsR0FBRyxHQUFhO0lBQzNCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLElBQUksRUFBRSxXQUFXO0lBQ2pCLFlBQVksRUFBRTtRQUNaO1lBQ0UsSUFBSSxFQUFFLFlBQVk7WUFDbEIsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRSxLQUFLO2lCQUNoQjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZUFBZTtvQkFDckIsS0FBSyxFQUFFLEtBQUs7b0JBQ1osUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0o7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3FCQUNsQjtpQkFDRjthQUNGO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxlQUFlO1lBQ3JCLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsS0FBSztpQkFDaEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2dCQUNEO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNEO29CQUNFLElBQUksRUFBRSxlQUFlO29CQUNy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 diff --git a/dist/helpers/solana/index.d.ts b/dist/helpers/solana/index.d.ts deleted file mode 100644 index 593d9f3fc..000000000 --- a/dist/helpers/solana/index.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Wallet } from "@project-serum/anchor"; -import { Connection } from "@solana/web3.js"; -import { EvNotifier } from "../../notifier"; -import { - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - GetProvider, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, - MintNft, -} from "../chain"; -export type SolanaSigner = Wallet; -export type SolanaNft = { - nftMint: string; -}; -type SolanaMintArgs = { - uri: string; -}; -export type SolanaHelper = ChainNonceGet & - BalanceCheck & - MintNft & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - connection: Connection; - } & { - XpNft: string; - } & GetFeeMargins & - GetProvider; -export type SolanaParams = { - endpoint: string; - bridgeContractAddr: string; - xpnftAddr: string; - notifier: EvNotifier; - feeMargin: FeeMargins; -}; -export declare function solanaHelper(args: SolanaParams): Promise; -export {}; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/helpers/solana/index.d.ts.map b/dist/helpers/solana/index.d.ts.map deleted file mode 100644 index 5a884f5d9..000000000 --- a/dist/helpers/solana/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/solana/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,MAAM,EAKP,MAAM,uBAAuB,CAAC;AAY/B,OAAO,EACL,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACR,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,aAAa,GACtC,YAAY,GACZ,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,GAC7C,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,GACnD,cAAc,CAAC,SAAS,CAAC,GACzB,eAAe,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,GACrC,WAAW,CAAC,UAAU,CAAC,CAAC;AAE1B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AA4DF,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuN5E"} \ No newline at end of file diff --git a/dist/helpers/solana/index.js b/dist/helpers/solana/index.js deleted file mode 100644 index 20abaa878..000000000 --- a/dist/helpers/solana/index.js +++ /dev/null @@ -1,273 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.solanaHelper = void 0; -/*import { - Metaplex, - bundlrStorage, - walletAdapterIdentity, -} from "@metaplex-foundation/js";*/ -const anchor_1 = require("@project-serum/anchor"); -const spl_token_1 = require("@solana/spl-token"); -const web3_js_1 = require("@solana/web3.js"); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const __1 = require("../.."); -const idl_1 = require("./idl"); -// Based on https://github.com/solana-labs/solana-program-library/blob/118bd047aa0f1ba1930b5bc4639d40aa2a375ccb/token/js/src/actions/getOrCreateAssociatedTokenAccount.ts -async function getOrCreateAssociatedTokenAccount( - connection, - payer, - mint, - owner, - allowOwnerOffCurve = false -) { - const provider = new anchor_1.AnchorProvider(connection, payer, {}); - const associatedToken = await (0, spl_token_1.getAssociatedTokenAddress)( - mint, - owner, - allowOwnerOffCurve - ); - // This is the optimal logic, considering TX fee, client-side computation, RPC roundtrips and guaranteed idempotent. - // Sadly we can't do this atomically. - let account; - try { - account = await (0, spl_token_1.getAccount)(connection, associatedToken); - } catch (error) { - // TokenAccountNotFoundError can be possible if the associated address has already received some lamports, - // becoming a system account. Assuming program derived addressing is safe, this is the only case for the - // TokenInvalidAccountOwnerError in this code path. - if ( - error instanceof spl_token_1.TokenAccountNotFoundError || - error instanceof spl_token_1.TokenInvalidAccountOwnerError - ) { - // As this isn't atomic, it's possible others can create associated accounts meanwhile. - try { - const transaction = new web3_js_1.Transaction().add( - (0, spl_token_1.createAssociatedTokenAccountInstruction)( - payer.publicKey, - associatedToken, - owner, - mint - ) - ); - await provider.sendAndConfirm(transaction); - } catch (error) { - // Ignore all errors; for now there is no API-compatible way to selectively ignore the expected - // instruction error if the associated account exists already. - } - // Now this should always succeed - account = await (0, spl_token_1.getAccount)(connection, associatedToken); - } else { - throw error; - } - } - if (!account.mint.equals(mint)) throw new spl_token_1.TokenInvalidMintError(); - if (!account.owner.equals(owner)) - throw new spl_token_1.TokenInvalidOwnerError(); - return account; -} -async function solanaHelper(args) { - const conn = new web3_js_1.Connection(args.endpoint); - async function getOrCreateTokenAccount(mint, owner, provider) { - const tokenProgram = anchor_1.Spl.token(provider); - const program = anchor_1.Spl.associatedToken(provider); - const [associatedToken] = await web3_js_1.PublicKey.findProgramAddress( - [owner.toBuffer(), tokenProgram.programId.toBuffer(), mint.toBuffer()], - program.programId - ); - try { - const tokenAccount = await tokenProgram.account.token.fetch( - associatedToken - ); - return { - address: associatedToken, - owner: tokenAccount.authority, - ...tokenAccount, - }; - } catch (e) { - try { - await program.methods - .create() - .accounts({ - mint, - owner, - associatedAccount: associatedToken, - }) - .rpc(); - const tokenAccount = await tokenProgram.account.token.fetch( - associatedToken - ); - return { - address: associatedToken, - owner: tokenAccount.authority, - ...tokenAccount, - }; - } catch (e) { - throw e; - } - } - } - return { - XpNft: args.xpnftAddr, - connection: conn, - async balance(address) { - return new bignumber_js_1.default( - await conn.getBalance(new web3_js_1.PublicKey(address)) - ); - }, - getNonce: () => __1.Chain.SOLANA, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { - const provider = new anchor_1.AnchorProvider(conn, sender, {}); - const bridgeContract = new anchor_1.Program( - idl_1.IDL, - args.bridgeContractAddr, - provider - ); - const [bridge, bridgeBump] = await web3_js_1.PublicKey.findProgramAddress( - [Buffer.from("bridge")], - bridgeContract.programId - ); - const mintAddr = new web3_js_1.PublicKey(id.native.nftMint); - const fromTokenAcc = await getOrCreateTokenAccount( - mintAddr, - sender.publicKey, - provider - ); - const toAccount = await getOrCreateTokenAccount( - mintAddr, - bridge, - provider - ); - const tx = await bridgeContract.methods - .freezeNft( - chain_nonce, - to, - new anchor_1.BN(txFees.toString(10)), - mintWith, - bridgeBump - ) - .accounts({ - bridge, - authority: sender.publicKey, - from: fromTokenAcc.address, - to: toAccount.address, - tokenProgram: spl_token_1.TOKEN_PROGRAM_ID, - }) - .rpc(); - await args.notifier.notifySolana(tx); - return tx; - }, - getFeeMargin() { - return args.feeMargin; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - console.log(`Unfreezing`); - const provider = new anchor_1.AnchorProvider(conn, sender, {}); - const bridgeContract = new anchor_1.Program( - idl_1.IDL, - args.bridgeContractAddr, - provider - ); - const [bridge, bridgeBump] = await web3_js_1.PublicKey.findProgramAddress( - [Buffer.from("bridge")], - bridgeContract.programId - ); - const mintAddr = new web3_js_1.PublicKey(id.native.nftMint); - const tokenAcc = await getOrCreateAssociatedTokenAccount( - conn, - sender, - mintAddr, - sender.publicKey - ).catch((e) => { - console.error(e); - throw e; - }); - const tx = await bridgeContract.methods - .withdrawNft( - parseInt(nonce), - to, - new anchor_1.BN(txFees.toString(10)), - bridgeBump - ) - .accounts({ - bridge, - authority: sender.publicKey, - mint: tokenAcc.mint, - tokenAccount: tokenAcc.address, - tokenProgram: spl_token_1.TOKEN_PROGRAM_ID, - }) - .rpc(); - await args.notifier.notifySolana(tx); - return tx; - }, - getProvider() { - return conn; - }, - async mintNft() { - /*console.log(Metaplex, walletAdapterIdentity, bundlrStorage); - console.log(args, "args"); - console.log(sender, "sender"); - const provider = new AnchorProvider(conn, sender, {}); - console.log(provider.wallet, "provider"); - - /*const txn = await conn.requestAirdrop( - sender.publicKey, - LAMPORTS_PER_SOL * 2 - ); - const block = await conn.getLatestBlockhash(); - const sig = conn.confirmTransaction( - { - blockhash: block.blockhash, - lastValidBlockHeight: block.lastValidBlockHeight, - signature: txn, - }, - "finalized" - ); - console.log(`Airdrop: ${txn}`); - console.log(`sig ${sig}`); - console.log(`Waiting for 5s`); - await new Promise((r) => setTimeout(r, 5000)); - //sender.payer.secretKey. - const _metaplex = Metaplex.make(conn) - .use(walletAdapterIdentity(sender)) - .use(bundlrStorage()); - const nftc = _metaplex.nfts(); - - const _col = await nftc.create( - { - name: "Uniair1", - symbol: "UNIAIRT", - - uri: args.uri, - sellerFeeBasisPoints: 0, - }, - { - commitment: "processed", - } - ); - - console.log(_col);*/ - return ""; - }, - async estimateValidateTransferNft() { - return new bignumber_js_1.default(0); // TODO - }, - async estimateValidateUnfreezeNft() { - return new bignumber_js_1.default(0); // TODO - }, - async validateAddress(adr) { - try { - new web3_js_1.PublicKey(adr); - return true; - } catch { - return false; - } - }, - }; -} -exports.solanaHelper = solanaHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9zb2xhbmEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7bUNBSW1DO0FBQ25DLGtEQU0rQjtBQUMvQixpREFVMkI7QUFDM0IsNkNBS3lCO0FBRXpCLGdFQUFxQztBQUNyQyw2QkFBOEI7QUFjOUIsK0JBQTRCO0FBK0I1Qix5S0FBeUs7QUFDekssS0FBSyxVQUFVLGlDQUFpQyxDQUM5QyxVQUFzQixFQUN0QixLQUFtQixFQUNuQixJQUFlLEVBQ2YsS0FBZ0IsRUFDaEIsa0JBQWtCLEdBQUcsS0FBSztJQUUxQixNQUFNLFFBQVEsR0FBRyxJQUFJLHVCQUFjLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUEscUNBQXlCLEVBQ3JELElBQUksRUFDSixLQUFLLEVBQ0wsa0JBQWtCLENBQ25CLENBQUM7SUFFRixvSEFBb0g7SUFDcEgscUNBQXFDO0lBQ3JDLElBQUksT0FBZ0IsQ0FBQztJQUNyQixJQUFJO1FBQ0YsT0FBTyxHQUFHLE1BQU0sSUFBQSxzQkFBVSxFQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztLQUN6RDtJQUFDLE9BQU8sS0FBYyxFQUFFO1FBQ3ZCLDBHQUEwRztRQUMxRyx3R0FBd0c7UUFDeEcsbURBQW1EO1FBQ25ELElBQ0UsS0FBSyxZQUFZLHFDQUF5QjtZQUMxQyxLQUFLLFlBQVkseUNBQTZCLEVBQzlDO1lBQ0EsdUZBQXVGO1lBQ3ZGLElBQUk7Z0JBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQkFBVyxFQUFFLENBQUMsR0FBRyxDQUN2QyxJQUFBLG1EQUF1QyxFQUNyQyxLQUFLLENBQUMsU0FBUyxFQUNmLGVBQWUsRUFDZixLQUFLLEVBQ0wsSUFBSSxDQUNMLENBQ0YsQ0FBQztnQkFFRixNQUFNLFFBQVEsQ0FBQyxjQUFj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 diff --git a/dist/helpers/tezos.d.ts b/dist/helpers/tezos.d.ts deleted file mode 100644 index 59818aad1..000000000 --- a/dist/helpers/tezos.d.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { - BalanceCheck, - ChainNonceGet, - EstimateTxFees, - MintNft, - NftInfo, - PreTransfer, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, -} from ".."; -import { Signer, TezosToolkit, WalletProvider } from "@taquito/taquito"; -import { EvNotifier } from "../notifier"; -import { - FeeMargins, - GetFeeMargins, - WhitelistCheck, - GetTokenURI, - TransferNftForeignBatch, - UnfreezeForeignNftBatch, - EstimateTxFeesBatch, -} from "./chain"; -type TezosSigner = WalletProvider | Signer; -export type TezosNftInfo = { - contract: string; - token_id: string; - amt: number; -}; -type TezosMintArgs = { - identifier: string; - contract: string; - uri: string; - to: string; - amt: number; -}; -export type TezosHelper = TransferNftForeign< - TezosSigner, - TezosNftInfo, - string -> & - MintNft & - BalanceCheck & - UnfreezeForeignNft & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - EstimateTxFeesBatch & - ValidateAddress & - EstimateTxFees & - ChainNonceGet & - Pick, "preTransfer"> & { - isApprovedForMinter( - nft: NftInfo, - signer: TezosSigner - ): Promise; - } & { - approveForMinter( - address: NftInfo, - sender: TezosSigner - ): Promise; - } & { - XpNft: string; - XpNft1155: string; - } & GetFeeMargins & - WhitelistCheck & - GetTokenURI; -export type TezosParams = { - Tezos: TezosToolkit; - notifier: EvNotifier; - xpnftAddress: string; - bridgeAddress: string; - validators: string[]; - feeMargin: FeeMargins; -}; -export declare function tezosHelperFactory({ - Tezos, - notifier, - xpnftAddress, - bridgeAddress, - validators, - feeMargin, -}: TezosParams): Promise; -export {}; -//# sourceMappingURL=tezos.d.ts.map diff --git a/dist/helpers/tezos.d.ts.map b/dist/helpers/tezos.d.ts.map deleted file mode 100644 index 6462846c6..000000000 --- a/dist/helpers/tezos.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tezos.d.ts","sourceRoot":"","sources":["../../src/helpers/tezos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAOL,MAAM,EACN,YAAY,EAIZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAC1C,WAAW,EACX,YAAY,EACZ,MAAM,CACP,GACC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAC3C,YAAY,GACZ,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GACrD,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,uBAAuB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAC1D,mBAAmB,CAAC,YAAY,CAAC,GACjC,eAAe,GACf,cAAc,CAAC,YAAY,CAAC,GAC5B,aAAa,GACb,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG;IAC1E,mBAAmB,CACjB,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,GAAG;IACF,gBAAgB,CACd,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,GACjB,cAAc,CAAC,YAAY,CAAC,GAC5B,WAAW,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,GACV,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA+OpC"} \ No newline at end of file diff --git a/dist/helpers/tezos.js b/dist/helpers/tezos.js deleted file mode 100644 index 74c7e8f66..000000000 --- a/dist/helpers/tezos.js +++ /dev/null @@ -1,249 +0,0 @@ -"use strict"; -var __createBinding = - (this && this.__createBinding) || - (Object.create - ? function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if ( - !desc || - ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) - ) { - desc = { - enumerable: true, - get: function () { - return m[k]; - }, - }; - } - Object.defineProperty(o, k2, desc); - } - : function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); -var __setModuleDefault = - (this && this.__setModuleDefault) || - (Object.create - ? function (o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } - : function (o, v) { - o["default"] = v; - }); -var __importStar = - (this && this.__importStar) || - function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - }; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.tezosHelperFactory = void 0; -const __1 = require(".."); -const taquito_1 = require("@taquito/taquito"); -const utils = __importStar(require("@taquito/utils")); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -async function tezosHelperFactory({ - Tezos, - notifier, - xpnftAddress, - bridgeAddress, - validators, - feeMargin, -}) { - const estimateGas = (validators, baseprice) => { - return new bignumber_js_1.default(baseprice * (validators.length + 1)); - }; - async function withContract(sender, contract, cb, params) { - if ("publicKeyHash" in sender) { - Tezos.setSignerProvider(sender); - const contractI = await Tezos.contract.at(contract); - const res = cb(contractI); - const tx = await res.send(params); - await tx.confirmation(); - return tx.hash; - } else { - Tezos.setWalletProvider(sender); - const contractI = await Tezos.wallet.at(contract); - const res = cb(contractI); - const estim = await Tezos.estimate - .transfer(res.toTransferParams(params)) - .catch(() => ({ storageLimit: 0 })); - if (params) { - if (!params.storageLimit) params.storageLimit = estim.storageLimit; - } else { - params = { storageLimit: estim.storageLimit }; - } - const tx = await res.send(params); - await tx.confirmation(); - return tx.opHash; - } - } - function withBridge(sender, cb, params) { - return withContract(sender, bridgeAddress, cb, params); - } - function getAddress(sender) { - if ("publicKeyHash" in sender) { - return sender.publicKeyHash(); - } else { - return sender.getPKH(); - } - } - async function isApprovedForMinter(nft, sender) { - const owner = await getAddress(sender); - const contract = await Tezos.contract.at(nft.native.contract); - const storage = await contract.storage(); - const storageOperator = storage.operator || storage.operators; - const args = storage.operator - ? [bridgeAddress, nft.native.token_id, owner] - : { - owner, - operator: bridgeAddress, - token_id: nft.native.token_id, - }; - const op = await storageOperator?.get(args); - return op != undefined; - } - async function notifyValidator(hash) { - await notifier.notifyTezos(hash); - } - async function preTransfer(signer, nft) { - if (await isApprovedForMinter(nft, signer)) { - return; - } - const owner = await getAddress(signer); - return await withContract(signer, nft.native.contract, (contract) => - contract.methods.update_operators([ - { - add_operator: { - owner, - operator: bridgeAddress, - token_id: nft.native.token_id, - }, - }, - ]) - ); - } - let transferNft = async (sender, chain, to, nft, fee, mw, amt) => { - // await preTransfer(sender, nft); - const hash = await withBridge( - sender, - (bridge) => - bridge.methodsObject.freeze_fa2({ - fa2_address: nft.collectionIdent, - token_id: parseInt(nft.native.token_id), - chain_nonce: chain, - to, - mint_with: mw, - amt, - }), - { amount: fee.toNumber() / 1e6 } - ); - notifyValidator(hash); - return hash; - }; - let unfreezeWrappedNft = async (sender, to, nft, fee, nonce, amt) => { - const hash = await withBridge( - sender, - (bridge) => { - return bridge.methodsObject.withdraw_nft({ - amt, - burner: nft.native.contract, - chain_nonce: nonce, - to, - token_id: parseInt(nft.native.token_id), - }); - }, - { amount: fee.toNumber() / 1e6 } - ); - notifyValidator(hash); - return hash; - }; - return { - XpNft: xpnftAddress, - XpNft1155: xpnftAddress, - transferNftToForeign: (sender, chain, to, nft, fee, mw) => - transferNft(sender, chain, to, nft, fee, mw, 1), - transferNftBatchToForeign: ( - sender, - chain_nonce, - to, - id, - mintWith, - txFees - ) => - transferNft(sender, chain_nonce, to, id[0], txFees, mintWith, id.length), - async balance(address) { - return new bignumber_js_1.default( - (await Tezos.tz.getBalance(address)).toString(10) - ); - }, - unfreezeWrappedNftBatch: (sender, chainNonce, to, nfts, txFees) => - unfreezeWrappedNft(sender, to, nfts[0], txFees, chainNonce, nfts.length), - unfreezeWrappedNft: (sender, to, nft, txFees, chainNonce) => - unfreezeWrappedNft(sender, to, nft, txFees, parseInt(chainNonce), 1), - async mintNft(signer, { identifier, contract, uri, to, amt }) { - const metadata = new taquito_1.MichelsonMap(); - metadata.set("", utils.char2Bytes(uri)); - return await withContract(signer, contract, (umt) => - umt.methods.mint(to, amt, metadata, identifier) - ); - }, - async validateAddress(adr) { - return Promise.resolve( - utils.validateAddress(adr) === utils.ValidationResult.VALID - ); - }, - getNonce() { - return __1.Chain.TEZOS; - }, - getFeeMargin() { - return feeMargin; - }, - async estimateValidateTransferNft() { - return estimateGas(validators, 1.2e5); - }, - async estimateValidateUnfreezeNft() { - return estimateGas(validators, 1.2e4); - }, - async estimateValidateTransferNftBatch(_, ids) { - return estimateGas(validators, 1.2e5 * ids.length); - }, - async estimateValidateUnfreezeNftBatch(_, ids) { - return estimateGas(validators, 1.2e4 * ids.length); - }, - preTransfer, - isApprovedForMinter, - approveForMinter: (nft, sender) => preTransfer(sender, nft), - async isNftWhitelisted(nft) { - const bridge = await Tezos.contract.at(bridgeAddress); - const storage = await bridge.storage(); - const whitelisted = await storage.nft_whitelist.get(nft.native.contract); - return whitelisted == 2; - }, - async getTokenURI(contract, tokenId) { - if (utils.validateAddress(contract) && tokenId) { - const _contract = await Tezos.contract.at(contract); - const storage = await _contract.storage(); - const tokenStorage = await storage.token_metadata.get(tokenId); - if (tokenStorage) { - return utils.bytes2Char(tokenStorage.token_info?.get("")); - } - } - return ""; - }, - }; -} -exports.tezosHelperFactory = tezosHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV6b3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy90ZXpvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBCQVdZO0FBQ1osOENBYTBCO0FBRTFCLHNEQUF3QztBQUN4QyxnRUFBcUM7QUFvRTlCLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxFQUN2QyxLQUFLLEVBQ0wsUUFBUSxFQUNSLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLFNBQVMsR0FDRztJQUNaLE1BQU0sV0FBVyxHQUFHLENBQUMsVUFBb0IsRUFBRSxTQUFpQixFQUFFLEVBQUU7UUFDOUQsT0FBTyxJQUFJLHNCQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQztJQUVGLEtBQUssVUFBVSxZQUFZLENBQ3pCLE1BQW1CLEVBQ25CLFFBQWdCLEVBQ2hCLEVBRThDLEVBQzlDLE1BQTRCO1FBRTVCLElBQUksZUFBZSxJQUFJLE1BQU0sRUFBRTtZQUM3QixLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFaEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVwRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUIsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE9BQVEsRUFBMkIsQ0FBQyxJQUFJLENBQUM7U0FDMUM7YUFBTTtZQUNMLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQyxNQUFNLFNBQVMsR0FBRyxNQUFN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 diff --git a/dist/helpers/ton-bridge.d.ts b/dist/helpers/ton-bridge.d.ts deleted file mode 100644 index 5d0472ab2..000000000 --- a/dist/helpers/ton-bridge.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -import BN from "bn.js"; -import { ContractMethods, ContractOptions } from "tonweb"; -import { HttpProvider } from "tonweb/dist/types/providers/http-provider"; -declare const Contract: typeof import("tonweb/dist/types/contract/contract").Contract; -declare type SeqnoMethod = () => SeqnoMethodResult; -interface SeqnoMethodResult { - call: () => Promise; -} -interface BridgeOptions extends ContractOptions { - burner: string; -} -interface BridgeMethods extends ContractMethods { - seqno: SeqnoMethod; - getPublicKey: () => Promise; - isInitialized: () => Promise; - getActionId: () => Promise; - getWhitelist: () => Promise; -} -interface WithdrawParams { - chainNonce: number; - to: Uint8Array; - txFees: BN; -} -interface FreezeParams { - chainNonce: number; - to: Uint8Array; - mintWith: Uint8Array; - amount?: number | BN; -} -export declare class BridgeContract extends Contract< - BridgeOptions, - BridgeMethods -> { - constructor(provider: HttpProvider, options: BridgeOptions); - serializeUri(uri: string): Uint8Array; - createWithdrawBody( - params: WithdrawParams - ): Promise; - createFreezeBody( - params: FreezeParams - ): Promise; - getPublicKey: () => Promise; - isInitialized: () => Promise; - getActionId: () => Promise; - getWhitelist: () => Promise; -} -export {}; -//# sourceMappingURL=ton-bridge.d.ts.map diff --git a/dist/helpers/ton-bridge.d.ts.map b/dist/helpers/ton-bridge.d.ts.map deleted file mode 100644 index 1a1244102..000000000 --- a/dist/helpers/ton-bridge.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ton-bridge.d.ts","sourceRoot":"","sources":["../../src/helpers/ton-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAEzE,QAAA,MAAM,QAAQ,+DAAkB,CAAC;AAGjC,OAAO,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC;AAEnD,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,UAAU,aAAc,SAAQ,eAAe;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,UAAU,aAAc,SAAQ,eAAe;IAC7C,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,YAAY,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;CACjC;AAED,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,EAAE,CAAC;CACZ;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;CACtB;AAED,qBAAa,cAAe,SAAQ,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;gBAC5D,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa;IAS1D,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAI/B,kBAAkB,CAAC,MAAM,EAAE,cAAc;IAoBzC,gBAAgB,CAAC,MAAM,EAAE,YAAY;IAmB3C,YAAY,qBAOV;IAEF,aAAa,qBAOX;IAEF,WAAW,qBAOT;IAEF,YAAY,qBAOV;CACH"} \ No newline at end of file diff --git a/dist/helpers/ton-bridge.js b/dist/helpers/ton-bridge.js deleted file mode 100644 index cc1d0c5ca..000000000 --- a/dist/helpers/ton-bridge.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BridgeContract = void 0; -const bn_js_1 = __importDefault(require("bn.js")); -const tonweb_1 = __importDefault(require("tonweb")); -const Contract = tonweb_1.default.Contract; -const Cell = tonweb_1.default.boc.Cell; -class BridgeContract extends Contract { - constructor(provider, options) { - super(provider, options); - this.getPublicKey = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "get_public_key" - ); - return result; - }; - this.isInitialized = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "is_initialized" - ); - return result; - }; - this.getActionId = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "get_action_id" - ); - return result; - }; - this.getWhitelist = async () => { - const address = await this.getAddress(); - const result = await this.provider.call2( - address.toString(), - "get_whitelist" - ); - return result; - }; - this.methods.getPublicKey = this.getPublicKey; - this.methods.isInitialized = this.isInitialized; - this.methods.getActionId = this.getActionId; - this.methods.getWhitelist = this.getWhitelist; - } - serializeUri(uri) { - return new TextEncoder().encode(encodeURI(uri)); - } - async createWithdrawBody(params) { - const cell = new Cell(); - cell.bits.writeUint(0x5fcc3d14, 32); // transfer op - cell.bits.writeUint(0, 64); - cell.bits.writeAddress(new tonweb_1.default.Address(this.options.burner)); // target address - cell.bits.writeAddress(await this.getAddress()); // bridge as response address - cell.bits.writeBit(false); // null custom_payload - cell.bits.writeCoins(new bn_js_1.default(0)); // forward amount - cell.bits.writeBit(true); // forward_payload in this slice, not separate cell - const msg = new Cell(); - msg.bits.writeUint(params.chainNonce, 8); - msg.bits.writeUint(params.to.length, 16); - msg.bits.writeBytes(params.to); - msg.bits.writeBytes(new Uint8Array(12)); - cell.refs[0] = msg; - return cell; - } - async createFreezeBody(params) { - const cell = new Cell(); - cell.bits.writeUint(0x5fcc3d14, 32); // transfer op - cell.bits.writeUint(0, 64); - cell.bits.writeAddress(await this.getAddress()); // target address - cell.bits.writeAddress(undefined); // undefined as response address - cell.bits.writeBit(false); // null custom_payload - cell.bits.writeCoins(params.amount || new bn_js_1.default(0)); - cell.bits.writeBit(false); // forward_payload in this slice, not separate cell - const payload = new Cell(); - payload.bits.writeUint(params.chainNonce, 8); - payload.bits.writeUint(params.to.length, 16); - payload.bits.writeBytes(params.to); - payload.bits.writeBytes(params.mintWith); - cell.refs[0] = payload; - return cell; - } -} -exports.BridgeContract = BridgeContract; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLWJyaWRnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Rvbi1icmlkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQXVCO0FBQ3ZCLG9EQUFrRTtBQUdsRSxNQUFNLFFBQVEsR0FBRyxnQkFBTSxDQUFDLFFBQVEsQ0FBQztBQUNqQyxNQUFNLElBQUksR0FBRyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFnQzdCLE1BQWEsY0FBZSxTQUFRLFFBQXNDO0lBQ3hFLFlBQVksUUFBc0IsRUFBRSxPQUFzQjtRQUN4RCxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBbUQzQixpQkFBWSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3hCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ3RDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsZ0JBQWdCLENBQ2pCLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQ3RDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFDbEIsZ0JBQWdCLENBQ2pCLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFRixnQkFBVyxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFD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 diff --git a/dist/helpers/ton.d.ts b/dist/helpers/ton.d.ts deleted file mode 100644 index 4ee883afc..000000000 --- a/dist/helpers/ton.d.ts +++ /dev/null @@ -1,113 +0,0 @@ -import TonWeb from "tonweb"; -import TonWebMnemonic from "tonweb-mnemonic"; -import type { Cell } from "tonweb/dist/types/boc/cell"; -import { EvNotifier } from "../notifier"; -import { - ChainNonceGet, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - TransferNftForeign, - UnfreezeForeignNft, - ValidateAddress, - BalanceCheck, -} from "./chain"; -import { PreTransfer } from ".."; -import { TonhubConnector, TonhubTransactionResponse } from "ton-x"; -export type TonSigner = { - wallet?: TonWallet; - accIdx: number; -}; -export type TonWalletProvider = { - isTonWallet: boolean; - send(method: string, params?: any[]): Promise; - onSuccess?(): Promise; - on(eventName: string, handler: (...data: any[]) => any): void; -}; -export type TonArgs = { - wallet: TonhubConnector & TonWalletProvider & Function; - config: { - seed?: string; - appPublicKey?: string; - address?: string; - [x: string]: any; - }; -}; -export type TonNft = { - nftItemAddr: string; -}; -export type TonHelper = ChainNonceGet & - BalanceCheck & - PreTransfer & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ValidateAddress & { - XpNft: string; - } & { - tonKpWrapper: (kp: TonWebMnemonic.KeyPair) => TonSigner; - tonHubWrapper: (args: TonArgs) => TonSigner; - tonWalletWrapper: (args: TonArgs) => TonSigner; - tonKeeperWrapper: (args: TonArgs) => TonSigner; - } & GetFeeMargins; -export type TonParams = { - tonweb: TonWeb; - notifier: EvNotifier; - bridgeAddr: string; - burnerAddr: string; - xpnftAddr: string; - feeMargin: FeeMargins; -}; -type MethodMap = { - ton_requestAccounts: [undefined, string]; - ton_sendTransaction: [ - { - value: string; - to: string; - data: Cell; - }, - unknown - ]; - ton_getBalance: [undefined, string]; -}; -type ResponseUnionType = boolean & - TonhubTransactionResponse & { - hash: string; - }; -type TonWallet = { - send( - method: M, - params: MethodMap[M][0] - ): Promise; - onSuccess?(): Function; - handleResponse(res: ResponseUnionType): Promise; -}; -export declare function tonHelper(args: TonParams): Promise; -export {}; -/** - * - * const ton = new TonWeb( - new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - }) - ); - - const trxs = await ton.provider.getTransactions( - "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", - 20 - ); - - console.log(trxs); - - let data = new Cell(); - console.log(data); - const dict = Cell.fromBoc( - Buffer.from( - "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", - "base64" - ) - )[0].hash(); - console.log("Hash: " + dict.toString("base64")); - */ -//# sourceMappingURL=ton.d.ts.map diff --git a/dist/helpers/ton.d.ts.map b/dist/helpers/ton.d.ts.map deleted file mode 100644 index 5752b1e90..000000000 --- a/dist/helpers/ton.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/helpers/ton.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/ton.js b/dist/helpers/ton.js deleted file mode 100644 index a642b41fd..000000000 --- a/dist/helpers/ton.js +++ /dev/null @@ -1,347 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.tonHelper = void 0; -const anchor_1 = require("@project-serum/anchor"); -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const tonweb_1 = __importDefault(require("tonweb")); -const ton_1 = require("ton"); -const consts_1 = require("../consts"); -const ton_bridge_1 = require("./ton-bridge"); -const emitter_1 = require("../emitter"); -const js_base64_1 = require("js-base64"); -const axios_1 = __importDefault(require("ton/node_modules/axios")); -async function tonHelper(args) { - const bridge = new ton_bridge_1.BridgeContract(args.tonweb.provider, { - address: args.bridgeAddr, - burner: args.burnerAddr, - }); - const ton = args.tonweb; - ton.provider.sendBoc = (b) => - ton.provider.send("sendBocReturnHash", { boc: b }); - async function waitTonTrx(exBodyMsg, value, address, msgType) { - console.log(exBodyMsg, "TON:exBodyMsg"); - let body = ""; - let stop = false; - let fastResolve; - const setStop = () => { - stop = true; - emitter_1.Emitter?.removeEventListener("cancel tonKeeper", setStop); - fastResolve(true); - throw new Error("User has declined transaction"); - }; - const noTrx = setTimeout(() => { - stop = true; - throw new Error("waitTonTrx timeout"); - }, 60 * 1000 * 20); - emitter_1.Emitter?.addEventListener("cancel tonKeeper", setStop); - await new Promise((r) => { - setTimeout(r, 10 * 1000); - }); - async function getUserTrxs(address) { - try { - await new Promise((r) => { - setTimeout(r, 30 * 1000); - }); - const trxs = await ton.provider.getTransactions(address, 20); - return trxs; - } catch (e) { - console.log(e, "new iterration 30 sec"); - return await getUserTrxs(address); - } - } - while (!body) { - console.log("TON:tring to find the trx..."); - if (stop) return; - //get last 20 trx of address - const timeout = setTimeout(() => { - throw new Error("TON: timeout when trying to send trx"); - }, 60 * 1000 * 10); - const trxs = await getUserTrxs(address); - if (trxs) { - clearTimeout(timeout); - } - //find body of the trx - body = trxs.find((trx) => { - const messages = trx[msgType]; - let message = ""; - let msgVal = ""; - message = Array.isArray(messages) - ? messages?.at(0)?.msg_data?.body - : messages?.msg_data?.body; - msgVal = Array.isArray(trx["out_msgs"]) - ? trx.out_msgs?.at(0)?.value - : trx["out_msgs"].value; - trx.utime * 1000 >= +new Date(Date.now() - 1000 * 60 * 5) && - console.log(trx.utime, "trx happend no more than 5 minutes ago"); - return message === exBodyMsg && msgVal === value; - })?.data; - } - clearTimeout(noTrx); - const dict = ton_1.Cell.fromBoc(Buffer.from(body, "base64"))[0].hash(); - const exHash = dict.toString("base64"); - console.log(exHash, "exHash"); - let trxData = undefined; - while (trxData === undefined) { - await new Promise((r) => setTimeout(r, 6 * 1000)); - const res = await (0, axios_1.default)( - `https://toncenter.com/api/index/getTransactionByHash?tx_hash=${encodeURIComponent( - exHash - )}&include_msg_body=true` - ).catch(() => undefined); - trxData = res?.data; - } - return trxData[0]["in_msg"].hash; - } - return { - preTransfer: () => Promise.resolve(true), - preUnfreeze: () => Promise.resolve(true), - getNonce: () => consts_1.Chain.TON, - XpNft: args.xpnftAddr, - async balance(address) { - return new bignumber_js_1.default(await ton.getBalance(address)); - }, - async estimateValidateTransferNft() { - return new bignumber_js_1.default(0); // TODO - }, - async estimateValidateUnfreezeNft() { - return new bignumber_js_1.default(0); // TODO - }, - async validateAddress(adr) { - return tonweb_1.default.Address.isValid(adr); - }, - getFeeMargin() { - return args.feeMargin; - }, - async transferNftToForeign(signer, chainNonce, to, nft, txFees, mintWith) { - const rSigner = signer.wallet || ton; - const txFeesFull = new anchor_1.BN(txFees.toString(10)).add( - tonweb_1.default.utils.toNano((Math.random() * 0.01).toFixed(7)) - ); - const nftFee = tonweb_1.default.utils.toNano("0.07"); - const payload = await bridge.createFreezeBody({ - amount: txFeesFull.sub(nftFee), - to: Buffer.from(to), - chainNonce, - mintWith: Buffer.from(mintWith), - }); - console.log(txFeesFull.toString(10), "val"); - console.log("TON:transferNftToForeign"); - console.log(nft.native.nftItemAddr); - const res = await rSigner.send("ton_sendTransaction", { - value: txFeesFull.toString(10), - to: nft.native.nftItemAddr, - data: payload, - }); - const hash = await rSigner.handleResponse(res); - await args.notifier.notifyTon(hash); - return hash; - }, - async unfreezeWrappedNft(signer, to, nft, _txFees, chainNonce) { - const rSigner = signer.wallet || ton; - const value = new anchor_1.BN(_txFees.toString(10)).add( - tonweb_1.default.utils.toNano((Math.random() * 0.01).toFixed(7)) - ); - const nftFee = tonweb_1.default.utils.toNano("0.05"); - const payload = await bridge.createWithdrawBody({ - to: new Uint8Array(Buffer.from(to)), - chainNonce: parseInt(chainNonce), - txFees: value.sub(nftFee), - }); - console.log(value.toString(10), "v"); - console.log(nft.native.nftItemAddr); - console.log("TON:unfreezeWrappedNft"); - const res = await rSigner.send("ton_sendTransaction", { - value: new anchor_1.BN(value).toString(10), - to: nft.native.nftItemAddr, - data: payload, - }); - const hash = await rSigner.handleResponse(res); - await args.notifier.notifyTon(hash); - return hash; - }, - tonKeeperWrapper(args) { - console.log(args, "args"); - let payload = ""; - let value = ""; - const tonHub = { - async send(method, params) { - switch (method) { - case "ton_sendTransaction": - payload = (0, js_base64_1.fromUint8Array)( - await params.data.toBoc(false) - ); - value = params.value; - return args.wallet.send( - `https://app.tonkeeper.com/transfer/${ - params.to - }?amount=${new anchor_1.BN(value).toString( - 10 - )}&bin=${encodeURIComponent(payload)}&open=1` - ); - //! - default: - return null; - } - }, - async handleResponse(res) { - console.log(res); - const result = await waitTonTrx( - payload, - value, - args.config.address, - "out_msgs" - ); - args.wallet.onSuccess && args.wallet.onSuccess(); - return result; - }, - }; - return { - wallet: tonHub, - accIdx: 0, - }; - }, - tonWalletWrapper(args) { - let payload = ""; - let value = ""; - const tonHub = { - async send(method, params) { - switch (method) { - case "ton_sendTransaction": - value = params.value; - payload = (0, js_base64_1.fromUint8Array)( - await params.data.toBoc(false) - ); - console.log(payload, "payload"); - return await args.wallet.send("ton_sendTransaction", [ - { - to: params.to, - value, - dataType: "boc", - data: payload, - }, - ]); - default: - return null; - } - }, - async handleResponse(res) { - return ( - res && - (await waitTonTrx(payload, value, args.config.address, "out_msgs")) - ); - }, - }; - return { - wallet: tonHub, - accIdx: 0, - }; - }, - tonHubWrapper(args) { - let value = ""; - const tonHub = { - async send(method, params) { - switch (method) { - case "ton_sendTransaction": - value = new anchor_1.BN(params.value).toString(); - return await args.wallet.requestTransaction({ - seed: args.config.seed, - appPublicKey: args.config.appPublicKey, - to: params.to, - value, - timeout: 5 * 60 * 1000, - text: `ton_sendTransaction to ${params.to}`, - payload: (0, js_base64_1.fromUint8Array)( - await params.data.toBoc(false) - ), - }); - default: - return null; - } - }, - async handleResponse(res) { - if (res.type === "success" && res.response != undefined) { - return await waitTonTrx( - res.response, - value, - args.config.address, - "in_msg" - ); - } else { - throw new Error(`TonHub:${res.type}`); - } - }, - }; - return { - wallet: tonHub, - accIdx: 0, - }; - }, - tonKpWrapper(kp) { - const wallet = new tonweb_1.default.Wallets.all.v3R2(ton.provider, { - publicKey: kp.publicKey, - wc: 0, - }); - const wWallet = { - async send(method, params) { - switch (method) { - case "ton_getBalance": - return await ton.getBalance(await wallet.getAddress()); - case "ton_requestAccounts": - return [await wallet.getAddress()]; - case "ton_sendTransaction": - return await wallet.methods - .transfer({ - secretKey: kp.secretKey, - toAddress: params.to, - amount: new anchor_1.BN(params.value), - seqno: (await wallet.methods.seqno().call()) || 0, - sendMode: 3, - payload: params.data, - }) - .send(); - } - }, - async handleResponse(res) { - return res.hash; - }, - }; - return { - wallet: wWallet, - accIdx: 0, - }; - }, - }; -} -exports.tonHelper = tonHelper; -/** - * - * const ton = new TonWeb( - new TonWeb.HttpProvider("https://toncenter.com/api/v2/jsonRPC", { - apiKey: - "05645d6b549f33bf80cee8822bd63df720c6781bd00020646deb7b2b2cd53b73", - }) - ); - - const trxs = await ton.provider.getTransactions( - "EQBhSfdrfydwE4Sl4-sWUYhNHsQcVTGR3p2JA14C2_PNdgfs", - 20 - ); - - console.log(trxs); - - let data = new Cell(); - console.log(data); - const dict = Cell.fromBoc( - Buffer.from( - "te6cckECDAEAAtkAA7V2FJ92t/J3AThKXj6xZRiE0exBxVMZHenYkDXgLb8812AAAdm2v+2EFpyXsCyPQOlDXCGvDlGdb9/YPNRPgD98AgAsIvgTYcYAAAHZqugyeDY2O1EgADRtIKRIAQIDAgHgBAUAgnIXMm/rsAMDO9FDdU/1I47b332HXYKcIvfN53pZj/VL8XxAXw8HICdzOmVFlgwy6XfTfJTbuplVQh4PnMQir/B3AhEMgouGGZPPBEAKCwHhiADCk+7W/k7gJwlLx9YsoxCaPYg4qmMjvTsSBrwFt+ea7AHPX0P+BlViv5FLRo4uUALd1xnuqimnA//t0BCCufv3iVjYINGcRw+ljDnirrtKYcGN629BfyEuTEj2eIBH7pAxTU0YuxsdqmAAAABAABwGAQHfBwFoYgBuLG9sHzPjFfimuHMhmTMm2J2PjG2QS0wA58SpRc6PpiAmJaAAAAAAAAAAAAAAAAAAAQgBsWgAwpPu1v5O4CcJS8fWLKMQmj2IOKpjI707Ega8Bbfnmu0ANxY3tg+Z8Yr8U1w5kMyZk2xOx8Y2yCWmAHPiVKLnR9MQExLQAAYuoZgAADs21/2whMbHaiTACAGfX8w9FAAAAAAAAAAAgAhTrcJncddU9sZlDMvNz2ZSqJDp5YplXYGBr0ckiINkEAPcWJzy2hGXRIgyzC2jzCbLkfjUINlQYAjIgr3kCXkEFBgJAHIHACoweDQ3QmYwZGFlNmU5MmU0OWEzYzk1ZTViMGM3MTQyMjg5MUQ1Y2Q0RkUAAAAAAAAAAAAAAAAAnUGdgxOIAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAb8mRfJBMLqFQAAAAAAACAAAAAAADChE7JLQbmSipXzKEUnUNwnWjHPBXefxRxAbt/uNGHeZA0DgsouCJ3A==", - "base64" - ) - )[0].hash(); - console.log("Hash: " + dict.toString("base64")); - */ -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEyQztBQUMzQyxnRUFBcUM7QUFDckMsb0RBQTRCO0FBRzVCLDZCQUFvQztBQUNwQyxzQ0FBa0M7QUFlbEMsNkNBQThDO0FBRTlDLHdDQUFxQztBQUdyQyx5Q0FBMkM7QUFDM0MsbUVBQTJDO0FBc0VwQyxLQUFLLFVBQVUsU0FBUyxDQUFDLElBQWU7SUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtRQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQTRCLENBQUM7SUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXJELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixPQUFlLEVBQ2YsT0FBOEI7UUFFOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFeEMsSUFBSSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLFdBQWdCLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixpQkFBTyxFQUFFLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1lB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 diff --git a/dist/helpers/tron.d.ts b/dist/helpers/tron.d.ts deleted file mode 100644 index 7a10600f1..000000000 --- a/dist/helpers/tron.d.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { - BalanceCheck, - EstimateTxFees, - FeeMargins, - GetFeeMargins, - MintNft, - TransferNftForeign, - UnfreezeForeignNft, -} from "./chain"; -import { TronWeb } from "tronweb"; -import { EthNftInfo, MintArgs } from "./web3"; -import { - Approve, - ExtractAction, - ExtractTxnStatus, - IsApproved, - PreTransfer, - PreTransferRawTxn, - ValidateAddress, - WhitelistCheck, - GetTokenURI, -} from ".."; -import { ChainNonceGet } from ".."; -import { EvNotifier } from "../notifier"; -type TronSender = string | undefined; -export type MinterRes = { - minter: string; - xpnft: string; - xpnft1155: string; - whitelist: string[]; -}; -export type BaseTronHelper = BalanceCheck & - MintNft & { - /** - * - * Deploy an ERC721 user minter smart contract - * - * @argument deployer deployer of this smart contract - * @returns Address of the deployed smart contract - */ - deployErc721(deployer: TronSender): Promise; - /** - * Deploy Minter Smart Contract - * - * @argument deployer deployer of the smart contract - * @argument frostGroupKey FROST SECP256k1 Group Key - * @argument xpnftPrefix XP Wrapped NFT backend with "/" suffix - * @argument xpnftPrefix1155 XP Wrapped NFT Backend in erc1155 format (with {id}) - * @argument whitelist List of NFTs to whitelist - */ - deployMinter( - deployer: TronSender, - frostGroupKey: string, - xpnftPrefix: string, - xpnftPrefix1155: string, - whitelist?: string[] - ): Promise; - }; -export type TronHelper = BaseTronHelper & - TransferNftForeign & - UnfreezeForeignNft & - EstimateTxFees & - ChainNonceGet & - Approve & - ValidateAddress & - IsApproved & - ExtractAction & - Pick, "preTransfer"> & - PreTransferRawTxn & - ExtractTxnStatus & - WhitelistCheck & { - XpNft: string; - XpNft1155: string; - } & GetFeeMargins & - GetTokenURI; -export declare function baseTronHelperFactory( - provider: TronWeb -): Promise; -export interface TronParams { - provider: TronWeb; - notifier: EvNotifier; - minter_addr: string; - erc721_addr: string; - erc1155_addr: string; - validators: string[]; - feeMargin: FeeMargins; -} -export interface TronRawTxn { - readonly visible: boolean; - readonly txID: string; - readonly raw_data: { - readonly ref_block_bytes: string; - readonly ref_block_hash: string; - expiration: number; - readonly fee_limit: number; - readonly timestamp: number; - readonly contract: { - readonly parameter: { - readonly value: { - readonly data: string; - readonly owner_address: string; - readonly contract_address: string; - }; - readonly type_url: string; - }; - readonly type: string; - }[]; - }; - readonly raw_data_hex: string; -} -export declare function tronHelperFactory( - tronParams: TronParams -): Promise; -export {}; -//# sourceMappingURL=tron.d.ts.map diff --git a/dist/helpers/tron.d.ts.map b/dist/helpers/tron.d.ts.map deleted file mode 100644 index a2f186c72..000000000 --- a/dist/helpers/tron.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/helpers/tron.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/tron.js b/dist/helpers/tron.js deleted file mode 100644 index 0563084c7..000000000 --- a/dist/helpers/tron.js +++ /dev/null @@ -1,300 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.tronHelperFactory = exports.baseTronHelperFactory = void 0; -const bignumber_js_1 = require("bignumber.js"); -const ethers_1 = require("ethers"); -const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); -const __1 = require(".."); -async function baseTronHelperFactory(provider) { - const setSigner = (signer) => { - return signer && provider.setPrivateKey(signer); - }; - const deployErc721_i = async (deployer) => { - setSigner(deployer); - const contract = await provider.contract().new({ - abi: xpnet_web3_contracts_1.UserNftMinter__factory.abi, - bytecode: xpnet_web3_contracts_1.UserNftMinter__factory.bytecode, - feeLimit: 3000000000, - }); - return contract; - }; - const deployXpNft = async (deployer, nftPrefix) => { - setSigner(deployer); - const contract = await provider.contract().new({ - abi: xpnet_web3_contracts_1.XPNft__factory.abi, - bytecode: xpnet_web3_contracts_1.XPNft__factory.bytecode, - feeLimit: 3000000000, - parameters: ["XPNFT", "XPNFT", nftPrefix], - }); - return contract; - }; - const deployXpNft1155 = async (deployer, nftPrefix) => { - setSigner(deployer); - const contract = await provider.contract().new({ - abi: xpnet_web3_contracts_1.XPNft1155__factory.abi, - bytecode: xpnet_web3_contracts_1.XPNft1155__factory.bytecode, - feeLimit: 3000000000, - parameters: [nftPrefix], - }); - return contract; - }; - return { - async mintNft(owner, options) { - setSigner(owner); - const erc = await provider.contract( - xpnet_web3_contracts_1.UserNftMinter__factory.abi, - options.contract - ); - const res = await erc.mint(options.uri).send(); - return res; - }, - async balance(address) { - const balance = await provider.trx.getBalance(address); - return new bignumber_js_1.BigNumber(balance); - }, - deployErc721: async (owner) => - await deployErc721_i(owner).then((c) => c.address), - async deployMinter( - deployer, - frostGroupKey, - xpnftPrefix, - xpnftPrefix1155, - whitelist = [] - ) { - if (whitelist.length == 0) { - const unft = await deployErc721_i(deployer); - console.log(provider.address.fromHex(unft.address)); - whitelist.push(provider.address.fromHex(unft.address)); - } - const gk = Buffer.from(frostGroupKey, "hex"); - const gkx = ethers_1.BigNumber.from(`0x${gk.slice(1).toString("hex")}`); - // gkyp is either 0 or 1 - const gkyp = ethers_1.BigNumber.from(`0x${gk[0] & 1}`); - const erc721 = await deployXpNft(deployer, xpnftPrefix); - const erc1155 = await deployXpNft1155(deployer, xpnftPrefix1155); - const minter = await provider.contract().new({ - abi: xpnet_web3_contracts_1.Minter__factory.abi, - bytecode: xpnet_web3_contracts_1.Minter__factory.bytecode, - feeLimit: 6000000000, - parameters: [gkx, gkyp, whitelist], - }); - await erc721.transferOwnership(minter.address).send(); - await erc1155.transferOwnership(minter.address).send(); - const minterAddress = provider.address.fromHex(minter.address); - const erc721Address = provider.address.fromHex(erc721.address); - const erc1155Address = provider.address.fromHex(erc1155.address); - return { - minter: minterAddress, - xpnft: erc721Address, - xpnft1155: erc1155Address, - whitelist, - }; - }, - }; -} -exports.baseTronHelperFactory = baseTronHelperFactory; -async function tronHelperFactory(tronParams) { - const { provider, minter_addr } = tronParams; - // const station = new TronStation(provider); - const base = await baseTronHelperFactory(provider); - const minter = await provider.contract( - xpnet_web3_contracts_1.Minter__factory.abi, - minter_addr - ); - const setSigner = (signer) => { - return signer && provider.setPrivateKey(signer); - }; - async function notifyValidator(hash) { - await tronParams.notifier.notifyTron(hash); - } - async function extractAction(hash) { - await new Promise((r) => setTimeout(r, 10000)); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const getEv = async (retries = 0) => { - const res = await provider.getEventByTransactionID(hash); - if (res.length !== 0) { - return res; - } - if (retries > 15) { - throw Error("Couldn't fetch transaction after more than 15 retries!"); - } - await new Promise((r) => setTimeout(r, 3000)); - return getEv(retries + 1); - }; - const evs = await getEv(); - const ev = evs.find((e) => e?.contract == minter_addr); - const action_id = ev.result["actionId"].toString(); - return action_id; - } - // const _randomAction = () => - // Math.floor( - // Math.random() * 999 + (Number.MAX_SAFE_INTEGER - 1000) - // ).toString(); - // async function _estimateGas( - // addrs: string[], - // func_sig: string, - // params: { type: string; value: any }[] - // ): Promise { - // let energy = 0; - // let bandwidth = 0; - // const nrgSun = await station.energy.burnedEnergy2Trx(1, { unit: "sun" }); - // const bandSun = 10; - // for (const [i, addr] of addrs.entries()) { - // const res = await provider.transactionBuilder.triggerConstantContract( - // minter.address, - // func_sig, - // {}, - // params, - // provider.address.toHex(addr) - // ); - // let nrg: number = res["energy_used"]; - // if (i == addrs.length - 1 && addrs.length != 1) nrg *= 2; - // energy += nrg; - // const tx_raw: string = res["transaction"]["raw_data_hex"]; - // bandwidth += tx_raw.length; - // } - // // Fee = energy * (sun per energy) + bandwidth * (sun per bandwidth) - // // bandwidth = raw tx byte length - // const fee = new BigNumber(energy).times(nrgSun).plus(bandwidth * bandSun); - // return fee; - // } - const isApprovedForMinter = async (id, _sender) => { - const erc = await provider.contract( - xpnet_web3_contracts_1.UserNftMinter__factory.abi, - id.native.contract - ); - const approvedAddress = await erc.getApproved(id.native.tokenId).call({ - from: tronParams.provider.defaultAddress.base58, - }); - if (approvedAddress === minter_addr) { - return true; - } - return false; - }; - const approveForMinter = async (id, sender) => { - await setSigner(sender); - const erc = await provider.contract( - xpnet_web3_contracts_1.UserNftMinter__factory.abi, - id.native.contract - ); - const isApproved = await isApprovedForMinter(id, sender); - if (isApproved) { - return undefined; - } - const txHash = await erc.approve(minter_addr, id.native.tokenId).send(); - return txHash; - }; - const addMinToExpirationTime = (txn, minutes) => { - const expiration = txn.raw_data.expiration; - const newExpiration = new Date(expiration).getTime() + minutes * 60000; - txn.raw_data.expiration = newExpiration; - return txn; - }; - return { - ...base, - extractAction, - XpNft1155: tronParams.erc721_addr, - XpNft: tronParams.erc721_addr, - getFeeMargin() { - return tronParams.feeMargin; - }, - approveForMinter, - preTransfer: (s, nft, _fee) => approveForMinter(nft, s), - async preTransferRawTxn(nft, address, _value) { - await setSigner(address); - const isApproved = await isApprovedForMinter(nft, address); - if (isApproved) { - return undefined; - } - const { transaction, result } = - await provider.transactionBuilder.triggerSmartContract( - nft.native.contract, - "approve(address,uint256)", - { - feeLimit: 1000000, - callValue: 0, - }, - [ - { - type: "address", - value: minter_addr, - }, - { - type: "uint256", - value: nft.native.tokenId, - }, - ], - address - ); - if (!result.result) { - throw new Error(result.toString()); - } - return addMinToExpirationTime(transaction, 15); - }, - isApprovedForMinter, - async extractTxnStatus(txnHash) { - const txn = await provider.trx.getConfirmedTransaction(txnHash); - const status = txn["ret"][0]["contractRet"]; - if (status === "SUCCESS") { - return __1.TransactionStatus.SUCCESS; - } else if (status === "FAIL") { - return __1.TransactionStatus.FAILURE; - } - return __1.TransactionStatus.PENDING; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - setSigner(sender); - const res = await minter - .withdrawNft(to, nonce, id.native.tokenId, id.native.contract) - .send({ callValue: ethers_1.BigNumber.from(txFees.toFixed(0)) }); - await notifyValidator(res); - return res; - }, - getNonce() { - return __1.Chain.TRON; - }, - async transferNftToForeign(sender, chain_nonce, to, id, txFees, mintWith) { - setSigner(sender); - await approveForMinter(id, sender); - const txr = await minter - .freezeErc721( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith - ) - .send({ callValue: ethers_1.BigNumber.from(txFees.toFixed(0)) }); - await notifyValidator(txr); - return txr; - }, - async estimateValidateTransferNft(_to, _nftUri) { - return new bignumber_js_1.BigNumber(0); // TODO - }, - async estimateValidateUnfreezeNft(_to, _nft) { - return new bignumber_js_1.BigNumber(0); // TODO - }, - async validateAddress(adr) { - return provider.isAddress(adr); - }, - isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract).call({ - from: tronParams.provider.defaultAddress.base58, - }); - }, - // const minter = await provider.contract(Minter__factory.abi, minter_addr); - async getTokenURI(contract, tokenId) { - return ""; - if (provider.isAddress(contract) && tokenId) { - const _contract = await provider.contract( - xpnet_web3_contracts_1.UserNftMinter__factory.abi, - contract - ); - return await _contract.tokenURI(+tokenId).call(); - } - return ""; - }, - }; -} -exports.tronHelperFactory = tronHelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQXlDO0FBZ0J6QyxtQ0FBNEM7QUFFNUMsK0RBSzhCO0FBQzlCLDBCQVlZO0FBZ0VMLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBaUI7SUFFakIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFrQixFQUFFLEVBQUU7UUFDdkMsT0FBTyxNQUFNLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsUUFBb0IsRUFBRSxFQUFFO1FBQ3BELFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLDZDQUFzQixDQUFDLEdBQUc7WUFDL0IsUUFBUSxFQUFFLDZDQUFzQixDQUFDLFFBQVE7WUFDekMsUUFBUSxFQUFFLFVBQVU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLFFBQW9CLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ3BFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDN0MsR0FBRyxFQUFFLHFDQUFjLENBQUMsR0FBRztZQUN2QixRQUFRLEVBQUUscUNBQWMsQ0FBQyxRQUFRO1lBQ2pDLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO1NBQzFDLENBQUMsQ0FBQztRQUVILE9BQU8s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 diff --git a/dist/helpers/web3.d.ts b/dist/helpers/web3.d.ts deleted file mode 100644 index 9eaeffa92..000000000 --- a/dist/helpers/web3.d.ts +++ /dev/null @@ -1,199 +0,0 @@ -/** - * Web3 Implementation for cross chain traits - * @module - */ -import BigNumber from "bignumber.js"; -import { - BalanceCheck, - EstimateTxFeesBatch, - FeeMargins, - GetFeeMargins, - GetProvider, - IsContractAddress, - MintNft, - TransferNftForeign, - TransferNftForeignBatch, - UnfreezeForeignNft, - UnfreezeForeignNftBatch, - ParamsGetter, -} from "./chain"; -import { - ContractTransaction, - ethers, - PopulatedTransaction, - providers, - Signer, - Wallet, -} from "ethers"; -import { Provider, TransactionResponse } from "@ethersproject/providers"; -import { - Erc1155Minter, - Erc1155Minter__factory, - UserNftMinter, - UserNftMinter__factory, -} from "xpnet-web3-contracts"; -import { - ChainNonceGet, - EstimateTxFees, - ExtractAction, - ExtractTxnStatus, - GetTokenURI, - NftInfo, - PreTransfer, - PreTransferRawTxn, - ValidateAddress, - WhitelistCheck, -} from ".."; -import { ChainNonce } from "../type-utils"; -import { EvNotifier } from "../notifier"; -/** - * Information required to perform NFT transfers in this chain - */ -export type EthNftInfo = { - chainId: string; - tokenId: string; - owner: string; - uri: string; - contract: string; - contractType: "ERC721" | "ERC1155"; -}; -/** - * Arguments required for minting a new nft - * - * contract: address of the sc - * token: token ID of the newly minted nft - * owner: Owner of the newly minted nft - * uri: uri of the nft - */ -export type MintArgs = { - contract: string; - uri: string; -}; -export interface IsApproved { - isApprovedForMinter( - address: NftInfo, - sender: Sender, - txFee: BigNumber, - gasPrice?: ethers.BigNumber - ): Promise; -} -export interface Approve { - approveForMinter( - address: NftInfo, - sender: Sender, - txFee: BigNumber, - gasPrice?: ethers.BigNumber - ): Promise; -} -type NullableCustomData = Record | undefined; -/** - * Base util traits - */ -export type BaseWeb3Helper = BalanceCheck & - /** - * Mint an nft in the given ERC1155 smart contract - * - * @argument signer owner of the smart contract - * @argument args See [[MintArgs]] - */ MintNft & { - /** - * Deploy an ERC721 smart contract - * - * @argument owner Owner of this smart contract - * @returns Address of the deployed smart contract - */ - deployErc721(owner: Signer): Promise; - } & { - mintNftErc1155( - owner: Signer, - options: MintArgs - ): Promise; - }; -type ExtraArgs = { - gasPrice: ethers.BigNumber; -}; -/** - * Traits implemented by this module - */ -export type Web3Helper = BaseWeb3Helper & - TransferNftForeign & - UnfreezeForeignNft & - TransferNftForeignBatch & - UnfreezeForeignNftBatch & - EstimateTxFees & - EstimateTxFeesBatch & - ChainNonceGet & - IsApproved & - Approve & - ValidateAddress & - ExtractAction & { - createWallet(privateKey: string): Wallet; - } & Pick, "preTransfer"> & - PreTransferRawTxn & - ExtractTxnStatus & - GetProvider & { - XpNft: string; - XpNft1155: string; - } & WhitelistCheck & - GetFeeMargins & - IsContractAddress & - GetTokenURI & - ParamsGetter; -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -export declare function baseWeb3HelperFactory( - provider: Provider, - nonce: number -): Promise; -/** - * Create an object implementing cross chain utilities for a web3 chain - * - * @param provider An ethers.js provider object - * @param minter_addr Address of the minter smart contract - * @param minter_abi ABI of the minter smart contract - */ -export interface Web3Params { - provider: Provider; - notifier: EvNotifier; - minter_addr: string; - erc721_addr: string; - erc1155_addr: string; - erc721Minter: string; - erc1155Minter: string; - nonce: ChainNonce; - feeMargin: FeeMargins; -} -type NftMethodVal = { - freeze: "freezeErc1155" | "freezeErc721"; - validateUnfreeze: "validateUnfreezeErc1155" | "validateUnfreezeErc721"; - umt: typeof Erc1155Minter__factory | typeof UserNftMinter__factory; - approved: ( - umt: T, - sender: string, - minterAddr: string, - tok: string, - customData: NullableCustomData - ) => Promise; - approve: ( - umt: T, - forAddr: string, - tok: string, - txnUp: (tx: PopulatedTransaction) => Promise, - customData: NullableCustomData, - gasPrice: ethers.BigNumberish | undefined - ) => Promise; -}; -type EthNftMethodVal = NftMethodVal; -type NftMethodMap = Record< - "ERC1155" | "ERC721", - EthNftMethodVal | EthNftMethodVal ->; -export declare const NFT_METHOD_MAP: NftMethodMap; -export declare function web3HelperFactory( - params: Web3Params -): Promise; -export {}; -//# sourceMappingURL=web3.d.ts.map diff --git a/dist/helpers/web3.d.ts.map b/dist/helpers/web3.d.ts.map deleted file mode 100644 index 74ce3c3f9..000000000 --- a/dist/helpers/web3.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web3.d.ts","sourceRoot":"","sources":["../../src/helpers/web3.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/helpers/web3.js b/dist/helpers/web3.js deleted file mode 100644 index b7c0cbffa..000000000 --- a/dist/helpers/web3.js +++ /dev/null @@ -1,529 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.web3HelperFactory = - exports.NFT_METHOD_MAP = - exports.baseWeb3HelperFactory = - void 0; -/** - * Web3 Implementation for cross chain traits - * @module - */ -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const ethers_1 = require("ethers"); -const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); -const __1 = require(".."); -const axios_1 = __importDefault(require("axios")); -const hethers_1 = require("@hashgraph/hethers"); -hethers_1.hethers.providers.BaseProvider.prototype.getGasPrice = async () => { - return ethers_1.BigNumber.from("1"); -}; -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -async function baseWeb3HelperFactory(provider, nonce) { - const w3 = provider; - return { - async balance(address) { - const bal = await w3.getBalance(address); - // ethers BigNumber is not compatible with our bignumber - return new bignumber_js_1.default(bal.toString()); - }, - async deployErc721(owner) { - const factory = new xpnet_web3_contracts_1.UserNftMinter__factory(owner); - const contract = await factory.deploy(); - return contract.address; - }, - async mintNftErc1155(owner, { contract }) { - const erc1155 = xpnet_web3_contracts_1.Erc1155Minter__factory.connect( - contract, - owner - ); - const tx = await erc1155.mintNft(await owner.getAddress()); - return tx; - }, - async mintNft(owner, { contract, uri }) { - const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - contract, - owner - ); - const txm = await erc721 - .mint(uri, { gasLimit: 1000000 }) - .catch(async (e) => { - if (nonce === 33) { - let tx; - while (!tx) { - tx = await provider.getTransaction(e["returnedHash"]); - } - return tx; - } - throw e; - }); - return txm; - }, - }; -} -exports.baseWeb3HelperFactory = baseWeb3HelperFactory; -exports.NFT_METHOD_MAP = { - ERC1155: { - freeze: "freezeErc1155", - validateUnfreeze: "validateUnfreezeErc1155", - umt: xpnet_web3_contracts_1.Erc1155Minter__factory, - approved: (umt, sender, minterAddr, _tok, customData) => { - return umt.isApprovedForAll(sender, minterAddr, { - gasLimit: "85000", - customData, - }); - }, - approve: async (umt, forAddr, _tok, txnUp, customData) => { - const tx = await umt.populateTransaction.setApprovalForAll( - forAddr, - true, - { - gasLimit: "85000", - customData, - } - ); - await txnUp(tx); - return await umt.signer.sendTransaction(tx); - }, - }, - ERC721: { - freeze: "freezeErc721", - validateUnfreeze: "validateUnfreezeErc721", - umt: xpnet_web3_contracts_1.UserNftMinter__factory, - approved: async (umt, _, minterAddr, tok, customData) => { - return ( - ( - await umt.getApproved(tok, { - gasLimit: "85000", - customData, - //@ts-ignore - }) - ).toLowerCase() == minterAddr.toLowerCase() - ); - }, - approve: async (umt, forAddr, tok, txnUp) => { - const tx = await umt.populateTransaction.approve(forAddr, tok, { - gasLimit: "85000", - }); - await txnUp(tx); - return await umt.signer.sendTransaction(tx); - }, - }, -}; -async function web3HelperFactory(params) { - const txnUnderpricedPolyWorkaround = - params.nonce == 7 - ? async (utx) => { - const res = await axios_1.default - .get( - "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" - ) - .catch(async () => { - return await axios_1.default.get( - "https://gasstation-mainnet.matic.network/v2" - ); - }); - const { result, fast } = res.data; - const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; - if (trackerGas) { - const sixtyGwei = ethers_1.ethers.utils.parseUnits( - Math.ceil(trackerGas).toString(), - "gwei" - ); - utx.maxFeePerGas = sixtyGwei; - utx.maxPriorityFeePerGas = sixtyGwei; - } - } - : () => Promise.resolve(); - const w3 = params.provider; - const { minter_addr, provider } = params; - const minter = xpnet_web3_contracts_1.Minter__factory.connect( - minter_addr, - provider - ); - async function notifyValidator( - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ) { - await params.notifier.notifyWeb3( - params.nonce, - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ); - } - //@ts-ignore - async function getTransaction(hash) { - let trx; - let fails = 0; - while (!trx && fails < 7) { - trx = await provider.getTransaction(hash); - await new Promise((resolve) => - setTimeout(() => resolve("wait"), 5000 + fails * 2) - ); - fails++; - } - return trx; - } - async function extractAction(txr) { - const receipt = await txr.wait(); - const log = receipt.logs.find((log) => log.address === minter.address); - if (log === undefined) { - throw Error("Couldn't extract action_id"); - } - const evdat = minter.interface.parseLog(log); - const action_id = evdat.args[0].toString(); - return action_id; - } - const isApprovedForMinter = async (id, signer) => { - const erc = exports.NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - signer - ); - const toApprove = - params.nonce !== 0x1d - ? minter_addr - : id.native.uri.includes("herokuapp.com") - ? params.minter_addr - : params.erc721_addr; - return await exports.NFT_METHOD_MAP[id.native.contractType].approved( - erc, - await signer.getAddress(), - toApprove, - id.native.tokenId, - params.nonce === 0x1d ? {} : undefined - ); - }; - const approveForMinter = async (id, sender, _txFees, gasPrice) => { - const isApproved = await isApprovedForMinter(id, sender); - if (isApproved) { - return undefined; - } - const erc = exports.NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - sender - ); - const toApprove = - params.nonce !== 0x1d - ? minter_addr - : id.native.uri.includes("herokuapp.com") - ? params.minter_addr - : params.erc721_addr; - const receipt = await exports.NFT_METHOD_MAP[ - id.native.contractType - ].approve( - erc, - toApprove, - id.native.tokenId, - txnUnderpricedPolyWorkaround, - params.nonce === 0x1d ? {} : undefined, - gasPrice - ); - await receipt.wait(); - return receipt.hash; - }; - const base = await baseWeb3HelperFactory(params.provider, params.nonce); - return { - ...base, - XpNft: params.erc721_addr, - XpNft1155: params.erc1155_addr, - getParams: () => params, - approveForMinter, - getProvider: () => provider, - async estimateValidateUnfreezeNft(_to, _id, _mW) { - const gas = await provider.getGasPrice(); - return new bignumber_js_1.default(gas.mul(150000).toString()); - }, - getFeeMargin() { - return params.feeMargin; - }, - isApprovedForMinter, - preTransfer: (s, id, fee, args) => - approveForMinter(id, s, fee, args?.gasPrice), - extractAction, - async isContractAddress(address) { - const code = await provider.getCode(address); - return code !== "0x"; - }, - getNonce: () => params.nonce, - async preTransferRawTxn(id, address, _value) { - const isApproved = await isApprovedForMinter( - id, - new ethers_1.VoidSigner(address, provider) - ); - if (isApproved) { - return undefined; - } - const erc = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - id.native.contract, - new ethers_1.VoidSigner(address, provider) - ); - const approvetxn = await erc.populateTransaction.approve( - minter_addr, - id.native.tokenId - ); - return approvetxn; - }, - async extractTxnStatus(txn) { - const status = (await (await provider.getTransaction(txn)).wait()).status; - if (status === undefined) { - return __1.TransactionStatus.PENDING; - } - if (status === 1) { - return __1.TransactionStatus.SUCCESS; - } else if (status === 0) { - return __1.TransactionStatus.FAILURE; - } - return __1.TransactionStatus.UNKNOWN; - }, - async getTokenURI(contract, tokenId) { - if (ethers_1.ethers.utils.isAddress(contract) && tokenId) { - const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - contract, - provider - ); - //const erc1155 = Erc1155Minter__factory.connect(contract!, provider) - //erc1155.uri() - return await erc721.tokenURI(tokenId).catch(() => ""); - } - return ""; - }, - async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { - const tx = await minter - .connect(signer) - .populateTransaction.withdrawNftBatch( - to, - chainNonce, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - nfts[0].native.contract, - { - value: ethers_1.BigNumber.from(txFees.toFixed(0)), - } - ); - await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx); - // await notifyValidator( - // res.hash, - // await extractAction(res), - // "Unfreeze", - // chainNonce.toString(), - // txFees.toString(), - // await signer.getAddress(), - // to, - // res.data - // ); - await notifyValidator(res.hash); - return res; - }, - async transferNftBatchToForeign( - signer, - chainNonce, - to, - nfts, - mintWith, - txFees - ) { - const tx = await minter - .connect(signer) - .populateTransaction.freezeErc1155Batch( - nfts[0].native.contract, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - chainNonce, - to, - mintWith, - { - value: ethers_1.BigNumber.from(txFees.toFixed(0)), - } - ); - await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx); - await notifyValidator(res.hash); - return res; - }, - async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { - const gasPrice = await w3.getGasPrice(); - const gas = 40000 + 60000 * nfts.length; - return new bignumber_js_1.default(gasPrice.mul(gas).toString()); - }, - async estimateValidateUnfreezeNftBatch(_to, nfts) { - const gasPrice = await w3.getGasPrice(); - const gas = 40000 + 60000 * nfts.length; - return new bignumber_js_1.default(gasPrice.mul(gas).toString()); - }, - createWallet(privateKey) { - return new ethers_1.Wallet(privateKey, provider); - }, - async transferNftToForeign( - sender, - chain_nonce, - to, - id, - txFees, - mintWith, - gasLimit = undefined, - gasPrice - ) { - await approveForMinter(id, sender, txFees, gasPrice); - const method = exports.NFT_METHOD_MAP[id.native.contractType].freeze; - // Chain is Hedera - if (params.nonce === 0x1d) { - id.native.tokenId = ethers_1.ethers.utils.solidityPack( - ["uint160", "int96"], - [id.collectionIdent, id.native.tokenId] - ); - id.native.contract = params.erc721_addr; - } - const tx = await minter - .connect(sender) - .populateTransaction[method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - { - value: ethers_1.BigNumber.from(txFees.toFixed(0)), - gasLimit, - gasPrice, - } - ); - await txnUnderpricedPolyWorkaround(tx); - const txr = await sender.sendTransaction(tx).catch((e) => { - if (params.nonce === 33) { - return e; - } else throw e; - }); - let txHash; - if (params.nonce === 0x1d) { - //@ts-ignore checked hedera - txHash = txr["transactionId"]; - } else if (params.nonce === 33) { - //@ts-ignore checked abeychain - txHash = txr["returnedHash"] || txr.hash; - } else { - //@ts-ignore checked normal evm - txHash = txr.hash; - } - await notifyValidator( - //@ts-ignore - txHash - ); - if (params.nonce === 33) { - return await provider.getTransaction(txHash); - } - return txr; - }, - async unfreezeWrappedNft( - sender, - to, - id, - txFees, - nonce, - gasLimit = undefined, - gasPrice - ) { - await approveForMinter(id, sender, txFees, gasPrice); - // Chain is Hedera - if (params.nonce === 0x1d) { - id.native.tokenId = ethers_1.ethers.utils.solidityPack( - ["uint160", "int96"], - [ethers_1.BigNumber.from(id.collectionIdent), id.native.tokenId] - ); - id.native.contract = params.erc721_addr; - } - const txn = await minter - .connect(sender) - .populateTransaction.withdrawNft( - to, - nonce, - id.native.tokenId, - id.native.contract, - { - value: ethers_1.BigNumber.from(txFees.toFixed(0)), - gasLimit, - gasPrice, - } - ); - await txnUnderpricedPolyWorkaround(txn); - const res = await sender.sendTransaction(txn); - console.log(res, "res"); - let txHash; - if (params.nonce === 0x1d) { - //@ts-ignore checked hedera - txHash = res["transactionId"]; - } else if (params.nonce === 33) { - //@ts-ignore checked abeychain - txHash = res["returnedHash"] || res.hash; - } else { - //@ts-ignore checked normal evm - txHash = res.hash; - } - await notifyValidator(txHash); - if (params.nonce === 33) { - return await provider.getTransaction(txHash); - } - return res; - }, - async estimateValidateTransferNft(_to, _nftUri, _mintWith) { - const gas = await provider.getGasPrice(); - return new bignumber_js_1.default(gas.mul(150000).toString()); - }, - async estimateContractDep(toChain) { - try { - console.log("NEED TO DEPLOY CONTRACT"); - const gas = await provider.getGasPrice(); - const pro = toChain.getProvider(); - const wl = ["0x47Bf0dae6e92e49a3c95e5b0c71422891D5cd4FE"]; - const gk = 123; - const gkx = 42; - const factory = new ethers_1.ethers.ContractFactory( - xpnet_web3_contracts_1.Minter__factory.abi, - xpnet_web3_contracts_1.Minter__factory.bytecode - ); - const estimateGas = await pro.estimateGas( - factory.getDeployTransaction(gk, gkx, wl) - ); - const contractFee = gas.mul(estimateGas); - const sum = new bignumber_js_1.default(contractFee.toString()); - return sum; - } catch (error) { - console.log(error.message); - const gas = await provider.getGasPrice(); - return new bignumber_js_1.default(gas.mul(150000).toString()); - } - }, - validateAddress(adr) { - return Promise.resolve(ethers_1.ethers.utils.isAddress(adr)); - }, - isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract); - }, - }; -} -exports.web3HelperFactory = web3HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViMy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBZXJDLG1DQVNnQjtBQUVoQiwrREFNOEI7QUFDOUIsMEJBWVk7QUFHWixrREFBMEI7QUFDMUIsZ0RBQTZDO0FBNEM3QyxpQkFBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUNoRSxPQUFPLGtCQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQTBERjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxRQUFrQixFQUNsQixLQUFhO0lBRWIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxD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 diff --git a/dist/helpers/web3_erc20.d.ts b/dist/helpers/web3_erc20.d.ts deleted file mode 100644 index b506e5dbb..000000000 --- a/dist/helpers/web3_erc20.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Provider } from "@ethersproject/providers"; -import { BaseWeb3Helper, Web3Helper, Web3Params } from ".."; -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -export declare function baseWeb3HelperFactory( - provider: Provider -): Promise; -export type Web3ERC20Params = Web3Params & { - paymentTokenAddress: string; -}; -export declare function web3ERC20HelperFactory( - params: Web3ERC20Params -): Promise; -//# sourceMappingURL=web3_erc20.d.ts.map diff --git a/dist/helpers/web3_erc20.d.ts.map b/dist/helpers/web3_erc20.d.ts.map deleted file mode 100644 index 9b5549988..000000000 --- a/dist/helpers/web3_erc20.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"web3_erc20.d.ts","sourceRoot":"","sources":["../../src/helpers/web3_erc20.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAOzE,OAAO,EACL,cAAc,EAMd,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AAGZ;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,UAAU,CAAC,CAsYrB"} \ No newline at end of file diff --git a/dist/helpers/web3_erc20.js b/dist/helpers/web3_erc20.js deleted file mode 100644 index f1e1aece3..000000000 --- a/dist/helpers/web3_erc20.js +++ /dev/null @@ -1,400 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.web3ERC20HelperFactory = exports.baseWeb3HelperFactory = void 0; -/** - * Web3 Implementation for cross chain traits - * @module - */ -const bignumber_js_1 = __importDefault(require("bignumber.js")); -const ethers_1 = require("ethers"); -const xpnet_web3_contracts_1 = require("xpnet-web3-contracts"); -const __1 = require(".."); -const axios_1 = __importDefault(require("axios")); -/** - * Create an object implementing minimal utilities for a web3 chain - * - * @param provider An ethers.js provider object - */ -async function baseWeb3HelperFactory(provider) { - const w3 = provider; - return { - async balance(address) { - const bal = await w3.getBalance(address); - // ethers BigNumber is not compatible with our bignumber - return new bignumber_js_1.default(bal.toString()); - }, - async deployErc721(owner) { - const factory = new xpnet_web3_contracts_1.UserNftMinter__factory(owner); - const contract = await factory.deploy(); - return contract.address; - }, - async mintNftErc1155(owner, { contract }) { - const erc1155 = xpnet_web3_contracts_1.Erc1155Minter__factory.connect( - contract, - owner - ); - const tx = await erc1155.mintNft(await owner.getAddress()); - return tx; - }, - async mintNft(owner, { contract, uri }) { - const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - contract, - owner - ); - const txm = await erc721.mint(uri, { gasLimit: 1000000 }); - return txm; - }, - }; -} -exports.baseWeb3HelperFactory = baseWeb3HelperFactory; -async function web3ERC20HelperFactory(params) { - const txnUnderpricedPolyWorkaround = - params.nonce == 7 - ? async (utx) => { - const res = await axios_1.default - .get( - "https://gpoly.blockscan.com/gasapi.ashx?apikey=key&method=pendingpooltxgweidata" - ) - .catch(async () => { - return await axios_1.default.get( - "https://gasstation-mainnet.matic.network/v2" - ); - }); - const { result, fast } = res.data; - const trackerGas = result?.rapidgaspricegwei || fast?.maxFee; - if (trackerGas) { - const sixtyGwei = ethers_1.ethers.utils.parseUnits( - Math.ceil(trackerGas).toString(), - "gwei" - ); - utx.maxFeePerGas = sixtyGwei; - utx.maxPriorityFeePerGas = sixtyGwei; - } - } - : () => Promise.resolve(); - const w3 = params.provider; - const { minter_addr, provider } = params; - const minter = xpnet_web3_contracts_1.MinterERC20__factory.connect( - minter_addr, - provider - ); - async function notifyValidator( - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ) { - await params.notifier.notifyWeb3( - params.nonce, - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ); - } - async function getTransaction(hash) { - let trx; - let fails = 0; - while (!trx && fails < 7) { - trx = await provider.getTransaction(hash); - await new Promise((resolve) => - setTimeout(() => resolve("wait"), 5000 + fails * 2) - ); - fails++; - } - return trx; - } - async function extractAction(txr) { - const receipt = await txr.wait(); - const log = receipt.logs.find((log) => log.address === minter.address); - if (log === undefined) { - throw Error("Couldn't extract action_id"); - } - const evdat = minter.interface.parseLog(log); - const action_id = evdat.args[0].toString(); - return action_id; - } - const isApprovedForMinter = async (id, signer, _txFees) => { - const erc = __1.NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - signer - ); - return await __1.NFT_METHOD_MAP[id.native.contractType].approved( - erc, - await signer.getAddress(), - minter_addr, - id.native.tokenId, - params.nonce === 0x1d ? {} : undefined - ); - }; - const approveForMinter = async (id, sender, txFees, gasPrice) => { - const isApproved = await isApprovedForMinter(id, sender, txFees); - if (isApproved) { - return undefined; - } - const erc = __1.NFT_METHOD_MAP[id.native.contractType].umt.connect( - id.native.contract, - sender - ); - const receipt = await __1.NFT_METHOD_MAP[id.native.contractType].approve( - erc, - minter_addr, - id.native.tokenId, - txnUnderpricedPolyWorkaround, - params.nonce === 0x1d ? {} : undefined, - gasPrice - ); - await receipt.wait(); - const erc20 = xpnet_web3_contracts_1.PaymentToken__factory.connect( - params.paymentTokenAddress, - sender - ); - const approval = await erc20.approve( - minter_addr, - ethers_1.BigNumber.from(txFees.toString()) - ); - return approval.hash; - }; - const base = await baseWeb3HelperFactory(params.provider); - return { - ...base, - XpNft: params.erc721_addr, - XpNft1155: params.erc1155_addr, - getParams: () => params, - approveForMinter, - getProvider: () => provider, - async estimateValidateUnfreezeNft(_to, _id, _mW) { - const gas = await provider.getGasPrice(); - return new bignumber_js_1.default(gas.mul(150000).toString()); - }, - getFeeMargin() { - return params.feeMargin; - }, - isApprovedForMinter, - preTransfer: (s, id, _fee, args) => - approveForMinter(id, s, _fee, args?.gasPrice), - extractAction, - async isContractAddress(address) { - const code = await provider.getCode(address); - return code !== "0x"; - }, - getNonce: () => params.nonce, - async preTransferRawTxn(id, address, _value) { - const isApproved = await isApprovedForMinter( - id, - new ethers_1.VoidSigner(address, provider), - _value - ); - if (isApproved) { - return undefined; - } - const erc = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - id.native.contract, - new ethers_1.VoidSigner(address, provider) - ); - const approvetxn = await erc.populateTransaction.approve( - minter_addr, - id.native.tokenId - ); - return approvetxn; - }, - async extractTxnStatus(txn) { - const status = (await (await provider.getTransaction(txn)).wait()).status; - if (status === undefined) { - return __1.TransactionStatus.PENDING; - } - if (status === 1) { - return __1.TransactionStatus.SUCCESS; - } else if (status === 0) { - return __1.TransactionStatus.FAILURE; - } - return __1.TransactionStatus.UNKNOWN; - }, - async getTokenURI(contract, tokenId) { - if (ethers_1.ethers.utils.isAddress(contract) && tokenId) { - const erc721 = xpnet_web3_contracts_1.UserNftMinter__factory.connect( - contract, - provider - ); - return await erc721.tokenURI(tokenId).catch(() => ""); - } - return ""; - }, - async unfreezeWrappedNftBatch(signer, chainNonce, to, nfts, txFees) { - const tx = await minter - .connect(signer) - .populateTransaction.withdrawNftBatch( - to, - chainNonce, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - nfts[0].native.contract, - ethers_1.BigNumber.from(txFees.toString()) - ); - await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx); - // await notifyValidator( - // res.hash, - // await extractAction(res), - // "Unfreeze", - // chainNonce.toString(), - // txFees.toString(), - // await signer.getAddress(), - // to, - // res.data - // ); - await notifyValidator(res.hash); - return res; - }, - async transferNftBatchToForeign( - signer, - chainNonce, - to, - nfts, - mintWith, - txFees - ) { - const tx = await minter - .connect(signer) - .populateTransaction.freezeErc1155Batch( - nfts[0].native.contract, - nfts.map((nft) => nft.native.tokenId), - new Array(nfts.length).fill(1), - chainNonce, - to, - mintWith, - ethers_1.BigNumber.from(txFees.toString()) - ); - await txnUnderpricedPolyWorkaround(tx); - const res = await signer.sendTransaction(tx); - await notifyValidator(res.hash); - return res; - }, - async estimateValidateTransferNftBatch(_to, nfts, _mintWith) { - const gasPrice = await w3.getGasPrice(); - const gas = 40000 + 60000 * nfts.length; - return new bignumber_js_1.default(gasPrice.mul(gas).toString()); - }, - async estimateValidateUnfreezeNftBatch(_to, nfts) { - const gasPrice = await w3.getGasPrice(); - const gas = 40000 + 60000 * nfts.length; - return new bignumber_js_1.default(gasPrice.mul(gas).toString()); - }, - createWallet(privateKey) { - return new ethers_1.Wallet(privateKey, provider); - }, - async transferNftToForeign( - sender, - chain_nonce, - to, - id, - txFees, - mintWith, - gasLimit = undefined, - gasPrice - ) { - await approveForMinter(id, sender, txFees, gasPrice); - const method = __1.NFT_METHOD_MAP[id.native.contractType].freeze; - const tx = await minter - .connect(sender) - .populateTransaction[method]( - id.native.contract, - id.native.tokenId, - chain_nonce, - to, - mintWith, - ethers_1.BigNumber.from(txFees.toString()), - { - gasLimit, - } - ); - await txnUnderpricedPolyWorkaround(tx); - const txr = await sender.sendTransaction(tx).catch((e) => { - if (params.nonce === 33) { - return e; - } else throw e; - }); - let txHash; - if (params.nonce === 0x1d) { - //@ts-ignore checked hedera - txHash = txr["transactionId"]; - } - if (params.nonce === 33) { - //@ts-ignore checked abeychain - txHash = txr["returnedHash"] || txr.hash; - } else { - //@ts-ignore checked normal evm - txHash = txr.hash; - } - await notifyValidator( - //@ts-ignore - txHash, - await extractAction(await getTransaction(txHash)), - "Transfer", - chain_nonce, - txFees.toString(), - await sender.getAddress(), - to, - id.uri, - id.native.tokenId, - id.native.contract - ); - return params.nonce === 33 ? await provider.getTransaction(txHash) : txr; - }, - async unfreezeWrappedNft(sender, to, id, txFees, nonce) { - const txn = await minter - .connect(sender) - .populateTransaction.withdrawNft( - to, - nonce, - id.native.tokenId, - id.native.contract, - ethers_1.BigNumber.from(txFees.toString()) - ); - await txnUnderpricedPolyWorkaround(txn); - const res = await sender.sendTransaction(txn); - await notifyValidator( - res.hash, - await extractAction(res), - "Unfreeze", - Number(nonce), - txFees.toString(), - await sender.getAddress(), - to, - id.uri, - id.native.tokenId, - id.native.contract - ); - return res; - }, - async estimateValidateTransferNft(_to, _nftUri, _mintWith) { - const gas = await provider.getGasPrice(); - return new bignumber_js_1.default(gas.mul(150000).toString()); - }, - validateAddress(adr) { - return Promise.resolve(ethers_1.ethers.utils.isAddress(adr)); - }, - isNftWhitelisted(nft) { - return minter.nftWhitelist(nft.native.contract); - }, - }; -} -exports.web3ERC20HelperFactory = web3ERC20HelperFactory; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViM19lcmMyMC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dlYjNfZXJjMjAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7OztHQUdHO0FBQ0gsZ0VBQXFDO0FBQ3JDLG1DQVFnQjtBQUVoQiwrREFLOEI7QUFDOUIsMEJBU1k7QUFDWixrREFBMEI7QUFFMUI7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsUUFBa0I7SUFFbEIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRXBCLE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWU7WUFDM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLHdEQUF3RDtZQUN4RCxPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFhO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksNkNBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFeEMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyw2Q0FBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBRTNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBYSxF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 diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index eab1c8f9d..000000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./helpers/chain"; -export * from "./helpers/elrond"; -export * from "./helpers/web3"; -export * from "./helpers/tron"; -export * from "./socket"; -export * from "./emitter"; -export * from "./factory"; -export * from "./consts"; -export * from "./config"; -export { ChainNonce } from "./type-utils"; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map deleted file mode 100644 index a50ed3812..000000000 --- a/dist/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index a4bdf69ff..000000000 --- a/dist/index.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -var __createBinding = - (this && this.__createBinding) || - (Object.create - ? function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if ( - !desc || - ("get" in desc ? !m.__esModule : desc.writable || desc.configurable) - ) { - desc = { - enumerable: true, - get: function () { - return m[k]; - }, - }; - } - Object.defineProperty(o, k2, desc); - } - : function (o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }); -var __exportStar = - (this && this.__exportStar) || - function (m, exports) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) - __createBinding(exports, m, p); - }; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./helpers/chain"), exports); -__exportStar(require("./helpers/elrond"), exports); -__exportStar(require("./helpers/web3"), exports); -__exportStar(require("./helpers/tron"), exports); -__exportStar(require("./socket"), exports); -__exportStar(require("./emitter"), exports); -__exportStar(require("./factory"), exports); -__exportStar(require("./consts"), exports); -__exportStar(require("./config"), exports); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQyxtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLDRDQUEwQjtBQUMxQiwyQ0FBeUI7QUFDekIsMkNBQXlCIn0= diff --git a/dist/notifier/index.d.ts b/dist/notifier/index.d.ts deleted file mode 100644 index ea992af4a..000000000 --- a/dist/notifier/index.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -export type EvNotifier = ReturnType; -export declare function evNotifier(url: string): { - notifyWeb3( - fromChain: number, - fromHash: string, - actionId?: string, - type?: string, - toChain?: number, - txFees?: string, - senderAddress?: string, - targetAddress?: string, - nftUri?: string, - tokenId?: string, - contract?: string - ): Promise; - notifyTron(txHash: string): Promise; - notifyElrond( - txHash: string, - sender: string, - uris: string[], - action_id: string | undefined - ): Promise; - notifyTezos(txHash: string): Promise; - notifyAlgorand(txHash: string): Promise; - notifySecret(txHash: string, vk: string): Promise; - notifySolana(txHash: string): Promise; - notifyNear(txHash: string): Promise; - notifyDfinity(actionId: string): Promise; - notifyTon(txHash: string): Promise; - notifyAptos(txHash: string): Promise; - notifyEVM(nonce: number, address: string): Promise; -}; -//# sourceMappingURL=index.d.ts.map diff --git a/dist/notifier/index.d.ts.map b/dist/notifier/index.d.ts.map deleted file mode 100644 index 78444595a..000000000 --- a/dist/notifier/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifier/index.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM;0BAOrB,MAAM,YACP,MAAM,aACL,MAAM,SACV,MAAM,YACH,MAAM,WACP,MAAM,kBACC,MAAM,kBACN,MAAM,WACb,MAAM,YACL,MAAM,aACL,MAAM;uBAgBM,MAAM;yBAMrB,MAAM,UACN,MAAM,QACR,MAAM,EAAE,aACH,MAAM,GAAG,SAAS;wBASL,MAAM;2BAKH,MAAM;yBAKR,MAAM,MAAM,MAAM;yBAGlB,MAAM;uBAGR,MAAM;4BAGD,MAAM;sBAGZ,MAAM;wBAGJ,MAAM;qBAGT,MAAM,WAAW,MAAM;EAOjD"} \ No newline at end of file diff --git a/dist/notifier/index.js b/dist/notifier/index.js deleted file mode 100644 index 78914d8b9..000000000 --- a/dist/notifier/index.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.evNotifier = void 0; -const axios_1 = __importDefault(require("axios")); -function evNotifier(url) { - const api = axios_1.default.create({ - baseURL: url, - }); - return { - async notifyWeb3( - fromChain, - fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract - ) { - await api.post("/tx/web3", { - chain_nonce: fromChain, - tx_hash: fromHash, - actionId, - type, - toChain, - txFees, - senderAddress, - targetAddress, - nftUri, - tokenId, - contract, - }); - }, - async notifyTron(txHash) { - await api.post("/tx/tron", { - tx_hash: txHash, - }); - }, - async notifyElrond(txHash, sender, uris, action_id) { - await api.post("/tx/elrond", { - tx_hash: txHash, - sender, - uris, - action_id, - }); - }, - async notifyTezos(txHash) { - await api.post("/tx/tezos", { - tx_hash: txHash, - }); - }, - async notifyAlgorand(txHash) { - await api.post("/tx/algorand", { - tx_hash: txHash, - }); - }, - async notifySecret(txHash, vk) { - await api.post("/tx/scrt", { tx_hash: txHash, vk: vk }); - }, - async notifySolana(txHash) { - await api.post("/tx/solana", { tx_hash: txHash }); - }, - async notifyNear(txHash) { - await api.post("/tx/near", { tx_hash: txHash }); - }, - async notifyDfinity(actionId) { - await api.post("/tx/dfinity", { action_id: actionId }); - }, - async notifyTon(txHash) { - await api.post("/tx/ton", { tx_hash: txHash }); - }, - async notifyAptos(txHash) { - await api.post("/tx/aptos", { tx_hash: txHash }); - }, - async notifyEVM(nonce, address) { - await api.post("/whitelist", { - contract: address, - chain_nonce: nonce, - }); - }, - }; -} -exports.evNotifier = evNotifier; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSTFCLFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkIsT0FBTyxFQUFFLEdBQUc7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixRQUFnQixFQUNoQixRQUFpQixFQUNqQixJQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsTUFBZSxFQUNmLGFBQXNCLEVBQ3RCLGFBQXNCLEVBQ3RCLE1BQWUsRUFDZixPQUFnQixFQUNoQixRQUFpQjtZQUVqQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sYUFBYTtnQkFDYixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTTthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVksQ0FDaEIsTUFBYyxFQUNkLE1BQWMsRUFDZCxJQUFjLEVBQ2QsU0FBNkI7WUFFN0IsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDM0IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsTUFBTTtnQkFDTixJQUFJO2dCQUNKLFNBQVM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1lBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxNQUFNO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQWM7WUFDakMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDN0IsT0FBTyxFQUFFLE1BQU07YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLEVBQVU7WUFDM0MsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBYztZQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBYztZQUM3QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBZ0I7WUFDbEMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQWM7WUFDNUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWM7WUFDOUIsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlO1lBQzVDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzNCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixXQUFXLEVBQUUsS0FBSzthQUNuQixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUF0RkQsZ0NBc0ZDIn0= diff --git a/dist/scripts/deploy_tron.d.ts b/dist/scripts/deploy_tron.d.ts deleted file mode 100644 index 32f4d23b0..000000000 --- a/dist/scripts/deploy_tron.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=deploy_tron.d.ts.map diff --git a/dist/scripts/deploy_tron.d.ts.map b/dist/scripts/deploy_tron.d.ts.map deleted file mode 100644 index d44822911..000000000 --- a/dist/scripts/deploy_tron.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"deploy_tron.d.ts","sourceRoot":"","sources":["../../src/scripts/deploy_tron.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/scripts/deploy_tron.js b/dist/scripts/deploy_tron.js deleted file mode 100644 index 421e9b895..000000000 --- a/dist/scripts/deploy_tron.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -const tron_1 = require("../helpers/tron"); -//@ts-expect-error no typings, cope -const tronweb_1 = __importDefault(require("tronweb")); -const dotenv_1 = require("dotenv"); -(0, dotenv_1.config)(); -(async () => { - // Testnet - // const api = "https://api.shasta.trongrid.io"; - // const signer = process.env.TRON_SK!; - // const xpnftWrappedUri = "https://bridge-wnftapi.herokuapp.com/w/"; - // const xpnft1155WrappedUri = "https://bridge-wnftapi.herokuapp.com/w/{id}"; - // const frostGroupKey = process.env.FROST_GROUP_KEY!; - // Mainnet - const api = "https://api.trongrid.io"; - const signer = process.env.TRON_SK; - const xpnftWrappedUri = "https://wnfts.xp.network/w/"; - const xpnft1155WrappedUri = "https://wnfts.xp.network/w/{id}"; - const frostGroupKey = process.env.FROST_GROUP_KEY; - const prov = new tronweb_1.default({ fullHost: api }); - const tron = await (0, tron_1.baseTronHelperFactory)(prov); - const contracts = await tron.deployMinter( - signer, - frostGroupKey, - xpnftWrappedUri, - xpnft1155WrappedUri - ); - console.log(contracts); -})().catch((e) => console.error(e)); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3Ryb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9kZXBsb3lfdHJvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBDQUF3RDtBQUN4RCxtQ0FBbUM7QUFDbkMsc0RBQThCO0FBQzlCLG1DQUFnQztBQUNoQyxJQUFBLGVBQU0sR0FBRSxDQUFDO0FBRVQsQ0FBQyxLQUFLLElBQUksRUFBRTtJQUNWLFVBQVU7SUFDVixnREFBZ0Q7SUFDaEQsdUNBQXVDO0lBQ3ZDLHFFQUFxRTtJQUNyRSw2RUFBNkU7SUFDN0Usc0RBQXNEO0lBRXRELFVBQVU7SUFDVixNQUFNLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQztJQUN0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQVEsQ0FBQztJQUNwQyxNQUFNLGVBQWUsR0FBRyw2QkFBNkIsQ0FBQztJQUN0RCxNQUFNLG1CQUFtQixHQUFHLGlDQUFpQyxDQUFDO0lBQzlELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZ0IsQ0FBQztJQUVuRCxNQUFNLElBQUksR0FBRyxJQUFJLGlCQUFPLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsNEJBQXFCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFL0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUN2QyxNQUFNLEVBQ04sYUFBYSxFQUNiLGVBQWUsRUFDZixtQkFBbUIsQ0FDcEIsQ0FBQztJQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyJ9 diff --git a/dist/socket.d.ts b/dist/socket.d.ts deleted file mode 100644 index 50d6a1134..000000000 --- a/dist/socket.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { ManagerOptions, SocketOptions } from "socket.io-client"; -import { ClaimNftInfo } from "./helpers/algorand"; -/** - * Tracker for cross chain transaction - */ -export type TxnSocketHelper = { - /** - * - * @param chain Nonce of the target chain - * @param action_id Identifier for tracking a cross chain transaction - * @returns transaction hash on the foreign chain - */ - waitTxHash(chain: number, action_id: string): Promise; -}; -export type AlgorandSocketHelper = { - waitAlgorandNft( - sourceChain: number, - receiver: string, - action_id: string - ): Promise; - claimNfts(receiver: string): Promise; - cleanNfts(owner: string): Promise; -}; -type DbClaimInfo = { - receiver: string; - app_id: string; - nft_id: string; - action_id: string; - inserted_at: Date; -}; -/** - * Create a [[SocketHelper]] - * - * @param uri URI of the Migration-Validator socket api - * @param options socket.io options - */ -export declare function socketHelper( - uri: string, - options?: Partial -): TxnSocketHelper & AlgorandSocketHelper; -export {}; -//# sourceMappingURL=socket.d.ts.map diff --git a/dist/socket.d.ts.map b/dist/socket.d.ts.map deleted file mode 100644 index a37ab3a5b..000000000 --- a/dist/socket.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BlD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,CAAC;AAsFF,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,cAAc,CAAC,GAChD,eAAe,GAAG,oBAAoB,CA0DxC"} \ No newline at end of file diff --git a/dist/socket.js b/dist/socket.js deleted file mode 100644 index 9a5fe10d1..000000000 --- a/dist/socket.js +++ /dev/null @@ -1,115 +0,0 @@ -"use strict"; -var __importDefault = - (this && this.__importDefault) || - function (mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.socketHelper = void 0; -const axios_1 = __importDefault(require("axios")); -const socket_io_client_1 = require("socket.io-client"); -function pairAction(sourceChain, action_id) { - const numId = parseInt(action_id); - return numId >= sourceChain - ? numId * numId + sourceChain + numId - : numId + sourceChain * sourceChain; -} -function socketResBuf() { - const inner = {}; - const requireChain = (chain_id) => { - if (inner[chain_id] === undefined) { - inner[chain_id] = {}; - } - }; - return { - getResolver(chain_id, action_id) { - requireChain(chain_id); - return inner[chain_id][action_id]?.resolve; - }, - setResolver(chain_id, action_id, resolver) { - requireChain(chain_id); - inner[chain_id][action_id] = { resolve: resolver }; - }, - getEventRes(chain_id, action_id) { - requireChain(chain_id); - return inner[chain_id][action_id]?.event_res; - }, - setEventRes(chain_id, action_id, res) { - requireChain(chain_id); - inner[chain_id][action_id] = { event_res: res }; - }, - unsetAction(chain_id, action_id) { - requireChain(chain_id); - inner[chain_id][action_id] = undefined; - }, - }; -} -function add_event(buf, chain, id, data) { - const resolve = buf.getResolver(chain, id); - if (resolve === undefined) { - buf.setEventRes(chain, id, data); - return; - } - resolve(data); -} -async function waitSocketData(buf, chain, action_id) { - const data = buf.getEventRes(chain, action_id); - if (data !== undefined) { - buf.unsetAction(chain, action_id); - return data; - } - const dataP = new Promise((r) => { - buf.setResolver(chain, action_id, r); - }); - return await dataP; -} -/** - * Create a [[SocketHelper]] - * - * @param uri URI of the Migration-Validator socket api - * @param options socket.io options - */ -function socketHelper(uri, options) { - const socket = (0, socket_io_client_1.io)(uri, options); - const txbuf = socketResBuf(); - const algoBuf = socketResBuf(); - const dbApi = axios_1.default.create({ - baseURL: uri, - }); - socket.on("tx_executed_event", (chain, action_id, hash) => { - add_event(txbuf, chain, action_id, hash); - }); - socket.on("algorand_minted_event", (_, action_id, app_id, nft_id) => - add_event(algoBuf, 15, action_id, { - appId: app_id, - nftId: nft_id, - }) - ); - return { - async waitTxHash(chain, action_id) { - return await waitSocketData(txbuf, chain, action_id); - }, - async waitAlgorandNft(sourceChain, receiver, action_id) { - // Validator sends a an action paired with chain id - // this is implementation dependent on validator - const paired = pairAction(sourceChain, action_id).toString(); - const dbData = await dbApi.get(`/algorand_event/${receiver}/${paired}`); - if (dbData.data.app_id) { - return { - appId: parseInt(dbData.data.app_id), - nftId: parseInt(dbData.data.nft_id), - }; - } - return await waitSocketData(algoBuf, 15, paired); - }, - async claimNfts(receiver) { - const dbData = await dbApi.get(`/algorand_event/${receiver}`); - return dbData.data.result; - }, - async cleanNfts(owner) { - await dbApi.delete(`/algorand_event/${owner}`); - }, - }; -} -exports.socketHelper = socketHelper; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvY2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsdURBQXFFO0FBc0RyRSxTQUFTLFVBQVUsQ0FBQyxXQUFtQixFQUFFLFNBQWlCO0lBQ3hELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxPQUFPLEtBQUssSUFBSSxXQUFXO1FBQ3pCLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLFdBQVcsR0FBRyxLQUFLO1FBQ3JDLENBQUMsQ0FBQyxLQUFLLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxZQUFZO0lBQ25CLE1BQU0sS0FBSyxHQUF5QixFQUFFLENBQUM7SUFFdkMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsV0FBVyxDQUNULFFBQWdCLEVBQ2hCLFNBQWlCO1lBRWpCLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUM7UUFDN0MsQ0FBQztRQUNELFdBQVcsQ0FDVCxRQUFnQixFQUNoQixTQUFpQixFQUNqQixRQUEyQjtZQUUzQixZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFDRCxXQUFXLENBQUMsUUFBZ0IsRUFBRSxTQUFpQjtZQUM3QyxZQUFZ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 diff --git a/dist/type-utils.d.ts b/dist/type-utils.d.ts deleted file mode 100644 index 8aa85ee2c..000000000 --- a/dist/type-utils.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { MetaMap, TransferNftForeign } from "."; -type TransferNftChain = TransferNftForeign< - Signer, - RawNft, - Resp ->; -export type ChainNonce = keyof MetaMap; -export type InferChainParam = MetaMap[K][1]; -export type InferChainH = MetaMap[K][0]; -export type InferSigner = K extends TransferNftChain< - infer S, - unknown, - unknown -> - ? S - : never; -export type InferNativeNft = K extends TransferNftChain< - any, - infer RawNft, - any -> - ? RawNft - : never; -export type ParamMap = { - set(k: T, v: InferChainParam | undefined): void; - get(k: T): InferChainParam | undefined; -}; -export type HelperMap = Map< - K, - InferChainH | undefined ->; -export type Mutable = { - -readonly [Key in keyof Type]: Type[Key]; -}; -export {}; -//# sourceMappingURL=type-utils.d.ts.map diff --git a/dist/type-utils.d.ts.map b/dist/type-utils.d.ts.map deleted file mode 100644 index 3d672292e..000000000 --- a/dist/type-utils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAEhD,KAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,kBAAkB,CAC9D,MAAM,EACN,MAAM,EACN,IAAI,CACL,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACrD,MAAM,CAAC,EACP,OAAO,EACP,OAAO,CACR,GACG,CAAC,GACD,KAAK,CAAC;AAEV,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CACxD,GAAG,EACH,MAAM,MAAM,EACZ,GAAG,CACJ,GACG,MAAM,GACN,KAAK,CAAC;AAEV,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IACzE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,IAAI,GAAG,CAC/C,CAAC,EACD,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAC3B,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI;IAC1B,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;CACzC,CAAC"} \ No newline at end of file diff --git a/dist/type-utils.js b/dist/type-utils.js deleted file mode 100644 index 0a41d923f..000000000 --- a/dist/type-utils.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ== From f94e66db604aaa3202d6877ce1f4429a0272360f Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 5 Mar 2023 12:55:48 +0200 Subject: [PATCH 927/956] add ignore dist folder --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 95b8d6cb2..ad6445214 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ build node_modules test +dist src/**.js coverage *.log From 0128671c80ab4d1e9db01684b9a7c7378a29dc2e Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 5 Mar 2023 14:17:14 +0200 Subject: [PATCH 928/956] change secret rpc --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 14440206a..010e3685f 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -92,7 +92,7 @@ export enum MainNetRpcUri { GODWOKEN = "https://v1.mainnet.godwoken.io/rpc", GATECHAIN = "https://evm.gatenode.cc", VECHAIN = "https://sync-mainnet.veblocks.net", - SECRET = "https://secret-4.api.trivium.network:1317", + SECRET = "https://secret-4.api.trivium.network:9091/", SKALE = "https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague", NEAR = "https://rpc.mainnet.near.org", MOONBEAM = "https://rpc.api.moonbeam.network", From d5d8254c189b2ace69ff6bd5bb9b2be246c3f21e Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 5 Mar 2023 14:55:45 +0200 Subject: [PATCH 929/956] change tx to any --- src/helpers/secret.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index c9ad571c6..66fab7f22 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,5 +1,5 @@ import BigNumber from "bignumber.js"; -import { Bech32, SecretNetworkClient, Tx } from "secretjs"; +import { Bech32, SecretNetworkClient } from "secretjs"; import { Extension, Snip721MintOptions, @@ -40,15 +40,19 @@ type GetOwnedTokensResponse = Snip721GetTokensResponse & { generic_err?: { msg: string }; }; -export type SecretHelper = TransferNftForeign & - UnfreezeForeignNft & +export type SecretHelper = TransferNftForeign< + SecretSigner, + SecretNftInfo, + any +> & + UnfreezeForeignNft & ValidateAddress & EstimateTxFees & ChainNonceGet & PreTransfer & BalanceCheck & GetFeeMargins & { XpNft: string } & GetProvider & - MintNft & { + MintNft & { nftList( owner: string, @@ -60,7 +64,7 @@ export type SecretHelper = TransferNftForeign & client: SecretNetworkClient, contract: string, vk: string - ): Promise; + ): Promise; isApprovedForMinter( sender: SecretSigner, nft: NftInfo From 57c24104420faf94455db913498da41fb8d7ac2f Mon Sep 17 00:00:00 2001 From: Alex Moshinsky Date: Sun, 5 Mar 2023 16:53:28 +0200 Subject: [PATCH 930/956] update secret listNft --- src/helpers/secret.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index 66fab7f22..bb7006ecd 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -216,26 +216,35 @@ export async function secretHelperFactory( address: owner, }, }; + if (!codeHash) { + codeHash = await queryClient.query.compute.contractCodeHash( + contractAddress + ); + } const contract = { address: contractAddress, codeHash: codeHash || "", }; - const { token_list } = (await queryClient.query.snip721.GetOwnedTokens({ - contract, - auth, - owner, - })) as GetOwnedTokensResponse; + const { token_list, generic_err } = + (await queryClient.query.snip721.GetOwnedTokens({ + contract, + auth, + owner, + })) as GetOwnedTokensResponse; + + if (generic_err) throw new Error(generic_err.msg); const response: NftInfo[] = []; await Promise.all( - token_list?.tokens?.map(async (token) => { + token_list.tokens.map(async (token) => { const tokenInfo = await queryClient.query.snip721.GetTokenInfo({ contract, auth, token_id: token, }); + response.push({ collectionIdent: contractAddress, uri: tokenInfo.all_nft_info.info?.token_uri || "", From 35ed875507db7e5cc3d6f50a6bbc20bb1b08fb3f Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 1 Mar 2023 13:04:57 +0200 Subject: [PATCH 931/956] HEDERA: contracts redeplot testnet --- src/factory/factories.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 69059a78a..d082e3227 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -354,11 +354,11 @@ export namespace ChainFactoryConfigs { provider: hethers.getDefaultProvider("testnet") as any, feeMargin, nonce: Chain.HEDERA, - erc721_addr: "0x0000000000000000000000000000000002e88e04", - erc1155_addr: "0x0000000000000000000000000000000002e88e04", - minter_addr: "0x0000000000000000000000000000000002e86d67", - erc721Minter: "0x0000000000000000000000000000000002da3c1d", - erc1155Minter: "0x0000000000000000000000000000000002da3c20", + erc721_addr: "0x0000000000000000000000000000000000370094", + erc1155_addr: "0x0000000000000000000000000000000000370092", + minter_addr: "0x0000000000000000000000000000000000370098", + erc721Minter: "0x000000000000000000000000000000000037008d", + erc1155Minter: "0x0000000000000000000000000000000000370090", }, skaleParams: { nonce: Chain.SKALE, From da43450d49b50ab238acb595f578e0fe1d48148d Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 6 Mar 2023 11:10:48 +0200 Subject: [PATCH 932/956] Abeychain to ABEY name change --- src/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/consts.ts b/src/consts.ts index 010e3685f..69d133e3e 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -647,7 +647,7 @@ CHAIN_INFO.set(Chain.ABEYCHAIN, { currency: SupportedCurrency.ABEY, currencySymbol: SupportedCurrencyName.ABEY, decimals: Decimals.ABEY, - name: "AbeyChain", + name: "ABEY", nonce: Chain.ABEYCHAIN, chainId: 178, type: ChainType.EVM, From 84ff2e1132dbab875cf502f5c1d080579ce991ae Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 8 Mar 2023 14:30:12 +0200 Subject: [PATCH 933/956] estimateWithContractDep add verifyList --- src/factory/index.ts | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/src/factory/index.ts b/src/factory/index.ts index f4fab6466..411248773 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -524,20 +524,30 @@ export function ChainFactory( originalChain = nft.native.chainId; } - const axiosResult = await axios - .post(`https://sc-verify.xp.network/default/checkWithOutTokenId`, { - fromChain: Number(originalChain), - chain: - fromChain?.getNonce() == originalChain //if first time sending - ? Number(toChain.getNonce()) - : toChain.getNonce() == originalChain //if sending back - ? Number(fromChain.getNonce()) - : Number(toChain.getNonce()), //all the rest - sc: originalContract, - }) - .catch(() => false); + const [checkWithOutTokenId, verifyList] = await Promise.all([ + axios + .post(`https://sc-verify.xp.network/default/checkWithOutTokenId`, { + fromChain: Number(originalChain), + chain: + fromChain?.getNonce() == originalChain //if first time sending + ? Number(toChain.getNonce()) + : toChain.getNonce() == originalChain //if sending back + ? Number(fromChain.getNonce()) + : Number(toChain.getNonce()), //all the rest + sc: originalContract, + }) + .catch(() => false), + axios + .get( + `https://sc-verify.xp.network/verify/list?from=${originalContract}&targetChain=${toChain.getNonce()}&fromChain=${fromChain.getNonce()}&tokenId=1` + ) + .then((res) => { + return res.data.data.length > 0 && res.data.code == 200; + }) + .catch(() => false), + ]); - if (!axiosResult && toChain?.estimateContractDep) { + if (!checkWithOutTokenId && !verifyList && toChain?.estimateContractDep) { //@ts-ignore const contractFee = await toChain?.estimateContractDep(toChain); calcContractDep = await calcExchangeFees( From a7e1360d72fd9c99e3514eef4116ed2da75a423b Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 8 Mar 2023 17:43:38 +0200 Subject: [PATCH 934/956] SECRET: default to tokenId - 1 --- src/factory/cons.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 48dc91b7a..11f2920f7 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -112,7 +112,7 @@ export function prepareTokenId(nft: NftInfo, from: number) { return String(hex ? parseInt(hex, 16) : ""); } - if (from === Chain.TON) { + if (from === Chain.TON || from === Chain.SECRET) { return "1"; } } else { From 3b5da8615fba35ea7f623cb4c5fd04c37c0d72a4 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 8 Mar 2023 23:01:04 +0200 Subject: [PATCH 935/956] SECRET: add isNftWhitelisted --- src/helpers/secret.ts | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/helpers/secret.ts b/src/helpers/secret.ts index bb7006ecd..f66f03079 100644 --- a/src/helpers/secret.ts +++ b/src/helpers/secret.ts @@ -1,5 +1,10 @@ import BigNumber from "bignumber.js"; -import { Bech32, SecretNetworkClient } from "secretjs"; +import { + Bech32, + SecretNetworkClient, + addressToBytes, + toBase64, +} from "secretjs"; import { Extension, Snip721MintOptions, @@ -19,6 +24,7 @@ import { TransferNftForeign, UnfreezeForeignNft, ValidateAddress, + WhitelistCheck, } from "./chain"; export type SecretNftInfo = { @@ -49,6 +55,7 @@ export type SecretHelper = TransferNftForeign< ValidateAddress & EstimateTxFees & ChainNonceGet & + WhitelistCheck & PreTransfer & BalanceCheck & GetFeeMargins & { XpNft: string } & GetProvider & @@ -350,5 +357,19 @@ export async function secretHelperFactory( return tx; }, + isNftWhitelisted: async (nft) => { + if (!nft.native?.contract) return false; + const result = await queryClient.query.compute.queryContract({ + contractAddress: p.bridge.contractAddress, + codeHash: p.bridge.codeHash, + query: { + get_whitelisted: { + addr: toBase64(addressToBytes(nft.native.contract)), + }, + }, + }); + + return typeof result === "boolean" ? result : false; + }, }; } From c816288712af071120bfaedc9dd6f650d74b5e9f Mon Sep 17 00:00:00 2001 From: imsk17 Date: Fri, 10 Mar 2023 18:27:53 +0530 Subject: [PATCH 936/956] estimator: add support for near --- src/estimator/index.ts | 42 ++++++++++++++++++++++++++++++++++++++++ src/factory/factories.ts | 7 +++++++ src/helpers/near.ts | 22 +++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 src/estimator/index.ts diff --git a/src/estimator/index.ts b/src/estimator/index.ts new file mode 100644 index 000000000..4f04af344 --- /dev/null +++ b/src/estimator/index.ts @@ -0,0 +1,42 @@ +import axios from "axios"; +import { ChainNonce } from "../type-utils"; + +export interface SignatureService { + getSignatureNear( + from: ChainNonce, + toChain: ChainNonce, + nft: string, + tokenContract: string, + tokenId: string, + to: string + ): Promise; +} + +export function signatureService(url: string): SignatureService { + const signer = axios.create({ + baseURL: url, + }); + return { + async getSignatureNear( + fromChain: ChainNonce, + toChain: ChainNonce, + nft: string, + tokenContract: string, + tokenId: string, + to: string + ) { + const result = await signer.post<{ data: string }>( + "/api/get-signature/", + { + fromChain, + toChain, + nft, + to, + tokenId, + tokenContract, + } + ); + return result.data.data; + }, + }; +} diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d082e3227..006abcbcc 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -13,6 +13,7 @@ import { HttpAgent } from "@dfinity/agent"; import { Principal } from "@dfinity/principal"; import TonWeb from "tonweb"; import { FeeMargins } from "../helpers/chain"; +import { signatureService } from "../estimator"; /*const EVM_VALIDATORS = [ "0xffa74a26bf87a32992bb4be080467bb4a8019e00", @@ -34,6 +35,9 @@ const middleware_uri = "https://notifier.xp.network"; const testnet_middleware_uri = "https://testnet-notifier.xp.network/notify-test/"; +const signature_service_uri = "TODO"; +const signatureSvc = signatureService(signature_service_uri); + export namespace ChainFactoryConfigs { export const TestNet: () => Promise> = async () => { const feeMargin = { min: 1, max: 5 }; @@ -426,6 +430,7 @@ export namespace ChainFactoryConfigs { helperUrl: "https://helper.testnet.near.org", feeMargin, notifier, + signatureSvc, }, }; }; @@ -458,6 +463,7 @@ export namespace ChainFactoryConfigs { notifier, walletUrl: "https://wallet.mainnet.near.org", helperUrl: "https://helper.mainnet.near.org", + signatureSvc, }, solanaParams: { xpnftAddr: "", @@ -1001,6 +1007,7 @@ export namespace ChainFactoryConfigs { notifier, walletUrl: "https://wallet.mainnet.near.org", helperUrl: "https://helper.mainnet.near.org", + signatureSvc, }, }; }; diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 01e9ceff7..56e071ad1 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -17,6 +17,7 @@ import { getTransactionLastResult, } from "near-api-js/lib/providers"; import { Chain } from "../consts"; +import { SignatureService } from "../estimator"; import { EvNotifier } from "../notifier"; import { ChainNonceGet, @@ -50,6 +51,7 @@ export type NearParams = { readonly notifier: EvNotifier; readonly walletUrl: string; readonly helperUrl: string; + readonly signatureSvc: SignatureService; }; export type NearNFT = { tokenId: string; @@ -108,6 +110,7 @@ export async function nearHelperFactory({ feeMargin, notifier, walletUrl, + signatureSvc, helperUrl, }: NearParams): Promise { const near = await connect({ @@ -227,6 +230,14 @@ export async function nearHelperFactory({ id.native.tokenId )}&contract=${encodeURIComponent(id.native.contract)}` ); + const signature = await signatureSvc.getSignatureNear( + Chain.NEAR, + chain_nonce as any, + id.native.tokenId, + id.collectionIdent, + id.native.tokenId, + to + ); const result = await sender.functionCall({ contractId: bridge, @@ -237,6 +248,7 @@ export async function nearHelperFactory({ amt: new BigNumber(txFees), mint_with, token_contract: id.native.contract, + sig_data: Buffer.from(signature, "hex"), }, methodName: "freeze_nft", attachedDeposit: new BN(txFees.toString(10)), @@ -261,6 +273,15 @@ export async function nearHelperFactory({ )}&contract=${encodeURIComponent(id.native.contract)}` ); + const signature = await signatureSvc.getSignatureNear( + Chain.NEAR, + nonce as any, + id.native.tokenId, + id.collectionIdent, + id.native.tokenId, + to + ); + const result = await sender.functionCall({ contractId: bridge, args: { @@ -269,6 +290,7 @@ export async function nearHelperFactory({ to, amt: parseInt(txFees.toString()), token_contract: id.native.contract, + sig_data: Buffer.from(signature, "hex"), }, methodName: "withdraw_nft", attachedDeposit: new BN(txFees.toString(10)), From 32af2087eee0c88b36d334e39d21c0c6184c2638 Mon Sep 17 00:00:00 2001 From: imsk17 Date: Sat, 11 Mar 2023 18:08:18 +0530 Subject: [PATCH 937/956] elrond: move to multiversx --- package.json | 5 + src/helpers/elrond.ts | 402 +++++++++++-------------- yarn.lock | 681 +++++++++++++++++++++++++++++++++++++++--- 3 files changed, 823 insertions(+), 265 deletions(-) diff --git a/package.json b/package.json index 827b1ea01..af3dc5c1d 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,11 @@ "@hashgraph/hethers": "1.1.2", "@json-rpc-tools/utils": "^1.7.6", "@metaplex-foundation/js": "0.17.6", + "@multiversx/sdk-core": "^11.4.1", + "@multiversx/sdk-extension-provider": "^2.0.7", + "@multiversx/sdk-network-providers": "^1.3.0", + "@multiversx/sdk-wallet": "^3.0.0", + "@multiversx/sdk-wallet-connect-provider": "^3.1.0", "@project-serum/anchor": "^0.25.0-beta.1", "@randlabs/myalgo-connect": "^1.1.1", "@solana/spl-token": "^0.2.0", diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 5a7ad56fe..62feb3bf5 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -8,24 +8,21 @@ import { Account, Address, AddressValue, - Balance, BigUIntValue, BytesValue, ContractFunction, - Egld, - ExtensionProvider, - GasLimit, - ISigner, - NetworkConfig, - ProxyProvider, + SmartContract, TokenIdentifierValue, + TokenPayment, Transaction, TransactionHash, - TransactionPayload, + TransactionWatcher, U64Value, - UserSigner, - WalletConnectProvider, -} from "@elrondnetwork/erdjs"; +} from "@multiversx/sdk-core"; +import { WalletConnectV2Provider } from "@multiversx/sdk-wallet-connect-provider"; +import { ISigner } from "@multiversx/sdk-wallet/out/interface"; +import { ProxyNetworkProvider as ProxyProvider } from "@multiversx/sdk-network-providers"; +import { ExtensionProvider } from "@multiversx/sdk-extension-provider"; import axios from "axios"; import BigNumber from "bignumber.js"; import { @@ -56,8 +53,9 @@ import { } from ".."; import { EvNotifier } from "../notifier"; import { Base64 } from "js-base64"; +import { UserSigner } from "@multiversx/sdk-wallet/out"; -type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; +type ElrondSigner = ISigner | ExtensionProvider | WalletConnectV2Provider; type EasyBalance = string | number | BigNumber; @@ -234,9 +232,12 @@ export async function elrondHelperFactory( elrondParams: ElrondParams ): Promise { const provider = new ProxyProvider(elrondParams.node_uri); - await NetworkConfig.getDefault().sync(provider); + const config = await provider.getNetworkConfig(); const mintContract = new Address(elrondParams.minter_address); const swapContract = new Address(elrondParams.esdt_swap_address); + const swapCtr = new SmartContract({ + address: swapContract, + }); const providerRest = axios.create({ baseURL: elrondParams.node_uri, }); @@ -263,8 +264,6 @@ export async function elrondHelperFactory( const syncAccount = async (signer: ElrondSigner) => { const account = new Account(await getAddress(signer)); - await account.sync(provider); - return account; }; @@ -272,7 +271,7 @@ export async function elrondHelperFactory( const acc = await syncAccount(signer); tx.setNonce(acc.nonce); let stx: Transaction; - if (signer instanceof WalletConnectProvider) { + if (signer instanceof WalletConnectV2Provider) { const txs = await signer.signTransactions([tx]); stx = txs[0]; } else if (signer instanceof ExtensionProvider) { @@ -285,7 +284,7 @@ export async function elrondHelperFactory( stx = await signer.signTransaction(tx); } try { - await stx.send(provider); + provider.sendTransaction(stx); } catch (e: any) { if (e.message.includes("lowerNonceInTx")) { throw ConcurrentSendError(); @@ -337,17 +336,12 @@ export async function elrondHelperFactory( const esdts = await listEsdt((await sender.getAddress()).toString()); const res = esdts[nft.native.nonce]; if (res === undefined || new BigNumber(res.balance).lt(value)) { - const utx = new Transaction({ + const utx = swapCtr.call({ + chainID: config.ChainID, receiver: swapContract, - gasLimit: new GasLimit(300000000), - value: new Balance( - Egld.getToken(), - Egld.getNonce(), - new BigNumber(value.toString()) - ), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("wrapEgld")) - .build(), + gasLimit: 300000000, + func: new ContractFunction("wrapEgld"), + value: TokenPayment.egldFromAmount(value), }); const tx = await signAndSend(sender, utx); @@ -362,27 +356,27 @@ export async function elrondHelperFactory( owner: Address, { identifier, quantity, name, royalties, hash, attrs, uris }: NftIssueArgs ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTNFTCreate")) - .addArg(new TokenIdentifierValue(Buffer.from(identifier, "utf-8"))) - .addArg(new BigUIntValue(new BigNumber(quantity ?? 1))) - .addArg(new BytesValue(Buffer.from(name, "utf-8"))) - .addArg(new U64Value(new BigNumber(royalties ?? 0))) - .addArg( - new BytesValue(hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0)) - ) - .addArg( - new BytesValue(attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0)) - ); + const ow = new SmartContract({ address: owner }); + + const args = [ + new TokenIdentifierValue(identifier), + new BigUIntValue(new BigNumber(quantity ?? 1)), + new BytesValue(Buffer.from(name, "utf-8")), + new U64Value(new BigNumber(royalties ?? 0)), + new BytesValue(hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0)), + new BytesValue(attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0)), + ]; for (const uri of uris) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(uri, "utf-8"))); + args.push(new BytesValue(Buffer.from(uri, "utf-8"))); } - return new Transaction({ + return ow.call({ + func: new ContractFunction("ESDTNFTCreate"), + chainID: config.ChainID, + gasLimit: 70000000, + args, receiver: owner, - gasLimit: new GasLimit(70000000), // TODO: Auto derive - data: baseArgs.build(), }); }; @@ -400,28 +394,25 @@ export async function elrondHelperFactory( tx_fees: BigNumber, mintWith: string ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(300000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("MultiESDTNFTTransfer")) - .addArg(new AddressValue(mintContract)) - .addArg(new BigUIntValue(new BigNumber(2))) - .addArg( - new TokenIdentifierValue( - Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") - ) - ) - .addArg(new U64Value(new BigNumber(nonce))) - .addArg(new BigUIntValue(new BigNumber(1))) - .addArg(new TokenIdentifierValue(esdtSwaphex)) - .addArg(new U64Value(new BigNumber(0x0))) - .addArg(new BigUIntValue(tx_fees)) - .addArg(new BytesValue(Buffer.from("freezeSendNft", "ascii"))) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .addArg(new BytesValue(Buffer.from(mintWith, "ascii"))) - .build(), + const ow = new SmartContract({ address }); + return ow.call({ + func: new ContractFunction("MultiESDTNFTTransfer"), + chainID: config.ChainID, + gasLimit: 300000000, + args: [ + new AddressValue(mintContract), + new BigUIntValue(new BigNumber(2)), + new TokenIdentifierValue(tokenIdentReal(tokenIdentifier)), + new U64Value(new BigNumber(nonce)), + new BigUIntValue(new BigNumber(1)), + new TokenIdentifierValue(esdtSwaphex.toString("hex")), + new U64Value(new BigNumber(0x0)), + new BigUIntValue(tx_fees), + new BytesValue(Buffer.from("freezeSendNft", "ascii")), + new U64Value(new BigNumber(chain_nonce)), + new BytesValue(Buffer.from(to, "ascii")), + new BytesValue(Buffer.from(mintWith, "ascii")), + ], }); }; @@ -432,27 +423,24 @@ export async function elrondHelperFactory( tx_fees: BigNumber, chain_nonce: string ) => { - return new Transaction({ - receiver: address, - gasLimit: new GasLimit(300000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("MultiESDTNFTTransfer")) - .addArg(new AddressValue(mintContract)) - .addArg(new BigUIntValue(new BigNumber(2))) - .addArg( - new TokenIdentifierValue( - Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") - ) - ) - .addArg(new U64Value(new BigNumber(nonce))) - .addArg(new BigUIntValue(new BigNumber(1))) - .addArg(new TokenIdentifierValue(esdtSwaphex)) - .addArg(new U64Value(new BigNumber(0x0))) - .addArg(new BigUIntValue(tx_fees)) - .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) - .addArg(new U64Value(new BigNumber(chain_nonce))) - .addArg(new BytesValue(Buffer.from(to, "ascii"))) - .build(), + const ow = new SmartContract({ address }); + return ow.call({ + func: new ContractFunction("MultiESDTNFTTransfer"), + gasLimit: 300000000, + chainID: config.ChainID, + args: [ + new AddressValue(mintContract), + new BigUIntValue(new BigNumber(2)), + new TokenIdentifierValue(tokenIdentReal(tokenIdentifier)), + new U64Value(new BigNumber(nonce)), + new BigUIntValue(new BigNumber(1)), + new TokenIdentifierValue(esdtSwaphex.toString("hex")), + new U64Value(new BigNumber(0x0)), + new BigUIntValue(tx_fees), + new BytesValue(Buffer.from("withdrawNft", "ascii")), + new U64Value(new BigNumber(chain_nonce)), + new BytesValue(Buffer.from(to, "ascii")), + ], }); }; @@ -470,44 +458,24 @@ export async function elrondHelperFactory( canWipe: boolean | undefined, canTransferNFTCreateRole: boolean | undefined ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("issueNonFungible")) - .addArg(new TokenIdentifierValue(Buffer.from(name, "utf-8"))) - .addArg(new TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); - - if (canFreeze !== undefined) { - baseArgs = baseArgs - .addArg(new BytesValue(Buffer.from("canFreeze", "ascii"))) - .addArg( - new BytesValue(Buffer.from(canFreeze ? "true" : "false", "ascii")) - ); - } - if (canWipe !== undefined) { - baseArgs = baseArgs - .addArg(new BytesValue(Buffer.from("canWipe", "ascii"))) - .addArg( - new BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii")) - ); - } - if (canTransferNFTCreateRole !== undefined) { - baseArgs = baseArgs - .addArg(new BytesValue(Buffer.from("canChangeOwner", "ascii"))) - .addArg( - new BytesValue( - Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") - ) - ); - } - - return new Transaction({ - receiver: ESDT_ISSUE_ADDR, - value: new Balance( - Egld.getToken(), - Egld.getNonce(), - new BigNumber(ESDT_ISSUE_COST.toString()) - ), - gasLimit: new GasLimit(60000000), - data: baseArgs.build(), + const sc = new SmartContract({ address: ESDT_ISSUE_ADDR }); + return sc.call({ + func: new ContractFunction("issueNonFungible"), + args: [ + new TokenIdentifierValue(name), + new TokenIdentifierValue(ticker), + new BytesValue(Buffer.from("canFreeze", "ascii")), + new BytesValue(Buffer.from(canFreeze ? "true" : "false", "ascii")), + new BytesValue(Buffer.from("canWipe", "ascii")), + new BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii")), + new BytesValue(Buffer.from("canChangeOwner", "ascii")), + new BytesValue( + Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") + ), + ], + chainID: config.ChainID, + gasLimit: 60000000, + value: TokenPayment.egldFromAmount(ESDT_ISSUE_COST), }); }; @@ -516,25 +484,25 @@ export async function elrondHelperFactory( target: Address, roles: ESDTRole[] ) => { - let baseArgs = TransactionPayload.contractCall() - .setFunction(new ContractFunction("setSpecialRole")) - .addArg(new TokenIdentifierValue(Buffer.from(token))) - .addArg(new AddressValue(target)); + const ow = new SmartContract({ address: ESDT_ISSUE_ADDR }); - for (const role of roles) { - baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(role, "utf-8"))); - } + const args = [new TokenIdentifierValue(token), new AddressValue(target)]; - return new Transaction({ - receiver: ESDT_ISSUE_ADDR, - gasLimit: new GasLimit(70000000), // TODO: auto derive - data: baseArgs.build(), + for (const r of roles) { + new BytesValue(Buffer.from(r, "utf-8")); + } + return ow.call({ + chainID: config.ChainID, + func: new ContractFunction("setSpecialRole"), + gasLimit: 70000000, + args: args, }); }; async function extractAction(tx: Transaction): Promise { + const tw = new TransactionWatcher(provider); let err; - await tx.awaitExecuted(provider).catch((e) => (err = e)); + tw.awaitCompleted(tx).catch((e) => (err = e)); if (err) { await new Promise((r) => setTimeout(r, 3000)); return await extractAction(tx); @@ -552,7 +520,7 @@ export async function elrondHelperFactory( } async function getAddress(sender: ElrondSigner): Promise
{ - return new Address(await sender.getAddress()); + return new Address(sender.getAddress().toString()); } return { @@ -560,9 +528,7 @@ export async function elrondHelperFactory( async balance(address: string | Address): Promise { const wallet = new Account(new Address(address)); - await wallet.sync(provider); - - return wallet.balance.valueOf(); + return new BigNumber(wallet.balance.toString()); }, async isContractAddress(address) { return Address.fromString(address).isContractAddress(); @@ -571,9 +537,7 @@ export async function elrondHelperFactory( return elrondParams.feeMargin; }, async extractTxnStatus(txn) { - const status = await provider.getTransactionStatus( - new TransactionHash(txn) - ); + const status = await provider.getTransactionStatus(txn); if (status.isPending()) { return TransactionStatus.PENDING; } @@ -681,17 +645,11 @@ export async function elrondHelperFactory( const esdts = await listEsdt(address); const res = esdts[id.native.nonce]; if (res === undefined || new BigNumber(res.balance).lt(value)) { - const utx = new Transaction({ - receiver: swapContract, - gasLimit: new GasLimit(50000000), - value: new Balance( - Egld.getToken(), - Egld.getNonce(), - new BigNumber(value.toString()) - ), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("wrapEgld")) - .build(), + const utx = swapCtr.call({ + func: new ContractFunction("wrapEgld"), + chainID: config.ChainID, + gasLimit: 50000000, + value: TokenPayment.egldFromAmount(value), }); return utx.toPlainObject(); } @@ -710,16 +668,17 @@ export async function elrondHelperFactory( return tx; }, async transferESDTOwnership(sender, token, target): Promise { - const txu = new Transaction({ - receiver: new Address( + const ow = new SmartContract({ + address: new Address( "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" ), - gasLimit: new GasLimit(60000000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("transferOwnership")) - .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) - .addArg(new AddressValue(target)) - .build(), + }); + + const txu = ow.call({ + func: new ContractFunction("transferOwnership"), + args: [new TokenIdentifierValue(token), new AddressValue(target)], + chainID: config.ChainID, + gasLimit: 60000000, }); return await signAndSend(sender, txu); @@ -737,27 +696,27 @@ export async function elrondHelperFactory( return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST }, async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { - const txu = new Transaction({ - receiver: await getAddress(sender), - gasLimit: new GasLimit(40000000 + 5000000 * nfts.length), // TODO: better estimate - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("MultiESDTNFTTransfer")) - .setArgs([ - new AddressValue(mintContract), - new BigUIntValue(new BigNumber(nfts.length + 1)), - ...nfts.flatMap((nft) => [ - new TokenIdentifierValue(esdtNftHex), - new U64Value(new BigNumber(nft.native.nonce)), - new BigUIntValue(new BigNumber(1)), - ]), - new TokenIdentifierValue(esdtSwaphex), - new U64Value(new BigNumber(0x0)), - new BigUIntValue(txFees), - new BytesValue(Buffer.from("withdrawBatchNft", "ascii")), - new U64Value(new BigNumber(chainNonce)), - new BytesValue(Buffer.from(to, "ascii")), - ]) - .build(), + const sc = new SmartContract({ address: await getAddress(sender) }); + + const txu = sc.call({ + func: new ContractFunction("MultiESDTNFTTransfer"), + chainID: config.ChainID, + gasLimit: 40000000 + 5000000 * nfts.length, + args: [ + new AddressValue(mintContract), + new BigUIntValue(new BigNumber(nfts.length + 1)), + ...nfts.flatMap((nft) => [ + new TokenIdentifierValue(esdtNftHex.toString("hex")), + new U64Value(new BigNumber(nft.native.nonce)), + new BigUIntValue(new BigNumber(1)), + ]), + new TokenIdentifierValue(esdtSwaphex.toString("hex")), + new U64Value(new BigNumber(0x0)), + new BigUIntValue(txFees), + new BytesValue(Buffer.from("withdrawBatchNft", "ascii")), + new U64Value(new BigNumber(chainNonce)), + new BytesValue(Buffer.from(to, "ascii")), + ], }); const tx = await signAndSend(sender, txu); await notifyValidator( @@ -778,30 +737,29 @@ export async function elrondHelperFactory( mintWith, txFees ) { - const txu = new Transaction({ - receiver: await getAddress(sender), - gasLimit: new GasLimit(50000000 + 5000000 * nfts.length), // TODO: better estimate - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("MultiESDTNFTTransfer")) - .setArgs([ - new AddressValue(mintContract), - new BigUIntValue(new BigNumber(nfts.length + 1)), - ...nfts.flatMap((nft) => [ - new TokenIdentifierValue( - Buffer.from(tokenIdentReal(nft.native.tokenIdentifier), "utf-8") - ), - new U64Value(new BigNumber(nft.native.nonce)), - new BigUIntValue(new BigNumber(1)), - ]), - new TokenIdentifierValue(esdtSwaphex), - new U64Value(new BigNumber(0x0)), - new BigUIntValue(txFees), - new BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), - new U64Value(new BigNumber(chainNonce)), - new BytesValue(Buffer.from(to, "ascii")), - new BytesValue(Buffer.from(mintWith, "ascii")), - ]) - .build(), + const sc = new SmartContract({ address: await getAddress(sender) }); + const txu = sc.call({ + func: new ContractFunction("MultiESDTNFTTransfer"), + args: [ + new AddressValue(mintContract), + new BigUIntValue(new BigNumber(nfts.length + 1)), + ...nfts.flatMap((nft) => [ + new TokenIdentifierValue( + tokenIdentReal(nft.native.tokenIdentifier) + ), + new U64Value(new BigNumber(nft.native.nonce)), + new BigUIntValue(new BigNumber(1)), + ]), + new TokenIdentifierValue(esdtSwaphex.toString("hex")), + new U64Value(new BigNumber(0x0)), + new BigUIntValue(txFees), + new BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), + new U64Value(new BigNumber(chainNonce)), + new BytesValue(Buffer.from(to, "ascii")), + new BytesValue(Buffer.from(mintWith, "ascii")), + ], + chainID: config.ChainID, + gasLimit: 50000000 + 5000000 * nfts.length, }); const tx = await signAndSend(sender, txu); await notifyValidator( @@ -815,23 +773,27 @@ export async function elrondHelperFactory( return tx; }, async wegldBalance(addr) { - const esdtInfo = await provider.getAddressEsdt( - new Address(addr), - elrondParams.esdt_swap + const esdtinfo = await provider.getFungibleTokensOfAccount( + new Address(addr) ); - - return new BigNumber(esdtInfo.balance); + for (const t of esdtinfo) { + if (t.identifier === elrondParams.esdt_swap) { + new BigNumber(t.balance); + } + } + throw new Error(`No wEGLD balance`); }, async unwrapWegld(sender: ElrondSigner, amount: BigNumber) { - const txu = new Transaction({ + const txu = swapCtr.call({ + func: new ContractFunction("ESDTTransfer"), + chainID: config.ChainID, + args: [ + new TokenIdentifierValue(esdtSwaphex.toString("hex")), + new U64Value(amount), + new BytesValue(Buffer.from("unwrapEgld")), + ], + gasLimit: 300500000, receiver: swapContract, - gasLimit: new GasLimit(300500000), - data: TransactionPayload.contractCall() - .setFunction(new ContractFunction("ESDTTransfer")) - .addArg(new TokenIdentifierValue(esdtSwaphex)) - .addArg(new U64Value(amount)) - .addArg(new BytesValue(Buffer.from("unwrapEgld"))) - .build(), }); const tx = await signAndSend(sender, txu); diff --git a/yarn.lock b/yarn.lock index ef6574ac0..f2037c382 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1378,6 +1378,74 @@ bn.js "^5.2.0" debug "^4.3.4" +"@multiversx/sdk-bls-wasm@0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-bls-wasm/-/sdk-bls-wasm-0.3.5.tgz#2e83308fdc7a0928c6d5a7f910d796fd8eb2d90b" + integrity sha512-c0tIdQUnbBLSt6NYU+OpeGPYdL0+GV547HeHT8Xc0BKQ7Cj0v82QUoA2QRtWrR1G4MNZmLsIacZSsf6DrIS2Bw== + +"@multiversx/sdk-core@^11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-core/-/sdk-core-11.4.1.tgz#fbb3165107bb27ee8c5efbfe51b63936b4867ff4" + integrity sha512-kGnSoEcygBUpOABJgpJIbeRBptQ54xq/OVHcw/pOAi0koLJHgu4xiwPihcsxMJ4jWN4PrWDy+zMo/ypeozYVGg== + dependencies: + "@multiversx/sdk-transaction-decoder" "1.0.2" + bech32 "1.1.4" + bignumber.js "9.0.1" + blake2b "2.1.3" + buffer "6.0.3" + json-duplicate-key-handle "1.0.0" + keccak "3.0.2" + protobufjs "6.11.3" + +"@multiversx/sdk-extension-provider@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-extension-provider/-/sdk-extension-provider-2.0.7.tgz#8f854053d2b56adc278afbb597375b34a043a906" + integrity sha512-t7CabgUk/hPhMYVpqGPMdEVDqOo6RrRKmru6nXKpWZHdeQZZV52zeVVC8VRgqwG5mNwAkCrALLvz7UiV/ZLfIg== + +"@multiversx/sdk-network-providers@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-network-providers/-/sdk-network-providers-1.3.0.tgz#6f0499598e0a8c1c414492b76a487d1de7212e6c" + integrity sha512-UCoQDcjccwwkTySMGeiG4taW17UEr4oBQ4t3kDeqj704PVEnRKKGAjyYWlwbbXZSTvqtuKeYNYaEeWdSrBcdew== + dependencies: + axios "0.24.0" + bech32 "1.1.4" + bignumber.js "9.0.1" + buffer "6.0.3" + json-bigint "1.0.0" + +"@multiversx/sdk-transaction-decoder@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-transaction-decoder/-/sdk-transaction-decoder-1.0.2.tgz#83ded4f6d4b877b4421234856eb19709be2af31b" + integrity sha512-j43QsKquu8N51WLmVlJ7dV2P3A1448R7/ktvl8r3i6wRMpfdtzDPNofTdHmMRT7DdQdvs4+RNgz8hVKL11Etsw== + dependencies: + bech32 "^2.0.0" + +"@multiversx/sdk-wallet-connect-provider@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-wallet-connect-provider/-/sdk-wallet-connect-provider-3.1.0.tgz#f7002a093b1230f43f6fa91118eabf9c22c38c31" + integrity sha512-nD6NtccO7f7QQ/ZCLHZSaXrgNPnQ2HajjM7c0LV7AvfSxOjSGvuJ9X7bOZxFuZjAgCHFfAosLrQI4x7hFV0Ccg== + dependencies: + "@walletconnect/client" "1.8.0" + "@walletconnect/sign-client" "2.4.4" + "@walletconnect/utils" "2.4.4" + bech32 "1.1.4" + +"@multiversx/sdk-wallet@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-wallet/-/sdk-wallet-3.0.0.tgz#a0965f14c76184b95cbc9703953fc19d4e4df431" + integrity sha512-nDVBtva1mpfutXA8TfUnpdeFqhY9O+deNU3U/Z41yPBcju1trHDC9gcKPyQqcQ3qjG/6LwEXmIm7Dc5fIsvVjg== + dependencies: + "@multiversx/sdk-bls-wasm" "0.3.5" + bech32 "1.1.4" + bip39 "3.0.2" + blake2b "2.1.3" + ed25519-hd-key "1.1.2" + ed2curve "0.3.0" + keccak "3.0.1" + scryptsy "2.1.0" + tweetnacl "1.0.3" + uuid "8.3.2" + "@noble/ed25519@^1.6.1", "@noble/ed25519@^1.7.0", "@noble/ed25519@^1.7.1": version "1.7.3" resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" @@ -1791,6 +1859,11 @@ rpc-websockets "^7.5.0" superstruct "^0.14.2" +"@stablelib/aead@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" + integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== + "@stablelib/binary@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" @@ -1812,6 +1885,26 @@ resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== +"@stablelib/chacha20poly1305@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee" + integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== + dependencies: + "@stablelib/aead" "^1.0.1" + "@stablelib/binary" "^1.0.1" + "@stablelib/chacha" "^1.0.1" + "@stablelib/constant-time" "^1.0.1" + "@stablelib/poly1305" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/chacha@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371" + integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + "@stablelib/constant-time@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" @@ -1831,6 +1924,24 @@ resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== +"@stablelib/hkdf@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d" + integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== + dependencies: + "@stablelib/hash" "^1.0.1" + "@stablelib/hmac" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hmac@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec" + integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + "@stablelib/int@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" @@ -1862,7 +1973,7 @@ "@stablelib/constant-time" "^1.0.1" "@stablelib/wipe" "^1.0.1" -"@stablelib/random@^1.0.2": +"@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== @@ -1879,6 +1990,15 @@ "@stablelib/constant-time" "^1.0.1" "@stablelib/wipe" "^1.0.1" +"@stablelib/sha256@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f" + integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + "@stablelib/sha512@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" @@ -2384,7 +2504,7 @@ "@walletconnect/types" "^1.6.5" "@walletconnect/utils" "^1.6.5" -"@walletconnect/client@^1.7.0": +"@walletconnect/client@1.8.0", "@walletconnect/client@^1.7.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.8.0.tgz#6f46b5499c7c861c651ff1ebe5da5b66225ca696" integrity sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ== @@ -2394,6 +2514,28 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" +"@walletconnect/core@2.4.4": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.4.4.tgz#5f22fd2e9a13c3995c164530f5e77b671bb40850" + integrity sha512-tdMmPNGgpTrk95hG8H5V6Du59HA4e3tVdvGngZjcja6VnmkfZdW4fGCWaJWyKYkrQQknDug4dH47/HZ6cAxj/g== + dependencies: + "@walletconnect/heartbeat" "1.2.0" + "@walletconnect/jsonrpc-provider" "^1.0.6" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/jsonrpc-ws-connection" "^1.0.7" + "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/relay-api" "^1.0.7" + "@walletconnect/relay-auth" "^1.0.4" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.4.4" + "@walletconnect/utils" "2.4.4" + events "^3.3.0" + lodash.isequal "4.5.0" + pino "7.11.0" + uint8arrays "3.1.0" + "@walletconnect/core@^1.6.5", "@walletconnect/core@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.8.0.tgz#6b2748b90c999d9d6a70e52e26a8d5e8bfeaa81e" @@ -2431,6 +2573,26 @@ dependencies: tslib "1.14.1" +"@walletconnect/events@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/events/-/events-1.0.1.tgz#2b5f9c7202019e229d7ccae1369a9e86bda7816c" + integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== + dependencies: + keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" + +"@walletconnect/heartbeat@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.0.tgz#1e87dd234cb72b0587b84f95c4f942f2b4bd0c79" + integrity sha512-0vbzTa/ARrpmMmOD+bQMxPvFYKtOLQZObgZakrYr0aODiMOO71CmPVNV2eAqXnw9rMmcP+z91OybLeIFlwTjjA== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/time" "^1.0.2" + chai "^4.3.7" + mocha "^10.2.0" + ts-node "^10.9.1" + tslib "1.14.1" + "@walletconnect/iso-crypto@^1.6.5", "@walletconnect/iso-crypto@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451" @@ -2440,6 +2602,15 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" +"@walletconnect/jsonrpc-provider@^1.0.6": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.9.tgz#ce5ab64dce6a739110aef204ffeedd668ad343d8" + integrity sha512-8CwmiDW42F+F8Qct13lX2x4lJOsi0mNBtUln3VS6TpWioTaL1VfforC/8ULc3tHXv+SNWwAXn2lCZbDcYhdRcA== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.1" + tslib "1.14.1" + "@walletconnect/jsonrpc-types@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.2.tgz#b79519f679cd6a5fa4a1bea888f27c1916689a20" @@ -2457,6 +2628,42 @@ "@walletconnect/jsonrpc-types" "^1.0.2" tslib "1.14.1" +"@walletconnect/jsonrpc-utils@^1.0.4", "@walletconnect/jsonrpc-utils@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.6.tgz#7fa58e6671247e64e189828103282e6258f5330f" + integrity sha512-snp0tfkjPiDLQp/jrBewI+9SM33GPV4+Gjgldod6XQ7rFyQ5FZjnBxUkY4xWH0+arNxzQSi6v5iDXjCjSaorpg== + dependencies: + "@walletconnect/environment" "^1.0.1" + "@walletconnect/jsonrpc-types" "^1.0.2" + tslib "1.14.1" + +"@walletconnect/jsonrpc-ws-connection@^1.0.7": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.10.tgz#04e04a7d8c70b27c386a1bdd9ff6511045da3c81" + integrity sha512-/tidvjfCXZuYugjF5fOswsNDPoMo9QRML3DFQ0dfNUarL4f5HGqu8NDGerr2n0+4MOX23GsT6Vv2POSwFbvgGw== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.1" + events "^3.3.0" + tslib "1.14.1" + ws "^7.5.1" + +"@walletconnect/keyvaluestorage@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.2.tgz#92f5ca0f54c1a88a093778842ce0c874d86369c8" + integrity sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ== + dependencies: + safe-json-utils "^1.1.1" + tslib "1.14.1" + +"@walletconnect/logger@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.0.1.tgz#7f489b96e9a1ff6bf3e58f0fbd6d69718bf844a8" + integrity sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ== + dependencies: + pino "7.11.0" + tslib "1.14.1" + "@walletconnect/randombytes@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.3.tgz#e795e4918367fd1e6a2215e075e64ab93e23985b" @@ -2467,11 +2674,55 @@ randombytes "^2.1.0" tslib "1.14.1" +"@walletconnect/relay-api@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.9.tgz#f8c2c3993dddaa9f33ed42197fc9bfebd790ecaf" + integrity sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg== + dependencies: + "@walletconnect/jsonrpc-types" "^1.0.2" + tslib "1.14.1" + +"@walletconnect/relay-auth@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz#0b5c55c9aa3b0ef61f526ce679f3ff8a5c4c2c7c" + integrity sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ== + dependencies: + "@stablelib/ed25519" "^1.0.2" + "@stablelib/random" "^1.0.1" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + tslib "1.14.1" + uint8arrays "^3.0.0" + "@walletconnect/safe-json@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== +"@walletconnect/safe-json@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.1.tgz#9813fa0a7a544b16468730c2d7bed046ed160957" + integrity sha512-Fm7e31oSYY15NQr8SsLJheKAy5L744udZf2lJKcz6wFmPJEzf7hOF0866o/rrldRzJnjZ4H2GJ45pFudsnLW5A== + dependencies: + tslib "1.14.1" + +"@walletconnect/sign-client@2.4.4": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.4.4.tgz#8c1109de277452356094961c45e819c8575b51aa" + integrity sha512-ByF1Qi+r7EAZ8HX++aiHekSxiruIlUg3KWfXvki5n4PQNv9Ldad/RaMswk7CB7ESCZuHc7ylKcT3SwOJjHOopg== + dependencies: + "@walletconnect/core" "2.4.4" + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.0" + "@walletconnect/jsonrpc-provider" "^1.0.6" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.4.4" + "@walletconnect/utils" "2.4.4" + events "^3.3.0" + pino "7.11.0" + "@walletconnect/socket-transport@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz#9a1128a249628a0be11a0979b522fe82b44afa1b" @@ -2481,11 +2732,51 @@ "@walletconnect/utils" "^1.8.0" ws "7.5.3" +"@walletconnect/time@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/time/-/time-1.0.2.tgz#6c5888b835750ecb4299d28eecc5e72c6d336523" + integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== + dependencies: + tslib "1.14.1" + +"@walletconnect/types@2.4.4": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.4.4.tgz#f2edb02f70e7dfb0f4265d78b0b745a776eb0dae" + integrity sha512-4XndBOlB0qbhaJvzcBZCfR69rfU5rV0U5b3YbJ1AmtxcJSJAIg68WDP7o4BE4w1LHzdsEWvbXHRYL+KsA+uG3w== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.0" + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/logger" "^2.0.1" + events "^3.3.0" + "@walletconnect/types@^1.6.5", "@walletconnect/types@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== +"@walletconnect/utils@2.4.4": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.4.4.tgz#1ee72172c7fb28f096c600fde19b12b770aa44df" + integrity sha512-PM4biwrvi5OwXIroLHDxtCOXlvZGCGNvbYS0Jkb6ZmP1EbGjVz1xA1hnp/lC3eGFQArSyvS7EHD6XQQpymZ2jA== + dependencies: + "@stablelib/chacha20poly1305" "1.0.1" + "@stablelib/hkdf" "1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/sha256" "1.0.1" + "@stablelib/x25519" "^1.0.3" + "@walletconnect/jsonrpc-utils" "^1.0.4" + "@walletconnect/relay-api" "^1.0.7" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.4.4" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "5.3.0" + query-string "7.1.1" + uint8arrays "3.1.0" + "@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.8.0.tgz#2591a197c1fa7429941fe428876088fda6632060" @@ -2504,7 +2795,7 @@ resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== -"@walletconnect/window-getters@^1.0.0": +"@walletconnect/window-getters@^1.0.0", "@walletconnect/window-getters@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== @@ -2518,6 +2809,14 @@ dependencies: "@walletconnect/window-getters" "^1.0.0" +"@walletconnect/window-metadata@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz#2124f75447b7e989e4e4e1581d55d25bc75f7be5" + integrity sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA== + dependencies: + "@walletconnect/window-getters" "^1.0.1" + tslib "1.14.1" + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -2631,6 +2930,11 @@ algosdk@^1.13.1, algosdk@^1.15.0-beta.1: tweetnacl "^1.0.3" vlq "^2.0.4" +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-colors@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" @@ -2885,6 +3189,11 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" @@ -3046,7 +3355,7 @@ bech32@1.1.4, bech32@^1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bech32@2.0.0: +bech32@2.0.0, bech32@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== @@ -3291,6 +3600,11 @@ browser-headers@^0.4.1: resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -3423,6 +3737,11 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + capability@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/capability/-/capability-0.2.5.tgz#51ad87353f1936ffd77f2f21c74633a4dea88801" @@ -3433,7 +3752,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chai@^4.3.6: +chai@^4.3.6, chai@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== @@ -3496,7 +3815,7 @@ check-more-types@2.24.0: resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== -chokidar@^3.0.0: +chokidar@3.5.3, chokidar@^3.0.0: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -3890,6 +4209,11 @@ decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + decode-uri-component@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" @@ -4003,11 +4327,21 @@ detect-browser@5.2.0: resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== +detect-browser@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== + detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -4050,6 +4384,16 @@ duplexer@~0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +duplexify@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" + integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.0" + each-parallel-async@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/each-parallel-async/-/each-parallel-async-1.0.0.tgz#91783e190000c7dd588336b2d468ebaf71980f7b" @@ -4072,6 +4416,13 @@ ed25519-hd-key@1.1.2: create-hmac "1.1.7" tweetnacl "1.0.3" +ed2curve@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ed2curve/-/ed2curve-0.3.0.tgz#322b575152a45305429d546b071823a93129a05d" + integrity sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ== + dependencies: + tweetnacl "1.x.x" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -4389,16 +4740,16 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - eslint-config-prettier@^8.3.0: version "8.6.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" @@ -4871,6 +5222,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-redact@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" + integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== + fast-stable-stringify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" @@ -4909,6 +5265,11 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== + finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -4930,6 +5291,14 @@ find-cache-dir@^4.0.0: common-path-prefix "^3.0.0" pkg-dir "^7.0.0" +find-up@5.0.0, find-up@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -4946,14 +5315,6 @@ find-up@^6.3.0: locate-path "^7.1.0" path-exists "^5.0.0" -find-up@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -4962,6 +5323,11 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^3.1.0: version "3.2.7" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" @@ -5229,6 +5595,18 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + 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" + glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -5439,6 +5817,11 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + hi-base32@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" @@ -5800,6 +6183,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -5980,6 +6368,13 @@ js-sha512@^0.8.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@4.1.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -5988,13 +6383,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -6092,6 +6480,23 @@ jssha@3.2.0: resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16" integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q== +keccak@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" + integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +keccak@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" + integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + keccak@^3.0.0, keccak@^3.0.1, keccak@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" @@ -6172,7 +6577,7 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== -lodash.isequal@^4.5.0: +lodash.isequal@4.5.0, lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== @@ -6192,7 +6597,7 @@ lodash@4.17.21, lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^4.1.0: +log-symbols@4.1.0, log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -6404,6 +6809,13 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -6472,6 +6884,33 @@ mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mocha@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + nanoid "3.3.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + mock-fs@^4.1.0: version "4.14.0" resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" @@ -6533,6 +6972,11 @@ multicodec@^1.0.0: buffer "^5.6.0" varint "^5.0.0" +multiformats@^9.4.2: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + multihashes@^0.4.15, multihashes@~0.4.15: version "0.4.21" resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" @@ -6586,6 +7030,11 @@ nanoassert@^1.0.0: resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" integrity sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ== +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + nanoid@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" @@ -6835,6 +7284,11 @@ oboe@2.1.5: dependencies: http-https "^1.0.0" +on-exit-leak-free@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" + integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== + on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -7050,6 +7504,36 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pino-abstract-transport@v0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" + integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== + dependencies: + duplexify "^4.1.2" + split2 "^4.0.0" + +pino-std-serializers@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" + integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== + +pino@7.11.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" + integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.0.0" + on-exit-leak-free "^0.2.0" + pino-abstract-transport v0.5.0 + pino-std-serializers "^4.0.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.1.0" + safe-stable-stringify "^2.1.0" + sonic-boom "^2.2.1" + thread-stream "^0.15.1" + pkg-dir@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" @@ -7122,6 +7606,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -7276,6 +7765,16 @@ query-string@6.13.5: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +query-string@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" + integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== + dependencies: + decode-uri-component "^0.2.0" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + query-string@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" @@ -7290,6 +7789,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" @@ -7368,6 +7872,11 @@ readonly-date@^1.0.0: resolved "https://registry.yarnpkg.com/readonly-date/-/readonly-date-1.0.0.tgz#5af785464d8c7d7c40b9d738cbde8c646f97dcd9" integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ== +real-require@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" + integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -7562,6 +8071,11 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-json-utils@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/safe-json-utils/-/safe-json-utils-1.1.1.tgz#0e883874467d95ab914c3f511096b89bfb3e63b1" + integrity sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ== + safe-regex-test@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" @@ -7571,6 +8085,11 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" +safe-stable-stringify@^2.1.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz#ec7b037768098bf65310d1d64370de0dc02353aa" + integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== + "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -7666,6 +8185,13 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + serve-static@1.15.0: version "1.15.0" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" @@ -7844,6 +8370,13 @@ socket.io-parser@~4.2.1: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" +sonic-boom@^2.2.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" + integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== + dependencies: + atomic-sleep "^1.0.0" + sort-object-keys@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" @@ -7859,6 +8392,11 @@ split-on-first@^1.0.0: resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== +split2@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" + integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== + split@0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" @@ -7922,6 +8460,11 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + stream-transform@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-3.2.2.tgz#3d6083d6582eddac233645fcee574fc56ebeb184" @@ -8013,7 +8556,7 @@ strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed "1.0.0" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -8033,6 +8576,13 @@ superstruct@^0.15.4: resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -8162,6 +8712,13 @@ thor-devkit@^2.0.4, thor-devkit@^2.0.5: js-sha3 "0.5.7" rlp "^2.0.0" +thread-stream@^0.15.1: + version "0.15.2" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" + integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== + dependencies: + real-require "^0.1.0" + through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -8350,7 +8907,7 @@ tronweb@^4.1.0: semver "^5.6.0" validator "^13.7.0" -ts-node@^10.8.2: +ts-node@^10.8.2, ts-node@^10.9.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -8393,7 +8950,7 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl@1.0.3, tweetnacl@^1.0.1, tweetnacl@^1.0.2, tweetnacl@^1.0.3: +tweetnacl@1.0.3, tweetnacl@1.x.x, tweetnacl@^1.0.1, tweetnacl@^1.0.2, tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== @@ -8505,6 +9062,20 @@ u3@^0.1.1: resolved "https://registry.yarnpkg.com/u3/-/u3-0.1.1.tgz#5f52044f42ee76cd8de33148829e14528494b73b" integrity sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w== +uint8arrays@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.0.tgz#8186b8eafce68f28bd29bd29d683a311778901e2" + integrity sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== + dependencies: + multiformats "^9.4.2" + +uint8arrays@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== + dependencies: + multiformats "^9.4.2" + ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" @@ -9055,6 +9626,11 @@ word-wrap@^1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -9097,7 +9673,7 @@ ws@^3.0.0: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^7.1.0, ws@^7.4.5: +ws@^7.1.0, ws@^7.4.5, ws@^7.5.1: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== @@ -9193,6 +9769,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -9206,6 +9787,29 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yargs@^15.0.1, yargs@^15.1.0: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -9223,19 +9827,6 @@ yargs@^15.0.1, yargs@^15.1.0: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yarn-audit-fix@^9.3.7: version "9.3.9" resolved "https://registry.yarnpkg.com/yarn-audit-fix/-/yarn-audit-fix-9.3.9.tgz#24b6e16af8fc7987d9ceb0f8d8612469261864b5" From 2e32867dfd61a735aa9f06a1a39f167dc39fc52a Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Mon, 13 Mar 2023 12:48:25 +0200 Subject: [PATCH 938/956] NEAR: add sig service url, make notify a helper function, add catch block for sigService --- src/factory/factories.ts | 2 +- src/helpers/near.ts | 38 ++++++++++++++++++++++++-------------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 006abcbcc..17ecb489c 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -35,7 +35,7 @@ const middleware_uri = "https://notifier.xp.network"; const testnet_middleware_uri = "https://testnet-notifier.xp.network/notify-test/"; -const signature_service_uri = "TODO"; +const signature_service_uri = "http://5.9.67.248:3003"; const signatureSvc = signatureService(signature_service_uri); export namespace ChainFactoryConfigs { diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 56e071ad1..83b9e64b6 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -85,6 +85,10 @@ interface BrowserMethods { getUserMinter(keypair: string, address: string): Promise; } +interface NotifyMethod { + notify(hash: string): Promise; +} + export type NearHelper = ChainNonceGet & BalanceCheck & TransferNftForeign & @@ -100,7 +104,8 @@ export type NearHelper = ChainNonceGet & nftList(owner: Account, contract: string): Promise[]>; } & GetFeeMargins & GetProvider & - BrowserMethods; + BrowserMethods & + NotifyMethod; export async function nearHelperFactory({ networkId, @@ -147,7 +152,10 @@ export async function nearHelperFactory({ return walletCallbackUrl; }; + const notifyValidators = async (hash: string) => notifier.notifyNear(hash); + return { + notify: notifyValidators, async estimateValidateTransferNft(_to, _metadata, _mintWith) { return new BigNumber(0); // TODO }, @@ -230,14 +238,16 @@ export async function nearHelperFactory({ id.native.tokenId )}&contract=${encodeURIComponent(id.native.contract)}` ); - const signature = await signatureSvc.getSignatureNear( - Chain.NEAR, - chain_nonce as any, - id.native.tokenId, - id.collectionIdent, - id.native.tokenId, - to - ); + const signature = await signatureSvc + .getSignatureNear( + Chain.NEAR, + chain_nonce as any, + id.native.tokenId, + id.collectionIdent, + id.native.tokenId, + to + ) + .catch(() => undefined); const result = await sender.functionCall({ contractId: bridge, @@ -245,17 +255,17 @@ export async function nearHelperFactory({ token_id: id.native.tokenId, chain_nonce, to, - amt: new BigNumber(txFees), + amt: new BigNumber(txFees) /*.div(2)*/, mint_with, token_contract: id.native.contract, - sig_data: Buffer.from(signature, "hex"), + ...(signature ? { sig_data: Buffer.from(signature, "hex") } : {}), }, methodName: "freeze_nft", - attachedDeposit: new BN(txFees.toString(10)), + attachedDeposit: new BN(txFees.toString(10)) /*.div(new BN(2))*/, gas: new BN("46000000000000"), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); - await notifier.notifyNear(result.transaction.hash); + await notifyValidators(result.transaction.hash); return [result, getTransactionLastResult(result)]; }, getFeeMargin() { @@ -297,7 +307,7 @@ export async function nearHelperFactory({ gas: new BN(65_000_000_000_000), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); - await notifier.notifyNear(result.transaction.hash); + await notifyValidators(result.transaction.hash); return [result, getTransactionLastResult(result)]; }, async validateAddress(adr) { From 4b11a2868c43ba551779654079d7f13afc8b81ce Mon Sep 17 00:00:00 2001 From: D Date: Mon, 13 Mar 2023 17:23:06 +0500 Subject: [PATCH 939/956] Near changes for fee and signature according to the fee oracle backend. --- src/estimator/index.ts | 9 ++++++-- src/factory/index.ts | 2 +- src/helpers/chain.ts | 2 +- src/helpers/near.ts | 48 ++++++++++++++++++++++++------------------ 4 files changed, 36 insertions(+), 25 deletions(-) diff --git a/src/estimator/index.ts b/src/estimator/index.ts index 4f04af344..370f6ca11 100644 --- a/src/estimator/index.ts +++ b/src/estimator/index.ts @@ -9,7 +9,12 @@ export interface SignatureService { tokenContract: string, tokenId: string, to: string - ): Promise; + ): Promise; +} + +interface SignatureServiceResponse { + signature: string; + fee: string; } export function signatureService(url: string): SignatureService { @@ -25,7 +30,7 @@ export function signatureService(url: string): SignatureService { tokenId: string, to: string ) { - const result = await signer.post<{ data: string }>( + const result = await signer.post<{ data: SignatureServiceResponse }>( "/api/get-signature/", { fromChain, diff --git a/src/factory/index.ts b/src/factory/index.ts index 411248773..dca35336e 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -135,7 +135,7 @@ export type ChainFactory = { gasLimit?: ethers.BigNumberish | undefined, extraFee?: BigNumber.Value, gasPrice?: ethers.BigNumberish | undefined - ): Promise; + ): Promise; transferBatchNft( fromChain: FullChainBatch, diff --git a/src/helpers/chain.ts b/src/helpers/chain.ts index 880db3261..9be8feaf3 100644 --- a/src/helpers/chain.ts +++ b/src/helpers/chain.ts @@ -52,7 +52,7 @@ export interface TransferNftForeign { mintWith: string, gasLimit?: ethers.BigNumberish | undefined, gasPrice?: ethers.BigNumberish | undefined - ): Promise; + ): Promise; } /** diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 83b9e64b6..c08988dc8 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -238,7 +238,7 @@ export async function nearHelperFactory({ id.native.tokenId )}&contract=${encodeURIComponent(id.native.contract)}` ); - const signature = await signatureSvc + const res = await signatureSvc .getSignatureNear( Chain.NEAR, chain_nonce as any, @@ -249,24 +249,30 @@ export async function nearHelperFactory({ ) .catch(() => undefined); - const result = await sender.functionCall({ - contractId: bridge, - args: { - token_id: id.native.tokenId, - chain_nonce, - to, - amt: new BigNumber(txFees) /*.div(2)*/, - mint_with, - token_contract: id.native.contract, - ...(signature ? { sig_data: Buffer.from(signature, "hex") } : {}), - }, - methodName: "freeze_nft", - attachedDeposit: new BN(txFees.toString(10)) /*.div(new BN(2))*/, - gas: new BN("46000000000000"), - ...(walletCallbackUrl ? { walletCallbackUrl } : {}), - }); - await notifyValidators(result.transaction.hash); - return [result, getTransactionLastResult(result)]; + if (res) { + const result = await sender.functionCall({ + contractId: bridge, + args: { + token_id: id.native.tokenId, + chain_nonce, + to, + amt: new BigNumber(txFees) /*.div(2)*/, + mint_with, + token_contract: id.native.contract, + ...(res?.signature + ? { sig_data: Buffer.from(res.signature, "hex") } + : {}), + }, + methodName: "freeze_nft", + attachedDeposit: new BN(res?.fee) /*.div(new BN(2))*/, + gas: new BN("46000000000000"), + ...(walletCallbackUrl ? { walletCallbackUrl } : {}), + }); + await notifyValidators(result.transaction.hash); + return [result, getTransactionLastResult(result)]; + } else { + return undefined; + } }, getFeeMargin() { return feeMargin; @@ -283,7 +289,7 @@ export async function nearHelperFactory({ )}&contract=${encodeURIComponent(id.native.contract)}` ); - const signature = await signatureSvc.getSignatureNear( + const res = await signatureSvc.getSignatureNear( Chain.NEAR, nonce as any, id.native.tokenId, @@ -300,7 +306,7 @@ export async function nearHelperFactory({ to, amt: parseInt(txFees.toString()), token_contract: id.native.contract, - sig_data: Buffer.from(signature, "hex"), + sig_data: Buffer.from(res.signature, "hex"), }, methodName: "withdraw_nft", attachedDeposit: new BN(txFees.toString(10)), From 3cd42f4147a2c5ad12c684bb345440414a6c2ee0 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Mon, 13 Mar 2023 14:39:02 +0200 Subject: [PATCH 940/956] update readme: add Secret --- README.md | 167 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 105 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 2e10942c6..e0371fd4c 100644 --- a/README.md +++ b/README.md @@ -15,16 +15,19 @@ Bridging steps: - [x] [3. Getting the signer objects](#3-get-the-signer-objects) - [x] [3.1 Backend unsafe signer](#31-example-of-getting-the-signer-object-for-manual-testing-in-the-be) - [x] [3.2 EVM compatible browser extension signer](#32-example-of-getting-the-signer-object-in-the-fe-for-web3) - - [x] [3.3 Elrond signer](#33-example-of-getting-the-signer-object-in-the-fe-for-elrond) + - [x] [3.3 Elrond signer](#33-example-of-getting-the-signer-object-in-the-fe-for-metaversx) - [x] [3.4 Tron signer](#34-example-of-getting-the-signer-object-in-the-fe-for-tron) - [x] [3.5 Algorand signer](#35-example-of-getting-the-signer-object-in-the-fe-for-algorand) -- [x] [4. Getting the Chain inner objects](#4-getting-the-inner-objects-from-this-factory-to-be-used-for-transferring-minting-estimation-of-gas-fees) + - [x] [3.6 Tezos signer](#36-example-of-getting-the-signer-object-in-the-fe-for-tezos) + - [x] [3.7 Secret signer](#37-example-of-secret-network) + - [x] [3.8 TON signer](#38-example-signer-object-for-ton) +- [x] [4. Getting the Chain's inner objects](#4-getting-the-inner-objects-from-this-factory-to-be-used-for-transferring-minting-estimation-of-gas-fees) - [x] [5. Listing NFTs](#51-listing-nfts-owned-by-the-sender) - [x] [Example of a native NFT object](#52-example-of-console-logged-native-bsc-nft-object) - [x] [Example of a wrapped NFT object](#53-example-of-the-console-logged-wrapped-nft-from-bsc-on-velas) - [x] [6. Approving](#6-approve-accessing-your-nft-by-the-bridge-smart-contract) - [x] [7. Transferring NFTs between chains](#7-transferring-an-nft) -- [x] [Minting NFTs](#minting-nfts-on-evm-chains-elrond--tron)(optional) +- [x] [Minting NFTs](#minting-nfts-on-evm-chains-metaversx--tron)(optional) - [x] [Estimating the TX fee on the target chain](#estimating-the-transaction-fee-on-the-target-chain) (optional) - [ ] ... and much more to come @@ -43,16 +46,16 @@ Make sure [nodejs](https://nodejs.org/en/download/) is installed on your machine
```bash -yarn add xp.network @elrondnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp +yarn add xp.network @metaversxnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp ``` OR ```bash -npm i --save xp.network @elrondnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp +npm i --save xp.network @metaversxnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp ``` -To import the latest version of xp.network library: +To import the latest version of `xp.network` library: ```bash yarn add "git+https://github.com/xp-network/xpjs#bleeding-edge" @@ -128,35 +131,38 @@ const signer = new Wallet(
-| Chain | Parameters | Chain Nonce | -| :-------: | :-------------: | :---------: | -| Elrond | elrondParams | 2 | -| BSC | bscParams | 4 | -| Ethereum | ropstenParams | 5 | -| Avalanche | avalancheParams | 6 | -| Polygon | polygonParams | 7 | -| Fantom | fantomParams | 8 | -| Tron | tronParams | 9 | -| Harmony | harmonyParams | 12 | -| xDai | xDaiParams | 14 | -| Algorand | algorandParams | 15 | -| Fuse | fuseParams | 16 | -| Tezos | tezosParams | 18 | -| Velas | velasParams | 19 | -| Aurora | auroraParams | 21 | -| Godwoken | godwokenParams | 22 | -| Gatechain | gatechainParams | 23 | -| VeChain | vechainParams | 25 | -| Solana | solanaParams | 26 | -| TON | tonParams | 27 | -| DFinity | dfinityParams | 28 | -| Hedera | hederaParams | 29 | -| Skale | skaleParams | 30 | -| NEAR | nearParams | 31 | -| Moonbeam | moonbeamParams | 32 | -| Abeychain | abeychainParams | 33 | -| Aptos | aptosParams | 34 | -| Caduceus | caduceusParams | 35 | +| Chain | Parameters | Chain Nonce | +| :-----------: | :-------------: | :---------: | +| Elrond | metaversxParams | 2 | +| BSC | bscParams | 4 | +| Ethereum | ropstenParams | 5 | +| Avalanche | avalancheParams | 6 | +| Polygon | polygonParams | 7 | +| Fantom | fantomParams | 8 | +| Tron | tronParams | 9 | +| Harmony | harmonyParams | 12 | +| xDai | xDaiParams | 14 | +| Algorand | algorandParams | 15 | +| Fuse | fuseParams | 16 | +| Tezos | tezosParams | 18 | +| Velas | velasParams | 19 | +| Aurora | auroraParams | 21 | +| Godwoken | godwokenParams | 22 | +| Gatechain | gatechainParams | 23 | +| VeChain | vechainParams | 25 | +| Solana | solanaParams | 26 | +| TON | tonParams | 27 | +| DFinity | dfinityParams | 28 | +| Hedera | hederaParams | 29 | +| Skale | skaleParams | 30 | +| NEAR | nearParams | 31 | +| Moonbeam | moonbeamParams | 32 | +| Abeychain | abeychainParams | 33 | +| Aptos | aptosParams | 34 | +| Caduceus | caduceusParams | 35 | +| OKC | okcParams | 36 | +| Arbitrum Nova | arbitrumParams | 37 | +| Bitgert | bitgertParams | 38 |

@@ -174,12 +180,12 @@ const signer = new ethers.providers.Web3Provider(window.ethereum).getSigner(); ```typescript // ELROND provider (injected from the browser extension): -import { ExtensionProvider } from "@elrondnetwork/erdjs/out"; -const elrondSigner = ExtensionProvider.getInstance(); +import { ExtensionProvider } from "@metaversxnetwork/erdjs/out"; +const metaversxSigner = ExtensionProvider.getInstance(); // Elrond signer from a PEM key stored in the .env file -import { UserSigner } from "@elrondnetwork/erdjs/out"; -const elrondSigner = UserSigner.fromPem(process.env.ELROND_PEM!); +import { UserSigner } from "@metaversxnetwork/erdjs/out"; +const metaversxSigner = UserSigner.fromPem(process.env.ELROND_PEM!); ```
@@ -221,7 +227,24 @@ import { TempleWallet } from "@temple-wallet/dapp"; })(); ``` -### 3.7 Example signer object for TON +### 3.7 Example of Secret Network + +```typescript +import { SecretNetworkClient, Wallet } from "secretjs"; +import { SecretNftInfo } from "xp.network/dist/helpers/secret"; + +const wallet = new Wallet(process.env.mnemonic!); + +// Testnet example +const client = await SecretNetworkClient.create({ + chainId: "pulsar-2", + grpcWebUrl: TestNetRpcUri.SECRET, + wallet: wallet, + walletAddress: wallet.address, +}); +``` + +### 3.8 Example signer object for TON ```ts import { config } from "dotenv"; @@ -280,13 +303,17 @@ For the ways of connecting the wallets in the FE check-out our [bridge repositor const moonbeam = await factory.inner(Chain.MOONBEAM); // 32 const abeychain = await factory.inner(Chain.ABEYCHAIN); // 33 const causeus = await factory.inner(Chain.CADUCEUS); //35 + const okc = await factory.inner(Chain.OKC); //36 + const arbitrum = await factory.inner(Chain.ARBITRUM); //37 + const bitgert = await factory.inner(Chain.BITGERT); //38 // Non-EVM chains: // Inner Object ====================================== Chain Nonce - const elrond = await factory.inner(Chain.ELROND); // 2 + const metaversx = await factory.inner(Chain.ELROND); // 2 const tron = await factory.inner(Chain.TRON); // 9 const algorand = await factory.inner(Chain.ALGORAND); // 15 const tezos = await factory.inner(Chain.TEZOS); // 18 + const secret = await factory.inner(Chain.SECRET); // 24 const solana = await factory.inner(Chain.SOLANA); // 26 const ton = await factory.inner(Chain.TON); // 27 const dfinity = await factory.inner(Chain.DFINITY); // 28 @@ -311,8 +338,8 @@ This operation does not depend on a wallet since reading operations are free and ); // Elrond: - const elrondNfts = await factory.nftList( - elrond, // The chain of interest + const metaversxNfts = await factory.nftList( + metaversx, // The chain of interest "erd1...." // The public key of the NFT owner in Elrond ); @@ -334,6 +361,12 @@ This operation does not depend on a wallet since reading operations are free and "EQB..." // The public key of the NFT owner in Tezos ); + // Secret: + const secretNfts = await factory.nftList( + secret, // Secret chain internal object + "secret1..." // The public key of the NFT owner in Secret + ); + // TON: const tonNfts = await factory.nftList( ton, // TON chain internal object @@ -345,18 +378,20 @@ This operation does not depend on a wallet since reading operations are free and ```javascript // Choosing an NFT to transfer: const web3ChosenOne = web3Nfts[0]; -const elrondChosenOne = elrondNfts[0]; +const metaversxChosenOne = metaversxNfts[0]; const tronChosenOne = tronNfts[0]; const algoChosenOne = algoNfts[0]; const tezosChosenOne = tezosNfts[0]; +const secretChosenOne = secretNfts[0]; const tonChosenOne = tonNfts[0]; // Checking the selected NFT object console.log("EVM Selected NFT: ", web3ChosenOne); -console.log("Elrond Selected NFT: ", elrondChosenOne); +console.log("Elrond Selected NFT: ", metaversxChosenOne); console.log("Tron Selected NFT: ", tronChosenOne); console.log("Algorand Selected NFT: ", algoChosenOne); console.log("Tezos Selected NFT: ", tezosChosenOne); +console.log("Secret Selected NFT: ", secretChosenOne); console.log("Ton Selected NFT: ", tonChosenOne); ``` @@ -409,14 +444,14 @@ console.log("Ton Selected NFT: ", tonChosenOne); console.log("Is Approved in an EVM:", isApprovedEVM); // Elrond example - const isApprovedElrond = await elrond.approveForMinter( - elrondChosenOne, - elrondSigner + const isApprovedElrond = await metaversx.approveForMinter( + metaversxChosenOne, + metaversxSigner ); console.log("Is Approved in Elrond:", isApprovedElrond); // Tron example - const isApprovedTron = await elrond.approveForMinter( + const isApprovedTron = await metaversx.approveForMinter( tronChosenOne, tronSigner ); @@ -436,6 +471,14 @@ console.log("Ton Selected NFT: ", tonChosenOne); ); console.log("Is Approved in Tezos:", isApprovedTezos); + // Secret example + const secretApprove = await scrt.preTransfer( + client, + chosenOne, + new BigNumber(0) + ); + console.log("Approved for Secret:", secretApprove); + // TON // Approval is not required in TON... })(); @@ -458,19 +501,19 @@ console.log("Ton Selected NFT: ", tonChosenOne); console.log(web3Result); // Elrond example: - const elrondResult = await factory.transferNft( - elrond, // The Source Chain. + const metaversxResult = await factory.transferNft( + metaversx, // The Source Chain. tron, // The Destination Chain. - elrondChosenOne, // The NFT object you have chosen from the list. - elrondSigner, // The Elrond signer object (see p. 3.3 above). + metaversxChosenOne, // The NFT object you have chosen from the list. + metaversxSigner, // The Elrond signer object (see p. 3.3 above). "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. ); - console.log(elrondResult); + console.log(metaversxResult); // Tron example: const tronResult = await factory.transferNft( tron, // The Source Chain. - elrond, // The Destination Chain. + metaversx, // The Destination Chain. tronChosenOne, // The NFT object you have chosen from the list. tronSigner, // The Tron signer object (see p. 3.4 above). "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. @@ -480,7 +523,7 @@ console.log("Ton Selected NFT: ", tonChosenOne); // Algorand example: const algorandResult = await factory.transferNft( algorand, // The Source Chain. - elrond, // The Destination Chain. + metaversx, // The Destination Chain. algoChosenOne, // The NFT object you have chosen from the list. algorandSigner, // The Tron signer object (see p. 3.5 above). "ADDRESS OF THE RECEIVER" // The address whom you are transferring the NFT to. @@ -549,8 +592,8 @@ console.log("Ton Selected NFT: ", tonChosenOne); ```javascript (async () => { // Deploying ESDTs: - const response = await elrond.issueESDTNft( - elrondSigner, + const response = await metaversx.issueESDTNft( + metaversxSigner, "Target", "TGT", true, // canFreeze @@ -559,8 +602,8 @@ console.log("Ton Selected NFT: ", tonChosenOne); ); // Checking whether ESDTs exist for this account - const esdts = await elrond.mintableEsdts( - elrondSigner.getAddress()) + const esdts = await metaversx.mintableEsdts( + metaversxSigner.getAddress()) .catch((e) => { console.log("Failed to get Mintable ESDTs", e) return undefined @@ -573,8 +616,8 @@ console.log("Ton Selected NFT: ", tonChosenOne); } // Minting an NFT to an ESDT - const response = await elrond.mintNft( - elrondSigner, + const response = await metaversx.mintNft( + metaversxSigner, { identifier, // Your ESDT token quantity: 1, // How many tokens you want to mint > 0 From 3c6e9864b6eef8a029859f43f3081ae415fa8426 Mon Sep 17 00:00:00 2001 From: Dima Brook Date: Mon, 13 Mar 2023 14:39:48 +0200 Subject: [PATCH 941/956] update version to 4.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index af3dc5c1d..97ca68f0f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xp.network", - "version": "4.0.2", + "version": "4.1.0", "author": "xp-network ", "description": "XP.Network Multi-Chain NFT Bridge JavaScript API", "main": "dist/index.js", From 68b46c99b2dd9ac8d56acb2f5ae7607be0d67186 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Mon, 13 Mar 2023 14:50:08 +0200 Subject: [PATCH 942/956] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e0371fd4c..255fc5343 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
-# XP Network JS API v 4.0.2 +# XP Network JS API
@@ -46,7 +46,7 @@ Make sure [nodejs](https://nodejs.org/en/download/) is installed on your machine
```bash -yarn add xp.network @metaversxnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp +yarn add xp.network ``` OR From b08b7c5335b4c7afb57001483557fa44ae001db3 Mon Sep 17 00:00:00 2001 From: Dima Brook <81907112+dima-brook@users.noreply.github.com> Date: Mon, 13 Mar 2023 14:56:37 +0200 Subject: [PATCH 943/956] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 255fc5343..6d20a972f 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ yarn add xp.network OR ```bash -npm i --save xp.network @metaversxnetwork/erdjs ethers @taquito/taquito @temple-wallet/dapp +npm i --save xp.network ``` To import the latest version of `xp.network` library: From adcc2d7c62f0d7339f7f18cfae994a998a558a20 Mon Sep 17 00:00:00 2001 From: D Date: Mon, 13 Mar 2023 18:18:57 +0500 Subject: [PATCH 944/956] log signature response --- src/estimator/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/estimator/index.ts b/src/estimator/index.ts index 370f6ca11..64f7c0785 100644 --- a/src/estimator/index.ts +++ b/src/estimator/index.ts @@ -41,6 +41,7 @@ export function signatureService(url: string): SignatureService { tokenContract, } ); + console.log("near signature response", result); return result.data.data; }, }; From 8c1eda01eea474ebe8542d418ab3d06c6aa71283 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 14 Mar 2023 11:58:19 +0200 Subject: [PATCH 945/956] isWrappedNft Near Case --- src/factory/index.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/factory/index.ts b/src/factory/index.ts index 411248773..e665bccd1 100644 --- a/src/factory/index.ts +++ b/src/factory/index.ts @@ -660,6 +660,13 @@ export function ChainFactory( wrapped: undefined, }; } + if (fc === Chain.NEAR) { + const data = (nft as any).native?.wrapped || (nft as any).wrapped; + return { + bool: typeof data !== "undefined", + wrapped: undefined, + }; + } try { checkNotOldWrappedNft(nft.collectionIdent); } catch (_) { From 6a10cf3a3f9c6e5d75b54764a830155d3e3c19c0 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 14 Mar 2023 12:05:34 +0200 Subject: [PATCH 946/956] NEAR: implement signatureSvc --- src/helpers/near.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/near.ts b/src/helpers/near.ts index c08988dc8..2864ce610 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -306,10 +306,10 @@ export async function nearHelperFactory({ to, amt: parseInt(txFees.toString()), token_contract: id.native.contract, - sig_data: Buffer.from(res.signature, "hex"), + sig_data: Buffer.from(res?.signature, "hex"), }, methodName: "withdraw_nft", - attachedDeposit: new BN(txFees.toString(10)), + attachedDeposit: new BN(res?.fee), gas: new BN(65_000_000_000_000), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); From 7fdb65dbbccecdc6ffc89ca258c39d567ba26fd5 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Tue, 14 Mar 2023 16:17:13 +0200 Subject: [PATCH 947/956] NEAR: signatureSvc url change --- src/factory/factories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index 17ecb489c..d61ad1923 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -35,7 +35,7 @@ const middleware_uri = "https://notifier.xp.network"; const testnet_middleware_uri = "https://testnet-notifier.xp.network/notify-test/"; -const signature_service_uri = "http://5.9.67.248:3003"; +const signature_service_uri = "https://fee.xp.network"; const signatureSvc = signatureService(signature_service_uri); export namespace ChainFactoryConfigs { From 4275edbfb05dae31a43cacd83bc10666d27b1b5d Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 15 Mar 2023 02:48:09 +0530 Subject: [PATCH 948/956] Revert "elrond: move to multiversx" This reverts commit 32af2087eee0c88b36d334e39d21c0c6184c2638. --- package.json | 5 - src/helpers/elrond.ts | 402 ++++++++++++++----------- yarn.lock | 681 +++--------------------------------------- 3 files changed, 265 insertions(+), 823 deletions(-) diff --git a/package.json b/package.json index 97ca68f0f..a64440e4d 100644 --- a/package.json +++ b/package.json @@ -44,11 +44,6 @@ "@hashgraph/hethers": "1.1.2", "@json-rpc-tools/utils": "^1.7.6", "@metaplex-foundation/js": "0.17.6", - "@multiversx/sdk-core": "^11.4.1", - "@multiversx/sdk-extension-provider": "^2.0.7", - "@multiversx/sdk-network-providers": "^1.3.0", - "@multiversx/sdk-wallet": "^3.0.0", - "@multiversx/sdk-wallet-connect-provider": "^3.1.0", "@project-serum/anchor": "^0.25.0-beta.1", "@randlabs/myalgo-connect": "^1.1.1", "@solana/spl-token": "^0.2.0", diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 62feb3bf5..5a7ad56fe 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -8,21 +8,24 @@ import { Account, Address, AddressValue, + Balance, BigUIntValue, BytesValue, ContractFunction, - SmartContract, + Egld, + ExtensionProvider, + GasLimit, + ISigner, + NetworkConfig, + ProxyProvider, TokenIdentifierValue, - TokenPayment, Transaction, TransactionHash, - TransactionWatcher, + TransactionPayload, U64Value, -} from "@multiversx/sdk-core"; -import { WalletConnectV2Provider } from "@multiversx/sdk-wallet-connect-provider"; -import { ISigner } from "@multiversx/sdk-wallet/out/interface"; -import { ProxyNetworkProvider as ProxyProvider } from "@multiversx/sdk-network-providers"; -import { ExtensionProvider } from "@multiversx/sdk-extension-provider"; + UserSigner, + WalletConnectProvider, +} from "@elrondnetwork/erdjs"; import axios from "axios"; import BigNumber from "bignumber.js"; import { @@ -53,9 +56,8 @@ import { } from ".."; import { EvNotifier } from "../notifier"; import { Base64 } from "js-base64"; -import { UserSigner } from "@multiversx/sdk-wallet/out"; -type ElrondSigner = ISigner | ExtensionProvider | WalletConnectV2Provider; +type ElrondSigner = ISigner | ExtensionProvider | WalletConnectProvider; type EasyBalance = string | number | BigNumber; @@ -232,12 +234,9 @@ export async function elrondHelperFactory( elrondParams: ElrondParams ): Promise { const provider = new ProxyProvider(elrondParams.node_uri); - const config = await provider.getNetworkConfig(); + await NetworkConfig.getDefault().sync(provider); const mintContract = new Address(elrondParams.minter_address); const swapContract = new Address(elrondParams.esdt_swap_address); - const swapCtr = new SmartContract({ - address: swapContract, - }); const providerRest = axios.create({ baseURL: elrondParams.node_uri, }); @@ -264,6 +263,8 @@ export async function elrondHelperFactory( const syncAccount = async (signer: ElrondSigner) => { const account = new Account(await getAddress(signer)); + await account.sync(provider); + return account; }; @@ -271,7 +272,7 @@ export async function elrondHelperFactory( const acc = await syncAccount(signer); tx.setNonce(acc.nonce); let stx: Transaction; - if (signer instanceof WalletConnectV2Provider) { + if (signer instanceof WalletConnectProvider) { const txs = await signer.signTransactions([tx]); stx = txs[0]; } else if (signer instanceof ExtensionProvider) { @@ -284,7 +285,7 @@ export async function elrondHelperFactory( stx = await signer.signTransaction(tx); } try { - provider.sendTransaction(stx); + await stx.send(provider); } catch (e: any) { if (e.message.includes("lowerNonceInTx")) { throw ConcurrentSendError(); @@ -336,12 +337,17 @@ export async function elrondHelperFactory( const esdts = await listEsdt((await sender.getAddress()).toString()); const res = esdts[nft.native.nonce]; if (res === undefined || new BigNumber(res.balance).lt(value)) { - const utx = swapCtr.call({ - chainID: config.ChainID, + const utx = new Transaction({ receiver: swapContract, - gasLimit: 300000000, - func: new ContractFunction("wrapEgld"), - value: TokenPayment.egldFromAmount(value), + gasLimit: new GasLimit(300000000), + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(value.toString()) + ), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("wrapEgld")) + .build(), }); const tx = await signAndSend(sender, utx); @@ -356,27 +362,27 @@ export async function elrondHelperFactory( owner: Address, { identifier, quantity, name, royalties, hash, attrs, uris }: NftIssueArgs ) => { - const ow = new SmartContract({ address: owner }); - - const args = [ - new TokenIdentifierValue(identifier), - new BigUIntValue(new BigNumber(quantity ?? 1)), - new BytesValue(Buffer.from(name, "utf-8")), - new U64Value(new BigNumber(royalties ?? 0)), - new BytesValue(hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0)), - new BytesValue(attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0)), - ]; + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTNFTCreate")) + .addArg(new TokenIdentifierValue(Buffer.from(identifier, "utf-8"))) + .addArg(new BigUIntValue(new BigNumber(quantity ?? 1))) + .addArg(new BytesValue(Buffer.from(name, "utf-8"))) + .addArg(new U64Value(new BigNumber(royalties ?? 0))) + .addArg( + new BytesValue(hash ? Buffer.from(hash, "utf-8") : Buffer.alloc(0)) + ) + .addArg( + new BytesValue(attrs ? Buffer.from(attrs, "utf-8") : Buffer.alloc(0)) + ); for (const uri of uris) { - args.push(new BytesValue(Buffer.from(uri, "utf-8"))); + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(uri, "utf-8"))); } - return ow.call({ - func: new ContractFunction("ESDTNFTCreate"), - chainID: config.ChainID, - gasLimit: 70000000, - args, + return new Transaction({ receiver: owner, + gasLimit: new GasLimit(70000000), // TODO: Auto derive + data: baseArgs.build(), }); }; @@ -394,25 +400,28 @@ export async function elrondHelperFactory( tx_fees: BigNumber, mintWith: string ) => { - const ow = new SmartContract({ address }); - return ow.call({ - func: new ContractFunction("MultiESDTNFTTransfer"), - chainID: config.ChainID, - gasLimit: 300000000, - args: [ - new AddressValue(mintContract), - new BigUIntValue(new BigNumber(2)), - new TokenIdentifierValue(tokenIdentReal(tokenIdentifier)), - new U64Value(new BigNumber(nonce)), - new BigUIntValue(new BigNumber(1)), - new TokenIdentifierValue(esdtSwaphex.toString("hex")), - new U64Value(new BigNumber(0x0)), - new BigUIntValue(tx_fees), - new BytesValue(Buffer.from("freezeSendNft", "ascii")), - new U64Value(new BigNumber(chain_nonce)), - new BytesValue(Buffer.from(to, "ascii")), - new BytesValue(Buffer.from(mintWith, "ascii")), - ], + return new Transaction({ + receiver: address, + gasLimit: new GasLimit(300000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .addArg(new AddressValue(mintContract)) + .addArg(new BigUIntValue(new BigNumber(2))) + .addArg( + new TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + ) + ) + .addArg(new U64Value(new BigNumber(nonce))) + .addArg(new BigUIntValue(new BigNumber(1))) + .addArg(new TokenIdentifierValue(esdtSwaphex)) + .addArg(new U64Value(new BigNumber(0x0))) + .addArg(new BigUIntValue(tx_fees)) + .addArg(new BytesValue(Buffer.from("freezeSendNft", "ascii"))) + .addArg(new U64Value(new BigNumber(chain_nonce))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .addArg(new BytesValue(Buffer.from(mintWith, "ascii"))) + .build(), }); }; @@ -423,24 +432,27 @@ export async function elrondHelperFactory( tx_fees: BigNumber, chain_nonce: string ) => { - const ow = new SmartContract({ address }); - return ow.call({ - func: new ContractFunction("MultiESDTNFTTransfer"), - gasLimit: 300000000, - chainID: config.ChainID, - args: [ - new AddressValue(mintContract), - new BigUIntValue(new BigNumber(2)), - new TokenIdentifierValue(tokenIdentReal(tokenIdentifier)), - new U64Value(new BigNumber(nonce)), - new BigUIntValue(new BigNumber(1)), - new TokenIdentifierValue(esdtSwaphex.toString("hex")), - new U64Value(new BigNumber(0x0)), - new BigUIntValue(tx_fees), - new BytesValue(Buffer.from("withdrawNft", "ascii")), - new U64Value(new BigNumber(chain_nonce)), - new BytesValue(Buffer.from(to, "ascii")), - ], + return new Transaction({ + receiver: address, + gasLimit: new GasLimit(300000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .addArg(new AddressValue(mintContract)) + .addArg(new BigUIntValue(new BigNumber(2))) + .addArg( + new TokenIdentifierValue( + Buffer.from(tokenIdentReal(tokenIdentifier), "utf-8") + ) + ) + .addArg(new U64Value(new BigNumber(nonce))) + .addArg(new BigUIntValue(new BigNumber(1))) + .addArg(new TokenIdentifierValue(esdtSwaphex)) + .addArg(new U64Value(new BigNumber(0x0))) + .addArg(new BigUIntValue(tx_fees)) + .addArg(new BytesValue(Buffer.from("withdrawNft", "ascii"))) + .addArg(new U64Value(new BigNumber(chain_nonce))) + .addArg(new BytesValue(Buffer.from(to, "ascii"))) + .build(), }); }; @@ -458,24 +470,44 @@ export async function elrondHelperFactory( canWipe: boolean | undefined, canTransferNFTCreateRole: boolean | undefined ) => { - const sc = new SmartContract({ address: ESDT_ISSUE_ADDR }); - return sc.call({ - func: new ContractFunction("issueNonFungible"), - args: [ - new TokenIdentifierValue(name), - new TokenIdentifierValue(ticker), - new BytesValue(Buffer.from("canFreeze", "ascii")), - new BytesValue(Buffer.from(canFreeze ? "true" : "false", "ascii")), - new BytesValue(Buffer.from("canWipe", "ascii")), - new BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii")), - new BytesValue(Buffer.from("canChangeOwner", "ascii")), - new BytesValue( - Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") - ), - ], - chainID: config.ChainID, - gasLimit: 60000000, - value: TokenPayment.egldFromAmount(ESDT_ISSUE_COST), + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("issueNonFungible")) + .addArg(new TokenIdentifierValue(Buffer.from(name, "utf-8"))) + .addArg(new TokenIdentifierValue(Buffer.from(ticker, "utf-8"))); + + if (canFreeze !== undefined) { + baseArgs = baseArgs + .addArg(new BytesValue(Buffer.from("canFreeze", "ascii"))) + .addArg( + new BytesValue(Buffer.from(canFreeze ? "true" : "false", "ascii")) + ); + } + if (canWipe !== undefined) { + baseArgs = baseArgs + .addArg(new BytesValue(Buffer.from("canWipe", "ascii"))) + .addArg( + new BytesValue(Buffer.from(canWipe ? "true" : "false", "ascii")) + ); + } + if (canTransferNFTCreateRole !== undefined) { + baseArgs = baseArgs + .addArg(new BytesValue(Buffer.from("canChangeOwner", "ascii"))) + .addArg( + new BytesValue( + Buffer.from(canTransferNFTCreateRole ? "true" : "false", "ascii") + ) + ); + } + + return new Transaction({ + receiver: ESDT_ISSUE_ADDR, + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(ESDT_ISSUE_COST.toString()) + ), + gasLimit: new GasLimit(60000000), + data: baseArgs.build(), }); }; @@ -484,25 +516,25 @@ export async function elrondHelperFactory( target: Address, roles: ESDTRole[] ) => { - const ow = new SmartContract({ address: ESDT_ISSUE_ADDR }); + let baseArgs = TransactionPayload.contractCall() + .setFunction(new ContractFunction("setSpecialRole")) + .addArg(new TokenIdentifierValue(Buffer.from(token))) + .addArg(new AddressValue(target)); - const args = [new TokenIdentifierValue(token), new AddressValue(target)]; - - for (const r of roles) { - new BytesValue(Buffer.from(r, "utf-8")); + for (const role of roles) { + baseArgs = baseArgs.addArg(new BytesValue(Buffer.from(role, "utf-8"))); } - return ow.call({ - chainID: config.ChainID, - func: new ContractFunction("setSpecialRole"), - gasLimit: 70000000, - args: args, + + return new Transaction({ + receiver: ESDT_ISSUE_ADDR, + gasLimit: new GasLimit(70000000), // TODO: auto derive + data: baseArgs.build(), }); }; async function extractAction(tx: Transaction): Promise { - const tw = new TransactionWatcher(provider); let err; - tw.awaitCompleted(tx).catch((e) => (err = e)); + await tx.awaitExecuted(provider).catch((e) => (err = e)); if (err) { await new Promise((r) => setTimeout(r, 3000)); return await extractAction(tx); @@ -520,7 +552,7 @@ export async function elrondHelperFactory( } async function getAddress(sender: ElrondSigner): Promise
{ - return new Address(sender.getAddress().toString()); + return new Address(await sender.getAddress()); } return { @@ -528,7 +560,9 @@ export async function elrondHelperFactory( async balance(address: string | Address): Promise { const wallet = new Account(new Address(address)); - return new BigNumber(wallet.balance.toString()); + await wallet.sync(provider); + + return wallet.balance.valueOf(); }, async isContractAddress(address) { return Address.fromString(address).isContractAddress(); @@ -537,7 +571,9 @@ export async function elrondHelperFactory( return elrondParams.feeMargin; }, async extractTxnStatus(txn) { - const status = await provider.getTransactionStatus(txn); + const status = await provider.getTransactionStatus( + new TransactionHash(txn) + ); if (status.isPending()) { return TransactionStatus.PENDING; } @@ -645,11 +681,17 @@ export async function elrondHelperFactory( const esdts = await listEsdt(address); const res = esdts[id.native.nonce]; if (res === undefined || new BigNumber(res.balance).lt(value)) { - const utx = swapCtr.call({ - func: new ContractFunction("wrapEgld"), - chainID: config.ChainID, - gasLimit: 50000000, - value: TokenPayment.egldFromAmount(value), + const utx = new Transaction({ + receiver: swapContract, + gasLimit: new GasLimit(50000000), + value: new Balance( + Egld.getToken(), + Egld.getNonce(), + new BigNumber(value.toString()) + ), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("wrapEgld")) + .build(), }); return utx.toPlainObject(); } @@ -668,17 +710,16 @@ export async function elrondHelperFactory( return tx; }, async transferESDTOwnership(sender, token, target): Promise { - const ow = new SmartContract({ - address: new Address( + const txu = new Transaction({ + receiver: new Address( "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u" ), - }); - - const txu = ow.call({ - func: new ContractFunction("transferOwnership"), - args: [new TokenIdentifierValue(token), new AddressValue(target)], - chainID: config.ChainID, - gasLimit: 60000000, + gasLimit: new GasLimit(60000000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("transferOwnership")) + .addArg(new TokenIdentifierValue(Buffer.from(token, "utf-8"))) + .addArg(new AddressValue(target)) + .build(), }); return await signAndSend(sender, txu); @@ -696,27 +737,27 @@ export async function elrondHelperFactory( return estimateGas(NFT_UNFREEZE_COST); // TODO: properly estimate NFT_UNFREEZE_COST }, async unfreezeWrappedNftBatch(sender, chainNonce, to, nfts, txFees) { - const sc = new SmartContract({ address: await getAddress(sender) }); - - const txu = sc.call({ - func: new ContractFunction("MultiESDTNFTTransfer"), - chainID: config.ChainID, - gasLimit: 40000000 + 5000000 * nfts.length, - args: [ - new AddressValue(mintContract), - new BigUIntValue(new BigNumber(nfts.length + 1)), - ...nfts.flatMap((nft) => [ - new TokenIdentifierValue(esdtNftHex.toString("hex")), - new U64Value(new BigNumber(nft.native.nonce)), - new BigUIntValue(new BigNumber(1)), - ]), - new TokenIdentifierValue(esdtSwaphex.toString("hex")), - new U64Value(new BigNumber(0x0)), - new BigUIntValue(txFees), - new BytesValue(Buffer.from("withdrawBatchNft", "ascii")), - new U64Value(new BigNumber(chainNonce)), - new BytesValue(Buffer.from(to, "ascii")), - ], + const txu = new Transaction({ + receiver: await getAddress(sender), + gasLimit: new GasLimit(40000000 + 5000000 * nfts.length), // TODO: better estimate + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .setArgs([ + new AddressValue(mintContract), + new BigUIntValue(new BigNumber(nfts.length + 1)), + ...nfts.flatMap((nft) => [ + new TokenIdentifierValue(esdtNftHex), + new U64Value(new BigNumber(nft.native.nonce)), + new BigUIntValue(new BigNumber(1)), + ]), + new TokenIdentifierValue(esdtSwaphex), + new U64Value(new BigNumber(0x0)), + new BigUIntValue(txFees), + new BytesValue(Buffer.from("withdrawBatchNft", "ascii")), + new U64Value(new BigNumber(chainNonce)), + new BytesValue(Buffer.from(to, "ascii")), + ]) + .build(), }); const tx = await signAndSend(sender, txu); await notifyValidator( @@ -737,29 +778,30 @@ export async function elrondHelperFactory( mintWith, txFees ) { - const sc = new SmartContract({ address: await getAddress(sender) }); - const txu = sc.call({ - func: new ContractFunction("MultiESDTNFTTransfer"), - args: [ - new AddressValue(mintContract), - new BigUIntValue(new BigNumber(nfts.length + 1)), - ...nfts.flatMap((nft) => [ - new TokenIdentifierValue( - tokenIdentReal(nft.native.tokenIdentifier) - ), - new U64Value(new BigNumber(nft.native.nonce)), - new BigUIntValue(new BigNumber(1)), - ]), - new TokenIdentifierValue(esdtSwaphex.toString("hex")), - new U64Value(new BigNumber(0x0)), - new BigUIntValue(txFees), - new BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), - new U64Value(new BigNumber(chainNonce)), - new BytesValue(Buffer.from(to, "ascii")), - new BytesValue(Buffer.from(mintWith, "ascii")), - ], - chainID: config.ChainID, - gasLimit: 50000000 + 5000000 * nfts.length, + const txu = new Transaction({ + receiver: await getAddress(sender), + gasLimit: new GasLimit(50000000 + 5000000 * nfts.length), // TODO: better estimate + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("MultiESDTNFTTransfer")) + .setArgs([ + new AddressValue(mintContract), + new BigUIntValue(new BigNumber(nfts.length + 1)), + ...nfts.flatMap((nft) => [ + new TokenIdentifierValue( + Buffer.from(tokenIdentReal(nft.native.tokenIdentifier), "utf-8") + ), + new U64Value(new BigNumber(nft.native.nonce)), + new BigUIntValue(new BigNumber(1)), + ]), + new TokenIdentifierValue(esdtSwaphex), + new U64Value(new BigNumber(0x0)), + new BigUIntValue(txFees), + new BytesValue(Buffer.from("freezeSendBatchNft", "ascii")), + new U64Value(new BigNumber(chainNonce)), + new BytesValue(Buffer.from(to, "ascii")), + new BytesValue(Buffer.from(mintWith, "ascii")), + ]) + .build(), }); const tx = await signAndSend(sender, txu); await notifyValidator( @@ -773,27 +815,23 @@ export async function elrondHelperFactory( return tx; }, async wegldBalance(addr) { - const esdtinfo = await provider.getFungibleTokensOfAccount( - new Address(addr) + const esdtInfo = await provider.getAddressEsdt( + new Address(addr), + elrondParams.esdt_swap ); - for (const t of esdtinfo) { - if (t.identifier === elrondParams.esdt_swap) { - new BigNumber(t.balance); - } - } - throw new Error(`No wEGLD balance`); + + return new BigNumber(esdtInfo.balance); }, async unwrapWegld(sender: ElrondSigner, amount: BigNumber) { - const txu = swapCtr.call({ - func: new ContractFunction("ESDTTransfer"), - chainID: config.ChainID, - args: [ - new TokenIdentifierValue(esdtSwaphex.toString("hex")), - new U64Value(amount), - new BytesValue(Buffer.from("unwrapEgld")), - ], - gasLimit: 300500000, + const txu = new Transaction({ receiver: swapContract, + gasLimit: new GasLimit(300500000), + data: TransactionPayload.contractCall() + .setFunction(new ContractFunction("ESDTTransfer")) + .addArg(new TokenIdentifierValue(esdtSwaphex)) + .addArg(new U64Value(amount)) + .addArg(new BytesValue(Buffer.from("unwrapEgld"))) + .build(), }); const tx = await signAndSend(sender, txu); diff --git a/yarn.lock b/yarn.lock index f2037c382..ef6574ac0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1378,74 +1378,6 @@ bn.js "^5.2.0" debug "^4.3.4" -"@multiversx/sdk-bls-wasm@0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@multiversx/sdk-bls-wasm/-/sdk-bls-wasm-0.3.5.tgz#2e83308fdc7a0928c6d5a7f910d796fd8eb2d90b" - integrity sha512-c0tIdQUnbBLSt6NYU+OpeGPYdL0+GV547HeHT8Xc0BKQ7Cj0v82QUoA2QRtWrR1G4MNZmLsIacZSsf6DrIS2Bw== - -"@multiversx/sdk-core@^11.4.1": - version "11.4.1" - resolved "https://registry.yarnpkg.com/@multiversx/sdk-core/-/sdk-core-11.4.1.tgz#fbb3165107bb27ee8c5efbfe51b63936b4867ff4" - integrity sha512-kGnSoEcygBUpOABJgpJIbeRBptQ54xq/OVHcw/pOAi0koLJHgu4xiwPihcsxMJ4jWN4PrWDy+zMo/ypeozYVGg== - dependencies: - "@multiversx/sdk-transaction-decoder" "1.0.2" - bech32 "1.1.4" - bignumber.js "9.0.1" - blake2b "2.1.3" - buffer "6.0.3" - json-duplicate-key-handle "1.0.0" - keccak "3.0.2" - protobufjs "6.11.3" - -"@multiversx/sdk-extension-provider@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@multiversx/sdk-extension-provider/-/sdk-extension-provider-2.0.7.tgz#8f854053d2b56adc278afbb597375b34a043a906" - integrity sha512-t7CabgUk/hPhMYVpqGPMdEVDqOo6RrRKmru6nXKpWZHdeQZZV52zeVVC8VRgqwG5mNwAkCrALLvz7UiV/ZLfIg== - -"@multiversx/sdk-network-providers@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@multiversx/sdk-network-providers/-/sdk-network-providers-1.3.0.tgz#6f0499598e0a8c1c414492b76a487d1de7212e6c" - integrity sha512-UCoQDcjccwwkTySMGeiG4taW17UEr4oBQ4t3kDeqj704PVEnRKKGAjyYWlwbbXZSTvqtuKeYNYaEeWdSrBcdew== - dependencies: - axios "0.24.0" - bech32 "1.1.4" - bignumber.js "9.0.1" - buffer "6.0.3" - json-bigint "1.0.0" - -"@multiversx/sdk-transaction-decoder@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@multiversx/sdk-transaction-decoder/-/sdk-transaction-decoder-1.0.2.tgz#83ded4f6d4b877b4421234856eb19709be2af31b" - integrity sha512-j43QsKquu8N51WLmVlJ7dV2P3A1448R7/ktvl8r3i6wRMpfdtzDPNofTdHmMRT7DdQdvs4+RNgz8hVKL11Etsw== - dependencies: - bech32 "^2.0.0" - -"@multiversx/sdk-wallet-connect-provider@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@multiversx/sdk-wallet-connect-provider/-/sdk-wallet-connect-provider-3.1.0.tgz#f7002a093b1230f43f6fa91118eabf9c22c38c31" - integrity sha512-nD6NtccO7f7QQ/ZCLHZSaXrgNPnQ2HajjM7c0LV7AvfSxOjSGvuJ9X7bOZxFuZjAgCHFfAosLrQI4x7hFV0Ccg== - dependencies: - "@walletconnect/client" "1.8.0" - "@walletconnect/sign-client" "2.4.4" - "@walletconnect/utils" "2.4.4" - bech32 "1.1.4" - -"@multiversx/sdk-wallet@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@multiversx/sdk-wallet/-/sdk-wallet-3.0.0.tgz#a0965f14c76184b95cbc9703953fc19d4e4df431" - integrity sha512-nDVBtva1mpfutXA8TfUnpdeFqhY9O+deNU3U/Z41yPBcju1trHDC9gcKPyQqcQ3qjG/6LwEXmIm7Dc5fIsvVjg== - dependencies: - "@multiversx/sdk-bls-wasm" "0.3.5" - bech32 "1.1.4" - bip39 "3.0.2" - blake2b "2.1.3" - ed25519-hd-key "1.1.2" - ed2curve "0.3.0" - keccak "3.0.1" - scryptsy "2.1.0" - tweetnacl "1.0.3" - uuid "8.3.2" - "@noble/ed25519@^1.6.1", "@noble/ed25519@^1.7.0", "@noble/ed25519@^1.7.1": version "1.7.3" resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" @@ -1859,11 +1791,6 @@ rpc-websockets "^7.5.0" superstruct "^0.14.2" -"@stablelib/aead@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" - integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== - "@stablelib/binary@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" @@ -1885,26 +1812,6 @@ resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== -"@stablelib/chacha20poly1305@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee" - integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== - dependencies: - "@stablelib/aead" "^1.0.1" - "@stablelib/binary" "^1.0.1" - "@stablelib/chacha" "^1.0.1" - "@stablelib/constant-time" "^1.0.1" - "@stablelib/poly1305" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/chacha@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371" - integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - "@stablelib/constant-time@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" @@ -1924,24 +1831,6 @@ resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== -"@stablelib/hkdf@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d" - integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== - dependencies: - "@stablelib/hash" "^1.0.1" - "@stablelib/hmac" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - -"@stablelib/hmac@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec" - integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== - dependencies: - "@stablelib/constant-time" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - "@stablelib/int@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" @@ -1973,7 +1862,7 @@ "@stablelib/constant-time" "^1.0.1" "@stablelib/wipe" "^1.0.1" -"@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2": +"@stablelib/random@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== @@ -1990,15 +1879,6 @@ "@stablelib/constant-time" "^1.0.1" "@stablelib/wipe" "^1.0.1" -"@stablelib/sha256@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f" - integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== - dependencies: - "@stablelib/binary" "^1.0.1" - "@stablelib/hash" "^1.0.1" - "@stablelib/wipe" "^1.0.1" - "@stablelib/sha512@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" @@ -2504,7 +2384,7 @@ "@walletconnect/types" "^1.6.5" "@walletconnect/utils" "^1.6.5" -"@walletconnect/client@1.8.0", "@walletconnect/client@^1.7.0": +"@walletconnect/client@^1.7.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.8.0.tgz#6f46b5499c7c861c651ff1ebe5da5b66225ca696" integrity sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ== @@ -2514,28 +2394,6 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" -"@walletconnect/core@2.4.4": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.4.4.tgz#5f22fd2e9a13c3995c164530f5e77b671bb40850" - integrity sha512-tdMmPNGgpTrk95hG8H5V6Du59HA4e3tVdvGngZjcja6VnmkfZdW4fGCWaJWyKYkrQQknDug4dH47/HZ6cAxj/g== - dependencies: - "@walletconnect/heartbeat" "1.2.0" - "@walletconnect/jsonrpc-provider" "^1.0.6" - "@walletconnect/jsonrpc-utils" "^1.0.4" - "@walletconnect/jsonrpc-ws-connection" "^1.0.7" - "@walletconnect/keyvaluestorage" "^1.0.2" - "@walletconnect/logger" "^2.0.1" - "@walletconnect/relay-api" "^1.0.7" - "@walletconnect/relay-auth" "^1.0.4" - "@walletconnect/safe-json" "^1.0.1" - "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.4.4" - "@walletconnect/utils" "2.4.4" - events "^3.3.0" - lodash.isequal "4.5.0" - pino "7.11.0" - uint8arrays "3.1.0" - "@walletconnect/core@^1.6.5", "@walletconnect/core@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.8.0.tgz#6b2748b90c999d9d6a70e52e26a8d5e8bfeaa81e" @@ -2573,26 +2431,6 @@ dependencies: tslib "1.14.1" -"@walletconnect/events@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/events/-/events-1.0.1.tgz#2b5f9c7202019e229d7ccae1369a9e86bda7816c" - integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== - dependencies: - keyvaluestorage-interface "^1.0.0" - tslib "1.14.1" - -"@walletconnect/heartbeat@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.0.tgz#1e87dd234cb72b0587b84f95c4f942f2b4bd0c79" - integrity sha512-0vbzTa/ARrpmMmOD+bQMxPvFYKtOLQZObgZakrYr0aODiMOO71CmPVNV2eAqXnw9rMmcP+z91OybLeIFlwTjjA== - dependencies: - "@walletconnect/events" "^1.0.1" - "@walletconnect/time" "^1.0.2" - chai "^4.3.7" - mocha "^10.2.0" - ts-node "^10.9.1" - tslib "1.14.1" - "@walletconnect/iso-crypto@^1.6.5", "@walletconnect/iso-crypto@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451" @@ -2602,15 +2440,6 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" -"@walletconnect/jsonrpc-provider@^1.0.6": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.9.tgz#ce5ab64dce6a739110aef204ffeedd668ad343d8" - integrity sha512-8CwmiDW42F+F8Qct13lX2x4lJOsi0mNBtUln3VS6TpWioTaL1VfforC/8ULc3tHXv+SNWwAXn2lCZbDcYhdRcA== - dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.6" - "@walletconnect/safe-json" "^1.0.1" - tslib "1.14.1" - "@walletconnect/jsonrpc-types@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.2.tgz#b79519f679cd6a5fa4a1bea888f27c1916689a20" @@ -2628,42 +2457,6 @@ "@walletconnect/jsonrpc-types" "^1.0.2" tslib "1.14.1" -"@walletconnect/jsonrpc-utils@^1.0.4", "@walletconnect/jsonrpc-utils@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.6.tgz#7fa58e6671247e64e189828103282e6258f5330f" - integrity sha512-snp0tfkjPiDLQp/jrBewI+9SM33GPV4+Gjgldod6XQ7rFyQ5FZjnBxUkY4xWH0+arNxzQSi6v5iDXjCjSaorpg== - dependencies: - "@walletconnect/environment" "^1.0.1" - "@walletconnect/jsonrpc-types" "^1.0.2" - tslib "1.14.1" - -"@walletconnect/jsonrpc-ws-connection@^1.0.7": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.10.tgz#04e04a7d8c70b27c386a1bdd9ff6511045da3c81" - integrity sha512-/tidvjfCXZuYugjF5fOswsNDPoMo9QRML3DFQ0dfNUarL4f5HGqu8NDGerr2n0+4MOX23GsT6Vv2POSwFbvgGw== - dependencies: - "@walletconnect/jsonrpc-utils" "^1.0.6" - "@walletconnect/safe-json" "^1.0.1" - events "^3.3.0" - tslib "1.14.1" - ws "^7.5.1" - -"@walletconnect/keyvaluestorage@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.2.tgz#92f5ca0f54c1a88a093778842ce0c874d86369c8" - integrity sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ== - dependencies: - safe-json-utils "^1.1.1" - tslib "1.14.1" - -"@walletconnect/logger@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.0.1.tgz#7f489b96e9a1ff6bf3e58f0fbd6d69718bf844a8" - integrity sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ== - dependencies: - pino "7.11.0" - tslib "1.14.1" - "@walletconnect/randombytes@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.3.tgz#e795e4918367fd1e6a2215e075e64ab93e23985b" @@ -2674,55 +2467,11 @@ randombytes "^2.1.0" tslib "1.14.1" -"@walletconnect/relay-api@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.9.tgz#f8c2c3993dddaa9f33ed42197fc9bfebd790ecaf" - integrity sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg== - dependencies: - "@walletconnect/jsonrpc-types" "^1.0.2" - tslib "1.14.1" - -"@walletconnect/relay-auth@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz#0b5c55c9aa3b0ef61f526ce679f3ff8a5c4c2c7c" - integrity sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ== - dependencies: - "@stablelib/ed25519" "^1.0.2" - "@stablelib/random" "^1.0.1" - "@walletconnect/safe-json" "^1.0.1" - "@walletconnect/time" "^1.0.2" - tslib "1.14.1" - uint8arrays "^3.0.0" - "@walletconnect/safe-json@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== -"@walletconnect/safe-json@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.1.tgz#9813fa0a7a544b16468730c2d7bed046ed160957" - integrity sha512-Fm7e31oSYY15NQr8SsLJheKAy5L744udZf2lJKcz6wFmPJEzf7hOF0866o/rrldRzJnjZ4H2GJ45pFudsnLW5A== - dependencies: - tslib "1.14.1" - -"@walletconnect/sign-client@2.4.4": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.4.4.tgz#8c1109de277452356094961c45e819c8575b51aa" - integrity sha512-ByF1Qi+r7EAZ8HX++aiHekSxiruIlUg3KWfXvki5n4PQNv9Ldad/RaMswk7CB7ESCZuHc7ylKcT3SwOJjHOopg== - dependencies: - "@walletconnect/core" "2.4.4" - "@walletconnect/events" "^1.0.1" - "@walletconnect/heartbeat" "1.2.0" - "@walletconnect/jsonrpc-provider" "^1.0.6" - "@walletconnect/jsonrpc-utils" "^1.0.4" - "@walletconnect/logger" "^2.0.1" - "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.4.4" - "@walletconnect/utils" "2.4.4" - events "^3.3.0" - pino "7.11.0" - "@walletconnect/socket-transport@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz#9a1128a249628a0be11a0979b522fe82b44afa1b" @@ -2732,51 +2481,11 @@ "@walletconnect/utils" "^1.8.0" ws "7.5.3" -"@walletconnect/time@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/time/-/time-1.0.2.tgz#6c5888b835750ecb4299d28eecc5e72c6d336523" - integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== - dependencies: - tslib "1.14.1" - -"@walletconnect/types@2.4.4": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.4.4.tgz#f2edb02f70e7dfb0f4265d78b0b745a776eb0dae" - integrity sha512-4XndBOlB0qbhaJvzcBZCfR69rfU5rV0U5b3YbJ1AmtxcJSJAIg68WDP7o4BE4w1LHzdsEWvbXHRYL+KsA+uG3w== - dependencies: - "@walletconnect/events" "^1.0.1" - "@walletconnect/heartbeat" "1.2.0" - "@walletconnect/jsonrpc-types" "^1.0.2" - "@walletconnect/keyvaluestorage" "^1.0.2" - "@walletconnect/logger" "^2.0.1" - events "^3.3.0" - "@walletconnect/types@^1.6.5", "@walletconnect/types@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== -"@walletconnect/utils@2.4.4": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.4.4.tgz#1ee72172c7fb28f096c600fde19b12b770aa44df" - integrity sha512-PM4biwrvi5OwXIroLHDxtCOXlvZGCGNvbYS0Jkb6ZmP1EbGjVz1xA1hnp/lC3eGFQArSyvS7EHD6XQQpymZ2jA== - dependencies: - "@stablelib/chacha20poly1305" "1.0.1" - "@stablelib/hkdf" "1.0.1" - "@stablelib/random" "^1.0.2" - "@stablelib/sha256" "1.0.1" - "@stablelib/x25519" "^1.0.3" - "@walletconnect/jsonrpc-utils" "^1.0.4" - "@walletconnect/relay-api" "^1.0.7" - "@walletconnect/safe-json" "^1.0.1" - "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.4.4" - "@walletconnect/window-getters" "^1.0.1" - "@walletconnect/window-metadata" "^1.0.1" - detect-browser "5.3.0" - query-string "7.1.1" - uint8arrays "3.1.0" - "@walletconnect/utils@^1.6.5", "@walletconnect/utils@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.8.0.tgz#2591a197c1fa7429941fe428876088fda6632060" @@ -2795,7 +2504,7 @@ resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== -"@walletconnect/window-getters@^1.0.0", "@walletconnect/window-getters@^1.0.1": +"@walletconnect/window-getters@^1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== @@ -2809,14 +2518,6 @@ dependencies: "@walletconnect/window-getters" "^1.0.0" -"@walletconnect/window-metadata@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz#2124f75447b7e989e4e4e1581d55d25bc75f7be5" - integrity sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA== - dependencies: - "@walletconnect/window-getters" "^1.0.1" - tslib "1.14.1" - "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -2930,11 +2631,6 @@ algosdk@^1.13.1, algosdk@^1.15.0-beta.1: tweetnacl "^1.0.3" vlq "^2.0.4" -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-colors@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" @@ -3189,11 +2885,6 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atomic-sleep@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" - integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== - available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" @@ -3355,7 +3046,7 @@ bech32@1.1.4, bech32@^1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bech32@2.0.0, bech32@^2.0.0: +bech32@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== @@ -3600,11 +3291,6 @@ browser-headers@^0.4.1: resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -3737,11 +3423,6 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - capability@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/capability/-/capability-0.2.5.tgz#51ad87353f1936ffd77f2f21c74633a4dea88801" @@ -3752,7 +3433,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chai@^4.3.6, chai@^4.3.7: +chai@^4.3.6: version "4.3.7" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== @@ -3815,7 +3496,7 @@ check-more-types@2.24.0: resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== -chokidar@3.5.3, chokidar@^3.0.0: +chokidar@^3.0.0: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -4209,11 +3890,6 @@ decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - decode-uri-component@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" @@ -4327,21 +4003,11 @@ detect-browser@5.2.0: resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== -detect-browser@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" - integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== - detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -4384,16 +4050,6 @@ duplexer@~0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - each-parallel-async@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/each-parallel-async/-/each-parallel-async-1.0.0.tgz#91783e190000c7dd588336b2d468ebaf71980f7b" @@ -4416,13 +4072,6 @@ ed25519-hd-key@1.1.2: create-hmac "1.1.7" tweetnacl "1.0.3" -ed2curve@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ed2curve/-/ed2curve-0.3.0.tgz#322b575152a45305429d546b071823a93129a05d" - integrity sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ== - dependencies: - tweetnacl "1.x.x" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -4740,16 +4389,16 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + eslint-config-prettier@^8.3.0: version "8.6.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" @@ -5222,11 +4871,6 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-redact@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" - integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== - fast-stable-stringify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" @@ -5265,11 +4909,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -5291,14 +4930,6 @@ find-cache-dir@^4.0.0: common-path-prefix "^3.0.0" pkg-dir "^7.0.0" -find-up@5.0.0, find-up@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -5315,6 +4946,14 @@ find-up@^6.3.0: locate-path "^7.1.0" path-exists "^5.0.0" +find-up@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -5323,11 +4962,6 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - flatted@^3.1.0: version "3.2.7" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" @@ -5595,18 +5229,6 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - 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" - glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -5817,11 +5439,6 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - hi-base32@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" @@ -6183,11 +5800,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -6368,13 +5980,6 @@ js-sha512@^0.8.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -6383,6 +5988,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -6480,23 +6092,6 @@ jssha@3.2.0: resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16" integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q== -keccak@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -keccak@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - readable-stream "^3.6.0" - keccak@^3.0.0, keccak@^3.0.1, keccak@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" @@ -6577,7 +6172,7 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== -lodash.isequal@4.5.0, lodash.isequal@^4.5.0: +lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== @@ -6597,7 +6192,7 @@ lodash@4.17.21, lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.1.0, log-symbols@^4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -6809,13 +6404,6 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -6884,33 +6472,6 @@ mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mocha@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - mock-fs@^4.1.0: version "4.14.0" resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" @@ -6972,11 +6533,6 @@ multicodec@^1.0.0: buffer "^5.6.0" varint "^5.0.0" -multiformats@^9.4.2: - version "9.9.0" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" - integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== - multihashes@^0.4.15, multihashes@~0.4.15: version "0.4.21" resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" @@ -7030,11 +6586,6 @@ nanoassert@^1.0.0: resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" integrity sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ== -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - nanoid@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" @@ -7284,11 +6835,6 @@ oboe@2.1.5: dependencies: http-https "^1.0.0" -on-exit-leak-free@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" - integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== - on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -7504,36 +7050,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pino-abstract-transport@v0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" - integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== - dependencies: - duplexify "^4.1.2" - split2 "^4.0.0" - -pino-std-serializers@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" - integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== - -pino@7.11.0: - version "7.11.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" - integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== - dependencies: - atomic-sleep "^1.0.0" - fast-redact "^3.0.0" - on-exit-leak-free "^0.2.0" - pino-abstract-transport v0.5.0 - pino-std-serializers "^4.0.0" - process-warning "^1.0.0" - quick-format-unescaped "^4.0.3" - real-require "^0.1.0" - safe-stable-stringify "^2.1.0" - sonic-boom "^2.2.1" - thread-stream "^0.15.1" - pkg-dir@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" @@ -7606,11 +7122,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process-warning@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" - integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== - process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -7765,16 +7276,6 @@ query-string@6.13.5: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -query-string@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" - integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - query-string@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" @@ -7789,11 +7290,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quick-format-unescaped@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" - integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== - quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" @@ -7872,11 +7368,6 @@ readonly-date@^1.0.0: resolved "https://registry.yarnpkg.com/readonly-date/-/readonly-date-1.0.0.tgz#5af785464d8c7d7c40b9d738cbde8c646f97dcd9" integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ== -real-require@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" - integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== - rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -8071,11 +7562,6 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-json-utils@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/safe-json-utils/-/safe-json-utils-1.1.1.tgz#0e883874467d95ab914c3f511096b89bfb3e63b1" - integrity sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ== - safe-regex-test@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" @@ -8085,11 +7571,6 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -safe-stable-stringify@^2.1.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz#ec7b037768098bf65310d1d64370de0dc02353aa" - integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== - "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -8185,13 +7666,6 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - serve-static@1.15.0: version "1.15.0" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" @@ -8370,13 +7844,6 @@ socket.io-parser@~4.2.1: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" -sonic-boom@^2.2.1: - version "2.8.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" - integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== - dependencies: - atomic-sleep "^1.0.0" - sort-object-keys@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" @@ -8392,11 +7859,6 @@ split-on-first@^1.0.0: resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== -split2@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" - integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== - split@0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" @@ -8460,11 +7922,6 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - stream-transform@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-3.2.2.tgz#3d6083d6582eddac233645fcee574fc56ebeb184" @@ -8556,7 +8013,7 @@ strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed "1.0.0" -strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -8576,13 +8033,6 @@ superstruct@^0.15.4: resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -8712,13 +8162,6 @@ thor-devkit@^2.0.4, thor-devkit@^2.0.5: js-sha3 "0.5.7" rlp "^2.0.0" -thread-stream@^0.15.1: - version "0.15.2" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" - integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== - dependencies: - real-require "^0.1.0" - through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -8907,7 +8350,7 @@ tronweb@^4.1.0: semver "^5.6.0" validator "^13.7.0" -ts-node@^10.8.2, ts-node@^10.9.1: +ts-node@^10.8.2: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -8950,7 +8393,7 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl@1.0.3, tweetnacl@1.x.x, tweetnacl@^1.0.1, tweetnacl@^1.0.2, tweetnacl@^1.0.3: +tweetnacl@1.0.3, tweetnacl@^1.0.1, tweetnacl@^1.0.2, tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== @@ -9062,20 +8505,6 @@ u3@^0.1.1: resolved "https://registry.yarnpkg.com/u3/-/u3-0.1.1.tgz#5f52044f42ee76cd8de33148829e14528494b73b" integrity sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w== -uint8arrays@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.0.tgz#8186b8eafce68f28bd29bd29d683a311778901e2" - integrity sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== - dependencies: - multiformats "^9.4.2" - -uint8arrays@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" - integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== - dependencies: - multiformats "^9.4.2" - ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" @@ -9626,11 +9055,6 @@ word-wrap@^1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -9673,7 +9097,7 @@ ws@^3.0.0: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^7.1.0, ws@^7.4.5, ws@^7.5.1: +ws@^7.1.0, ws@^7.4.5: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== @@ -9769,11 +9193,6 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -9787,29 +9206,6 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yargs@^15.0.1, yargs@^15.1.0: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -9827,6 +9223,19 @@ yargs@^15.0.1, yargs@^15.1.0: y18n "^4.0.0" yargs-parser "^18.1.2" +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yarn-audit-fix@^9.3.7: version "9.3.9" resolved "https://registry.yarnpkg.com/yarn-audit-fix/-/yarn-audit-fix-9.3.9.tgz#24b6e16af8fc7987d9ceb0f8d8612469261864b5" From 44f1d48e6a489fa3b2c8f5981dca479a551b29be Mon Sep 17 00:00:00 2001 From: imsk17 Date: Wed, 15 Mar 2023 02:49:41 +0530 Subject: [PATCH 949/956] helpers: elrond: fix nft minting and esdt creation --- src/helpers/elrond.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 5a7ad56fe..60d538db7 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -143,10 +143,7 @@ export interface IssueESDTNFT { * ESDTRoleNFTBurn: Allow burning NFTs * ESDTRoleNFTAddQuanitity: Allowing minting >1 NFTs (SFT) */ -export type ESDTRole = - | "ESDTRoleNFTCreate" - | "ESDTRoleNFTBurn" - | "ESDTRoleNFTAddQuantity"; +export type ESDTRole = "ESDTRoleNFTCreate" | "ESDTRoleNFTBurn"; /** * Utility for setting ESDT roles @@ -659,7 +656,10 @@ export async function elrondHelperFactory( const tx = await signAndSend(sender, txu); const res = await transactionResult(tx.getHash()); - const tickerh: string = res["smartContractResults"][0].data.split("@")[2]; + const result = res["smartContractResults"].find((e: any) => + e.data.startsWith("@") + ); + const tickerh: string = result.data.split("@")[2]; return Buffer.from(tickerh, "hex").toString("utf-8"); }, async mintNft(owner: ElrondSigner, args: NftIssueArgs): Promise { From c3477f9dec5e74decc01f91f7eca44eefb7946cc Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Wed, 15 Mar 2023 12:05:43 +0200 Subject: [PATCH 950/956] SECRET: change explroer urls --- src/consts.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/consts.ts b/src/consts.ts index 69d133e3e..02ab9a10b 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -545,8 +545,10 @@ CHAIN_INFO.set(Chain.SECRET, { currencySymbol: SupportedCurrencyName.SCRT, decimals: Decimals.SCRT, type: ChainType.COSMOS, - blockExplorerUrl: "https://atomscan.com/secret-network/transactions/", - blockExplorerUrlAddr: "https://atomscan.com/secret-network/accounts/", + blockExplorerUrl: "https://secretnodes.com/secret/transactions/", + blockExplorerUrlAddr: "https://secretnodes.com/secret/accounts/", + tnBlockExplorerUrl: "https://secretnodes.com/pulsar/transactions/", + tnBlockExplorerUrlAddr: "https://secretnodes.com/pulsar/accounts/", }); CHAIN_INFO.set(Chain.SOLANA, { name: "Solana", From 26b2d4418a4997767944235016925fe4af03af49 Mon Sep 17 00:00:00 2001 From: D Date: Wed, 15 Mar 2023 16:06:24 +0500 Subject: [PATCH 951/956] signature changes according to the contract and new contracts with latest cotract changes. --- src/factory/factories.ts | 5 +++-- src/helpers/near.ts | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/factory/factories.ts b/src/factory/factories.ts index d61ad1923..0c3b1a511 100644 --- a/src/factory/factories.ts +++ b/src/factory/factories.ts @@ -457,8 +457,9 @@ export namespace ChainFactoryConfigs { networkId: "mainnet", nonce: Chain.NEAR, rpcUrl: MainNetRpcUri.NEAR, - bridge: "xpbridge.near", - xpnft: "xpnft.near", + bridge: + "e138f27300334f546bbd792e65dc8753af29d534c5248a3f55e875693bddcf19", + xpnft: "damphir.near", feeMargin, notifier, walletUrl: "https://wallet.mainnet.near.org", diff --git a/src/helpers/near.ts b/src/helpers/near.ts index 2864ce610..9e7f0ad16 100644 --- a/src/helpers/near.ts +++ b/src/helpers/near.ts @@ -260,12 +260,12 @@ export async function nearHelperFactory({ mint_with, token_contract: id.native.contract, ...(res?.signature - ? { sig_data: Buffer.from(res.signature, "hex") } + ? { sig_data: [...Buffer.from(res.signature, "hex")] } : {}), }, methodName: "freeze_nft", attachedDeposit: new BN(res?.fee) /*.div(new BN(2))*/, - gas: new BN("46000000000000"), + gas: new BN("300000000000000"), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); await notifyValidators(result.transaction.hash); @@ -306,11 +306,11 @@ export async function nearHelperFactory({ to, amt: parseInt(txFees.toString()), token_contract: id.native.contract, - sig_data: Buffer.from(res?.signature, "hex"), + sig_data: [...Buffer.from(res?.signature, "hex")], }, methodName: "withdraw_nft", attachedDeposit: new BN(res?.fee), - gas: new BN(65_000_000_000_000), + gas: new BN("300000000000000"), ...(walletCallbackUrl ? { walletCallbackUrl } : {}), }); await notifyValidators(result.transaction.hash); From 2fdbc1656588194fe06af4e1f2cd972e83cf7860 Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Thu, 16 Mar 2023 12:45:18 +0200 Subject: [PATCH 952/956] SECRET: reject default mintWith when sending from --- src/factory/cons.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/factory/cons.ts b/src/factory/cons.ts index 11f2920f7..92fa3aab2 100644 --- a/src/factory/cons.ts +++ b/src/factory/cons.ts @@ -90,6 +90,10 @@ export function getDefaultContract( throw defaultMintError; } + if (from === Chain.SECRET) { + throw defaultMintError; + } + if (fromType === ChainType.TRON) { throw defaultMintError; } From fd62ceefd6f39975e8204307b3f233ec13a8bbba Mon Sep 17 00:00:00 2001 From: AlexeyAdoniev Date: Sun, 19 Mar 2023 10:02:52 +0200 Subject: [PATCH 953/956] xPortalWallet --- package.json | 1 + src/helpers/elrond.ts | 32 +++++++++++++++++++++++++++++--- yarn.lock | 32 +++++++++++++++++++++++++++++++- 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index a64440e4d..f42d06670 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "@hashgraph/hethers": "1.1.2", "@json-rpc-tools/utils": "^1.7.6", "@metaplex-foundation/js": "0.17.6", + "@multiversx/sdk-core": "^11.4.1", "@project-serum/anchor": "^0.25.0-beta.1", "@randlabs/myalgo-connect": "^1.1.1", "@solana/spl-token": "^0.2.0", diff --git a/src/helpers/elrond.ts b/src/helpers/elrond.ts index 60d538db7..6107923ae 100644 --- a/src/helpers/elrond.ts +++ b/src/helpers/elrond.ts @@ -25,7 +25,10 @@ import { U64Value, UserSigner, WalletConnectProvider, + Nonce, } from "@elrondnetwork/erdjs"; +import { Transaction as XTRX, Address as XADDR } from "@multiversx/sdk-core"; + import axios from "axios"; import BigNumber from "bignumber.js"; import { @@ -269,9 +272,31 @@ export async function elrondHelperFactory( const acc = await syncAccount(signer); tx.setNonce(acc.nonce); let stx: Transaction; - if (signer instanceof WalletConnectProvider) { - const txs = await signer.signTransactions([tx]); + + if (typeof (signer as any).walletConnectV2Relay !== "undefined") { + const wcSigenr = signer as any; + const address = (await signer.getAddress()) as string; + const res = await ( + await axios(`https://gateway.multiversx.com/address/${address}/nonce`) + ).data; + console.log(res, "res"); + + const payload = new XTRX({ + chainID: wcSigenr.chainId, + sender: new XADDR(address), + data: tx.getData(), + gasLimit: tx.getGasLimit(), + receiver: tx.getReceiver(), + value: tx.getValue(), + nonce: new Nonce(res.data.nonce), + }); + const txs = await wcSigenr.signTransactions([payload]); + stx = txs[0]; + + await provider.sendTransaction(stx); + + return stx; } else if (signer instanceof ExtensionProvider) { stx = await signer.signTransaction(tx); } else if (signer instanceof UserSigner) { @@ -333,6 +358,7 @@ export async function elrondHelperFactory( ) => { const esdts = await listEsdt((await sender.getAddress()).toString()); const res = esdts[nft.native.nonce]; + if (res === undefined || new BigNumber(res.balance).lt(value)) { const utx = new Transaction({ receiver: swapContract, @@ -340,7 +366,7 @@ export async function elrondHelperFactory( value: new Balance( Egld.getToken(), Egld.getNonce(), - new BigNumber(value.toString()) + new BigNumber(value.toString()).div(3) ), data: TransactionPayload.contractCall() .setFunction(new ContractFunction("wrapEgld")) diff --git a/yarn.lock b/yarn.lock index ef6574ac0..7e02e5780 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1378,6 +1378,27 @@ bn.js "^5.2.0" debug "^4.3.4" +"@multiversx/sdk-core@^11.4.1": + version "11.4.1" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-core/-/sdk-core-11.4.1.tgz#fbb3165107bb27ee8c5efbfe51b63936b4867ff4" + integrity sha512-kGnSoEcygBUpOABJgpJIbeRBptQ54xq/OVHcw/pOAi0koLJHgu4xiwPihcsxMJ4jWN4PrWDy+zMo/ypeozYVGg== + dependencies: + "@multiversx/sdk-transaction-decoder" "1.0.2" + bech32 "1.1.4" + bignumber.js "9.0.1" + blake2b "2.1.3" + buffer "6.0.3" + json-duplicate-key-handle "1.0.0" + keccak "3.0.2" + protobufjs "6.11.3" + +"@multiversx/sdk-transaction-decoder@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-transaction-decoder/-/sdk-transaction-decoder-1.0.2.tgz#83ded4f6d4b877b4421234856eb19709be2af31b" + integrity sha512-j43QsKquu8N51WLmVlJ7dV2P3A1448R7/ktvl8r3i6wRMpfdtzDPNofTdHmMRT7DdQdvs4+RNgz8hVKL11Etsw== + dependencies: + bech32 "^2.0.0" + "@noble/ed25519@^1.6.1", "@noble/ed25519@^1.7.0", "@noble/ed25519@^1.7.1": version "1.7.3" resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" @@ -3046,7 +3067,7 @@ bech32@1.1.4, bech32@^1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bech32@2.0.0: +bech32@2.0.0, bech32@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== @@ -6092,6 +6113,15 @@ jssha@3.2.0: resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16" integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q== +keccak@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" + integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + keccak@^3.0.0, keccak@^3.0.1, keccak@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" From 4c19a93eb9f8d5e3a90481a3f5970caadde35bb5 Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Wed, 22 Mar 2023 09:14:15 +0200 Subject: [PATCH 954/956] fees --- src/helpers/web3_erc20.ts | 9 ++++++++- tsconfig.json | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/helpers/web3_erc20.ts b/src/helpers/web3_erc20.ts index 70f78ec2c..4aff6a00f 100644 --- a/src/helpers/web3_erc20.ts +++ b/src/helpers/web3_erc20.ts @@ -76,9 +76,13 @@ export type Web3ERC20Params = Web3Params & { paymentTokenAddress: string; }; +export type Web3ERC20Helper = Web3Helper & { + getEurEthBalance(address: string): Promise; +}; + export async function web3ERC20HelperFactory( params: Web3ERC20Params -): Promise { +): Promise { const txnUnderpricedPolyWorkaround = params.nonce == 7 ? async (utx: PopulatedTransaction) => { @@ -232,6 +236,9 @@ export async function web3ERC20HelperFactory( getFeeMargin() { return params.feeMargin; }, + async getEurEthBalance(address: string) { + return address + "boooom"; + }, isApprovedForMinter, preTransfer: (s, id, _fee, args) => approveForMinter(id, s, _fee, args?.gasPrice), diff --git a/tsconfig.json b/tsconfig.json index e40fc5c03..d6349c14f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,8 @@ "compilerOptions": { "incremental": false, "target": "ES2021", - "outDir": "./dist", - //"outDir": "../bridge-interface/node_modules/xp.network/dist", + // "outDir": "./dist", + "outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs", From 7251a29b433dae0a076e862c9674436e220d9252 Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Thu, 23 Mar 2023 11:42:29 +0200 Subject: [PATCH 955/956] func to check euro eth balance added --- src/helpers/web3_erc20.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/helpers/web3_erc20.ts b/src/helpers/web3_erc20.ts index 4aff6a00f..4ff01256f 100644 --- a/src/helpers/web3_erc20.ts +++ b/src/helpers/web3_erc20.ts @@ -237,7 +237,16 @@ export async function web3ERC20HelperFactory( return params.feeMargin; }, async getEurEthBalance(address: string) { - return address + "boooom"; + //paymentTokenAddress + const contractAddress = params.paymentTokenAddress; + const abi = PaymentToken__factory.abi; + const eurEthContract = new ethers.Contract( + contractAddress, + abi, + provider + ); + const balance = await eurEthContract.balanceOf(address); + return ethers.utils.formatUnits(balance, 18); }, isApprovedForMinter, preTransfer: (s, id, _fee, args) => From 03b8e2a3983c35f82d872baa6df02210b0526a2d Mon Sep 17 00:00:00 2001 From: YuraDXPNetwork Date: Thu, 23 Mar 2023 12:05:02 +0200 Subject: [PATCH 956/956] ts cinfig outDir changed --- tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index d6349c14f..c373d8bbe 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,8 @@ "compilerOptions": { "incremental": false, "target": "ES2021", - // "outDir": "./dist", - "outDir": "../bridge-interface/node_modules/xp.network/dist", + "outDir": "./dist", + // "outDir": "../bridge-interface/node_modules/xp.network/dist", "rootDir": "src", "moduleResolution": "node", "module": "commonjs",